evolcore 0.0.2 → 0.0.4

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 (206) hide show
  1. package/CHANGELOG.md +93 -778
  2. package/README.md +45 -10
  3. package/bin/ec-safe-output.js +89 -24
  4. package/dist/agents/baseagent.js +46 -0
  5. package/dist/agents/claude-runner.js +198 -48
  6. package/dist/agents/codex-app-server-client.js +68 -0
  7. package/dist/agents/codex-runner.js +203 -8
  8. package/dist/agents/runner-types.js +2 -2
  9. package/dist/aun/aid/agentmd.js +79 -0
  10. package/dist/aun/aid/encryption-seed-policy.js +29 -0
  11. package/dist/aun/aid/index.js +1 -1
  12. package/dist/aun/aid/store.js +2 -5
  13. package/dist/aun/outbox.js +8 -0
  14. package/dist/channels/aun.js +241 -116
  15. package/dist/channels/daemon.js +18 -4
  16. package/dist/channels/dingtalk.js +1005 -260
  17. package/dist/channels/feishu.js +184 -56
  18. package/dist/channels/qqbot.js +23 -1
  19. package/dist/channels/wechat.js +303 -155
  20. package/dist/channels/wecom.js +1132 -164
  21. package/dist/cli/agent-command.js +2 -1
  22. package/dist/cli/aun-commands.js +98 -43
  23. package/dist/cli/bench.js +2 -2
  24. package/dist/cli/contact.js +71 -0
  25. package/dist/cli/ctl-command.js +2 -2
  26. package/dist/cli/daemon-commands.js +77 -214
  27. package/dist/cli/handoff-command.js +4 -3
  28. package/dist/cli/help.js +9 -5
  29. package/dist/cli/index.js +132 -116
  30. package/dist/cli/init-channel.js +242 -129
  31. package/dist/cli/init.js +70 -31
  32. package/dist/cli/model.js +2 -1
  33. package/dist/cli/net-check.js +2 -2
  34. package/dist/cli/queue-command.js +30 -6
  35. package/dist/cli/raw-key-input.js +25 -0
  36. package/dist/cli/response.js +5 -6
  37. package/dist/cli/restart-monitor.js +25 -1
  38. package/dist/cli/stats.js +6 -4
  39. package/dist/cli/trigger-command.js +146 -25
  40. package/dist/cli/version.js +6 -1
  41. package/dist/config/access-policy-domain.js +38 -0
  42. package/dist/config/access-policy.js +134 -0
  43. package/dist/config/builtin-role-templates.js +42 -17
  44. package/dist/config/builtin-roles.js +31 -6
  45. package/dist/config/config-field-policy.js +17 -5
  46. package/dist/config/config-manager.js +409 -29
  47. package/dist/config/config-operation-service.js +35 -38
  48. package/dist/config/contact-alias.js +68 -0
  49. package/dist/config/contact-bind-code.js +274 -0
  50. package/dist/config/contact-book-store.js +622 -0
  51. package/dist/config/contact-book-v2-startup.js +35 -0
  52. package/dist/config/contact-book.js +185 -300
  53. package/dist/config/contact-operation-service.js +116 -0
  54. package/dist/config/contact-request-service.js +331 -0
  55. package/dist/config/peer-role-resolver.js +136 -55
  56. package/dist/config/role-ranks.js +18 -0
  57. package/dist/config/role-service.js +16 -19
  58. package/dist/config/role-store.js +16 -5
  59. package/dist/config/roles.js +10 -1
  60. package/dist/config/schema-registry.js +49 -24
  61. package/dist/config-store.js +14 -4
  62. package/dist/core/auth/agent-delegation.js +105 -11
  63. package/dist/core/auth/authorization-audit.js +16 -1
  64. package/dist/core/auth/operation-authorizer.js +10 -0
  65. package/dist/core/auth/operation-catalog.js +105 -1
  66. package/dist/core/auth/trigger-authorization.js +15 -0
  67. package/dist/core/bootstrap-service.js +2 -9
  68. package/dist/core/channel-loader.js +6 -2
  69. package/dist/core/command/command-handler.js +113 -21
  70. package/dist/core/command/connect-menu.js +599 -0
  71. package/dist/core/command/evol-menu-version-gate.js +38 -0
  72. package/dist/core/command/group-menu.js +421 -0
  73. package/dist/core/command/menu-handler.js +382 -100
  74. package/dist/core/command/menu-protocol.js +8 -2
  75. package/dist/core/command/menu-token-store.js +102 -0
  76. package/dist/core/command/role-menu.js +128 -29
  77. package/dist/core/command/slash-gate.js +1 -1
  78. package/dist/core/command/slash-handler.js +186 -49
  79. package/dist/core/daemon-file-cache.js +40 -6
  80. package/dist/core/event-catalog.js +99 -0
  81. package/dist/core/evolagent-registry.js +4 -40
  82. package/dist/core/evolagent.js +20 -9
  83. package/dist/core/handoff/runtime.js +162 -37
  84. package/dist/core/handoff/store.js +46 -2
  85. package/dist/core/handoff/types.js +1 -0
  86. package/dist/core/inference/text-inference.js +16 -74
  87. package/dist/core/message/file-markers.js +7 -0
  88. package/dist/core/message/im-renderer.js +20 -14
  89. package/dist/core/message/inbound-admission.js +124 -0
  90. package/dist/core/message/message-bridge.js +670 -57
  91. package/dist/core/message/message-log.js +1 -0
  92. package/dist/core/message/message-queue.js +195 -10
  93. package/dist/core/message/message-utils.js +8 -2
  94. package/dist/core/message/peer-mode.js +7 -8
  95. package/dist/core/message/response-engine.js +642 -96
  96. package/dist/core/message/send-receipt.js +24 -0
  97. package/dist/core/message/stream-debouncer.js +11 -2
  98. package/dist/core/permission/approval-gateway.js +17 -10
  99. package/dist/core/permission/ec-command-parser.js +101 -46
  100. package/dist/core/permission/tool-policy.js +115 -38
  101. package/dist/core/protected-paths.js +38 -11
  102. package/dist/core/session/session-fs-store.js +44 -3
  103. package/dist/core/session/session-manager.js +86 -8
  104. package/dist/core/session/session-mapper.js +2 -0
  105. package/dist/core/session/session-renew.js +125 -69
  106. package/dist/core/session/session-turn-coordinator.js +5 -1
  107. package/dist/eck/kit-renderer.js +12 -1
  108. package/dist/eck/message-renderer.js +79 -1
  109. package/dist/index.js +285 -94
  110. package/dist/ipc.js +114 -8
  111. package/dist/paths.js +3 -0
  112. package/dist/response-system/config-resolver.js +29 -0
  113. package/dist/response-system/coordinator.js +8 -32
  114. package/dist/response-system/engines/v1/proactive-flow.js +1 -1
  115. package/dist/response-system/index.js +1 -0
  116. package/dist/response-system/modes/single-session/index.js +7 -4
  117. package/dist/stats/billing.js +20 -8
  118. package/dist/trigger/manager.js +3 -0
  119. package/dist/trigger/parser.js +126 -11
  120. package/dist/trigger/patch.js +12 -2
  121. package/dist/trigger/scheduler.js +444 -40
  122. package/dist/trigger/validation.js +13 -0
  123. package/dist/utils/aid-bind.js +43 -29
  124. package/dist/utils/error-dict.json +7 -0
  125. package/dist/utils/evolcore-version.js +21 -0
  126. package/dist/utils/instance-registry.js +14 -7
  127. package/dist/utils/log-writer.js +46 -0
  128. package/dist/utils/logger.js +2 -2
  129. package/dist/utils/media-cache.js +4 -1
  130. package/dist/utils/model-prices.jsonl +6 -3
  131. package/dist/utils/restart-safety.js +31 -0
  132. package/dist/utils/stable-semver.js +21 -0
  133. package/dist/utils/stats.js +33 -9
  134. package/dist/utils/system-memory.js +62 -0
  135. package/kits/docs/INDEX.md +2 -1
  136. package/kits/docs/channels/aun.md +4 -13
  137. package/kits/docs/evolcore/INDEX.md +5 -3
  138. package/kits/docs/evolcore/agent.md +9 -1
  139. package/kits/docs/evolcore/aid.md +5 -2
  140. package/kits/docs/evolcore/config.md +47 -2
  141. package/kits/docs/evolcore/contact.md +61 -0
  142. package/kits/docs/evolcore/fs.md +9 -0
  143. package/kits/docs/evolcore/group-rules.md +46 -4
  144. package/kits/docs/evolcore/group.md +15 -6
  145. package/kits/docs/evolcore/model.md +4 -1
  146. package/kits/docs/evolcore/msg.md +12 -6
  147. package/kits/docs/evolcore/response.md +16 -21
  148. package/kits/docs/evolcore/rpc.md +2 -0
  149. package/kits/docs/evolcore/stats.md +15 -2
  150. package/kits/docs/evolcore/storage.md +1 -0
  151. package/kits/docs/evolcore/trigger.md +42 -10
  152. package/kits/docs/path-registry.md +36 -17
  153. package/kits/eck_manifest.json +12 -0
  154. package/kits/eck_message_manifest.json +12 -1
  155. package/kits/migrations/migrate-contact-book-v2.mjs +754 -0
  156. package/kits/rules/01-overview.md +17 -7
  157. package/kits/rules/02-navigation.md +38 -18
  158. package/kits/rules/03-identity.md +28 -24
  159. package/kits/rules/04-relation.md +44 -28
  160. package/kits/rules/05-venue.md +31 -15
  161. package/kits/rules/06-channel.md +11 -7
  162. package/kits/schemas/_meta.json +21 -7
  163. package/kits/schemas/agent-config.schema.6.json +322 -0
  164. package/kits/schemas/agent-config.schema.7.json +303 -0
  165. package/kits/schemas/agent-config.schema.8.json +304 -0
  166. package/kits/schemas/agent-config.schema.9.json +374 -0
  167. package/kits/schemas/contact-book.schema.2.json +43 -0
  168. package/kits/schemas/contact-book.schema.3.json +67 -0
  169. package/kits/schemas/daemon.schema.1.json +3 -2
  170. package/kits/schemas/daemon.schema.2.json +101 -0
  171. package/kits/schemas/daemon.schema.3.json +123 -0
  172. package/kits/schemas/defaults.schema.2.json +85 -0
  173. package/kits/schemas/defaults.schema.3.json +73 -0
  174. package/kits/schemas/relation-config.schema.5.json +47 -0
  175. package/kits/schemas/relation-config.schema.6.json +46 -0
  176. package/kits/schemas/relation-config.schema.7.json +59 -0
  177. package/kits/schemas/role-config.schema.1.json +1 -0
  178. package/kits/schemas/role-registry.schema.1.json +2 -2
  179. package/kits/schemas/single-session.schema.2.json +57 -0
  180. package/kits/templates/message-fragments/handoff-context-to-target.md +9 -0
  181. package/kits/templates/message-fragments/handoff-request-to-target.md +14 -8
  182. package/kits/templates/message-fragments/handoff-response-to-origin.md +5 -6
  183. package/kits/templates/roles/admin.json +47 -0
  184. package/kits/templates/roles/member.json +5 -0
  185. package/kits/templates/roles/owner.json +1 -0
  186. package/kits/templates/roles/visitor.json +5 -0
  187. package/kits/templates/system-fragments/channel.md +12 -2
  188. package/kits/templates/system-fragments/commands.md +3 -1
  189. package/kits/templates/system-fragments/identity.md +3 -1
  190. package/kits/templates/system-fragments/relation.md +1 -1
  191. package/kits/templates/system-fragments/session.md +6 -2
  192. package/package.json +7 -5
  193. package/MIGRATION-0.5.0.md +0 -378
  194. package/ROLE_ACCESS_CONTROL.md +0 -174
  195. package/assets/brand/evolcore/README.md +0 -19
  196. package/assets/brand/evolcore/evolcore-app-icon.png +0 -0
  197. package/assets/brand/evolcore/evolcore-app-icon.svg +0 -13
  198. package/assets/brand/evolcore/evolcore-brand-board.png +0 -0
  199. package/assets/brand/evolcore/evolcore-brand-board.svg +0 -126
  200. package/assets/brand/evolcore/evolcore-logo-kit.zip +0 -0
  201. package/assets/brand/evolcore/evolcore-logo-reverse.png +0 -0
  202. package/assets/brand/evolcore/evolcore-logo-reverse.svg +0 -14
  203. package/assets/brand/evolcore/evolcore-logo.png +0 -0
  204. package/assets/brand/evolcore/evolcore-logo.svg +0 -14
  205. package/assets/brand/evolcore/evolcore-mark.png +0 -0
  206. package/assets/brand/evolcore/evolcore-mark.svg +0 -10
@@ -34,6 +34,16 @@ ec trigger history [triggerId] --limit 500 --json
34
34
 
35
35
  ## 创建
36
36
 
37
+ 创建操作统一使用 `create`:
38
+
39
+ | 入口 | 正式命令 | 兼容别名 |
40
+ | --- | --- | --- |
41
+ | CLI | `ec trigger create ...` | `ec trigger set ...` |
42
+ | Slash | `/trigger create ...` | `/trigger set ...` |
43
+ | Menu Protocol | `menu.action name=trigger action=create` | `action=set` |
44
+
45
+ 新调用只使用 `create`;`set` 仅用于兼容旧脚本和旧客户端。三种入口最终都映射到内部操作 `trigger.create`。
46
+
37
47
  Flag 模式适合 agent 现场创建常规 trigger:
38
48
 
39
49
  ```bash
@@ -48,7 +58,23 @@ ec trigger create \
48
58
  --enable
49
59
  ```
50
60
 
51
- CLI flag 模式必须显式指定 `--target-channel` 和 `--target-channel-id`,并生成 `feedback.strategy=target`。需要 `origin` 或 `silent` feedback 时,用 `/trigger` 或 `--file` 导入 Trigger V3 第二阶段 JSON
61
+ CLI flag 模式必须显式指定 `--exec`、`--target-channel` 和 `--target-channel-id`,并生成 `feedback.strategy=target`。需要 `origin` 或 `silent` feedback 时,用 `/trigger` 或 `--exec <type> --file <trigger.json|trigger-dir>` 导入 Trigger V3 第二阶段 JSON;CLI 会校验 `--exec` 与 JSON 的 `execution.type` 一致。
62
+
63
+ 多行或复杂 prompt 使用 `--prompt-file <path>`,文件内容会原样作为 prompt(UTF-8 BOM 会移除)。内联 `--prompt` 最多 4096 个字符;超限时 CLI 会提示改用 `--prompt-file <path>`:
64
+
65
+ ```bash
66
+ ec trigger create --cron '0 9 * * *' \
67
+ --exec target-session \
68
+ --prompt-file ./prompts/daily-summary.md \
69
+ --target-channel <channelKey> --target-channel-id <channelId> \
70
+ --name daily-summary --enable
71
+
72
+ ec trigger update <triggerId> --prompt-file ./prompts/daily-summary-v2.md
73
+ ```
74
+
75
+ `--file` 始终表示导入完整的 `trigger.json` 或 trigger 目录;`--prompt-file` 只表示 prompt 正文。所有 `create` 形式都必须显式指定 `--exec`;`--prompt-file` 与 `--prompt` 互斥,且不能和 `--file` 同时使用。
76
+
77
+ 模型通过 Bash 调用 CLI 且用双引号传递 `--prompt` 时,正文中的双引号、反引号和 Shell 变量形式的 `$` 需要分别写成 `\"`、反斜杠+反引号、`\$`。Shell 会在启动 `ec` 时去掉保护反斜杠,Trigger 中保存的仍是原始正文。
52
78
 
53
79
  支持的触发来源:
54
80
 
@@ -75,9 +101,9 @@ Trigger V3 第二阶段使用 `execution.type` 区分执行位置:
75
101
  --exec target-session
76
102
  ```
77
103
 
78
- `target-session` 是默认值:把 `--prompt` 当作一条 trigger 来源消息投递进目标会话队列,并等待该会话处理完成。
104
+ `target-session` `--prompt` `--prompt-file` 的内容当作一条 trigger 来源消息投递进目标会话队列,并等待该会话处理完成。创建时必须显式指定 `--exec target-session`,不会再隐式选择该类型。
79
105
 
80
- `trigger-session` 在 daemon 内部 trigger 会话执行 prompt,再把最终结果按 feedback 投递:
106
+ `trigger-session` 在 daemon 内部 trigger 会话执行 prompt,再把最终结果按 feedback 投递;prompt 可来自 `--prompt` 或 `--prompt-file`:
81
107
 
82
108
  ```bash
83
109
  --exec trigger-session \
@@ -97,7 +123,7 @@ Trigger V3 第二阶段使用 `execution.type` 区分执行位置:
97
123
  --script-args '{"scope":"daily"}'
98
124
  ```
99
125
 
100
- `script` 不使用 `--prompt`。脚本路径必须在 trigger 目录内;通过 `--file` 导入目录时,脚本文件会随 definition 一起上传。
126
+ `script` 不使用 `--prompt` 或 `--prompt-file`;它必须使用 `--script-path` 和 `--script-runtime`。脚本路径必须在 trigger 目录内;通过 `--file` 导入目录时,脚本文件会随 definition 一起上传。已有 script trigger 的 `update --prompt-file` 也会被拒绝。
101
127
 
102
128
  ## 目标与反馈
103
129
 
@@ -147,9 +173,12 @@ script trigger 返回 `[[NOOP]]` 或 `outcome: "noop"` 时走 noop 分支;默
147
173
  ```bash
148
174
  --model <模型>
149
175
  --effort <low|medium|high|xhigh|max>
176
+ --baseagent <claude|codex|gemini>
150
177
  ```
151
178
 
152
- `--model` / `--effort` 只覆盖本 trigger 执行时传给 base agent 的模型与推理强度。baseagent 不在 trigger 中指定,始终沿用该 trigger 所属 agent 当前 active baseagent;未设置时继承当前关系级 / agent 级 / 全局模型配置。
179
+ `--model` / `--effort` 只覆盖本 trigger 执行时传给 base agent 的模型与推理强度。
180
+ `--baseagent` 仅支持 `--exec trigger-session`,用于给该 trigger 会话单独选择 base agent;
181
+ `script` 和 `target-session` 不接受该参数。未设置时沿用 trigger 所属 agent 当前 active baseagent。
153
182
 
154
183
  无人值守 trigger 不适合 `request`。需要写文件、git、安装升级、重启服务、管理 trigger 时应显式使用:
155
184
 
@@ -157,7 +186,7 @@ script trigger 返回 `[[NOOP]]` 或 `outcome: "noop"` 时走 noop 分支;默
157
186
  --permission bypass
158
187
  ```
159
188
 
160
- owner/admin 通过 `/trigger set` 创建时默认使用 `bypass`;非 admin 默认 `readonly`,不能提权到 `bypass`,也不能跨渠道或跨会话指定 target
189
+ owner/admin 通过 `/trigger create` 创建时默认使用 `bypass`;非 admin 默认 `readonly`,不能提权到 `bypass`,也不能跨渠道或跨会话指定 target。历史 `/trigger set` 仍是兼容别名。
161
190
 
162
191
  ## 执行边界
163
192
 
@@ -177,6 +206,8 @@ ec trigger enable <triggerId>
177
206
  ec trigger disable <triggerId>
178
207
  ec trigger cancel <triggerId> # disable 的兼容别名
179
208
  ec trigger delete <triggerId>
209
+ ec trigger remove <triggerId> # delete 的兼容别名
210
+ ec trigger rm <triggerId> # delete 的兼容别名
180
211
  ```
181
212
 
182
213
  语义区别:
@@ -190,18 +221,19 @@ ec trigger delete <triggerId>
190
221
 
191
222
  ## 局部更新
192
223
 
193
- `update` 是 patch 语义,只提交需要修改的字段;未指定字段(包括长 prompt)保持不变。不接受 `--file` 或完整 definition:
224
+ `update` 是 patch 语义,只提交需要修改的字段;未指定字段(包括长 prompt)保持不变。`--prompt-file <path>` 只更新非 script trigger 的 prompt,不接受完整 definition:
194
225
 
195
226
  ```bash
196
227
  ec trigger update <triggerId> --cron '0 10 * * *'
197
228
  ec trigger update <triggerId> --prompt '新的任务内容' --name new-name
229
+ ec trigger update <triggerId> --prompt-file ./prompts/new-task.md
198
230
  ec trigger update <triggerId> --cron '0 10 * * *' --if-revision 'sha256:...'
199
231
  ```
200
232
 
201
233
  可更新参数只保留三组常用字段:
202
234
 
203
235
  - 调度:`--once`、`--delay`、`--at`、`--cron`、`--every`、`--event`、`--tz`
204
- - 内容:`--prompt`、`--name`
236
+ - 内容:`--prompt` 或 `--prompt-file <path>`、`--name`
205
237
  - 执行配置:`--model`、`--effort`、`--permission`
206
238
  - 运行边界:`--max-runs`、`--max-duration`、`--concurrency`、`--missed-policy`
207
239
 
@@ -242,8 +274,8 @@ logs/trigger-runs.log
242
274
  复杂 trigger 使用 Trigger V3 第二阶段 JSON:
243
275
 
244
276
  ```bash
245
- ec trigger create --file ./trigger.json --enable
246
- ec trigger create --file ./trigger-dir --enable
277
+ ec trigger create --exec target-session --file ./trigger.json --enable
278
+ ec trigger create --exec script --file ./trigger-dir --enable
247
279
  ```
248
280
 
249
281
  当前产品版本是 Trigger V3 第二阶段;其持久化定义版本为 `$schema_version: 3.1`。旧 `$schema_version: 4` 文件加载时会自动规范化为 `3.1`。
@@ -1,16 +1,21 @@
1
1
  # 路径定义
2
2
 
3
- 本文件定义所有预定义路径的含义和派生规则。运行时实际值在 `$ECK/path-registry.md`。
3
+ 本文件定义所有预定义路径的含义和派生规则。真相源是 `src/paths.ts`(基础/派生路径)
4
+ 和 `src/eck/manifest-engine.ts` 的 `buildPathMappings`(ECK 认识哪些别名)。
4
5
 
5
6
  ## 基础路径(三个锚点)
6
7
 
7
8
  | 名称 | 含义 | 来源 |
8
9
  |------|------|------|
9
- | `$EVOLCORE_HOME` | evolcore 用户数据根 | 环境变量 `EVOLCORE_HOME` 或默认 `~/.evolcore` |
10
- | `$PACKAGE_ROOT` | evolcore 包根目录 | `require.resolve('evolcore')` 所在目录 |
11
- | `$CURRENT_PROJECT` | 当前工作目录 | `process.cwd()` |
10
+ | `$EVOLCORE_HOME` | evolcore 用户数据根 | `resolveRoot()`:环境变量 `EVOLCORE_HOME` cwd 下有 `agents/defaults.json` 则取 cwd → `~/.evolcore` |
11
+ | `$PACKAGE_ROOT` | evolcore 包根目录 | `getPackageRoot()`,由 `import.meta` 推出(不是 `require.resolve`) |
12
+ | `$CURRENT_PROJECT` | 当前工作目录 | 会话的 projectPath |
12
13
 
13
- ## 包内路径(从 $PACKAGE_ROOT 派生)
14
+ > dev 模式下 `$EVOLCORE_HOME` 和 `$PACKAGE_ROOT` 可能是**同一个目录**(本机就是 `/home/evolcore`)。
15
+
16
+ ## ECK 能解析的别名
17
+
18
+ 只有下面这些能出现在 manifest 的 `path` 字段里;其它写法会被判为未解析变量、整段静默丢弃。
14
19
 
15
20
  | 名称 | 派生规则 | 说明 |
16
21
  |------|----------|------|
@@ -18,26 +23,40 @@
18
23
  | `$KITS_RULES` | `$KITS/rules` | 自动加载的规则文件 |
19
24
  | `$KITS_DOCS` | `$KITS/docs` | 按需加载的文档 |
20
25
  | `$KITS_TEMPLATES` | `$KITS/templates` | 运行时 prompt 组装模板 |
21
-
22
- ## 用户数据路径(从 $EVOLCORE_HOME 派生)
23
-
24
- | 名称 | 派生规则 | 说明 |
26
+ | `$KITS_FRAGMENTS` | `$KITS_TEMPLATES/system-fragments` | system prompt fragment 模板 |
27
+ | `$KITS_MESSAGE_FRAGMENTS` | `$KITS_TEMPLATES/message-fragments` | 逐条消息渲染的 fragment 模板 |
28
+ | `$AGENT_DIR` | `$EVOLCORE_HOME/agents/<selfAid>` | 当前 agent 数据目录 |
29
+ | `$PERSONAL_DIR` | `$AGENT_DIR/personal` | 身份层个人数据(旧名 `$SELF_DIR` 已废弃) |
30
+ | `$RELATIONS_DIR` | `$AGENT_DIR/relations` | 对端关系数据(含具体群/私聊实例数据) |
31
+ | `$VENUES_DIR` | `$AGENT_DIR/venues` | 环境层;**当前是死目录**,`agentVenuesDir()` 零调用点 |
32
+ | `$CURRENT_PROJECT` | 会话 projectPath | — |
33
+ | `$EVOLCORE_HOME` | 见上 | — |
34
+ | `$PACKAGE_ROOT` | 见上 | — |
35
+
36
+ `selfAid` 为空时(本地 coding 会话),`$AGENT_DIR` / `$PERSONAL_DIR` / `$RELATIONS_DIR` /
37
+ `$VENUES_DIR` 这四个别名**不会注册**。
38
+
39
+ ## 仅文档书写约定(ECK 不解析)
40
+
41
+ | 名称 | 实际位置 | 说明 |
25
42
  |------|----------|------|
26
- | `$ECK` | `$EVOLCORE_HOME/eck` | ECK 实例数据(路径注册表实例等) |
43
+ | `$ECK` | `$EVOLCORE_HOME/eck` | ECK 实例数据,见下节告警 |
27
44
  | `$AGENTS_DIR` | `$EVOLCORE_HOME/agents` | 所有 agent 数据根 |
28
- | `$AGENT_DIR` | `$AGENTS_DIR/<self-aid>` | 当前 agent 数据目录 |
29
- | `$SELF_DIR` | `$AGENT_DIR/personal` | 自己的身份档案 |
30
- | `$RELATIONS_DIR` | `$AGENT_DIR/relations` | 对端关系档案(含具体群/私聊实例数据) |
31
- | `$VENUES_DIR` | `$AGENT_DIR/venues` | 环境层(预留,更高抽象,非实例) |
32
45
  | `$AGENT_INDEX` | `$AGENT_DIR/index` | agent 级索引 |
46
+ | `$PEER_DIR` | `$RELATIONS_DIR/<peerKey>` | 当前对端的关系目录 |
33
47
 
34
48
  ## 外部依赖路径(需寻找)
35
49
 
36
50
  | 名称 | 寻找规则 | 说明 |
37
51
  |------|----------|------|
38
- | `$KITE` | `$EVOLCORE_HOME/config.json` `kitePath` 字段查找 | Kite 框架根 |
39
- | `$AUN_SDK_CORE` | `$KITE/aun-sdk-core` | AUN SDK 源码 |
52
+ | `$AUN_SDK` | `node -e "console.log(require.resolve('@agentunion/fastaun/package.json'))"` | 本机是本地依赖 `$PACKAGE_ROOT/node_modules/@agentunion/fastaun`,`npm ls -g` 查不到 |
53
+ | `$AUN_PROTOCOL_DOCS` | `$AUN_SDK/_packed_docs/protocol` | 注意是 `_packed_docs/`,该包**没有** `docs/` 目录 |
54
+
55
+ `$KITE` / `$AUN_SDK_CORE`(Kite 框架时代的 SDK 源码路径)已废弃,不再有对应实现。
40
56
 
41
57
  ## 路径实例文件
42
58
 
43
- 运行时实际路径值写入 `$ECK/path-registry.md`,格式见 `$KITS_DOCS/eck_templates/path-registry.template.md`。
59
+ `$ECK/path-registry.md` `$ECK/runtime.md` 由 `src/eck/init.ts` **写一次就不再更新**
60
+ (`if (fs.existsSync(file)) return`),且只渲染 `EVOLCORE_HOME` / `PACKAGE_ROOT` 两个变量——
61
+ 其余 `{{...}}` 占位符原样留在文件里;源码也**没有任何地方读回它们**。
62
+ 不要把它们当作真实路径的依据,按本文件的派生规则自己算,或直接读 `src/paths.ts`。
@@ -55,6 +55,18 @@
55
55
  ] },
56
56
  "description": "当前关注(working memory)"
57
57
  },
58
+ {
59
+ "id": "preferences",
60
+ "type": "file",
61
+ "file": "$PERSONAL_DIR/preferences/active-preferences.md",
62
+ "order": 23,
63
+ "needsInjection": false,
64
+ "when": { "and": [
65
+ { "var": "chatType", "eq": "private" },
66
+ { "var": "lifecycle", "neq": "bootstrapping" }
67
+ ] },
68
+ "description": "用户偏好(自动记忆,仅私聊注入)"
69
+ },
58
70
  {
59
71
  "id": "relation-layer",
60
72
  "type": "file",
@@ -21,9 +21,20 @@
21
21
  "needsInjection": true,
22
22
  "modeType": "handoff",
23
23
  "modeName": "request_to_target",
24
- "when": { "and": [ { "var": "isHandoff", "eq": true }, { "var": "handoffKind", "eq": "request_to_target" } ] },
24
+ "when": { "and": [ { "var": "isHandoff", "eq": true }, { "var": "handoffKind", "eq": "request_to_target" }, { "var": "handoffReturnPolicy", "eq": "required" } ] },
25
25
  "description": "msg send 跨会话请求回复上下文渲染"
26
26
  },
27
+ {
28
+ "id": "msg-handoff-context-to-target",
29
+ "type": "file",
30
+ "file": "$KITS_MESSAGE_FRAGMENTS/handoff-context-to-target.md",
31
+ "order": 6,
32
+ "needsInjection": true,
33
+ "modeType": "handoff",
34
+ "modeName": "request_to_target",
35
+ "when": { "and": [ { "var": "isHandoff", "eq": true }, { "var": "handoffKind", "eq": "request_to_target" }, { "var": "handoffReturnPolicy", "eq": "none" } ] },
36
+ "description": "msg send 跨会话单次本地上下文渲染"
37
+ },
27
38
  {
28
39
  "id": "msg-handoff-response-to-origin",
29
40
  "type": "file",