hyacinth-ai 0.9.6

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 (704) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +205 -0
  3. package/commands.json +25 -0
  4. package/dist/agents/builtins.d.ts +8 -0
  5. package/dist/agents/builtins.js +50 -0
  6. package/dist/agents/config-loader.d.ts +15 -0
  7. package/dist/agents/config-loader.js +75 -0
  8. package/dist/agents/delegate-tool.d.ts +109 -0
  9. package/dist/agents/delegate-tool.js +407 -0
  10. package/dist/agents/index.d.ts +5 -0
  11. package/dist/agents/index.js +5 -0
  12. package/dist/agents/registry.d.ts +2 -0
  13. package/dist/agents/registry.js +2 -0
  14. package/dist/bypass/agents/companion/index.d.ts +57 -0
  15. package/dist/bypass/agents/companion/index.js +487 -0
  16. package/dist/bypass/agents/orchestrator/index.d.ts +17 -0
  17. package/dist/bypass/agents/orchestrator/index.js +414 -0
  18. package/dist/bypass/agents/orchestrator.d.ts +16 -0
  19. package/dist/bypass/agents/orchestrator.js +377 -0
  20. package/dist/bypass/agents/world-engine/agent.d.ts +41 -0
  21. package/dist/bypass/agents/world-engine/agent.js +385 -0
  22. package/dist/bypass/agents/world-engine/index.d.ts +52 -0
  23. package/dist/bypass/agents/world-engine/index.js +198 -0
  24. package/dist/bypass/agents/world-engine/sim.d.ts +14 -0
  25. package/dist/bypass/agents/world-engine/sim.js +120 -0
  26. package/dist/bypass/agents/world-engine/store.d.ts +110 -0
  27. package/dist/bypass/agents/world-engine/store.js +519 -0
  28. package/dist/bypass/agents/world-engine/ticker.d.ts +37 -0
  29. package/dist/bypass/agents/world-engine/ticker.js +214 -0
  30. package/dist/bypass/agents/world-engine/tools.d.ts +6 -0
  31. package/dist/bypass/agents/world-engine/tools.js +380 -0
  32. package/dist/bypass/agents/world-engine/types.d.ts +202 -0
  33. package/dist/bypass/agents/world-engine/types.js +56 -0
  34. package/dist/bypass/agents/world-engine.d.ts +20 -0
  35. package/dist/bypass/agents/world-engine.js +63 -0
  36. package/dist/bypass/base.d.ts +48 -0
  37. package/dist/bypass/base.js +126 -0
  38. package/dist/bypass/index.d.ts +5 -0
  39. package/dist/bypass/index.js +6 -0
  40. package/dist/bypass/manager.d.ts +41 -0
  41. package/dist/bypass/manager.js +179 -0
  42. package/dist/bypass/types.d.ts +63 -0
  43. package/dist/bypass/types.js +14 -0
  44. package/dist/channels/auto-detect.d.ts +25 -0
  45. package/dist/channels/auto-detect.js +77 -0
  46. package/dist/channels/builtin/http-webhook.d.ts +25 -0
  47. package/dist/channels/builtin/http-webhook.js +287 -0
  48. package/dist/channels/builtin/tui-channel.d.ts +33 -0
  49. package/dist/channels/builtin/tui-channel.js +61 -0
  50. package/dist/channels/builtin/tui-ws-session.d.ts +16 -0
  51. package/dist/channels/builtin/tui-ws-session.js +90 -0
  52. package/dist/channels/builtin/webui-output-handler.d.ts +30 -0
  53. package/dist/channels/builtin/webui-output-handler.js +93 -0
  54. package/dist/channels/index.d.ts +5 -0
  55. package/dist/channels/index.js +3 -0
  56. package/dist/channels/interface.d.ts +148 -0
  57. package/dist/channels/interface.js +15 -0
  58. package/dist/channels/manager.d.ts +43 -0
  59. package/dist/channels/manager.js +156 -0
  60. package/dist/channels/message-queue.d.ts +36 -0
  61. package/dist/channels/message-queue.js +91 -0
  62. package/dist/channels/plugins/clawbot/clawbot-auth.d.ts +50 -0
  63. package/dist/channels/plugins/clawbot/clawbot-auth.js +235 -0
  64. package/dist/channels/plugins/clawbot/clawbot-channel.d.ts +76 -0
  65. package/dist/channels/plugins/clawbot/clawbot-channel.js +566 -0
  66. package/dist/channels/plugins/clawbot/clawbot-client.d.ts +180 -0
  67. package/dist/channels/plugins/clawbot/clawbot-client.js +312 -0
  68. package/dist/channels/plugins/clawbot/clawbot-config.d.ts +30 -0
  69. package/dist/channels/plugins/clawbot/clawbot-config.js +28 -0
  70. package/dist/channels/plugins/clawbot/clawbot-message-queue.d.ts +27 -0
  71. package/dist/channels/plugins/clawbot/clawbot-message-queue.js +114 -0
  72. package/dist/channels/plugins/clawbot/clawbot-session.d.ts +10 -0
  73. package/dist/channels/plugins/clawbot/clawbot-session.js +26 -0
  74. package/dist/channels/plugins/clawbot/index.d.ts +17 -0
  75. package/dist/channels/plugins/clawbot/index.js +58 -0
  76. package/dist/channels/plugins/feishu/feishu-channel.d.ts +57 -0
  77. package/dist/channels/plugins/feishu/feishu-channel.js +602 -0
  78. package/dist/channels/plugins/feishu/feishu-client.d.ts +23 -0
  79. package/dist/channels/plugins/feishu/feishu-client.js +86 -0
  80. package/dist/channels/plugins/feishu/feishu-config.d.ts +53 -0
  81. package/dist/channels/plugins/feishu/feishu-config.js +35 -0
  82. package/dist/channels/plugins/feishu/feishu-event.d.ts +102 -0
  83. package/dist/channels/plugins/feishu/feishu-event.js +257 -0
  84. package/dist/channels/plugins/feishu/feishu-log-suppressor.d.ts +7 -0
  85. package/dist/channels/plugins/feishu/feishu-log-suppressor.js +34 -0
  86. package/dist/channels/plugins/feishu/feishu-message-queue.d.ts +27 -0
  87. package/dist/channels/plugins/feishu/feishu-message-queue.js +112 -0
  88. package/dist/channels/plugins/feishu/feishu-send.d.ts +44 -0
  89. package/dist/channels/plugins/feishu/feishu-send.js +232 -0
  90. package/dist/channels/plugins/feishu/feishu-session.d.ts +44 -0
  91. package/dist/channels/plugins/feishu/feishu-session.js +84 -0
  92. package/dist/channels/plugins/feishu/feishu-streaming.d.ts +49 -0
  93. package/dist/channels/plugins/feishu/feishu-streaming.js +185 -0
  94. package/dist/channels/plugins/feishu/feishu-transport.d.ts +29 -0
  95. package/dist/channels/plugins/feishu/feishu-transport.js +99 -0
  96. package/dist/channels/plugins/feishu/index.d.ts +22 -0
  97. package/dist/channels/plugins/feishu/index.js +68 -0
  98. package/dist/cli/doctor.d.ts +20 -0
  99. package/dist/cli/doctor.js +317 -0
  100. package/dist/context/cache-strategy.d.ts +76 -0
  101. package/dist/context/cache-strategy.js +123 -0
  102. package/dist/context/composer.d.ts +77 -0
  103. package/dist/context/composer.js +318 -0
  104. package/dist/context/compressor.d.ts +218 -0
  105. package/dist/context/compressor.js +909 -0
  106. package/dist/context/index.d.ts +14 -0
  107. package/dist/context/index.js +8 -0
  108. package/dist/context/interface.d.ts +33 -0
  109. package/dist/context/interface.js +2 -0
  110. package/dist/context/manifest-defaults.d.ts +51 -0
  111. package/dist/context/manifest-defaults.js +133 -0
  112. package/dist/context/manifest-loader.d.ts +16 -0
  113. package/dist/context/manifest-loader.js +103 -0
  114. package/dist/context/manifest-types.d.ts +26 -0
  115. package/dist/context/manifest-types.js +2 -0
  116. package/dist/context/precision/analyzer.d.ts +31 -0
  117. package/dist/context/precision/analyzer.js +131 -0
  118. package/dist/context/precision/companion.d.ts +27 -0
  119. package/dist/context/precision/companion.js +144 -0
  120. package/dist/context/precision/default.d.ts +14 -0
  121. package/dist/context/precision/default.js +17 -0
  122. package/dist/context/precision/index.d.ts +9 -0
  123. package/dist/context/precision/index.js +7 -0
  124. package/dist/context/precision/keyword-pool.d.ts +27 -0
  125. package/dist/context/precision/keyword-pool.js +66 -0
  126. package/dist/context/precision/strategy.d.ts +18 -0
  127. package/dist/context/precision/strategy.js +51 -0
  128. package/dist/context/precision/summary-store.d.ts +18 -0
  129. package/dist/context/precision/summary-store.js +67 -0
  130. package/dist/context/precision/types.d.ts +23 -0
  131. package/dist/context/precision/types.js +2 -0
  132. package/dist/context/profiles.d.ts +45 -0
  133. package/dist/context/profiles.js +92 -0
  134. package/dist/context/prompt-builder.d.ts +76 -0
  135. package/dist/context/prompt-builder.js +133 -0
  136. package/dist/context/retriever.d.ts +44 -0
  137. package/dist/context/retriever.js +203 -0
  138. package/dist/context/router.d.ts +122 -0
  139. package/dist/context/router.js +291 -0
  140. package/dist/context/section-resolver.d.ts +38 -0
  141. package/dist/context/section-resolver.js +398 -0
  142. package/dist/context/tokenizer.d.ts +23 -0
  143. package/dist/context/tokenizer.js +78 -0
  144. package/dist/dependency/analyzer.d.ts +33 -0
  145. package/dist/dependency/analyzer.js +242 -0
  146. package/dist/dependency/data-flow-tracker.d.ts +12 -0
  147. package/dist/dependency/data-flow-tracker.js +97 -0
  148. package/dist/dependency/function-parser.d.ts +34 -0
  149. package/dist/dependency/function-parser.js +295 -0
  150. package/dist/dependency/index.d.ts +14 -0
  151. package/dist/dependency/index.js +20 -0
  152. package/dist/dependency/parser.d.ts +10 -0
  153. package/dist/dependency/parser.js +93 -0
  154. package/dist/dependency/types.d.ts +57 -0
  155. package/dist/dependency/types.js +2 -0
  156. package/dist/env/env-collector.d.ts +45 -0
  157. package/dist/env/env-collector.js +221 -0
  158. package/dist/env/index.d.ts +3 -0
  159. package/dist/env/index.js +2 -0
  160. package/dist/event-store.d.ts +27 -0
  161. package/dist/event-store.js +71 -0
  162. package/dist/evolution/git-manager.d.ts +46 -0
  163. package/dist/evolution/git-manager.js +276 -0
  164. package/dist/evolution/index.d.ts +3 -0
  165. package/dist/evolution/index.js +2 -0
  166. package/dist/flow/bootstrap-flow.d.ts +19 -0
  167. package/dist/flow/bootstrap-flow.js +72 -0
  168. package/dist/flow/flow-registry.d.ts +12 -0
  169. package/dist/flow/flow-registry.js +74 -0
  170. package/dist/flow/flow-tools.d.ts +8 -0
  171. package/dist/flow/flow-tools.js +106 -0
  172. package/dist/flow/index.d.ts +6 -0
  173. package/dist/flow/index.js +8 -0
  174. package/dist/flow/todo-flow.d.ts +25 -0
  175. package/dist/flow/todo-flow.js +107 -0
  176. package/dist/flow/types.d.ts +78 -0
  177. package/dist/flow/types.js +12 -0
  178. package/dist/flows/bootstrap.d.ts +18 -0
  179. package/dist/flows/bootstrap.js +119 -0
  180. package/dist/flows/index.d.ts +6 -0
  181. package/dist/flows/index.js +11 -0
  182. package/dist/flows/todo.d.ts +26 -0
  183. package/dist/flows/todo.js +174 -0
  184. package/dist/flows/tools.d.ts +8 -0
  185. package/dist/flows/tools.js +119 -0
  186. package/dist/flows/types.d.ts +27 -0
  187. package/dist/flows/types.js +10 -0
  188. package/dist/gateway/cli.d.ts +5 -0
  189. package/dist/gateway/cli.js +1027 -0
  190. package/dist/gateway/factory.d.ts +80 -0
  191. package/dist/gateway/factory.js +832 -0
  192. package/dist/gateway/guardian.d.ts +8 -0
  193. package/dist/gateway/guardian.js +30 -0
  194. package/dist/gateway/index.d.ts +3 -0
  195. package/dist/gateway/index.js +3 -0
  196. package/dist/gateway/server.d.ts +17 -0
  197. package/dist/gateway/server.js +96 -0
  198. package/dist/gateway/tui.d.ts +16 -0
  199. package/dist/gateway/tui.js +3273 -0
  200. package/dist/hot-reload/agent-watcher.d.ts +24 -0
  201. package/dist/hot-reload/agent-watcher.js +175 -0
  202. package/dist/hot-reload/bundle-watcher.d.ts +12 -0
  203. package/dist/hot-reload/bundle-watcher.js +35 -0
  204. package/dist/hot-reload/channel-watcher.d.ts +19 -0
  205. package/dist/hot-reload/channel-watcher.js +54 -0
  206. package/dist/hot-reload/command-watcher.d.ts +14 -0
  207. package/dist/hot-reload/command-watcher.js +54 -0
  208. package/dist/hot-reload/config-watcher.d.ts +20 -0
  209. package/dist/hot-reload/config-watcher.js +58 -0
  210. package/dist/hot-reload/index.d.ts +12 -0
  211. package/dist/hot-reload/index.js +12 -0
  212. package/dist/hot-reload/manager.d.ts +58 -0
  213. package/dist/hot-reload/manager.js +243 -0
  214. package/dist/hot-reload/manifest-watcher.d.ts +9 -0
  215. package/dist/hot-reload/manifest-watcher.js +42 -0
  216. package/dist/hot-reload/mcp-watcher.d.ts +18 -0
  217. package/dist/hot-reload/mcp-watcher.js +64 -0
  218. package/dist/hot-reload/model-catalog-watcher.d.ts +18 -0
  219. package/dist/hot-reload/model-catalog-watcher.js +62 -0
  220. package/dist/hot-reload/plugin-watcher.d.ts +20 -0
  221. package/dist/hot-reload/plugin-watcher.js +56 -0
  222. package/dist/hot-reload/prompt-watcher.d.ts +6 -0
  223. package/dist/hot-reload/prompt-watcher.js +38 -0
  224. package/dist/hot-reload/provider-watcher.d.ts +16 -0
  225. package/dist/hot-reload/provider-watcher.js +45 -0
  226. package/dist/hot-reload/skill-watcher.d.ts +19 -0
  227. package/dist/hot-reload/skill-watcher.js +82 -0
  228. package/dist/hot-reload/tool-watcher.d.ts +16 -0
  229. package/dist/hot-reload/tool-watcher.js +168 -0
  230. package/dist/hot-reload/workflow-watcher.d.ts +19 -0
  231. package/dist/hot-reload/workflow-watcher.js +84 -0
  232. package/dist/index.d.ts +3 -0
  233. package/dist/index.js +6 -0
  234. package/dist/knowledge/fts5-retriever.d.ts +30 -0
  235. package/dist/knowledge/fts5-retriever.js +223 -0
  236. package/dist/knowledge/index.d.ts +11 -0
  237. package/dist/knowledge/index.js +14 -0
  238. package/dist/knowledge/indexer.d.ts +41 -0
  239. package/dist/knowledge/indexer.js +186 -0
  240. package/dist/knowledge/query-preprocessor.d.ts +13 -0
  241. package/dist/knowledge/query-preprocessor.js +63 -0
  242. package/dist/knowledge/retriever.d.ts +45 -0
  243. package/dist/knowledge/retriever.js +9 -0
  244. package/dist/knowledge/store.d.ts +27 -0
  245. package/dist/knowledge/store.js +61 -0
  246. package/dist/knowledge/structured-store.d.ts +78 -0
  247. package/dist/knowledge/structured-store.js +280 -0
  248. package/dist/knowledge/structured-tools.d.ts +12 -0
  249. package/dist/knowledge/structured-tools.js +151 -0
  250. package/dist/knowledge/tools.d.ts +20 -0
  251. package/dist/knowledge/tools.js +238 -0
  252. package/dist/knowledge/watcher.d.ts +28 -0
  253. package/dist/knowledge/watcher.js +113 -0
  254. package/dist/lifecycle/index.d.ts +12 -0
  255. package/dist/lifecycle/index.js +14 -0
  256. package/dist/lifecycle/interface.d.ts +94 -0
  257. package/dist/lifecycle/interface.js +2 -0
  258. package/dist/lifecycle/local-model.d.ts +62 -0
  259. package/dist/lifecycle/local-model.js +331 -0
  260. package/dist/lifecycle/manager.d.ts +70 -0
  261. package/dist/lifecycle/manager.js +374 -0
  262. package/dist/lifecycle/supervisor.d.ts +89 -0
  263. package/dist/lifecycle/supervisor.js +277 -0
  264. package/dist/lifecycle-integration-test.d.ts +2 -0
  265. package/dist/lifecycle-integration-test.js +72 -0
  266. package/dist/local-model/download-manager.d.ts +59 -0
  267. package/dist/local-model/download-manager.js +517 -0
  268. package/dist/local-model/index.d.ts +109 -0
  269. package/dist/local-model/index.js +233 -0
  270. package/dist/local-model/llamacpp-provider.d.ts +95 -0
  271. package/dist/local-model/llamacpp-provider.js +379 -0
  272. package/dist/local-model/model-bridge.d.ts +48 -0
  273. package/dist/local-model/model-bridge.js +256 -0
  274. package/dist/local-model/model-registry.d.ts +47 -0
  275. package/dist/local-model/model-registry.js +188 -0
  276. package/dist/local-model/types.d.ts +49 -0
  277. package/dist/local-model/types.js +2 -0
  278. package/dist/logging/index.d.ts +3 -0
  279. package/dist/logging/index.js +3 -0
  280. package/dist/logging/logger.d.ts +56 -0
  281. package/dist/logging/logger.js +94 -0
  282. package/dist/machine/flows/bootstrap.d.ts +18 -0
  283. package/dist/machine/flows/bootstrap.js +119 -0
  284. package/dist/machine/flows/index.d.ts +6 -0
  285. package/dist/machine/flows/index.js +11 -0
  286. package/dist/machine/flows/spec.d.ts +17 -0
  287. package/dist/machine/flows/spec.js +176 -0
  288. package/dist/machine/flows/todo.d.ts +26 -0
  289. package/dist/machine/flows/todo.js +175 -0
  290. package/dist/machine/flows/tools.d.ts +8 -0
  291. package/dist/machine/flows/tools.js +119 -0
  292. package/dist/machine/flows/types.d.ts +33 -0
  293. package/dist/machine/flows/types.js +10 -0
  294. package/dist/machine/index.d.ts +8 -0
  295. package/dist/machine/index.js +9 -0
  296. package/dist/machine/registry.d.ts +34 -0
  297. package/dist/machine/registry.js +98 -0
  298. package/dist/machine/runner.d.ts +41 -0
  299. package/dist/machine/runner.js +177 -0
  300. package/dist/machine/types.d.ts +121 -0
  301. package/dist/machine/types.js +9 -0
  302. package/dist/mcp/bridge.d.ts +33 -0
  303. package/dist/mcp/bridge.js +99 -0
  304. package/dist/mcp/client.d.ts +37 -0
  305. package/dist/mcp/client.js +161 -0
  306. package/dist/mcp/config.d.ts +15 -0
  307. package/dist/mcp/config.js +85 -0
  308. package/dist/mcp/index.d.ts +7 -0
  309. package/dist/mcp/index.js +7 -0
  310. package/dist/mcp/install-manager.d.ts +31 -0
  311. package/dist/mcp/install-manager.js +158 -0
  312. package/dist/mcp/lifecycle.d.ts +41 -0
  313. package/dist/mcp/lifecycle.js +175 -0
  314. package/dist/mcp/process-transport.d.ts +21 -0
  315. package/dist/mcp/process-transport.js +59 -0
  316. package/dist/mcp/side-effect.d.ts +5 -0
  317. package/dist/mcp/side-effect.js +21 -0
  318. package/dist/mcp/system.d.ts +95 -0
  319. package/dist/mcp/system.js +279 -0
  320. package/dist/memory/companion-session.d.ts +22 -0
  321. package/dist/memory/companion-session.js +77 -0
  322. package/dist/memory/compression-boundary.d.ts +20 -0
  323. package/dist/memory/compression-boundary.js +40 -0
  324. package/dist/memory/conversation.d.ts +34 -0
  325. package/dist/memory/conversation.js +107 -0
  326. package/dist/memory/events.d.ts +42 -0
  327. package/dist/memory/events.js +56 -0
  328. package/dist/memory/index.d.ts +7 -0
  329. package/dist/memory/index.js +6 -0
  330. package/dist/memory/memory-store.d.ts +11 -0
  331. package/dist/memory/memory-store.js +51 -0
  332. package/dist/memory/session-allowlist.d.ts +11 -0
  333. package/dist/memory/session-allowlist.js +50 -0
  334. package/dist/memory/session.d.ts +48 -0
  335. package/dist/memory/session.js +275 -0
  336. package/dist/memory/stats.d.ts +23 -0
  337. package/dist/memory/stats.js +59 -0
  338. package/dist/memory/summary.d.ts +7 -0
  339. package/dist/memory/summary.js +23 -0
  340. package/dist/multimodal/index.d.ts +66 -0
  341. package/dist/multimodal/index.js +210 -0
  342. package/dist/orchestrator/index.d.ts +5 -0
  343. package/dist/orchestrator/index.js +4 -0
  344. package/dist/orchestrator/loop.d.ts +331 -0
  345. package/dist/orchestrator/loop.js +2443 -0
  346. package/dist/orchestrator/plan-store.d.ts +81 -0
  347. package/dist/orchestrator/plan-store.js +167 -0
  348. package/dist/orchestrator/planner.d.ts +20 -0
  349. package/dist/orchestrator/planner.js +34 -0
  350. package/dist/parser/index.d.ts +2 -0
  351. package/dist/parser/index.js +2 -0
  352. package/dist/parser/router.d.ts +30 -0
  353. package/dist/parser/router.js +61 -0
  354. package/dist/plugins/api.d.ts +39 -0
  355. package/dist/plugins/api.js +85 -0
  356. package/dist/plugins/define.d.ts +27 -0
  357. package/dist/plugins/define.js +32 -0
  358. package/dist/plugins/index.d.ts +9 -0
  359. package/dist/plugins/index.js +5 -0
  360. package/dist/plugins/loader.d.ts +39 -0
  361. package/dist/plugins/loader.js +128 -0
  362. package/dist/plugins/manager.d.ts +61 -0
  363. package/dist/plugins/manager.js +257 -0
  364. package/dist/plugins/types.d.ts +82 -0
  365. package/dist/plugins/types.js +2 -0
  366. package/dist/prompts/agents/code-reviewer.md +16 -0
  367. package/dist/prompts/agents/security-auditor.md +17 -0
  368. package/dist/prompts/agents/test-writer.md +15 -0
  369. package/dist/prompts/attention/attention.md +12 -0
  370. package/dist/prompts/environment/environment.md +18 -0
  371. package/dist/prompts/environment/feishu.md +107 -0
  372. package/dist/prompts/flows/bootstrap-confirm.md +14 -0
  373. package/dist/prompts/flows/bootstrap-identity.md +11 -0
  374. package/dist/prompts/flows/bootstrap-soul.md +19 -0
  375. package/dist/prompts/flows/bootstrap-user.md +11 -0
  376. package/dist/prompts/flows/spec-checklist.md +27 -0
  377. package/dist/prompts/flows/spec-define.md +64 -0
  378. package/dist/prompts/flows/spec-executing-checklist.md +15 -0
  379. package/dist/prompts/flows/spec-executing-tasks.md +15 -0
  380. package/dist/prompts/flows/spec-spec.md +51 -0
  381. package/dist/prompts/flows/spec-tasks.md +32 -0
  382. package/dist/prompts/flows/todo-execution.md +7 -0
  383. package/dist/prompts/flows/todo-planning.md +18 -0
  384. package/dist/prompts/framework/architecture.md +131 -0
  385. package/dist/prompts/identity/identity.md +2 -0
  386. package/dist/prompts/loader.d.ts +24 -0
  387. package/dist/prompts/loader.js +102 -0
  388. package/dist/prompts/loader.ts +119 -0
  389. package/dist/prompts/orchestration/summary.md +14 -0
  390. package/dist/prompts/persona/BOOTSTRAP.md +5 -0
  391. package/dist/prompts/persona/IDENTITY.md +16 -0
  392. package/dist/prompts/persona/PartnerMemory.md +5 -0
  393. package/dist/prompts/persona/PartnerSoul.md +7 -0
  394. package/dist/prompts/persona/SOUL.md +30 -0
  395. package/dist/prompts/persona/USER.md +16 -0
  396. package/dist/prompts/precise/analyze.md +23 -0
  397. package/dist/prompts/precise/persona.md +18 -0
  398. package/dist/prompts/safety/coding-standards.md +5 -0
  399. package/dist/prompts/safety/safety.md +4 -0
  400. package/dist/prompts/skills/code-review.md +4 -0
  401. package/dist/prompts/skills/debug.md +7 -0
  402. package/dist/prompts/skills/framework-reference.md +131 -0
  403. package/dist/prompts/skills/refactor.md +6 -0
  404. package/dist/prompts/summary.md +22 -0
  405. package/dist/prompts/tools/framework-capabilities.md +241 -0
  406. package/dist/prompts/tools/tool-rules.md +15 -0
  407. package/dist/provider/anthropic.d.ts +62 -0
  408. package/dist/provider/anthropic.js +361 -0
  409. package/dist/provider/catalog.d.ts +58 -0
  410. package/dist/provider/catalog.js +97 -0
  411. package/dist/provider/compatible.d.ts +89 -0
  412. package/dist/provider/compatible.js +328 -0
  413. package/dist/provider/config.d.ts +23 -0
  414. package/dist/provider/config.js +158 -0
  415. package/dist/provider/deepseek.d.ts +25 -0
  416. package/dist/provider/deepseek.js +37 -0
  417. package/dist/provider/fallback.d.ts +51 -0
  418. package/dist/provider/fallback.js +113 -0
  419. package/dist/provider/gemini.d.ts +27 -0
  420. package/dist/provider/gemini.js +170 -0
  421. package/dist/provider/index.d.ts +36 -0
  422. package/dist/provider/index.js +42 -0
  423. package/dist/provider/interface.d.ts +62 -0
  424. package/dist/provider/interface.js +2 -0
  425. package/dist/provider/local-config.d.ts +37 -0
  426. package/dist/provider/local-config.js +146 -0
  427. package/dist/provider/local.d.ts +45 -0
  428. package/dist/provider/local.js +248 -0
  429. package/dist/provider/manager.d.ts +67 -0
  430. package/dist/provider/manager.js +355 -0
  431. package/dist/provider/mimo.d.ts +19 -0
  432. package/dist/provider/mimo.js +30 -0
  433. package/dist/provider/minimax.d.ts +22 -0
  434. package/dist/provider/minimax.js +33 -0
  435. package/dist/provider/model-catalog-loader.d.ts +42 -0
  436. package/dist/provider/model-catalog-loader.js +89 -0
  437. package/dist/provider/model-channel-registry.d.ts +130 -0
  438. package/dist/provider/model-channel-registry.js +488 -0
  439. package/dist/provider/model-router.d.ts +60 -0
  440. package/dist/provider/model-router.js +87 -0
  441. package/dist/provider/openai.d.ts +54 -0
  442. package/dist/provider/openai.js +274 -0
  443. package/dist/provider/qwen.d.ts +19 -0
  444. package/dist/provider/qwen.js +30 -0
  445. package/dist/provider/resilient.d.ts +46 -0
  446. package/dist/provider/resilient.js +181 -0
  447. package/dist/provider/retry.d.ts +16 -0
  448. package/dist/provider/retry.js +78 -0
  449. package/dist/provider/router.d.ts +68 -0
  450. package/dist/provider/router.js +145 -0
  451. package/dist/provider/tool-args-recovery.d.ts +36 -0
  452. package/dist/provider/tool-args-recovery.js +91 -0
  453. package/dist/provider/user-id.d.ts +13 -0
  454. package/dist/provider/user-id.js +53 -0
  455. package/dist/provider/zhipu.d.ts +19 -0
  456. package/dist/provider/zhipu.js +32 -0
  457. package/dist/registry/agent.registry.d.ts +57 -0
  458. package/dist/registry/agent.registry.js +224 -0
  459. package/dist/registry/base.d.ts +54 -0
  460. package/dist/registry/base.js +99 -0
  461. package/dist/registry/channel.registry.d.ts +53 -0
  462. package/dist/registry/channel.registry.js +87 -0
  463. package/dist/registry/index.d.ts +9 -0
  464. package/dist/registry/index.js +10 -0
  465. package/dist/registry/mcp.registry.d.ts +2 -0
  466. package/dist/registry/mcp.registry.js +2 -0
  467. package/dist/registry/plugin.registry.d.ts +33 -0
  468. package/dist/registry/plugin.registry.js +66 -0
  469. package/dist/registry/provider.registry.d.ts +51 -0
  470. package/dist/registry/provider.registry.js +104 -0
  471. package/dist/registry/skill.registry.d.ts +33 -0
  472. package/dist/registry/skill.registry.js +95 -0
  473. package/dist/registry/tool.registry.d.ts +68 -0
  474. package/dist/registry/tool.registry.js +185 -0
  475. package/dist/repair/loop-guard.d.ts +98 -0
  476. package/dist/repair/loop-guard.js +217 -0
  477. package/dist/repair/scavenge.d.ts +19 -0
  478. package/dist/repair/scavenge.js +81 -0
  479. package/dist/repair/storm.d.ts +7 -0
  480. package/dist/repair/storm.js +7 -0
  481. package/dist/rollback/index.d.ts +5 -0
  482. package/dist/rollback/index.js +4 -0
  483. package/dist/rollback/rollback-tool.d.ts +13 -0
  484. package/dist/rollback/rollback-tool.js +167 -0
  485. package/dist/rollback/turn-recorder.d.ts +37 -0
  486. package/dist/rollback/turn-recorder.js +183 -0
  487. package/dist/rollback/turn-store.d.ts +29 -0
  488. package/dist/rollback/turn-store.js +114 -0
  489. package/dist/rollback/types.d.ts +51 -0
  490. package/dist/rollback/types.js +9 -0
  491. package/dist/runtime/config-center.d.ts +92 -0
  492. package/dist/runtime/config-center.js +467 -0
  493. package/dist/runtime/config-schema.d.ts +201 -0
  494. package/dist/runtime/config-schema.js +2 -0
  495. package/dist/runtime/defaults.d.ts +3 -0
  496. package/dist/runtime/defaults.js +146 -0
  497. package/dist/schedule/cron.d.ts +24 -0
  498. package/dist/schedule/cron.js +145 -0
  499. package/dist/schedule/index.d.ts +6 -0
  500. package/dist/schedule/index.js +4 -0
  501. package/dist/schedule/persistence.d.ts +33 -0
  502. package/dist/schedule/persistence.js +106 -0
  503. package/dist/schedule/scheduler.d.ts +85 -0
  504. package/dist/schedule/scheduler.js +630 -0
  505. package/dist/schedule/types.d.ts +185 -0
  506. package/dist/schedule/types.js +2 -0
  507. package/dist/setup/config.d.ts +189 -0
  508. package/dist/setup/config.js +253 -0
  509. package/dist/setup/index.d.ts +3 -0
  510. package/dist/setup/index.js +3 -0
  511. package/dist/setup/model-defaults.d.ts +13 -0
  512. package/dist/setup/model-defaults.js +87 -0
  513. package/dist/setup/persona-bootstrap.d.ts +42 -0
  514. package/dist/setup/persona-bootstrap.js +379 -0
  515. package/dist/setup/wizard.d.ts +32 -0
  516. package/dist/setup/wizard.js +384 -0
  517. package/dist/skills/index.d.ts +4 -0
  518. package/dist/skills/index.js +4 -0
  519. package/dist/skills/loader.d.ts +12 -0
  520. package/dist/skills/loader.js +83 -0
  521. package/dist/skills/registry.d.ts +2 -0
  522. package/dist/skills/registry.js +2 -0
  523. package/dist/skills/skill-tool.d.ts +20 -0
  524. package/dist/skills/skill-tool.js +49 -0
  525. package/dist/tools/archive.d.ts +17 -0
  526. package/dist/tools/archive.js +131 -0
  527. package/dist/tools/ask-user.d.ts +9 -0
  528. package/dist/tools/ask-user.js +62 -0
  529. package/dist/tools/background-registry.d.ts +45 -0
  530. package/dist/tools/background-registry.js +164 -0
  531. package/dist/tools/bash.d.ts +56 -0
  532. package/dist/tools/bash.js +391 -0
  533. package/dist/tools/bundle-registry.d.ts +42 -0
  534. package/dist/tools/bundle-registry.js +239 -0
  535. package/dist/tools/bundle-tools.d.ts +11 -0
  536. package/dist/tools/bundle-tools.js +168 -0
  537. package/dist/tools/channel-info.d.ts +5 -0
  538. package/dist/tools/channel-info.js +38 -0
  539. package/dist/tools/compression.d.ts +7 -0
  540. package/dist/tools/compression.js +21 -0
  541. package/dist/tools/config.d.ts +23 -0
  542. package/dist/tools/config.js +255 -0
  543. package/dist/tools/db-query.d.ts +12 -0
  544. package/dist/tools/db-query.js +107 -0
  545. package/dist/tools/diagnostics.d.ts +30 -0
  546. package/dist/tools/diagnostics.js +111 -0
  547. package/dist/tools/diff-channel.d.ts +9 -0
  548. package/dist/tools/diff-channel.js +17 -0
  549. package/dist/tools/diff-files.d.ts +17 -0
  550. package/dist/tools/diff-files.js +88 -0
  551. package/dist/tools/disk-usage.d.ts +34 -0
  552. package/dist/tools/disk-usage.js +258 -0
  553. package/dist/tools/edit.d.ts +30 -0
  554. package/dist/tools/edit.js +235 -0
  555. package/dist/tools/executor.d.ts +32 -0
  556. package/dist/tools/executor.js +66 -0
  557. package/dist/tools/file-tracker.d.ts +20 -0
  558. package/dist/tools/file-tracker.js +44 -0
  559. package/dist/tools/filtered-registry.d.ts +29 -0
  560. package/dist/tools/filtered-registry.js +50 -0
  561. package/dist/tools/flow.d.ts +10 -0
  562. package/dist/tools/flow.js +180 -0
  563. package/dist/tools/git-tool.d.ts +24 -0
  564. package/dist/tools/git-tool.js +113 -0
  565. package/dist/tools/glob.d.ts +29 -0
  566. package/dist/tools/glob.js +152 -0
  567. package/dist/tools/grep.d.ts +14 -0
  568. package/dist/tools/grep.js +325 -0
  569. package/dist/tools/http-request.d.ts +14 -0
  570. package/dist/tools/http-request.js +126 -0
  571. package/dist/tools/index.d.ts +43 -0
  572. package/dist/tools/index.js +76 -0
  573. package/dist/tools/injection-filter.d.ts +6 -0
  574. package/dist/tools/injection-filter.js +71 -0
  575. package/dist/tools/insert.d.ts +13 -0
  576. package/dist/tools/insert.js +61 -0
  577. package/dist/tools/interface.d.ts +30 -0
  578. package/dist/tools/interface.js +2 -0
  579. package/dist/tools/json-edit.d.ts +15 -0
  580. package/dist/tools/json-edit.js +122 -0
  581. package/dist/tools/multi-edit.d.ts +9 -0
  582. package/dist/tools/multi-edit.js +146 -0
  583. package/dist/tools/path-sandbox.d.ts +14 -0
  584. package/dist/tools/path-sandbox.js +60 -0
  585. package/dist/tools/process-tools.d.ts +15 -0
  586. package/dist/tools/process-tools.js +95 -0
  587. package/dist/tools/python-bridge/bridge.d.ts +24 -0
  588. package/dist/tools/python-bridge/bridge.js +39 -0
  589. package/dist/tools/python-bridge/executor.d.ts +6 -0
  590. package/dist/tools/python-bridge/executor.js +69 -0
  591. package/dist/tools/python-bridge/index.d.ts +5 -0
  592. package/dist/tools/python-bridge/index.js +4 -0
  593. package/dist/tools/python-bridge/parser.d.ts +21 -0
  594. package/dist/tools/python-bridge/parser.js +258 -0
  595. package/dist/tools/read.d.ts +16 -0
  596. package/dist/tools/read.js +276 -0
  597. package/dist/tools/registry.d.ts +2 -0
  598. package/dist/tools/registry.js +2 -0
  599. package/dist/tools/restart.d.ts +10 -0
  600. package/dist/tools/restart.js +46 -0
  601. package/dist/tools/result-buffer.d.ts +66 -0
  602. package/dist/tools/result-buffer.js +146 -0
  603. package/dist/tools/runtime-control.d.ts +163 -0
  604. package/dist/tools/runtime-control.js +1780 -0
  605. package/dist/tools/symbol-references.d.ts +5 -0
  606. package/dist/tools/symbol-references.js +331 -0
  607. package/dist/tools/system-info.d.ts +3 -0
  608. package/dist/tools/system-info.js +55 -0
  609. package/dist/tools/write.d.ts +18 -0
  610. package/dist/tools/write.js +118 -0
  611. package/dist/tools/xref/index.d.ts +25 -0
  612. package/dist/tools/xref/index.js +25 -0
  613. package/dist/tools/xref/manager.d.ts +85 -0
  614. package/dist/tools/xref/manager.js +948 -0
  615. package/dist/tools/xref/parser.d.ts +34 -0
  616. package/dist/tools/xref/parser.js +64 -0
  617. package/dist/tools/xref/regex-parser.d.ts +26 -0
  618. package/dist/tools/xref/regex-parser.js +446 -0
  619. package/dist/tools/xref/schema.d.ts +104 -0
  620. package/dist/tools/xref/schema.js +68 -0
  621. package/dist/tools/xref/ts-parser.d.ts +20 -0
  622. package/dist/tools/xref/ts-parser.js +403 -0
  623. package/dist/tools/xref/xref-build.d.ts +20 -0
  624. package/dist/tools/xref/xref-build.js +128 -0
  625. package/dist/tools/xref/xref-graph.d.ts +24 -0
  626. package/dist/tools/xref/xref-graph.js +88 -0
  627. package/dist/tools/xref/xref-query.d.ts +30 -0
  628. package/dist/tools/xref/xref-query.js +123 -0
  629. package/dist/types.d.ts +217 -0
  630. package/dist/types.js +2 -0
  631. package/dist/ui/assistant-message.d.ts +7 -0
  632. package/dist/ui/assistant-message.js +18 -0
  633. package/dist/ui/chat-log.d.ts +52 -0
  634. package/dist/ui/chat-log.js +246 -0
  635. package/dist/ui/command-registry.d.ts +73 -0
  636. package/dist/ui/command-registry.js +838 -0
  637. package/dist/ui/diff-component.d.ts +14 -0
  638. package/dist/ui/diff-component.js +42 -0
  639. package/dist/ui/hyperlink-markdown.d.ts +10 -0
  640. package/dist/ui/hyperlink-markdown.js +21 -0
  641. package/dist/ui/markdown-message.d.ts +10 -0
  642. package/dist/ui/markdown-message.js +16 -0
  643. package/dist/ui/osc8-hyperlinks.d.ts +4 -0
  644. package/dist/ui/osc8-hyperlinks.js +142 -0
  645. package/dist/ui/pi-tui-editor.d.ts +35 -0
  646. package/dist/ui/pi-tui-editor.js +79 -0
  647. package/dist/ui/slash-commands.d.ts +16 -0
  648. package/dist/ui/slash-commands.js +29 -0
  649. package/dist/ui/slash-panel.d.ts +54 -0
  650. package/dist/ui/slash-panel.js +199 -0
  651. package/dist/ui/theme.d.ts +120 -0
  652. package/dist/ui/theme.js +154 -0
  653. package/dist/ui/tool-display.d.ts +13 -0
  654. package/dist/ui/tool-display.js +85 -0
  655. package/dist/ui/tool-execution.d.ts +22 -0
  656. package/dist/ui/tool-execution.js +87 -0
  657. package/dist/ui/tui-formatters.d.ts +2 -0
  658. package/dist/ui/tui-formatters.js +145 -0
  659. package/dist/ui/user-message.d.ts +5 -0
  660. package/dist/ui/user-message.js +11 -0
  661. package/dist/update/check.d.ts +8 -0
  662. package/dist/update/check.js +28 -0
  663. package/dist/update/config.d.ts +6 -0
  664. package/dist/update/config.js +18 -0
  665. package/dist/update/download.d.ts +3 -0
  666. package/dist/update/download.js +27 -0
  667. package/dist/update/index.d.ts +6 -0
  668. package/dist/update/index.js +5 -0
  669. package/dist/update/install.d.ts +3 -0
  670. package/dist/update/install.js +33 -0
  671. package/dist/update/types.d.ts +16 -0
  672. package/dist/update/types.js +2 -0
  673. package/dist/utils/diff.d.ts +9 -0
  674. package/dist/utils/diff.js +45 -0
  675. package/dist/utils/misc.d.ts +12 -0
  676. package/dist/utils/misc.js +34 -0
  677. package/dist/world-engine/agent.d.ts +41 -0
  678. package/dist/world-engine/agent.js +385 -0
  679. package/dist/world-engine/index.d.ts +45 -0
  680. package/dist/world-engine/index.js +160 -0
  681. package/dist/world-engine/sim.d.ts +14 -0
  682. package/dist/world-engine/sim.js +120 -0
  683. package/dist/world-engine/store.d.ts +110 -0
  684. package/dist/world-engine/store.js +519 -0
  685. package/dist/world-engine/ticker.d.ts +37 -0
  686. package/dist/world-engine/ticker.js +214 -0
  687. package/dist/world-engine/tools.d.ts +6 -0
  688. package/dist/world-engine/tools.js +380 -0
  689. package/dist/world-engine/types.d.ts +202 -0
  690. package/dist/world-engine/types.js +56 -0
  691. package/docs/api.md +180 -0
  692. package/docs/architecture.md +206 -0
  693. package/docs/diagnostics/2026-06-08-config-prompt-guidance.md +67 -0
  694. package/docs/superpowers/plans/2026-06-08-global-bootstrap-mode.md +89 -0
  695. package/docs/superpowers/specs/2026-06-08-global-bootstrap-mode-design.md +174 -0
  696. package/docs/user-guide.md +226 -0
  697. package/package.json +63 -0
  698. package/plugins/example-greeter/index.js +55 -0
  699. package/plugins/example-greeter/plugin.json +8 -0
  700. package/pnpm-workspace.yaml +5 -0
  701. package/provider_arch.md +179 -0
  702. package/start-webui.sh +27 -0
  703. package/tsconfig.tsbuildinfo +1 -0
  704. package/webui-channel-design.md +789 -0
@@ -0,0 +1,202 @@
1
+ /** 环境 —— WorldTicker 独占写 */
2
+ export interface Ambient {
3
+ /** 世界内时间(ISO 字符串) */
4
+ time: string;
5
+ /** 时段(清晨/上午/下午/晚上…),由 time 推导。世界时间经 timeScale 折算、与现实时钟脱钩,模型无法凭数字判断昼夜,故显式给出 */
6
+ period: string;
7
+ weather: string;
8
+ season: string;
9
+ temperature: number;
10
+ }
11
+ /** 物品的空间相对位置:object 在 anchor 的 relation 处(如 花瓶 在 柜子 上) */
12
+ export interface ObjectPlacement {
13
+ object: string;
14
+ /** 关系:上/里/下/旁边/附近 等 */
15
+ relation: string;
16
+ /** 参照物(另一件物品或家具,如"柜子""床") */
17
+ anchor: string;
18
+ }
19
+ /** 地点 —— WorldAgent 增长/精修 */
20
+ export interface WorldLocation {
21
+ desc: string;
22
+ /** 地点内的物品 */
23
+ objects: string[];
24
+ /** 物品的相对摆放(花瓶在柜子上、柜子在床旁),由 WorldAgent 维护 */
25
+ layout?: ObjectPlacement[];
26
+ /** 临近可见地点 id(读取时只带一层摘要,不再展开——防无限递归) */
27
+ visible: string[];
28
+ /** 可移动到的地点 id */
29
+ connects: string[];
30
+ /** 主人(角色名,如"柔柔")。为空表示公共场所。主人在此地是主人不是客人 */
31
+ owner?: string;
32
+ }
33
+ /**
34
+ * NPC —— desc/persona/home/roaming/mobility 由 WorldAgent 创建后只读;
35
+ * location 由 WorldTicker 概率放置;state 由 WorldAgent 更新。
36
+ */
37
+ export interface WorldNpc {
38
+ desc: string;
39
+ /** 别名/其他称呼(昵称、头衔、全名等),如 徐青 的 aliases=[小青, 蛋糕店老板]。由 WorldAgent 维护 */
40
+ aliases?: string[];
41
+ /** 种族/物种(如"兔子""天马")——属性,非身份;同族不同个体各建各的记录。由 WorldAgent 维护 */
42
+ race?: string;
43
+ /** 认知留痕:这个 NPC 的身份是如何被逐渐了解的(初见→得知名字/性格/住处…)。由 WorldAgent 维护 */
44
+ note?: string;
45
+ /** 人设,喂给 NPC 回应生成 */
46
+ persona: string;
47
+ /** 常驻地点 id(可多个) */
48
+ home: string[];
49
+ /** 0..1,离开 home 去邻近地点的概率 */
50
+ roaming: number;
51
+ /** anchored=基本不动 / free=会到处逛 */
52
+ mobility: 'anchored' | 'free';
53
+ /** 当前实际位置(Ticker 写) */
54
+ location: string;
55
+ /** 当前状态描述(Agent 写) */
56
+ state: string;
57
+ }
58
+ /**
59
+ * 社会关系(有向边)。可连接任意角色:主角 / 陪伴角色 / NPC。
60
+ * 语义:"to 是 from 的 <type>"。对称关系(朋友/恋人)记一条即可;
61
+ * 有方向的(宠物:安吉尔是柔柔的宠物 → from=柔柔 to=安吉尔 type=宠物)方向有意义。
62
+ * 由 observe agent 依对话判断更新——不随时间自动变化。
63
+ */
64
+ export interface Relationship {
65
+ from: string;
66
+ to: string;
67
+ /** 关系类型:陌生人 / 朋友 / 好友 / 恋人 / 家人 / 宠物 / 主人 / 同事 ... */
68
+ type: string;
69
+ /** 可选补充说明(如"刚认识,还有些拘谨") */
70
+ note?: string;
71
+ }
72
+ /**
73
+ * 角色身份的动态补充(旁路随对话逐渐"认识"一个角色时积累的信息)。
74
+ * 以角色【规范名】为键(个体),与配置身份叠加。由 observe agent 依对话演变。
75
+ *
76
+ * 关键:race(种族)是"属性",不是"身份键"——同种族的不同个体各有各的记录,
77
+ * 绝不因同族而合并。别名(aliases)只统一"同一个体的多个称呼",从不跨个体。
78
+ */
79
+ export interface CharacterInfo {
80
+ /** 种族/物种(如"天马""独角兽")。属性,非身份键 */
81
+ race?: string;
82
+ /** 旁路学到的其他称呼(名字/昵称/外号/全名);与配置 aliases 取并集,都指同一个体 */
83
+ aliases?: string[];
84
+ /** 认知留痕:这个角色的身份是如何被逐渐了解的(初见只知种族 → 第N轮得知名字 → 后来知道昵称…) */
85
+ note?: string;
86
+ }
87
+ /**
88
+ * 声明式自定义动态类型:让 LLM 用受限的规则(而非代码)定义新的动态对象种类,
89
+ * 框架按规则演化。用于内置 snow/plant/timer 覆盖不了的东西(融化的冰淇淋、燃烧的蜡烛…)。
90
+ */
91
+ export interface KindSpec {
92
+ kind: string;
93
+ desc?: string;
94
+ /** amount 每"世界小时"的基础变化率(正=增长/积累,负=衰减/消耗) */
95
+ ratePerHour: number;
96
+ /** 温度影响:有效速率 += tempFactor × 当前温度(如冰淇淋 tempFactor<0,越热化越快) */
97
+ tempFactor?: number;
98
+ /** amount 上限,默认 100 */
99
+ max?: number;
100
+ /** amount ≤ 此值则移除该对象(如融化殆尽消失);不填=不自动移除 */
101
+ removeAtOrBelow?: number;
102
+ /** 初始 amount;不填时:衰减型默认满值,增长型默认 0 */
103
+ start?: number;
104
+ /** 阶段标签,按 amount 阈值从高到低匹配 */
105
+ phases?: Array<{
106
+ atOrAbove: number;
107
+ label: string;
108
+ }>;
109
+ }
110
+ /**
111
+ * 框架维护的动态对象:由 Ticker 按世界时间+环境自动演化(雪/植物/计时器等)。
112
+ * LLM 负责"造出来"(world_spawn_sim),框架负责演化。见 sim.ts。
113
+ */
114
+ export interface SimObject {
115
+ id: string;
116
+ /** 行为类型:snow / plant / timer / …(决定演化规则) */
117
+ kind: string;
118
+ /** 所在地点 id */
119
+ location: string;
120
+ desc?: string;
121
+ /** 通用动态量 0-100:雪量 / 植物成熟度 / 计时进度 */
122
+ amount: number;
123
+ /** 当前阶段标签:积雪/融化中;生长中/成熟;进行中/完成 */
124
+ phase?: string;
125
+ /** kind 相关参数(如 plant 的 multiHarvest/growthRate、timer 的 durationHours) */
126
+ params?: Record<string, unknown>;
127
+ }
128
+ /** 动态状态 —— WorldAgent 独占写 */
129
+ export interface WorldState {
130
+ /** 用户/主角当前所在地点 id */
131
+ location: string;
132
+ /** 陪伴角色(如柔柔)当前所在地点 id。narrate 服务于主 LLM,故以此作为"她的场景";多数时候与 location 相同(在一起) */
133
+ companionLocation: string;
134
+ /** 对基础环境的临时变更(如 "灯关了") */
135
+ sceneOverrides: Record<string, string>;
136
+ /** 最近发生的事(有上限,见 WorldStore.MAX_EVENTS) */
137
+ recentEvents: string[];
138
+ /** 主角/陪伴角色的动态身份补充(旁路随对话学到的种族/别名/认知留痕),以规范名为键,与配置身份叠加 */
139
+ characters: Record<string, CharacterInfo>;
140
+ }
141
+ export interface WorldMeta {
142
+ id: string;
143
+ name: string;
144
+ createdAt: string;
145
+ }
146
+ /** 一个完整的世界 */
147
+ export interface World {
148
+ meta: WorldMeta;
149
+ ambient: Ambient;
150
+ locations: Record<string, WorldLocation>;
151
+ npcs: Record<string, WorldNpc>;
152
+ /** 社会关系图(有向边),由 observe agent 依对话演变 */
153
+ relationships: Relationship[];
154
+ /** 框架维护的动态对象(雪/植物/计时器等) */
155
+ simObjects: Record<string, SimObject>;
156
+ /** LLM 声明的自定义动态类型(内置类型之外) */
157
+ customKinds: Record<string, KindSpec>;
158
+ state: WorldState;
159
+ }
160
+ /** readEnvironment() 的返回:当前地点的环境快照(供旁白化) */
161
+ export interface EnvironmentSnapshot {
162
+ /** 场景地点 = 陪伴角色所在地(narrate 服务于她) */
163
+ location: string;
164
+ /** 用户/主角当前所在地点(与 location 相同则两人同场) */
165
+ userLocation: string;
166
+ /** 用户/主角是否也在此场景(与陪伴角色同地) */
167
+ userPresent: boolean;
168
+ desc: string;
169
+ /** 地点主人(角色名);为空表示公共场所 */
170
+ owner?: string;
171
+ objects: string[];
172
+ /** 物品相对摆放(花瓶在柜子上…) */
173
+ layout: ObjectPlacement[];
174
+ /** 对基础环境的临时变更 */
175
+ sceneOverrides: Record<string, string>;
176
+ ambient: Ambient;
177
+ /** 临近可见地点(单层摘要) */
178
+ visible: Array<{
179
+ id: string;
180
+ desc: string;
181
+ }>;
182
+ /** 当前在场的 NPC(含其主标识 id) */
183
+ npcs: Array<WorldNpc & {
184
+ id: string;
185
+ }>;
186
+ /** 与当前场景相关的社会关系(涉及主角/陪伴/在场 NPC) */
187
+ relationships: Relationship[];
188
+ /** 主角/陪伴角色的动态身份补充(种族/别名/留痕),供旁白按规范名叠加渲染 */
189
+ characters: Record<string, CharacterInfo>;
190
+ /** 当前地点的动态对象(雪/植物/计时器等) */
191
+ simObjects: SimObject[];
192
+ /** 最近事件(截断) */
193
+ recentEvents: string[];
194
+ }
195
+ /**
196
+ * 由小时(0-23)推导"时段"标签。世界时间经 timeScale 折算、与现实时钟脱钩,
197
+ * 模型无法凭 "09:50" 这样的数字判断是上午还是晚上,故显式给出语义标签。
198
+ */
199
+ export declare function periodOf(hour: number): string;
200
+ /** 创建一个空世界(world 从对话中生长,初始无地点/NPC) */
201
+ export declare function createEmptyWorld(id: string, name: string, now: Date): World;
202
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,56 @@
1
+ // ============================================================
2
+ // world-engine / types — 世界数据结构
3
+ // ============================================================
4
+ //
5
+ // world.json 的 schema。世界从对话中"长出来":初始为空,
6
+ // 后置 WorldAgent 根据对话逐渐创建地点/物品/NPC。
7
+ //
8
+ // 写入者所有权(关键约束,由工具层强制):
9
+ // ambient → WorldTicker 独占
10
+ // locations → WorldAgent 创建/精修
11
+ // npcs 静态字段 → WorldAgent 创建后只读(desc/persona/home/roaming/mobility)
12
+ // npcs.location → WorldTicker 放置
13
+ // state.* → WorldAgent 独占(当前位置 / 场景变更 / 最近事件 / 社会关系等)
14
+ // ============================================================
15
+ /**
16
+ * 由小时(0-23)推导"时段"标签。世界时间经 timeScale 折算、与现实时钟脱钩,
17
+ * 模型无法凭 "09:50" 这样的数字判断是上午还是晚上,故显式给出语义标签。
18
+ */
19
+ export function periodOf(hour) {
20
+ if (hour < 5)
21
+ return '凌晨';
22
+ if (hour < 8)
23
+ return '清晨';
24
+ if (hour < 11)
25
+ return '上午';
26
+ if (hour < 13)
27
+ return '中午';
28
+ if (hour < 17)
29
+ return '下午';
30
+ if (hour < 19)
31
+ return '傍晚';
32
+ if (hour < 23)
33
+ return '晚上';
34
+ return '深夜';
35
+ }
36
+ /** 创建一个空世界(world 从对话中生长,初始无地点/NPC) */
37
+ export function createEmptyWorld(id, name, now) {
38
+ const iso = now.toISOString();
39
+ return {
40
+ meta: { id, name, createdAt: iso },
41
+ ambient: { time: iso, period: periodOf(now.getHours()), weather: '晴', season: '春', temperature: 20 },
42
+ locations: {},
43
+ npcs: {},
44
+ relationships: [],
45
+ simObjects: {},
46
+ customKinds: {},
47
+ state: {
48
+ location: '',
49
+ companionLocation: '',
50
+ sceneOverrides: {},
51
+ recentEvents: [],
52
+ characters: {},
53
+ },
54
+ };
55
+ }
56
+ //# sourceMappingURL=types.js.map
package/docs/api.md ADDED
@@ -0,0 +1,180 @@
1
+ # HTTP API Reference
2
+
3
+ The Agent framework provides a REST API server via `agent serve`.
4
+
5
+ ## Starting the Server
6
+
7
+ ```bash
8
+ agent serve --port 3000 --provider anthropic --model claude-sonnet-4-20250514
9
+ ```
10
+
11
+ Options:
12
+
13
+ | Flag | Default | Description |
14
+ |------|---------|-------------|
15
+ | `--port` | `3000` | Server port |
16
+ | `--provider` | auto | Provider type (anthropic/openai/deepseek/local/...) |
17
+ | `--model` | auto | Model name |
18
+ | `--max-turns` | `40` | Max turns per chat request |
19
+ | `--max-context` | `200000` | Max context tokens |
20
+
21
+ All endpoints are prefixed with `/api`.
22
+
23
+ ---
24
+
25
+ ## Health Check
26
+
27
+ ```
28
+ GET /api/health
29
+ ```
30
+
31
+ **Response:**
32
+
33
+ ```json
34
+ {
35
+ "status": "ok",
36
+ "version": "1.0.0"
37
+ }
38
+ ```
39
+
40
+ ---
41
+
42
+ ## Chat Completion
43
+
44
+ ```
45
+ POST /api/chat
46
+ ```
47
+
48
+ Execute a single prompt against the agent.
49
+
50
+ **Request Body:**
51
+
52
+ ```json
53
+ {
54
+ "message": "Refactor the database connection pool",
55
+ "sessionId": "20260524-182358-c11f"
56
+ }
57
+ ```
58
+
59
+ | Field | Type | Required | Description |
60
+ |-------|------|----------|-------------|
61
+ | `message` | string | yes | The prompt to execute |
62
+ | `sessionId` | string | no | Resume existing session; omit to create new |
63
+
64
+ **Response:**
65
+
66
+ ```json
67
+ {
68
+ "sessionId": "20260524-192358-a1b2",
69
+ "content": "Here's the refactored connection pool...",
70
+ "turns": 3,
71
+ "toolCalls": [
72
+ { "name": "read", "input": "src/db/pool.ts" },
73
+ { "name": "edit", "input": "src/db/pool.ts" }
74
+ ]
75
+ }
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Sessions
81
+
82
+ ### List Sessions
83
+
84
+ ```
85
+ GET /api/sessions
86
+ ```
87
+
88
+ Returns all sessions for the current project, sorted by creation time descending.
89
+
90
+ ### Create Session
91
+
92
+ ```
93
+ POST /api/sessions
94
+ ```
95
+
96
+ Creates a new session and returns its ID.
97
+
98
+ ### Get Session
99
+
100
+ ```
101
+ GET /api/sessions/:id
102
+ ```
103
+
104
+ Returns session metadata.
105
+
106
+ ### Delete Session
107
+
108
+ ```
109
+ DELETE /api/sessions/:id
110
+ ```
111
+
112
+ Permanently deletes a session and all its data.
113
+
114
+ ---
115
+
116
+ ## Tools
117
+
118
+ ```
119
+ GET /api/tools
120
+ ```
121
+
122
+ List all registered tools (built-in + MCP + plugin).
123
+
124
+ **Response:**
125
+
126
+ ```json
127
+ [
128
+ { "name": "read", "description": "Read file contents..." },
129
+ { "name": "bash", "description": "Execute shell commands..." },
130
+ { "name": "mcp__my-server__search", "description": "[MCP:my-server] Search documentation" }
131
+ ]
132
+ ```
133
+
134
+ ---
135
+
136
+ ## Skills
137
+
138
+ ```
139
+ GET /api/skills
140
+ ```
141
+
142
+ List all registered skills.
143
+
144
+ **Response:**
145
+
146
+ ```json
147
+ [
148
+ {
149
+ "name": "code-review",
150
+ "description": "Review code for bugs, style issues, and best practices",
151
+ "source": "builtin"
152
+ },
153
+ {
154
+ "name": "my-custom-skill",
155
+ "description": "A file-based skill",
156
+ "source": "file"
157
+ }
158
+ ]
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Error Responses
164
+
165
+ All endpoints return standard HTTP status codes:
166
+
167
+ | Status | Meaning |
168
+ |--------|---------|
169
+ | 200 | Success |
170
+ | 400 | Bad request (e.g., missing `message` field) |
171
+ | 404 | Resource not found (e.g., invalid session ID) |
172
+ | 500 | Internal server error |
173
+
174
+ Error bodies:
175
+
176
+ ```json
177
+ {
178
+ "error": "message is required"
179
+ }
180
+ ```
@@ -0,0 +1,206 @@
1
+ # System Architecture
2
+
3
+ ## Overview
4
+
5
+ Agent is a modular AI agent framework with multi-provider LLM support, hierarchical context management, tool execution, plugin/skill systems, and multi-agent collaboration. The core loop is: **compose context -> LLM inference -> parse output -> execute tools -> repeat**.
6
+
7
+ ```
8
+ ┌─────────────────────────────┐
9
+ │ Gateway Layer │
10
+ │ CLI / TUI / HTTP Server │
11
+ └──────────┬──────────────────┘
12
+
13
+ ┌──────────▼──────────────────┐
14
+ │ AgentLoop │
15
+ │ compose → LLM → parse → tool│
16
+ └──────────┬──────────────────┘
17
+
18
+ ┌────────────────────┼────────────────────┐
19
+ │ │ │
20
+ ┌─────▼─────┐ ┌──────▼──────┐ ┌──────▼──────┐
21
+ │ Context │ │ Provider │ │ Tools │
22
+ │ Composer │ │ (LLM) │ │ Read/Write │
23
+ │ L0-L4 │ │ 6 backends │ │ Edit/Bash │
24
+ └───────────┘ └─────────────┘ │ Glob/Skill │
25
+ │ MCP/Agent │
26
+ └─────────────┘
27
+ ```
28
+
29
+ ## Module Map
30
+
31
+ ### 1. Gateway Layer
32
+ Entry points that initialize the system and handle user interaction.
33
+
34
+ | Module | File | Role |
35
+ |--------|------|------|
36
+ | CLI | `gateway/cli.ts` | Commander-based CLI, interactive/repl mode, session management |
37
+ | TUI | `gateway/tui.ts` | Neo-blessed full-screen terminal UI |
38
+ | HTTP API | `gateway/server.ts` | Fastify HTTP server, 8 REST endpoints |
39
+ | Factory | `gateway/factory.ts` | Shared `createAgent()` init, eliminates duplication across gateways |
40
+
41
+ ### 2. Orchestrator
42
+ The core agent loop and planning system.
43
+
44
+ - **AgentLoop** (`orchestrator/loop.ts`): Main loop — compose context, call LLM, parse stream events, execute tools, repeat. Supports `normal` and `precise` scheduling modes.
45
+ - **LLMOrchestrator** (`orchestrator/planner.ts`): Plan-based orchestration — assesses task, creates plan, tracks progress.
46
+ - **PlanStore** (`orchestrator/plan-store.ts`): Plan CRUD with status tracking per step.
47
+
48
+ ### 3. Context System (L0-L4)
49
+
50
+ ```
51
+ Zone 1: Persistent identity/system prompts (always included)
52
+ Zone 2: Manifest index of available tools/skills/agents (always included)
53
+ Zone 3: Lazy-expand definitions (tools/skills/agents on demand)
54
+ Zone 4: Conversation history (most recent messages)
55
+ ```
56
+
57
+ | Component | File | Role |
58
+ |-----------|------|------|
59
+ | LayeredContextComposer | `context/composer.ts` | Assembles L0-L4 zones, supports normal/precise modes |
60
+ | CompressorOrchestrator | `context/compressor.ts` | Context compression via summarization |
61
+ | StructuredSummarizer | `context/compressor.ts` | LLM-powered structured summarization |
62
+ | TokenCounter | `context/tokenizer.ts` | Token counting via js-tiktoken |
63
+ | PromptBuilder | `context/prompt-builder.ts` | Assembles final prompt array from zones |
64
+ | ContextModes | `context/modes.ts` | Normal vs precise scheduling mode logic |
65
+
66
+ ### 4. Provider Layer
67
+ Unified LLM interface with 6 backend implementations.
68
+
69
+ - **Interface** (`provider/interface.ts`): `Provider` abstract with `createStream()`
70
+ - **AnthropicProvider**: Claude models via Anthropic SDK
71
+ - **OpenAIProvider**: GPT models via OpenAI SDK
72
+ - **DeepSeekProvider**: DeepSeek models
73
+ - **LocalProvider**: Local models (llama.cpp, ollama, etc.)
74
+ - **OpenAICompatibleProvider**: Groq, xAI, Mistral, OpenRouter, Moonshot
75
+ - **GeminiProvider**: Google Gemini via @google/genai SDK
76
+ - **ResilientProvider**: Retry (exponential backoff) + Circuit breaker (3-state) wrapper
77
+ - **FallbackProviderChain**: Sequential fallback across multiple providers
78
+ - **ProviderManager**: Auto-detection, config file loading, env var resolution
79
+ - **ModelCatalog**: Model metadata, capabilities, cost info
80
+
81
+ ### 5. Tool System
82
+ Registry-based tool execution with sandbox support.
83
+
84
+ | Tool | File | Description |
85
+ |------|------|-------------|
86
+ | ReadTool | `tools/read.ts` | Read files with line numbers, offset/limit |
87
+ | WriteTool | `tools/write.ts` | Write/create files, auto-create dirs |
88
+ | EditTool | `tools/edit.ts` | String replacement in files |
89
+ | BashTool | `tools/bash.ts` | Shell command execution with optional sandbox |
90
+ | GlobTool | `tools/glob.ts` | File pattern matching |
91
+ | SkillTool | `skills/skill-tool.ts` | Invoke registered skills |
92
+ | DelegateToAgentTool | `agents/delegate-tool.ts` | Delegate tasks to sub-agents |
93
+
94
+ - **ToolRegistry**: Register/lookup tools
95
+ - **FilteredToolRegistry**: Tool whitelisting for sub-agents
96
+ - **ToolExecutor**: Execute tool calls with error handling
97
+
98
+ ### 6. Memory & Persistence
99
+
100
+ | Component | File | Storage |
101
+ |-----------|------|---------|
102
+ | ConversationStore | `memory/conversation.ts` | JSONL, auto-truncation |
103
+ | EventStore | `memory/events.ts` | JSONL |
104
+ | StatsManager | `memory/stats.ts` | JSON |
105
+ | SummaryStore | `memory/summary.ts` | Markdown |
106
+ | SessionManager | `memory/session.ts` | Directory-based under `~/.agent/sessions/` |
107
+
108
+ ### 7. Sub-Agent System
109
+
110
+ - **AgentRegistry**: Register/lookup agent definitions
111
+ - **Built-in agents**: code-reviewer, security-auditor, test-writer
112
+ - **DelegateToAgentTool**: 3 collaboration modes
113
+ - `delegate`: Single sub-agent, single session
114
+ - `adversarial`: Two agents independently review, results merged
115
+ - `parallel`: Multiple agents via Promise.all
116
+ - **FilteredToolRegistry**: Per-agent tool whitelisting
117
+
118
+ ### 8. MCP (Model Context Protocol)
119
+
120
+ | Component | File | Description |
121
+ |-----------|------|-------------|
122
+ | MCPClient | `mcp/client.ts` | stdio + SSE transport, tool discovery |
123
+ | MCPBridge | `mcp/bridge.ts` | Multi-client bridge to ToolRegistry |
124
+ | MCPConfigLoader | `mcp/config.ts` | Load from `.agent/mcp.json` or `.mcp.json` |
125
+ | MCPServerManager | `mcp/lifecycle.ts` | Process lifecycle, auto-restart, health check |
126
+
127
+ ### 9. Plugin System
128
+
129
+ - **PluginManager**: discover -> load -> activate -> connect MCP -> register skills
130
+ - **PluginLoader**: Scan directories, load manifests, dynamic import
131
+ - **PluginApi**: registerTool/registerSkill/registerContextSource/registerMcpServer
132
+
133
+ ### 10. Skills
134
+
135
+ - **SkillRegistry**: Register/lookup, index/full-definitions generation
136
+ - **File-based skills**: Load from `~/.agent/skills/*.md` and `.agent/skills/*.md`
137
+ - **Hot-reload**: `fs.watch` with 500ms debounce on skill directories
138
+ - **Built-in skills**: code-review, debug, refactor
139
+
140
+ ### 11. Schedule System
141
+
142
+ - **HeartbeatScheduler**: Configurable heartbeat loop
143
+ - **Schedule types**: interval, cron (5-field), daily (HH:mm), fixed-time (ISO)
144
+ - **Persistence**: JSON storage at `~/.agent/scheduler/tasks.json`
145
+
146
+ ### 12. Lifecycle Management
147
+
148
+ - **ProcessManager**: spawn/stop/restart, health check (HTTP/TCP), crash auto-recovery
149
+ - **LocalModelManager**: Auto-detect local model backends (llama.cpp, ollama, etc.)
150
+ - **LifecycleSupervisor**: Signal handling, managed entity registration, graceful shutdown
151
+
152
+ ### 13. Other Modules
153
+
154
+ | Module | File | Description |
155
+ |--------|------|-------------|
156
+ | Parser | `parser/router.ts` | Routes stream events (text/thinking/tool_use) |
157
+ | Dependency | `dependency/` | Import graph analysis, change impact assessment |
158
+ | Logging | `logging/logger.ts` | ConsoleLogger, 5 levels, msg-first, JSON to stderr |
159
+ | Setup | `setup/` | ConfigManager + SetupWizard for first-run |
160
+ | Prompts | `prompts/` | System prompt templates (identity, safety, tools, orchestration) |
161
+
162
+ ## Data Flow
163
+
164
+ ```
165
+ User Input
166
+
167
+
168
+ AgentLoop.run()
169
+
170
+ ├─► ContextComposer.compose() → [Zone1..Zone4]
171
+ │ Zone1: Identity + safety prompts
172
+ │ Zone2: Tool/skill/agent index
173
+ │ Zone3: Expanded definitions
174
+ │ Zone4: Conversation history
175
+
176
+ ├─► Provider.createStream() → StreamEvent[]
177
+ │ ├─ TEXT → OutputHandler.onText()
178
+ │ ├─ THINKING → OutputHandler.onThinking()
179
+ │ ├─ TOOL_USE → OutputHandler.onToolUse()
180
+ │ │ └─ ToolExecutor.execute() → ToolResult
181
+ │ │ └─ OutputHandler.onToolResult()
182
+ │ ├─ USAGE → StatsManager.update()
183
+ │ └─ STOP → turn complete
184
+
185
+ ├─► ConversationStore.append() (persist)
186
+
187
+ └─► Repeat until maxTurns or STOP
188
+ ```
189
+
190
+ ## Error Recovery
191
+
192
+ ```
193
+ Provider chain:
194
+ Primary Provider
195
+ └─ ResilientProvider (retry 4×, exponential backoff)
196
+ └─ Circuit Breaker (5 failures → open 30s)
197
+ └─ FallbackProviderChain → next provider
198
+ ```
199
+
200
+ ## Key Design Decisions
201
+
202
+ 1. **msg-first logging**: `logger.info('message', { context })` — human-readable first, structured second
203
+ 2. **Async generator streams**: `async *createStream()` for unified streaming across all providers
204
+ 3. **Context zones over sliding window**: L0-L4 enables precise control over what stays vs. what compresses
205
+ 4. **Sub-agent isolation**: Each sub-agent gets its own session directory under `sub-agents/{name}-{id}/`
206
+ 5. **Plugin-host co-location**: Plugins load in-process via dynamic import (no sandbox isolation yet)