{ "$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, "allOf": [{"if": {"properties": {"permissionMode": {"const": "danger-full-access"}}, "required": ["permissionMode"]}, "then": {"properties": {"cli": {"const": "codex"}}, "required": ["cli"]}}], "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", "danger-full-access"]} } }, "defaults": { "type": "object", "additionalProperties": false, "required": ["developer", "test"], "properties": { "developer": {"$ref": "#/definitions/profileId"}, "test": {"$ref": "#/definitions/profileId"}, "developerUpgraded": {"$ref": "#/definitions/profileId"} } } } }