evolcore 0.0.25 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +607 -565
- package/LICENSE +21 -21
- package/README.md +455 -455
- package/bin/codex-managed-acl.ps1 +160 -160
- package/bin/codex-managed-hook.mjs +208 -208
- package/bin/ec-safe-output.js +327 -327
- package/bin/ec.js +40 -29
- package/bin/install-codex-managed-hooks.mjs +582 -555
- package/dist/agents/baseagent.js +96 -46
- package/dist/agents/claude-runner.js +50 -12
- package/dist/agents/codex/app-server-client.js +13 -5
- package/dist/agents/codex/catalog.js +1 -1
- package/dist/agents/codex/diagnostics.js +34 -1
- package/dist/agents/codex-runner.js +121 -38
- package/dist/agents/ecagent-runner.js +4 -9
- package/dist/agents/gemini-runner.js +2 -7
- package/dist/agents/runner-types.js +25 -17
- package/dist/aun/aid/agentmd.js +81 -8
- package/dist/aun/aid/client.js +1 -1
- package/dist/aun/aid/identity.js +1 -1
- package/dist/aun/aid/index.js +1 -1
- package/dist/aun/aid/store.js +17 -13
- package/dist/aun/menu-client.js +74 -0
- package/dist/aun/msg/group.js +1 -1
- package/dist/aun/msg/managed-operation.js +1 -1
- package/dist/aun/msg/p2p.js +6 -1
- package/dist/aun/msg/upload.js +30 -22
- package/dist/channels/aun.js +329 -94
- package/dist/cli/agent-command.js +105 -84
- package/dist/cli/agent-create.js +112 -10
- package/dist/cli/agent.js +16 -5
- package/dist/cli/aun-commands.js +297 -296
- package/dist/cli/bench.js +20 -20
- package/dist/cli/config.js +47 -28
- package/dist/cli/contact.js +70 -13
- package/dist/cli/ctl-command.js +22 -22
- package/dist/cli/daemon-commands.js +105 -40
- package/dist/cli/diag.js +31 -0
- package/dist/cli/fs-command.js +67 -67
- package/dist/cli/handoff-command.js +41 -9
- package/dist/cli/index.js +83 -77
- package/dist/cli/link-rules.js +21 -21
- package/dist/cli/managed-command-guard.js +3 -0
- package/dist/cli/menu-client.js +46 -31
- package/dist/cli/net-check.js +22 -22
- package/dist/cli/queue-command.js +29 -29
- package/dist/cli/response.js +30 -30
- package/dist/cli/restart-monitor.js +87 -40
- package/dist/cli/stats.js +51 -51
- package/dist/cli/trigger-command.js +56 -56
- package/dist/config/builtin-roles.js +1 -0
- package/dist/config/config-operation-service.js +145 -0
- package/dist/config/contact-operation-service.js +96 -7
- package/dist/config/resolved-config-op.js +27 -7
- package/dist/core/agent-application-service.js +2 -1
- package/dist/core/auth/authorization-audit.js +20 -12
- package/dist/core/auth/operation-authorizer.js +25 -4
- package/dist/core/auth/operation-catalog.js +35 -4
- package/dist/core/auth/remote-access-store.js +40 -1
- package/dist/core/bootstrap-service.js +1 -1
- package/dist/core/command/command-handler.js +83 -26
- package/dist/core/command/diag-service.js +118 -0
- package/dist/core/command/menu-catalog.js +12 -3
- package/dist/core/command/menu-handler.js +47 -26
- package/dist/core/command/menu-protocol.js +5 -0
- package/dist/core/command/menu-token-store.js +41 -8
- package/dist/core/command/slash-gate.js +34 -4
- package/dist/core/command/slash-handler.js +86 -21
- package/dist/core/handoff/runtime.js +205 -27
- package/dist/core/handoff/store.js +193 -4
- package/dist/core/message/im-renderer.js +72 -21
- package/dist/core/message/message-bridge.js +69 -9
- package/dist/core/message/message-queue.js +26 -0
- package/dist/core/message/message-utils.js +1 -0
- package/dist/core/message/response-engine.js +47 -28
- package/dist/core/model/catalog-service.js +79 -49
- package/dist/core/model/context-window-suffix.js +33 -0
- package/dist/core/model/model-catalog.js +1 -1
- package/dist/core/model/model-permission.js +12 -3
- package/dist/core/permission/ec-command-parser.js +51 -12
- package/dist/core/permission/sandbox-runtime.js +36 -14
- package/dist/core/permission/tool-policy.js +2 -1
- package/dist/index.js +280 -163
- package/dist/ipc.js +54 -2
- package/dist/response-system/engines/v1/proactive-flow.js +59 -2
- package/dist/stats/billing.js +41 -15
- package/dist/stats/db.js +159 -159
- package/dist/stats/eck-vars.js +9 -9
- package/dist/stats/price-resolver.js +28 -10
- package/dist/stats/query.js +139 -139
- package/dist/stats/role-budget.js +6 -6
- package/dist/stats/writer.js +51 -51
- package/dist/utils/cross-platform.js +30 -1
- package/dist/utils/error-dict.json +160 -160
- package/dist/utils/error-utils.js +21 -0
- package/dist/utils/evolcore-version.js +129 -0
- package/dist/utils/logger.js +3 -1
- package/dist/utils/macos-autostart.js +22 -22
- package/dist/utils/model-prices.jsonl +23 -23
- package/dist/utils/npm-ops.js +176 -35
- package/dist/utils/welcome.js +22 -22
- package/ecagent/LICENSE +21 -21
- package/ecagent/NOTICE +11 -11
- package/ecagent/README.md +61 -61
- package/ecagent/dist/harness/compaction/branch-summarization.js +30 -30
- package/ecagent/dist/harness/compaction/compaction.js +83 -83
- package/ecagent/dist/harness/messages.js +7 -7
- package/kits/docs/GUIDE.md +20 -20
- package/kits/docs/INDEX.md +66 -66
- package/kits/docs/aun/CHEATSHEET.md +19 -19
- package/kits/docs/aun/SYNC_PROTOCOL.md +15 -15
- package/kits/docs/channels/aun.md +56 -56
- package/kits/docs/channels/feishu.md +56 -56
- package/kits/docs/context-assembly.md +364 -364
- package/kits/docs/eck_templates/GUIDE.template.md +22 -22
- package/kits/docs/eck_templates/INDEX.template.md +28 -28
- package/kits/docs/eck_templates/path-registry.template.md +33 -33
- package/kits/docs/eck_templates/runtime.template.md +19 -19
- package/kits/docs/evolcore/INDEX.md +71 -71
- package/kits/docs/evolcore/agent-create.md +170 -165
- package/kits/docs/evolcore/agent.md +66 -66
- package/kits/docs/evolcore/aid.md +60 -60
- package/kits/docs/evolcore/codex-windows-sandbox.md +146 -146
- package/kits/docs/evolcore/config.md +202 -195
- package/kits/docs/evolcore/contact.md +75 -68
- package/kits/docs/evolcore/ctl.md +46 -46
- package/kits/docs/evolcore/event.md +216 -216
- package/kits/docs/evolcore/fs-architecture.md +1215 -1215
- package/kits/docs/evolcore/fs.md +110 -110
- package/kits/docs/evolcore/group-collaboration.md +243 -243
- package/kits/docs/evolcore/group-fs.md +17 -17
- package/kits/docs/evolcore/group-rules.md +251 -251
- package/kits/docs/evolcore/group.md +152 -152
- package/kits/docs/evolcore/menu-client.md +42 -34
- package/kits/docs/evolcore/model.md +50 -50
- package/kits/docs/evolcore/msg.md +166 -165
- package/kits/docs/evolcore/response.md +75 -75
- package/kits/docs/evolcore/rpc.md +37 -37
- package/kits/docs/evolcore/self-summary.md +29 -29
- package/kits/docs/evolcore/stats.md +83 -83
- package/kits/docs/evolcore/storage.md +50 -50
- package/kits/docs/evolcore/trigger.md +575 -575
- package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -26
- package/kits/docs/identity/PATH_OPS.md +16 -16
- package/kits/docs/identity/ROLE_DETAIL.md +25 -25
- package/kits/docs/identity/identity-tools.md +26 -26
- package/kits/docs/path-registry.md +62 -62
- package/kits/docs/prompt-loading-architecture.md +269 -269
- package/kits/docs/venues/aun-group.md +45 -45
- package/kits/docs/venues/aun-private.md +10 -10
- package/kits/docs/venues/client-desktop.md +10 -10
- package/kits/docs/venues/client-mobile.md +10 -10
- package/kits/docs/venues/feishu-group.md +13 -13
- package/kits/docs/venues/feishu-private.md +9 -9
- package/kits/docs/venues/group.md +37 -25
- package/kits/docs/venues/private.md +10 -10
- package/kits/eck_manifest.auxiliary.json +43 -43
- package/kits/eck_manifest.json +190 -190
- package/kits/eck_message_manifest.json +74 -74
- package/kits/migrations/README-role-config-v4.md +32 -32
- package/kits/migrations/migrate-contact-book-v2.mjs +748 -748
- package/kits/migrations/migrate-role-config-v4.mjs +614 -614
- package/kits/migrations/migrate-role-config-v5.mjs +365 -365
- package/kits/migrations/rename-config-file.mjs +99 -99
- package/kits/rules/01-overview.md +162 -162
- package/kits/rules/02-navigation.md +96 -96
- package/kits/rules/03-identity.md +36 -36
- package/kits/rules/04-relation.md +75 -75
- package/kits/rules/05-venue.md +60 -60
- package/kits/rules/06-channel.md +63 -63
- package/kits/schemas/_meta.json +53 -53
- package/kits/schemas/agent-config.schema.1.json +177 -177
- package/kits/schemas/agent-config.schema.10.json +395 -395
- package/kits/schemas/agent-config.schema.11.json +421 -421
- package/kits/schemas/agent-config.schema.12.json +427 -427
- package/kits/schemas/agent-config.schema.2.json +239 -239
- package/kits/schemas/agent-config.schema.3.json +119 -119
- package/kits/schemas/agent-config.schema.4.json +208 -208
- package/kits/schemas/agent-config.schema.5.json +326 -326
- package/kits/schemas/agent-config.schema.6.json +322 -322
- package/kits/schemas/agent-config.schema.7.json +303 -303
- package/kits/schemas/agent-config.schema.8.json +304 -304
- package/kits/schemas/agent-config.schema.9.json +364 -364
- package/kits/schemas/contact-book.schema.1.json +36 -36
- package/kits/schemas/contact-book.schema.2.json +43 -43
- package/kits/schemas/contact-book.schema.3.json +67 -67
- package/kits/schemas/daemon.schema.1.json +91 -91
- package/kits/schemas/daemon.schema.2.json +101 -101
- package/kits/schemas/daemon.schema.3.json +123 -123
- package/kits/schemas/daemon.schema.4.json +136 -136
- package/kits/schemas/daemon.schema.5.json +135 -135
- package/kits/schemas/daemon.schema.6.json +131 -131
- package/kits/schemas/defaults.schema.1.json +81 -81
- package/kits/schemas/defaults.schema.2.json +85 -85
- package/kits/schemas/defaults.schema.3.json +73 -73
- package/kits/schemas/defaults.schema.4.json +107 -107
- package/kits/schemas/defaults.schema.5.json +119 -119
- package/kits/schemas/menu-exec-schema-commands.md +208 -208
- package/kits/schemas/migrations/README.md +30 -30
- package/kits/schemas/relation-config.schema.1.json +158 -158
- package/kits/schemas/relation-config.schema.2.json +73 -73
- package/kits/schemas/relation-config.schema.3.json +50 -50
- package/kits/schemas/relation-config.schema.4.json +47 -47
- package/kits/schemas/relation-config.schema.5.json +47 -47
- package/kits/schemas/relation-config.schema.6.json +46 -46
- package/kits/schemas/relation-config.schema.7.json +59 -59
- package/kits/schemas/relation-config.schema.8.json +103 -103
- package/kits/schemas/role-config.schema.1.json +201 -201
- package/kits/schemas/role-registry.schema.1.json +35 -35
- package/kits/schemas/single-session.schema.1.json +31 -31
- package/kits/schemas/single-session.schema.2.json +57 -57
- package/kits/schemas/single-session.schema.3.json +32 -32
- package/kits/templates/bootstrap-welcome.md +17 -17
- package/kits/templates/message-fragments/handoff-context-to-target.md +9 -9
- package/kits/templates/message-fragments/handoff-request-to-target.md +19 -19
- package/kits/templates/message-fragments/handoff-response-to-origin.md +9 -9
- package/kits/templates/message-fragments/inject-default.md +2 -2
- package/kits/templates/message-fragments/item.md +2 -2
- package/kits/templates/roles/admin.json +92 -92
- package/kits/templates/roles/member.json +96 -96
- package/kits/templates/roles/owner.json +9 -9
- package/kits/templates/roles/visitor.json +85 -85
- package/kits/templates/system-fragments/baseagent.md +14 -14
- package/kits/templates/system-fragments/bootstrap.md +31 -29
- package/kits/templates/system-fragments/channel.md +64 -64
- package/kits/templates/system-fragments/commands.md +28 -28
- package/kits/templates/system-fragments/identity.md +13 -13
- package/kits/templates/system-fragments/relation.md +19 -19
- package/kits/templates/system-fragments/session.md +59 -59
- package/kits/templates/system-fragments/venue.md +31 -31
- package/package.json +100 -98
|
@@ -1,208 +1,208 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "agent-config.schema.4.json",
|
|
4
|
-
"title": "AgentConfig (agents/{aid}/config.json)",
|
|
5
|
-
"x-logical-name": "agent-config",
|
|
6
|
-
"x-scope": "agent",
|
|
7
|
-
"type": "object",
|
|
8
|
-
"additionalProperties": true,
|
|
9
|
-
"not": { "required": ["permissionMode"] },
|
|
10
|
-
"required": ["aid", "channels"],
|
|
11
|
-
"properties": {
|
|
12
|
-
"$schema_version": { "type": "number", "default": 4, "x-merge": "scalar", "description": "配置 Schema 版本;v4 使用角色级字段权限策略" },
|
|
13
|
-
"aid": { "type": "string", "x-merge": "scalar", "description": "Agent 的全局唯一身份标识" },
|
|
14
|
-
"enabled": { "type": "boolean", "default": true, "x-merge": "scalar", "description": "是否启用 Agent;缺省按启用处理" },
|
|
15
|
-
"lifecycle": { "type": "string", "enum": ["created", "bootstrapping", "active"], "x-merge": "scalar", "description": "agent 生命周期状态", "x-enumDescriptions": { "created": "已创建,尚未进入引导流程", "bootstrapping": "引导中(初始化配置/身份)", "active": "已激活,正常运行" } },
|
|
16
|
-
"initialized": { "type": "boolean", "x-merge": "scalar", "description": "是否已完成 Agent 初始化流程" },
|
|
17
|
-
"owners": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "x-merge": "list", "description": "Agent 所有者身份列表;用于 owner 级控制和通知" },
|
|
18
|
-
"admins": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "x-merge": "list", "description": "Agent 管理员身份列表" },
|
|
19
|
-
"channels": { "type": "array", "items": { "type": "object" }, "x-merge": "list", "description": "Agent 绑定的消息渠道实例列表" },
|
|
20
|
-
"aun": { "type": "object", "x-merge": "dict", "description": "Agent 级 AUN 通信配置" },
|
|
21
|
-
"models": { "type": "object", "x-merge": "dict", "description": "Agent 级模型别名、注册表或模型覆盖配置" },
|
|
22
|
-
"active_baseagent": { "type": "string", "x-merge": "scalar", "description": "默认使用的 base agent 标识,例如 claude 或 codex" },
|
|
23
|
-
"baseagents": { "type": "object", "x-merge": "dict", "description": "各 base agent 的模型、推理强度及运行参数" },
|
|
24
|
-
"projects": { "type": "object", "x-merge": "dict", "description": "Agent 可用项目路径和项目选择配置" },
|
|
25
|
-
"capabilities": { "type": "object", "x-merge": "dict", "description": "Agent 能力开关及能力参数" },
|
|
26
|
-
"debug": { "type": "object", "x-merge": "dict", "description": "Agent 级调试和诊断配置" },
|
|
27
|
-
"observable": { "type": "boolean", "default": false, "x-merge": "scalar", "description": "是否将 Agent 的入站和出站消息转发给 owners;默认关闭" },
|
|
28
|
-
"chatmode": { "type": "object", "x-merge": "dict", "default": { "private": "interactive", "group": "proactive", "nothuman": "proactive" }, "properties": { "private": { "enum": ["interactive", "proactive"], "description": "人类私聊场景的投递方式", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } }, "group": { "enum": ["interactive", "proactive"], "description": "群聊场景的投递方式", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } }, "nothuman": { "enum": ["interactive", "proactive"], "description": "非人类(agent)私聊场景的投递方式", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } } }, "additionalProperties": false, "description": "chatmode 场景默认表;出厂默认值即此 default(agent 级改默认,关系级按键覆盖)。键封闭 private/group/nothuman,值枚举 interactive/proactive" },
|
|
29
|
-
"mentionMode": { "type": "string", "enum": ["disabled", "mention-only"], "default": "disabled", "x-merge": "scalar", "description": "@ 处理策略(顶层通用参数)", "x-enumDescriptions": { "disabled": "处理所有消息", "mention-only": "只处理被 @ 的消息,未 @ 作引用上下文" } },
|
|
30
|
-
"model": { "type": "string", "x-merge": "scalar", "description": "主会话模型(顶层通用参数);无默认值,缺省时由响应模式/全局默认决定" },
|
|
31
|
-
"responseMode": { "type": "string", "x-merge": "scalar", "description": "响应模式 id(标量);候选清单/默认值来自注册表,非 schema。关系级>agent级>注册表首选" },
|
|
32
|
-
"responseModeParams": { "type": "object", "x-merge": "dict", "description": "响应模式特有参数字典,按模式 id 分桶:{ [modeId]: {...} }" },
|
|
33
|
-
"flush_delay": { "type": "number", "minimum": 0, "default": 3, "x-merge": "scalar", "description": "流式出站消息的批量刷新间隔,单位为秒;默认 3 秒" },
|
|
34
|
-
"debounce": { "type": "number", "minimum": 0, "default": 0, "x-merge": "scalar", "description": "入站消息合并窗口,单位为秒;0 表示不合并,默认 0" },
|
|
35
|
-
"show_activities": { "type": "string", "enum": ["all", "text", "none"], "default": "all", "x-merge": "scalar", "description": "中间输出展示范围(仅对 interactive 私聊有意义)", "x-enumDescriptions": { "all": "文本 + activity", "text": "仅文本", "none": "全部静默" } },
|
|
36
|
-
"session_renew": {
|
|
37
|
-
"type": "object",
|
|
38
|
-
"x-merge": "dict",
|
|
39
|
-
"additionalProperties": false,
|
|
40
|
-
"description": "会话超时后的续接判定",
|
|
41
|
-
"properties": {
|
|
42
|
-
"enabled": { "type": "boolean", "default": false, "description": "是否启用超时后的会话连续性判定" },
|
|
43
|
-
"after_hours": { "type": "number", "exclusiveMinimum": 0, "default": 24, "description": "距最后一条有效对话超过该小时数才触发判定" },
|
|
44
|
-
"effort": { "type": "string", "enum": ["low", "medium", "high", "xhigh", "max"], "default": "low", "description": "续接判定的推理强度", "x-enumDescriptions": { "low": "低", "medium": "中", "high": "高", "xhigh": "很高", "max": "最高" } },
|
|
45
|
-
"fallback_action": { "type": "string", "enum": ["continue", "new"], "default": "continue", "description": "无法判定时的兜底动作", "x-enumDescriptions": { "continue": "继续沿用当前会话", "new": "开启新会话" } }
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"group_venue_sync": { "type": "object", "x-merge": "dict" },
|
|
49
|
-
"render": { "type": "object", "x-merge": "dict" },
|
|
50
|
-
"sessionManifests": { "type": "object", "x-merge": "dict" },
|
|
51
|
-
"enable_rich_content": { "type": "boolean", "x-merge": "scalar", "description": "是否允许渠道使用富内容消息;未设置时由渠道能力和运行时默认决定" },
|
|
52
|
-
"roles": {
|
|
53
|
-
"type": "object",
|
|
54
|
-
"x-merge": "dict",
|
|
55
|
-
"additionalProperties": false,
|
|
56
|
-
"description": "Agent 级角色策略。权限模式仅在角色定义中配置,关系配置不可直接覆盖。",
|
|
57
|
-
"properties": {
|
|
58
|
-
"defaultRoles": {
|
|
59
|
-
"type": "object",
|
|
60
|
-
"additionalProperties": false,
|
|
61
|
-
"default": { "private": null, "group": null },
|
|
62
|
-
"description": "未显式分配角色时,私聊和群聊使用的默认角色;null 表示不授予默认角色。",
|
|
63
|
-
"properties": {
|
|
64
|
-
"private": { "type": ["string", "null"], "pattern": "^[a-z0-9_-]+$", "default": null, "description": "私聊对端的默认角色;必须引用内置或 definitions 中的角色。" },
|
|
65
|
-
"group": { "type": ["string", "null"], "pattern": "^[a-z0-9_-]+$", "default": null, "description": "群聊对端的默认角色;必须引用内置或 definitions 中的角色。" }
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
"definitions": {
|
|
69
|
-
"type": "object",
|
|
70
|
-
"propertyNames": { "pattern": "^(?!owner$)(?!admin$)[a-z0-9_-]+$" },
|
|
71
|
-
"description": "自定义角色定义。owner 和 admin 为系统保留角色,不能在此重定义。",
|
|
72
|
-
"additionalProperties": {
|
|
73
|
-
"type": "object",
|
|
74
|
-
"additionalProperties": false,
|
|
75
|
-
"required": ["description", "permissions"],
|
|
76
|
-
"description": "一个自定义角色的访问、字段权限、命令权限及用量限制。",
|
|
77
|
-
"properties": {
|
|
78
|
-
"description": { "type": "string", "description": "角色的用途和授权边界说明。" },
|
|
79
|
-
"allowAccess": { "type": "boolean", "default": true, "description": "是否允许该角色访问 Agent;缺省为 true。" },
|
|
80
|
-
"permissions": {
|
|
81
|
-
"type": "object",
|
|
82
|
-
"required": ["permissionMode"],
|
|
83
|
-
"description": "角色对可配置行为字段施加的默认值、关系级覆盖权和可选值约束。",
|
|
84
|
-
"properties": {
|
|
85
|
-
"permissionMode": {
|
|
86
|
-
"type": "object",
|
|
87
|
-
"additionalProperties": false,
|
|
88
|
-
"required": ["default", "allowOverride"],
|
|
89
|
-
"description": "工具调用的审批策略(角色级)",
|
|
90
|
-
"properties": {
|
|
91
|
-
"default": { "type": "string", "enum": ["readonly", "auto", "request", "bypass"], "description": "角色默认的工具调用审批策略;未得到有效角色策略时运行时安全回退为 readonly。", "x-enumDescriptions": { "readonly": "只读模式:明确只读工具和普通路径上的受限只读 Shell 自动执行;写入、H/L 类读取、未知 Shell 和未知工具拒绝;EC 命令仍由 daemon 鉴权", "auto": "自动模式:常规 workspace 操作自动执行,已识别危险操作和扩权请求拒绝", "request": "请求模式:常规操作自动执行,危险 Bash 和沙箱扩权请求人工审批", "bypass": "放行模式:沙箱内常规和普通审批命令自动执行,强危险 Git 和越界扩权仍需审批" } },
|
|
92
|
-
"allowOverride": { "const": false, "default": false, "description": "权限模式禁止关系级覆盖,固定为 false。" },
|
|
93
|
-
"allowedValues": {
|
|
94
|
-
"type": "array",
|
|
95
|
-
"items": { "type": "string", "enum": ["readonly", "auto", "request", "bypass"] },
|
|
96
|
-
"uniqueItems": true,
|
|
97
|
-
"description": "保留的权限模式候选集合;permissionMode 当前不可由关系级覆盖,通常无需配置。"
|
|
98
|
-
},
|
|
99
|
-
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
"chatmode.private": {
|
|
103
|
-
"type": "object",
|
|
104
|
-
"additionalProperties": false,
|
|
105
|
-
"required": ["default", "allowOverride"],
|
|
106
|
-
"description": "角色在私聊场景中的响应方式策略。",
|
|
107
|
-
"properties": {
|
|
108
|
-
"default": { "type": "string", "enum": ["interactive", "proactive"], "description": "未设置有效关系级覆盖时使用的私聊响应方式。", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } },
|
|
109
|
-
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许该角色在关系级覆盖私聊响应方式;默认不允许。" },
|
|
110
|
-
"allowedValues": {
|
|
111
|
-
"type": "array",
|
|
112
|
-
"items": { "type": "string", "enum": ["interactive", "proactive"] },
|
|
113
|
-
"uniqueItems": true,
|
|
114
|
-
"description": "允许覆盖到的响应方式白名单;未配置或为空时不额外限制枚举值。"
|
|
115
|
-
},
|
|
116
|
-
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
"chatmode.group": {
|
|
120
|
-
"type": "object",
|
|
121
|
-
"additionalProperties": false,
|
|
122
|
-
"required": ["default", "allowOverride"],
|
|
123
|
-
"description": "角色在群聊场景中的响应方式策略。",
|
|
124
|
-
"properties": {
|
|
125
|
-
"default": { "type": "string", "enum": ["interactive", "proactive"], "description": "未设置有效关系级覆盖时使用的群聊响应方式。", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } },
|
|
126
|
-
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许该角色在关系级覆盖群聊响应方式;默认不允许。" },
|
|
127
|
-
"allowedValues": {
|
|
128
|
-
"type": "array",
|
|
129
|
-
"items": { "type": "string", "enum": ["interactive", "proactive"] },
|
|
130
|
-
"uniqueItems": true,
|
|
131
|
-
"description": "允许覆盖到的响应方式白名单;未配置或为空时不额外限制枚举值。"
|
|
132
|
-
},
|
|
133
|
-
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
"baseagents.claude.effort": {
|
|
137
|
-
"type": "object",
|
|
138
|
-
"additionalProperties": false,
|
|
139
|
-
"required": ["default", "allowOverride"],
|
|
140
|
-
"description": "Claude runner 的推理强度策略。",
|
|
141
|
-
"properties": {
|
|
142
|
-
"default": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh", "max"], "description": "角色默认的 Claude 推理强度。", "x-enumDescriptions": { "auto": "自动选择", "low": "低", "medium": "中", "high": "高", "xhigh": "很高", "max": "最高" } },
|
|
143
|
-
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许关系级覆盖 Claude 推理强度;默认不允许。" },
|
|
144
|
-
"allowedValues": {
|
|
145
|
-
"type": "array",
|
|
146
|
-
"items": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh", "max"] },
|
|
147
|
-
"uniqueItems": true,
|
|
148
|
-
"description": "允许关系级覆盖的 Claude 推理强度白名单。"
|
|
149
|
-
},
|
|
150
|
-
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
"baseagents.codex.reasoning": {
|
|
154
|
-
"type": "object",
|
|
155
|
-
"additionalProperties": false,
|
|
156
|
-
"required": ["default", "allowOverride"],
|
|
157
|
-
"description": "Codex runner 的推理强度策略。",
|
|
158
|
-
"properties": {
|
|
159
|
-
"default": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh"], "description": "角色默认的 Codex 推理强度。", "x-enumDescriptions": { "auto": "自动选择", "low": "低", "medium": "中", "high": "高", "xhigh": "很高" } },
|
|
160
|
-
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许关系级覆盖 Codex 推理强度;默认不允许。" },
|
|
161
|
-
"allowedValues": {
|
|
162
|
-
"type": "array",
|
|
163
|
-
"items": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh"] },
|
|
164
|
-
"uniqueItems": true,
|
|
165
|
-
"description": "允许关系级覆盖的 Codex 推理强度白名单。"
|
|
166
|
-
},
|
|
167
|
-
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
"patternProperties": {
|
|
172
|
-
"^baseagents\\.[a-z0-9_-]+\\.model$": {
|
|
173
|
-
"type": "object",
|
|
174
|
-
"additionalProperties": false,
|
|
175
|
-
"required": ["default", "allowOverride", "allowedModels"],
|
|
176
|
-
"description": "指定 base agent 的模型选择策略;模型必须同时匹配 allowedModels。",
|
|
177
|
-
"properties": {
|
|
178
|
-
"default": { "type": "string", "minLength": 1, "description": "角色默认模型标识;必须被 allowedModels 中的精确值或通配符允许。" },
|
|
179
|
-
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许关系级覆盖模型;默认不允许。" },
|
|
180
|
-
"allowedModels": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 }, "description": "模型白名单;支持以 * 结尾的前缀通配符,且至少包含一个模型。" },
|
|
181
|
-
"reason": { "type": "string", "description": "采用该角色模型策略的可审计原因或管理备注。" }
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
},
|
|
185
|
-
"additionalProperties": false
|
|
186
|
-
},
|
|
187
|
-
"commandPermissions": { "type": "object", "description": "按 operation 标识控制命令是否允许执行,可附带作用域、危险标记和约束。" },
|
|
188
|
-
"usageLimits": {
|
|
189
|
-
"type": "object",
|
|
190
|
-
"additionalProperties": false,
|
|
191
|
-
"description": "角色用量额度策略;enabled 未开启或未配置时不启用额度限制。",
|
|
192
|
-
"properties": {
|
|
193
|
-
"enabled": { "type": "boolean", "default": false, "description": "是否启用该角色的用量额度限制;默认关闭。" },
|
|
194
|
-
"resetMode": { "type": "string", "enum": ["never", "daily", "weekly", "monthly"], "description": "用量额度的重置周期", "x-enumDescriptions": { "never": "从不重置", "daily": "每日重置", "weekly": "每周重置", "monthly": "每月重置" } },
|
|
195
|
-
"currency": { "type": "string", "enum": ["CNY", "USD"], "description": "额度计价货币", "x-enumDescriptions": { "CNY": "人民币", "USD": "美元" } },
|
|
196
|
-
"limitAmount": { "type": ["number", "null"], "minimum": 0, "description": "额度上限金额;null 表示不限" },
|
|
197
|
-
"costBasis": { "type": "string", "enum": ["gateway", "official"], "description": "计费口径", "x-enumDescriptions": { "gateway": "按网关计费价", "official": "按官方定价" } },
|
|
198
|
-
"scope": { "type": "string", "enum": ["subject", "role"], "description": "额度统计范围", "x-enumDescriptions": { "subject": "按主体(对端)统计", "role": "按角色统计" } }
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
"extra_backup": { "type": "array", "items": { "type": "object" }, "x-merge": "list" }
|
|
207
|
-
}
|
|
208
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "agent-config.schema.4.json",
|
|
4
|
+
"title": "AgentConfig (agents/{aid}/config.json)",
|
|
5
|
+
"x-logical-name": "agent-config",
|
|
6
|
+
"x-scope": "agent",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": true,
|
|
9
|
+
"not": { "required": ["permissionMode"] },
|
|
10
|
+
"required": ["aid", "channels"],
|
|
11
|
+
"properties": {
|
|
12
|
+
"$schema_version": { "type": "number", "default": 4, "x-merge": "scalar", "description": "配置 Schema 版本;v4 使用角色级字段权限策略" },
|
|
13
|
+
"aid": { "type": "string", "x-merge": "scalar", "description": "Agent 的全局唯一身份标识" },
|
|
14
|
+
"enabled": { "type": "boolean", "default": true, "x-merge": "scalar", "description": "是否启用 Agent;缺省按启用处理" },
|
|
15
|
+
"lifecycle": { "type": "string", "enum": ["created", "bootstrapping", "active"], "x-merge": "scalar", "description": "agent 生命周期状态", "x-enumDescriptions": { "created": "已创建,尚未进入引导流程", "bootstrapping": "引导中(初始化配置/身份)", "active": "已激活,正常运行" } },
|
|
16
|
+
"initialized": { "type": "boolean", "x-merge": "scalar", "description": "是否已完成 Agent 初始化流程" },
|
|
17
|
+
"owners": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "x-merge": "list", "description": "Agent 所有者身份列表;用于 owner 级控制和通知" },
|
|
18
|
+
"admins": { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "x-merge": "list", "description": "Agent 管理员身份列表" },
|
|
19
|
+
"channels": { "type": "array", "items": { "type": "object" }, "x-merge": "list", "description": "Agent 绑定的消息渠道实例列表" },
|
|
20
|
+
"aun": { "type": "object", "x-merge": "dict", "description": "Agent 级 AUN 通信配置" },
|
|
21
|
+
"models": { "type": "object", "x-merge": "dict", "description": "Agent 级模型别名、注册表或模型覆盖配置" },
|
|
22
|
+
"active_baseagent": { "type": "string", "x-merge": "scalar", "description": "默认使用的 base agent 标识,例如 claude 或 codex" },
|
|
23
|
+
"baseagents": { "type": "object", "x-merge": "dict", "description": "各 base agent 的模型、推理强度及运行参数" },
|
|
24
|
+
"projects": { "type": "object", "x-merge": "dict", "description": "Agent 可用项目路径和项目选择配置" },
|
|
25
|
+
"capabilities": { "type": "object", "x-merge": "dict", "description": "Agent 能力开关及能力参数" },
|
|
26
|
+
"debug": { "type": "object", "x-merge": "dict", "description": "Agent 级调试和诊断配置" },
|
|
27
|
+
"observable": { "type": "boolean", "default": false, "x-merge": "scalar", "description": "是否将 Agent 的入站和出站消息转发给 owners;默认关闭" },
|
|
28
|
+
"chatmode": { "type": "object", "x-merge": "dict", "default": { "private": "interactive", "group": "proactive", "nothuman": "proactive" }, "properties": { "private": { "enum": ["interactive", "proactive"], "description": "人类私聊场景的投递方式", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } }, "group": { "enum": ["interactive", "proactive"], "description": "群聊场景的投递方式", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } }, "nothuman": { "enum": ["interactive", "proactive"], "description": "非人类(agent)私聊场景的投递方式", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } } }, "additionalProperties": false, "description": "chatmode 场景默认表;出厂默认值即此 default(agent 级改默认,关系级按键覆盖)。键封闭 private/group/nothuman,值枚举 interactive/proactive" },
|
|
29
|
+
"mentionMode": { "type": "string", "enum": ["disabled", "mention-only"], "default": "disabled", "x-merge": "scalar", "description": "@ 处理策略(顶层通用参数)", "x-enumDescriptions": { "disabled": "处理所有消息", "mention-only": "只处理被 @ 的消息,未 @ 作引用上下文" } },
|
|
30
|
+
"model": { "type": "string", "x-merge": "scalar", "description": "主会话模型(顶层通用参数);无默认值,缺省时由响应模式/全局默认决定" },
|
|
31
|
+
"responseMode": { "type": "string", "x-merge": "scalar", "description": "响应模式 id(标量);候选清单/默认值来自注册表,非 schema。关系级>agent级>注册表首选" },
|
|
32
|
+
"responseModeParams": { "type": "object", "x-merge": "dict", "description": "响应模式特有参数字典,按模式 id 分桶:{ [modeId]: {...} }" },
|
|
33
|
+
"flush_delay": { "type": "number", "minimum": 0, "default": 3, "x-merge": "scalar", "description": "流式出站消息的批量刷新间隔,单位为秒;默认 3 秒" },
|
|
34
|
+
"debounce": { "type": "number", "minimum": 0, "default": 0, "x-merge": "scalar", "description": "入站消息合并窗口,单位为秒;0 表示不合并,默认 0" },
|
|
35
|
+
"show_activities": { "type": "string", "enum": ["all", "text", "none"], "default": "all", "x-merge": "scalar", "description": "中间输出展示范围(仅对 interactive 私聊有意义)", "x-enumDescriptions": { "all": "文本 + activity", "text": "仅文本", "none": "全部静默" } },
|
|
36
|
+
"session_renew": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"x-merge": "dict",
|
|
39
|
+
"additionalProperties": false,
|
|
40
|
+
"description": "会话超时后的续接判定",
|
|
41
|
+
"properties": {
|
|
42
|
+
"enabled": { "type": "boolean", "default": false, "description": "是否启用超时后的会话连续性判定" },
|
|
43
|
+
"after_hours": { "type": "number", "exclusiveMinimum": 0, "default": 24, "description": "距最后一条有效对话超过该小时数才触发判定" },
|
|
44
|
+
"effort": { "type": "string", "enum": ["low", "medium", "high", "xhigh", "max"], "default": "low", "description": "续接判定的推理强度", "x-enumDescriptions": { "low": "低", "medium": "中", "high": "高", "xhigh": "很高", "max": "最高" } },
|
|
45
|
+
"fallback_action": { "type": "string", "enum": ["continue", "new"], "default": "continue", "description": "无法判定时的兜底动作", "x-enumDescriptions": { "continue": "继续沿用当前会话", "new": "开启新会话" } }
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"group_venue_sync": { "type": "object", "x-merge": "dict" },
|
|
49
|
+
"render": { "type": "object", "x-merge": "dict" },
|
|
50
|
+
"sessionManifests": { "type": "object", "x-merge": "dict" },
|
|
51
|
+
"enable_rich_content": { "type": "boolean", "x-merge": "scalar", "description": "是否允许渠道使用富内容消息;未设置时由渠道能力和运行时默认决定" },
|
|
52
|
+
"roles": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"x-merge": "dict",
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"description": "Agent 级角色策略。权限模式仅在角色定义中配置,关系配置不可直接覆盖。",
|
|
57
|
+
"properties": {
|
|
58
|
+
"defaultRoles": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"default": { "private": null, "group": null },
|
|
62
|
+
"description": "未显式分配角色时,私聊和群聊使用的默认角色;null 表示不授予默认角色。",
|
|
63
|
+
"properties": {
|
|
64
|
+
"private": { "type": ["string", "null"], "pattern": "^[a-z0-9_-]+$", "default": null, "description": "私聊对端的默认角色;必须引用内置或 definitions 中的角色。" },
|
|
65
|
+
"group": { "type": ["string", "null"], "pattern": "^[a-z0-9_-]+$", "default": null, "description": "群聊对端的默认角色;必须引用内置或 definitions 中的角色。" }
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"definitions": {
|
|
69
|
+
"type": "object",
|
|
70
|
+
"propertyNames": { "pattern": "^(?!owner$)(?!admin$)[a-z0-9_-]+$" },
|
|
71
|
+
"description": "自定义角色定义。owner 和 admin 为系统保留角色,不能在此重定义。",
|
|
72
|
+
"additionalProperties": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"additionalProperties": false,
|
|
75
|
+
"required": ["description", "permissions"],
|
|
76
|
+
"description": "一个自定义角色的访问、字段权限、命令权限及用量限制。",
|
|
77
|
+
"properties": {
|
|
78
|
+
"description": { "type": "string", "description": "角色的用途和授权边界说明。" },
|
|
79
|
+
"allowAccess": { "type": "boolean", "default": true, "description": "是否允许该角色访问 Agent;缺省为 true。" },
|
|
80
|
+
"permissions": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"required": ["permissionMode"],
|
|
83
|
+
"description": "角色对可配置行为字段施加的默认值、关系级覆盖权和可选值约束。",
|
|
84
|
+
"properties": {
|
|
85
|
+
"permissionMode": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"required": ["default", "allowOverride"],
|
|
89
|
+
"description": "工具调用的审批策略(角色级)",
|
|
90
|
+
"properties": {
|
|
91
|
+
"default": { "type": "string", "enum": ["readonly", "auto", "request", "bypass"], "description": "角色默认的工具调用审批策略;未得到有效角色策略时运行时安全回退为 readonly。", "x-enumDescriptions": { "readonly": "只读模式:明确只读工具和普通路径上的受限只读 Shell 自动执行;写入、H/L 类读取、未知 Shell 和未知工具拒绝;EC 命令仍由 daemon 鉴权", "auto": "自动模式:常规 workspace 操作自动执行,已识别危险操作和扩权请求拒绝", "request": "请求模式:常规操作自动执行,危险 Bash 和沙箱扩权请求人工审批", "bypass": "放行模式:沙箱内常规和普通审批命令自动执行,强危险 Git 和越界扩权仍需审批" } },
|
|
92
|
+
"allowOverride": { "const": false, "default": false, "description": "权限模式禁止关系级覆盖,固定为 false。" },
|
|
93
|
+
"allowedValues": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": { "type": "string", "enum": ["readonly", "auto", "request", "bypass"] },
|
|
96
|
+
"uniqueItems": true,
|
|
97
|
+
"description": "保留的权限模式候选集合;permissionMode 当前不可由关系级覆盖,通常无需配置。"
|
|
98
|
+
},
|
|
99
|
+
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"chatmode.private": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"additionalProperties": false,
|
|
105
|
+
"required": ["default", "allowOverride"],
|
|
106
|
+
"description": "角色在私聊场景中的响应方式策略。",
|
|
107
|
+
"properties": {
|
|
108
|
+
"default": { "type": "string", "enum": ["interactive", "proactive"], "description": "未设置有效关系级覆盖时使用的私聊响应方式。", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } },
|
|
109
|
+
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许该角色在关系级覆盖私聊响应方式;默认不允许。" },
|
|
110
|
+
"allowedValues": {
|
|
111
|
+
"type": "array",
|
|
112
|
+
"items": { "type": "string", "enum": ["interactive", "proactive"] },
|
|
113
|
+
"uniqueItems": true,
|
|
114
|
+
"description": "允许覆盖到的响应方式白名单;未配置或为空时不额外限制枚举值。"
|
|
115
|
+
},
|
|
116
|
+
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"chatmode.group": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"additionalProperties": false,
|
|
122
|
+
"required": ["default", "allowOverride"],
|
|
123
|
+
"description": "角色在群聊场景中的响应方式策略。",
|
|
124
|
+
"properties": {
|
|
125
|
+
"default": { "type": "string", "enum": ["interactive", "proactive"], "description": "未设置有效关系级覆盖时使用的群聊响应方式。", "x-enumDescriptions": { "interactive": "同步交互:输出即回复", "proactive": "主动推送:CLI 回复 + 思考投影" } },
|
|
126
|
+
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许该角色在关系级覆盖群聊响应方式;默认不允许。" },
|
|
127
|
+
"allowedValues": {
|
|
128
|
+
"type": "array",
|
|
129
|
+
"items": { "type": "string", "enum": ["interactive", "proactive"] },
|
|
130
|
+
"uniqueItems": true,
|
|
131
|
+
"description": "允许覆盖到的响应方式白名单;未配置或为空时不额外限制枚举值。"
|
|
132
|
+
},
|
|
133
|
+
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"baseagents.claude.effort": {
|
|
137
|
+
"type": "object",
|
|
138
|
+
"additionalProperties": false,
|
|
139
|
+
"required": ["default", "allowOverride"],
|
|
140
|
+
"description": "Claude runner 的推理强度策略。",
|
|
141
|
+
"properties": {
|
|
142
|
+
"default": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh", "max"], "description": "角色默认的 Claude 推理强度。", "x-enumDescriptions": { "auto": "自动选择", "low": "低", "medium": "中", "high": "高", "xhigh": "很高", "max": "最高" } },
|
|
143
|
+
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许关系级覆盖 Claude 推理强度;默认不允许。" },
|
|
144
|
+
"allowedValues": {
|
|
145
|
+
"type": "array",
|
|
146
|
+
"items": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh", "max"] },
|
|
147
|
+
"uniqueItems": true,
|
|
148
|
+
"description": "允许关系级覆盖的 Claude 推理强度白名单。"
|
|
149
|
+
},
|
|
150
|
+
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"baseagents.codex.reasoning": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"additionalProperties": false,
|
|
156
|
+
"required": ["default", "allowOverride"],
|
|
157
|
+
"description": "Codex runner 的推理强度策略。",
|
|
158
|
+
"properties": {
|
|
159
|
+
"default": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh"], "description": "角色默认的 Codex 推理强度。", "x-enumDescriptions": { "auto": "自动选择", "low": "低", "medium": "中", "high": "高", "xhigh": "很高" } },
|
|
160
|
+
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许关系级覆盖 Codex 推理强度;默认不允许。" },
|
|
161
|
+
"allowedValues": {
|
|
162
|
+
"type": "array",
|
|
163
|
+
"items": { "type": "string", "enum": ["auto", "low", "medium", "high", "xhigh"] },
|
|
164
|
+
"uniqueItems": true,
|
|
165
|
+
"description": "允许关系级覆盖的 Codex 推理强度白名单。"
|
|
166
|
+
},
|
|
167
|
+
"reason": { "type": "string", "description": "采用该角色策略的可审计原因或管理备注。" }
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"patternProperties": {
|
|
172
|
+
"^baseagents\\.[a-z0-9_-]+\\.model$": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"additionalProperties": false,
|
|
175
|
+
"required": ["default", "allowOverride", "allowedModels"],
|
|
176
|
+
"description": "指定 base agent 的模型选择策略;模型必须同时匹配 allowedModels。",
|
|
177
|
+
"properties": {
|
|
178
|
+
"default": { "type": "string", "minLength": 1, "description": "角色默认模型标识;必须被 allowedModels 中的精确值或通配符允许。" },
|
|
179
|
+
"allowOverride": { "type": "boolean", "default": false, "description": "是否允许关系级覆盖模型;默认不允许。" },
|
|
180
|
+
"allowedModels": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 }, "description": "模型白名单;支持以 * 结尾的前缀通配符,且至少包含一个模型。" },
|
|
181
|
+
"reason": { "type": "string", "description": "采用该角色模型策略的可审计原因或管理备注。" }
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"additionalProperties": false
|
|
186
|
+
},
|
|
187
|
+
"commandPermissions": { "type": "object", "description": "按 operation 标识控制命令是否允许执行,可附带作用域、危险标记和约束。" },
|
|
188
|
+
"usageLimits": {
|
|
189
|
+
"type": "object",
|
|
190
|
+
"additionalProperties": false,
|
|
191
|
+
"description": "角色用量额度策略;enabled 未开启或未配置时不启用额度限制。",
|
|
192
|
+
"properties": {
|
|
193
|
+
"enabled": { "type": "boolean", "default": false, "description": "是否启用该角色的用量额度限制;默认关闭。" },
|
|
194
|
+
"resetMode": { "type": "string", "enum": ["never", "daily", "weekly", "monthly"], "description": "用量额度的重置周期", "x-enumDescriptions": { "never": "从不重置", "daily": "每日重置", "weekly": "每周重置", "monthly": "每月重置" } },
|
|
195
|
+
"currency": { "type": "string", "enum": ["CNY", "USD"], "description": "额度计价货币", "x-enumDescriptions": { "CNY": "人民币", "USD": "美元" } },
|
|
196
|
+
"limitAmount": { "type": ["number", "null"], "minimum": 0, "description": "额度上限金额;null 表示不限" },
|
|
197
|
+
"costBasis": { "type": "string", "enum": ["gateway", "official"], "description": "计费口径", "x-enumDescriptions": { "gateway": "按网关计费价", "official": "按官方定价" } },
|
|
198
|
+
"scope": { "type": "string", "enum": ["subject", "role"], "description": "额度统计范围", "x-enumDescriptions": { "subject": "按主体(对端)统计", "role": "按角色统计" } }
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"extra_backup": { "type": "array", "items": { "type": "object" }, "x-merge": "list" }
|
|
207
|
+
}
|
|
208
|
+
}
|