feat(ack): support project agent routing overrides
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "https://git.yumee.top/laily/pouch/skills/ack/templates/agents.schema.json",
|
||||
"title": "ACK project agent routing override",
|
||||
"description": "Optional .pouch/ack/agents.yaml. It has the same routing shape as project.orchestration.",
|
||||
"type": "object",
|
||||
"required": ["profileVersion", "mode", "modelAllowlist", "profiles", "defaults"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"profileVersion": {"type": "integer", "const": 1},
|
||||
"mode": {"type": "string", "enum": ["orca", "manual"]},
|
||||
"modelAllowlist": {"$ref": "#/definitions/modelAllowlist"},
|
||||
"profiles": {
|
||||
"type": "object",
|
||||
"propertyNames": {"$ref": "#/definitions/profileId"},
|
||||
"additionalProperties": {"$ref": "#/definitions/workerProfile"}
|
||||
},
|
||||
"defaults": {"$ref": "#/definitions/defaults"}
|
||||
},
|
||||
"definitions": {
|
||||
"profileId": {"type": "string", "pattern": "^[a-z][a-z0-9-]{1,63}$"},
|
||||
"model": {
|
||||
"oneOf": [
|
||||
{"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:/+@-]{0,127}$"},
|
||||
{"type": "null", "description": "仅 pi 使用 null 表示默认模型"}
|
||||
]
|
||||
},
|
||||
"modelList": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/definitions/model"}},
|
||||
"modelTierAllowlist": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"standard": {"$ref": "#/definitions/modelList"},
|
||||
"strong": {"$ref": "#/definitions/modelList"}
|
||||
}
|
||||
},
|
||||
"modelRoleAllowlist": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"developer": {"$ref": "#/definitions/modelTierAllowlist"},
|
||||
"test": {"$ref": "#/definitions/modelTierAllowlist"}
|
||||
}
|
||||
},
|
||||
"modelAllowlist": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"codex": {"$ref": "#/definitions/modelRoleAllowlist"},
|
||||
"cursor-agent": {"$ref": "#/definitions/modelRoleAllowlist"},
|
||||
"grok": {"$ref": "#/definitions/modelRoleAllowlist"},
|
||||
"omp": {"$ref": "#/definitions/modelRoleAllowlist"},
|
||||
"pi": {"$ref": "#/definitions/modelRoleAllowlist"}
|
||||
}
|
||||
},
|
||||
"workerProfile": {
|
||||
"type": "object",
|
||||
"required": ["role", "cli", "tier", "model", "reasoningEffort", "permissionMode"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"role": {"type": "string", "enum": ["developer", "test"]},
|
||||
"cli": {"type": "string", "enum": ["codex", "cursor-agent", "grok", "omp", "pi"]},
|
||||
"tier": {"type": "string", "enum": ["standard", "strong"]},
|
||||
"model": {"$ref": "#/definitions/model"},
|
||||
"reasoningEffort": {"type": ["string", "null"], "enum": ["low", "medium", "high", "xhigh", null]},
|
||||
"permissionMode": {"type": "string", "enum": ["read-only", "workspace-write"]}
|
||||
}
|
||||
},
|
||||
"defaults": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["developer", "test"],
|
||||
"properties": {
|
||||
"developer": {"$ref": "#/definitions/profileId"},
|
||||
"test": {"$ref": "#/definitions/profileId"},
|
||||
"developerUpgraded": {"$ref": "#/definitions/profileId"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user