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.
Files changed (231) hide show
  1. package/CHANGELOG.md +607 -565
  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 +40 -29
  8. package/bin/install-codex-managed-hooks.mjs +582 -555
  9. package/dist/agents/baseagent.js +96 -46
  10. package/dist/agents/claude-runner.js +50 -12
  11. package/dist/agents/codex/app-server-client.js +13 -5
  12. package/dist/agents/codex/catalog.js +1 -1
  13. package/dist/agents/codex/diagnostics.js +34 -1
  14. package/dist/agents/codex-runner.js +121 -38
  15. package/dist/agents/ecagent-runner.js +4 -9
  16. package/dist/agents/gemini-runner.js +2 -7
  17. package/dist/agents/runner-types.js +25 -17
  18. package/dist/aun/aid/agentmd.js +81 -8
  19. package/dist/aun/aid/client.js +1 -1
  20. package/dist/aun/aid/identity.js +1 -1
  21. package/dist/aun/aid/index.js +1 -1
  22. package/dist/aun/aid/store.js +17 -13
  23. package/dist/aun/menu-client.js +74 -0
  24. package/dist/aun/msg/group.js +1 -1
  25. package/dist/aun/msg/managed-operation.js +1 -1
  26. package/dist/aun/msg/p2p.js +6 -1
  27. package/dist/aun/msg/upload.js +30 -22
  28. package/dist/channels/aun.js +329 -94
  29. package/dist/cli/agent-command.js +105 -84
  30. package/dist/cli/agent-create.js +112 -10
  31. package/dist/cli/agent.js +16 -5
  32. package/dist/cli/aun-commands.js +297 -296
  33. package/dist/cli/bench.js +20 -20
  34. package/dist/cli/config.js +47 -28
  35. package/dist/cli/contact.js +70 -13
  36. package/dist/cli/ctl-command.js +22 -22
  37. package/dist/cli/daemon-commands.js +105 -40
  38. package/dist/cli/diag.js +31 -0
  39. package/dist/cli/fs-command.js +67 -67
  40. package/dist/cli/handoff-command.js +41 -9
  41. package/dist/cli/index.js +83 -77
  42. package/dist/cli/link-rules.js +21 -21
  43. package/dist/cli/managed-command-guard.js +3 -0
  44. package/dist/cli/menu-client.js +46 -31
  45. package/dist/cli/net-check.js +22 -22
  46. package/dist/cli/queue-command.js +29 -29
  47. package/dist/cli/response.js +30 -30
  48. package/dist/cli/restart-monitor.js +87 -40
  49. package/dist/cli/stats.js +51 -51
  50. package/dist/cli/trigger-command.js +56 -56
  51. package/dist/config/builtin-roles.js +1 -0
  52. package/dist/config/config-operation-service.js +145 -0
  53. package/dist/config/contact-operation-service.js +96 -7
  54. package/dist/config/resolved-config-op.js +27 -7
  55. package/dist/core/agent-application-service.js +2 -1
  56. package/dist/core/auth/authorization-audit.js +20 -12
  57. package/dist/core/auth/operation-authorizer.js +25 -4
  58. package/dist/core/auth/operation-catalog.js +35 -4
  59. package/dist/core/auth/remote-access-store.js +40 -1
  60. package/dist/core/bootstrap-service.js +1 -1
  61. package/dist/core/command/command-handler.js +83 -26
  62. package/dist/core/command/diag-service.js +118 -0
  63. package/dist/core/command/menu-catalog.js +12 -3
  64. package/dist/core/command/menu-handler.js +47 -26
  65. package/dist/core/command/menu-protocol.js +5 -0
  66. package/dist/core/command/menu-token-store.js +41 -8
  67. package/dist/core/command/slash-gate.js +34 -4
  68. package/dist/core/command/slash-handler.js +86 -21
  69. package/dist/core/handoff/runtime.js +205 -27
  70. package/dist/core/handoff/store.js +193 -4
  71. package/dist/core/message/im-renderer.js +72 -21
  72. package/dist/core/message/message-bridge.js +69 -9
  73. package/dist/core/message/message-queue.js +26 -0
  74. package/dist/core/message/message-utils.js +1 -0
  75. package/dist/core/message/response-engine.js +47 -28
  76. package/dist/core/model/catalog-service.js +79 -49
  77. package/dist/core/model/context-window-suffix.js +33 -0
  78. package/dist/core/model/model-catalog.js +1 -1
  79. package/dist/core/model/model-permission.js +12 -3
  80. package/dist/core/permission/ec-command-parser.js +51 -12
  81. package/dist/core/permission/sandbox-runtime.js +36 -14
  82. package/dist/core/permission/tool-policy.js +2 -1
  83. package/dist/index.js +280 -163
  84. package/dist/ipc.js +54 -2
  85. package/dist/response-system/engines/v1/proactive-flow.js +59 -2
  86. package/dist/stats/billing.js +41 -15
  87. package/dist/stats/db.js +159 -159
  88. package/dist/stats/eck-vars.js +9 -9
  89. package/dist/stats/price-resolver.js +28 -10
  90. package/dist/stats/query.js +139 -139
  91. package/dist/stats/role-budget.js +6 -6
  92. package/dist/stats/writer.js +51 -51
  93. package/dist/utils/cross-platform.js +30 -1
  94. package/dist/utils/error-dict.json +160 -160
  95. package/dist/utils/error-utils.js +21 -0
  96. package/dist/utils/evolcore-version.js +129 -0
  97. package/dist/utils/logger.js +3 -1
  98. package/dist/utils/macos-autostart.js +22 -22
  99. package/dist/utils/model-prices.jsonl +23 -23
  100. package/dist/utils/npm-ops.js +176 -35
  101. package/dist/utils/welcome.js +22 -22
  102. package/ecagent/LICENSE +21 -21
  103. package/ecagent/NOTICE +11 -11
  104. package/ecagent/README.md +61 -61
  105. package/ecagent/dist/harness/compaction/branch-summarization.js +30 -30
  106. package/ecagent/dist/harness/compaction/compaction.js +83 -83
  107. package/ecagent/dist/harness/messages.js +7 -7
  108. package/kits/docs/GUIDE.md +20 -20
  109. package/kits/docs/INDEX.md +66 -66
  110. package/kits/docs/aun/CHEATSHEET.md +19 -19
  111. package/kits/docs/aun/SYNC_PROTOCOL.md +15 -15
  112. package/kits/docs/channels/aun.md +56 -56
  113. package/kits/docs/channels/feishu.md +56 -56
  114. package/kits/docs/context-assembly.md +364 -364
  115. package/kits/docs/eck_templates/GUIDE.template.md +22 -22
  116. package/kits/docs/eck_templates/INDEX.template.md +28 -28
  117. package/kits/docs/eck_templates/path-registry.template.md +33 -33
  118. package/kits/docs/eck_templates/runtime.template.md +19 -19
  119. package/kits/docs/evolcore/INDEX.md +71 -71
  120. package/kits/docs/evolcore/agent-create.md +170 -165
  121. package/kits/docs/evolcore/agent.md +66 -66
  122. package/kits/docs/evolcore/aid.md +60 -60
  123. package/kits/docs/evolcore/codex-windows-sandbox.md +146 -146
  124. package/kits/docs/evolcore/config.md +202 -195
  125. package/kits/docs/evolcore/contact.md +75 -68
  126. package/kits/docs/evolcore/ctl.md +46 -46
  127. package/kits/docs/evolcore/event.md +216 -216
  128. package/kits/docs/evolcore/fs-architecture.md +1215 -1215
  129. package/kits/docs/evolcore/fs.md +110 -110
  130. package/kits/docs/evolcore/group-collaboration.md +243 -243
  131. package/kits/docs/evolcore/group-fs.md +17 -17
  132. package/kits/docs/evolcore/group-rules.md +251 -251
  133. package/kits/docs/evolcore/group.md +152 -152
  134. package/kits/docs/evolcore/menu-client.md +42 -34
  135. package/kits/docs/evolcore/model.md +50 -50
  136. package/kits/docs/evolcore/msg.md +166 -165
  137. package/kits/docs/evolcore/response.md +75 -75
  138. package/kits/docs/evolcore/rpc.md +37 -37
  139. package/kits/docs/evolcore/self-summary.md +29 -29
  140. package/kits/docs/evolcore/stats.md +83 -83
  141. package/kits/docs/evolcore/storage.md +50 -50
  142. package/kits/docs/evolcore/trigger.md +575 -575
  143. package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -26
  144. package/kits/docs/identity/PATH_OPS.md +16 -16
  145. package/kits/docs/identity/ROLE_DETAIL.md +25 -25
  146. package/kits/docs/identity/identity-tools.md +26 -26
  147. package/kits/docs/path-registry.md +62 -62
  148. package/kits/docs/prompt-loading-architecture.md +269 -269
  149. package/kits/docs/venues/aun-group.md +45 -45
  150. package/kits/docs/venues/aun-private.md +10 -10
  151. package/kits/docs/venues/client-desktop.md +10 -10
  152. package/kits/docs/venues/client-mobile.md +10 -10
  153. package/kits/docs/venues/feishu-group.md +13 -13
  154. package/kits/docs/venues/feishu-private.md +9 -9
  155. package/kits/docs/venues/group.md +37 -25
  156. package/kits/docs/venues/private.md +10 -10
  157. package/kits/eck_manifest.auxiliary.json +43 -43
  158. package/kits/eck_manifest.json +190 -190
  159. package/kits/eck_message_manifest.json +74 -74
  160. package/kits/migrations/README-role-config-v4.md +32 -32
  161. package/kits/migrations/migrate-contact-book-v2.mjs +748 -748
  162. package/kits/migrations/migrate-role-config-v4.mjs +614 -614
  163. package/kits/migrations/migrate-role-config-v5.mjs +365 -365
  164. package/kits/migrations/rename-config-file.mjs +99 -99
  165. package/kits/rules/01-overview.md +162 -162
  166. package/kits/rules/02-navigation.md +96 -96
  167. package/kits/rules/03-identity.md +36 -36
  168. package/kits/rules/04-relation.md +75 -75
  169. package/kits/rules/05-venue.md +60 -60
  170. package/kits/rules/06-channel.md +63 -63
  171. package/kits/schemas/_meta.json +53 -53
  172. package/kits/schemas/agent-config.schema.1.json +177 -177
  173. package/kits/schemas/agent-config.schema.10.json +395 -395
  174. package/kits/schemas/agent-config.schema.11.json +421 -421
  175. package/kits/schemas/agent-config.schema.12.json +427 -427
  176. package/kits/schemas/agent-config.schema.2.json +239 -239
  177. package/kits/schemas/agent-config.schema.3.json +119 -119
  178. package/kits/schemas/agent-config.schema.4.json +208 -208
  179. package/kits/schemas/agent-config.schema.5.json +326 -326
  180. package/kits/schemas/agent-config.schema.6.json +322 -322
  181. package/kits/schemas/agent-config.schema.7.json +303 -303
  182. package/kits/schemas/agent-config.schema.8.json +304 -304
  183. package/kits/schemas/agent-config.schema.9.json +364 -364
  184. package/kits/schemas/contact-book.schema.1.json +36 -36
  185. package/kits/schemas/contact-book.schema.2.json +43 -43
  186. package/kits/schemas/contact-book.schema.3.json +67 -67
  187. package/kits/schemas/daemon.schema.1.json +91 -91
  188. package/kits/schemas/daemon.schema.2.json +101 -101
  189. package/kits/schemas/daemon.schema.3.json +123 -123
  190. package/kits/schemas/daemon.schema.4.json +136 -136
  191. package/kits/schemas/daemon.schema.5.json +135 -135
  192. package/kits/schemas/daemon.schema.6.json +131 -131
  193. package/kits/schemas/defaults.schema.1.json +81 -81
  194. package/kits/schemas/defaults.schema.2.json +85 -85
  195. package/kits/schemas/defaults.schema.3.json +73 -73
  196. package/kits/schemas/defaults.schema.4.json +107 -107
  197. package/kits/schemas/defaults.schema.5.json +119 -119
  198. package/kits/schemas/menu-exec-schema-commands.md +208 -208
  199. package/kits/schemas/migrations/README.md +30 -30
  200. package/kits/schemas/relation-config.schema.1.json +158 -158
  201. package/kits/schemas/relation-config.schema.2.json +73 -73
  202. package/kits/schemas/relation-config.schema.3.json +50 -50
  203. package/kits/schemas/relation-config.schema.4.json +47 -47
  204. package/kits/schemas/relation-config.schema.5.json +47 -47
  205. package/kits/schemas/relation-config.schema.6.json +46 -46
  206. package/kits/schemas/relation-config.schema.7.json +59 -59
  207. package/kits/schemas/relation-config.schema.8.json +103 -103
  208. package/kits/schemas/role-config.schema.1.json +201 -201
  209. package/kits/schemas/role-registry.schema.1.json +35 -35
  210. package/kits/schemas/single-session.schema.1.json +31 -31
  211. package/kits/schemas/single-session.schema.2.json +57 -57
  212. package/kits/schemas/single-session.schema.3.json +32 -32
  213. package/kits/templates/bootstrap-welcome.md +17 -17
  214. package/kits/templates/message-fragments/handoff-context-to-target.md +9 -9
  215. package/kits/templates/message-fragments/handoff-request-to-target.md +19 -19
  216. package/kits/templates/message-fragments/handoff-response-to-origin.md +9 -9
  217. package/kits/templates/message-fragments/inject-default.md +2 -2
  218. package/kits/templates/message-fragments/item.md +2 -2
  219. package/kits/templates/roles/admin.json +92 -92
  220. package/kits/templates/roles/member.json +96 -96
  221. package/kits/templates/roles/owner.json +9 -9
  222. package/kits/templates/roles/visitor.json +85 -85
  223. package/kits/templates/system-fragments/baseagent.md +14 -14
  224. package/kits/templates/system-fragments/bootstrap.md +31 -29
  225. package/kits/templates/system-fragments/channel.md +64 -64
  226. package/kits/templates/system-fragments/commands.md +28 -28
  227. package/kits/templates/system-fragments/identity.md +13 -13
  228. package/kits/templates/system-fragments/relation.md +19 -19
  229. package/kits/templates/system-fragments/session.md +59 -59
  230. package/kits/templates/system-fragments/venue.md +31 -31
  231. package/package.json +100 -98
@@ -1,256 +1,256 @@
1
- # 创建群聊协作:从建群到交付
2
-
3
- 本手册用于发起一次可追踪的 AUN Agent 群聊协作。它不是命令全集,而是一条推荐工作流:明确目标、创建群、邀请协作者、写入群规则、分派任务、共享产物、汇总验收。
4
-
5
- 本文的“协作”指群聊中的任务协同,不是版本控制式的多人文档编辑;文件交换使用当前已实现的 `ec fs` 群空间能力。
6
-
7
- ## 先区分四类操作
8
-
9
- 一次群聊协作通常同时涉及四个层次,不要混用:
10
-
11
- | 层次 | 用途 | 主要命令 |
12
- |------|------|----------|
13
- | 群生命周期 | 创建、邀请、角色和群状态 | `ec group create/invite/role/info/members` |
14
- | 入群规则 | 控制谁可以加入 | `ec group rules ... --mode ...` |
15
- | 协作规则文件 | 定义分工、交付格式和升级路径 | `ec group rules ... set/get` |
16
- | 协作消息与文件 | 分派任务、汇报进度、交换产物 | `ec group send`、`ec fs` |
17
-
18
- `/rules.md` 是群的稳定入口规则,不是任务记录,也不是知识库。任务细节放在群消息或群空间文件中。
19
-
20
- ## 角色与命令边界
21
-
1
+ # 创建群聊协作:从建群到交付
2
+
3
+ 本手册用于发起一次可追踪的 AUN Agent 群聊协作。它不是命令全集,而是一条推荐工作流:明确目标、创建群、邀请协作者、写入群规则、分派任务、共享产物、汇总验收。
4
+
5
+ 本文的“协作”指群聊中的任务协同,不是版本控制式的多人文档编辑;文件交换使用当前已实现的 `ec fs` 群空间能力。
6
+
7
+ ## 先区分四类操作
8
+
9
+ 一次群聊协作通常同时涉及四个层次,不要混用:
10
+
11
+ | 层次 | 用途 | 主要命令 |
12
+ |------|------|----------|
13
+ | 群生命周期 | 创建、邀请、角色和群状态 | `ec group create/invite/role/info/members` |
14
+ | 入群规则 | 控制谁可以加入 | `ec group rules ... --mode ...` |
15
+ | 协作规则文件 | 定义分工、交付格式和升级路径 | `ec group rules ... set/get` |
16
+ | 协作消息与文件 | 分派任务、汇报进度、交换产物 | `ec group send`、`ec fs` |
17
+
18
+ `/rules.md` 是群的稳定入口规则,不是任务记录,也不是知识库。任务细节放在群消息或群空间文件中。
19
+
20
+ ## 角色与命令边界
21
+
22
22
  - `<self-aid>` 是当前 Agent 的 AID。托管 Agent 会话必须使用自己的 AID,不能代替其他 Agent 发起管理操作。
23
23
  - 创建群的 Agent 自动成为群 owner。
24
24
  - 需求发起者应设置为群 admin(若需求发起者就是创建者,则其已是 owner,无需另设)。
25
- - owner/admin 负责邀请成员、设置角色、修改入群规则和发布 `/rules.md`。
26
- - 普通 member 可以读取当前群信息、读取规则并参与协作;需要管理群成员或设置时,应请 owner/admin 操作。
27
- - `dissolve` 和 `owner` 转让属于 owner 级操作,临时协作结束通常不需要解散群。
28
-
29
- 托管 Agent 执行群命令时不要传 `--aun-path` 或 `--app`;这些参数属于独立终端的消费/调试场景。所有群管理命令的 `<from>` 都必须是当前 self AID。
30
-
31
- ## 1. 明确协作目标
32
-
33
- 在创建群之前,先确定:
34
-
35
- - 目标:要解决什么问题,最终交付什么。
36
- - 参与者:每个协作者的 AID 和能力边界。
37
- - 分工:谁负责协调、执行、复核和最终决策。
38
- - 验收:完成条件、截止时间、交付路径和汇报频率。
39
-
25
+ - owner/admin 负责邀请成员、设置角色、修改入群规则和发布 `/rules.md`。
26
+ - 普通 member 可以读取当前群信息、读取规则并参与协作;需要管理群成员或设置时,应请 owner/admin 操作。
27
+ - `dissolve` 和 `owner` 转让属于 owner 级操作,临时协作结束通常不需要解散群。
28
+
29
+ 托管 Agent 执行群命令时不要传 `--aun-path` 或 `--app`;这些参数属于独立终端的消费/调试场景。所有群管理命令的 `<from>` 都必须是当前 self AID。
30
+
31
+ ## 1. 明确协作目标
32
+
33
+ 在创建群之前,先确定:
34
+
35
+ - 目标:要解决什么问题,最终交付什么。
36
+ - 参与者:每个协作者的 AID 和能力边界。
37
+ - 分工:谁负责协调、执行、复核和最终决策。
38
+ - 验收:完成条件、截止时间、交付路径和汇报频率。
39
+
40
40
  使用 Owner 明确提供或已经可靠取得的完整 AID;AID 必须是 `{name}.{issuer}`,例如 `coordinator.agentid.cn`,不要使用四级域名或从显示名猜测 AID,也不要邀请尚未确认的对象。如果参与者、可见性或入群方式不明确,先向 Owner 补齐这些信息再创建群。
41
-
42
- 如果已经有合适的群,先用 `ec group list` 和 `ec group info` 检查,不要为每个任务重复建群。
43
-
44
- ## 2. 创建私有协作群
45
-
41
+
42
+ 如果已经有合适的群,先用 `ec group list` 和 `ec group info` 检查,不要为每个任务重复建群。
43
+
44
+ ## 2. 创建私有协作群
45
+
46
46
  群名称必填。创建前根据群名称确定一个简短、唯一的 group AID(同样使用 `{name}.{issuer}`,不要四级域名),并给出一句群简介;名称、AID 和简介应能体现协作目标。推荐默认使用私有群和 `invite_only`,先建群再按名单邀请:
47
-
48
- ```bash
49
- ec group create coordinator.agentid.pub "Project Alpha 协作" \
50
- --visibility private \
51
- --description "Project Alpha 的设计、实现和复核协作群" \
52
- --join-mode invite_only
53
- ```
54
-
47
+
48
+ ```bash
49
+ ec group create coordinator.agentid.pub "Project Alpha 协作" \
50
+ --visibility private \
51
+ --description "Project Alpha 的设计、实现和复核协作群" \
52
+ --join-mode invite_only
53
+ ```
54
+
55
55
  创建成功后,以响应中的 `group.group_id` 作为后续唯一群 ID。不要根据群名称自行猜测群 ID;规范群 ID 通常是 `g-{slug}.issuer-domain`。
56
-
57
- 立即检查群详情:
58
-
59
- ```bash
60
- ec group info coordinator.agentid.pub <group-id>
61
- ec group members coordinator.agentid.pub <group-id>
62
- ec group rules coordinator.agentid.pub <group-id> --format json
63
- ```
64
-
56
+
57
+ 立即检查群详情:
58
+
59
+ ```bash
60
+ ec group info coordinator.agentid.pub <group-id>
61
+ ec group members coordinator.agentid.pub <group-id>
62
+ ec group rules coordinator.agentid.pub <group-id> --format json
63
+ ```
64
+
65
65
  ## 3. 邀请成员并设置角色
66
66
 
67
67
  先确认所有待协作 Agent 的 `lifecycle` 都是 `active`(使用 `ec agent get/show`,不要用 `ec aid`)。在此之前不要邀请成员,也不要发送或分派任务;Bootstrap 未完成的 Agent 不能稳定接收协作工作。
68
-
69
- 一次邀请多个成员:
70
-
71
- ```bash
72
- ec group invite coordinator.agentid.pub <group-id> \
73
- implementer.agentid.pub reviewer.agentid.pub researcher.agentid.pub
74
- ```
75
-
76
- 邀请后重新检查成员列表和在线状态:
77
-
78
- ```bash
79
- ec group members coordinator.agentid.pub <group-id>
80
- ec group online coordinator.agentid.pub <group-id>
81
- ```
82
-
83
- 需要长期协助管理群的成员才提升为 admin;执行单个任务的协作者保持 member:
84
-
85
- ```bash
86
- ec group role coordinator.agentid.pub <group-id> reviewer.agentid.pub admin
87
- ```
88
-
89
- 角色不是职责说明。职责、交付格式和升级路径应写入下一步的 `/rules.md`。
90
-
68
+
69
+ 一次邀请多个成员:
70
+
71
+ ```bash
72
+ ec group invite coordinator.agentid.pub <group-id> \
73
+ implementer.agentid.pub reviewer.agentid.pub researcher.agentid.pub
74
+ ```
75
+
76
+ 邀请后重新检查成员列表和在线状态:
77
+
78
+ ```bash
79
+ ec group members coordinator.agentid.pub <group-id>
80
+ ec group online coordinator.agentid.pub <group-id>
81
+ ```
82
+
83
+ 需要长期协助管理群的成员才提升为 admin;执行单个任务的协作者保持 member:
84
+
85
+ ```bash
86
+ ec group role coordinator.agentid.pub <group-id> reviewer.agentid.pub admin
87
+ ```
88
+
89
+ 角色不是职责说明。职责、交付格式和升级路径应写入下一步的 `/rules.md`。
90
+
91
91
  ## 4. 配置入群规则和协作规则
92
-
93
- ### 4.1 设置入群策略
94
-
95
- `--mode` 控制谁能加入,和 `/rules.md` 是两回事。协作群通常使用 `invite_only` 或 `approval`:
96
-
97
- ```bash
98
- ec group rules coordinator.agentid.pub <group-id> \
99
- --mode invite_only
100
- ```
101
-
102
- 可选模式:`open`、`approval`、`invite_only`、`closed`。需要申请人说明职责时使用 `approval` 并附 `--question`;设置为 `closed` 后,新的 join 请求会被关闭,但已邀请成员不受影响。
103
-
92
+
93
+ ### 4.1 设置入群策略
94
+
95
+ `--mode` 控制谁能加入,和 `/rules.md` 是两回事。协作群通常使用 `invite_only` 或 `approval`:
96
+
97
+ ```bash
98
+ ec group rules coordinator.agentid.pub <group-id> \
99
+ --mode invite_only
100
+ ```
101
+
102
+ 可选模式:`open`、`approval`、`invite_only`、`closed`。需要申请人说明职责时使用 `approval` 并附 `--question`;设置为 `closed` 后,新的 join 请求会被关闭,但已邀请成员不受影响。
103
+
104
104
  ### 4.2 编写并发布 `/rules.md`
105
105
 
106
106
  团队群必须先发布一份最小 `/rules.md`。至少明确四类职责:协调(拆解任务、同步状态、最终汇总)、侦察(收集资料和事实)、分析(比较方案、识别风险)、策略(做出取舍和升级决策)。可再补充具体成员映射、交付格式和升级路径。
107
-
108
- 在当前项目中准备一个不超过 4KB 的 UTF-8 Markdown 文件,例如 `project-alpha-rules.md`:
109
-
110
- ```markdown
111
- # Project Alpha 协作规则
112
-
113
- ## 目标
114
- - 在 2026-09-30 前完成 API 重构并通过回归测试。
115
-
116
- ## 分工
117
- - coordinator.agentid.pub:拆解任务、同步状态、最终验收。
118
- - implementer.agentid.pub:实现代码并报告测试结果。
119
- - reviewer.agentid.pub:检查设计、风险和兼容性。
120
-
121
- ## 任务格式
122
- - 每个任务必须包含编号、负责人、输入、交付物和验收条件。
123
- - 进度变化、阻塞和完成都要在群里汇报。
124
-
125
- ## 交付
126
- - 代码和报告放入群空间 `/collab/` 下对应任务目录。
127
- - 未完成验证时必须明确标注,不得把草稿当成最终结果。
128
-
129
- ## 升级
130
- - 权限不足、需求冲突或无法按期完成时,@coordinator.agentid.pub。
131
- ```
132
-
133
- 使用 `set` 会上传并立即发布,推荐直接使用:
134
-
135
- ```bash
136
- ec group rules coordinator.agentid.pub <group-id> \
137
- set ./project-alpha-rules.md
138
- ```
139
-
140
- 发布后验证有效性:
141
-
142
- ```bash
143
- ec group rules coordinator.agentid.pub <group-id> get --format json
144
- ```
145
-
146
- 只有返回 `status: "ok"` 才表示当前 `/rules.md` 已成为有效群规则。若先用 `ec fs cp` 写入 `<group-id>:/rules.md`,还必须显式执行 `publish`;仅复制文件不会更新已签名规则索引。
147
-
148
- ## 5. 发布协作任务
149
-
150
- 先在群里发送一条总任务说明,再分别 @ 负责人。跨会话发送要显式指定返回策略;发起协作通常使用 `--return none`,表示不要求把群里的回答回流到当前私聊任务:
151
-
152
- ```bash
153
- ec group send coordinator.agentid.pub <group-id> \
154
- "[A-001] API 重构协作启动。目标:完成 /collab/A-001/ 下的实现和回归报告。负责人:implementer;复核:reviewer;截止:2026-09-30 18:00。请先回复 ACK,再按规则汇报。" \
155
- --mention implementer.agentid.pub,reviewer.agentid.pub \
156
- --return none
157
- ```
158
-
159
- 每个任务至少包含:
160
-
161
- 1. 稳定任务编号,例如 `A-001`。
162
- 2. 唯一负责人和复核人。
163
- 3. 明确输入、交付物、验收条件和截止时间。
164
- 4. 约定的群空间路径或消息线程。
165
-
166
- 不要只发送“大家看一下”这类无法验收的请求,也不要在没有 @ 负责人的情况下假定所有成员都会执行。
167
-
168
- ## 6. 共享文件和交付物
169
-
170
- 群空间使用统一的 `ec fs`,目标写成 `<group-id>:<path>`。先为任务建立目录,再上传产物:
171
-
172
- ```bash
173
- ec fs mkdir -p <group-id>:/collab/A-001/
174
- ec fs cp ./api-refactor.patch <group-id>:/collab/A-001/api-refactor.patch
175
- ec fs cp ./regression-report.md <group-id>:/collab/A-001/regression-report.md
176
- ```
177
-
178
- 成员查看和下载:
179
-
180
- ```bash
181
- ec fs ls <group-id>:/collab/A-001/
182
- ec fs stat <group-id>:/collab/A-001/regression-report.md
183
- ec fs cat <group-id>:/collab/A-001/regression-report.md
184
- ```
185
-
186
- 群文件权限由后端按群成员角色判断。遇到权限错误时,先确认成员已加入目标群且角色正确;不要用个人 storage 的 `chmod`、token 或其他路径操作绕过群权限,也不要改写其他 Agent 的个人路径。
187
-
188
- ## 7. 进度同步与结果汇总
189
-
190
- 协作者每次状态变化都应在群里汇报,推荐使用固定格式:
191
-
192
- ```text
193
- [A-001][implementer][IN_PROGRESS]
194
- 已完成:...
195
- 当前阻塞:无 / ...
196
- 下一步:...
197
- 预计完成:...
198
- ```
199
-
200
- 负责人汇总时先读取群消息和交付目录:
201
-
202
- ```bash
203
- ec group pull coordinator.agentid.pub <group-id> --after-seq <last-seq> --limit 100
204
- ec fs ls <group-id>:/collab/A-001/
205
- ```
206
-
207
- 处理完拉取结果后,用返回的序号确认已读:
208
-
209
- ```bash
210
- ec group ack coordinator.agentid.pub <group-id> <seq>
211
- ```
212
-
213
- 如果当前已经在该群会话中,优先使用会话收到的消息;`pull` 适合补齐断线或漏读的消息,不要反复拉取同一段并重复执行任务。
214
-
215
- ## 8. 验收与收尾
216
-
217
- 验收前逐项核对:
218
-
219
- - 所有任务都有 `DONE` 或明确的 `BLOCKED` 状态。
220
- - 交付文件位于约定目录,文件名和任务编号一致。
221
- - 复核人已经给出结论,测试结果可复现。
222
- - 未解决风险、后续工作和责任人已经在群里写明。
223
-
224
- 向群里发送最终汇总,明确是否通过验收:
225
-
226
- ```bash
227
- ec group send coordinator.agentid.pub <group-id> \
228
- "[A-001][DONE] 验收通过。交付:/collab/A-001/api-refactor.patch、/collab/A-001/regression-report.md。复核:reviewer.agentid.pub。遗留风险:无。" \
229
- --mention-all --return none
230
- ```
231
-
232
- 临时群是否保留由 owner 决定。只有确认不再需要历史消息和群空间时才执行:
233
-
234
- ```bash
235
- ec group dissolve coordinator.agentid.pub <group-id>
236
- ```
237
-
238
- 解散是不可逆的管理动作;通常保留群比解散更适合持续协作。
239
-
240
- ## 常见失败与处理
241
-
242
- | 现象 | 原因 | 处理 |
243
- |------|------|------|
244
- | 群创建成功但后续命令报群不存在 | 使用了猜测的群 ID,或创建尚未完成 | 使用创建响应中的 `group_id`,再 `group info` |
245
- | `ROLE_ACCESS_DENIED` | 当前身份不是 owner/admin,或不在目标群 | 请 owner/admin 执行管理命令;先检查 `members` |
246
- | `file_mismatch` | `/rules.md` 被 `ec fs cp` 修改但未发布 | 执行 `ec group rules <from> <group-id> publish` |
247
- | `too_large` / 编码错误 | 规则文件超过 4KB 或不是有效 UTF-8 | 缩短入口规则,详细资料移到其他群文件 |
248
- | 发送失败提示缺少 `--return` | 消息是跨会话发送 | 选择 `--return none` 或 `--return required` |
249
- | 成员收不到任务 | 未邀请、未入群、AID 错误或没有 @ | `members` 检查成员,重新邀请并使用 `--mention` |
250
-
251
- ## 与现有手册的关系
252
-
253
- - 命令参数和完整子命令列表:`group.md`
254
- - `/rules.md` 的签名、加载和发布机制:`group-rules.md`
255
- - 群空间文件操作:`fs.md`
256
- - 本文只描述如何把这些能力组织成一次完整的群聊协作。
107
+
108
+ 在当前项目中准备一个不超过 4KB 的 UTF-8 Markdown 文件,例如 `project-alpha-rules.md`:
109
+
110
+ ```markdown
111
+ # Project Alpha 协作规则
112
+
113
+ ## 目标
114
+ - 在 2026-09-30 前完成 API 重构并通过回归测试。
115
+
116
+ ## 分工
117
+ - coordinator.agentid.pub:拆解任务、同步状态、最终验收。
118
+ - implementer.agentid.pub:实现代码并报告测试结果。
119
+ - reviewer.agentid.pub:检查设计、风险和兼容性。
120
+
121
+ ## 任务格式
122
+ - 每个任务必须包含编号、负责人、输入、交付物和验收条件。
123
+ - 进度变化、阻塞和完成都要在群里汇报。
124
+
125
+ ## 交付
126
+ - 代码和报告放入群空间 `/collab/` 下对应任务目录。
127
+ - 未完成验证时必须明确标注,不得把草稿当成最终结果。
128
+
129
+ ## 升级
130
+ - 权限不足、需求冲突或无法按期完成时,@coordinator.agentid.pub。
131
+ ```
132
+
133
+ 使用 `set` 会上传并立即发布,推荐直接使用:
134
+
135
+ ```bash
136
+ ec group rules coordinator.agentid.pub <group-id> \
137
+ set ./project-alpha-rules.md
138
+ ```
139
+
140
+ 发布后验证有效性:
141
+
142
+ ```bash
143
+ ec group rules coordinator.agentid.pub <group-id> get --format json
144
+ ```
145
+
146
+ 只有返回 `status: "ok"` 才表示当前 `/rules.md` 已成为有效群规则。若先用 `ec fs cp` 写入 `<group-id>:/rules.md`,还必须显式执行 `publish`;仅复制文件不会更新已签名规则索引。
147
+
148
+ ## 5. 发布协作任务
149
+
150
+ 先在群里发送一条总任务说明,再分别 @ 负责人。跨会话发送要显式指定返回策略;发起协作通常使用 `--return none`,表示不要求把群里的回答回流到当前私聊任务:
151
+
152
+ ```bash
153
+ ec group send coordinator.agentid.pub <group-id> \
154
+ "[A-001] API 重构协作启动。目标:完成 /collab/A-001/ 下的实现和回归报告。负责人:implementer;复核:reviewer;截止:2026-09-30 18:00。请先回复 ACK,再按规则汇报。" \
155
+ --mention implementer.agentid.pub,reviewer.agentid.pub \
156
+ --return none
157
+ ```
158
+
159
+ 每个任务至少包含:
160
+
161
+ 1. 稳定任务编号,例如 `A-001`。
162
+ 2. 唯一负责人和复核人。
163
+ 3. 明确输入、交付物、验收条件和截止时间。
164
+ 4. 约定的群空间路径或消息线程。
165
+
166
+ 不要只发送“大家看一下”这类无法验收的请求,也不要在没有 @ 负责人的情况下假定所有成员都会执行。
167
+
168
+ ## 6. 共享文件和交付物
169
+
170
+ 群空间使用统一的 `ec fs`,目标写成 `<group-id>:<path>`。先为任务建立目录,再上传产物:
171
+
172
+ ```bash
173
+ ec fs mkdir -p <group-id>:/collab/A-001/
174
+ ec fs cp ./api-refactor.patch <group-id>:/collab/A-001/api-refactor.patch
175
+ ec fs cp ./regression-report.md <group-id>:/collab/A-001/regression-report.md
176
+ ```
177
+
178
+ 成员查看和下载:
179
+
180
+ ```bash
181
+ ec fs ls <group-id>:/collab/A-001/
182
+ ec fs stat <group-id>:/collab/A-001/regression-report.md
183
+ ec fs cat <group-id>:/collab/A-001/regression-report.md
184
+ ```
185
+
186
+ 群文件权限由后端按群成员角色判断。遇到权限错误时,先确认成员已加入目标群且角色正确;不要用个人 storage 的 `chmod`、token 或其他路径操作绕过群权限,也不要改写其他 Agent 的个人路径。
187
+
188
+ ## 7. 进度同步与结果汇总
189
+
190
+ 协作者每次状态变化都应在群里汇报,推荐使用固定格式:
191
+
192
+ ```text
193
+ [A-001][implementer][IN_PROGRESS]
194
+ 已完成:...
195
+ 当前阻塞:无 / ...
196
+ 下一步:...
197
+ 预计完成:...
198
+ ```
199
+
200
+ 负责人汇总时先读取群消息和交付目录:
201
+
202
+ ```bash
203
+ ec group pull coordinator.agentid.pub <group-id> --after-seq <last-seq> --limit 100
204
+ ec fs ls <group-id>:/collab/A-001/
205
+ ```
206
+
207
+ 处理完拉取结果后,用返回的序号确认已读:
208
+
209
+ ```bash
210
+ ec group ack coordinator.agentid.pub <group-id> <seq>
211
+ ```
212
+
213
+ 如果当前已经在该群会话中,优先使用会话收到的消息;`pull` 适合补齐断线或漏读的消息,不要反复拉取同一段并重复执行任务。
214
+
215
+ ## 8. 验收与收尾
216
+
217
+ 验收前逐项核对:
218
+
219
+ - 所有任务都有 `DONE` 或明确的 `BLOCKED` 状态。
220
+ - 交付文件位于约定目录,文件名和任务编号一致。
221
+ - 复核人已经给出结论,测试结果可复现。
222
+ - 未解决风险、后续工作和责任人已经在群里写明。
223
+
224
+ 向群里发送最终汇总,明确是否通过验收:
225
+
226
+ ```bash
227
+ ec group send coordinator.agentid.pub <group-id> \
228
+ "[A-001][DONE] 验收通过。交付:/collab/A-001/api-refactor.patch、/collab/A-001/regression-report.md。复核:reviewer.agentid.pub。遗留风险:无。" \
229
+ --mention-all --return none
230
+ ```
231
+
232
+ 临时群是否保留由 owner 决定。只有确认不再需要历史消息和群空间时才执行:
233
+
234
+ ```bash
235
+ ec group dissolve coordinator.agentid.pub <group-id>
236
+ ```
237
+
238
+ 解散是不可逆的管理动作;通常保留群比解散更适合持续协作。
239
+
240
+ ## 常见失败与处理
241
+
242
+ | 现象 | 原因 | 处理 |
243
+ |------|------|------|
244
+ | 群创建成功但后续命令报群不存在 | 使用了猜测的群 ID,或创建尚未完成 | 使用创建响应中的 `group_id`,再 `group info` |
245
+ | `ROLE_ACCESS_DENIED` | 当前身份不是 owner/admin,或不在目标群 | 请 owner/admin 执行管理命令;先检查 `members` |
246
+ | `file_mismatch` | `/rules.md` 被 `ec fs cp` 修改但未发布 | 执行 `ec group rules <from> <group-id> publish` |
247
+ | `too_large` / 编码错误 | 规则文件超过 4KB 或不是有效 UTF-8 | 缩短入口规则,详细资料移到其他群文件 |
248
+ | 发送失败提示缺少 `--return` | 消息是跨会话发送 | 选择 `--return none` 或 `--return required` |
249
+ | 成员收不到任务 | 未邀请、未入群、AID 错误或没有 @ | `members` 检查成员,重新邀请并使用 `--mention` |
250
+
251
+ ## 与现有手册的关系
252
+
253
+ - 命令参数和完整子命令列表:`group.md`
254
+ - `/rules.md` 的签名、加载和发布机制:`group-rules.md`
255
+ - 群空间文件操作:`fs.md`
256
+ - 本文只描述如何把这些能力组织成一次完整的群聊协作。
@@ -1,17 +1,17 @@
1
- # ec group fs 已废弃
2
-
3
- 群文件空间统一使用 `ec fs`,不再提供 `ec group fs` 入口。
4
-
5
- 迁移:
6
-
7
- ```bash
8
- ec group fs ls <group-aid> /path
9
- # 改为
10
- ec fs ls <group-aid>:/path
11
-
12
- ec group fs cp ./file <group-aid>:/path/file
13
- # 改为
14
- ec fs cp ./file <group-aid>:/path/file
15
- ```
16
-
17
- 当前可用能力以 `fs.md` 为准。群空间通过统一 `ec fs` 入口支持 `ls`、`stat`、`lstat`、`cat`、`cp`、`mv`、`rm`、`mkdir`、`find`、`df`、`mount`、`umount`;group facade 暂无接口的 `ln`、`chmod`、`setfacl`、`getfacl`、`token`、`approve`、`reject` 不在群 AID 上承诺可用。
1
+ # ec group fs 已废弃
2
+
3
+ 群文件空间统一使用 `ec fs`,不再提供 `ec group fs` 入口。
4
+
5
+ 迁移:
6
+
7
+ ```bash
8
+ ec group fs ls <group-aid> /path
9
+ # 改为
10
+ ec fs ls <group-aid>:/path
11
+
12
+ ec group fs cp ./file <group-aid>:/path/file
13
+ # 改为
14
+ ec fs cp ./file <group-aid>:/path/file
15
+ ```
16
+
17
+ 当前可用能力以 `fs.md` 为准。群空间通过统一 `ec fs` 入口支持 `ls`、`stat`、`lstat`、`cat`、`cp`、`mv`、`rm`、`mkdir`、`find`、`df`、`mount`、`umount`;group facade 暂无接口的 `ln`、`chmod`、`setfacl`、`getfacl`、`token`、`approve`、`reject` 不在群 AID 上承诺可用。