evolcore 0.0.24 → 0.0.25

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.
Files changed (197) hide show
  1. package/CHANGELOG.md +578 -561
  2. package/LICENSE +21 -21
  3. package/README.md +455 -455
  4. package/bin/codex-managed-acl.ps1 +160 -160
  5. package/bin/codex-managed-hook.mjs +208 -208
  6. package/bin/ec-safe-output.js +327 -327
  7. package/bin/ec.js +29 -29
  8. package/bin/install-codex-managed-hooks.mjs +555 -555
  9. package/dist/agents/claude-runner.js +4 -1
  10. package/dist/agents/codex-runner.js +7 -4
  11. package/dist/agents/ecagent-runner.js +14 -13
  12. package/dist/agents/gemini-runner.js +22 -2
  13. package/dist/aun/aid/agentmd.js +56 -4
  14. package/dist/aun/aid/index.js +1 -0
  15. package/dist/aun/aid/managed-operation.js +53 -1
  16. package/dist/aun/storage/client.js +4 -1
  17. package/dist/aun/storage/index.js +1 -1
  18. package/dist/cli/agent-command.js +186 -87
  19. package/dist/cli/agent-create.js +42 -4
  20. package/dist/cli/agent.js +103 -1
  21. package/dist/cli/aun-commands.js +360 -294
  22. package/dist/cli/bench.js +20 -20
  23. package/dist/cli/config.js +20 -20
  24. package/dist/cli/contact.js +10 -10
  25. package/dist/cli/ctl-command.js +22 -22
  26. package/dist/cli/daemon-commands.js +15 -15
  27. package/dist/cli/fs-command.js +67 -67
  28. package/dist/cli/handoff-command.js +7 -7
  29. package/dist/cli/index.js +77 -77
  30. package/dist/cli/link-rules.js +21 -21
  31. package/dist/cli/menu-client.js +11 -11
  32. package/dist/cli/net-check.js +22 -22
  33. package/dist/cli/queue-command.js +29 -29
  34. package/dist/cli/response.js +30 -30
  35. package/dist/cli/restart-monitor.js +30 -30
  36. package/dist/cli/stats.js +51 -51
  37. package/dist/cli/trigger-command.js +56 -56
  38. package/dist/config/builtin-roles.js +1 -0
  39. package/dist/config/config-manager.js +15 -0
  40. package/dist/config/config-operation-service.js +20 -3
  41. package/dist/config/resolved-config-op.js +39 -1
  42. package/dist/core/auth/operation-authorizer.js +62 -4
  43. package/dist/core/auth/operation-catalog.js +16 -0
  44. package/dist/core/command/agent-control.js +54 -25
  45. package/dist/core/command/cli-intent-parser.js +18 -0
  46. package/dist/core/command/command-handler.js +91 -16
  47. package/dist/core/command/menu-catalog.js +1 -0
  48. package/dist/core/command/menu-handler.js +41 -5
  49. package/dist/core/command/menu-protocol.js +1 -0
  50. package/dist/core/command/slash-handler.js +9 -9
  51. package/dist/core/event-catalog.js +5 -0
  52. package/dist/core/evolagent.js +3 -3
  53. package/dist/core/message/response-engine.js +12 -6
  54. package/dist/core/permission/tool-policy.js +45 -6
  55. package/dist/index.js +209 -162
  56. package/dist/stats/db.js +159 -159
  57. package/dist/stats/eck-vars.js +9 -9
  58. package/dist/stats/query.js +139 -139
  59. package/dist/stats/role-budget.js +6 -6
  60. package/dist/stats/writer.js +51 -51
  61. package/dist/utils/avatar-upload.js +282 -23
  62. package/dist/utils/error-dict.json +160 -160
  63. package/dist/utils/macos-autostart.js +22 -22
  64. package/dist/utils/model-prices.jsonl +23 -23
  65. package/dist/utils/welcome.js +22 -22
  66. package/ecagent/LICENSE +21 -21
  67. package/ecagent/NOTICE +11 -11
  68. package/ecagent/README.md +61 -61
  69. package/ecagent/dist/harness/compaction/branch-summarization.js +30 -30
  70. package/ecagent/dist/harness/compaction/compaction.js +83 -83
  71. package/ecagent/dist/harness/messages.js +7 -7
  72. package/kits/docs/GUIDE.md +20 -20
  73. package/kits/docs/INDEX.md +66 -66
  74. package/kits/docs/aun/CHEATSHEET.md +19 -19
  75. package/kits/docs/aun/SYNC_PROTOCOL.md +15 -15
  76. package/kits/docs/channels/aun.md +56 -56
  77. package/kits/docs/channels/feishu.md +56 -56
  78. package/kits/docs/context-assembly.md +365 -364
  79. package/kits/docs/eck_templates/GUIDE.template.md +22 -22
  80. package/kits/docs/eck_templates/INDEX.template.md +28 -28
  81. package/kits/docs/eck_templates/path-registry.template.md +33 -33
  82. package/kits/docs/eck_templates/runtime.template.md +19 -19
  83. package/kits/docs/evolcore/INDEX.md +71 -69
  84. package/kits/docs/evolcore/agent-create.md +170 -156
  85. package/kits/docs/evolcore/agent.md +83 -73
  86. package/kits/docs/evolcore/aid.md +64 -62
  87. package/kits/docs/evolcore/codex-windows-sandbox.md +146 -0
  88. package/kits/docs/evolcore/config.md +195 -195
  89. package/kits/docs/evolcore/contact.md +68 -68
  90. package/kits/docs/evolcore/ctl.md +46 -46
  91. package/kits/docs/evolcore/event.md +216 -216
  92. package/kits/docs/evolcore/fs-architecture.md +1215 -1215
  93. package/kits/docs/evolcore/fs.md +110 -110
  94. package/kits/docs/evolcore/group-collaboration.md +243 -243
  95. package/kits/docs/evolcore/group-fs.md +17 -17
  96. package/kits/docs/evolcore/group-rules.md +251 -251
  97. package/kits/docs/evolcore/group.md +152 -152
  98. package/kits/docs/evolcore/menu-client.md +34 -34
  99. package/kits/docs/evolcore/model.md +50 -50
  100. package/kits/docs/evolcore/msg.md +165 -165
  101. package/kits/docs/evolcore/response.md +75 -75
  102. package/kits/docs/evolcore/rpc.md +37 -37
  103. package/kits/docs/evolcore/self-summary.md +29 -29
  104. package/kits/docs/evolcore/stats.md +83 -83
  105. package/kits/docs/evolcore/storage.md +50 -50
  106. package/kits/docs/evolcore/trigger.md +575 -575
  107. package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -26
  108. package/kits/docs/identity/PATH_OPS.md +16 -16
  109. package/kits/docs/identity/ROLE_DETAIL.md +25 -25
  110. package/kits/docs/identity/identity-tools.md +26 -26
  111. package/kits/docs/path-registry.md +62 -62
  112. package/kits/docs/prompt-loading-architecture.md +270 -269
  113. package/kits/docs/venues/aun-group.md +45 -45
  114. package/kits/docs/venues/aun-private.md +10 -10
  115. package/kits/docs/venues/client-desktop.md +10 -10
  116. package/kits/docs/venues/client-mobile.md +10 -10
  117. package/kits/docs/venues/feishu-group.md +13 -13
  118. package/kits/docs/venues/feishu-private.md +9 -9
  119. package/kits/docs/venues/group.md +25 -25
  120. package/kits/docs/venues/private.md +10 -10
  121. package/kits/eck_manifest.auxiliary.json +43 -43
  122. package/kits/eck_manifest.json +195 -183
  123. package/kits/eck_message_manifest.json +74 -74
  124. package/kits/migrations/README-role-config-v4.md +32 -32
  125. package/kits/migrations/migrate-contact-book-v2.mjs +748 -748
  126. package/kits/migrations/migrate-role-config-v4.mjs +614 -614
  127. package/kits/migrations/migrate-role-config-v5.mjs +365 -365
  128. package/kits/migrations/rename-config-file.mjs +99 -99
  129. package/kits/rules/01-overview.md +162 -162
  130. package/kits/rules/02-navigation.md +96 -96
  131. package/kits/rules/03-identity.md +39 -37
  132. package/kits/rules/04-relation.md +75 -75
  133. package/kits/rules/05-venue.md +60 -60
  134. package/kits/rules/06-channel.md +63 -63
  135. package/kits/schemas/_meta.json +53 -53
  136. package/kits/schemas/agent-config.schema.1.json +177 -177
  137. package/kits/schemas/agent-config.schema.10.json +395 -395
  138. package/kits/schemas/agent-config.schema.11.json +421 -421
  139. package/kits/schemas/agent-config.schema.12.json +427 -427
  140. package/kits/schemas/agent-config.schema.2.json +239 -239
  141. package/kits/schemas/agent-config.schema.3.json +119 -119
  142. package/kits/schemas/agent-config.schema.4.json +208 -208
  143. package/kits/schemas/agent-config.schema.5.json +326 -326
  144. package/kits/schemas/agent-config.schema.6.json +322 -322
  145. package/kits/schemas/agent-config.schema.7.json +303 -303
  146. package/kits/schemas/agent-config.schema.8.json +304 -304
  147. package/kits/schemas/agent-config.schema.9.json +364 -364
  148. package/kits/schemas/contact-book.schema.1.json +36 -36
  149. package/kits/schemas/contact-book.schema.2.json +43 -43
  150. package/kits/schemas/contact-book.schema.3.json +67 -67
  151. package/kits/schemas/daemon.schema.1.json +91 -91
  152. package/kits/schemas/daemon.schema.2.json +101 -101
  153. package/kits/schemas/daemon.schema.3.json +123 -123
  154. package/kits/schemas/daemon.schema.4.json +136 -136
  155. package/kits/schemas/daemon.schema.5.json +135 -135
  156. package/kits/schemas/daemon.schema.6.json +131 -131
  157. package/kits/schemas/defaults.schema.1.json +81 -81
  158. package/kits/schemas/defaults.schema.2.json +85 -85
  159. package/kits/schemas/defaults.schema.3.json +73 -73
  160. package/kits/schemas/defaults.schema.4.json +107 -107
  161. package/kits/schemas/defaults.schema.5.json +119 -119
  162. package/kits/schemas/menu-exec-schema-commands.md +208 -208
  163. package/kits/schemas/migrations/README.md +30 -30
  164. package/kits/schemas/relation-config.schema.1.json +158 -158
  165. package/kits/schemas/relation-config.schema.2.json +73 -73
  166. package/kits/schemas/relation-config.schema.3.json +50 -50
  167. package/kits/schemas/relation-config.schema.4.json +47 -47
  168. package/kits/schemas/relation-config.schema.5.json +47 -47
  169. package/kits/schemas/relation-config.schema.6.json +46 -46
  170. package/kits/schemas/relation-config.schema.7.json +59 -59
  171. package/kits/schemas/relation-config.schema.8.json +103 -103
  172. package/kits/schemas/role-config.schema.1.json +201 -201
  173. package/kits/schemas/role-registry.schema.1.json +35 -35
  174. package/kits/schemas/single-session.schema.1.json +31 -31
  175. package/kits/schemas/single-session.schema.2.json +57 -57
  176. package/kits/schemas/single-session.schema.3.json +32 -32
  177. package/kits/templates/bootstrap-welcome.md +17 -17
  178. package/kits/templates/message-fragments/handoff-context-to-target.md +9 -9
  179. package/kits/templates/message-fragments/handoff-request-to-target.md +19 -19
  180. package/kits/templates/message-fragments/handoff-response-to-origin.md +9 -9
  181. package/kits/templates/message-fragments/inject-default.md +2 -2
  182. package/kits/templates/message-fragments/item.md +2 -2
  183. package/kits/templates/roles/admin.json +96 -84
  184. package/kits/templates/roles/member.json +97 -96
  185. package/kits/templates/roles/owner.json +9 -9
  186. package/kits/templates/roles/visitor.json +86 -85
  187. package/kits/templates/system-fragments/baseagent.md +14 -14
  188. package/kits/templates/system-fragments/bootstrap.md +38 -29
  189. package/kits/templates/system-fragments/channel.md +64 -64
  190. package/kits/templates/system-fragments/commands.md +28 -28
  191. package/kits/templates/system-fragments/identity.md +13 -13
  192. package/kits/templates/system-fragments/relation.md +19 -19
  193. package/kits/templates/system-fragments/session.md +59 -59
  194. package/kits/templates/system-fragments/venue.md +31 -31
  195. package/package.json +98 -98
  196. package/skills/eclink/SKILL.md +0 -84
  197. package/skills/eclink/agents/openai.yaml +0 -4
@@ -1,57 +1,57 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "single-session.schema.2.json",
4
- "title": "SingleSessionParams (responseModeParams['single-session'])",
5
- "x-logical-name": "single-session",
6
- "x-scope": "mode",
7
- "type": "object",
8
- "additionalProperties": false,
9
- "properties": {
10
- "auxiliaryModel": {
11
- "oneOf": [
12
- {
13
- "type": "string",
14
- "minLength": 1
15
- },
16
- {
17
- "type": "object",
18
- "minProperties": 1,
19
- "additionalProperties": false,
20
- "properties": {
21
- "claude": { "type": "string", "minLength": 1 },
22
- "codex": { "type": "string", "minLength": 1 }
23
- }
24
- }
25
- ],
26
- "description": "辅助判断模型;可直接配置模型 ID,或按 claude/codex 配置映射。当前 Session 的 baseagent 在映射中无对应模型时执行 fallback_action。"
27
- },
28
- "auxiliaryEffort": {
29
- "type": "string",
30
- "enum": ["low", "medium", "high", "xhigh", "max"],
31
- "description": "辅助判断推理强度;配置时同一模式桶必须同时配置 auxiliaryModel,未配置时不向模型 API 发送 effort。"
32
- },
33
- "pre_tool_1stmsgchk": {
34
- "type": "boolean",
35
- "enum": [true, false],
36
- "default": true,
37
- "description": "proactive 首个本地工具表态检查(仅 chatmode=proactive 生效):首个可被 PreToolUse 覆盖的本地工具必须是当前会话精确对应的 ec msg/group send,否则拦截;WebSearch、图像生成、浏览器和 Computer Use 等 hosted 工具不进入此硬拒绝边界。",
38
- "x-enumDescriptions": {
39
- "true": "启用:首个 hook 可覆盖的本地工具必须是精确会话 send",
40
- "false": "禁用:不执行 proactive 首个本地工具 send 检查"
41
- }
42
- },
43
- "tool_use_reminder": {
44
- "type": "boolean",
45
- "enum": [true, false],
46
- "default": true,
47
- "description": "proactive 工具汇报提醒(仅 chatmode=proactive 生效):启用队列未读提醒 + 每 10 次工具调用的汇报提醒。",
48
- "x-enumDescriptions": {
49
- "true": "启用:自动汇报工具使用情况",
50
- "false": "禁用:静默执行工具"
51
- }
52
- }
53
- },
54
- "dependencies": {
55
- "auxiliaryEffort": ["auxiliaryModel"]
56
- }
57
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "single-session.schema.2.json",
4
+ "title": "SingleSessionParams (responseModeParams['single-session'])",
5
+ "x-logical-name": "single-session",
6
+ "x-scope": "mode",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "auxiliaryModel": {
11
+ "oneOf": [
12
+ {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ {
17
+ "type": "object",
18
+ "minProperties": 1,
19
+ "additionalProperties": false,
20
+ "properties": {
21
+ "claude": { "type": "string", "minLength": 1 },
22
+ "codex": { "type": "string", "minLength": 1 }
23
+ }
24
+ }
25
+ ],
26
+ "description": "辅助判断模型;可直接配置模型 ID,或按 claude/codex 配置映射。当前 Session 的 baseagent 在映射中无对应模型时执行 fallback_action。"
27
+ },
28
+ "auxiliaryEffort": {
29
+ "type": "string",
30
+ "enum": ["low", "medium", "high", "xhigh", "max"],
31
+ "description": "辅助判断推理强度;配置时同一模式桶必须同时配置 auxiliaryModel,未配置时不向模型 API 发送 effort。"
32
+ },
33
+ "pre_tool_1stmsgchk": {
34
+ "type": "boolean",
35
+ "enum": [true, false],
36
+ "default": true,
37
+ "description": "proactive 首个本地工具表态检查(仅 chatmode=proactive 生效):首个可被 PreToolUse 覆盖的本地工具必须是当前会话精确对应的 ec msg/group send,否则拦截;WebSearch、图像生成、浏览器和 Computer Use 等 hosted 工具不进入此硬拒绝边界。",
38
+ "x-enumDescriptions": {
39
+ "true": "启用:首个 hook 可覆盖的本地工具必须是精确会话 send",
40
+ "false": "禁用:不执行 proactive 首个本地工具 send 检查"
41
+ }
42
+ },
43
+ "tool_use_reminder": {
44
+ "type": "boolean",
45
+ "enum": [true, false],
46
+ "default": true,
47
+ "description": "proactive 工具汇报提醒(仅 chatmode=proactive 生效):启用队列未读提醒 + 每 10 次工具调用的汇报提醒。",
48
+ "x-enumDescriptions": {
49
+ "true": "启用:自动汇报工具使用情况",
50
+ "false": "禁用:静默执行工具"
51
+ }
52
+ }
53
+ },
54
+ "dependencies": {
55
+ "auxiliaryEffort": ["auxiliaryModel"]
56
+ }
57
+ }
@@ -1,32 +1,32 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "single-session.schema.3.json",
4
- "title": "SingleSessionParams (responseModeParams['single-session'])",
5
- "description": "Single-session mode parameters. Session Renew auxiliary model settings belong to baseagents.<name>.",
6
- "x-logical-name": "single-session",
7
- "x-scope": "mode",
8
- "type": "object",
9
- "additionalProperties": false,
10
- "properties": {
11
- "pre_tool_1stmsgchk": {
12
- "type": "boolean",
13
- "enum": [true, false],
14
- "default": true,
15
- "description": "proactive 首个本地工具表态检查(仅 chatmode=proactive 生效):首个可被 PreToolUse 覆盖的本地工具必须是当前会话精确对应的 ec msg/group send,否则拦截;WebSearch、图像生成、浏览器和 Computer Use 等 hosted 工具不进入此硬拒绝边界。",
16
- "x-enumDescriptions": {
17
- "true": "启用:首个 hook 可覆盖的本地工具必须是精确会话 send",
18
- "false": "禁用:不执行 proactive 首个本地工具 send 检查"
19
- }
20
- },
21
- "tool_use_reminder": {
22
- "type": "boolean",
23
- "enum": [true, false],
24
- "default": true,
25
- "description": "proactive 工具汇报提醒(仅 chatmode=proactive 生效):启用队列未读提醒 + 每 10 次工具调用的汇报提醒。",
26
- "x-enumDescriptions": {
27
- "true": "启用:自动汇报工具使用情况",
28
- "false": "禁用:静默执行工具"
29
- }
30
- }
31
- }
32
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "single-session.schema.3.json",
4
+ "title": "SingleSessionParams (responseModeParams['single-session'])",
5
+ "description": "Single-session mode parameters. Session Renew auxiliary model settings belong to baseagents.<name>.",
6
+ "x-logical-name": "single-session",
7
+ "x-scope": "mode",
8
+ "type": "object",
9
+ "additionalProperties": false,
10
+ "properties": {
11
+ "pre_tool_1stmsgchk": {
12
+ "type": "boolean",
13
+ "enum": [true, false],
14
+ "default": true,
15
+ "description": "proactive 首个本地工具表态检查(仅 chatmode=proactive 生效):首个可被 PreToolUse 覆盖的本地工具必须是当前会话精确对应的 ec msg/group send,否则拦截;WebSearch、图像生成、浏览器和 Computer Use 等 hosted 工具不进入此硬拒绝边界。",
16
+ "x-enumDescriptions": {
17
+ "true": "启用:首个 hook 可覆盖的本地工具必须是精确会话 send",
18
+ "false": "禁用:不执行 proactive 首个本地工具 send 检查"
19
+ }
20
+ },
21
+ "tool_use_reminder": {
22
+ "type": "boolean",
23
+ "enum": [true, false],
24
+ "default": true,
25
+ "description": "proactive 工具汇报提醒(仅 chatmode=proactive 生效):启用队列未读提醒 + 每 10 次工具调用的汇报提醒。",
26
+ "x-enumDescriptions": {
27
+ "true": "启用:自动汇报工具使用情况",
28
+ "false": "禁用:静默执行工具"
29
+ }
30
+ }
31
+ }
32
+ }
@@ -1,17 +1,17 @@
1
- 你好,我是 {{agentName}}。
2
-
3
- 我刚刚完成连接,需要先和你确认我的基础信息,然后再进入正常工作状态。
4
-
5
- 请帮我确认三项内容:
6
- 1. 显示名:你希望我叫什么?
7
- 2. 简介:我主要负责什么?一句到两句话即可。
8
- 3. 标签:给我 3 到 6 个标签,例如 `代码审查`、`客服助手`、`项目管理`。
9
-
10
- 当前信息:
11
- - AID: {{agentAid}}
12
- - 渠道: {{channel}}
13
- - Baseagent: {{baseagent}}
14
-
15
- 如果希望沿用已有 agent.md 信息,可以直接回复“沿用现有信息”;我会先读取并回显现有值,请你确认是否保持或修改,不需要重新输入。
16
-
17
- 如果希望重新设定,也可以直接按上面的三项回复。
1
+ 你好,我是 {{agentName}}。
2
+
3
+ 我刚刚完成连接,需要先和你确认我的基础信息,然后再进入正常工作状态。
4
+
5
+ 请帮我确认三项内容:
6
+ 1. 显示名:你希望我叫什么?
7
+ 2. 简介:我主要负责什么?一句到两句话即可。
8
+ 3. 标签:给我 3 到 6 个标签,例如 `代码审查`、`客服助手`、`项目管理`。
9
+
10
+ 当前信息:
11
+ - AID: {{agentAid}}
12
+ - 渠道: {{channel}}
13
+ - Baseagent: {{baseagent}}
14
+
15
+ 如果希望沿用已有 agent.md 信息,可以直接回复“沿用现有信息”;我会先读取并回显现有值,请你确认是否保持或修改,不需要重新输入。
16
+
17
+ 如果希望重新设定,也可以直接按上面的三项回复。
@@ -1,9 +1,9 @@
1
- 说明:
2
- - 以下是此前未纳入本会话上下文的本地发言,仅补充一次。
3
- - 请结合这些发言与当前对端回复继续处理。
4
-
5
- 本地发言:
6
- {{#each handoffContextEntries}}- {{previousContent}}
7
- {{/each}}
8
- 当前对端回复内容:
9
- {{content}}
1
+ 说明:
2
+ - 以下是此前未纳入本会话上下文的本地发言,仅补充一次。
3
+ - 请结合这些发言与当前对端回复继续处理。
4
+
5
+ 本地发言:
6
+ {{#each handoffContextEntries}}- {{previousContent}}
7
+ {{/each}}
8
+ 当前对端回复内容:
9
+ {{content}}
@@ -1,19 +1,19 @@
1
- 说明:
2
- - 以下是尚未完成的跨会话请求,仅本端可见。
3
- - 请结合请求列表与当前对端回复,分别判断哪些请求已经得到充分回答。
4
- - 不要在对外回复中主动提及 handoff、ID、return 命令或内部路由机制。
5
- - 当前回复足以处理某项请求时,需要使用:`ec handoff return ID "<完整回流内容>"`
6
- - 命令双引号内若含双引号、反引号或 Shell 展开形式的 `$`,需经转义符转义,Shell 传给 ec 时会做还原。
7
- - 若回复不足,不要执行 return。
8
-
9
- 待回流请求:
10
- {{#each handoffRequiredEntries}}- ID:{{handoffId}}
11
- 原请求:{{previousContent}}
12
- {{/each}}
13
- {{?handoffContextEntries}}
14
- 以下本地发言只用于补充上下文,不需要回流:
15
- {{#each handoffContextEntries}}- {{previousContent}}
16
- {{/each}}
17
- {{/}}
18
- 当前对端回复内容:
19
- {{content}}
1
+ 说明:
2
+ - 以下是尚未完成的跨会话请求,仅本端可见。
3
+ - 请结合请求列表与当前对端回复,分别判断哪些请求已经得到充分回答。
4
+ - 不要在对外回复中主动提及 handoff、ID、return 命令或内部路由机制。
5
+ - 当前回复足以处理某项请求时,需要使用:`ec handoff return ID "<完整回流内容>"`
6
+ - 命令双引号内若含双引号、反引号或 Shell 展开形式的 `$`,需经转义符转义,Shell 传给 ec 时会做还原。
7
+ - 若回复不足,不要执行 return。
8
+
9
+ 待回流请求:
10
+ {{#each handoffRequiredEntries}}- ID:{{handoffId}}
11
+ 原请求:{{previousContent}}
12
+ {{/each}}
13
+ {{?handoffContextEntries}}
14
+ 以下本地发言只用于补充上下文,不需要回流:
15
+ {{#each handoffContextEntries}}- {{previousContent}}
16
+ {{/each}}
17
+ {{/}}
18
+ 当前对端回复内容:
19
+ {{content}}
@@ -1,9 +1,9 @@
1
- 说明:
2
- - 跨会话结果回流,仅本端可见。
3
- - 以下是此前本会话一个或多个请求的返回结果,请逐项结合当前上下文处理。
4
- - 不要提及 handoff 或内部路由机制。
5
-
6
- 待处理结果:
7
- {{#each handoffOriginEntries}}- 原请求:{{previousContent}}
8
- 返回结果:{{responseContent}}
9
- {{/each}}
1
+ 说明:
2
+ - 跨会话结果回流,仅本端可见。
3
+ - 以下是此前本会话一个或多个请求的返回结果,请逐项结合当前上下文处理。
4
+ - 不要提及 handoff 或内部路由机制。
5
+
6
+ 待处理结果:
7
+ {{#each handoffOriginEntries}}- 原请求:{{previousContent}}
8
+ 返回结果:{{responseContent}}
9
+ {{/each}}
@@ -1,2 +1,2 @@
1
- ‹owner 提示 · 已验证 · {{injectTime}}{{?ownerAid}} · from:{{ownerAid}}{{/}}›(仅你可见,对端无感;请据此决定如何回复对端)
2
- {{content}}
1
+ ‹owner 提示 · 已验证 · {{injectTime}}{{?ownerAid}} · from:{{ownerAid}}{{/}}›(仅你可见,对端无感;请据此决定如何回复对端)
2
+ {{content}}
@@ -1,2 +1,2 @@
1
- ‹{{now}} · from:{{peerId}}{{?peerName}}({{peerName}}){{/}}{{?peerRole}} · role:{{peerRole}}{{/}}{{?chatType=group}} → 群:{{groupLabel}} · self:{{selfAid}}{{/}}{{?chatType=private}} → self:{{selfAid}}{{/}}{{?encrypted=true}} · 🔒密文{{/}}{{?encrypted=false}} · ✉️明文{{/}}{{?sameDevice}} · 📍同设备{{/}}{{?sameNetwork}} · 🌐同网络{{/}}{{?sameEgressIp}} · 🔀同出口IP{{/}}{{?mentionAids}} · @:{{mentionAids}}{{/}}›
2
- {{?isHandoff!=true}}{{content}}{{/}}
1
+ ‹{{now}} · from:{{peerId}}{{?peerName}}({{peerName}}){{/}}{{?peerRole}} · role:{{peerRole}}{{/}}{{?chatType=group}} → 群:{{groupLabel}} · self:{{selfAid}}{{/}}{{?chatType=private}} → self:{{selfAid}}{{/}}{{?encrypted=true}} · 🔒密文{{/}}{{?encrypted=false}} · ✉️明文{{/}}{{?sameDevice}} · 📍同设备{{/}}{{?sameNetwork}} · 🌐同网络{{/}}{{?sameEgressIp}} · 🔀同出口IP{{/}}{{?mentionAids}} · @:{{mentionAids}}{{/}}›
2
+ {{?isHandoff!=true}}{{content}}{{/}}
@@ -1,92 +1,104 @@
1
- {
2
- "$schema_version": 1,
3
- "description": "Agent administrator with guarded management authority",
4
- "rank": 700,
5
- "allowAccess": true,
6
- "permissions": {
7
- "permissionMode": { "default": "request", "allowOverride": false }
8
- },
9
- "commandPermissions": {
10
- "contact.read": { "allow": true, "scopes": ["agent"] },
11
- "contact.add": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
12
- "contact.block": {
13
- "allow": true,
14
- "scopes": ["agent"],
15
- "constraints": { "requireAgentAdmin": true }
16
- },
17
- "connect.write": {
18
- "allow": true,
19
- "scopes": ["agent"],
20
- "constraints": { "requireAgentAdmin": true }
21
- },
22
- "connect.access.write": {
23
- "allow": true,
24
- "scopes": ["agent"],
25
- "constraints": { "requireAgentOwner": true }
26
- },
27
- "role.assign": { "allow": true, "scopes": ["agent"] },
28
- "role.revoke": { "allow": true, "scopes": ["agent"] },
29
- "role.policy.read": { "allow": true, "scopes": ["agent"] },
30
- "role.relation.read": { "allow": true, "scopes": ["agent"] },
31
- "agent.baseagent.update": {
32
- "allow": true,
33
- "scopes": ["agent"],
34
- "constraints": { "requireAgentOwner": true, "targetCurrentAgentOnly": true }
35
- },
36
- "observable.current": {
37
- "allow": true,
38
- "scopes": ["agent"],
39
- "constraints": { "requireAgentOwner": true }
40
- },
41
- "observable.update": {
42
- "allow": true,
43
- "scopes": ["agent"],
44
- "constraints": { "requireAgentOwner": true, "targetCurrentAgentOnly": true }
45
- },
46
- "config.get": { "allow": true, "scopes": ["agent", "relation"] },
47
- "config.set": { "allow": true, "scopes": ["agent", "relation"] },
48
- "config.unset": { "allow": true, "scopes": ["agent", "relation"] },
49
- "role.policy.write": {
50
- "allow": true,
51
- "dangerous": true,
52
- "scopes": ["agent"],
53
- "constraints": { "requireAgentAdmin": true }
54
- },
55
- "ec.aid.show": {
56
- "allow": true,
57
- "dangerous": true,
58
- "scopes": ["agent"],
59
- "constraints": { "targetCurrentAgentOnly": true, "requireAgentAdmin": true }
60
- },
61
- "ec.aid.lookup": { "allow": true, "scopes": ["agent"] },
62
- "ec.aid.agentmd.get": { "allow": true, "scopes": ["agent"] },
1
+ {
2
+ "$schema_version": 1,
3
+ "description": "Agent administrator with guarded management authority",
4
+ "rank": 700,
5
+ "allowAccess": true,
6
+ "permissions": {
7
+ "permissionMode": { "default": "request", "allowOverride": false }
8
+ },
9
+ "commandPermissions": {
10
+ "contact.read": { "allow": true, "scopes": ["agent"] },
11
+ "contact.add": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
12
+ "contact.block": {
13
+ "allow": true,
14
+ "scopes": ["agent"],
15
+ "constraints": { "requireAgentAdmin": true }
16
+ },
17
+ "connect.write": {
18
+ "allow": true,
19
+ "scopes": ["agent"],
20
+ "constraints": { "requireAgentAdmin": true }
21
+ },
22
+ "connect.access.write": {
23
+ "allow": true,
24
+ "scopes": ["agent"],
25
+ "constraints": { "requireAgentOwner": true }
26
+ },
27
+ "role.assign": { "allow": true, "scopes": ["agent"] },
28
+ "role.revoke": { "allow": true, "scopes": ["agent"] },
29
+ "role.policy.read": { "allow": true, "scopes": ["agent"] },
30
+ "role.relation.read": { "allow": true, "scopes": ["agent"] },
31
+ "agent.baseagent.update": {
32
+ "allow": true,
33
+ "scopes": ["agent"],
34
+ "constraints": { "requireAgentOwner": true, "targetCurrentAgentOnly": true }
35
+ },
36
+ "observable.current": {
37
+ "allow": true,
38
+ "scopes": ["agent"],
39
+ "constraints": { "requireAgentOwner": true }
40
+ },
41
+ "observable.update": {
42
+ "allow": true,
43
+ "scopes": ["agent"],
44
+ "constraints": { "requireAgentOwner": true, "targetCurrentAgentOnly": true }
45
+ },
46
+ "config.get": { "allow": true, "scopes": ["agent", "relation"] },
47
+ "config.set": { "allow": true, "scopes": ["agent", "relation"] },
48
+ "config.unset": { "allow": true, "scopes": ["agent", "relation"] },
49
+ "role.policy.write": {
50
+ "allow": true,
51
+ "dangerous": true,
52
+ "scopes": ["agent"],
53
+ "constraints": { "requireAgentAdmin": true }
54
+ },
55
+ "ec.aid.show": {
56
+ "allow": true,
57
+ "dangerous": true,
58
+ "scopes": ["agent"],
59
+ "constraints": { "targetCurrentAgentOnly": true, "requireAgentAdmin": true }
60
+ },
61
+ "ec.aid.lookup": {
62
+ "allow": true,
63
+ "scopes": ["agent"]
64
+ },
65
+ "ec.aid.agentmd.get": {
66
+ "allow": true,
67
+ "scopes": ["agent"]
68
+ },
63
69
  "ec.aid.agentmd.put": {
64
70
  "allow": true,
65
71
  "dangerous": true,
66
72
  "scopes": ["agent"],
67
73
  "constraints": { "targetCurrentAgentOnly": true, "requireAgentAdmin": true }
68
74
  },
69
- "ec.fs.mkdir": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
70
- "ec.fs.upload": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
71
- "ec.fs.copy": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
72
- "ec.fs.move": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
73
- "ec.fs.remove": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
74
- "ec.fs.getfacl": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
75
- "ec.fs.setfacl": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
76
- "*": { "allow": true },
77
- "agent.reload": {
78
- "allow": true,
75
+ "ec.aid.avatar": {
76
+ "allow": false,
79
77
  "dangerous": true,
80
- "scopes": ["agent", "control"],
81
- "constraints": {
82
- "targetCurrentAgentOnly": true,
83
- "requireAgentAdmin": true
84
- }
78
+ "scopes": ["agent"],
79
+ "constraints": { "targetCurrentAgentOnly": true, "requireAgentOwner": true }
85
80
  },
86
- "dangerous:*": {
87
- "allow": true,
88
- "dangerous": true,
89
- "constraints": { "requireDaemonOwner": true }
90
- }
91
- }
92
- }
81
+ "ec.fs.mkdir": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
82
+ "ec.fs.upload": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
83
+ "ec.fs.copy": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
84
+ "ec.fs.move": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
85
+ "ec.fs.remove": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
86
+ "ec.fs.getfacl": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
87
+ "ec.fs.setfacl": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
88
+ "*": { "allow": true },
89
+ "agent.reload": {
90
+ "allow": true,
91
+ "dangerous": true,
92
+ "scopes": ["agent", "control"],
93
+ "constraints": {
94
+ "targetCurrentAgentOnly": true,
95
+ "requireAgentAdmin": true
96
+ }
97
+ },
98
+ "dangerous:*": {
99
+ "allow": true,
100
+ "dangerous": true,
101
+ "constraints": { "requireDaemonOwner": true }
102
+ }
103
+ }
104
+ }