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
package/CHANGELOG.md ADDED
@@ -0,0 +1,64 @@
1
+ # Changelog
2
+
3
+ 本文件记录 EvolCore 的重要变更。EvolClaw 版本线的历史记录已归档至
4
+ [`docs/_archive/CHANGELOG-evolclaw.md`](docs/_archive/CHANGELOG-evolclaw.md)。
5
+
6
+ ## 0.0.3 (2026-07-25)
7
+
8
+ ### 多渠道交互
9
+
10
+ - 钉钉新增可靠消息路由、媒体收发、处理状态表情、交互卡片回调及联系人身份绑定。
11
+ - 企业微信新增连接状态管理、消息去重、引用与媒体处理、流式回复、交互卡片及身份绑定。
12
+ - 飞书统一文本、文件和图片发送回执,完善处理中、成功和失败状态表情的生命周期。
13
+ - 统一渠道发送回执、交互失效和任务中断终态,避免重复输出及遗留处理中状态。
14
+
15
+ ### 联系人与授权
16
+
17
+ - 新增 `/connect` 菜单协议,统一管理联系人、群组、角色分配、管理员授权及拉黑状态。
18
+ - 收敛联系人身份与角色授权边界,补充跨会话权限校验和授权审计。
19
+ - 交互问题支持多选,并校验交互发起人身份。
20
+
21
+ ### 运行与迁移
22
+
23
+ - 增强会话目录迁移、渠道初始化和安装版/源码版运行模式切换。
24
+ - Trigger 命令兼容 `set` 创建别名,完善无人值守任务的交互降级处理。
25
+ - Claude 权限拒绝事件按调用 ID 去重,并在原始工具结果缺失时保留终态兜底。
26
+ - Codex app-server 在工具完成通知缺失时补齐失败终态,避免遗留悬空工具调用。
27
+ - 收紧 npm 发布白名单,排除不参与运行的品牌设计资产。
28
+
29
+ ## 0.0.2 (2026-07-23)
30
+
31
+ EvolCore 首个正式代码版本。
32
+
33
+ ### 主要变更
34
+
35
+ - 产品、npm 包、源码标识和运行时文案由 EvolClaw 全面更名为 EvolCore。
36
+ - 主 npm 包更名为 `evolcore`,版本线从 `0.0.2` 重新开始。
37
+ - Web 控制台包更名为 `ec-web`,当前兼容版本为 `0.0.3`。
38
+ - CLI 统一为 `ec`,废弃 `evolclaw` 命令入口。
39
+ - 主配置文件由 `evolclaw.json` 更名为与产品名无关的 `daemon.json`。
40
+ - 默认用户数据目录切换为 `~/.evolcore`,源码开发运行根切换为 EvolCore 仓库目录。
41
+ - 阿里云代码仓库切换为 `evolcore.git`;不发布 GitHub 仓库。
42
+
43
+ ### 开发模式
44
+
45
+ - 新增隐藏的 `ec mode` 开发命令,用于查看和切换源码构建版与 npm 安装版。
46
+ - 支持 `ec mode dev [源码路径]` 和 `ec mode pkg [版本]`。
47
+ - npm 安装包不包含 `mode.js`;安装版执行 `ec mode` 时按无效指令退出。
48
+
49
+ ### 迁移
50
+
51
+ - 新增 `scripts/migrate-evolclaw-to-evolcore.sh`,默认仅预检,传入 `--apply` 后执行迁移。
52
+ - 迁移 AID、agent、CA、daemon 配置、设备标识、种子和环境配置,并更新 agent 默认项目路径。
53
+ - 保留旧目录且不覆盖新目录已有文件,不迁移 PID、socket、旧日志等实例状态。
54
+ - 支持 Linux、Git Bash、MSYS2 和 Cygwin,并兼容 Windows 盘符路径。
55
+
56
+ ### 兼容性说明
57
+
58
+ - EvolClaw `3.x` 与 EvolCore `0.0.x` 是两条独立版本线,版本号不连续。
59
+ - 已存在的历史会话会保留创建时的 `projectPath`;新建会话采用迁移后的 agent 默认项目路径。
60
+ - `aliyun_db` 等既有内部标识保持不变。
61
+
62
+ ## 0.0.1 (2026-07-23)
63
+
64
+ - npm 包名占位版本,不对应 EvolCore 的正式代码基线。
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 eLeanwang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,378 @@
1
+ # Evolcore 0.5.0 迁移指南
2
+
3
+ > 版本:0.5.0
4
+ > 发布日期:2026-06-19
5
+ > 重大变更:配置系统 v3 重构 + 类型系统简化
6
+
7
+ ---
8
+
9
+ ## 概述
10
+
11
+ 0.5.0 版本对配置系统进行了重大重构,主要变更:
12
+
13
+ 1. **删除 behavior.json** - 所有参数统一在 config.json
14
+ 2. **删除 BehaviorConfig 类型** - 统一使用 AgentConfig/EffectiveAgentConfig
15
+ 3. **删除 MergedAgentConfig 类型** - 统一使用 EffectiveAgentConfig
16
+ 4. **简化覆盖链** - defaults → agent/config → relation/config
17
+
18
+ ---
19
+
20
+ ## 破坏性变更
21
+
22
+ ### 1. behavior.json 已删除
23
+
24
+ **变更说明**:
25
+ - ❌ 不再有 `agents/<aid>/behavior.json`
26
+ - ❌ 不再有 `agents/<aid>/relations/<peerKey>/preferences.json`
27
+ - ✅ 所有参数统一在 `config.json`
28
+
29
+ **迁移步骤**:
30
+
31
+ #### 如果你有自定义的 behavior.json:
32
+
33
+ **原文件结构**:
34
+ ```
35
+ agents/mybot.agent/
36
+ ├── config.json # 身份、凭证、渠道
37
+ └── behavior.json # 模型、对话模式、权限
38
+ ```
39
+
40
+ **新文件结构**:
41
+ ```
42
+ agents/mybot.agent/
43
+ └── config.json # 所有参数统一
44
+ ```
45
+
46
+ **手动合并示例**:
47
+
48
+ ```json
49
+ // 原 config.json(身份信息)
50
+ {
51
+ "aid": "mybot.agent",
52
+ "owners": ["admin.user"],
53
+ "channels": [...]
54
+ }
55
+
56
+ // 原 behavior.json(行为参数)
57
+ {
58
+ "active_baseagent": "claude",
59
+ "baseagents": {
60
+ "claude": { "model": "opus-4.8", "effort": "high" }
61
+ },
62
+ "chatmode": { "private": "proactive" }
63
+ }
64
+
65
+ // 合并后的 config.json
66
+ {
67
+ "aid": "mybot.agent",
68
+ "owners": ["admin.user"],
69
+ "channels": [...],
70
+ "active_baseagent": "claude",
71
+ "baseagents": {
72
+ "claude": { "model": "opus-4.8", "effort": "high" }
73
+ },
74
+ "chatmode": { "private": "proactive" }
75
+ }
76
+ ```
77
+
78
+ **自动迁移**:
79
+ - 启动时会自动检测并合并 behavior.json 到 config.json
80
+ - 迁移后 behavior.json 会被重命名为 `.migrated-to-config`
81
+
82
+ #### 如果你有关系级 preferences.json:
83
+
84
+ **原路径**:`agents/<aid>/relations/<peerKey>/preferences.json`
85
+
86
+ **新路径**:`agents/<aid>/relations/<peerKey>/config.json`
87
+
88
+ **迁移**:
89
+ - 自动迁移,将 preferences.json 合并到 config.json
90
+ - 原文件重命名为 `.migrated-to-config`
91
+
92
+ ---
93
+
94
+ ### 2. BehaviorConfig 类型已删除
95
+
96
+ **变更说明**:
97
+ - ❌ `BehaviorConfig` 接口已删除
98
+ - ✅ 使用 `AgentConfig`(存储层)或 `EffectiveAgentConfig`(运行时)
99
+
100
+ **如果你的代码引用了 BehaviorConfig**:
101
+
102
+ ```typescript
103
+ // ❌ 旧代码
104
+ import type { BehaviorConfig } from 'evolcore/types';
105
+
106
+ function updateBehavior(config: BehaviorConfig) {
107
+ // ...
108
+ }
109
+
110
+ // ✅ 新代码(完整配置)
111
+ import type { AgentConfig } from 'evolcore/types';
112
+
113
+ function updateBehavior(config: AgentConfig) {
114
+ // ...
115
+ }
116
+
117
+ // ✅ 新代码(只需要部分字段)
118
+ import type { AgentConfig } from 'evolcore/types';
119
+
120
+ function updateBehavior(config: Partial<AgentConfig>) {
121
+ // ...
122
+ }
123
+
124
+ // ✅ 新代码(运行时合并结果)
125
+ import type { EffectiveAgentConfig } from 'evolcore/types';
126
+
127
+ function getBehavior(): EffectiveAgentConfig {
128
+ // ...
129
+ }
130
+ ```
131
+
132
+ **常见场景替换表**:
133
+
134
+ | 原用途 | 旧类型 | 新类型 |
135
+ |--------|--------|--------|
136
+ | 读取 agent 配置 | `BehaviorConfig` | `AgentConfig` |
137
+ | 读取关系级配置 | `BehaviorConfig` | `RelationConfig` |
138
+ | 运行时合并结果 | `BehaviorConfig` | `EffectiveAgentConfig` |
139
+ | 部分配置更新 | `Partial<BehaviorConfig>` | `Partial<AgentConfig>` |
140
+ | 只需要特定字段 | `Pick<BehaviorConfig, 'model' \| 'chatmode'>` | `Pick<AgentConfig, 'model' \| 'chatmode'>` |
141
+
142
+ ---
143
+
144
+ ### 3. MergedAgentConfig 类型已删除
145
+
146
+ **变更说明**:
147
+ - ❌ `MergedAgentConfig` 类型已删除
148
+ - ✅ 使用 `EffectiveAgentConfig`
149
+
150
+ **如果你的代码引用了 MergedAgentConfig**:
151
+
152
+ ```typescript
153
+ // ❌ 旧代码
154
+ import type { MergedAgentConfig } from 'evolcore/types';
155
+
156
+ function processConfig(config: MergedAgentConfig) {
157
+ // ...
158
+ }
159
+
160
+ // ✅ 新代码
161
+ import type { EffectiveAgentConfig } from 'evolcore/types';
162
+
163
+ function processConfig(config: EffectiveAgentConfig) {
164
+ // ...
165
+ }
166
+ ```
167
+
168
+ **说明**:
169
+ - `MergedAgentConfig` 曾是 `AgentConfig & BehaviorConfig` 的合并类型
170
+ - v3 重构后简化为 `EffectiveAgentConfig` 的别名
171
+ - 现在直接使用 `EffectiveAgentConfig` 更清晰
172
+
173
+ ---
174
+
175
+ ### 4. mergeForAgent() 已弃用
176
+
177
+ **变更说明**:
178
+ - ⚠️ `mergeForAgent()` 标记为 `@deprecated`
179
+ - ✅ 使用 `ConfigManager.resolveEffective()`
180
+
181
+ **如果你的代码调用了 mergeForAgent**:
182
+
183
+ ```typescript
184
+ // ❌ 旧代码
185
+ import { mergeForAgent, loadAgent, loadDefaults } from 'evolcore';
186
+
187
+ const agent = loadAgent('mybot.agent');
188
+ const defaults = loadDefaults();
189
+ const merged = mergeForAgent(agent, defaults);
190
+
191
+ // ✅ 新代码
192
+ import { resolveEffective } from 'evolcore/config/config-manager';
193
+
194
+ const effective = resolveEffective({ self: 'mybot.agent' });
195
+ ```
196
+
197
+ **说明**:
198
+ - `mergeForAgent()` 仍可用但已弃用,计划 v2.2 删除
199
+ - `resolveEffective()` 是唯一的合并入口,支持完整覆盖链
200
+
201
+ ---
202
+
203
+ ## 新功能
204
+
205
+ ### 1. 统一的配置覆盖链
206
+
207
+ **覆盖链(优先级从低到高)**:
208
+ ```
209
+ defaults → agent/config → relation/config
210
+ ```
211
+
212
+ **示例**:
213
+
214
+ ```typescript
215
+ import { resolveEffective } from 'evolcore/config/config-manager';
216
+
217
+ // Agent 级配置
218
+ const agentConfig = resolveEffective({
219
+ self: 'mybot.agent'
220
+ });
221
+
222
+ // 关系级配置(针对特定用户)
223
+ const relationConfig = resolveEffective({
224
+ self: 'mybot.agent',
225
+ peerKey: 'user123.user@channel'
226
+ });
227
+ ```
228
+
229
+ ### 2. 角色级覆盖(新增)
230
+
231
+ **在 config.json 中定义角色**:
232
+
233
+ ```json
234
+ {
235
+ "aid": "mybot.agent",
236
+ "active_baseagent": "claude",
237
+ "baseagents": {
238
+ "claude": { "model": "sonnet-4.6" }
239
+ },
240
+ "roles": {
241
+ "power-user": {
242
+ "baseagents": {
243
+ "claude": { "model": "opus-4.8", "effort": "high" }
244
+ },
245
+ "permissionMode": "owner"
246
+ }
247
+ }
248
+ }
249
+ ```
250
+
251
+ **运行时解析**:
252
+
253
+ ```typescript
254
+ import { resolveEffective } from 'evolcore/config/config-manager';
255
+
256
+ // 普通用户
257
+ const normalConfig = resolveEffective({
258
+ self: 'mybot.agent',
259
+ peerKey: 'user1.user@channel'
260
+ });
261
+ // → model: "sonnet-4.6"
262
+
263
+ // Power user
264
+ const powerConfig = resolveEffective({
265
+ self: 'mybot.agent',
266
+ peerKey: 'user2.user@channel',
267
+ role: 'power-user'
268
+ });
269
+ // → model: "opus-4.8", effort: "high"
270
+ ```
271
+
272
+ ---
273
+
274
+ ## 非破坏性变更
275
+
276
+ ### 1. 配置文件格式兼容
277
+
278
+ **旧格式仍然支持**:
279
+ - 如果只有 config.json(身份字段),仍然有效
280
+ - 如果有 behavior.json,会自动合并
281
+ - 如果有 preferences.json,会自动迁移
282
+
283
+ ### 2. API 保持兼容
284
+
285
+ **这些函数签名未变**:
286
+ - `loadAgent(aid)` - 返回 AgentConfig
287
+ - `loadDefaults()` - 返回 DefaultsConfig
288
+ - `loadAllAgents()` - 返回 AgentConfig[]
289
+
290
+ **这些属性未变**:
291
+ - `EvolAgent.config` - 返回运行时配置(类型从 MergedAgentConfig 改为 EffectiveAgentConfig,字段不变)
292
+ - `AgentInfo.config` - 同上
293
+
294
+ ---
295
+
296
+ ## 检查清单
297
+
298
+ 迁移到 0.5.0 时,检查以下内容:
299
+
300
+ ### 配置文件
301
+
302
+ - [ ] 确认 behavior.json 已自动合并到 config.json
303
+ - [ ] 确认 preferences.json 已自动迁移到 config.json
304
+ - [ ] 检查 config.json 是否包含所有必要字段
305
+
306
+ ### TypeScript 代码
307
+
308
+ - [ ] 将 `BehaviorConfig` 替换为 `AgentConfig` 或 `EffectiveAgentConfig`
309
+ - [ ] 将 `MergedAgentConfig` 替换为 `EffectiveAgentConfig`
310
+ - [ ] 将 `mergeForAgent()` 替换为 `resolveEffective()`
311
+ - [ ] 运行 TypeScript 编译检查类型错误
312
+
313
+ ### 运行时测试
314
+
315
+ - [ ] 启动 agent,确认配置正确加载
316
+ - [ ] 测试模型切换功能
317
+ - [ ] 测试对话模式切换
318
+ - [ ] 测试关系级配置覆盖
319
+
320
+ ---
321
+
322
+ ## 常见问题
323
+
324
+ ### Q1: 我的 behavior.json 会丢失吗?
325
+
326
+ **A**: 不会。
327
+ - 自动迁移会合并到 config.json
328
+ - 原 behavior.json 重命名为 `.migrated-to-config`
329
+ - 如果合并失败,会保留原文件并记录错误日志
330
+
331
+ ### Q2: 我需要手动更新配置文件吗?
332
+
333
+ **A**: 不需要。
334
+ - 启动时自动检测并迁移
335
+ - 迁移成功后自动保存
336
+ - 只需确认迁移日志无错误
337
+
338
+ ### Q3: 类型错误如何修复?
339
+
340
+ **A**: 按上述替换表修改:
341
+ ```typescript
342
+ // BehaviorConfig → AgentConfig / EffectiveAgentConfig
343
+ // MergedAgentConfig → EffectiveAgentConfig
344
+ ```
345
+
346
+ ### Q4: mergeForAgent() 什么时候会删除?
347
+
348
+ **A**: 计划 v2.2 删除。
349
+ - 当前版本仍可用(已弃用)
350
+ - 建议尽快迁移到 `resolveEffective()`
351
+
352
+ ### Q5: 如何回退到旧版本?
353
+
354
+ **A**:
355
+ ```bash
356
+ npm install evolcore@0.4.x
357
+ ```
358
+ - 如果已迁移,需要手动还原配置文件
359
+ - 建议迁移前备份 agents/ 目录
360
+
361
+ ---
362
+
363
+ ## 获取帮助
364
+
365
+ 如果遇到迁移问题:
366
+
367
+ 1. **查看日志**:`~/.evolcore/logs/boot.log`
368
+ 2. **查看文档**:`docs/config/`
369
+ 3. **提交 Issue**:https://github.com/your-org/evolcore/issues
370
+
371
+ ---
372
+
373
+ ## 相关文档
374
+
375
+ - [配置系统概览](docs/config/01-overview.md)
376
+ - [合并规则](docs/config/02-merge-rules.md)
377
+ - [配置 Schema](docs/config/03-schema.md)
378
+ - [BehaviorConfig 删除报告](docs/config/behaviorconfig-mergedconfig-removal-completion.md)