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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 孑遗
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.
package/README.md ADDED
@@ -0,0 +1,205 @@
1
+ # 🪻 Hyacinth (风信子)
2
+
3
+ **多 Provider AI Agent** — 可编程、可扩展、可信任的终端智能助手。
4
+
5
+ > TypeScript 6.0 · Node.js · 37 模块 · 82+ 工具 · 14+ LLM Provider
6
+
7
+ ---
8
+
9
+ ## 特性
10
+
11
+ ### 🤖 多模型支持
12
+ 14+ Provider 一键切换 — Anthropic、OpenAI、DeepSeek、Google Gemini、阿里通义千问、智谱 GLM、MiniMax、MiMo、Groq、xAI、Mistral、OpenRouter、Moonshot,以及本地模型(llama.cpp / Ollama)。
13
+
14
+ ### 🛠 工具系统(三层架构)
15
+ | 层 | 来源 | 数量 | 示例 |
16
+ |---|---|---|---|
17
+ | **内置工具** | 启动即注册 | 17+ | `read`、`write`、`bash`、`grep`、`edit`、`glob`、`http_request`、`git` |
18
+ | **运行时控制** | AgentLoop 注入 | 35+ | `switch_provider`、`spawn_sub_agent`、`toggle_tool`、`session` 管理 |
19
+ | **MCP 工具** | 动态桥接 | 动态 | `mcp__chrome-devtools__navigate` 等第三方工具 |
20
+
21
+ 所有工具通过统一注册表管理,支持热插拔、权限白名单、子 Agent 隔离。
22
+
23
+ ### 🔀 多渠道
24
+ | 通道 | 类型 | 状态 |
25
+ |---|---|---|
26
+ | **TUI** | 全屏终端界面 | ✅ 稳定 |
27
+ | **Feishu (飞书)** | 机器人 | ✅ 稳定 |
28
+ | **ClawBot** | 消息通道 | ✅ 可用 |
29
+ | **HTTP Webhook** | Webhook 接入 | ✅ 可用 |
30
+
31
+ ### 🤝 子 Agent 编排
32
+ - 委托式协作:主 Agent 将任务分发给子 Agent
33
+ - 对抗式协作:多 Agent 辩论验证
34
+ - 并行执行:同时处理多个子任务
35
+ - 独立工具白名单、独立上下文、独立 Session
36
+
37
+ ### 🔄 Flow 工作流
38
+ 内置 Flow 引擎驱动结构化任务执行:
39
+ - **Todo 模式** — 任务拆解 → 步骤定义 → 逐个执行
40
+ - **Spec 模式** — 需求规格 → 任务清单 → 验收检查
41
+
42
+ ### 🔌 插件 + MCP + Skill
43
+ - **插件系统**:`plugin.json` + `PluginApi`,可注册工具/Skill/MCP Server/渠道
44
+ - **MCP 协议**:桥接第三方工具生态,stdio/SSE 双传输,崩溃自动重连
45
+ - **Skill 系统**:可插拔的提示词模板,按需注入上下文
46
+
47
+ ### 🏗 基础设施
48
+ | 子系统 | 说明 |
49
+ |---|---|
50
+ | **MCP** | 第三方工具桥接,安全沙箱,危险命令黑名单 |
51
+ | **知识库** | SQLite FTS5 全文检索 + CJK bigram 分词 + Tag IDF 语义匹配 |
52
+ | **热重载** | 8 个 Watcher:MCP/Plugin/Prompt/Config/Tool/Skill/Agent/Channel |
53
+ | **调度器** | Interval / Cron / Daily / Fixed-time / Random 五种调度 |
54
+ | **回滚** | 按回合回滚文件更改 (git-driven) |
55
+ | **自修复** | Loop 死循环检测、风暴抑制、会话垃圾清理 |
56
+ | **自更新** | GitHub Release / 本地编译两种更新路径 |
57
+ | **守护进程** | 子进程退出 code 42 时自动拉起 |
58
+
59
+ ### 📦 注册表体系
60
+ 所有可扩展点共享同一基类 `GenericRegistry<T>`:
61
+
62
+ ```
63
+ ToolRegistry → 工具注册
64
+ SkillRegistry → 技能注册
65
+ AgentRegistry → 子 Agent 注册
66
+ PluginRegistry → 插件注册
67
+ ProviderRegistry → Provider 注册
68
+ ChannelRegistry → 渠道注册
69
+ MachineRegistry → Flow 注册
70
+ ```
71
+
72
+ ## 快速开始
73
+
74
+ ### 安装
75
+
76
+ ```bash
77
+ # 全局安装
78
+ npm install -g hyacinth-ai
79
+
80
+ # 或直接用 npx
81
+ npx hyacinth-ai
82
+ ```
83
+
84
+ ### 首次使用
85
+
86
+ ```bash
87
+ # 运行配置向导
88
+ hyacinth setup
89
+
90
+ # 启动 TUI 界面
91
+ hyacinth tui
92
+
93
+ # 直接对话
94
+ hyacinth "帮我检查一下这个目录"
95
+ ```
96
+
97
+ ### 配置 API Key
98
+
99
+ 创建 `.env` 文件:
100
+
101
+ ```env
102
+ ANTHROPIC_API_KEY=sk-ant-...
103
+ OPENAI_API_KEY=sk-...
104
+ DEEPSEEK_API_KEY=sk-...
105
+ GEMINI_API_KEY=...
106
+ ```
107
+
108
+ 或通过命令行:
109
+
110
+ ```bash
111
+ hyacinth --set ANTHROPIC_API_KEY=sk-ant-...
112
+ ```
113
+
114
+ ## 支持的 Provider
115
+
116
+ | Provider | 环境变量 | 默认模型 |
117
+ |---|---|---|
118
+ | Anthropic | `ANTHROPIC_API_KEY` | claude-sonnet-4-20250514 |
119
+ | OpenAI | `OPENAI_API_KEY` | gpt-4o |
120
+ | DeepSeek | `DEEPSEEK_API_KEY` | deepseek-V4 |
121
+ | Google Gemini | `GEMINI_API_KEY` | gemini-2.5-flash |
122
+ | 阿里通义千问 (Qwen) | `QWEN_API_KEY` | qwen-plus |
123
+ | 智谱 GLM (Zhipu) | `ZHIPU_API_KEY` | glm-4-plus |
124
+ | MiniMax | `MINIMAX_API_KEY` | minimax-text-01 |
125
+ | MiMo | `MIMO_API_KEY` | mimo |
126
+ | Groq | `GROQ_API_KEY` | llama-3.3-70b-versatile |
127
+ | xAI (Grok) | `XAI_API_KEY` | grok-2 |
128
+ | Mistral | `MISTRAL_API_KEY` | mistral-large-latest |
129
+ | OpenRouter | `OPENROUTER_API_KEY` | auto |
130
+ | Moonshot | `MOONSHOT_API_KEY` | moonshot-v1-8k |
131
+ | Local (llama.cpp) | — | 本地模型路径 |
132
+
133
+ ## CLI 命令
134
+
135
+ ```bash
136
+ hyacinth # 交互模式
137
+ hyacinth <prompt> # 单次执行
138
+ hyacinth --provider deepseek # 指定 Provider
139
+ hyacinth --tui # 全屏 TUI 模式
140
+ hyacinth serve # 启动 HTTP API Server
141
+ hyacinth setup # 配置向导
142
+ hyacinth doctor # 系统诊断
143
+ hyacinth session list # 会话管理
144
+ hyacinth config get/set # 配置管理
145
+ hyacinth model switch/list # 模型管理
146
+ hyacinth skill enable/disable # Skill 管理
147
+ hyacinth tool enable/disable # 工具管理
148
+ hyacinth update # 自更新
149
+ ```
150
+
151
+ ## 项目结构
152
+
153
+ ```
154
+ src/
155
+ ├── gateway/ # CLI/TUI/HTTP 入口,Agent 工厂装配
156
+ ├── channels/ # 多渠道消息处理(Feishu, Webhook)
157
+ ├── orchestrator/ # AgentLoop 主循环,LLM 编排
158
+ ├── agents/ # 子 Agent 系统(委托/对抗/并行)
159
+ ├── machine/ # 状态机 + Flow 工作流(Todo/Spec/Bootstrap)
160
+ ├── provider/ # 14+ LLM Provider 适配层
161
+ ├── context/ # 5-Zone 上下文组合器 + 压缩编排器
162
+ ├── prompts/ # 提示词模板管理
163
+ ├── tools/ # 内置工具 + 运行时控制 + 工具执行器
164
+ ├── registry/ # 泛型注册表基类(Tool/Skill/Agent/Plugin...)
165
+ ├── mcp/ # MCP 协议集成(Client/Bridge/ServerManager)
166
+ ├── knowledge/ # 知识库(FTS5 + Tag 检索)
167
+ ├── plugins/ # 插件系统
168
+ ├── skills/ # Skill 系统
169
+ ├── schedule/ # 调度任务系统
170
+ ├── memory/ # 会话/对话持久化(SQLite)
171
+ ├── hot-reload/ # 8 个热重载 Watcher
172
+ ├── rollback/ # 回合回滚系统
173
+ ├── repair/ # 自修复(死循环检测、风暴抑制)
174
+ ├── update/ # 自更新
175
+ ├── setup/ # 配置管理 + 安装向导
176
+ ├── ui/ # 命令注册表
177
+ ├── bypass/ # 旁路 Agent
178
+ ├── multimodal/ # 多模态(图片处理)
179
+ └── local-model/ # 本地模型管理
180
+ ```
181
+
182
+ ## 开发
183
+
184
+ ```bash
185
+ # 依赖安装
186
+ pnpm install
187
+
188
+ # 编译
189
+ pnpm build
190
+
191
+ # 开发模式(监听)
192
+ pnpm dev
193
+
194
+ # 测试
195
+ pnpm test
196
+
197
+ # Windows 启动
198
+ pnpm start:win
199
+ ```
200
+
201
+ ## 许可证
202
+
203
+ [MIT](./LICENSE)
204
+
205
+ Copyright © 2026 孑遗
package/commands.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "commands": [
3
+ {
4
+ "name": "model",
5
+ "description": "模型管理(在线/本地/设置/信息)",
6
+ "icon": "◆",
7
+ "category": "model",
8
+ "executeLocal": true,
9
+ "children": [
10
+ {
11
+ "name": "local",
12
+ "description": "管理本地模型...",
13
+ "icon": "💻",
14
+ "category": "model",
15
+ "children": [
16
+ { "name": "start", "description": "启动本地模型服务", "icon": "▶", "category": "model", "args": "<name>", "handler": "localModel.start" },
17
+ { "name": "stop", "description": "停止本地模型服务", "icon": "■", "category": "model", "args": "<name>", "handler": "localModel.stop" },
18
+ { "name": "status", "description": "查看本地模型状态", "icon": "ℹ", "category": "model", "handler": "localModel.status" },
19
+ { "name": "unregister", "description": "注销模型", "icon": "➖", "category": "model", "args": "<name>", "handler": "localModel.unregister" }
20
+ ]
21
+ }
22
+ ]
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,8 @@
1
+ import type { AgentDefinition } from '../types.js';
2
+ import type { AgentsConfig } from '../setup/config.js';
3
+ /**
4
+ * 创建内置子 Agent 定义(fallback 用)
5
+ * @param config 可选的 Agent 配置覆写,用于覆盖默认的 maxTurns、allowedTools、collaborationMode
6
+ */
7
+ export declare function createBuiltinAgents(config?: AgentsConfig): AgentDefinition[];
8
+ //# sourceMappingURL=builtins.d.ts.map
@@ -0,0 +1,50 @@
1
+ import { loadPrompt } from '../prompts/loader.js';
2
+ /**
3
+ * 创建内置子 Agent 定义(fallback 用)
4
+ * @param config 可选的 Agent 配置覆写,用于覆盖默认的 maxTurns、allowedTools、collaborationMode
5
+ */
6
+ export function createBuiltinAgents(config) {
7
+ const defaults = [
8
+ {
9
+ name: 'code-reviewer',
10
+ description: '代码审查专家,审查代码质量、可读性和最佳实践',
11
+ systemPrompt: loadPrompt('agents/code-reviewer'),
12
+ allowedTools: ['read', 'glob', 'grep'],
13
+ maxTurns: 10,
14
+ collaborationMode: 'adversarial',
15
+ sessionTtlMinutes: 10,
16
+ },
17
+ {
18
+ name: 'security-auditor',
19
+ description: '安全审计专家,检查代码中的安全漏洞和风险',
20
+ systemPrompt: loadPrompt('agents/security-auditor'),
21
+ allowedTools: ['read', 'glob', 'grep'],
22
+ maxTurns: 10,
23
+ collaborationMode: 'adversarial',
24
+ sessionTtlMinutes: 10,
25
+ },
26
+ {
27
+ name: 'test-writer',
28
+ description: '测试编写专家,为代码编写单元测试和集成测试',
29
+ systemPrompt: loadPrompt('agents/test-writer'),
30
+ allowedTools: ['read', 'write', 'glob', 'grep', 'bash'],
31
+ maxTurns: 15,
32
+ collaborationMode: 'delegate',
33
+ sessionTtlMinutes: 10,
34
+ },
35
+ ];
36
+ return defaults.map((agent) => {
37
+ const override = config?.[agent.name];
38
+ if (!override)
39
+ return agent;
40
+ const merged = { ...agent };
41
+ if (override.maxTurns !== undefined)
42
+ merged.maxTurns = override.maxTurns;
43
+ if (override.allowedTools !== undefined)
44
+ merged.allowedTools = override.allowedTools;
45
+ if (override.collaborationMode !== undefined)
46
+ merged.collaborationMode = override.collaborationMode;
47
+ return merged;
48
+ });
49
+ }
50
+ //# sourceMappingURL=builtins.js.map
@@ -0,0 +1,15 @@
1
+ import type { AgentDefinition } from '../types.js';
2
+ import type { AgentsConfig } from '../setup/config.js';
3
+ /**
4
+ * 加载 Agent 配置
5
+ *
6
+ * 加载顺序:
7
+ * 1. AGENTS_CONFIG_PATH 环境变量(最高优先级)
8
+ * 2. 项目级 .agent/agents.json
9
+ * 3. 全局 ~/.agent/agents.json
10
+ * 4. Fallback: 内置 builtins.ts 定义
11
+ *
12
+ * 合并策略:后加载的同名 agent 覆盖先加载的
13
+ */
14
+ export declare function loadAgentConfigs(cwd: string, configOverride?: AgentsConfig): Promise<AgentDefinition[]>;
15
+ //# sourceMappingURL=config-loader.d.ts.map
@@ -0,0 +1,75 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import os from 'node:os';
4
+ import { createBuiltinAgents } from './builtins.js';
5
+ import { loadPrompt } from '../prompts/loader.js';
6
+ /**
7
+ * 加载 Agent 配置
8
+ *
9
+ * 加载顺序:
10
+ * 1. AGENTS_CONFIG_PATH 环境变量(最高优先级)
11
+ * 2. 项目级 .agent/agents.json
12
+ * 3. 全局 ~/.agent/agents.json
13
+ * 4. Fallback: 内置 builtins.ts 定义
14
+ *
15
+ * 合并策略:后加载的同名 agent 覆盖先加载的
16
+ */
17
+ export async function loadAgentConfigs(cwd, configOverride) {
18
+ // 收集所有 agent 配置(name -> config)
19
+ const agentMap = new Map();
20
+ // 1. 加载全局 agents.json
21
+ const globalPath = path.join(os.homedir(), '.agent', 'agents.json');
22
+ await loadJsonConfig(globalPath, agentMap);
23
+ // 2. 加载项目级 agents.json(覆盖全局)
24
+ const projectPath = path.join(cwd, '.agent', 'agents.json');
25
+ await loadJsonConfig(projectPath, agentMap);
26
+ // 3. 环境变量覆盖路径(最高优先级)
27
+ const envPath = process.env['AGENTS_CONFIG_PATH'];
28
+ if (envPath) {
29
+ await loadJsonConfig(envPath, agentMap);
30
+ }
31
+ // 4. 如果没有任何配置,fallback 到内置
32
+ if (agentMap.size === 0) {
33
+ return createBuiltinAgents(configOverride);
34
+ }
35
+ // 5. 将配置转为 AgentDefinition
36
+ const agents = [];
37
+ for (const [name, entry] of agentMap) {
38
+ let systemPrompt;
39
+ try {
40
+ systemPrompt = loadPrompt(entry.promptFile);
41
+ }
42
+ catch {
43
+ // 提示词文件不存在,跳过该 agent
44
+ continue;
45
+ }
46
+ // 应用 configOverride(config.json 中的 agents 覆写)
47
+ const override = configOverride?.[name];
48
+ agents.push({
49
+ name,
50
+ description: entry.description,
51
+ systemPrompt,
52
+ allowedTools: override?.allowedTools ?? entry.allowedTools,
53
+ maxTurns: override?.maxTurns ?? entry.maxTurns,
54
+ collaborationMode: override?.collaborationMode ?? entry.collaborationMode,
55
+ modelPreference: entry.modelPreference,
56
+ sessionTtlMinutes: override?.sessionTtlMinutes ?? entry.sessionTtlMinutes,
57
+ });
58
+ }
59
+ return agents;
60
+ }
61
+ async function loadJsonConfig(filePath, agentMap) {
62
+ try {
63
+ const content = await fs.readFile(filePath, 'utf-8');
64
+ const config = JSON.parse(content);
65
+ if (Array.isArray(config.agents)) {
66
+ for (const entry of config.agents) {
67
+ agentMap.set(entry.name, entry);
68
+ }
69
+ }
70
+ }
71
+ catch {
72
+ // 文件不存在或解析失败,忽略
73
+ }
74
+ }
75
+ //# sourceMappingURL=config-loader.js.map
@@ -0,0 +1,109 @@
1
+ import type { Tool } from '../tools/interface.js';
2
+ import type { AgentDefinition } from '../types.js';
3
+ import type { AgentRegistry } from './registry.js';
4
+ import { AgentLoop } from '../orchestrator/loop.js';
5
+ import { ModelRouter } from '../provider/model-router.js';
6
+ import type { Provider } from '../provider/interface.js';
7
+ import type { ToolRegistry } from '../tools/registry.js';
8
+ import type { DependencyAnalyzer } from '../dependency/analyzer.js';
9
+ /** 子 Agent 进度事件 */
10
+ export interface ProgressEvent {
11
+ type: 'text' | 'tool_call' | 'tool_result' | 'turn' | 'status';
12
+ message: string;
13
+ timestamp: number;
14
+ }
15
+ /** 上下文传递给子 Agent 的参数 */
16
+ export interface SubAgentContext {
17
+ modelRouter: ModelRouter;
18
+ toolRegistry: ToolRegistry;
19
+ sessionDir: string;
20
+ maxContextTokens: number;
21
+ dependencyAnalyzer?: DependencyAnalyzer;
22
+ /** 子 Agent 执行进度回调 */
23
+ onProgress?: (event: ProgressEvent) => void;
24
+ /** 文件访问沙箱根目录(设置后子 Agent 的 read/write/edit/grep/glob 被限制在此目录下,bash 被禁用) */
25
+ sandboxRoot?: string;
26
+ /** 创建带独立 userId 的 Provider(子Agent 之间 + 与主Agent 的 KVCache 隔离) */
27
+ createSubProvider(userId: string): Provider;
28
+ }
29
+ /** 注册正在运行的子 Agent loop */
30
+ export declare function registerRunningLoop(instanceId: string, loop: AgentLoop): void;
31
+ /** 注销已完成的子 Agent loop */
32
+ export declare function unregisterRunningLoop(instanceId: string): void;
33
+ /** 中断指定子 Agent */
34
+ export declare function interruptSubAgentLoop(instanceId: string): boolean;
35
+ /** 销毁子 Agent session 目录(清理 conversation/events/stats/meta) */
36
+ export declare function destroySubAgentSession(parentSessionDir: string, instanceId: string): Promise<boolean>;
37
+ /**
38
+ * 创建(或复用)子 Agent 的 AgentLoop 实例。
39
+ *
40
+ * session 按 instanceId 固定目录,多次 delegate 复用同一 session,
41
+ * 子 Agent 保留完整对话历史,无需每次重新交代背景。
42
+ *
43
+ * TTL 机制:若距离上次调用超过 sessionTtlMinutes(默认 10 分钟),
44
+ * 自动清理旧 session 并重建。
45
+ */
46
+ export declare function createSubAgentLoop(agentDef: AgentDefinition, task: string, parentContext: SubAgentContext): Promise<{
47
+ loop: AgentLoop;
48
+ sessionDir: string;
49
+ isNew: boolean;
50
+ }>;
51
+ /**
52
+ * DelegateToAgentTool — 主 Agent 通过此工具委托任务给子 Agent
53
+ */
54
+ export declare class DelegateToAgentTool implements Tool {
55
+ name: string;
56
+ description: string;
57
+ inputSchema: {
58
+ type: "object";
59
+ properties: {
60
+ agent_name: {
61
+ type: "string";
62
+ description: string;
63
+ };
64
+ instance_id: {
65
+ type: "string";
66
+ description: string;
67
+ };
68
+ task: {
69
+ type: "string";
70
+ description: string;
71
+ };
72
+ context: {
73
+ type: "string";
74
+ description: string;
75
+ };
76
+ };
77
+ required: string[];
78
+ };
79
+ private agentRegistry;
80
+ private parentContext;
81
+ constructor(agentRegistry: AgentRegistry, parentContext: SubAgentContext);
82
+ execute(args: Record<string, unknown>): Promise<string>;
83
+ /**
84
+ * 委托模式:单个子 Agent 执行任务
85
+ */
86
+ private executeDelegate;
87
+ /**
88
+ * 对抗审查模式:两个不同角色的子 Agent 独立审查,综合意见
89
+ */
90
+ private executeAdversarial;
91
+ /**
92
+ * 并行分工模式:多个子 Agent 并行执行同一任务的不同方面,汇总结果
93
+ */
94
+ private executeParallel;
95
+ /**
96
+ * 收集子 Agent 的对话摘要
97
+ */
98
+ private collectConversationSummary;
99
+ /**
100
+ * 收集子 Agent 执行的结构化结果
101
+ * session 目录按 instanceId 固定,直接读取,无需遍历查找
102
+ */
103
+ private collectAgentResult;
104
+ /**
105
+ * 收集子 Agent 执行结果
106
+ */
107
+ private collectResult;
108
+ }
109
+ //# sourceMappingURL=delegate-tool.d.ts.map