evolcore 0.0.28 → 0.0.29

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 (183) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/bin/ec-safe-output.js +270 -54
  3. package/dist/agents/baseagent-availability.js +37 -1
  4. package/dist/agents/baseagent.js +19 -9
  5. package/dist/agents/claude-runner.js +171 -13
  6. package/dist/agents/codex/app-server-client.js +6 -2
  7. package/dist/agents/codex/diagnostics.js +4 -3
  8. package/dist/agents/codex-runner.js +396 -95
  9. package/dist/agents/gemini-runner.js +35 -17
  10. package/dist/aun/group/history.js +130 -90
  11. package/dist/aun/group/operations.js +1 -3
  12. package/dist/aun/menu/transport.js +5 -3
  13. package/dist/aun/msg/managed-operation.js +70 -0
  14. package/dist/aun/msg/p2p.js +1 -3
  15. package/dist/aun/msg/upload.js +2 -2
  16. package/dist/aun/outbox.js +1 -37
  17. package/dist/channels/aun.js +249 -89
  18. package/dist/channels/daemon.js +18 -1
  19. package/dist/channels/feishu.js +1 -2
  20. package/dist/cli/agent-command.js +23 -3
  21. package/dist/cli/agent-create.js +68 -2
  22. package/dist/cli/agent.js +12 -2
  23. package/dist/cli/aun-commands.js +87 -13
  24. package/dist/cli/cli-argv.js +26 -0
  25. package/dist/cli/daemon-commands.js +40 -10
  26. package/dist/cli/data-command.js +4 -4
  27. package/dist/cli/handoff-command.js +2 -0
  28. package/dist/cli/index.js +18 -1
  29. package/dist/cli/managed-command-guard.js +10 -0
  30. package/dist/cli/memory-command.js +441 -0
  31. package/dist/cli/restart-monitor.js +62 -6
  32. package/dist/cli/skill-command.js +41 -0
  33. package/dist/cli/task-context.js +2 -23
  34. package/dist/cli/trigger-command.js +9 -1
  35. package/dist/cli/watch-msg-diag.js +209 -0
  36. package/dist/config/config-field-policy.js +52 -3
  37. package/dist/config/config-manager.js +17 -4
  38. package/dist/config/contact-book-store.js +2 -2
  39. package/dist/config/mention-mode.js +7 -2
  40. package/dist/config/merge.js +28 -9
  41. package/dist/config/resolved-config-op.js +1 -1
  42. package/dist/config/runtime-env.js +137 -0
  43. package/dist/config/schema-registry.js +11 -1
  44. package/dist/config-store.js +10 -10
  45. package/dist/core/audit/event-key.js +3 -1
  46. package/dist/core/audit/log-integrity.js +4 -0
  47. package/dist/core/auth/agent-delegation.js +2 -1
  48. package/dist/core/auth/auth-gateway.js +13 -6
  49. package/dist/core/auth/authorization-audit.js +54 -19
  50. package/dist/core/auth/operation-authorizer.js +17 -0
  51. package/dist/core/auth/operation-catalog.js +9 -0
  52. package/dist/core/causation/context.js +5 -1
  53. package/dist/core/command/agent-control.js +1 -2
  54. package/dist/core/command/command-handler.js +51 -23
  55. package/dist/core/command/memory-slash.js +270 -0
  56. package/dist/core/command/menu-catalog.js +1 -0
  57. package/dist/core/command/menu-handler.js +315 -60
  58. package/dist/core/command/menu-protocol.js +42 -4
  59. package/dist/core/command/slash-gate.js +10 -10
  60. package/dist/core/command/slash-handler.js +206 -64
  61. package/dist/core/data-migration.js +282 -505
  62. package/dist/core/event-catalog.js +26 -0
  63. package/dist/core/evolagent-registry.js +6 -0
  64. package/dist/core/evolagent.js +0 -10
  65. package/dist/core/handoff/store.js +1 -20
  66. package/dist/core/inference/text-inference.js +57 -1
  67. package/dist/core/memory/consolidation-context.js +505 -0
  68. package/dist/core/memory/consolidation-ops-records.js +124 -0
  69. package/dist/core/memory/consolidation-trigger.js +394 -0
  70. package/dist/core/memory/index-manager.js +308 -0
  71. package/dist/core/memory/launch-consolidation.js +395 -0
  72. package/dist/core/memory/memory-admin.js +234 -0
  73. package/dist/core/memory/memory-document.js +100 -0
  74. package/dist/core/memory/memory-session-policy.js +41 -0
  75. package/dist/core/memory/memory-signature.js +257 -0
  76. package/dist/core/memory/memory-writer.js +432 -0
  77. package/dist/core/memory/staleness.js +117 -0
  78. package/dist/core/message/auto-mention-gate.js +454 -0
  79. package/dist/core/message/im-renderer.js +69 -16
  80. package/dist/core/message/message-bridge.js +287 -21
  81. package/dist/core/message/message-log.js +1 -0
  82. package/dist/core/message/message-queue.js +114 -27
  83. package/dist/core/message/pending-hints.js +329 -161
  84. package/dist/core/message/response-engine.js +567 -80
  85. package/dist/core/permission/ec-command-parser.js +1029 -80
  86. package/dist/core/permission/protected-paths.js +376 -126
  87. package/dist/core/permission/sandbox-runtime.js +40 -12
  88. package/dist/core/permission/tool-error-code.js +96 -13
  89. package/dist/core/permission/tool-policy.js +276 -23
  90. package/dist/core/role/runtime-policy.js +3 -7
  91. package/dist/core/session/{runner-task-history.js → runner-event-summary.js} +1 -1
  92. package/dist/core/session/session-fs-store.js +0 -76
  93. package/dist/core/session/session-idle-monitor.js +355 -0
  94. package/dist/core/session/session-manager.js +478 -17
  95. package/dist/core/session/session-mapper.js +33 -16
  96. package/dist/core/session/session-renew.js +217 -155
  97. package/dist/core/session/{session-turns.js → session-transcript.js} +35 -6
  98. package/dist/core/skill/global-watcher.js +282 -0
  99. package/dist/core/skill/index-generator.js +84 -0
  100. package/dist/core/skill/startup.js +73 -0
  101. package/dist/core/skill/switch-resolver.js +115 -0
  102. package/dist/core/task/task-activity-store.js +219 -0
  103. package/dist/eck/kit-renderer.js +30 -3
  104. package/dist/eck/manifest-engine.js +26 -4
  105. package/dist/index.js +708 -18
  106. package/dist/ipc.js +564 -2
  107. package/dist/paths.js +30 -9
  108. package/dist/response-system/engines/v1/proactive-flow.js +116 -15
  109. package/dist/response-system/modes/single-session/index.js +3 -0
  110. package/dist/trigger/feedback.js +1 -0
  111. package/dist/trigger/manager.js +0 -10
  112. package/dist/trigger/scheduler.js +11 -0
  113. package/dist/trigger/validation.js +22 -0
  114. package/dist/utils/avatar-upload.js +59 -18
  115. package/dist/utils/error-dict.json +6 -3
  116. package/dist/utils/error-utils.js +27 -0
  117. package/dist/utils/logger.js +32 -10
  118. package/dist/utils/media-cache.js +84 -0
  119. package/dist/utils/msg-diag.js +97 -0
  120. package/dist/utils/welcome.js +37 -8
  121. package/kits/docs/AUTHORING.md +314 -0
  122. package/kits/docs/GUIDE.md +2 -0
  123. package/kits/docs/INDEX.md +2 -0
  124. package/kits/docs/aun/CHEATSHEET.md +4 -0
  125. package/kits/docs/aun/SDK.md +60 -0
  126. package/kits/docs/context-assembly.md +10 -6
  127. package/kits/docs/evolcore/INDEX.md +17 -3
  128. package/kits/docs/evolcore/agent-create.md +24 -0
  129. package/kits/docs/evolcore/agent.md +5 -2
  130. package/kits/docs/evolcore/config.md +1 -1
  131. package/kits/docs/evolcore/ec-capabilities.md +364 -0
  132. package/kits/docs/evolcore/group.md +34 -18
  133. package/kits/docs/evolcore/memory-architecture.md +78 -0
  134. package/kits/docs/evolcore/memory-consolidation-batches.md +133 -0
  135. package/kits/docs/evolcore/memory-consolidation.md +263 -0
  136. package/kits/docs/evolcore/memory-tags.md +63 -0
  137. package/kits/docs/evolcore/memory.md +110 -0
  138. package/kits/docs/evolcore/menu-client.md +27 -11
  139. package/kits/{schemas → docs/evolcore}/menu-exec-schema-commands.md +12 -6
  140. package/kits/docs/evolcore/menu-protocol.md +213 -0
  141. package/kits/docs/evolcore/msg.md +2 -0
  142. package/kits/docs/evolcore/trigger.md +7 -5
  143. package/kits/docs/path-registry.md +6 -8
  144. package/kits/docs/prompt-loading-architecture.md +5 -3
  145. package/kits/docs/venues/group.md +5 -4
  146. package/kits/eck_manifest.json +294 -88
  147. package/kits/eck_manifest.memory.json +257 -0
  148. package/kits/rules/03-identity.md +8 -8
  149. package/kits/rules/05-venue.md +4 -2
  150. package/kits/rules/06-channel.md +1 -1
  151. package/kits/schemas/_meta.json +276 -47
  152. package/kits/schemas/agent-config.schema.12.json +38 -2
  153. package/kits/schemas/agent-config.schema.13.json +591 -0
  154. package/kits/schemas/daemon.schema.6.json +9 -9
  155. package/kits/schemas/defaults.schema.5.json +29 -0
  156. package/kits/schemas/relation-config.schema.8.json +14 -1
  157. package/kits/schemas/relation-config.schema.9.json +129 -0
  158. package/kits/schemas/role-config.schema.1.json +3 -3
  159. package/kits/skills/.switches.json +3 -0
  160. package/kits/skills/ec-skill/SKILL.md +217 -0
  161. package/kits/skills/ec-skill/scripts/cli.mjs +128 -0
  162. package/kits/skills/ec-skill/scripts/deps.mjs +107 -0
  163. package/kits/skills/ec-skill/scripts/frontmatter.mjs +104 -0
  164. package/kits/skills/ec-skill/scripts/skill.mjs +629 -0
  165. package/kits/skills/ec-skill/scripts/template/SKILL.md.tmpl +30 -0
  166. package/kits/templates/decision/auto-mention.md +25 -0
  167. package/kits/templates/decision/session-renew.md +22 -0
  168. package/kits/templates/memory-consolidation/forget.md +104 -0
  169. package/kits/templates/memory-consolidation/generalize.md +76 -0
  170. package/kits/templates/memory-consolidation/notes.md +133 -0
  171. package/kits/templates/memory-consolidation/profile.md +58 -0
  172. package/kits/templates/memory-consolidation/promote.md +72 -0
  173. package/kits/templates/memory-consolidation/workflow.md +75 -0
  174. package/kits/templates/system-fragments/bootstrap.md +14 -5
  175. package/kits/templates/system-fragments/commands.md +1 -0
  176. package/kits/templates/system-fragments/group-history.md +6 -0
  177. package/kits/templates/system-fragments/identity.md +0 -3
  178. package/kits/templates/system-fragments/memory.md +79 -0
  179. package/kits/templates/system-fragments/reply.md +1 -0
  180. package/kits/templates/system-fragments/venue.md +1 -1
  181. package/package.json +4 -6
  182. package/dist/trigger/legacy-session-history.js +0 -19
  183. package/kits/templates/system-fragments/group-unread-history.md +0 -7
@@ -0,0 +1,79 @@
1
+ [memory] 记忆系统
2
+ {{?sessionType!=memory}}
3
+ **静默规则**:记忆操作完全静默。仅当用户明确表达让你记住某事时,才给一句不超过一行的简短确认,其余情况禁止出现「记下了」「已记录」「我记住了」等表达。
4
+ `ec memory` 是唯一写入路径。**不要用 Write / Edit 直接写记忆文件,也不要用 baseagent 原生记忆工具**:绕过签名和索引,整理会话不感知。
5
+ **召回**:上方已注入三级 `MEMORY.md` 索引,按描述判断相关性,再 Read 对应 `consolidated/` 正文;不要全部读一遍。
6
+ {{?peerKey}}
7
+ **写入判据**:开新会话后这条信息拿不到,会不会有影响?会就写,不会就不写。
8
+ 遇到以下表达直接写:
9
+
10
+ - 显式要求:记住、记一下、mark it、别忘了
11
+ - 偏好/习惯:我喜欢、我不喜欢、我偏好、我习惯
12
+ - 约束/禁止:不要、禁止、避免、别再、不允许
13
+ - 规则/注意:注意、当心、以后、每次、必须、务必
14
+ - 纠错反馈:错了、不对、应该是、你搞错了
15
+ 不写:会话内临时信息;隐私信息。
16
+ **每轮审查(静默)**:每轮结束前扫描完整会话上下文(含历史轮次),检查有无通过判据但未记录的信息,或已有 note 需更新。
17
+ **命令**(`--slug` 必填,字母/数字/连字符,1-64 字符,当前关系内唯一):
18
+
19
+ ```bash
20
+ ec memory note --slug <slug> [--tags <tag1,tag2>] "<正文>"
21
+ ec memory note update <slug> [--slug <新slug>] [--tags <...>] ["<新正文>"]
22
+ ec memory note drop <slug>
23
+ ec memory note list
24
+
25
+ ```
26
+
27
+ {{?chatType=group}}
28
+ 群聊场景可附加 `--speakers <id1,id2,...>` 记录本条 note 涉及的发言人(逗号分隔,填 AID 或渠道原生 ID)。整理会话会据此把发言人相关信息分流到各发言人自己的 relation 记忆里。
29
+ {{/}}
30
+ slug 撞名改用 `update`。完整用法见 `$KITS_DOCS/evolcore/memory.md`。
31
+ **整理**(触发后不等结果):
32
+
33
+ - 泛化(把这条记忆记到 Agent 自己身上,跟任何人聊都记得,不只是对当前对端):「你以后跟谁聊都要记得这个」「不只是对我,你自己记住」「把这个记到你身上」→ `ec memory consolidate --mode generalize`
34
+ - 提升(推给 owner 名下所有 Agent,让它们都记得):「让我所有 Agent 都记住这个」「我的 Agent 都要知道」「推给我名下所有 Agent」→ `ec memory consolidate --mode promote`
35
+ {{/}}
36
+ {{?peerKey=undefined}}
37
+ 当前会话没有对端(peerKey 为空),note 无处落盘,**不要调用** `ec memory note`。
38
+ {{/}}
39
+ {{/}}
40
+ {{?sessionType=memory}}
41
+ 你处于**记忆整理会话**里,不是在和用户对话。本次模式:`{{memoryMode}}`。
42
+
43
+ **只能用三个命令**:
44
+
45
+ ```bash
46
+ ec memory create --scope <relation|agent|owner> --slug <slug> --desc "一句话描述" \
47
+ [--peer <peerKey>] --tags <tag1,tag2,...> [--keywords <kw1,kw2,...>] [--replaces <路径,...>] "<正文>"
48
+ ec memory update <路径> --tags <tag1,tag2,...> # 整体替换标签,不是追加;改不了正文
49
+ ec memory update <路径> --touch # 只刷新时间戳(遗忘续期)
50
+ ec memory archive <路径...> # 下线记忆,移入 archive/
51
+
52
+ ```
53
+ | 参数 | 说明 |
54
+ | --- | --- |
55
+ | --scope | 必填,只能是本次模式允许的取值(见下表) |
56
+ | --slug | 必填,字母/数字/连字符,1-64 字符。目标已存在且不在 --replaces 里时被拒绝 |
57
+ | --desc | 必填,进索引,是以后唯一的线索。写「对端偏好简洁回复,不要表格」,不写「偏好相关」;不超过 50 字 |
58
+ | --tags | 必填,取值见 $KITS_DOCS/evolcore/memory-tags.md |
59
+ | --keywords | 可选,串起相关记忆的内容关键词 |
60
+ | --replaces | 可选,要替换的旧文件,自动归档。合并、纠正、升格作用域都走它,是唯一的防重复手段 |
61
+
62
+ **模式与允许的** `--scope`(越权会被 daemon 拒绝):
63
+
64
+ | 模式 | --scope |
65
+ | --- | --- |
66
+ | notes | relation |
67
+ | generalize | agent |
68
+ | promote | owner,且 --replaces 的来源必须包含 owner 关系的记忆 |
69
+ | profile | relation |
70
+ | forget | 会话带下来的 scope(分层审查,一次只审一层) |
71
+
72
+ **标签要点**:标签值不在代码里校验,写错不报错但会被筛选和整理漏掉;`important` / `urgent` / `profile` 保证进索引且永不淘汰,真正重要的要标上。
73
+
74
+ **禁止**:
75
+
76
+ - 用 Write / Edit 直接写 `consolidated/`:会被判为未签名、移入 `archive/invalid/`。
77
+ - 写 `pending/` 或调用 `ec memory note`:note 是主会话入口,整理会话用了会形成循环。
78
+ - 删除文件:只能 `archive`。
79
+ {{/}}
@@ -50,6 +50,7 @@ ec ctl send "<text>"
50
50
  - 调用发送命令时,每次 shell 调用只能执行一条完整的 ec 命令。不要拼接探测、管道、重定向、子 shell 或其它命令;不要读取外部 coding-agent skill 寻找发送方式。
51
51
  - 双引号正文中的双引号、反引号和 Shell 变量 `$` 需分别在其前加反斜杠。
52
52
  - 以退出码和发送回执判断成败;被拒绝时说明具体原因,不通过改目标、改身份或绕开托管通道重试。
53
+ - 跨会话发送:目标不是当前对端(peerId: {{peerId}})或当前群(groupId: {{groupId}})时,ec msg send / ec group send 必须显式指定 --return none|required;none 表示只发送不要求回流,required 表示对方回答回流至当前会话;同会话回复当前对端/群时不需要此参数。
53
54
  {{?channel=aun}}
54
55
  - 显式调用 msg/group send 时必须选择加密参数:回复 🔒密文用 --encrypt,回复 ✉明文用 --no-encrypt;批次含密文则用 --encrypt。不得省略参数后依赖默认明文;加密状态不明时使用继承当前会话状态的 ec ctl send "<text>"。
55
56
  - interactive 的直接输出和 ec ctl send 由框架继承当前会话的加密状态、目标和话题,无需手动改写路由。
@@ -12,7 +12,7 @@ evolcoreMode: install # evolcore 为全局安装包,$PACKAGE_ROOT 下代码可
12
12
  venueUid: {{venueUid}}
13
13
  {{/}}
14
14
  {{?mentionMode}}
15
- mentionMode: {{mentionMode}} # 群 @ 处理模式:mention-only(被@才响应) / disabled(所有消息都响应)
15
+ mentionMode: {{mentionMode}} # 群 @ 处理模式:mention-only(被@才响应) / disabled(所有消息都响应) / auto(按上下文判断)
16
16
  {{/}}
17
17
  {{?clientType}}
18
18
  clientType: {{clientType}} # 客户端类型:desktop / web / mobile
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evolcore",
3
- "version": "0.0.28",
3
+ "version": "0.0.29",
4
4
  "description": "AI Agent gateway connecting Claude, Codex, Gemini, and the bundled ecagent runner to messaging channels with multi-project session management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,10 +23,6 @@
23
23
  "!dist/experimental/",
24
24
  "!skills/",
25
25
  "kits/",
26
- "!kits/docs/evolcore/INDEX_BACKUP_314.md",
27
- "!kits/docs/evolcore/INDEX_BASE_314.md",
28
- "!kits/docs/evolcore/INDEX_LOCAL_314.md",
29
- "!kits/docs/evolcore/INDEX_REMOTE_314.md",
30
26
  "!kits/.kits-version",
31
27
  "*.md",
32
28
  "!AGENTS.md",
@@ -55,16 +51,18 @@
55
51
  "prepublishOnly": "npm test"
56
52
  },
57
53
  "dependencies": {
58
- "@agentunion/fastaun": "0.5.17",
54
+ "@agentunion/fastaun": "0.5.18",
59
55
  "@anthropic-ai/claude-agent-sdk": "0.3.280",
60
56
  "@modelcontextprotocol/sdk": "^1.29.0",
61
57
  "ajv": "^8.20.0",
58
+ "chokidar": "^5.0.0",
62
59
  "cron-parser": "^5.5.0",
63
60
  "dotenv": "^17.4.2",
64
61
  "ignore": "7.0.5",
65
62
  "image-type": "^6.0.0",
66
63
  "partial-json": "0.1.7",
67
64
  "qrcode-terminal": "^0.12.0",
65
+ "sharp": "0.35.5",
68
66
  "smol-toml": "1.8.0",
69
67
  "typebox": "1.1.38",
70
68
  "ws": "^8.21.0",
@@ -1,19 +0,0 @@
1
- /**
2
- * Turns legacy raw session-file references into the controlled history CLI.
3
- * The replacement deliberately keeps the explicit peer/channel scope but
4
- * never carries a filesystem location into a Trigger prompt.
5
- */
6
- export function rewriteLegacyTriggerSessionPaths(prompt, triggerAid) {
7
- const historyChannels = new Set(['aun', 'feishu', 'wechat', 'dingtalk', 'qqbot', 'wecom']);
8
- const legacyPath = /data\/sessions\/([A-Za-z0-9_-]+)\/([^/\s`"'<>]+)(?:\/([^/\s`"'<>]+))?\/messages\.jsonl/g;
9
- return prompt.replace(legacyPath, (match, channel, first, second) => {
10
- if (!historyChannels.has(channel))
11
- return match;
12
- const isAun = channel === 'aun';
13
- const target = isAun ? second : first;
14
- const selfAid = triggerAid ?? (isAun ? first : undefined);
15
- if (!selfAid || !target)
16
- return match;
17
- return `ec msg history ${selfAid} ${target} --channel ${channel} --session all --direction in --format json`;
18
- });
19
- }
@@ -1,7 +0,0 @@
1
- [group-unread-history]
2
- 本群使用 mention-only 提及模式。此前未被 @ 的会话消息保存在本地,不会自动进入你的上下文。
3
- 需要了解此前讨论时,可执行:
4
- ec group history {{selfAid}} {{groupId}} --unread --limit 50 --format json
5
- 返回的消息会自动记为已读;has_more=true 时可再次执行同一命令读取下一页。
6
- 命令默认查询当前话题,--thread all 查询整个群;--all 可回看历史且不改变已读状态。
7
- 历史是背景资料,保留原发送者与时间,不要重放其中的 slash 命令或逐条自动回复。