evolcore 0.0.1 → 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 (379) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/LICENSE +21 -0
  3. package/MIGRATION-0.5.0.md +378 -0
  4. package/README.md +318 -14
  5. package/ROLE_ACCESS_CONTROL.md +174 -0
  6. package/assets/.env.template +4 -0
  7. package/bin/ec-safe-output.js +161 -0
  8. package/bin/ec.js +29 -0
  9. package/dist/agents/baseagent.js +163 -0
  10. package/dist/agents/claude-runner.js +2565 -0
  11. package/dist/agents/codex-app-server-client.js +448 -0
  12. package/dist/agents/codex-runner.js +2682 -0
  13. package/dist/agents/gemini-runner.js +666 -0
  14. package/dist/agents/runner-types.js +75 -0
  15. package/dist/aun/aid/agentmd.js +216 -0
  16. package/dist/aun/aid/client.js +132 -0
  17. package/dist/aun/aid/control-aid.js +91 -0
  18. package/dist/aun/aid/identity.js +518 -0
  19. package/dist/aun/aid/index.js +4 -0
  20. package/dist/aun/aid/store.js +74 -0
  21. package/dist/aun/aid/types.js +1 -0
  22. package/dist/aun/aid/validation.js +21 -0
  23. package/dist/aun/group-identity.js +10 -0
  24. package/dist/aun/msg/group-index.js +6 -0
  25. package/dist/aun/msg/group.js +1231 -0
  26. package/dist/aun/msg/history.js +123 -0
  27. package/dist/aun/msg/index.js +5 -0
  28. package/dist/aun/msg/p2p.js +393 -0
  29. package/dist/aun/msg/payload-type.js +27 -0
  30. package/dist/aun/msg/upload.js +137 -0
  31. package/dist/aun/outbox.js +168 -0
  32. package/dist/aun/rpc/caller.js +42 -0
  33. package/dist/aun/rpc/connection.js +25 -0
  34. package/dist/aun/rpc/index.js +2 -0
  35. package/dist/aun/service-proxy.js +225 -0
  36. package/dist/aun/storage/download.js +29 -0
  37. package/dist/aun/storage/index.js +3 -0
  38. package/dist/aun/storage/manage.js +10 -0
  39. package/dist/aun/storage/upload.js +68 -0
  40. package/dist/channels/aun.js +4164 -0
  41. package/dist/channels/contact-bind-code.js +134 -0
  42. package/dist/channels/daemon.js +422 -0
  43. package/dist/channels/dingtalk.js +1479 -0
  44. package/dist/channels/feishu.js +1865 -0
  45. package/dist/channels/qqbot.js +409 -0
  46. package/dist/channels/wechat.js +817 -0
  47. package/dist/channels/wecom-card.js +101 -0
  48. package/dist/channels/wecom-onboarding.js +82 -0
  49. package/dist/channels/wecom-state.js +191 -0
  50. package/dist/channels/wecom.js +1157 -0
  51. package/dist/cli/agent-command.js +642 -0
  52. package/dist/cli/agent.js +1059 -0
  53. package/dist/cli/aun-commands.js +2003 -0
  54. package/dist/cli/bench.js +1228 -0
  55. package/dist/cli/cli-argv.js +66 -0
  56. package/dist/cli/code-stats.js +329 -0
  57. package/dist/cli/command-log.js +82 -0
  58. package/dist/cli/config-selector.js +69 -0
  59. package/dist/cli/config.js +261 -0
  60. package/dist/cli/contact.js +71 -0
  61. package/dist/cli/ctl-command.js +62 -0
  62. package/dist/cli/daemon-commands.js +2750 -0
  63. package/dist/cli/fs-command.js +1447 -0
  64. package/dist/cli/handoff-command.js +302 -0
  65. package/dist/cli/help.js +35 -0
  66. package/dist/cli/index.js +374 -0
  67. package/dist/cli/init-channel.js +1372 -0
  68. package/dist/cli/init.js +590 -0
  69. package/dist/cli/link-rules.js +240 -0
  70. package/dist/cli/model.js +591 -0
  71. package/dist/cli/net-check.js +723 -0
  72. package/dist/cli/queue-command.js +150 -0
  73. package/dist/cli/raw-key-input.js +25 -0
  74. package/dist/cli/response.js +344 -0
  75. package/dist/cli/restart-monitor.js +480 -0
  76. package/dist/cli/stats.js +609 -0
  77. package/dist/cli/task-context.js +80 -0
  78. package/dist/cli/trigger-command.js +545 -0
  79. package/dist/cli/version.js +93 -0
  80. package/dist/cli/watch-logs.js +33 -0
  81. package/dist/cli/watch-msg.js +673 -0
  82. package/dist/config/boot-log.js +266 -0
  83. package/dist/config/builtin-role-templates.js +42 -0
  84. package/dist/config/builtin-roles.js +91 -0
  85. package/dist/config/config-batch-get.js +11 -0
  86. package/dist/config/config-field-policy.js +261 -0
  87. package/dist/config/config-manager.js +1120 -0
  88. package/dist/config/config-operation-service.js +384 -0
  89. package/dist/config/contact-alias.js +68 -0
  90. package/dist/config/contact-book-store.js +454 -0
  91. package/dist/config/contact-book-v2-startup.js +35 -0
  92. package/dist/config/contact-book.js +224 -0
  93. package/dist/config/contact-operation-service.js +110 -0
  94. package/dist/config/gateway-config.js +858 -0
  95. package/dist/config/lifecycle.js +17 -0
  96. package/dist/config/mention-mode.js +27 -0
  97. package/dist/config/merge.js +161 -0
  98. package/dist/config/owner-policy.js +4 -0
  99. package/dist/config/peer-role-resolver.js +218 -0
  100. package/dist/config/resolved-config-op.js +483 -0
  101. package/dist/config/role-config-v4-startup.js +32 -0
  102. package/dist/config/role-config-v5-startup.js +27 -0
  103. package/dist/config/role-ranks.js +18 -0
  104. package/dist/config/role-schema.js +105 -0
  105. package/dist/config/role-service.js +156 -0
  106. package/dist/config/role-store.js +215 -0
  107. package/dist/config/roles.js +64 -0
  108. package/dist/config/schema-registry.js +154 -0
  109. package/dist/config/snapshot.js +598 -0
  110. package/dist/config-store.js +501 -0
  111. package/dist/core/auth/agent-delegation.js +111 -0
  112. package/dist/core/auth/auth-gateway.js +166 -0
  113. package/dist/core/auth/authenticated-actor.js +6 -0
  114. package/dist/core/auth/authorization-audit.js +119 -0
  115. package/dist/core/auth/operation-authorizer.js +720 -0
  116. package/dist/core/auth/operation-catalog.js +731 -0
  117. package/dist/core/baseagent-loader.js +54 -0
  118. package/dist/core/bootstrap-service.js +175 -0
  119. package/dist/core/capability/capability-manager.js +316 -0
  120. package/dist/core/capability/providers/claude-capability-provider.js +176 -0
  121. package/dist/core/capability/providers/codex-capability-provider.js +148 -0
  122. package/dist/core/capability/providers/gemini-capability-provider.js +10 -0
  123. package/dist/core/capability/types.js +27 -0
  124. package/dist/core/causation/audit.js +103 -0
  125. package/dist/core/causation/aun-association.js +111 -0
  126. package/dist/core/causation/context.js +93 -0
  127. package/dist/core/causation/index.js +4 -0
  128. package/dist/core/causation/types.js +2 -0
  129. package/dist/core/channel-loader.js +277 -0
  130. package/dist/core/command/agent-control.js +616 -0
  131. package/dist/core/command/cli-intent-parser.js +225 -0
  132. package/dist/core/command/command-handler.js +1733 -0
  133. package/dist/core/command/connect-menu.js +374 -0
  134. package/dist/core/command/menu-handler.js +3452 -0
  135. package/dist/core/command/menu-protocol.js +247 -0
  136. package/dist/core/command/role-menu.js +1623 -0
  137. package/dist/core/command/slash-gate.js +148 -0
  138. package/dist/core/command/slash-handler.js +3066 -0
  139. package/dist/core/daemon-file-cache.js +222 -0
  140. package/dist/core/event-bus.js +32 -0
  141. package/dist/core/event-catalog.js +810 -0
  142. package/dist/core/evolagent-registry.js +545 -0
  143. package/dist/core/evolagent.js +342 -0
  144. package/dist/core/handoff/dispatcher.js +229 -0
  145. package/dist/core/handoff/mutex.js +46 -0
  146. package/dist/core/handoff/runtime.js +324 -0
  147. package/dist/core/handoff/store.js +537 -0
  148. package/dist/core/handoff/types.js +12 -0
  149. package/dist/core/inference/text-inference.js +173 -0
  150. package/dist/core/interaction-registration.js +10 -0
  151. package/dist/core/interaction-router.js +278 -0
  152. package/dist/core/message/create-status.js +67 -0
  153. package/dist/core/message/im-renderer.js +659 -0
  154. package/dist/core/message/items-formatter.js +76 -0
  155. package/dist/core/message/logical-queue-bridge.js +123 -0
  156. package/dist/core/message/message-bridge.js +874 -0
  157. package/dist/core/message/message-cache.js +56 -0
  158. package/dist/core/message/message-log.js +339 -0
  159. package/dist/core/message/message-processor.js +4 -0
  160. package/dist/core/message/message-queue.js +1446 -0
  161. package/dist/core/message/message-utils.js +76 -0
  162. package/dist/core/message/peer-mode.js +105 -0
  163. package/dist/core/message/pending-hints.js +232 -0
  164. package/dist/core/message/response-depth.js +33 -0
  165. package/dist/core/message/response-engine.js +4020 -0
  166. package/dist/core/message/response-snapshot.js +83 -0
  167. package/dist/core/message/send-receipt.js +24 -0
  168. package/dist/core/message/stream-debouncer.js +139 -0
  169. package/dist/core/message/stream-idle-monitor.js +124 -0
  170. package/dist/core/model/config-scope.js +162 -0
  171. package/dist/core/model/field-scope.js +78 -0
  172. package/dist/core/model/model-catalog.js +227 -0
  173. package/dist/core/model/model-diagnostics.js +182 -0
  174. package/dist/core/model/model-permission.js +90 -0
  175. package/dist/core/permission/approval-gateway.js +1017 -0
  176. package/dist/core/permission/ec-command-parser.js +347 -0
  177. package/dist/core/permission/execution-sandbox.js +16 -0
  178. package/dist/core/permission/index.js +6 -0
  179. package/dist/core/permission/mode.js +24 -0
  180. package/dist/core/permission/sandbox-runtime.js +265 -0
  181. package/dist/core/permission/tool-policy.js +1019 -0
  182. package/dist/core/permission/unix-socket-policy.js +99 -0
  183. package/dist/core/protected-paths.js +332 -0
  184. package/dist/core/relation/peer-identity.js +222 -0
  185. package/dist/core/relation/peer-key.js +1 -0
  186. package/dist/core/role/runtime-policy.js +141 -0
  187. package/dist/core/session/adapters/claude-session-file-adapter.js +218 -0
  188. package/dist/core/session/adapters/codex-session-file-adapter.js +333 -0
  189. package/dist/core/session/adapters/gemini-session-file-adapter.js +181 -0
  190. package/dist/core/session/session-file-adapter.js +7 -0
  191. package/dist/core/session/session-file-health.js +45 -0
  192. package/dist/core/session/session-fs-store.js +273 -0
  193. package/dist/core/session/session-key.js +24 -0
  194. package/dist/core/session/session-manager.js +1643 -0
  195. package/dist/core/session/session-mapper.js +100 -0
  196. package/dist/core/session/session-renew.js +314 -0
  197. package/dist/core/session/session-title.js +128 -0
  198. package/dist/core/session/session-turn-coordinator.js +205 -0
  199. package/dist/core/session/session-turns.js +67 -0
  200. package/dist/core/system-channels.js +29 -0
  201. package/dist/eck/baseagent-caps.js +18 -0
  202. package/dist/eck/detect.js +47 -0
  203. package/dist/eck/group-rules-sync.js +345 -0
  204. package/dist/eck/init.js +77 -0
  205. package/dist/eck/kit-renderer.js +359 -0
  206. package/dist/eck/manifest-engine.js +446 -0
  207. package/dist/eck/message-renderer.js +199 -0
  208. package/dist/eck/rules-loader.js +28 -0
  209. package/dist/index.js +2926 -4
  210. package/dist/ipc.js +777 -0
  211. package/dist/paths.js +262 -0
  212. package/dist/product.js +18 -0
  213. package/dist/response-system/context-builder.js +71 -0
  214. package/dist/response-system/coordinator.js +117 -0
  215. package/dist/response-system/decision-executor.js +86 -0
  216. package/dist/response-system/engines/v1/index.js +21 -0
  217. package/dist/response-system/engines/v1/interactive-flow.js +27 -0
  218. package/dist/response-system/engines/v1/proactive-flow.js +137 -0
  219. package/dist/response-system/engines/v1/types.js +1 -0
  220. package/dist/response-system/extensions.js +41 -0
  221. package/dist/response-system/index.js +6 -0
  222. package/dist/response-system/modes/index.js +7 -0
  223. package/dist/response-system/modes/single-session/index.js +72 -0
  224. package/dist/response-system/queues/fifo-queue.js +44 -0
  225. package/dist/response-system/queues/index.js +6 -0
  226. package/dist/response-system/queues/lifo-queue.js +42 -0
  227. package/dist/response-system/queues/priority-queue.js +63 -0
  228. package/dist/response-system/registry.js +97 -0
  229. package/dist/response-system/resolver.js +37 -0
  230. package/dist/response-system/selector.js +23 -0
  231. package/dist/response-system/types.js +7 -0
  232. package/dist/stats/billing.js +163 -0
  233. package/dist/stats/budget.js +93 -0
  234. package/dist/stats/db.js +403 -0
  235. package/dist/stats/eck-vars.js +89 -0
  236. package/dist/stats/index.js +11 -0
  237. package/dist/stats/normalizer.js +80 -0
  238. package/dist/stats/price-resolver.js +138 -0
  239. package/dist/stats/query.js +763 -0
  240. package/dist/stats/role-budget.js +168 -0
  241. package/dist/stats/writer.js +151 -0
  242. package/dist/trigger/anomaly-store.js +258 -0
  243. package/dist/trigger/audit.js +152 -0
  244. package/dist/trigger/event-source.js +119 -0
  245. package/dist/trigger/feedback.js +685 -0
  246. package/dist/trigger/history.js +290 -0
  247. package/dist/trigger/manager.js +294 -0
  248. package/dist/trigger/parser.js +595 -0
  249. package/dist/trigger/patch.js +155 -0
  250. package/dist/trigger/scheduler.js +1602 -0
  251. package/dist/trigger/script-executor.js +155 -0
  252. package/dist/trigger/state.js +145 -0
  253. package/dist/trigger/types.js +1 -0
  254. package/dist/trigger/validation.js +634 -0
  255. package/dist/types.js +12 -0
  256. package/dist/utils/aid-bind.js +313 -0
  257. package/dist/utils/atomic-write.js +95 -0
  258. package/dist/utils/avatar-upload.js +123 -0
  259. package/dist/utils/cross-platform.js +297 -0
  260. package/dist/utils/ecweb-utils.js +73 -0
  261. package/dist/utils/error-dict.json +153 -0
  262. package/dist/utils/error-utils.js +349 -0
  263. package/dist/utils/instance-registry.js +444 -0
  264. package/dist/utils/locale.js +21 -0
  265. package/dist/utils/log-writer.js +270 -0
  266. package/dist/utils/logger.js +89 -0
  267. package/dist/utils/markdown-to-plain-text.js +20 -0
  268. package/dist/utils/media-cache.js +274 -0
  269. package/dist/utils/model-prices.jsonl +20 -0
  270. package/dist/utils/npm-ops.js +210 -0
  271. package/dist/utils/process-introspect.js +133 -0
  272. package/dist/utils/process-tree-stats.js +271 -0
  273. package/dist/utils/project-path.js +74 -0
  274. package/dist/utils/restart-safety.js +31 -0
  275. package/dist/utils/stats.js +410 -0
  276. package/dist/utils/system-memory.js +62 -0
  277. package/dist/utils/tool-summary.js +284 -0
  278. package/dist/utils/welcome.js +268 -0
  279. package/kits/docs/GUIDE.md +20 -0
  280. package/kits/docs/INDEX.md +66 -0
  281. package/kits/docs/aun/CHEATSHEET.md +19 -0
  282. package/kits/docs/aun/SYNC_PROTOCOL.md +15 -0
  283. package/kits/docs/channels/aun.md +65 -0
  284. package/kits/docs/channels/feishu.md +56 -0
  285. package/kits/docs/context-assembly.md +366 -0
  286. package/kits/docs/eck_templates/GUIDE.template.md +22 -0
  287. package/kits/docs/eck_templates/INDEX.template.md +28 -0
  288. package/kits/docs/eck_templates/path-registry.template.md +33 -0
  289. package/kits/docs/eck_templates/runtime.template.md +19 -0
  290. package/kits/docs/evolcore/INDEX.md +68 -0
  291. package/kits/docs/evolcore/agent.md +77 -0
  292. package/kits/docs/evolcore/aid.md +52 -0
  293. package/kits/docs/evolcore/config.md +149 -0
  294. package/kits/docs/evolcore/contact.md +57 -0
  295. package/kits/docs/evolcore/ctl.md +46 -0
  296. package/kits/docs/evolcore/event.md +216 -0
  297. package/kits/docs/evolcore/fs-architecture.md +1215 -0
  298. package/kits/docs/evolcore/fs.md +110 -0
  299. package/kits/docs/evolcore/group-fs.md +17 -0
  300. package/kits/docs/evolcore/group-rules.md +226 -0
  301. package/kits/docs/evolcore/group.md +150 -0
  302. package/kits/docs/evolcore/model.md +50 -0
  303. package/kits/docs/evolcore/msg.md +136 -0
  304. package/kits/docs/evolcore/response.md +75 -0
  305. package/kits/docs/evolcore/rpc.md +37 -0
  306. package/kits/docs/evolcore/self-summary.md +29 -0
  307. package/kits/docs/evolcore/stats.md +83 -0
  308. package/kits/docs/evolcore/storage.md +50 -0
  309. package/kits/docs/evolcore/trigger.md +539 -0
  310. package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -0
  311. package/kits/docs/identity/PATH_OPS.md +16 -0
  312. package/kits/docs/identity/ROLE_DETAIL.md +23 -0
  313. package/kits/docs/identity/identity-tools.md +26 -0
  314. package/kits/docs/path-registry.md +43 -0
  315. package/kits/docs/prompt-loading-architecture.md +266 -0
  316. package/kits/docs/venues/aun-group.md +45 -0
  317. package/kits/docs/venues/aun-private.md +10 -0
  318. package/kits/docs/venues/client-desktop.md +10 -0
  319. package/kits/docs/venues/client-mobile.md +10 -0
  320. package/kits/docs/venues/feishu-group.md +13 -0
  321. package/kits/docs/venues/feishu-private.md +9 -0
  322. package/kits/docs/venues/group.md +25 -0
  323. package/kits/docs/venues/private.md +10 -0
  324. package/kits/eck_manifest.auxiliary.json +43 -0
  325. package/kits/eck_manifest.json +203 -0
  326. package/kits/eck_message_manifest.json +63 -0
  327. package/kits/migrations/README-role-config-v4.md +32 -0
  328. package/kits/migrations/migrate-contact-book-v2.mjs +747 -0
  329. package/kits/migrations/migrate-role-config-v4.mjs +623 -0
  330. package/kits/migrations/migrate-role-config-v5.mjs +346 -0
  331. package/kits/migrations/rename-config-file.mjs +99 -0
  332. package/kits/rules/01-overview.md +142 -0
  333. package/kits/rules/02-navigation.md +76 -0
  334. package/kits/rules/03-identity.md +34 -0
  335. package/kits/rules/04-relation.md +59 -0
  336. package/kits/rules/05-venue.md +44 -0
  337. package/kits/rules/06-channel.md +59 -0
  338. package/kits/schemas/_meta.json +32 -0
  339. package/kits/schemas/agent-config.schema.1.json +177 -0
  340. package/kits/schemas/agent-config.schema.2.json +239 -0
  341. package/kits/schemas/agent-config.schema.3.json +119 -0
  342. package/kits/schemas/agent-config.schema.4.json +208 -0
  343. package/kits/schemas/agent-config.schema.5.json +326 -0
  344. package/kits/schemas/agent-config.schema.6.json +322 -0
  345. package/kits/schemas/contact-book.schema.1.json +36 -0
  346. package/kits/schemas/contact-book.schema.2.json +43 -0
  347. package/kits/schemas/daemon.schema.1.json +90 -0
  348. package/kits/schemas/defaults.schema.1.json +81 -0
  349. package/kits/schemas/menu-exec-schema-commands.md +208 -0
  350. package/kits/schemas/migrations/README.md +28 -0
  351. package/kits/schemas/relation-config.schema.1.json +158 -0
  352. package/kits/schemas/relation-config.schema.2.json +73 -0
  353. package/kits/schemas/relation-config.schema.3.json +50 -0
  354. package/kits/schemas/relation-config.schema.4.json +47 -0
  355. package/kits/schemas/relation-config.schema.5.json +47 -0
  356. package/kits/schemas/role-config.schema.1.json +201 -0
  357. package/kits/schemas/role-registry.schema.1.json +35 -0
  358. package/kits/schemas/single-session.schema.1.json +31 -0
  359. package/kits/templates/bootstrap-welcome.md +15 -0
  360. package/kits/templates/message-fragments/handoff-request-to-target.md +13 -0
  361. package/kits/templates/message-fragments/handoff-response-to-origin.md +10 -0
  362. package/kits/templates/message-fragments/inject-default.md +2 -0
  363. package/kits/templates/message-fragments/item.md +2 -0
  364. package/kits/templates/roles/admin.json +9 -0
  365. package/kits/templates/roles/member.json +41 -0
  366. package/kits/templates/roles/owner.json +9 -0
  367. package/kits/templates/roles/visitor.json +40 -0
  368. package/kits/templates/system-fragments/baseagent.md +14 -0
  369. package/kits/templates/system-fragments/bootstrap.md +16 -0
  370. package/kits/templates/system-fragments/channel.md +48 -0
  371. package/kits/templates/system-fragments/commands.md +28 -0
  372. package/kits/templates/system-fragments/identity.md +11 -0
  373. package/kits/templates/system-fragments/relation.md +19 -0
  374. package/kits/templates/system-fragments/session.md +53 -0
  375. package/kits/templates/system-fragments/venue.md +31 -0
  376. package/package.json +50 -15
  377. package/dist/index.d.ts +0 -7
  378. package/dist/index.d.ts.map +0 -1
  379. package/dist/index.js.map +0 -1
@@ -0,0 +1,77 @@
1
+ # ec agent — EvolAgent 生命周期管理
2
+
3
+ 管理本机托管的 EvolAgent(创建、启停、配置、热重载)。触发词:创建/新建/列出/查看/启用/禁用/删除/热重载/改配置。
4
+
5
+ ## 子命令
6
+
7
+ ```bash
8
+ # 列出所有 agent
9
+ ec agent list
10
+
11
+ # 查看 agent 详情(身份 + 配置 + 连接 + 会话 + 路径)
12
+ ec agent show <aid>
13
+ # 简写,等价于 show
14
+ ec agent <aid>
15
+
16
+ # 创建 agent(交互式)
17
+ ec agent new [aid]
18
+
19
+ # 创建 agent(非交互式,自动化场景)
20
+ ec agent new <aid> --non-interactive --project <绝对路径> \
21
+ [--baseagent claude|codex|gemini] [--owner <aid>] \
22
+ [--name "<显示名>"] [--description "<text>"] [--force]
23
+
24
+ # 启用 / 停用
25
+ ec agent enable <aid>
26
+ ec agent disable <aid>
27
+
28
+ # 读 / 改单个配置字段(支持点路径,如 active_baseagent)
29
+ ec agent get <aid> <key>
30
+ ec agent set <aid> <key> <val>
31
+
32
+ # 修改 agent.md 显示名称
33
+ ec agent rename <aid> "<name>"
34
+
35
+ # 标记 bootstrap 完成,进入 active 状态
36
+ ec agent ready <aid>
37
+
38
+ # 热重载配置(无参数 = 全量 resync:扫磁盘,新增上线/删除下线/修改热更新)
39
+ ec agent reload [aid]
40
+
41
+ # 删除 agent(--purge 连数据一并清除)
42
+ ec agent delete <aid> [--purge]
43
+ ```
44
+
45
+ ## 非交互创建必填项
46
+
47
+ `ec agent new <aid> --non-interactive` 时:
48
+ - 必填:`--project <absolute path>`
49
+ - 可选:`--baseagent`(默认 PATH 中第一个可用项)、`--owner`、`--name`、`--description`、`--force`(覆盖已有 config.json)
50
+
51
+ ## 头像更新
52
+
53
+ 头像上传通过 menu 协议暴露,不是 `ec agent` CLI 子命令:
54
+
55
+ ```json
56
+ {
57
+ "type": "menu.action",
58
+ "name": "agent",
59
+ "action": "update",
60
+ "args": {
61
+ "aid": "mybot.agentid.pub",
62
+ "patch": {
63
+ "avatar": "data:image/png;base64,..."
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ 约束:
70
+ - `patch.avatar` 必须单独提交,不能和 `chatmode`、`owners`、`channels` 等 config patch 混合。
71
+ - 支持 PNG/JPEG/WebP;后端按解码后图片大小硬限制 500KB。
72
+ - 成功后头像上传到该 agent 自己的 AUN storage,`agent.md` frontmatter 写入 AID 风格 URL,并重新签名发布。
73
+
74
+ ## 通用约定
75
+
76
+ - `--format json` — 用于 `list/show/new/enable/disable/get/set/rename/ready/reload/delete` 的结构化输出
77
+ - `--help` / `-h` — 各子命令均支持,查看详细用法
@@ -0,0 +1,52 @@
1
+ # ec aid — AID 身份管理
2
+
3
+ 管理本地 AID 身份(证书、私钥、agent.md 名片),以及远程探测对端 AID。触发词:身份/证书/名片/探测对端/创建身份。
4
+
5
+ ## 子命令
6
+
7
+ ```bash
8
+ # 列出本地所有 AID(实测 sign+verify)
9
+ ec aid list [筛选选项] [--no-verify]
10
+
11
+ # 查看本地 AID 详情(证书有效期、私钥状态、签名能力)
12
+ ec aid show <aid>
13
+
14
+ # 创建新 AID 身份
15
+ ec aid new <aid> [--force]
16
+
17
+ # 远程探测 AID(是否存在 + 网关 + agent.md)
18
+ ec aid lookup <aid>
19
+
20
+ # agent.md 名片:签名上传 / 下载验签
21
+ ec aid agentmd put <aid>
22
+ ec aid agentmd get <aid>
23
+
24
+ # 删除指定本地 AID(无网络注销)
25
+ ec aid delete <aid>
26
+ ```
27
+
28
+ ## list 筛选选项
29
+
30
+ 不指定 = 列出 mine + broken + peer-cert(隐藏 no-cert)。可组合:
31
+ - `--mine` — 仅本地可用身份(实测可签名+验签通过)
32
+ - `--broken` — 仅有私钥但不可用(公钥不匹配 / 证书过期 / sign 失败)
33
+ - `--peer-cert` — 仅对端 AID(无私钥,有公钥证书)
34
+ - `--no-cert` — 仅无私钥无证书的孤儿目录
35
+ - `--no-verify` — 跳过 sign+verify 实测,仅静态扫描(更快)
36
+
37
+ 输出图标:`🔑` 有私钥 · `✅` 实测可签名/验签 · `❌` 不可签名 · `⌛` 证书过期 · `📜` 有公钥证书 · `📄` 有 agent.md
38
+
39
+ ## delete 批量清理
40
+
41
+ 批量删除**默认 dry-run,加 `--yes` 才真正执行**:
42
+ - `ec aid delete --orphan` — 清理无私钥的外部 AID 缓存
43
+ - `ec aid delete --no-cert` — 清理无私钥也无公钥证书的孤儿目录
44
+ - `ec aid delete --unrecoverable` — 清理云端公钥已变更、本地不可恢复的 AID
45
+ - `--skip-pki` — 仅用于 `--unrecoverable`,跳过 PKI 探测并按本地自检结果判断;有误删风险
46
+
47
+ ## 通用约定
48
+
49
+ - `--format json` — 对支持结构化结果的子命令输出 JSON
50
+ - `--aun-path <path>` — 指定 AUN keystore 根;未传时可由 `AUN_HOME` 提供
51
+ - `aid delete --orphan|--no-cert|--unrecoverable` 默认 dry-run,`--yes` 才执行删除
52
+ - `--help` / `-h` — 各子命令均支持
@@ -0,0 +1,149 @@
1
+ # ec config — 配置体系底层入口
2
+
3
+ 按作用域读写所有配置参数 + 配置快照/回滚/启动历史。触发词:看配置/改配置/查字段/列配置/校验配置/快照/回滚/历史/对比版本/启动记录。
4
+
5
+ > `ec config` 是配置读写的统一 CLI 入口;模型交互由 menu 协议和 slash `/model` 提供。
6
+ > 字段按 owner 路由:H 字段写 daemon/defaults/config,HA 行为字段写行为配置。
7
+
8
+ ## 参数读写
9
+
10
+ ```bash
11
+ # 读 effective 值(显示覆盖链来源);可一次传多个字段批量读取(共享同一 selector/--format)
12
+ ec config get <field> [<field> ...] [--self <aid>] [--peer <X>] [--default] [--process]
13
+ # 单字段输出不变;多字段时 text 每行一条、json 返回 { ok, results: [...] },任一字段失败退出码为 1
14
+
15
+ # 写参数:scope 由 selector 推断
16
+ ec config set <field> <value> [--self <aid>] [--peer <X>] [--default] [--process]
17
+
18
+ # 删除某层显式设置,回落下一层
19
+ ec config unset <field> [--self <aid>] [--peer <X>]
20
+
21
+ # 查看某一层文件原始内容(不合并,凭证显示 ${VAR} 不展开)
22
+ ec config show [--self <aid>] [--peer <X>] [--default] [--process]
23
+
24
+ # 打印合并后的全部生效配置
25
+ ec config effective [--self <aid>] [--peer <X>]
26
+
27
+ # 列出某作用域可设字段(类型/枚举值,来源 schema)
28
+ ec config fields [--self <aid>] [--default] [--process]
29
+
30
+ # 列出所有配置文件
31
+ ec config list
32
+
33
+ # 按 schema 校验配置文件
34
+ ec config validate [--self <aid>] [--peer <X>] [--default] [--process]
35
+
36
+ # 按 schema 物化骨架文件(仅人)
37
+ ec config init [--self <aid>] [--peer <X>] [--default] [--process]
38
+ ```
39
+
40
+ ## 快照 / 回滚
41
+
42
+ 总开关直接保存在 `$EVOLCORE_HOME/daemon.json` 顶层,默认 `true`:
43
+
44
+ ```bash
45
+ ec config set configSnapshots true --process
46
+ ec config set configSnapshots false --process
47
+ ```
48
+
49
+ 开启时首次成功启动创建全量基线,后续成功启动检测到配置变化后自动建立新版本。关闭时不写快照、启动日志,也不执行自检回落。
50
+
51
+ ```bash
52
+ # 立即创建快照(与当前版本比对,不一致才建;--full 强制新全量)(仅人)
53
+ ec config snapshot [--full] [--desc "说明"]
54
+
55
+ # 列出快照版本(版本号/类型/触发/时间/说明)
56
+ ec config history
57
+
58
+ # 对比两版本差异
59
+ ec config diff <v1> <v2>
60
+
61
+ # 恢复到指定版本:展开到工作目录 + 更新 current.json(先 pre-restore 快照)(仅人)
62
+ ec config restore <version>
63
+
64
+ # 显示 current.json 选定版本(上次启动回落时给出告警)
65
+ ec config current
66
+
67
+ # 查看启动历史(含回落标记)
68
+ ec config boots [-n N]
69
+
70
+ # 清理旧快照(默认 dry-run,--yes 真删;拒删被依赖全量 / current 指向版本)(仅人)
71
+ ec config prune [--keep-full N] [--keep-delta N] [--yes]
72
+ ```
73
+
74
+ ## Schema 查看
75
+
76
+ 查看随包分发的配置 schema **定义本身**(`kits/schemas/*.schema.*.json`)——不是读写配置值,而是查「某作用域有哪些字段、类型/枚举/默认、schema 有几个版本」。纯只读,人和 agent 均可。
77
+
78
+ ```bash
79
+ # 概览:列出全部逻辑 schema 及各自当前版本
80
+ ec config schema
81
+
82
+ # 列出某 schema 磁盘上的所有版本(* 标当前版本,附日期/说明)
83
+ ec config schema <name> --list
84
+
85
+ # 查看某 schema 的原始定义(缺省版本号 = 当前版本)
86
+ ec config schema <name> [version]
87
+ ```
88
+
89
+ 逻辑 schema 名(`<name>`):`daemon` / `defaults` / `agent-config` / `relation-config` /
90
+ `contact-book` / `role-registry` / `role-config`。
91
+
92
+ 三种输出模式:
93
+
94
+ | 调用形式 | mode | 输出 |
95
+ |----------|------|------|
96
+ | `config schema` | overview | 全部 schema + 各自当前版本号 |
97
+ | `config schema <name> --list` | versions | 该 schema 所有磁盘版本,`*` 标当前,附 date/description |
98
+ | `config schema <name> [version]` | content | 指定版本(缺省=当前)的完整 schema JSON |
99
+
100
+ 约定与报错:
101
+ - `--list` 与 version 参数互斥(`INVALID_CONFIG_COMMAND`)
102
+ - `--list` 或指定 version 时必须带 `<name>`(`MISSING_ARG`)
103
+ - version 须为非负整数;未知 name → `UNKNOWN_SCHEMA`;版本不存在 → `SCHEMA_VERSION_NOT_FOUND`(错误信息列出可用版本)
104
+
105
+ > 用途:写配置前先 `ec config fields` 看字段可设值,或 `ec config schema <name>` 看该层 schema 的完整字段约束与 `x-merge` 合并语义;排查「字段为何被拒/怎么合并」时定位 schema 版本。
106
+
107
+ ## 作用域 selector
108
+
109
+ | 参数 | 作用域 | 落盘 |
110
+ |------|--------|------|
111
+ | `--self <aid>` | agent 级 | `agents/<aid>/config.json` |
112
+ | `--self <aid> --peer <X>` | 关系级 | `agents/<aid>/relations/<peerKey>/config.json` |
113
+ | `--default` | 全局默认 | `agents/defaults.json` |
114
+ | `--process` | 进程级 | `~/.evolcore/daemon.json` |
115
+ | 写操作三者全无 | — | **拒绝**(防误写全局) |
116
+
117
+ `--peer` 取 `channelType#channelId` 或裸 aid(裸 aid 视为 `aun#<aid>`)。改某作用域后,对应范围所有会话的下一条消息即时生效。
118
+
119
+ ## 覆盖链
120
+
121
+ ```
122
+ defaults → agent/config → relation/config
123
+ ```
124
+
125
+ ConfigManager 只合并上述物理层并返回物理来源。角色策略不进入配置合并链:`permissionMode` 和 `baseagents.*.model` 由消费方按当前角色单独应用。
126
+
127
+ ## 权限控制
128
+
129
+ **写权限**(API 层判定):
130
+ - **通用可写字段**:active_baseagent / baseagents / chatmode / show_activities / flush_delay / debounce / render
131
+ - **角色专用入口**:`roles/index.json` 与 `roles/{roleId}.json` 由角色服务维护;relation 的
132
+ `role` 由角色分配服务维护;`permissionMode` 仅在角色策略中维护
133
+ - **兼容字段**:`enable_rich_content` 仍可读取旧值,但已废弃且不再产生运行时效果
134
+ - **仅人可写**:channels / owners / admins / 凭证 / aid / enabled / projects / aun / models.allowed
135
+ - Agent 托管环境写仅人字段被拒
136
+
137
+ **操作权限**:
138
+ - 读操作(get/show/list/effective/fields/schema/history/diff/current/boots/validate):人和 agent 均可
139
+ - 快照管理(snapshot/restore/init/prune):仅人可执行
140
+
141
+ **凭证安全**:
142
+ - 凭证一律 `${VAR}` 引用,CLI 读命令永不展开、不泄露明文
143
+ - `.env` 全程禁读写
144
+
145
+ ## 通用约定
146
+
147
+ - `--format json` — 所有子命令通用
148
+ - 本命令操作本地配置,不连 AUN 网络
149
+ - 单文件内 list 字段 `set` = 追加去重;删单个元素请直接编辑文件(角色/owner 链只增不减)
@@ -0,0 +1,57 @@
1
+ # ec contact — Agent 联系人与访问控制
2
+
3
+ `ec contact` 管理指定 Agent 的 Contact Book v2。它只接受 AUN AID 主键,并只负责 AUN 私聊拉黑状态;角色统一由 relation `config.json role` 管理。
4
+
5
+ ## 命令
6
+
7
+ ```bash
8
+ ec contact block <aid> --self <agent-aid>
9
+ ec contact unblock <aid> --self <agent-aid>
10
+ ec contact list --blocked --self <agent-aid>
11
+ ```
12
+
13
+ 所有命令都要求显式 `--self`,支持 `--format json`。
14
+
15
+ ## 约束
16
+
17
+ - `<aid>` 和 `--self` 必须是合法 AID。
18
+ - `block/unblock` 只改变本 Agent 的入站接收策略,不代表对端也拉黑了本 Agent。
19
+ - Agent owner 不能被拉黑。
20
+ - `list --blocked` 只列出当前 blocked contact,并返回 `contactRevision`。
21
+
22
+ ## 权限边界
23
+
24
+ 直接从本机终端运行时,这是本地管理命令。
25
+
26
+ 从 Agent 活动任务执行时,CLI 不直接写文件,而是携带当前 session delegation token 调用 daemon `contact.op`:
27
+
28
+ | 操作 | owner | admin | 普通角色 |
29
+ |---|---:|---:|---:|
30
+ | `list --blocked` | 允许 | 允许 | 拒绝 |
31
+ | `block` / `unblock` | 允许 | 允许 | 拒绝 |
32
+
33
+ 缺少、伪造、撤销或跨会话 delegation token 时失败关闭。托管调用的 `--self` 必须等于当前任务所属 Agent。
34
+
35
+ 角色管理使用 Role Menu relation assignment;admin 的授予和撤销必须由 owner 执行。
36
+
37
+ ## JSON 输出
38
+
39
+ 拉黑成功:
40
+
41
+ ```json
42
+ {
43
+ "ok": true,
44
+ "operation": "set-blocked",
45
+ "selfAid": "bot.agentid.pub",
46
+ "primaryId": "peer.agentid.pub",
47
+ "blocked": true,
48
+ "changed": true,
49
+ "contactRevision": "..."
50
+ }
51
+ ```
52
+
53
+ ## 拉黑后的消息行为
54
+
55
+ - AUN 外部入站在 MessageBridge 的业务入口被拦截,不进入 menu/auth/command/session/queue/LLM。
56
+ - 对 `ai`、`bot`、`agent`、`service` 类型的私聊对端,可限频返回 `[rejection] Not accepting messages from you.`。
57
+ - 入站正文中的 `[rejection]` 没有协议控制语义。发送者未被本 Agent 拉黑时,该文本正常进入响应式会话。
@@ -0,0 +1,46 @@
1
+ # ec ctl — 当前会话工具
2
+
3
+ 在**当前托管会话**中发送消息或文件、重命名、管理队列,以及查询项目路径和会话状态。
4
+
5
+ > ctl 命令通过 IPC 转发给 daemon,仅在 evolcore 托管环境中可用(依赖 `EVOLCORE_SESSION_ID`)。
6
+
7
+ ## 查询
8
+
9
+ ```bash
10
+ ec ctl status # 查看会话状态
11
+ ec ctl pwd # 显示当前项目路径
12
+ ec ctl help # 显示帮助
13
+ ```
14
+
15
+ ## 会话名称
16
+
17
+ ```bash
18
+ ec ctl name <新名称>
19
+ ```
20
+
21
+ ## 消息(兜底用)
22
+
23
+ ```bash
24
+ ec ctl send "<text>" # 主动发送文本(proactive 模式)
25
+ ec ctl file [channel] <path> # 发送项目内文件
26
+ ```
27
+
28
+ > 发消息**首选 `ec msg send <self-aid> <peer-id> "<text>"`**(见 msg.md)。
29
+ > `ec ctl send` 只在拿不到自己的 AID 时兜底——它自动继承当前会话的 AID 和对端。
30
+
31
+ ## 消息队列
32
+
33
+ ```bash
34
+ ec ctl queue # 查看当前会话队列
35
+ ec ctl queue --full # 显示完整预览
36
+ ec ctl queue --clear # 清空待处理消息
37
+ ec ctl queue --cancel <id> # 取消指定消息
38
+ ec ctl queue --interrupt # 打断当前处理
39
+ ```
40
+
41
+ ## 相关命令集
42
+
43
+ - agent 全生命周期管理(创建/启停/配置)→ `ec agent`(见 agent.md)
44
+ - AID 身份与 agent.md 名片 → `ec aid`(见 aid.md)
45
+ - 定时与事件触发器 → `ec trigger`(见 trigger.md)
46
+ - 模型查看与切换通过 menu 协议或 slash `/model` 完成
@@ -0,0 +1,216 @@
1
+ # Trigger Event Catalog
2
+
3
+ 本目录用于编写 `source.type = "event"` 的 trigger 时按需查阅。最终事实源是
4
+ `$PACKAGE_ROOT/src/core/event-bus.ts` 的 `GatewayEvent` 类型;本文只做面向 trigger
5
+ 作者的事件索引和使用约定。
6
+
7
+ ## Event Source 规则
8
+
9
+ `source.eventPattern` 支持三种形式:
10
+
11
+ | 形式 | 示例 | 含义 |
12
+ |------|------|------|
13
+ | 精确事件名 | `message:received` | 只监听这一种事件 |
14
+ | 命名空间前缀 | `task:*` | 监听该命名空间下所有事件 |
15
+ | 全量 | `*` | 监听所有 EventBus 事件,需谨慎使用 filter |
16
+
17
+ `source.filter.match` 用事件 payload 的字段路径做匹配,支持:
18
+
19
+ | 操作 | 示例 |
20
+ |------|------|
21
+ | 等值 | `{ "channel": "feishu" }` |
22
+ | `$in` | `{ "toolName": { "$in": ["Bash", "Edit"] } }` |
23
+ | `$regex` | `{ "content": { "$regex": "^/echo" } }` |
24
+ | 数值比较 | `{ "durationMs": { "$gte": 30000 } }` |
25
+ | 存在性 | `{ "userId": { "$exists": true } }` |
26
+
27
+ 字段路径支持点号,例如 `replyContext.threadId`。禁止使用 `__proto__`、`prototype`、
28
+ `constructor` 路径段。
29
+
30
+ ## 循环防护
31
+
32
+ 监听 `trigger:*` 时,系统默认禁止 trigger 响应自身产生的 trigger 事件:
33
+ 当事件带有 `originTriggerId` 且等于当前 trigger id 时,该事件会被跳过。
34
+
35
+ 跨 trigger 的链式触发仍然允许。需要追踪链路时使用:
36
+
37
+ | 字段 | 含义 |
38
+ |------|------|
39
+ | `runId` | 本次 trigger run 的唯一 ID |
40
+ | `originTriggerId` | 产生当前 `trigger:*` 事件的 trigger id |
41
+
42
+ ## 常用事件
43
+
44
+ | 事件 | 常见用途 |
45
+ |------|----------|
46
+ | `message:received` | 用户消息触发自动化 |
47
+ | `task:completed` | agent 完成回复后触发后处理 |
48
+ | `task:error` | agent 任务失败后触发诊断或告警 |
49
+ | `permission:requested` | 观察权限请求 |
50
+ | `permission:cancelled` | 权限请求因中断等原因被取消 |
51
+ | `runner:model-changed` | 模型或推理强度变化后同步状态 |
52
+ | `agent:*` | agent 生命周期、配置变化、运行态变化 |
53
+ | `trigger:*` | trigger 编排、链式触发、审计 |
54
+
55
+ ## 事件目录
56
+
57
+ ### system
58
+
59
+ | 事件 | Payload |
60
+ |------|---------|
61
+ | `system:started` | `{ channels, timestamp }` |
62
+ | `system:shutdown` | `{ reason?, timestamp? }` |
63
+ | `system:restart` | `{ channel, channelId }` |
64
+
65
+ ### channel
66
+
67
+ | 事件 | Payload |
68
+ |------|---------|
69
+ | `channel:connected` | `{ channel, channelName?, timestamp? }` |
70
+ | `channel:disconnected` | `{ channel, channelName?, reason? }` |
71
+ | `channel:error` | `{ channel, channelName?, status, message, timestamp? }` |
72
+ | `channel:owner-bound` | `{ channel, channelName?, userId }` |
73
+
74
+ ### session
75
+
76
+ | 事件 | Payload |
77
+ |------|---------|
78
+ | `session:created` | `{ sessionId, channel, channelName?, channelId, projectPath?, name?, chatType?, threadId?, timestamp? }` |
79
+ | `session:switched` | `{ sessionId, fromSessionId, toSessionId }` |
80
+ | `session:deleted` | `{ sessionId }` |
81
+ | `session:renamed` | `{ sessionId, oldName, newName }` |
82
+ | `session:forked` | `{ sessionId, sourceSessionId, name? }` |
83
+ | `session:rewind` | `{ sessionId, turnNum, mode }` |
84
+ | `session:imported` | `{ sessionId, agentSessionId, projectPath }` |
85
+ | `session:chat-mode-changed` | `{ sessionId, mode, timestamp? }` |
86
+ | `session:dispatch-mode-changed` | `{ sessionId, mode, timestamp? }` |
87
+
88
+ ### message
89
+
90
+ | 事件 | Payload |
91
+ |------|---------|
92
+ | `message:received` | `{ sessionId, channel, channelName?, channelId, content, userId?, agentName?, timestamp? }` |
93
+ | `message:text` | `{ sessionId, text, isFinal }` |
94
+ | `message:thought-put` | `{ agentName, channelId, taskId?, text? }` |
95
+
96
+ ### task
97
+
98
+ | 事件 | Payload |
99
+ |------|---------|
100
+ | `task:started` | `{ sessionId, agentName?, encrypt?, chatmode? }` |
101
+ | `task:queued` | `{ channel, channelId, replyContext? }` |
102
+ | `task:completed` | `{ sessionId, channel, channelName?, channelId, finalText?, durationMs?, terminalReason?, agentName?, numTurns?, timestamp? }` |
103
+ | `task:error` | `{ sessionId, error, errorType, terminalReason?, agentName? }` |
104
+ | `task:interrupted` | `{ sessionId, reason?, agentName? }` |
105
+
106
+ ### tool
107
+
108
+ | 事件 | Payload |
109
+ |------|---------|
110
+ | `tool:use` | `{ sessionId, toolName, input, timestamp? }` |
111
+ | `tool:result` | `{ sessionId, toolName, isError?, agentName?, timestamp? }` |
112
+
113
+ ### permission
114
+
115
+ | 事件 | Payload |
116
+ |------|---------|
117
+ | `permission:requested` | `{ sessionId, requestId, toolName, input }` |
118
+ | `permission:resolved` | `{ sessionId, requestId, approved }` |
119
+ | `permission:cancelled` | `{ sessionId, requestId, toolName?, reason? }` |
120
+
121
+ ### runner
122
+
123
+ | 事件 | Payload |
124
+ |------|---------|
125
+ | `runner:compact-start` | `{ sessionId }` |
126
+ | `runner:compact-complete` | `{ sessionId, preTokens }` |
127
+ | `runner:model-changed` | `{ sessionId?, agentName?, baseagent?, model?, effort?, timestamp? }` |
128
+ | `runner:idle-timeout` | `{ sessionId, idleSec }` |
129
+ | `runner:idle-notify` | `{ sessionId, idleSec, totalEvents, totalToolCalls, lastToolName? }` |
130
+ | `runner:idle-warn` | `{ sessionId, idleSec, totalEvents, totalToolCalls, lastToolName? }` |
131
+ | `runner:file-sent` | `{ sessionId, filePath, channel, channelName? }` |
132
+ | `runner:state-changed` | `{ sessionId, state }` |
133
+ | `runner:status` | `{ sessionId, subtype, message, timestamp? }` |
134
+
135
+ ### self-heal
136
+
137
+ | 事件 | Payload |
138
+ |------|---------|
139
+ | `self-heal:started` | `{ reason }` |
140
+ | `self-heal:attempt` | `{ attemptNumber, maxAttempts }` |
141
+ | `self-heal:completed` | `{ success, attempts }` |
142
+
143
+ ### trigger
144
+
145
+ | 事件 | Payload |
146
+ |------|---------|
147
+ | `trigger:registered` | `{ triggerId, name, peerId?, targetChannel?, targetChannelId?, scheduleType, scheduleValue, timestamp? }` |
148
+ | `trigger:updated` | `{ triggerId, name, peerId?, scheduleType, scheduleValue, timestamp? }` |
149
+ | `trigger:fired` | `{ triggerId, name, runId, originTriggerId, fireTime, targetChannel?, targetChannelId?, scheduleType, timestamp? }` |
150
+ | `trigger:completed` | `{ triggerId, name, runId, originTriggerId, messageId, durationMs, targetChannel, targetChannelId, fireTime }` |
151
+ | `trigger:failed` | `{ triggerId, name, runId, originTriggerId, messageId, error, targetChannel, targetChannelId, fireTime, phase }` |
152
+ | `trigger:skipped` | `{ triggerId, name, runId, originTriggerId, reason, targetChannel, targetChannelId, fireTime? }` |
153
+ | `trigger:cancelled` | `{ triggerId, name, by }` |
154
+
155
+ ### agent
156
+
157
+ | 事件 | Payload |
158
+ |------|---------|
159
+ | `agent:created` | `{ aid, name?, baseagent?, projectPath?, owner?, timestamp? }` |
160
+ | `agent:updated` | `{ aid, timestamp? }` |
161
+ | `agent:reloaded` | `{ aid, timestamp? }` |
162
+ | `agent:enabled` | `{ aid, reloaded?, timestamp? }` |
163
+ | `agent:disabled` | `{ aid, reloaded?, timestamp? }` |
164
+ | `agent:deleted` | `{ aid, purged?, timestamp? }` |
165
+ | `agent:started` | `{ aid, timestamp? }` |
166
+ | `agent:stopped` | `{ aid, timestamp? }` |
167
+ | `agent:error` | `{ aid, action?, error, timestamp? }` |
168
+ | `agent:baseagent-changed` | `{ aid, baseagent, previousBaseagent?, scope, timestamp? }` |
169
+
170
+ ## 示例
171
+
172
+ 监听飞书用户消息:
173
+
174
+ ```json
175
+ {
176
+ "source": {
177
+ "type": "event",
178
+ "eventPattern": "message:received",
179
+ "filter": {
180
+ "match": {
181
+ "channel": "feishu",
182
+ "content": { "$regex": "^/echo" }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ ```
188
+
189
+ 监听非自身产生的 trigger 完成事件:
190
+
191
+ ```json
192
+ {
193
+ "source": {
194
+ "type": "event",
195
+ "eventPattern": "trigger:completed",
196
+ "filter": {
197
+ "match": {
198
+ "targetChannel": { "$exists": true }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ ```
204
+
205
+ ## 不存在或已移除的事件
206
+
207
+ 不要使用这些历史设计稿中出现过的事件:
208
+
209
+ | 事件 | 替代 |
210
+ |------|------|
211
+ | `message:sent-out` | 使用 `task:completed` |
212
+ | `permission:timeout` | 当前权限不会 timeout;取消用 `permission:cancelled` |
213
+ | `session:safe-mode-entered` / `session:safe-mode-exited` | 已移除 |
214
+ | `project:switched` / `project:bound` | 已移除 |
215
+ | `config:corrupted` | 已移除 |
216
+ | `agent:create-failed` | 使用 `agent:error` 且 `action = "create"` |