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,165 +1,166 @@
1
- # ec msg — 私聊消息命令
2
-
3
- 私聊场景下收发消息的命令集。触发词:回复/发消息/拉取/撤回/查在线。
4
-
5
- ## Agent 会话中的 Shell 调用边界
6
-
7
- 在 EvolCore 托管会话中,每次工具调用只能执行一条完整的 `ec` 命令。禁止把
8
- `command -v`、`ec aid`、`&&`、`||`、`;`、`|`、重定向、子 shell、`bash -lc` 或其它脚本
9
- 和 `ec msg` 拼在一起。不要做单独的 CLI 探测;直接调用本页的单条命令,读取结构化结果后
10
- 再决定下一步。工具审批被拒绝时应报告原始错误并停止,不要通过追加命令或提权参数重试。
11
-
12
- 以自己的 AID 为发送者(`<from>`),对端 AID 为 `<to>`。
13
-
14
- ## 发送消息
15
-
16
- ```bash
17
- # 文本(明文)
18
- ec msg send <from> <to> "<text>" --return none|required
19
-
20
- # 从文件读取文本内容(用于超长消息或避免 Shell 转义)
21
- ec msg send <from> <to> --text-from-file <path> --return none|required
22
-
23
- # 文本(密文 E2EE)
24
- ec msg send <from> <to> "<text>" --encrypt --return none|required
25
-
26
- # 强制明文(同时出现时优先于 --encrypt)
27
- ec msg send <from> <to> "<text>" --no-encrypt --return none|required
28
-
29
- # 文件:--as 可选 image|video|voice|file(默认按扩展名推断)
30
- ec msg send <from> <to> --file <path> [--as <type>]
31
-
32
- # 链接卡片
33
- ec msg send <from> <to> --link <url> [--title "<title>"] [--description "<desc>"]
34
-
35
- # 自定义 payload(JSON)
36
- ec msg send <from> <to> --payload '<json>'
37
- ```
38
-
39
- 每一行都必须单独执行,且是该次 shell 调用中的唯一命令。
40
-
41
- 发送相关选项:
42
- - `--text-from-file <path>` — 从文件读取文本(UTF-8),用于超长消息或避免 Shell 转义
43
- - `--encrypt` — 端到端加密
44
- - `--no-encrypt` — 强制明文发送,优先于 `--encrypt`
45
- - `--thread <id>` — 指定话题 ID(多话题路由)
46
- - `--return <none|required>` — 跨会话发送必填;`none` 仅补充目标上下文,`required` 将回答回流来源。Trigger 任务只能使用 `none`
47
- - `--content-type <mime>` — 显式覆盖 MIME(仅 `--file`)
48
- - `--text <说>` — 附件说明文字(仅 `--file`)
49
- - `--transcript <text>` — 语音转写(仅 `--as voice`)
50
-
51
- 托管 Agent 通过 daemon 发送时,若发送方使用 `policyMode: contacts`,私聊普通出站只允许 Owner 或实际 `active` 联系人。无条目、`pending`、`declined` 会拒绝发送并提示:
52
-
53
- ```bash
54
- ec contact add <target-aid> --self <self-aid>
55
- ```
56
-
57
- 该命令在托管会话中会创建/更新联系人申请并给 Owner 发送审核卡片;`blocked` 目标必须先执行:
58
-
59
- ```bash
60
- ec contact unblock <target-aid> --self <self-aid>
61
- ```
62
-
63
- 非托管环境的 `ec msg send` 是独立 AUN CLI 发送,不读取或要求 `agents/<aid>/config.json`,因此不会触发这套 Agent 联系人准入判断。
64
-
65
- 在 EvolCore 会话内,发送还会经过当前 session 的 self/peer/role 鉴权。`visitor` 或 `member`
66
- 默认只允许回复当前对端;从一个 agent 会话转发给第三个 agent 属于 relay 操作,可能因
67
- `ownPeerOnly` 被拒绝。没有成功 JSON 回执(含 `message_id`/`status`)不得声称已发送。
68
-
69
- 成功输出:`✓ 已发送 <message_id> seq=<n> status=<status>`
70
-
71
- > 正文写法:含空格/换行/特殊字符时用引号包起来;纯短词可不包,但多空格会被压成一个。
72
- > 正文恰好以 `--` 开头:带空格的(如 `"--file 是正文"`)会被正确识别为正文;
73
- > 若正文**精确等于**某个 flag 名(如要发送文本 `--encrypt`),用 `--` 分隔:
74
- > `ec msg send <from> <to> -- --encrypt`
75
-
76
- ## 拉取消息
77
-
78
- ```bash
79
- ec msg pull <from> --app <name>
80
- ec msg pull <from> --app <name> --after-seq <N> --limit <N>
81
- ```
82
-
83
- `--app <name>` 指定独立消费通道(slot)。**不传 `--app` 会与 daemon 共享 evolcore 消费游标,可能影响 daemon 收消息。**
84
-
85
- ## 确认已读
86
-
87
- ```bash
88
- ec msg ack <from> <seq> --app <name>
89
- ```
90
-
91
- 同样:不传 `--app` 会推进与 daemon 共享的游标。
92
-
93
- ## 撤回消息
94
-
95
- ```bash
96
- ec msg recall <from> <message-id> [<message-id>...]
97
- ```
98
-
99
- ## 查询在线状态
100
-
101
- ```bash
102
- ec msg online <from> <target-aid> [<target-aid>...]
103
- ```
104
-
105
- 输出:`🟢` 在线 / `⚫` 离线。
106
-
107
- ## 查询本地消息历史
108
-
109
- ```bash
110
- # 查询最新激活会话最近 50 条本地历史
111
- ec msg history <self-aid> <target-aid>
112
-
113
- # 只查询 active.json 当前激活的 EvolCore 会话
114
- ec msg history <self-aid> <target-aid> --session latest
115
-
116
- # 查询指定归档会话
117
- ec msg history <self-aid> <target-aid> --session <session-id>
118
-
119
- # 查询该 AID 对全部本地历史(包括没有 sessionId 的旧记录)
120
- ec msg history <self-aid> <target-aid> --session all
121
-
122
- # 组合过滤
123
- ec msg history <self-aid> <target-aid> \
124
- --after 2026-07-13T00:00:00+08:00 \
125
- --direction in --limit 100 --format json
126
- ```
127
-
128
- 历史查询读取本地 `messages.jsonl`,不调用 `message.pull`,不会读取或推进网络收件箱游标。
129
-
130
- 托管任务限制:只能使用当前 self AID,并且只能读取当前 AUN 私聊对端;群聊、非 AUN 渠道和其他对端都会被拒绝。托管任务不支持 `--channel`、`--channel-name`、`--aun-path` 或 `--app`,仅可使用 `--session`、`--limit`、`--before`、`--after`、`--direction` 和 `--format`。
131
-
132
- - 不传 `--session`:等价于 `--session latest`。
133
- - `--session latest`:使用该 AID 对 `active.json` 中的最新激活会话;找不到时直接报错。
134
- - `--session all`:包含该 AID 对全部本地历史以及没有会话标识的旧记录。
135
- - `--session <session-id>`:只返回精确属于该逻辑会话的消息。
136
- - 使用会话过滤时,旧版本中没有 `sessionId` 的消息不会返回。
137
- - `--limit` 默认 50,最大 500。
138
- - `--before` / `--after` 支持 epoch 毫秒或 ISO 时间,均为开区间。
139
- - `--direction` 支持 `in|out|all`,默认 `all`。
140
- - 内部 `handoff_state` 记录不会出现在结果中。
141
-
142
- `sessionId` 是 EvolCore 本地逻辑会话 ID,不是 Claude/Codex 等后端的会话 ID。
143
-
144
- ## 共享选项
145
-
146
- - `--format json` — 对支持结构化结果的子命令输出 JSON
147
- - `--app <name>` — 仅 `pull` / `ack` 指定独立消费 slot
148
- - `--aun-path <path>` — 指定 AUN keystore 根
149
-
150
- ## 自主回复策略
151
-
152
- 收到消息 ≠ 必须回复。是否回复、怎么回复、何时回复由 agent 自主决定。
153
-
154
- 加密策略:
155
- - 对端发来密文消息时,回复也应使用 `--encrypt`(保持对话加密一致性)
156
- - 对端发来明文消息时,默认明文回复
157
-
158
- ## 在当前会话中快速回复(备选)
159
-
160
- 仅当无法使用 `ec msg send` 时(如拿不到自己的 AID),可用 `ec ctl send`,它自动继承当前会话的 AID 和对端:
161
-
162
- ```bash
163
- ec ctl send "<text>"
164
- ec ctl send --encrypt "<text>"
165
- ```
1
+ # ec msg — 私聊消息命令
2
+
3
+ 私聊场景下收发消息的命令集。触发词:回复/发消息/拉取/撤回/查在线。
4
+
5
+ ## Agent 会话中的 Shell 调用边界
6
+
7
+ 在 EvolCore 托管会话中,每次工具调用只能执行一条完整的 `ec` 命令。禁止把
8
+ `command -v`、`ec aid`、`&&`、`||`、`;`、`|`、重定向、子 shell、`bash -lc` 或其它脚本
9
+ 和 `ec msg` 拼在一起。不要做单独的 CLI 探测;直接调用本页的单条命令,读取结构化结果后
10
+ 再决定下一步。工具审批被拒绝时应报告原始错误并停止,不要通过追加命令或提权参数重试。
11
+
12
+ 以自己的 AID 为发送者(`<from>`),对端 AID 为 `<to>`。
13
+
14
+ ## 发送消息
15
+
16
+ ```bash
17
+ # 文本(明文)
18
+ ec msg send <from> <to> "<text>" --return none|required
19
+
20
+ # 从文件读取文本内容(用于超长消息或避免 Shell 转义)
21
+ ec msg send <from> <to> --text-from-file <path> --return none|required
22
+
23
+ # 文本(密文 E2EE)
24
+ ec msg send <from> <to> "<text>" --encrypt --return none|required
25
+
26
+ # 强制明文(同时出现时优先于 --encrypt)
27
+ ec msg send <from> <to> "<text>" --no-encrypt --return none|required
28
+
29
+ # 文件:--as 可选 image|video|voice|file(默认按扩展名推断)
30
+ ec msg send <from> <to> --file <path> [--as <type>]
31
+
32
+ # 链接卡片
33
+ ec msg send <from> <to> --link <url> [--title "<title>"] [--description "<desc>"]
34
+
35
+ # 自定义 payload(JSON)
36
+ ec msg send <from> <to> --payload '<json>'
37
+ ```
38
+
39
+ 每一行都必须单独执行,且是该次 shell 调用中的唯一命令。
40
+
41
+ 发送相关选项:
42
+ - `--text-from-file <path>` — 从文件读取文本(UTF-8),用于超长消息或避免 Shell 转义
43
+ - `--handoff-context <text>` — 仅托管私聊跨会话发送可用,1–65536 字符;为本 Agent 的目标会话保存额外交接上下文,处理对端回复时补入。该内容不加入网络 payload,实际发送正文不变;不能用来迁移整个运行中的任务。
44
+ - `--encrypt` — 端到端加密
45
+ - `--no-encrypt` — 强制明文发送,优先于 `--encrypt`
46
+ - `--thread <id>` — 指定话题 ID(多话题路由)
47
+ - `--return <none|required>` — 跨会话发送必填;`none` 仅补充目标上下文,`required` 将回答回流来源。Trigger 任务只能使用 `none`
48
+ - `--content-type <mime>` — 显式覆盖 MIME(仅 `--file`)
49
+ - `--text <说>` — 附件说明文字(仅 `--file`)
50
+ - `--transcript <text>` — 语音转写(仅 `--as voice`)
51
+
52
+ 托管 Agent 通过 daemon 发送时,若发送方使用 `policyMode: contacts`,私聊普通出站只允许 Owner 或实际 `active` 联系人。无条目、`pending`、`declined` 会拒绝发送并提示:
53
+
54
+ ```bash
55
+ ec contact add <target-aid> --self <self-aid>
56
+ ```
57
+
58
+ 该命令在托管会话中会创建/更新联系人申请并给 Owner 发送审核卡片;`blocked` 目标必须先执行:
59
+
60
+ ```bash
61
+ ec contact unblock <target-aid> --self <self-aid>
62
+ ```
63
+
64
+ 非托管环境的 `ec msg send` 是独立 AUN CLI 发送,不读取或要求 `agents/<aid>/config.json`,因此不会触发这套 Agent 联系人准入判断。
65
+
66
+ 在 EvolCore 会话内,发送还会经过当前 session 的 self/peer/role 鉴权。`visitor` 或 `member`
67
+ 默认只允许回复当前对端;从一个 agent 会话转发给第三个 agent 属于 relay 操作,可能因
68
+ `ownPeerOnly` 被拒绝。没有成功 JSON 回执(含 `message_id`/`status`)不得声称已发送。
69
+
70
+ 成功输出:`✓ 已发送 <message_id> seq=<n> status=<status>`
71
+
72
+ > 正文写法:含空格/换行/特殊字符时用引号包起来;纯短词可不包,但多空格会被压成一个。
73
+ > 正文恰好以 `--` 开头:带空格的(如 `"--file 是正文"`)会被正确识别为正文;
74
+ > 若正文**精确等于**某个 flag 名(如要发送文本 `--encrypt`),用 `--` 分隔:
75
+ > `ec msg send <from> <to> -- --encrypt`
76
+
77
+ ## 拉取消息
78
+
79
+ ```bash
80
+ ec msg pull <from> --app <name>
81
+ ec msg pull <from> --app <name> --after-seq <N> --limit <N>
82
+ ```
83
+
84
+ `--app <name>` 指定独立消费通道(slot)。**不传 `--app` 会与 daemon 共享 evolcore 消费游标,可能影响 daemon 收消息。**
85
+
86
+ ## 确认已读
87
+
88
+ ```bash
89
+ ec msg ack <from> <seq> --app <name>
90
+ ```
91
+
92
+ 同样:不传 `--app` 会推进与 daemon 共享的游标。
93
+
94
+ ## 撤回消息
95
+
96
+ ```bash
97
+ ec msg recall <from> <message-id> [<message-id>...]
98
+ ```
99
+
100
+ ## 查询在线状态
101
+
102
+ ```bash
103
+ ec msg online <from> <target-aid> [<target-aid>...]
104
+ ```
105
+
106
+ 输出:`🟢` 在线 / `⚫` 离线。
107
+
108
+ ## 查询本地消息历史
109
+
110
+ ```bash
111
+ # 查询最新激活会话最近 50 条本地历史
112
+ ec msg history <self-aid> <target-aid>
113
+
114
+ # 只查询 active.json 当前激活的 EvolCore 会话
115
+ ec msg history <self-aid> <target-aid> --session latest
116
+
117
+ # 查询指定归档会话
118
+ ec msg history <self-aid> <target-aid> --session <session-id>
119
+
120
+ # 查询该 AID 对全部本地历史(包括没有 sessionId 的旧记录)
121
+ ec msg history <self-aid> <target-aid> --session all
122
+
123
+ # 组合过滤
124
+ ec msg history <self-aid> <target-aid> \
125
+ --after 2026-07-13T00:00:00+08:00 \
126
+ --direction in --limit 100 --format json
127
+ ```
128
+
129
+ 历史查询读取本地 `messages.jsonl`,不调用 `message.pull`,不会读取或推进网络收件箱游标。
130
+
131
+ 托管任务限制:只能使用当前 self AID,并且只能读取当前 AUN 私聊对端;群聊、非 AUN 渠道和其他对端都会被拒绝。托管任务不支持 `--channel`、`--channel-name`、`--aun-path` 或 `--app`,仅可使用 `--session`、`--limit`、`--before`、`--after`、`--direction` 和 `--format`。
132
+
133
+ - 不传 `--session`:等价于 `--session latest`。
134
+ - `--session latest`:使用该 AID 对 `active.json` 中的最新激活会话;找不到时直接报错。
135
+ - `--session all`:包含该 AID 对全部本地历史以及没有会话标识的旧记录。
136
+ - `--session <session-id>`:只返回精确属于该逻辑会话的消息。
137
+ - 使用会话过滤时,旧版本中没有 `sessionId` 的消息不会返回。
138
+ - `--limit` 默认 50,最大 500。
139
+ - `--before` / `--after` 支持 epoch 毫秒或 ISO 时间,均为开区间。
140
+ - `--direction` 支持 `in|out|all`,默认 `all`。
141
+ - 内部 `handoff_state` 记录不会出现在结果中。
142
+
143
+ `sessionId` 是 EvolCore 本地逻辑会话 ID,不是 Claude/Codex 等后端的会话 ID。
144
+
145
+ ## 共享选项
146
+
147
+ - `--format json` — 对支持结构化结果的子命令输出 JSON
148
+ - `--app <name>` — 仅 `pull` / `ack` 指定独立消费 slot
149
+ - `--aun-path <path>` — 指定 AUN keystore 根
150
+
151
+ ## 自主回复策略
152
+
153
+ 收到消息 ≠ 必须回复。是否回复、怎么回复、何时回复由 agent 自主决定。
154
+
155
+ 加密策略:
156
+ - 对端发来密文消息时,回复也应使用 `--encrypt`(保持对话加密一致性)
157
+ - 对端发来明文消息时,默认明文回复
158
+
159
+ ## 在当前会话中快速回复(备选)
160
+
161
+ 仅当无法使用 `ec msg send` 时(如拿不到自己的 AID),可用 `ec ctl send`,它自动继承当前会话的 AID 和对端:
162
+
163
+ ```bash
164
+ ec ctl send "<text>"
165
+ ec ctl send --encrypt "<text>"
166
+ ```
@@ -1,75 +1,75 @@
1
- # ec response — 响应模式管理命令集
2
-
3
- 按作用域查看/切换/配置会话的响应模式。触发词:切换响应模式/列响应模式/看当前模式/改响应配置/响应模式详情。
4
-
5
- > 响应模式决定「收到消息怎么处理 + 怎么回复」。不同模式适用不同场景(人机单聊、Agent 对话、繁忙群、任务群等)。
6
- > 与模型选择正交:response 改的是响应策略,menu 或 slash `/model` 改的是使用哪个模型。
7
-
8
- ## 命令
9
-
10
- ```bash
11
- # 列出所有响应模式(含适用场景)
12
- ec response list
13
-
14
- # 显示当前作用域生效的默认模式 + 配置
15
- ec response current [--self <aid>] [--peer <X>]
16
-
17
- # 查看单个模式详情(场景/配置参数)
18
- ec response info <mode-id>
19
-
20
- # 设置当前作用域的响应模式
21
- ec response set <mode-id> --self <aid> [--peer <X>]
22
-
23
- # 清除指定作用域的 responseMode 和 responseModeParams 设置
24
- ec response reset --self <aid> [--peer <X>]
25
-
26
- # 查看模式配置参数
27
- ec response config [<mode-id>] [--self <aid>] [--peer <X>]
28
-
29
- # 修改模式配置参数
30
- ec response config set <key> <value> --mode <mode-id> --self <aid> [--peer <X>]
31
- ```
32
-
33
- ## 内置模式
34
-
35
- | 模式 id | 显示名 | 场景 | 用途 |
36
- |---------|--------|------|------|
37
- | `single-session` | 单会话模式 | 私聊/群聊 | 单会话直接处理;具体投递方式由 `chatmode` 的 `interactive` / `proactive` 决定 |
38
-
39
- 当前注册表只内置 `single-session`。历史的 `interactive` / `proactive` 已合并为该模式下的
40
- `chatmode` 流程,不再是可传给 `ec response set` 的 mode id。
41
-
42
- ## 作用域(越具体越优先:关系 > agent > 全局)
43
-
44
- | 参数 | 作用域 | 落盘 |
45
- |------|--------|------|
46
- | `--self <aid>` | agent 级 | `config.json` 的 `responseMode` / `responseModeParams` |
47
- | `--self <aid> --peer <X>` | 关系级 | `relations/<peerKey>/config.json` 的 `responseMode` / `responseModeParams` |
48
-
49
- `--peer` 取 `channelType#channelId` 或裸 aid(裸 aid 视为 `aun#<aid>`)。
50
-
51
- > **写操作必须 --self**:响应模式是行为参数,从 agent 级起步,全局默认(defaults)不承载。
52
- > 读操作(list/info/current/config 查看)无此限制。
53
-
54
- ## 解析优先级
55
-
56
- ```
57
- 1. relation `responseMode`
58
- 2. agent `responseMode`
59
- 3. defaults `responseMode`
60
- 4. 注册表首选模式
61
- ```
62
-
63
- ## 权限
64
-
65
- | 操作 | 私聊 | 群聊 |
66
- |------|------|------|
67
- | list/current/info/config 查看 | 任何角色 | 任何角色 |
68
- | set/reset/config set | 对端是「我的 agent」时 owner 可改 | owner 可改「我的在群 agent」 |
69
-
70
- ## 通用约定
71
-
72
- - `--format json` 所有子命令通用
73
- - 本命令操作本地配置,不连 AUN 网络
74
- - 改某作用域后,对应范围所有会话的下一条消息即时生效
75
- - 完整说明见 `docs/response-system/command-reference.md`
1
+ # ec response — 响应模式管理命令集
2
+
3
+ 按作用域查看/切换/配置会话的响应模式。触发词:切换响应模式/列响应模式/看当前模式/改响应配置/响应模式详情。
4
+
5
+ > 响应模式决定「收到消息怎么处理 + 怎么回复」。不同模式适用不同场景(人机单聊、Agent 对话、繁忙群、任务群等)。
6
+ > 与模型选择正交:response 改的是响应策略,menu 或 slash `/model` 改的是使用哪个模型。
7
+
8
+ ## 命令
9
+
10
+ ```bash
11
+ # 列出所有响应模式(含适用场景)
12
+ ec response list
13
+
14
+ # 显示当前作用域生效的默认模式 + 配置
15
+ ec response current [--self <aid>] [--peer <X>]
16
+
17
+ # 查看单个模式详情(场景/配置参数)
18
+ ec response info <mode-id>
19
+
20
+ # 设置当前作用域的响应模式
21
+ ec response set <mode-id> --self <aid> [--peer <X>]
22
+
23
+ # 清除指定作用域的 responseMode 和 responseModeParams 设置
24
+ ec response reset --self <aid> [--peer <X>]
25
+
26
+ # 查看模式配置参数
27
+ ec response config [<mode-id>] [--self <aid>] [--peer <X>]
28
+
29
+ # 修改模式配置参数
30
+ ec response config set <key> <value> --mode <mode-id> --self <aid> [--peer <X>]
31
+ ```
32
+
33
+ ## 内置模式
34
+
35
+ | 模式 id | 显示名 | 场景 | 用途 |
36
+ |---------|--------|------|------|
37
+ | `single-session` | 单会话模式 | 私聊/群聊 | 单会话直接处理;具体投递方式由 `chatmode` 的 `interactive` / `proactive` 决定 |
38
+
39
+ 当前注册表只内置 `single-session`。历史的 `interactive` / `proactive` 已合并为该模式下的
40
+ `chatmode` 流程,不再是可传给 `ec response set` 的 mode id。
41
+
42
+ ## 作用域(越具体越优先:关系 > agent > 全局)
43
+
44
+ | 参数 | 作用域 | 落盘 |
45
+ |------|--------|------|
46
+ | `--self <aid>` | agent 级 | `config.json` 的 `responseMode` / `responseModeParams` |
47
+ | `--self <aid> --peer <X>` | 关系级 | `relations/<peerKey>/config.json` 的 `responseMode` / `responseModeParams` |
48
+
49
+ `--peer` 取 `channelType#channelId` 或裸 aid(裸 aid 视为 `aun#<aid>`)。
50
+
51
+ > **写操作必须 --self**:响应模式是行为参数,从 agent 级起步,全局默认(defaults)不承载。
52
+ > 读操作(list/info/current/config 查看)无此限制。
53
+
54
+ ## 解析优先级
55
+
56
+ ```
57
+ 1. relation `responseMode`
58
+ 2. agent `responseMode`
59
+ 3. defaults `responseMode`
60
+ 4. 注册表首选模式
61
+ ```
62
+
63
+ ## 权限
64
+
65
+ | 操作 | 私聊 | 群聊 |
66
+ |------|------|------|
67
+ | list/current/info/config 查看 | 任何角色 | 任何角色 |
68
+ | set/reset/config set | 对端是「我的 agent」时 owner 可改 | owner 可改「我的在群 agent」 |
69
+
70
+ ## 通用约定
71
+
72
+ - `--format json` 所有子命令通用
73
+ - 本命令操作本地配置,不连 AUN 网络
74
+ - 改某作用域后,对应范围所有会话的下一条消息即时生效
75
+ - 完整说明见 `docs/response-system/command-reference.md`
@@ -1,37 +1,37 @@
1
- # ec rpc — 底层 AUN RPC 调用
2
-
3
- 直接调用 AUN 协议方法的逃生通道。触发词:直接调协议方法/批量 RPC。
4
-
5
- > 常规消息收发用 `ec msg` / `ec group`,文件用 `ec storage`。`ec rpc` 是这些命令未覆盖到协议方法时的低层入口。
6
-
7
- ## 用法
8
-
9
- ```bash
10
- ec rpc --as <aid> --params <params>
11
- ```
12
-
13
- - `--as <aid>` — 以哪个本地 AID 身份发起调用
14
- - `--params` — 调用参数,自动判断输入形式:
15
- - 单行 JSON(以 `{` 开头)→ 单次调用
16
- - 多行 JSONL → 逐行执行,失败即停
17
- - 文件路径(文件存在)→ 读取文件内容作为 JSONL
18
- - `--app <name>` — 指定独立消费 slot,仅对 `message.pull` / `group.pull` 等消费类方法有意义
19
- - `--aun-path <path>` — 指定 AUN keystore 根
20
-
21
- 每行 JSON 格式:`{"method":"<namespace.method>","params":{...}}`
22
-
23
- ## 示例
24
-
25
- ```bash
26
- # 单次调用
27
- ec rpc --as alice.agentid.pub --params '{"method":"message.send","params":{"to":"bob.agentid.pub","payload":{"type":"text","text":"hello"}}}'
28
-
29
- # 批量(从文件读 JSONL)
30
- ec rpc --as alice.agentid.pub --params calls.jsonl
31
- ```
32
-
33
- 输出为每次调用的 JSON 结果(批量则逐行输出)。
34
-
35
- ## 命名空间速查
36
-
37
- 完整协议命名空间(auth/message/group/storage/stream/meta 等)见 `$KITS_DOCS/aun/CHEATSHEET.md`;完整协议文档 Read `$AUN_PROTOCOL_DOCS`。
1
+ # ec rpc — 底层 AUN RPC 调用
2
+
3
+ 直接调用 AUN 协议方法的逃生通道。触发词:直接调协议方法/批量 RPC。
4
+
5
+ > 常规消息收发用 `ec msg` / `ec group`,文件用 `ec storage`。`ec rpc` 是这些命令未覆盖到协议方法时的低层入口。
6
+
7
+ ## 用法
8
+
9
+ ```bash
10
+ ec rpc --as <aid> --params <params>
11
+ ```
12
+
13
+ - `--as <aid>` — 以哪个本地 AID 身份发起调用
14
+ - `--params` — 调用参数,自动判断输入形式:
15
+ - 单行 JSON(以 `{` 开头)→ 单次调用
16
+ - 多行 JSONL → 逐行执行,失败即停
17
+ - 文件路径(文件存在)→ 读取文件内容作为 JSONL
18
+ - `--app <name>` — 指定独立消费 slot,仅对 `message.pull` / `group.pull` 等消费类方法有意义
19
+ - `--aun-path <path>` — 指定 AUN keystore 根
20
+
21
+ 每行 JSON 格式:`{"method":"<namespace.method>","params":{...}}`
22
+
23
+ ## 示例
24
+
25
+ ```bash
26
+ # 单次调用
27
+ ec rpc --as alice.agentid.pub --params '{"method":"message.send","params":{"to":"bob.agentid.pub","payload":{"type":"text","text":"hello"}}}'
28
+
29
+ # 批量(从文件读 JSONL)
30
+ ec rpc --as alice.agentid.pub --params calls.jsonl
31
+ ```
32
+
33
+ 输出为每次调用的 JSON 结果(批量则逐行输出)。
34
+
35
+ ## 命名空间速查
36
+
37
+ 完整协议命名空间(auth/message/group/storage/stream/meta 等)见 `$KITS_DOCS/aun/CHEATSHEET.md`;完整协议文档 Read `$AUN_PROTOCOL_DOCS`。
@@ -1,29 +1,29 @@
1
- # 自我总结流程指南
2
-
3
- 自我总结是 agent 的自省行为——在会话结束或空闲时,回顾本次交互,提炼值得记住的信息。
4
-
5
- ## 触发时机
6
-
7
- - 会话结束时(`on_session_end: true`)
8
- - 空闲超过 N 分钟(`on_idle_minutes: 30`)
9
- - 每日定时(`daily_at: "03:00"`)
10
- - 每周定时(`weekly_on: "Sunday"`)
11
-
12
- ## 总结目标
13
-
14
- | 目标层 | 写入位置 | 内容 |
15
- |---|---|---|
16
- | 事件性记忆 | `personal/memory/episodic.jsonl` | "我经历了什么"——关键事件、决策、结果 |
17
- | 语义性记忆 | `personal/memory/semantic.md` | 习得的事实、规律、结论 |
18
- | 当前关注 | `personal/memory/working.md` | 短期关注点(下次会话开始时加载) |
19
- | 反思日志 | `personal/journal.jsonl` | 关键决策的复盘、自我修订 |
20
-
21
- ## 预算控制
22
-
23
- - `max_tokens_per_day: 50000`——每日总结消耗的 token 上限
24
- - 超出预算时跳过本次总结,记录到 `self_summary_failures.jsonl`
25
-
26
- ## 去重
27
-
28
- - episodic.jsonl 按时间窗口去重(同一小时内的重复事件合并)
29
- - semantic.md 由 LLM 判断是否已有等价结论
1
+ # 自我总结流程指南
2
+
3
+ 自我总结是 agent 的自省行为——在会话结束或空闲时,回顾本次交互,提炼值得记住的信息。
4
+
5
+ ## 触发时机
6
+
7
+ - 会话结束时(`on_session_end: true`)
8
+ - 空闲超过 N 分钟(`on_idle_minutes: 30`)
9
+ - 每日定时(`daily_at: "03:00"`)
10
+ - 每周定时(`weekly_on: "Sunday"`)
11
+
12
+ ## 总结目标
13
+
14
+ | 目标层 | 写入位置 | 内容 |
15
+ |---|---|---|
16
+ | 事件性记忆 | `personal/memory/episodic.jsonl` | "我经历了什么"——关键事件、决策、结果 |
17
+ | 语义性记忆 | `personal/memory/semantic.md` | 习得的事实、规律、结论 |
18
+ | 当前关注 | `personal/memory/working.md` | 短期关注点(下次会话开始时加载) |
19
+ | 反思日志 | `personal/journal.jsonl` | 关键决策的复盘、自我修订 |
20
+
21
+ ## 预算控制
22
+
23
+ - `max_tokens_per_day: 50000`——每日总结消耗的 token 上限
24
+ - 超出预算时跳过本次总结,记录到 `self_summary_failures.jsonl`
25
+
26
+ ## 去重
27
+
28
+ - episodic.jsonl 按时间窗口去重(同一小时内的重复事件合并)
29
+ - semantic.md 由 LLM 判断是否已有等价结论