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
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "relation-config.schema.7.json",
4
+ "title": "RelationConfig v7 (agents/{aid}/relations/{peerKey}/config.json)",
5
+ "x-logical-name": "relation-config",
6
+ "x-scope": "relation",
7
+ "type": "object",
8
+ "additionalProperties": true,
9
+ "not": {
10
+ "anyOf": [
11
+ { "required": ["permissionMode"] },
12
+ { "required": ["roles"] }
13
+ ]
14
+ },
15
+ "properties": {
16
+ "$schema_version": { "type": "number", "const": 7, "default": 7, "x-merge": "scalar" },
17
+ "targetKind": { "type": "string", "enum": ["private", "group"], "x-merge": "scalar" },
18
+ "role": { "type": ["string", "null"], "pattern": "^(?!owner$)[a-z0-9_-]+$", "x-merge": "scalar", "description": "关系角色;允许 admin/member/visitor/自定义角色,禁止 owner" },
19
+ "active_baseagent": { "type": "string", "x-merge": "scalar" },
20
+ "models": { "type": "object", "x-merge": "dict" },
21
+ "baseagents": { "type": "object", "x-merge": "dict" },
22
+ "chatmode": { "type": "object", "x-merge": "dict", "properties": { "private": { "enum": ["interactive", "proactive"] }, "group": { "enum": ["interactive", "proactive"] }, "nothuman": { "enum": ["interactive", "proactive"] } }, "additionalProperties": false },
23
+ "mentionMode": { "type": "string", "enum": ["disabled", "mention-only"], "x-merge": "scalar" },
24
+ "model": { "type": "string", "x-merge": "scalar" },
25
+ "responseMode": { "type": "string", "x-merge": "scalar" },
26
+ "responseModeParams": { "type": "object", "x-merge": "dict" },
27
+ "flush_delay": { "type": "number", "x-merge": "scalar" },
28
+ "debounce": { "type": "number", "x-merge": "scalar" },
29
+ "show_activities": { "type": "string", "enum": ["all", "text", "none"], "x-merge": "scalar" },
30
+ "enable_rich_content": { "type": "boolean", "x-merge": "scalar" },
31
+ "session_renew": {
32
+ "type": "object",
33
+ "x-merge": "dict",
34
+ "additionalProperties": false,
35
+ "properties": {
36
+ "enabled": { "type": "boolean" },
37
+ "after_hours": { "type": "number", "exclusiveMinimum": 0 },
38
+ "fallback_action": { "type": "string", "enum": ["continue", "new"] }
39
+ }
40
+ },
41
+ "group_venue_sync": { "type": "object", "x-merge": "dict" },
42
+ "groupRules": {
43
+ "type": "object",
44
+ "x-merge": "dict",
45
+ "additionalProperties": false,
46
+ "properties": {
47
+ "mode": {
48
+ "type": "string",
49
+ "enum": ["load", "ignore"],
50
+ "default": "load",
51
+ "description": "是否读取并注入当前 AUN 群已发布的 /rules.md;默认 load。"
52
+ }
53
+ }
54
+ },
55
+ "render": { "type": "object", "x-merge": "dict" },
56
+ "sessionManifests": { "type": "object", "x-merge": "dict" },
57
+ "extra_backup": { "type": "array", "items": { "type": "object" }, "x-merge": "list" }
58
+ }
59
+ }
@@ -23,6 +23,7 @@
23
23
  "properties": {
24
24
  "$schema_version": { "type": "number", "const": 1, "default": 1, "description": "角色配置 Schema 版本,固定为 1。" },
25
25
  "description": { "type": "string", "description": "角色的用途、信任级别和授权边界说明。" },
26
+ "rank": { "type": "integer", "enum": [100, 300, 500, 700, 900], "description": "角色排序系数;内置角色固定,自定义角色固定为 500。旧文件缺省时由角色加载器补齐。" },
26
27
  "allowAccess": { "type": "boolean", "default": true, "description": "是否允许该角色访问 Agent;缺省为 true。" },
27
28
  "permissions": {
28
29
  "type": "object",
@@ -26,8 +26,8 @@
26
26
  "default": { "private": null, "group": null },
27
27
  "description": "未显式分配角色时,私聊和群聊分别采用的默认角色;null 表示不自动授予角色。",
28
28
  "properties": {
29
- "private": { "type": ["string", "null"], "pattern": "^[a-z0-9_-]+$", "default": null, "description": "私聊对端的默认角色;非 null 时必须已注册、有效且不能为 owner/admin。" },
30
- "group": { "type": ["string", "null"], "pattern": "^[a-z0-9_-]+$", "default": null, "description": "群聊对端的默认角色;非 null 时必须已注册、有效且不能为 owner/admin。" }
29
+ "private": { "type": ["string", "null"], "pattern": "^(?!owner$)[a-z0-9_-]+$", "default": null, "description": "私聊默认角色;必须已注册且不能为 owner。" },
30
+ "group": { "type": ["string", "null"], "pattern": "^(?!owner$)[a-z0-9_-]+$", "default": null, "description": "群聊默认角色;必须已注册且不能为 owner。" }
31
31
  },
32
32
  "x-merge": "dict"
33
33
  }
@@ -0,0 +1,57 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "single-session.schema.2.json",
4
+ "title": "SingleSessionParams (responseModeParams['single-session'])",
5
+ "x-logical-name": "single-session",
6
+ "x-scope": "mode",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "auxiliaryModel": {
11
+ "oneOf": [
12
+ {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ {
17
+ "type": "object",
18
+ "minProperties": 1,
19
+ "additionalProperties": false,
20
+ "properties": {
21
+ "claude": { "type": "string", "minLength": 1 },
22
+ "codex": { "type": "string", "minLength": 1 }
23
+ }
24
+ }
25
+ ],
26
+ "description": "辅助判断模型;可直接配置模型 ID,或按 claude/codex 配置映射。当前 Session 的 baseagent 在映射中无对应模型时执行 fallback_action。"
27
+ },
28
+ "auxiliaryEffort": {
29
+ "type": "string",
30
+ "enum": ["low", "medium", "high", "xhigh", "max"],
31
+ "description": "辅助判断推理强度;配置时同一模式桶必须同时配置 auxiliaryModel,未配置时不向模型 API 发送 effort。"
32
+ },
33
+ "pre_tool_1stmsgchk": {
34
+ "type": "boolean",
35
+ "enum": [true, false],
36
+ "default": true,
37
+ "description": "proactive 首工具表态检查(仅 chatmode=proactive 生效):首个工具调用前必须先向对端表态,否则拦截。",
38
+ "x-enumDescriptions": {
39
+ "true": "启用:首工具前必须先发送消息或文件",
40
+ "false": "禁用:允许直接调用工具"
41
+ }
42
+ },
43
+ "tool_use_reminder": {
44
+ "type": "boolean",
45
+ "enum": [true, false],
46
+ "default": true,
47
+ "description": "proactive 工具汇报提醒(仅 chatmode=proactive 生效):启用队列未读提醒 + 每 10 次工具调用的汇报提醒。",
48
+ "x-enumDescriptions": {
49
+ "true": "启用:自动汇报工具使用情况",
50
+ "false": "禁用:静默执行工具"
51
+ }
52
+ }
53
+ },
54
+ "dependencies": {
55
+ "auxiliaryEffort": ["auxiliaryModel"]
56
+ }
57
+ }
@@ -0,0 +1,9 @@
1
+ 说明:
2
+ - 以下是此前未纳入本会话上下文的本地发言,仅补充一次。
3
+ - 请结合这些发言与当前对端回复继续处理。
4
+
5
+ 本地发言:
6
+ {{#each handoffContextEntries}}- {{previousContent}}
7
+ {{/each}}
8
+ 当前对端回复内容:
9
+ {{content}}
@@ -1,13 +1,19 @@
1
1
  说明:
2
- - 跨会话请求回复,仅本端可见。
3
- - 请结合下方内容理解当前对端回复。
4
- - 当前回流策略:{{handoffReturnPolicy}}
5
- - 若策略为 required 且当前回复足以处理请求,使用:`ec handoff return {{handoffId}} "<完整回流内容>"`
6
- - 若策略为 none 且当前回复已处理请求,使用:`ec handoff return {{handoffId}}`
2
+ - 以下是尚未完成的跨会话请求,仅本端可见。
3
+ - 请结合请求列表与当前对端回复,分别判断哪些请求已经得到充分回答。
4
+ - 不要在对外回复中主动提及 handoff、ID、return 命令或内部路由机制。
5
+ - 当前回复足以处理某项请求时,需要使用:`ec handoff return ID "<完整回流内容>"`
6
+ - 命令双引号内若含双引号、反引号或 Shell 展开形式的 `$`,需经转义符转义,Shell 传给 ec 时会做还原。
7
7
  - 若回复不足,不要执行 return。
8
8
 
9
- 此前发给当前对端的内容:
10
- {{handoffPreviousContent}}
11
-
9
+ 待回流请求:
10
+ {{#each handoffRequiredEntries}}- ID:{{handoffId}}
11
+ 原请求:{{previousContent}}
12
+ {{/each}}
13
+ {{?handoffContextEntries}}
14
+ 以下本地发言只用于补充上下文,不需要回流:
15
+ {{#each handoffContextEntries}}- {{previousContent}}
16
+ {{/each}}
17
+ {{/}}
12
18
  当前对端回复内容:
13
19
  {{content}}
@@ -1,10 +1,9 @@
1
1
  说明:
2
2
  - 跨会话结果回流,仅本端可见。
3
- - 这是此前本会话请求的返回结果,请结合当前上下文回复当前对端。
3
+ - 以下是此前本会话一个或多个请求的返回结果,请逐项结合当前上下文处理。
4
4
  - 不要提及 handoff 或内部路由机制。
5
5
 
6
- 此前跨会话请求内容:
7
- {{handoffPreviousContent}}
8
-
9
- 回流内容:
10
- {{content}}
6
+ 待处理结果:
7
+ {{#each handoffOriginEntries}}- 原请求:{{previousContent}}
8
+ 返回结果:{{responseContent}}
9
+ {{/each}}
@@ -1,8 +1,55 @@
1
1
  {
2
2
  "$schema_version": 1,
3
3
  "description": "Agent administrator with guarded management authority",
4
+ "rank": 700,
4
5
  "allowAccess": true,
5
6
  "permissions": {
6
7
  "permissionMode": { "default": "request", "allowOverride": false }
8
+ },
9
+ "commandPermissions": {
10
+ "contact.read": { "allow": true, "scopes": ["agent"] },
11
+ "contact.block": {
12
+ "allow": true,
13
+ "scopes": ["agent"],
14
+ "constraints": { "requireAgentAdmin": true }
15
+ },
16
+ "connect.write": {
17
+ "allow": true,
18
+ "scopes": ["agent"],
19
+ "constraints": { "requireAgentAdmin": true }
20
+ },
21
+ "connect.access.write": {
22
+ "allow": true,
23
+ "scopes": ["agent"],
24
+ "constraints": { "requireAgentOwner": true }
25
+ },
26
+ "role.assign": { "allow": true, "scopes": ["agent"] },
27
+ "role.revoke": { "allow": true, "scopes": ["agent"] },
28
+ "role.policy.read": { "allow": true, "scopes": ["agent"] },
29
+ "role.relation.read": { "allow": true, "scopes": ["agent"] },
30
+ "config.get": { "allow": true, "scopes": ["agent", "relation"] },
31
+ "config.set": { "allow": true, "scopes": ["agent", "relation"] },
32
+ "config.unset": { "allow": true, "scopes": ["agent", "relation"] },
33
+ "role.policy.write": {
34
+ "allow": true,
35
+ "dangerous": true,
36
+ "scopes": ["agent"],
37
+ "constraints": { "requireAgentAdmin": true }
38
+ },
39
+ "*": { "allow": true },
40
+ "agent.reload": {
41
+ "allow": true,
42
+ "dangerous": true,
43
+ "scopes": ["agent"],
44
+ "constraints": {
45
+ "targetCurrentAgentOnly": true,
46
+ "requireAgentAdmin": true
47
+ }
48
+ },
49
+ "dangerous:*": {
50
+ "allow": true,
51
+ "dangerous": true,
52
+ "constraints": { "requireDaemonOwner": true }
53
+ }
7
54
  }
8
55
  }
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema_version": 1,
3
3
  "description": "Trusted user with own-scope access",
4
+ "rank": 300,
4
5
  "allowAccess": true,
5
6
  "usageLimits": {
6
7
  "enabled": true,
@@ -28,6 +29,10 @@
28
29
  "chatmode.update": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
29
30
  "mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true } },
30
31
  "mentionmode.update": { "allow": false },
32
+ "group.mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
33
+ "group.mentionmode.update": { "allow": false },
34
+ "group.rulespolicy.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
35
+ "group.rulespolicy.update": { "allow": false },
31
36
  "trigger.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
32
37
  "ec.msg.send": { "allow": true, "constraints": { "ownPeerOnly": true } },
33
38
  "ec.msg.file": { "allow": true, "constraints": { "ownPeerOnly": true } },
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema_version": 1,
3
3
  "description": "Agent owner with full Agent management authority",
4
+ "rank": 900,
4
5
  "allowAccess": true,
5
6
  "permissions": {
6
7
  "permissionMode": { "default": "bypass", "allowOverride": false }
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema_version": 1,
3
3
  "description": "Low-trust visitor with minimal own-scope access",
4
+ "rank": 100,
4
5
  "allowAccess": true,
5
6
  "usageLimits": {
6
7
  "enabled": true,
@@ -26,6 +27,10 @@
26
27
  "chatmode.update": { "allow": false },
27
28
  "mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true } },
28
29
  "mentionmode.update": { "allow": false },
30
+ "group.mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
31
+ "group.mentionmode.update": { "allow": false },
32
+ "group.rulespolicy.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
33
+ "group.rulespolicy.update": { "allow": false },
29
34
  "trigger.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
30
35
  "session.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true } },
31
36
  "ec.msg.send": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
@@ -24,8 +24,13 @@ chatMode: {{chatMode}} # interactive=同步对话 / proactive=主动推送
24
24
  {{/}}
25
25
  {{?groupId}}
26
26
  {{?channel=aun}}
27
- ec group send {{selfAid}} {{groupId}} "<text>" [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--payload '<json>'] [--mention <aid>] [--mention-all]
27
+ ec group send {{selfAid}} {{groupId}} "<text>" [--return none|required] [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--payload '<json>'] [--mention <aid>] [--mention-all]
28
+ # 双引号正文中的双引号、反引号和 Shell 变量 `$` 需分别在其前加反斜杠;ec 收到的仍是原字符。
28
29
  group-send 是群内公开回复;interactive 下直接输出即为公开回复,仅 @某人/发文件/手动控制加密时才需此命令
30
+ # 跨会话发送必须显式填写 --return none|required;同会话发送不要求。
31
+ {{?isTriggerTask}}
32
+ # Trigger 任务的跨会话发送只允许 --return none,禁止 required。
33
+ {{/}}
29
34
  # 加密:消息信封头标注每条入站消息是 🔒密文 还是 ✉明文。你用 group send 时【必须】跟随本轮入站消息的加密态——
30
35
  # 回复某条密文消息务必带 --encrypt,回复明文消息带 --no-encrypt;不带任何加密参数则默认明文发送。
31
36
  # interactive 下你直接输出的回复由 evolcore 自动按入站加密态发送(批次含密文则整轮密文),无需你操心。
@@ -36,8 +41,13 @@ group-send 是群内公开回复;interactive 下直接输出即为公开回复
36
41
  {{/}}
37
42
  {{?peerId}}
38
43
  {{?channel=aun}}
39
- ec msg send {{selfAid}} {{peerId}} "<text>" [--text-from-file <path>] [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--link <url> --title "<title>"] [--payload '<json>']
44
+ ec msg send {{selfAid}} {{peerId}} "<text>" [--return none|required] [--text-from-file <path>] [--encrypt|--no-encrypt] [--file <path> --as image|video|voice|file] [--link <url> --title "<title>"] [--payload '<json>']
45
+ # 双引号正文中的双引号、反引号和 Shell 变量 `$` 需分别在其前加反斜杠;ec 收到的仍是原字符。
40
46
  msg-send 用于私聊对端的附加能力(文件/链接/手动控制加密);群聊中仅在确需私下联系本条消息发送者时才用,否则用上面的 group send
47
+ # 跨会话发送必须显式填写 --return none|required;同会话发送不要求。
48
+ {{?isTriggerTask}}
49
+ # Trigger 任务的跨会话发送只允许 --return none,禁止 required。
50
+ {{/}}
41
51
  # 加密:消息信封头标注每条入站消息是 🔒密文 还是 ✉明文。你用 msg send 时【必须】跟随你所回复的那条入站消息的加密态——
42
52
  # 回复密文消息务必带 --encrypt,回复明文消息带 --no-encrypt;不带任何加密参数则默认明文发送(密文会话漏发明文是严重事故)。
43
53
  # interactive 下你直接输出的回复由 evolcore 自动按入站加密态发送,无需你操心;仅当你显式调用 msg send 时才需自己带加密参数。
@@ -6,7 +6,7 @@ ec model 模型与推理强度管理(切模型/列模型/当前模型/模型
6
6
  ec response 响应模式管理(切换响应模式/列响应模式/看当前模式/改响应配置) $KITS_DOCS/evolcore/response.md
7
7
  ec stats Token 用量与费用统计(用量/费用/统计/预算/token/cost) $KITS_DOCS/evolcore/stats.md
8
8
  ec config 读配置/查字段/看生效值(get/show/list/effective/fields/history/diff/current/boots/validate);set/unset 权限由 API 层控制 $KITS_DOCS/evolcore/config.md
9
- ec trigger 定时与事件触发器管理(定时任务/cron/提醒/自动执行/巡检/禁用/删除)。需要写操作的无人值守任务用 --permission bypass;单个 trigger 可用 --model/--effort 覆盖执行模型/强度 $KITS_DOCS/evolcore/trigger.md
9
+ ec trigger 定时与事件触发器管理(create/update/list/run/enable/disable/delete;set 仅为 create 兼容别名)。需要写操作的无人值守任务用 --permission bypass;单个 trigger 可用 --model/--effort 覆盖执行模型/强度 $KITS_DOCS/evolcore/trigger.md
10
10
  ec aid 身份/证书/名片/探测对端 $KITS_DOCS/evolcore/aid.md
11
11
  ec fs AUN 文件系统统一入口(ls/stat/cat/cp/mv/rm/mkdir/ln/chmod/setfacl/getfacl/token/find/df/mount/approve/reject/umount;个人/群空间同一入口;没有 ec group fs) $KITS_DOCS/evolcore/fs.md
12
12
  ec storage 文件上传/下载/配额(底层调试入口,日常优先 ec fs) $KITS_DOCS/evolcore/storage.md
@@ -19,8 +19,10 @@ ec group 群聊收发与群管理(群发/建群/查群/邀请/踢人/角色/
19
19
  {{/}}
20
20
  {{?peerRole=owner}}
21
21
  ec agent EvolAgent 生命周期(创建/启停/热重载/改配置)。ec agent reload 仅对配置/persona/memory 生效,改源码无效 $KITS_DOCS/evolcore/agent.md
22
+ ec contact 联系人与访问控制(拉黑/解除拉黑/查拉黑;显式 --self) $KITS_DOCS/evolcore/contact.md
22
23
  {{/}}
23
24
  {{?peerRole=admin}}
24
25
  ec agent EvolAgent 生命周期(创建/启停/热重载/改配置)。ec agent reload 仅对配置/persona/memory 生效,改源码无效 $KITS_DOCS/evolcore/agent.md
26
+ ec contact 联系人与访问控制(拉黑/解除拉黑/查拉黑;显式 --self) $KITS_DOCS/evolcore/contact.md
25
27
  {{/}}
26
28
  完整命令集目录(含触发词与适用场景):$KITS_DOCS/evolcore/INDEX.md
@@ -1,6 +1,8 @@
1
1
  [identity]
2
- {{?selfAid}}
2
+ {{?selfName}}
3
3
  selfName: {{selfName}}
4
+ {{/}}
5
+ {{?selfAid}}
4
6
  selfAid: {{selfAid}}
5
7
  {{/}}
6
8
  {{?hasPersona}}
@@ -11,7 +11,7 @@ peerKey: {{peerKey}} # 跨渠道唯一标识,格式 channel#urlEncode(peerId)
11
11
  {{?groupId}}
12
12
  groupId: {{groupId}}
13
13
  {{?groupRulesStatus}}
14
- groupRulesStatus: {{groupRulesStatus}} # synced/cached/missing/forbidden/invalid_metadata/file_mismatch/too_large/unreadable/error
14
+ groupRulesStatus: {{groupRulesStatus}} # ignored/synced/cached/missing/forbidden/invalid_metadata/file_mismatch/too_large/unreadable/error
15
15
  {{/}}
16
16
  {{?groupRulesError}}
17
17
  groupRulesError: {{groupRulesError}}
@@ -45,9 +45,13 @@ readonly: true — 禁止写入项目目录及临时目录;如需生成文件
45
45
  {{/}}
46
46
  # 命令速查:
47
47
  {{?chatType=group}}
48
- # ec group send {{selfAid}} {{groupId}} "<text>" [--file <path>] [--mention <aid>]
48
+ # ec group send {{selfAid}} {{groupId}} "<text>" [--return none|required] [--file <path>] [--mention <aid>]
49
49
  {{/}}
50
50
  {{?chatType=private}}
51
- # ec msg send {{selfAid}} {{peerId}} "<text>" [--text-from-file <path>] [--file <path>]
51
+ # ec msg send {{selfAid}} {{peerId}} "<text>" [--return none|required] [--text-from-file <path>] [--file <path>]
52
+ {{/}}
53
+ # 跨会话发送必须显式填写 --return none|required;同会话发送不要求。
54
+ {{?isTriggerTask}}
55
+ # Trigger 任务的跨会话发送只允许 --return none,禁止 required;需要等待人工操作时使用 Trigger 的交互/待处理机制。
52
56
  {{/}}
53
57
  {{/}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evolcore",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "AI Agent gateway connecting multiple backends (Claude, Codex, Gemini) to messaging channels (Feishu, WeChat, AUN, QQ) with multi-project session management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,14 +9,16 @@
9
9
  },
10
10
  "files": [
11
11
  "dist/",
12
+ "!dist/cli/mode.js",
12
13
  "bin/",
13
- "assets/",
14
- "!assets/wechat-group-qr.jpeg",
14
+ "assets/.env.template",
15
15
  "!dist/experimental/",
16
16
  "kits/",
17
17
  "!kits/.kits-version",
18
18
  "*.md",
19
19
  "!CLAUDE.md",
20
+ "!COMPLETED.md",
21
+ "!DECISIONS_PENDING.md",
20
22
  "!DEPLOYMENT.md",
21
23
  "!ONBOARDING.md",
22
24
  "!TODO.md",
@@ -35,7 +37,7 @@
35
37
  },
36
38
  "dependencies": {
37
39
  "@agentunion/fastaun": "^0.5.4",
38
- "@anthropic-ai/claude-agent-sdk": "^0.3.211",
40
+ "@anthropic-ai/claude-agent-sdk": "0.3.220",
39
41
  "@modelcontextprotocol/sdk": "^1.29.0",
40
42
  "ajv": "^8.20.0",
41
43
  "cron-parser": "^5.5.0",
@@ -47,7 +49,7 @@
47
49
  },
48
50
  "optionalDependencies": {
49
51
  "@larksuiteoapi/node-sdk": "^1.59.0",
50
- "@wecom/aibot-node-sdk": "^1.0.6",
52
+ "@wecom/aibot-node-sdk": "^1.0.7",
51
53
  "dingtalk-stream": "^2.1.6-beta.1",
52
54
  "form-data": "^4.0.5",
53
55
  "pure-qqbot": "^2.0.0"