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,67 @@
1
+ # 配įŊŽæį¤ēč¯åĸžåŧē莰åŊ•
2
+
3
+ æ—Ĩ期: 2026-06-08
4
+
5
+ ## čƒŒæ™¯
6
+
7
+ 䚋前在 release įŽ¯åĸƒä¸­å°č¯•莊 Agent 配įŊŽéŖžäšĻ渠道æ—ļīŧŒæ¨Ąåž‹æ˛Ąæœ‰æ˜ŽįĄŽįŸĨ道åē”č¯ĨäŋŽæ”šå“Ēä¸Ē配įŊŽæ–‡äģļīŧŒäšŸåŽšæ˜“æŠŠæ¸ é“é…įŊŽåŊ“成晎通čŋčĄŒæ—ļ配įŊŽå¤„į†ã€‚
8
+
9
+ 排æŸĨåŽįĄŽčŽ¤īŧš
10
+
11
+ - `src/prompts/environment/feishu.md` 厞įģåŒ…åĢéŖžäšĻ配įŊŽįģ†čŠ‚īŧŒäŊ†åŽƒä¸æ˜¯éģ˜čŽ¤æŗ¨å…Ĩ上下文。
12
+ - `src/prompts/tools/framework-capabilities.md` 是éģ˜čŽ¤æŗ¨å…Ĩįš„æĄ†æžļčƒŊ力提į¤ēč¯īŧŒé€‚åˆæ”žé€šį”¨é…įŊŽæŒ‡å¯ŧ。
13
+ - `src/prompts/environment/environment.md` 是éģ˜čŽ¤įŽ¯åĸƒæŽĩīŧŒé€‚合攞配įŊŽæ–‡äģļčˇ¯åž„į´ĸåŧ•。
14
+
15
+ ## äŋŽæ”šå†…厚
16
+
17
+ ### framework-capabilities.md
18
+
19
+ 文äģļ: `src/prompts/tools/framework-capabilities.md`
20
+
21
+ 新åĸžäē†ä¸¤įąģ配įŊŽæŒ‡å¯ŧīŧš
22
+
23
+ 1. čŋčĄŒæ—ļ配įŊŽ
24
+ - æ˜ŽįĄŽ `get_config` / `update_config` / `reset_config` / `config_schema` 适合äŋŽæ”š RuntimeConfigCenter åˇ˛æ”¯æŒįš„čˇ¯åž„ã€‚
25
+ - čĄĨå……å¸¸č§čˇ¯åž„īŧŒäž‹åĻ‚ `provider.active`、`provider.<provider>.model`、`session.maxTurns`、`session.maxContext`、`safety.requireConfirmation`、`tools.disabled`、`skills.disabled`、`models.assessment`、`logging.level`、`hotReload.*` į­‰ã€‚
26
+
27
+ 2. éĄšį›Žæ–‡äģļ配įŊŽ
28
+ - æ˜ŽįĄŽéƒ¨åˆ†é…įŊŽä¸åē”äŧ˜å…ˆäŊŋᔍ `update_config`īŧŒč€Œåē”č¯ģ取åšļå†™å›žéĄšį›Ž `.agent/` ä¸‹įš„ JSON 文äģļ。
29
+ - čĻ†į›–æ¸ é“ã€MCP、åˇĨå…ˇåŒ…ã€Provider 元数捎、æœŦåœ°æ¨Ąåž‹ã€æœŦ地 Provider、子 Agent、čēĢäģŊ提į¤ēč¯į­‰é…įŊŽå…ĨåŖã€‚
30
+ - ä¸ē渠道配įŊŽåĸžåŠ ä¸“é—¨č¯´æ˜ŽīŧŒæ˜ŽįĄŽéŖžäšĻ/Lark į­‰æ¸ é“å†™å…ĨéĄšį›Žįē§ `.agent/config.json` įš„ `channels` 字æŽĩ。
31
+ - åŧē调äŋŽæ”š JSON æ—ļåŋ…éĄģäŋį•™åˇ˛æœ‰å­—æŽĩīŧŒåĒ合åšļį”¨æˆˇčĻæą‚įš„éƒ¨åˆ†ã€‚
32
+
33
+ ### environment.md
34
+
35
+ 文äģļ: `src/prompts/environment/environment.md`
36
+
37
+ 新åĸžéģ˜čŽ¤įŽ¯åĸƒčˇ¯åž„į´ĸåŧ•īŧš
38
+
39
+ - å…¨åą€čēĢäģŊ提į¤ēč¯: `~/.agent/prompts/persona/*.md`
40
+ - 渠道配įŊŽ: éĄšį›Žįē§ `{{cwd}}/.agent/config.json` įš„ `channels` 字æŽĩ
41
+ - MCP 配įŊŽ: `{{cwd}}/.agent/mcp.json`
42
+ - åˇĨå…ˇåŒ…é…įŊŽ: `{{cwd}}/.agent/tool-bundles.json`
43
+ - Provider 元数捎: `{{cwd}}/.agent/providers.json`
44
+ - æœŦåœ°æ¨Ąåž‹é…įŊŽ: `{{cwd}}/.agent/models.json` 或 `{{cwd}}/.agent/local-models.json`
45
+
46
+ ## éĸ„期效果
47
+
48
+ æ¨Ąåž‹åœ¨į”¨æˆˇčĻæą‚äŋŽæ”šæĄ†æžļ莞įŊŽæ—ļīŧŒåē”å…ˆåˆ¤æ–­į›Žæ ‡åąžäēŽå“Ēįąģ配įŊŽīŧš
49
+
50
+ - åĻ‚æžœčˇ¯åž„å­˜åœ¨äēŽ `config_schema`īŧŒäŧ˜å…ˆäŊŋᔍ `update_config`。
51
+ - åĻ‚æžœæ˜¯æ¸ é“ã€MCP、åˇĨå…ˇåŒ…ã€Provider 元数捎、æœŦåœ°æ¨Ąåž‹į­‰éĄšį›Žæ–‡äģļ配įŊŽīŧŒåˆ™äŊŋᔍ `read` + `write` äŋŽæ”šå¯šåē” JSON。
52
+ - 配įŊŽéŖžäšĻ/Lark 渠道æ—ļīŧŒäŧ˜å…ˆäŋŽæ”šåŊ“前åˇĨäŊœåŒē `.agent/config.json` įš„ `channels.feishu`īŧŒä¸čρ蝝ᔍ `update_config`。
53
+ - äŋŽæ”šå‰åē”告įŸĨį”¨æˆˇåŊ“前å€ŧå’ŒčŽĄåˆ’æ”šæˆįš„å€ŧīŧŒä¸”不å甿ŠŠ API Key 写å…Ĩä¸åˆé€‚įš„äŊįŊŽã€‚
54
+
55
+ ## énj蝁
56
+
57
+ åˇ˛æ‰§čĄŒīŧš
58
+
59
+ ```powershell
60
+ corepack pnpm run build
61
+ ```
62
+
63
+ į쓿žœīŧš
64
+
65
+ - TypeScript įŧ–č¯‘é€ščŋ‡ã€‚
66
+ - `src/prompts` 厞同æ­Ĩ复åˆļ到 `dist/prompts`。
67
+ - åˇ˛įĄŽčŽ¤ `dist/prompts/tools/framework-capabilities.md` 中包åĢ新åĸžįš„čŋčĄŒæ—ļ配įŊŽã€éĄšį›Žæ–‡äģļ配įŊŽå’Œæ¸ é“配įŊŽč¯´æ˜Žã€‚
@@ -0,0 +1,89 @@
1
+ # Global Bootstrap Mode Implementation Plan
2
+
3
+ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Goal:** Replace session/file-deletion bootstrap with a global first-run `bootstrap` mode that writes persona files once and then stops injecting.
6
+
7
+ **Architecture:** Reuse the existing `ModeManager` lifecycle and Zone 5 `mode-injection` path. Add a global persona bootstrap store, a `bootstrap` mode, and a dedicated `bootstrap_mark` tool; startup code activates the mode only when global persona state is incomplete.
8
+
9
+ **Tech Stack:** TypeScript, Node.js ESM, Vitest, existing `ModeDefinition`, `ConfigManager`, and prompt loader patterns.
10
+
11
+ ---
12
+
13
+ ### Task 1: Global Persona Store
14
+
15
+ **Files:**
16
+ - Modify: `src/setup/persona-bootstrap.ts`
17
+ - Test: `src/setup/persona-bootstrap.test.ts`
18
+
19
+ - [ ] Add tests for global directory resolution, template creation, validation, and completion state.
20
+ - [ ] Refactor `DEFAULT_PERSONA_DIR` to resolve under `~/.agent/prompts/persona` by default.
21
+ - [ ] Add `ensureGlobalPersonaFiles()`, `validatePersonaFiles()`, `isBootstrapComplete()`, and `markBootstrapComplete()`.
22
+ - [ ] Keep compatibility wrappers for existing callers where practical.
23
+ - [ ] Run `pnpm test src/setup/persona-bootstrap.test.ts`.
24
+
25
+ ### Task 2: Bootstrap Mode
26
+
27
+ **Files:**
28
+ - Create: `src/modes/bootstrap.mode.ts`
29
+ - Modify: `src/modes/index.ts`
30
+ - Create: `src/prompts/modes/bootstrap.md`
31
+ - Test: `src/modes/bootstrap.mode.test.ts`
32
+
33
+ - [ ] Add a failing test that `bootstrap` renders mode guidance and stays active before completion.
34
+ - [ ] Add a failing test that `bootstrap_mark({ action: "complete" })` only completes after validation passes.
35
+ - [ ] Implement `createBootstrapMode(personaDir)` using the existing `ModeDefinition` interface.
36
+ - [ ] Add prompt instructions for natural first-run identity collection and persona file writing.
37
+ - [ ] Export the mode from `src/modes/index.ts`.
38
+ - [ ] Run `pnpm test src/modes/bootstrap.mode.test.ts`.
39
+
40
+ ### Task 3: Bootstrap Mark Tool
41
+
42
+ **Files:**
43
+ - Create: `src/tools/bootstrap.ts`
44
+ - Modify: `src/gateway/factory.ts`
45
+ - Test: `src/tools/bootstrap.test.ts`
46
+
47
+ - [ ] Add a failing test for `bootstrap_mark` returning progress and completion errors.
48
+ - [ ] Implement a small tool that delegates `progress` and `complete` actions to `ModeManager.dispatchToolCall()`.
49
+ - [ ] Register `bootstrap_mark` in `createAgent()` after `ModeManager` exists.
50
+ - [ ] Ensure `bootstrap_mark` is available during bootstrap even when tool bundles are active.
51
+ - [ ] Run `pnpm test src/tools/bootstrap.test.ts`.
52
+
53
+ ### Task 4: Startup Integration
54
+
55
+ **Files:**
56
+ - Modify: `src/gateway/cli.ts`
57
+ - Modify: `src/gateway/tui.ts`
58
+ - Modify: `src/gateway/factory.ts`
59
+ - Modify: `src/orchestrator/loop.ts`
60
+ - Test: focused integration/unit tests if existing gateway tests permit
61
+
62
+ - [ ] Ensure both TUI and non-TUI paths call the same global persona status helpers.
63
+ - [ ] Register `bootstrap` mode in `createAgent()` and auto-activate it when global state is incomplete.
64
+ - [ ] Trigger an automatic first model turn when bootstrap is active.
65
+ - [ ] Remove reliance on deleting `BOOTSTRAP.md` as the completion signal.
66
+ - [ ] Keep `startBootstrap()` as a compatibility wrapper around the new active mode if needed.
67
+ - [ ] Run `pnpm test` or the narrowest available test set.
68
+
69
+ ### Task 5: Prompt Loading and Backward Compatibility
70
+
71
+ **Files:**
72
+ - Modify: `src/context/section-resolver.ts`
73
+ - Modify: `src/prompts/persona/BOOTSTRAP.md`
74
+ - Test: covered by previous tests or add resolver test if available
75
+
76
+ - [ ] Prefer project persona override, then global persona files, then built-in templates for `SOUL/IDENTITY/USER`.
77
+ - [ ] Stop using `persona/BOOTSTRAP.md` as a stateful bootstrap prompt.
78
+ - [ ] Turn `BOOTSTRAP.md` into a legacy note or leave it unused for compatibility.
79
+ - [ ] Verify compose output includes bootstrap only through `mode-injection`.
80
+
81
+ ### Task 6: Final Verification
82
+
83
+ **Files:**
84
+ - All changed files
85
+
86
+ - [ ] Run `pnpm test`.
87
+ - [ ] Run `pnpm build`.
88
+ - [ ] Inspect changed files for accidental secrets or home-directory writes beyond intended global persona defaults.
89
+ - [ ] Summarize final behavior and any test gaps.
@@ -0,0 +1,174 @@
1
+ # Global Bootstrap Mode Design
2
+
3
+ ## Why
4
+
5
+ The first-run identity bootstrap is a staged task, but the current implementation treats it like a conditional prompt plus a file-deletion signal. This makes it easy to retrigger per session, skip in some startup paths, or complete without verifying that persona files were actually written.
6
+
7
+ ## What Changes
8
+
9
+ - Add a dedicated `bootstrap` mode alongside `plan`, `spec`, and `todo`.
10
+ - Store bootstrap state globally, not in a session directory.
11
+ - Move bootstrap instructions from `persona/BOOTSTRAP.md` semantics into a mode prompt such as `prompts/modes/bootstrap.md`.
12
+ - Trigger bootstrap automatically only when the global persona state is incomplete.
13
+ - Complete bootstrap only after required global persona files are written and validated.
14
+ - Stop injecting bootstrap guidance immediately after completion.
15
+
16
+ ## Scope
17
+
18
+ In scope:
19
+
20
+ - Global persona bootstrap lifecycle.
21
+ - Startup detection and automatic activation.
22
+ - Mode prompt injection through the existing `mode-injection` Zone 5 path.
23
+ - Completion state persisted in global persona state.
24
+ - TUI and non-TUI startup consistency.
25
+
26
+ Out of scope:
27
+
28
+ - Provider installation and API key setup.
29
+ - Changing normal `plan`, `spec`, or `todo` behavior.
30
+ - Project-specific persona profiles beyond optional future override support.
31
+
32
+ ## Storage
33
+
34
+ Use a global persona directory as the default identity source:
35
+
36
+ ```text
37
+ ~/.agent/
38
+ prompts/
39
+ persona/
40
+ SOUL.md
41
+ IDENTITY.md
42
+ USER.md
43
+ .state/
44
+ persona-state.json
45
+ ```
46
+
47
+ The project-level `.agent/prompts/persona` directory may remain as an override mechanism, but first-run identity bootstrap writes to the global persona directory.
48
+
49
+ The state file records at least:
50
+
51
+ ```json
52
+ {
53
+ "version": 1,
54
+ "bootstrapSeededAt": "ISO timestamp",
55
+ "setupCompletedAt": "ISO timestamp"
56
+ }
57
+ ```
58
+
59
+ `setupCompletedAt` is the source of truth for completion. Deleting a prompt file is not a completion signal.
60
+
61
+ ## Startup Flow
62
+
63
+ 1. Load normal install/config state.
64
+ 2. Resolve the global persona directory.
65
+ 3. Ensure global `SOUL.md`, `IDENTITY.md`, and `USER.md` exist.
66
+ 4. Read global persona state.
67
+ 5. If `setupCompletedAt` exists, start normally.
68
+ 6. If `setupCompletedAt` is missing, activate `bootstrap` mode before the first model turn.
69
+ 7. The first model turn is initiated automatically so the Agent greets the user and starts collecting identity preferences.
70
+ 8. Bootstrap mode remains active across turns until completion.
71
+ 9. On completion, write state, deactivate the mode, and continue normal conversation without bootstrap injection.
72
+
73
+ ## Bootstrap Mode Behavior
74
+
75
+ `bootstrap` is a framework mode, not a normal task mode users are expected to activate for daily work.
76
+
77
+ It should:
78
+
79
+ - Prompt the Agent to greet the user naturally.
80
+ - Collect Agent identity fields: name, role, style, boundaries, optional symbol.
81
+ - Collect user fields: name, preferred address, timezone, background, preferences.
82
+ - Collect collaboration preferences: initiative level, confirmation boundaries, coding style.
83
+ - Ask follow-up questions only when required information is missing.
84
+ - Write persona files with existing tools or a dedicated persona write helper.
85
+ - Mark completion only after validation passes.
86
+
87
+ ## Completion Contract
88
+
89
+ Bootstrap can complete when all of the following are true:
90
+
91
+ - `IDENTITY.md` no longer contains the untouched template placeholders.
92
+ - `USER.md` no longer contains the untouched template placeholders.
93
+ - `SOUL.md` exists and remains usable as the long-term style/behavior guide.
94
+ - The user has either explicitly confirmed the captured identity information or the Agent has summarized it and received no correction in the final bootstrap turn.
95
+
96
+ After completion:
97
+
98
+ - Write `setupCompletedAt`.
99
+ - Deactivate `bootstrap` mode.
100
+ - Do not inject `bootstrap` prompt again in new sessions.
101
+
102
+ ## Components
103
+
104
+ ### `BootstrapMode`
105
+
106
+ New mode definition implementing the existing `ModeDefinition` interface:
107
+
108
+ - `createState()` initializes global persona paths and required fields.
109
+ - `renderForInjection()` renders `prompts/modes/bootstrap.md`.
110
+ - `handleToolCall()` accepts progress markers or a completion marker.
111
+ - `isComplete()` returns true only after validation.
112
+
113
+ ### `PersonaBootstrapStore`
114
+
115
+ Small global store for:
116
+
117
+ - Resolving the global persona directory.
118
+ - Ensuring template files exist.
119
+ - Reading and writing persona state.
120
+ - Validating whether persona files are still templates.
121
+ - Marking bootstrap complete.
122
+
123
+ Existing `persona-bootstrap.ts` can be refactored into this role.
124
+
125
+ ### Startup Integration
126
+
127
+ Both TUI and non-TUI creation paths should pass the same global persona state into `createAgent`.
128
+
129
+ If bootstrap is incomplete, `createAgent` or the gateway activates `bootstrap` mode before the first turn. The activation should not depend on a session-specific file.
130
+
131
+ ### Prompt Loading
132
+
133
+ Long-term persona loading should prefer:
134
+
135
+ 1. Project override, if explicitly present and intended.
136
+ 2. Global persona files.
137
+ 3. Built-in templates as fallback.
138
+
139
+ Bootstrap mode prompt should be loaded from `prompts/modes/bootstrap.md`, not from `persona/BOOTSTRAP.md`.
140
+
141
+ ## Error Handling
142
+
143
+ - If persona files cannot be written, keep bootstrap active and report the write failure.
144
+ - If validation fails, keep bootstrap active and inject the missing fields in the next turn.
145
+ - If the user exits mid-bootstrap, keep state incomplete so the next session resumes bootstrap.
146
+ - If global state says complete but persona files are missing, recreate missing files and mark bootstrap incomplete.
147
+
148
+ ## Testing
149
+
150
+ Unit tests:
151
+
152
+ - Global store creates missing persona files.
153
+ - Incomplete state activates bootstrap.
154
+ - Complete state does not activate bootstrap.
155
+ - Template files fail validation.
156
+ - Filled files pass validation.
157
+
158
+ Integration tests:
159
+
160
+ - First TUI startup activates bootstrap once.
161
+ - First non-TUI startup follows the same activation rule.
162
+ - Completing bootstrap writes global state and stops injection.
163
+ - New session after completion does not reinject bootstrap.
164
+
165
+ ## Completion Tool
166
+
167
+ Use a dedicated `bootstrap_mark` tool instead of reusing `task_mark`.
168
+
169
+ The tool should support at least:
170
+
171
+ - `bootstrap_mark({ action: "progress", message })` for recording what has been collected.
172
+ - `bootstrap_mark({ action: "complete" })` for requesting completion after files have been written.
173
+
174
+ The mode still performs validation before accepting completion. If validation fails, the tool result explains what is missing and bootstrap mode remains active.
@@ -0,0 +1,226 @@
1
+ # User Guide
2
+
3
+ ## Installation
4
+
5
+ ```bash
6
+ # Install dependencies
7
+ pnpm install
8
+
9
+ # Build
10
+ pnpm build
11
+
12
+ # Link CLI globally
13
+ npm link # or: node dist/index.js
14
+ ```
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # Set up API key
20
+ export ANTHROPIC_API_KEY=sk-ant-...
21
+
22
+ # Run in interactive mode
23
+ agent
24
+
25
+ # Run a one-shot prompt
26
+ agent "Explain the architecture of this project"
27
+
28
+ # Run with explicit provider and model
29
+ agent -p openai -m gpt-4o "Review this code"
30
+ ```
31
+
32
+ ## CLI Commands
33
+
34
+ ### Basic Usage
35
+
36
+ ```
37
+ agent [options] [prompt]
38
+ ```
39
+
40
+ | Option | Short | Description |
41
+ |--------|-------|-------------|
42
+ | `--provider <type>` | `-p` | Provider: anthropic, openai, deepseek, local, groq, xai, mistral, openrouter, gemini, moonshot |
43
+ | `--model <name>` | `-m` | Model name (defaults per provider) |
44
+ | `--interactive` | `-i` | Force interactive mode |
45
+ | `--tui` | | Full-screen terminal UI |
46
+ | `--max-turns <n>` | | Max turns (default: 40) |
47
+ | `--max-context <n>` | | Max context tokens (default: 200000) |
48
+ | `--continue` | | Resume most recent session |
49
+ | `--session <id>` | | Resume specific session |
50
+ | `--start-model` | | Start local model server |
51
+ | `--skip-setup` | | Skip first-run setup wizard |
52
+
53
+ ### Subcommands
54
+
55
+ #### Setup Wizard
56
+
57
+ ```bash
58
+ agent setup
59
+ ```
60
+
61
+ Interactive first-run configuration: API keys, default provider, model preferences.
62
+
63
+ #### HTTP Server
64
+
65
+ ```bash
66
+ agent serve --port 3000 --provider anthropic
67
+ ```
68
+
69
+ Start the REST API server. See [API Reference](api.md) for endpoint details.
70
+
71
+ #### Session Management
72
+
73
+ ```bash
74
+ # List sessions for current project
75
+ agent session list
76
+
77
+ # List sessions for a specific project
78
+ agent session list --project /path/to/project
79
+
80
+ # Delete a session
81
+ agent session delete 20260524-182358-c11f
82
+
83
+ # Export session as JSON
84
+ agent session export 20260524-182358-c11f -o ./session-backup.json
85
+ ```
86
+
87
+ ## Configuration
88
+
89
+ ### Environment Variables
90
+
91
+ | Variable | Required For |
92
+ |----------|--------------|
93
+ | `ANTHROPIC_API_KEY` | Anthropic provider |
94
+ | `OPENAI_API_KEY` | OpenAI provider |
95
+ | `DEEPSEEK_API_KEY` | DeepSeek provider |
96
+ | `GROQ_API_KEY` | Groq provider |
97
+ | `XAI_API_KEY` | xAI provider |
98
+ | `MISTRAL_API_KEY` | Mistral provider |
99
+ | `OPENROUTER_API_KEY` | OpenRouter provider |
100
+ | `GEMINI_API_KEY` / `GOOGLE_API_KEY` | Gemini provider |
101
+ | `MOONSHOT_API_KEY` | Moonshot provider |
102
+ | `LOG_LEVEL` | Log level: debug, info, warn, error, off (default: info) |
103
+
104
+ ### Config File
105
+
106
+ Place `.agent/config.json` in your project directory:
107
+
108
+ ```json
109
+ {
110
+ "provider": {
111
+ "type": "anthropic",
112
+ "model": "claude-sonnet-4-20250514"
113
+ },
114
+ "maxTurns": 40,
115
+ "maxContext": 200000
116
+ }
117
+ ```
118
+
119
+ ### MCP Servers
120
+
121
+ Configure MCP tools in `.agent/mcp.json` or `.mcp.json`:
122
+
123
+ ```json
124
+ {
125
+ "mcpServers": {
126
+ "my-server": {
127
+ "command": "node",
128
+ "args": ["server.js"],
129
+ "env": { "KEY": "value" }
130
+ },
131
+ "remote-server": {
132
+ "url": "https://example.com/sse",
133
+ "headers": { "Authorization": "Bearer token" }
134
+ }
135
+ }
136
+ }
137
+ ```
138
+
139
+ ## Custom Skills
140
+
141
+ Create `.md` files with YAML frontmatter in `~/.agent/skills/` (user-level) or `.agent/skills/` (project-level). Project skills override user skills with the same name.
142
+
143
+ ```markdown
144
+ ---
145
+ name: my-skill
146
+ description: A custom skill for my workflow
147
+ tools: read, bash, glob
148
+ ---
149
+
150
+ Perform the following task based on the user's request:
151
+
152
+ {{task}}
153
+
154
+ Focus on accuracy and completeness.
155
+ ```
156
+
157
+ Skills are hot-reloaded automatically — just save the file.
158
+
159
+ ## Provider Fallback
160
+
161
+ Configure provider fallback chain in `.agent/config.json`:
162
+
163
+ ```json
164
+ {
165
+ "provider": {
166
+ "type": "anthropic",
167
+ "model": "claude-sonnet-4-20250514",
168
+ "fallbacks": [
169
+ { "type": "openai", "model": "gpt-4o" },
170
+ { "type": "deepseek", "model": "deepseek-chat" }
171
+ ]
172
+ }
173
+ }
174
+ ```
175
+
176
+ When the primary provider fails (after retry + circuit breaker), the system automatically tries fallbacks in order.
177
+
178
+ ## Sub-Agent Delegation
179
+
180
+ The built-in sub-agents are available as tools:
181
+
182
+ | Agent | Role |
183
+ |-------|------|
184
+ | `code-reviewer` | Review code for bugs and style issues |
185
+ | `security-auditor` | Audit code for security vulnerabilities |
186
+ | `test-writer` | Write and improve tests |
187
+
188
+ Invoke them by asking the agent: "Have code-reviewer review this file" or "Ask test-writer to write tests for this module."
189
+
190
+ Three collaboration modes:
191
+ - **Delegate**: Single agent handles the task
192
+ - **Adversarial**: Two agents independently review, results are merged
193
+ - **Parallel**: Multiple agents work simultaneously
194
+
195
+ ## Local Models
196
+
197
+ ```bash
198
+ # Start a local model and use it
199
+ agent --provider local --start-model --model "qwen2.5-coder:7b"
200
+
201
+ # Or start local model server first, then connect
202
+ agent --provider local
203
+ ```
204
+
205
+ Supports llama.cpp, ollama, text-generation-webui, and vllm backends.
206
+
207
+ ## Plugins
208
+
209
+ Place plugin directories in `.agent/plugins/`. Each plugin requires:
210
+ - `manifest.json` (metadata)
211
+ - Entry module (default: `index.ts`)
212
+
213
+ Example plugin structure:
214
+
215
+ ```
216
+ .agent/plugins/my-plugin/
217
+ ├── manifest.json
218
+ └── index.ts
219
+ ```
220
+
221
+ ## Troubleshooting
222
+
223
+ - **"No sessions found"**: Run at least one interaction first, or create a session explicitly.
224
+ - **Provider errors**: Check `LOG_LEVEL=debug` for detailed logs. Verify API keys in environment.
225
+ - **MCP connection failures**: Confirm the server command/URL is correct and the server is running.
226
+ - **Tests**: Run `pnpm test` to verify system health (138+ tests).
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "hyacinth-ai",
3
+ "version": "0.9.6",
4
+ "description": "Hyacinth đŸĒģ — multi-provider AI agent with tool system and context management",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "hyacinth": "dist/index.js"
9
+ },
10
+ "keywords": [
11
+ "ai",
12
+ "agent",
13
+ "cli",
14
+ "llm",
15
+ "mcp",
16
+ "anthropic",
17
+ "openai",
18
+ "deepseek"
19
+ ],
20
+ "author": "孑遗",
21
+ "license": "MIT",
22
+ "dependencies": {
23
+ "@anthropic-ai/sdk": "^0.98.0",
24
+ "@clack/prompts": "^1.4.0",
25
+ "@earendil-works/pi-tui": "^0.75.4",
26
+ "@fastify/static": "^9.1.3",
27
+ "@google/genai": "^2.6.0",
28
+ "@larksuiteoapi/node-sdk": "^1.66.1",
29
+ "@modelcontextprotocol/sdk": "^1.29.0",
30
+ "better-sqlite3": "^12.10.0",
31
+ "chalk": "^5.6.2",
32
+ "chokidar": "^5.0.0",
33
+ "chrome-devtools-mcp": "^1.2.0",
34
+ "commander": "^14.0.3",
35
+ "diff": "^9.0.0",
36
+ "fastify": "^5.8.5",
37
+ "js-tiktoken": "^1.0.21",
38
+ "mammoth": "^1.12.0",
39
+ "mcp-chrome-bridge": "^1.0.31",
40
+ "openai": "^6.39.0",
41
+ "picocolors": "^1.1.1",
42
+ "sharp": "^0.35.0",
43
+ "ws": "^8.21.0",
44
+ "xlsx": "^0.18.5"
45
+ },
46
+ "devDependencies": {
47
+ "@types/better-sqlite3": "^7.6.13",
48
+ "@types/node": "^25.9.1",
49
+ "@types/ws": "^8.18.1",
50
+ "typescript": "^6.0.3",
51
+ "undici-types": "^7.24.6",
52
+ "vitest": "^4.1.7"
53
+ },
54
+ "scripts": {
55
+ "build": "tsc && node scripts/copy-prompts.cjs && node scripts/clean-tests.cjs && node scripts/clean-maps.cjs",
56
+ "dev": "tsc --watch",
57
+ "start": "node dist/index.js",
58
+ "start:win": "chcp 65001 > nul && node dist/index.js",
59
+ "test": "vitest run",
60
+ "test:watch": "vitest",
61
+ "setup:llamacpp": "powershell -ExecutionPolicy Bypass -File scripts/setup-llamacpp.ps1"
62
+ }
63
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Example Greeter Plugin
3
+ *
4
+ * A minimal example plugin that registers a "hello" tool.
5
+ * This demonstrates the plugin system end-to-end.
6
+ */
7
+
8
+ /** @type {import('../../src/plugins/types.js').PluginDefinition} */
9
+ export default {
10
+ id: 'example-greeter',
11
+ name: 'Example Greeter',
12
+ description: 'Registers a hello tool and a greeting skill',
13
+
14
+ register: (api) => {
15
+ // ── Register a tool ───────────────────────────────────────
16
+ api.registerTool({
17
+ name: 'hello',
18
+ description: 'Greet the user with a friendly message',
19
+ inputSchema: {
20
+ type: 'object',
21
+ properties: {
22
+ name: {
23
+ type: 'string',
24
+ description: 'Name to greet',
25
+ },
26
+ },
27
+ required: [],
28
+ },
29
+ execute: async (args) => {
30
+ const name = args.name || 'world';
31
+ return `Hello, ${name}! Greetings from the example-greeter plugin.`;
32
+ },
33
+ });
34
+
35
+ api.logger.info('hello tool registered');
36
+
37
+ // ── Register a skill ──────────────────────────────────────
38
+ api.registerSkill({
39
+ name: 'example-greeter-friendly',
40
+ description: 'Greet the user warmly and ask about their day',
41
+ promptTemplate: `You are a friendly assistant. Greet {{name}} warmly and ask about their day.`,
42
+ relatedTools: ['hello'],
43
+ });
44
+
45
+ api.logger.info('example-greeter-friendly skill registered');
46
+ },
47
+
48
+ onActivate: async (api) => {
49
+ api.logger.info('Plugin activated! Config:', api.getConfig());
50
+ },
51
+
52
+ onDeactivate: async (api) => {
53
+ api.logger.info('Plugin deactivated. Goodbye!');
54
+ },
55
+ };
@@ -0,0 +1,8 @@
1
+ {
2
+ "id": "example-greeter",
3
+ "name": "Example Greeter",
4
+ "description": "A simple example plugin that registers a hello tool",
5
+ "entry": "./index.js",
6
+ "enabledByDefault": true,
7
+ "version": "1.0.0"
8
+ }
@@ -0,0 +1,5 @@
1
+ ignoredBuiltDependencies:
2
+ - '@google/genai'
3
+ - protobufjs
4
+
5
+ onlyBuiltDependencies: better-sqlite3