evolcore 0.0.2 → 0.0.3

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 (124) hide show
  1. package/CHANGELOG.md +44 -793
  2. package/dist/agents/claude-runner.js +197 -17
  3. package/dist/agents/codex-runner.js +46 -3
  4. package/dist/aun/outbox.js +8 -0
  5. package/dist/channels/aun.js +21 -4
  6. package/dist/channels/contact-bind-code.js +134 -0
  7. package/dist/channels/dingtalk.js +979 -149
  8. package/dist/channels/feishu.js +130 -54
  9. package/dist/channels/wecom-card.js +101 -0
  10. package/dist/channels/wecom-onboarding.js +82 -0
  11. package/dist/channels/wecom-state.js +191 -0
  12. package/dist/channels/wecom.js +755 -163
  13. package/dist/cli/agent-command.js +2 -1
  14. package/dist/cli/aun-commands.js +88 -33
  15. package/dist/cli/bench.js +2 -2
  16. package/dist/cli/contact.js +71 -0
  17. package/dist/cli/ctl-command.js +2 -2
  18. package/dist/cli/daemon-commands.js +77 -214
  19. package/dist/cli/handoff-command.js +2 -2
  20. package/dist/cli/help.js +9 -5
  21. package/dist/cli/index.js +132 -116
  22. package/dist/cli/init-channel.js +92 -97
  23. package/dist/cli/init.js +63 -26
  24. package/dist/cli/model.js +2 -1
  25. package/dist/cli/net-check.js +2 -2
  26. package/dist/cli/queue-command.js +30 -6
  27. package/dist/cli/raw-key-input.js +25 -0
  28. package/dist/cli/response.js +5 -6
  29. package/dist/cli/restart-monitor.js +25 -1
  30. package/dist/cli/stats.js +6 -4
  31. package/dist/cli/trigger-command.js +55 -15
  32. package/dist/cli/version.js +6 -1
  33. package/dist/config/builtin-role-templates.js +22 -10
  34. package/dist/config/builtin-roles.js +7 -1
  35. package/dist/config/config-manager.js +221 -17
  36. package/dist/config/contact-alias.js +68 -0
  37. package/dist/config/contact-book-store.js +454 -0
  38. package/dist/config/contact-book-v2-startup.js +35 -0
  39. package/dist/config/contact-book.js +156 -303
  40. package/dist/config/contact-operation-service.js +110 -0
  41. package/dist/config/peer-role-resolver.js +133 -54
  42. package/dist/config/role-ranks.js +18 -0
  43. package/dist/config/role-service.js +16 -19
  44. package/dist/config/role-store.js +16 -5
  45. package/dist/config/roles.js +10 -1
  46. package/dist/config-store.js +0 -2
  47. package/dist/core/auth/authorization-audit.js +10 -1
  48. package/dist/core/auth/operation-authorizer.js +2 -0
  49. package/dist/core/auth/operation-catalog.js +56 -0
  50. package/dist/core/command/command-handler.js +105 -10
  51. package/dist/core/command/connect-menu.js +374 -0
  52. package/dist/core/command/menu-handler.js +114 -16
  53. package/dist/core/command/role-menu.js +128 -29
  54. package/dist/core/command/slash-handler.js +28 -18
  55. package/dist/core/daemon-file-cache.js +12 -6
  56. package/dist/core/event-catalog.js +70 -0
  57. package/dist/core/evolagent-registry.js +0 -1
  58. package/dist/core/evolagent.js +20 -9
  59. package/dist/core/message/im-renderer.js +2 -0
  60. package/dist/core/message/message-bridge.js +79 -8
  61. package/dist/core/message/message-queue.js +10 -0
  62. package/dist/core/message/message-utils.js +8 -2
  63. package/dist/core/message/response-engine.js +269 -25
  64. package/dist/core/message/send-receipt.js +24 -0
  65. package/dist/core/message/stream-debouncer.js +11 -2
  66. package/dist/core/permission/tool-policy.js +47 -15
  67. package/dist/core/protected-paths.js +2 -0
  68. package/dist/core/session/session-fs-store.js +44 -3
  69. package/dist/core/session/session-manager.js +61 -5
  70. package/dist/index.js +62 -6
  71. package/dist/ipc.js +34 -5
  72. package/dist/stats/billing.js +20 -8
  73. package/dist/trigger/manager.js +3 -0
  74. package/dist/trigger/parser.js +77 -2
  75. package/dist/trigger/patch.js +8 -1
  76. package/dist/trigger/scheduler.js +3 -1
  77. package/dist/trigger/validation.js +13 -0
  78. package/dist/utils/aid-bind.js +43 -29
  79. package/dist/utils/instance-registry.js +14 -7
  80. package/dist/utils/log-writer.js +46 -0
  81. package/dist/utils/media-cache.js +4 -1
  82. package/dist/utils/model-prices.jsonl +6 -3
  83. package/dist/utils/restart-safety.js +31 -0
  84. package/dist/utils/system-memory.js +62 -0
  85. package/kits/docs/INDEX.md +2 -1
  86. package/kits/docs/evolcore/INDEX.md +5 -3
  87. package/kits/docs/evolcore/agent.md +9 -1
  88. package/kits/docs/evolcore/aid.md +5 -2
  89. package/kits/docs/evolcore/contact.md +57 -0
  90. package/kits/docs/evolcore/fs.md +9 -0
  91. package/kits/docs/evolcore/group.md +12 -3
  92. package/kits/docs/evolcore/model.md +4 -1
  93. package/kits/docs/evolcore/msg.md +9 -3
  94. package/kits/docs/evolcore/response.md +16 -21
  95. package/kits/docs/evolcore/rpc.md +2 -0
  96. package/kits/docs/evolcore/stats.md +15 -2
  97. package/kits/docs/evolcore/storage.md +1 -0
  98. package/kits/docs/evolcore/trigger.md +17 -2
  99. package/kits/eck_manifest.json +12 -0
  100. package/kits/migrations/migrate-contact-book-v2.mjs +747 -0
  101. package/kits/schemas/_meta.json +7 -4
  102. package/kits/schemas/agent-config.schema.6.json +322 -0
  103. package/kits/schemas/contact-book.schema.2.json +43 -0
  104. package/kits/schemas/relation-config.schema.5.json +47 -0
  105. package/kits/schemas/role-config.schema.1.json +1 -0
  106. package/kits/schemas/role-registry.schema.1.json +2 -2
  107. package/kits/templates/roles/admin.json +1 -0
  108. package/kits/templates/roles/member.json +1 -0
  109. package/kits/templates/roles/owner.json +1 -0
  110. package/kits/templates/roles/visitor.json +1 -0
  111. package/kits/templates/system-fragments/commands.md +3 -1
  112. package/package.json +4 -4
  113. package/assets/brand/evolcore/README.md +0 -19
  114. package/assets/brand/evolcore/evolcore-app-icon.png +0 -0
  115. package/assets/brand/evolcore/evolcore-app-icon.svg +0 -13
  116. package/assets/brand/evolcore/evolcore-brand-board.png +0 -0
  117. package/assets/brand/evolcore/evolcore-brand-board.svg +0 -126
  118. package/assets/brand/evolcore/evolcore-logo-kit.zip +0 -0
  119. package/assets/brand/evolcore/evolcore-logo-reverse.png +0 -0
  120. package/assets/brand/evolcore/evolcore-logo-reverse.svg +0 -14
  121. package/assets/brand/evolcore/evolcore-logo.png +0 -0
  122. package/assets/brand/evolcore/evolcore-logo.svg +0 -14
  123. package/assets/brand/evolcore/evolcore-mark.png +0 -0
  124. package/assets/brand/evolcore/evolcore-mark.svg +0 -10
@@ -16,6 +16,9 @@ ec msg send <from> <to> --text-from-file <path>
16
16
  # 文本(密文 E2EE)
17
17
  ec msg send <from> <to> "<text>" --encrypt
18
18
 
19
+ # 强制明文(同时出现时优先于 --encrypt)
20
+ ec msg send <from> <to> "<text>" --no-encrypt
21
+
19
22
  # 文件:--as 可选 image|video|voice|file(默认按扩展名推断)
20
23
  ec msg send <from> <to> --file <path> [--as <type>]
21
24
 
@@ -29,7 +32,9 @@ ec msg send <from> <to> --payload '<json>'
29
32
  发送相关选项:
30
33
  - `--text-from-file <path>` — 从文件读取文本(UTF-8),用于超长消息或避免 Shell 转义
31
34
  - `--encrypt` — 端到端加密
35
+ - `--no-encrypt` — 强制明文发送,优先于 `--encrypt`
32
36
  - `--thread <id>` — 指定话题 ID(多话题路由)
37
+ - `--return <required|none>` — 跨会话回流策略;跨会话默认 `required`
33
38
  - `--content-type <mime>` — 显式覆盖 MIME(仅 `--file`)
34
39
  - `--text <说>` — 附件说明文字(仅 `--file`)
35
40
  - `--transcript <text>` — 语音转写(仅 `--as voice`)
@@ -107,10 +112,11 @@ ec msg history <self-aid> <target-aid> \
107
112
 
108
113
  `sessionId` 是 EvolCore 本地逻辑会话 ID,不是 Claude/Codex 等后端的会话 ID。
109
114
 
110
- ## 通用约定
115
+ ## 共享选项
111
116
 
112
- - `--format json` — 所有子命令通用,输出 JSON
113
- - `--app <name>` — 指定应用 slot
117
+ - `--format json` — 对支持结构化结果的子命令输出 JSON
118
+ - `--app <name>` — `pull` / `ack` 指定独立消费 slot
119
+ - `--aun-path <path>` — 指定 AUN keystore 根
114
120
 
115
121
  ## 自主回复策略
116
122
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  ```bash
11
11
  # 列出所有响应模式(含适用场景)
12
- ec response list [--scene private|group]
12
+ ec response list
13
13
 
14
14
  # 显示当前作用域生效的默认模式 + 配置
15
15
  ec response current [--self <aid>] [--peer <X>]
@@ -17,10 +17,10 @@ ec response current [--self <aid>] [--peer <X>]
17
17
  # 查看单个模式详情(场景/配置参数)
18
18
  ec response info <mode-id>
19
19
 
20
- # 设置默认模式(--scene 指定 private/group)
21
- ec response set <mode-id> --self <aid> [--peer <X>] [--scene private|group]
20
+ # 设置当前作用域的响应模式
21
+ ec response set <mode-id> --self <aid> [--peer <X>]
22
22
 
23
- # 清除指定作用域的 response_modes 设置
23
+ # 清除指定作用域的 responseMode 和 responseModeParams 设置
24
24
  ec response reset --self <aid> [--peer <X>]
25
25
 
26
26
  # 查看模式配置参数
@@ -30,39 +30,34 @@ ec response config [<mode-id>] [--self <aid>] [--peer <X>]
30
30
  ec response config set <key> <value> --mode <mode-id> --self <aid> [--peer <X>]
31
31
  ```
32
32
 
33
- ## 内置模式(10 种)
33
+ ## 内置模式
34
34
 
35
35
  | 模式 id | 显示名 | 场景 | 用途 |
36
36
  |---------|--------|------|------|
37
- | `interactive` | 交互模式 | 私聊 | 输出即回复,人机单聊默认 |
38
- | `proactive` | 主动模式 | 私聊/群聊 | 工具调用才回复,Agent 对话默认 |
39
- | `dual-session` | 双会话模式 | 群聊 | 辅助会话判断相关性,繁忙群过滤 |
40
- | `thread-tracking` | 线索追踪 | 群聊 | 追踪对话线索,多话题群 |
41
- | `workflow` | 工作流模式 | 群聊 | 顺序处理任务,任务群 |
42
- | `context-enhanced` | 上下文增强 | 群聊 | 注入群规则文档,工作群 |
43
- | `batch-processing` | 批量处理 | 群聊 | 攒批节省资源,低优先级群 |
44
- | `selective-response` | 选择性响应 | 群聊 | 白名单/关键词过滤 |
45
- | `rate-limited` | 速率限制 | 私聊/群聊 | 控制响应频率,防刷屏 |
46
- | `autonomous` | 自主模式 | 私聊/群聊 | 触发器驱动,定时任务 |
37
+ | `single-session` | 单会话模式 | 私聊/群聊 | 单会话直接处理;具体投递方式由 `chatmode` 的 `interactive` / `proactive` 决定 |
38
+
39
+ 当前注册表只内置 `single-session`。历史的 `interactive` / `proactive` 已合并为该模式下的
40
+ `chatmode` 流程,不再是可传给 `ec response set` mode id。
47
41
 
48
42
  ## 作用域(越具体越优先:关系 > agent > 全局)
49
43
 
50
44
  | 参数 | 作用域 | 落盘 |
51
45
  |------|--------|------|
52
- | `--self <aid>` | agent 级 | `config.json` 的 response_modes |
53
- | `--self <aid> --peer <X>` | 关系级 | `relations/<peerKey>/config.json` 的 response_modes |
46
+ | `--self <aid>` | agent 级 | `config.json` 的 `responseMode` / `responseModeParams` |
47
+ | `--self <aid> --peer <X>` | 关系级 | `relations/<peerKey>/config.json` 的 `responseMode` / `responseModeParams` |
54
48
 
55
49
  `--peer` 取 `channelType#channelId` 或裸 aid(裸 aid 视为 `aun#<aid>`)。
56
50
 
57
- > **写操作必须 --self**:response_modes 是行为参数,从 agent 级起步,全局默认(defaults)不承载。
51
+ > **写操作必须 --self**:响应模式是行为参数,从 agent 级起步,全局默认(defaults)不承载。
58
52
  > 读操作(list/info/current/config 查看)无此限制。
59
53
 
60
54
  ## 解析优先级
61
55
 
62
56
  ```
63
- 1. overrides[peerKey] (特定对端/群指定模式)
64
- 2. default_private/default_group (chatType 默认)
65
- 3. 系统兜底(private→interactive, group→proactive)
57
+ 1. relation `responseMode`
58
+ 2. agent `responseMode`
59
+ 3. defaults `responseMode`
60
+ 4. 注册表首选模式
66
61
  ```
67
62
 
68
63
  ## 权限
@@ -15,6 +15,8 @@ ec rpc --as <aid> --params <params>
15
15
  - 单行 JSON(以 `{` 开头)→ 单次调用
16
16
  - 多行 JSONL → 逐行执行,失败即停
17
17
  - 文件路径(文件存在)→ 读取文件内容作为 JSONL
18
+ - `--app <name>` — 指定独立消费 slot,仅对 `message.pull` / `group.pull` 等消费类方法有意义
19
+ - `--aun-path <path>` — 指定 AUN keystore 根
18
20
 
19
21
  每行 JSON 格式:`{"method":"<namespace.method>","params":{...}}`
20
22
 
@@ -15,7 +15,7 @@ ec stats --today
15
15
  ec stats --hour # 最近 24h,按小时分组
16
16
  ec stats --week # 本周
17
17
  ec stats --month # 本月
18
- ec stats --range 2026-05-01 2026-06-01 # 任意区间
18
+ ec stats --from 2026-05-01 --to 2026-06-01 # 任意区间
19
19
  ```
20
20
 
21
21
  ## 按维度过滤(可组合)
@@ -51,6 +51,19 @@ ec stats --traffic --by peer # 按对端分组流量
51
51
  ec stats --traffic --week # 本周流量
52
52
  ```
53
53
 
54
+ ## 运维与结构化视图
55
+
56
+ ```bash
57
+ ec stats --peers [--limit 50]
58
+ ec stats --groups [--limit 50]
59
+ ec stats --summary
60
+ ec stats --peer-detail <aid|peer-key>
61
+ ec stats --task-calls <task-id>
62
+ ec stats --session-calls <session-id>
63
+ ec stats --session <session-id> --last
64
+ ec stats --rebuild
65
+ ```
66
+
54
67
  ## 直接 SQL 查询
55
68
 
56
69
  ```bash
@@ -67,4 +80,4 @@ ec stats --sql "SELECT model, COUNT(*) AS cnt FROM usage_events GROUP BY model"
67
80
  ## 通用选项
68
81
 
69
82
  - `--help`, `-h`:显示帮助
70
- - `--format json`:JSON 输出(所有命令集通用约定)
83
+ - `--format json`:本命令的 JSON 输出
@@ -47,3 +47,4 @@ ec storage quota myaid.agentid.pub
47
47
  ## 通用约定
48
48
 
49
49
  - `--format json` — 输出 JSON
50
+ - `--aun-path <path>` — 指定 AUN keystore 根
@@ -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
@@ -147,9 +157,12 @@ script trigger 返回 `[[NOOP]]` 或 `outcome: "noop"` 时走 noop 分支;默
147
157
  ```bash
148
158
  --model <模型>
149
159
  --effort <low|medium|high|xhigh|max>
160
+ --baseagent <claude|codex|gemini>
150
161
  ```
151
162
 
152
- `--model` / `--effort` 只覆盖本 trigger 执行时传给 base agent 的模型与推理强度。baseagent 不在 trigger 中指定,始终沿用该 trigger 所属 agent 当前 active baseagent;未设置时继承当前关系级 / agent 级 / 全局模型配置。
163
+ `--model` / `--effort` 只覆盖本 trigger 执行时传给 base agent 的模型与推理强度。
164
+ `--baseagent` 仅支持 `--exec trigger-session`,用于给该 trigger 会话单独选择 base agent;
165
+ `script` 和 `target-session` 不接受该参数。未设置时沿用 trigger 所属 agent 当前 active baseagent。
153
166
 
154
167
  无人值守 trigger 不适合 `request`。需要写文件、git、安装升级、重启服务、管理 trigger 时应显式使用:
155
168
 
@@ -157,7 +170,7 @@ script trigger 返回 `[[NOOP]]` 或 `outcome: "noop"` 时走 noop 分支;默
157
170
  --permission bypass
158
171
  ```
159
172
 
160
- owner/admin 通过 `/trigger set` 创建时默认使用 `bypass`;非 admin 默认 `readonly`,不能提权到 `bypass`,也不能跨渠道或跨会话指定 target
173
+ owner/admin 通过 `/trigger create` 创建时默认使用 `bypass`;非 admin 默认 `readonly`,不能提权到 `bypass`,也不能跨渠道或跨会话指定 target。历史 `/trigger set` 仍是兼容别名。
161
174
 
162
175
  ## 执行边界
163
176
 
@@ -177,6 +190,8 @@ ec trigger enable <triggerId>
177
190
  ec trigger disable <triggerId>
178
191
  ec trigger cancel <triggerId> # disable 的兼容别名
179
192
  ec trigger delete <triggerId>
193
+ ec trigger remove <triggerId> # delete 的兼容别名
194
+ ec trigger rm <triggerId> # delete 的兼容别名
180
195
  ```
181
196
 
182
197
  语义区别:
@@ -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",