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,107 @@
1
+ # 飞书渠道配置
2
+
3
+ 你可以通过飞书渠道让用户通过飞书客户端直接与 Agent 对话。
4
+
5
+ ## 配置方式
6
+
7
+ 修改 `.agent/config.json`,在 `channels` 字段中添加飞书配置:
8
+
9
+ ```json
10
+ {
11
+ "channels": {
12
+ "feishu": {
13
+ "enabled": true,
14
+ "appId": "cli_xxxxxxxxxxxx",
15
+ "appSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
16
+ "domain": "feishu",
17
+ "dmPolicy": "open",
18
+ "requireMention": true
19
+ }
20
+ }
21
+ }
22
+ ```
23
+
24
+ ## 配置字段说明
25
+
26
+ | 字段 | 必填 | 默认值 | 说明 |
27
+ |------|------|--------|------|
28
+ | `enabled` | 否 | `true` | 是否启用飞书渠道 |
29
+ | `appId` | 是 | - | 飞书应用 App ID,从飞书开放平台获取 |
30
+ | `appSecret` | 是 | - | 飞书应用 App Secret |
31
+ | `domain` | 否 | `feishu` | `feishu`(国内飞书)/ `lark`(国际版 Lark) |
32
+ | `dmPolicy` | 否 | `allowlist` | 私聊策略:`open`(允许所有人私聊)/ `allowlist`(仅白名单用户)/ `disabled`(不允许私聊) |
33
+ | `allowFrom` | 否 | `[]` | 私聊白名单(用户 open_id 列表),空数组=不限制 |
34
+ | `groupPolicy` | 否 | `allowlist` | 群组策略,同上 |
35
+ | `groupAllowFrom` | 否 | `[]` | 群组白名单(chat_id 列表),空数组=不限制 |
36
+ | `requireMention` | 否 | `true` | 群聊中是否需要 @提及 机器人才回复 |
37
+ | `resolveSenderNames` | 否 | `true` | 是否调用 API 解析发送者名称(消耗 API 配额) |
38
+
39
+ ## 获取 App ID 和 App Secret
40
+
41
+ 用户需要:
42
+
43
+ 1. 访问 [飞书开放平台](https://open.feishu.cn/app)
44
+ 2. 创建「企业自建应用」
45
+ 3. 添加「机器人」能力
46
+ 4. 在「凭证与基础信息」页面获取 App ID 和 App Secret
47
+ 5. 在「权限管理」中申请以下权限:
48
+ - `im:message:send` — 发送消息
49
+ - `im:message:receive` — 接收消息
50
+ 6. 发布应用
51
+
52
+ ## 使用方式
53
+
54
+ 配置完成后,用户通过 `pnpm serve` 启动服务器,飞书渠道会自动连接。
55
+
56
+ 用户可以在飞书客户端中:
57
+ - 搜索机器人名称,开始一对一私聊
58
+ - 将机器人添加到群组,@机器人 进行群聊
59
+
60
+ ## 辅助用户配置(自动写入 + 重启生效)
61
+
62
+ 当用户表示想用飞书连接 Agent,或用户直接提供了 App ID 和 App Secret 时,按以下步骤操作:
63
+
64
+ ### 步骤 1:收集信息
65
+
66
+ 询问用户:
67
+ - 飞书 App ID(格式: `cli_xxxxxxxxxxxx`)
68
+ - 飞书 App Secret
69
+ - 飞书版本:国内飞书(feishu)还是国际版 Lark
70
+
71
+ 如果用户还没有,引导用户按上面「获取 App ID 和 App Secret」的步骤创建。
72
+
73
+ ### 步骤 2:写入配置
74
+
75
+ 配置文件路径:`<workspace>/.agent/config.json`
76
+
77
+ 1. 先用 `read` 工具读取 `{workspace}/.agent/config.json`
78
+ 2. 解析 JSON,在根对象中添加或更新 `channels` 字段:
79
+ ```json
80
+ {
81
+ "channels": {
82
+ "feishu": {
83
+ "enabled": true,
84
+ "appId": "用户提供的 App ID",
85
+ "appSecret": "用户提供的 App Secret",
86
+ "domain": "feishu",
87
+ "dmPolicy": "open",
88
+ "requireMention": true
89
+ }
90
+ }
91
+ }
92
+ ```
93
+ 3. 用 `write` 工具将合并后的完整 JSON 写回 `{workspace}/.agent/config.json`
94
+
95
+ ### 步骤 3:完成
96
+
97
+ 配置写入后,调用 `restart` 工具重启 Agent 进程。重启后飞书渠道自动连接,当前 session 会被自动恢复。
98
+
99
+ 告知用户:
100
+
101
+ > 配置已写入。请调用 `restart` 工具重启,飞书渠道将在重启后自动连接,当前 session 会恢复。
102
+
103
+ ### 注意事项
104
+
105
+ - 写入时务必保留 config.json 中已有的其他配置(provider、model、maxTurns 等),不要覆盖
106
+ - 如果文件不存在,创建一个包含完整配置的新文件
107
+ - `update_config` 工具无法写入 channels 字段,必须用 `read` + `write` 工具直接操作文件
@@ -0,0 +1,14 @@
1
+ # Bootstrap Step 4: Confirm & Complete
2
+
3
+ You've gathered information across all three persona files:
4
+ - `{{personaDir}}/SOUL.md` — Core beliefs, boundaries, style
5
+ - `{{personaDir}}/IDENTITY.md` — Name, role, expertise
6
+ - `{{personaDir}}/USER.md` — User name, background, preferences
7
+
8
+ ## What To Do
9
+
10
+ 1. Briefly summarize what's been recorded across all three files
11
+ 2. Ask the user if everything looks correct — offer to revise anything
12
+ 3. When the user is satisfied, call `complete_flow_step`
13
+
14
+ **Note**: This is the final step. After calling `complete_flow_step`, the identity initialization will be permanently marked as complete and will not run again. Make sure the user is truly satisfied before finishing.
@@ -0,0 +1,11 @@
1
+ # Bootstrap Step 2: Identity (IDENTITY.md)
2
+
3
+ Now let's define your identity. Chat with the user about:
4
+
5
+ 1. **Name** — What should the user call you?
6
+ 2. **Role/Positioning** — What kind of assistant are you? Coding partner? Architecture advisor? General companion?
7
+ 3. **Areas of Expertise** — What are you best at? What should you focus on?
8
+
9
+ When sufficient information is gathered, write `{{personaDir}}/IDENTITY.md`.
10
+
11
+ After writing and getting user confirmation, call `complete_flow_step`.
@@ -0,0 +1,19 @@
1
+ # Bootstrap Step 1: Core Personality (SOUL.md)
2
+
3
+ You are performing first-time identity initialization. Your task is to naturally converse with the user to understand what kind of personality they want you to have, then write the SOUL.md file.
4
+
5
+ ## What to Discuss
6
+
7
+ Chat with the user about:
8
+
9
+ 1. **Core Beliefs** — What do you believe in? Direct and honest vs diplomatic? Proactive vs reactive?
10
+ 2. **Behavioral Boundaries** — What can/can't you do? Should external operations require confirmation?
11
+ 3. **Communication Style** — Concise or detailed? Casual or formal? Any specific preferences?
12
+
13
+ ## When Ready
14
+
15
+ Write `{{personaDir}}/SOUL.md` using the `write` tool. The file should reflect what you've learned from the conversation.
16
+
17
+ After writing and getting user confirmation, call `complete_flow_step` to proceed to the next step.
18
+
19
+ **Important**: Don't rush — have a real conversation. Ask follow-up questions if needed. The user's preferences matter more than filling the file quickly.
@@ -0,0 +1,11 @@
1
+ # Bootstrap Step 3: User Profile (USER.md)
2
+
3
+ Now let's learn about the user. Chat naturally to understand:
4
+
5
+ 1. **Name/Alias** — How should you address the user?
6
+ 2. **Background** — Technical background, preferred languages/frameworks, domain knowledge
7
+ 3. **Collaboration Preferences** — How do they like to work? What's their workflow? Any pet peeves?
8
+
9
+ When you have enough information, write `{{personaDir}}/USER.md`.
10
+
11
+ After writing and getting user confirmation, call `complete_flow_step`.
@@ -0,0 +1,27 @@
1
+ # Checklist — 生成验证清单
2
+
3
+ **Task**: {{task}}
4
+
5
+ You are in the **checklist writing phase**. Your job:
6
+
7
+ 1. **Read** `spec.md` and `tasks.md` to understand what was planned.
8
+ 2. **Write `checklist.md`** — a flat, verifiable checklist of all outcomes:
9
+
10
+ ```markdown
11
+ # Checklist
12
+
13
+ - [ ] <verifiable statement matching Task 1.1>
14
+ - [ ] <verifiable statement matching Task 1.2>
15
+ - [ ] <verifiable statement matching Task 2.1>
16
+ - [ ] <verifiable statement matching Task 2.2>
17
+ - [ ] <final integration/validation check>
18
+ ```
19
+
20
+ **Rules**:
21
+ - Every SubTask from tasks.md MUST have a corresponding checklist item.
22
+ - Each item MUST be independently verifiable — a single yes/no observation.
23
+ - No vague items like "everything works" — be specific about what to check.
24
+ - Add at least one integration-level check at the end.
25
+ - Use `- [ ]` (unchecked); the agent will mark them `- [x]` during verification.
26
+
27
+ When done, call `flow_complete` to finish the spec flow.
@@ -0,0 +1,64 @@
1
+ # Spec Definition — 撰写需求文档
2
+
3
+ **Task**: {{task}}
4
+ **Target directory**: {{specDir}}
5
+
6
+ You are in the **spec definition phase**. Write all three files at once:
7
+
8
+ ### 1. `{{specDir}}/spec.md` — Requirements Spec
9
+ ```markdown
10
+ # <Title> Spec
11
+
12
+ ## Why
13
+ <Why this change is needed — the problem or motivation>
14
+
15
+ ## What Changes
16
+ <High-level description of what will change>
17
+
18
+ ## Impact
19
+ - Affected specs: <related specs>
20
+ - Affected code: <files/modules to be modified>
21
+
22
+ ## ADDED Requirements
23
+
24
+ ### Requirement: <name>
25
+ <Description>
26
+
27
+ #### Scenario: <name>
28
+ - **WHEN** <condition>
29
+ - **THEN** <expected outcome>
30
+ - **AND** <additional outcomes>
31
+
32
+ ## MODIFIED Requirements (if any)
33
+
34
+ ## REMOVED Requirements (if any)
35
+ ```
36
+
37
+ ### 2. `{{specDir}}/tasks.md` — Task Breakdown
38
+ ```markdown
39
+ # Tasks
40
+
41
+ - [ ] Task 1: <concise title>
42
+ - [ ] <specific SubTask>
43
+ - [ ] <specific SubTask>
44
+
45
+ - [ ] Task 2: <concise title>
46
+ - [ ] <specific SubTask>
47
+
48
+ # Task Dependencies
49
+ - Task 2 depends on Task 1
50
+ ```
51
+
52
+ Every Task MUST have at least 2 SubTasks. Use `- [ ]` (unchecked) for all items.
53
+
54
+ ### 3. `{{specDir}}/checklist.md` — Verification Checklist
55
+ ```markdown
56
+ # Checklist
57
+
58
+ - [ ] <verifiable outcome matching each SubTask>
59
+ - [ ] <final integration validation>
60
+ ```
61
+
62
+ Every SubTask from tasks.md MUST have a corresponding checklist item. Each item MUST be independently verifiable.
63
+
64
+ **Write all three files now. When done, call `flow_complete`.**
@@ -0,0 +1,15 @@
1
+ # Spec Verification — Checklist
2
+
3
+ **Task**: {{task}}
4
+
5
+ **Progress**:
6
+ {{item_list}}
7
+
8
+ **Current item**:
9
+ > {{current_item}}
10
+
11
+ Verify this item now. When verified:
12
+ 1. Mark it as `- [x]` in `checklist.md`
13
+ 2. Call `flow_complete` to advance to the next item
14
+
15
+ Do NOT verify items that are not the current one. Focus only on the item shown above.
@@ -0,0 +1,15 @@
1
+ # Spec Execution — Tasks
2
+
3
+ **Task**: {{task}}
4
+
5
+ **Progress**:
6
+ {{item_list}}
7
+
8
+ **Current task**:
9
+ > {{current_item}}
10
+
11
+ Complete this task now. When done:
12
+ 1. Mark it as `- [x]` in `tasks.md`
13
+ 2. Call `flow_complete` to advance to the next task
14
+
15
+ Do NOT work on tasks that are not the current one. Focus only on the task shown above.
@@ -0,0 +1,51 @@
1
+ # Spec Writing — 撰写需求规格
2
+
3
+ **Task**: {{task}}
4
+
5
+ You are in the **spec writing phase**. Your job:
6
+
7
+ 1. **Analyze** the task — understand the goal, scope, constraints, and dependencies.
8
+ 2. **Write `spec.md`** in the current working directory with the following structure:
9
+
10
+ ```markdown
11
+ # <Title> Spec
12
+
13
+ ## Why
14
+ <Why this change is needed — the problem or motivation>
15
+
16
+ ## What Changes
17
+ <High-level description of what will change>
18
+
19
+ ## Impact
20
+ - Affected specs: <related specs>
21
+ - Affected code: <files/modules to be modified>
22
+
23
+ ## ADDED Requirements
24
+
25
+ ### Requirement: <name>
26
+ <Description>
27
+
28
+ #### Scenario: <name>
29
+ - **WHEN** <condition>
30
+ - **THEN** <expected outcome>
31
+ - **AND** <additional outcomes>
32
+
33
+ ## MODIFIED Requirements (if any)
34
+
35
+ ### Requirement: <name>
36
+ <What changed and why>
37
+
38
+ ## REMOVED Requirements (if any)
39
+
40
+ ### Requirement: <name>
41
+ **Reason**: <why removed>
42
+ **Migration**: <how to migrate>
43
+ ```
44
+
45
+ **Important**:
46
+ - Every requirement MUST have at least one Scenario.
47
+ - Use concrete, verifiable statements in Scenarios.
48
+ - File paths and module names should be real (check the codebase).
49
+ - If the task requires no MODIFIED or REMOVED sections, skip them.
50
+
51
+ When done, call `flow_complete` to advance.
@@ -0,0 +1,32 @@
1
+ # Tasks Writing — 拆分执行任务
2
+
3
+ **Task**: {{task}}
4
+
5
+ You are in the **tasks writing phase**. Your job:
6
+
7
+ 1. **Read** `spec.md` in the working directory to understand the requirements.
8
+ 2. **Write `tasks.md`** — break down the spec into ordered, verifiable tasks:
9
+
10
+ ```markdown
11
+ # Tasks
12
+
13
+ - [ ] Task 1: <concise title>
14
+ - [ ] SubTask 1.1: <specific action>
15
+ - [ ] SubTask 1.2: <specific action>
16
+
17
+ - [ ] Task 2: <concise title>
18
+ - [ ] SubTask 2.1: <specific action>
19
+ - [ ] SubTask 2.2: <specific action>
20
+
21
+ # Task Dependencies
22
+ - Task 2 depends on Task 1
23
+ - Task 3 is independent, can run in parallel
24
+ ```
25
+
26
+ **Rules**:
27
+ - Every Task MUST have at least 2 SubTasks — if you can't break it down, the Task is too vague.
28
+ - Each SubTask MUST be a single concrete action (edit a file, run a command, add a test).
29
+ - Dependencies MUST be explicitly stated — no implicit ordering assumptions.
30
+ - Use `- [ ]` (unchecked) for all items; the agent will mark them `- [x]` during execution.
31
+
32
+ When done, call `flow_complete` to advance.
@@ -0,0 +1,7 @@
1
+ # TODO — Step {{current}}/{{total}}
2
+
3
+ **Task**: {{task}}
4
+
5
+ **Current step**: {{description}}
6
+
7
+ Execute this step now. If this step requires multiple independent actions (e.g., reading several files, searching for different patterns), call all those tools in one round — don't sequence them. When done, call `flow_complete` to advance to the next step.
@@ -0,0 +1,18 @@
1
+ # TODO Mode — Planning Phase
2
+
3
+ **Task**: {{task}}
4
+
5
+ You are in the **analysis and planning phase**. Your job:
6
+
7
+ 1. **Analyze** the task — understand the goal, scope, constraints, and dependencies.
8
+ 2. **Break it down** into specific, actionable steps. Each step should be independently verifiable with a clear output. Submit the ENTIRE plan in ONE call:
9
+ ```
10
+ flow_add({steps: [
11
+ "Step 1: ... — what to do and what success looks like",
12
+ "Step 2: ...",
13
+ "Step 3: ..."
14
+ ]})
15
+ ```
16
+ 3. After you submit the steps, the framework will **automatically advance** to the execution phase — you do NOT need to call flow_complete. The next turn you will see the first step to execute.
17
+
18
+ **Important**: Make steps concrete and verifiable. Avoid vague steps like "implement the feature" — break it down into specific actions with clear success criteria.
@@ -0,0 +1,131 @@
1
+ # Agent 框架配置指南
2
+
3
+ 你收到的消息由多个 Zone 按编号顺序拼接而成。Zone 1-3 使用 `cache_control` 缓存,内容不变时不消耗 token 计费。压缩只影响 Zone 3(对话记录),不影响身份/工具/Skill 等固定内容。
4
+
5
+ ## 可修改的配置项
6
+
7
+ 所有运行时配置通过 `config.json`(`.agent/` 目录下)持久化。大部分配置通过 `update_config` 修改后即时生效(热加载),仅 `channels` 配置需调用 `restart` 工具重启生效。
8
+
9
+ ### 会话相关
10
+
11
+ | 配置路径 | 含义 | 默认值 | 修改命令 |
12
+ |---------|------|--------|---------|
13
+ | `session.maxContext` | 上下文窗口软限制(tokens),不是模型原生上限 | 200000 | `/context <tokens>` |
14
+ | `session.maxTurns` | 最大对话轮数 | 100 | `/turns <1-100>` |
15
+
16
+ ### 压缩相关
17
+
18
+ | 配置路径 | 含义 | 默认值 | 修改命令 |
19
+ |---------|------|--------|---------|
20
+ | `context.compressThreshold` | 触发异步压缩的比例(Zone总量 > maxContext × 此值) | 0.75 | `/threshold <0.0-1.0>` |
21
+ | `context.emergencyThreshold` | 触发紧急同步压缩的比例(防止 API 溢出) | 0.92 | `update_config path=context.emergencyThreshold value=<0.0-1.0>` |
22
+ | `context.compressDepth` | 压缩激进程度(0=极激进, 1=保守) | 0.5 | `update_config path=context.compressDepth value=<0.0-1.0>` |
23
+
24
+ ### 模型目录(本机持久配置)
25
+
26
+ **路径**: `~/.agent/models-catalog.json`
27
+ **作用**: 本机级模型参数,所有项目共享。用 `edit` 工具直接修改,下次启动生效。
28
+ **条目按 `(provider, id)` 索引**,`__default__` 为该 provider 下所有未匹配模型的兜底。
29
+
30
+ | 字段 | 含义 | 示例 |
31
+ |------|------|------|
32
+ | `contextWindow` | 最大输入上下文(token 数) | `1000000` |
33
+ | `maxOutputTokens` | 单次最大输出(token 数) | `393216` |
34
+ | `reasoningEffort` | 推理强度。设为任意值即自动开启思考。DeepSeek: `"high"` / `"max"`;Anthropic: budget tokens 数字 | `"max"` |
35
+
36
+ ```json
37
+ {
38
+ "models": [{
39
+ "id": "deepseek-v4-pro",
40
+ "provider": "deepseek",
41
+ "contextWindow": 1000000,
42
+ "maxOutputTokens": 393216,
43
+ "reasoningEffort": "max"
44
+ }]
45
+ }
46
+ ```
47
+
48
+ ### Provider 相关
49
+
50
+ | 配置路径 | 含义 | 默认值 | 修改命令 |
51
+ |---------|------|--------|---------|
52
+ | `provider.active` | 当前使用的 Provider(anthropic/openai/deepseek/gemini/local) | - | `/model provider <name>` |
53
+ | `provider.<name>.model` | 各 Provider 的默认模型名 | 按 provider 不同 | `/model switch <model-name>` |
54
+ | `/model thinking` | 推理临时覆盖(不写文件,重启恢复模型目录默认) | - | `/model thinking <on\|off\|high\|max>` |
55
+
56
+ ### 安全与修复
57
+
58
+ | 配置路径 | 含义 | 默认值 | 修改命令 |
59
+ |---------|------|--------|---------|
60
+ | `safety.requireConfirmation` | 工具执行前是否需要确认 | true | `/confirm <on\|off>` |
61
+ | `repair.scavenge.enabled` | 回收修复开关 | false | `/scavenge <on\|off>` |
62
+ | `repair.storm.enabled` | 风暴保护开关 | false | `/storm <on\|off>` |
63
+ | `repair.storm.windowSize` | 风暴检测窗口大小 | - | `/storm-win <2-20>` |
64
+ | `repair.storm.threshold` | 风暴检测阈值 | - | `/storm-th <1-10>` |
65
+
66
+ ### 其他
67
+
68
+ | 配置路径 | 含义 | 默认值 | 修改命令 |
69
+ |---------|------|--------|---------|
70
+ | `logging.level` | 日志级别 | info | `/log <debug\|info\|warn\|error\|off>` |
71
+
72
+ ## 旁路Agent(Bypass)
73
+
74
+ 旁路Agent是独立于主Agent运行的后台观察者。在主对话流的前后介入,不抢占主Agent的上下文预算,异常隔离(失败不影响主流程)。
75
+
76
+ ```
77
+ User Input → [preTurn] → Composer组装上下文 → LLM调用 → [postTurn] → 回复用户
78
+ ↑ ↑
79
+ 旁路Agent(阻塞) 旁路Agent(后台)
80
+ ```
81
+
82
+ - **preTurn**:串行阻塞,等所有活跃旁路Agent完成才继续。返回 `Injection` 注入到主Agent上下文的指定 section。
83
+ - **postTurn**:并行后台,不阻塞主流程。可观察对话、更新内部状态或通过 `inject()` 写入"纠正内容"下一轮生效。
84
+
85
+ 目前有两个实现:
86
+
87
+ | Agent | 模式 | 职责 |
88
+ |-------|------|------|
89
+ | `orchestrator` | `normal`(默认) | preTurn 读记忆+意图识别→注入约束;postTurn 审查回复是否偏离意图,连续偏离≥2次注入纠正;末轮用 LLM+工具(`memory_add/update/remove/search`)维护记忆文件 |
90
+ | `world-engine` | `companion`(陪伴模式) | preTurn 环境旁白注入;postTurn 观察对话更新世界状态;独立 Ticker 推进时间/天气/NPC |
91
+
92
+ 旁路Agent通过 `model-channels.json` 中的通道获取独立的模型实例(定义 `orchestrator` 或 `narration` 通道指向合适的模型)。
93
+
94
+ ### 世界引擎(仅陪伴模式)
95
+
96
+ 为陪伴模式自动维护地点/物品/NPC/时间天气,每轮作为环境旁白注入。**默认关闭。**
97
+
98
+ | 配置路径 | 含义 | 默认值 |
99
+ |---------|------|--------|
100
+ | `enabled` | 总开关 | false |
101
+ | `worldId` | 活动世界 ID | default |
102
+ | `worldName` | 世界名(首次创建时用) | 我们的世界 |
103
+ | `ticker.heartbeatMs` | 心跳间隔(毫秒) | 5000 |
104
+ | `ticker.timeScale` | 世界时间流速倍率 | 1 |
105
+ | `ticker.weatherAvgHours` | 一种天气平均持续的世界小时数 | 4 |
106
+ | `ticker.overcastHoursBeforeRain` | 降水前阴天持续的世界小时数 | 1.5 |
107
+
108
+ 要点:
109
+ 1. 改动 `enabled` 后需重进陪伴模式生效。
110
+ 2. 世界数据存于 `.agent/worlds/<worldId>/world.json`。
111
+
112
+ ## 其他可编辑文件
113
+
114
+ | 文件 | 用途 | 修改方式 |
115
+ |------|------|---------|
116
+ | `context-manifest.json` | Zone 架构声明(section 增删改序) | 直接编辑 |
117
+ | `models-catalog.json` | 模型目录(上下文窗口、价格) | 直接编辑 |
118
+ | `providers.json` | Provider 配置(API Key、默认模型) | 直接编辑 |
119
+ | `model-channels.json` | 多通道模型路由配置(通道定义 + 角色映射;含 `narration` 旁路角色) | 直接编辑 或 `/channel` 命令 |
120
+ | `world-engine.json` | 世界引擎开关与参数(仅陪伴模式,默认关) | 直接编辑 |
121
+ | `models.json` | 本地模型配置 | `/model local register` 或直接编辑 |
122
+ | `agents.json` | 子 Agent 定义 | 直接编辑 |
123
+ | `skills/*.md` | Skill 提示词模板 | 直接编辑 |
124
+ | `commands.json` | 自定义斜杠命令 | 直接编辑 |
125
+
126
+ ## 使用原则
127
+
128
+ 1. 不要擅自修改用户设定的配置值(特别是 `session.maxContext`)
129
+ 2. 修改配置前先告知当前值和将要改成的值
130
+ 3. 用户设异常小的值时,先确认意图再操作
131
+ 4. 修改配置后即时生效并自动持久化,重启后保持
@@ -0,0 +1,2 @@
1
+ 你是一个 AI 助手,具备上下文管理能力。你可以使用工具来帮助用户完成各种任务。
2
+ 在修改代码前,你应当先理解现有代码的结构和依赖关系。
@@ -0,0 +1,24 @@
1
+ export declare function getExternalPromptsDir(): string;
2
+ /**
3
+ * 加载提示词文件。
4
+ *
5
+ * 查找顺序(外部优先):
6
+ * 1. 外部目录 .agent/prompts/{name}.md(精确路径)
7
+ * 2. 外部目录 .agent/prompts/{name}/{name}.md(子目录路径)
8
+ * 3. 外部目录 .agent/prompts/ 递归搜索
9
+ * 4. 编译默认目录 dist/prompts/{name}.md(精确路径)
10
+ * 5. 编译默认目录 dist/prompts/{name}/{name}.md(子目录路径)
11
+ * 6. 编译默认目录 dist/prompts/ 递归搜索
12
+ *
13
+ * skipCache: 为 true 时每次重新从磁盘读取,支持热加载
14
+ */
15
+ export declare function loadPrompt(name: string, opts?: {
16
+ skipCache?: boolean;
17
+ }): string;
18
+ /** 清除提示词缓存 */
19
+ export declare function clearPromptCache(): void;
20
+ /** 获取 prompts 目录路径 */
21
+ export declare function getPromptsDir(): string;
22
+ /** 渲染模板:替换 {{variable}} 占位符 */
23
+ export declare function renderPrompt(template: string, vars: Record<string, string>): string;
24
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1,102 @@
1
+ /**
2
+ * ## 提示词加载器 — 外部化原则
3
+ *
4
+ * 项目设计原则:所有面向模型的提示词内容必须通过此加载器获取,
5
+ * 不得在代码中硬编码大段提示词文本。
6
+ *
7
+ * 外部覆盖顺序(项目级 → 全局 → 内置):
8
+ * 1. .agent/prompts/{name}.md ← 项目自定义
9
+ * 2. ~/.agent/prompts/{name}.md ← 全局用户覆盖
10
+ * 3. dist/prompts/{name}.md ← 内置默认
11
+ *
12
+ * 这样用户可以在不修改源码的情况下定制任何提示词。
13
+ * 所有 Workflow 引导模板、Persona 文件、系统规则都在此体系内。
14
+ *
15
+ * 如果你要新增提示词:
16
+ * 1. 在 src/prompts/ 下建 .md 文件
17
+ * 2. 代码中调用 loadPrompt('modes/xxx') 而非硬编码字符串
18
+ * 3. 需要变量的用 renderPrompt(template, { key: value })
19
+ */
20
+ import fs from 'node:fs';
21
+ import os from 'node:os';
22
+ import path from 'node:path';
23
+ import { fileURLToPath } from 'node:url';
24
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
25
+ const promptCache = new Map();
26
+ export function getExternalPromptsDir() {
27
+ return path.join(os.homedir(), '.agent', 'prompts');
28
+ }
29
+ /**
30
+ * 加载提示词文件。
31
+ *
32
+ * 查找顺序(外部优先):
33
+ * 1. 外部目录 .agent/prompts/{name}.md(精确路径)
34
+ * 2. 外部目录 .agent/prompts/{name}/{name}.md(子目录路径)
35
+ * 3. 外部目录 .agent/prompts/ 递归搜索
36
+ * 4. 编译默认目录 dist/prompts/{name}.md(精确路径)
37
+ * 5. 编译默认目录 dist/prompts/{name}/{name}.md(子目录路径)
38
+ * 6. 编译默认目录 dist/prompts/ 递归搜索
39
+ *
40
+ * skipCache: 为 true 时每次重新从磁盘读取,支持热加载
41
+ */
42
+ export function loadPrompt(name, opts) {
43
+ const skipCache = opts?.skipCache ?? false;
44
+ if (!skipCache && promptCache.has(name)) {
45
+ return promptCache.get(name);
46
+ }
47
+ const externalDir = getExternalPromptsDir();
48
+ const builtInDir = __dirname;
49
+ const content = tryLoadFromDir(externalDir, name) ??
50
+ tryLoadFromDir(builtInDir, name);
51
+ if (content) {
52
+ promptCache.set(name, content);
53
+ return content;
54
+ }
55
+ throw new Error(`Prompt file not found: ${name}`);
56
+ }
57
+ function tryLoadFromDir(dir, name) {
58
+ if (!fs.existsSync(dir))
59
+ return null;
60
+ const directPath = path.join(dir, `${name}.md`);
61
+ if (fs.existsSync(directPath)) {
62
+ return fs.readFileSync(directPath, 'utf-8');
63
+ }
64
+ const subDirPath = path.join(dir, name, `${name}.md`);
65
+ if (fs.existsSync(subDirPath)) {
66
+ return fs.readFileSync(subDirPath, 'utf-8');
67
+ }
68
+ const found = findPromptFile(dir, name);
69
+ if (found) {
70
+ return fs.readFileSync(found, 'utf-8');
71
+ }
72
+ return null;
73
+ }
74
+ /** 递归搜索 .md 文件 */
75
+ function findPromptFile(dir, name) {
76
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
77
+ for (const entry of entries) {
78
+ const fullPath = path.join(dir, entry.name);
79
+ if (entry.isDirectory()) {
80
+ const result = findPromptFile(fullPath, name);
81
+ if (result)
82
+ return result;
83
+ }
84
+ else if (entry.name === `${name}.md`) {
85
+ return fullPath;
86
+ }
87
+ }
88
+ return null;
89
+ }
90
+ /** 清除提示词缓存 */
91
+ export function clearPromptCache() {
92
+ promptCache.clear();
93
+ }
94
+ /** 获取 prompts 目录路径 */
95
+ export function getPromptsDir() {
96
+ return __dirname;
97
+ }
98
+ /** 渲染模板:替换 {{variable}} 占位符 */
99
+ export function renderPrompt(template, vars) {
100
+ return template.replace(/\{\{(\w+)\}\}/g, (match, key) => vars[key] ?? match);
101
+ }
102
+ //# sourceMappingURL=loader.js.map