@claude-flow/cli 3.32.3 → 3.32.5

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 (683) hide show
  1. package/.claude/helpers/helpers.manifest.json +2 -2
  2. package/catalog-manifest.json +2 -2
  3. package/dist/src/agenticow/speculative-exploration.d.ts +148 -0
  4. package/dist/src/agenticow/speculative-exploration.js +218 -0
  5. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  6. package/dist/src/appliance/gguf-engine.js +425 -0
  7. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  8. package/dist/src/appliance/ruvllm-bridge.js +292 -0
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.js +329 -0
  11. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  12. package/dist/src/appliance/rvfa-distribution.js +370 -0
  13. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  14. package/dist/src/appliance/rvfa-format.js +393 -0
  15. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  16. package/dist/src/appliance/rvfa-runner.js +237 -0
  17. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  18. package/dist/src/appliance/rvfa-signing.js +347 -0
  19. package/dist/src/auth/client.d.ts +89 -0
  20. package/dist/src/auth/client.js +242 -0
  21. package/dist/src/auth/constants.d.ts +7 -0
  22. package/dist/src/auth/constants.js +7 -0
  23. package/dist/src/auth/scopes.d.ts +14 -0
  24. package/dist/src/auth/scopes.js +21 -0
  25. package/dist/src/auth/security-bridge.d.ts +36 -0
  26. package/dist/src/auth/security-bridge.js +42 -0
  27. package/dist/src/auth/session.d.ts +20 -0
  28. package/dist/src/auth/session.js +32 -0
  29. package/dist/src/auth/state.d.ts +19 -0
  30. package/dist/src/auth/state.js +53 -0
  31. package/dist/src/auth/types.d.ts +27 -0
  32. package/dist/src/auth/types.js +11 -0
  33. package/dist/src/autopilot-state.d.ts +77 -0
  34. package/dist/src/autopilot-state.js +271 -0
  35. package/dist/src/benchmarks/gaia-agent-planning.smoke.d.ts +18 -0
  36. package/dist/src/benchmarks/gaia-agent-planning.smoke.js +253 -0
  37. package/dist/src/benchmarks/gaia-agent.d.ts +198 -0
  38. package/dist/src/benchmarks/gaia-agent.js +651 -0
  39. package/dist/src/benchmarks/gaia-causal-memory.d.ts +133 -0
  40. package/dist/src/benchmarks/gaia-causal-memory.js +281 -0
  41. package/dist/src/benchmarks/gaia-causal-memory.smoke.d.ts +22 -0
  42. package/dist/src/benchmarks/gaia-causal-memory.smoke.js +300 -0
  43. package/dist/src/benchmarks/gaia-convergence.d.ts +138 -0
  44. package/dist/src/benchmarks/gaia-convergence.js +260 -0
  45. package/dist/src/benchmarks/gaia-convergence.smoke.d.ts +19 -0
  46. package/dist/src/benchmarks/gaia-convergence.smoke.js +246 -0
  47. package/dist/src/benchmarks/gaia-critic.d.ts +123 -0
  48. package/dist/src/benchmarks/gaia-critic.js +312 -0
  49. package/dist/src/benchmarks/gaia-critic.smoke.d.ts +21 -0
  50. package/dist/src/benchmarks/gaia-critic.smoke.js +327 -0
  51. package/dist/src/benchmarks/gaia-decomposer.d.ts +125 -0
  52. package/dist/src/benchmarks/gaia-decomposer.js +350 -0
  53. package/dist/src/benchmarks/gaia-decomposer.smoke.d.ts +21 -0
  54. package/dist/src/benchmarks/gaia-decomposer.smoke.js +228 -0
  55. package/dist/src/benchmarks/gaia-e2e-smoke.d.ts +27 -0
  56. package/dist/src/benchmarks/gaia-e2e-smoke.js +136 -0
  57. package/dist/src/benchmarks/gaia-extract.smoke.d.ts +45 -0
  58. package/dist/src/benchmarks/gaia-extract.smoke.js +242 -0
  59. package/dist/src/benchmarks/gaia-hardness/features.d.ts +46 -0
  60. package/dist/src/benchmarks/gaia-hardness/features.js +170 -0
  61. package/dist/src/benchmarks/gaia-hardness/predictor.d.ts +105 -0
  62. package/dist/src/benchmarks/gaia-hardness/predictor.js +260 -0
  63. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.d.ts +20 -0
  64. package/dist/src/benchmarks/gaia-hardness/predictor.smoke.js +235 -0
  65. package/dist/src/benchmarks/gaia-hardness/train-data-loader.d.ts +51 -0
  66. package/dist/src/benchmarks/gaia-hardness/train-data-loader.js +179 -0
  67. package/dist/src/benchmarks/gaia-judge.d.ts +88 -0
  68. package/dist/src/benchmarks/gaia-judge.js +437 -0
  69. package/dist/src/benchmarks/gaia-loader.d.ts +87 -0
  70. package/dist/src/benchmarks/gaia-loader.js +326 -0
  71. package/dist/src/benchmarks/gaia-tools/file_read.d.ts +35 -0
  72. package/dist/src/benchmarks/gaia-tools/file_read.js +403 -0
  73. package/dist/src/benchmarks/gaia-tools/grounded_query.d.ts +126 -0
  74. package/dist/src/benchmarks/gaia-tools/grounded_query.js +225 -0
  75. package/dist/src/benchmarks/gaia-tools/index.d.ts +32 -0
  76. package/dist/src/benchmarks/gaia-tools/index.js +36 -0
  77. package/dist/src/benchmarks/gaia-tools/types.d.ts +62 -0
  78. package/dist/src/benchmarks/gaia-tools/types.js +12 -0
  79. package/dist/src/benchmarks/gaia-tools/web_search.d.ts +30 -0
  80. package/dist/src/benchmarks/gaia-tools/web_search.js +210 -0
  81. package/dist/src/benchmarks/gaia-voting.d.ts +88 -0
  82. package/dist/src/benchmarks/gaia-voting.js +297 -0
  83. package/dist/src/benchmarks/gaia-voting.smoke.d.ts +20 -0
  84. package/dist/src/benchmarks/gaia-voting.smoke.js +332 -0
  85. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  86. package/dist/src/benchmarks/pretrain/index.js +404 -0
  87. package/dist/src/business-pods/bbs-budget-tracker.d.ts +139 -0
  88. package/dist/src/business-pods/bbs-budget-tracker.js +358 -0
  89. package/dist/src/business-pods/domain-affinity-policy.d.ts +47 -0
  90. package/dist/src/business-pods/domain-affinity-policy.js +65 -0
  91. package/dist/src/business-pods/pod-schema.d.ts +96 -0
  92. package/dist/src/business-pods/pod-schema.js +225 -0
  93. package/dist/src/commands/advisor.d.ts +15 -0
  94. package/dist/src/commands/advisor.js +94 -0
  95. package/dist/src/commands/agent-wasm.d.ts +14 -0
  96. package/dist/src/commands/agent-wasm.js +333 -0
  97. package/dist/src/commands/agent.d.ts +8 -0
  98. package/dist/src/commands/agent.js +927 -0
  99. package/dist/src/commands/analyze.d.ts +19 -0
  100. package/dist/src/commands/analyze.js +2047 -0
  101. package/dist/src/commands/announcements.d.ts +17 -0
  102. package/dist/src/commands/announcements.js +0 -0
  103. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  104. package/dist/src/commands/appliance-advanced.js +215 -0
  105. package/dist/src/commands/appliance.d.ts +8 -0
  106. package/dist/src/commands/appliance.js +404 -0
  107. package/dist/src/commands/auth.d.ts +15 -0
  108. package/dist/src/commands/auth.js +244 -0
  109. package/dist/src/commands/autopilot.d.ts +15 -0
  110. package/dist/src/commands/autopilot.js +407 -0
  111. package/dist/src/commands/benchmark.d.ts +10 -0
  112. package/dist/src/commands/benchmark.js +460 -0
  113. package/dist/src/commands/claims.d.ts +10 -0
  114. package/dist/src/commands/claims.js +620 -0
  115. package/dist/src/commands/cleanup.d.ts +13 -0
  116. package/dist/src/commands/cleanup.js +250 -0
  117. package/dist/src/commands/completions.d.ts +10 -0
  118. package/dist/src/commands/completions.js +539 -0
  119. package/dist/src/commands/config.d.ts +8 -0
  120. package/dist/src/commands/config.js +428 -0
  121. package/dist/src/commands/daemon.d.ts +59 -0
  122. package/dist/src/commands/daemon.js +1733 -0
  123. package/dist/src/commands/deployment.d.ts +10 -0
  124. package/dist/src/commands/deployment.js +672 -0
  125. package/dist/src/commands/doctor.d.ts +10 -0
  126. package/dist/src/commands/doctor.js +1902 -0
  127. package/dist/src/commands/eject.d.ts +33 -0
  128. package/dist/src/commands/eject.js +195 -0
  129. package/dist/src/commands/embeddings.d.ts +18 -0
  130. package/dist/src/commands/embeddings.js +1623 -0
  131. package/dist/src/commands/funnel.d.ts +18 -0
  132. package/dist/src/commands/funnel.js +302 -0
  133. package/dist/src/commands/gaia-bench.d.ts +40 -0
  134. package/dist/src/commands/gaia-bench.js +597 -0
  135. package/dist/src/commands/guidance.d.ts +8 -0
  136. package/dist/src/commands/guidance.js +556 -0
  137. package/dist/src/commands/hive-mind.d.ts +11 -0
  138. package/dist/src/commands/hive-mind.js +1319 -0
  139. package/dist/src/commands/hooks.d.ts +8 -0
  140. package/dist/src/commands/hooks.js +4606 -0
  141. package/dist/src/commands/index.d.ts +118 -0
  142. package/dist/src/commands/index.js +366 -0
  143. package/dist/src/commands/init.d.ts +13 -0
  144. package/dist/src/commands/init.js +1297 -0
  145. package/dist/src/commands/issues.d.ts +21 -0
  146. package/dist/src/commands/issues.js +567 -0
  147. package/dist/src/commands/mcp.d.ts +11 -0
  148. package/dist/src/commands/mcp.js +732 -0
  149. package/dist/src/commands/memory-backup.d.ts +11 -0
  150. package/dist/src/commands/memory-backup.js +46 -0
  151. package/dist/src/commands/memory-distill.d.ts +27 -0
  152. package/dist/src/commands/memory-distill.js +374 -0
  153. package/dist/src/commands/memory.d.ts +8 -0
  154. package/dist/src/commands/memory.js +1596 -0
  155. package/dist/src/commands/metaharness.d.ts +39 -0
  156. package/dist/src/commands/metaharness.js +215 -0
  157. package/dist/src/commands/migrate.d.ts +8 -0
  158. package/dist/src/commands/migrate.js +742 -0
  159. package/dist/src/commands/neural.d.ts +10 -0
  160. package/dist/src/commands/neural.js +4331 -0
  161. package/dist/src/commands/performance.d.ts +10 -0
  162. package/dist/src/commands/performance.js +583 -0
  163. package/dist/src/commands/plugins.d.ts +11 -0
  164. package/dist/src/commands/plugins.js +826 -0
  165. package/dist/src/commands/process.d.ts +10 -0
  166. package/dist/src/commands/process.js +694 -0
  167. package/dist/src/commands/progress.d.ts +11 -0
  168. package/dist/src/commands/progress.js +259 -0
  169. package/dist/src/commands/providers.d.ts +10 -0
  170. package/dist/src/commands/providers.js +502 -0
  171. package/dist/src/commands/proxy-lifecycle.d.ts +20 -0
  172. package/dist/src/commands/proxy-lifecycle.js +277 -0
  173. package/dist/src/commands/proxy.d.ts +21 -0
  174. package/dist/src/commands/proxy.js +403 -0
  175. package/dist/src/commands/route.d.ts +16 -0
  176. package/dist/src/commands/route.js +822 -0
  177. package/dist/src/commands/ruvector/backup.d.ts +11 -0
  178. package/dist/src/commands/ruvector/backup.js +747 -0
  179. package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  180. package/dist/src/commands/ruvector/benchmark.js +490 -0
  181. package/dist/src/commands/ruvector/import.d.ts +18 -0
  182. package/dist/src/commands/ruvector/import.js +373 -0
  183. package/dist/src/commands/ruvector/index.d.ts +29 -0
  184. package/dist/src/commands/ruvector/index.js +129 -0
  185. package/dist/src/commands/ruvector/init.d.ts +11 -0
  186. package/dist/src/commands/ruvector/init.js +467 -0
  187. package/dist/src/commands/ruvector/migrate.d.ts +11 -0
  188. package/dist/src/commands/ruvector/migrate.js +498 -0
  189. package/dist/src/commands/ruvector/optimize.d.ts +11 -0
  190. package/dist/src/commands/ruvector/optimize.js +505 -0
  191. package/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
  192. package/dist/src/commands/ruvector/pg-utils.js +41 -0
  193. package/dist/src/commands/ruvector/setup.d.ts +18 -0
  194. package/dist/src/commands/ruvector/setup.js +765 -0
  195. package/dist/src/commands/ruvector/status.d.ts +11 -0
  196. package/dist/src/commands/ruvector/status.js +479 -0
  197. package/dist/src/commands/security.d.ts +10 -0
  198. package/dist/src/commands/security.js +1012 -0
  199. package/dist/src/commands/session.d.ts +8 -0
  200. package/dist/src/commands/session.js +757 -0
  201. package/dist/src/commands/settings.d.ts +19 -0
  202. package/dist/src/commands/settings.js +180 -0
  203. package/dist/src/commands/spinner.d.ts +16 -0
  204. package/dist/src/commands/spinner.js +329 -0
  205. package/dist/src/commands/start.d.ts +8 -0
  206. package/dist/src/commands/start.js +418 -0
  207. package/dist/src/commands/status.d.ts +8 -0
  208. package/dist/src/commands/status.js +608 -0
  209. package/dist/src/commands/swarm.d.ts +8 -0
  210. package/dist/src/commands/swarm.js +891 -0
  211. package/dist/src/commands/task.d.ts +8 -0
  212. package/dist/src/commands/task.js +675 -0
  213. package/dist/src/commands/transfer-store.d.ts +13 -0
  214. package/dist/src/commands/transfer-store.js +428 -0
  215. package/dist/src/commands/update.d.ts +8 -0
  216. package/dist/src/commands/update.js +276 -0
  217. package/dist/src/commands/verify.d.ts +19 -0
  218. package/dist/src/commands/verify.js +261 -0
  219. package/dist/src/commands/version.d.ts +42 -0
  220. package/dist/src/commands/version.js +106 -0
  221. package/dist/src/commands/workflow.d.ts +8 -0
  222. package/dist/src/commands/workflow.js +617 -0
  223. package/dist/src/config/harness-feedback-applier.d.ts +50 -0
  224. package/dist/src/config/harness-feedback-applier.js +122 -0
  225. package/dist/src/config/proven-config-refresh.d.ts +39 -0
  226. package/dist/src/config/proven-config-refresh.js +154 -0
  227. package/dist/src/config/proven-config-rvfa.d.ts +23 -0
  228. package/dist/src/config/proven-config-rvfa.js +73 -0
  229. package/dist/src/config/proven-config.d.ts +86 -0
  230. package/dist/src/config/proven-config.js +176 -0
  231. package/dist/src/config-adapter.d.ts +15 -0
  232. package/dist/src/config-adapter.js +186 -0
  233. package/dist/src/encryption/vault.d.ts +94 -0
  234. package/dist/src/encryption/vault.js +172 -0
  235. package/dist/src/fs-secure.d.ts +86 -0
  236. package/dist/src/fs-secure.js +133 -0
  237. package/dist/src/funnel/advisor-tip.d.ts +58 -0
  238. package/dist/src/funnel/advisor-tip.js +92 -0
  239. package/dist/src/funnel/attribution.d.ts +37 -0
  240. package/dist/src/funnel/attribution.js +101 -0
  241. package/dist/src/funnel/consent.d.ts +22 -0
  242. package/dist/src/funnel/consent.js +58 -0
  243. package/dist/src/funnel/credit-errors.d.ts +31 -0
  244. package/dist/src/funnel/credit-errors.js +88 -0
  245. package/dist/src/funnel/credit-notifier.d.ts +44 -0
  246. package/dist/src/funnel/credit-notifier.js +74 -0
  247. package/dist/src/funnel/disclosure.d.ts +47 -0
  248. package/dist/src/funnel/disclosure.js +109 -0
  249. package/dist/src/funnel/enrollment.d.ts +36 -0
  250. package/dist/src/funnel/enrollment.js +64 -0
  251. package/dist/src/funnel/environment.d.ts +17 -0
  252. package/dist/src/funnel/environment.js +39 -0
  253. package/dist/src/funnel/event-transport.d.ts +51 -0
  254. package/dist/src/funnel/event-transport.js +199 -0
  255. package/dist/src/funnel/events.d.ts +42 -0
  256. package/dist/src/funnel/events.js +150 -0
  257. package/dist/src/funnel/index.d.ts +21 -0
  258. package/dist/src/funnel/index.js +21 -0
  259. package/dist/src/funnel/insights.d.ts +50 -0
  260. package/dist/src/funnel/insights.js +120 -0
  261. package/dist/src/funnel/local-signals.d.ts +20 -0
  262. package/dist/src/funnel/local-signals.js +77 -0
  263. package/dist/src/funnel/message-transport.d.ts +51 -0
  264. package/dist/src/funnel/message-transport.js +149 -0
  265. package/dist/src/funnel/messages.d.ts +55 -0
  266. package/dist/src/funnel/messages.js +160 -0
  267. package/dist/src/funnel/payout.d.ts +40 -0
  268. package/dist/src/funnel/payout.js +60 -0
  269. package/dist/src/funnel/power-saver-notifier.d.ts +44 -0
  270. package/dist/src/funnel/power-saver-notifier.js +92 -0
  271. package/dist/src/funnel/precedence.d.ts +16 -0
  272. package/dist/src/funnel/precedence.js +85 -0
  273. package/dist/src/funnel/promo.d.ts +41 -0
  274. package/dist/src/funnel/promo.js +144 -0
  275. package/dist/src/funnel/rate-limit-notifier.d.ts +55 -0
  276. package/dist/src/funnel/rate-limit-notifier.js +102 -0
  277. package/dist/src/funnel/rotation.d.ts +19 -0
  278. package/dist/src/funnel/rotation.js +70 -0
  279. package/dist/src/funnel/state.d.ts +13 -0
  280. package/dist/src/funnel/state.js +52 -0
  281. package/dist/src/funnel/toggle-cooldown.d.ts +17 -0
  282. package/dist/src/funnel/toggle-cooldown.js +32 -0
  283. package/dist/src/funnel/types.d.ts +98 -0
  284. package/dist/src/funnel/types.js +26 -0
  285. package/dist/src/index.d.ts +81 -0
  286. package/dist/src/index.js +609 -0
  287. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  288. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  289. package/dist/src/init/claudemd-generator.d.ts +16 -0
  290. package/dist/src/init/claudemd-generator.js +368 -0
  291. package/dist/src/init/executor.d.ts +41 -0
  292. package/dist/src/init/executor.js +2142 -0
  293. package/dist/src/init/helper-refresh.d.ts +79 -0
  294. package/dist/src/init/helper-refresh.js +347 -0
  295. package/dist/src/init/helper-signing.d.ts +37 -0
  296. package/dist/src/init/helper-signing.js +67 -0
  297. package/dist/src/init/helpers-generator.d.ts +87 -0
  298. package/dist/src/init/helpers-generator.js +1456 -0
  299. package/dist/src/init/index.d.ts +13 -0
  300. package/dist/src/init/index.js +15 -0
  301. package/dist/src/init/mcp-generator.d.ts +26 -0
  302. package/dist/src/init/mcp-generator.js +126 -0
  303. package/dist/src/init/memory-package-resolver.d.ts +53 -0
  304. package/dist/src/init/memory-package-resolver.js +118 -0
  305. package/dist/src/init/settings-generator.d.ts +14 -0
  306. package/dist/src/init/settings-generator.js +462 -0
  307. package/dist/src/init/statusline-generator.d.ts +28 -0
  308. package/dist/src/init/statusline-generator.js +177 -0
  309. package/dist/src/init/types.d.ts +331 -0
  310. package/dist/src/init/types.js +276 -0
  311. package/dist/src/log-filters.d.ts +46 -0
  312. package/dist/src/log-filters.js +107 -0
  313. package/dist/src/mcp-client.d.ts +92 -0
  314. package/dist/src/mcp-client.js +397 -0
  315. package/dist/src/mcp-server.d.ts +163 -0
  316. package/dist/src/mcp-server.js +751 -0
  317. package/dist/src/mcp-tools/agent-execute-core.d.ts +115 -0
  318. package/dist/src/mcp-tools/agent-execute-core.js +587 -0
  319. package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  320. package/dist/src/mcp-tools/agent-tools.js +837 -0
  321. package/dist/src/mcp-tools/agentbbs-tools.d.ts +28 -0
  322. package/dist/src/mcp-tools/agentbbs-tools.js +394 -0
  323. package/dist/src/mcp-tools/agentdb-tools.d.ts +35 -0
  324. package/dist/src/mcp-tools/agentdb-tools.js +1473 -0
  325. package/dist/src/mcp-tools/agenticow-loader.d.ts +59 -0
  326. package/dist/src/mcp-tools/agenticow-loader.js +105 -0
  327. package/dist/src/mcp-tools/agenticow-speculate-tools.d.ts +24 -0
  328. package/dist/src/mcp-tools/agenticow-speculate-tools.js +209 -0
  329. package/dist/src/mcp-tools/agenticow-tools.d.ts +36 -0
  330. package/dist/src/mcp-tools/agenticow-tools.js +360 -0
  331. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  332. package/dist/src/mcp-tools/analyze-tools.js +346 -0
  333. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  334. package/dist/src/mcp-tools/auto-install.js +131 -0
  335. package/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
  336. package/dist/src/mcp-tools/autopilot-tools.js +231 -0
  337. package/dist/src/mcp-tools/browser-intent-tools.d.ts +162 -0
  338. package/dist/src/mcp-tools/browser-intent-tools.js +548 -0
  339. package/dist/src/mcp-tools/browser-session-tools.d.ts +27 -0
  340. package/dist/src/mcp-tools/browser-session-tools.js +398 -0
  341. package/dist/src/mcp-tools/browser-tools.d.ts +21 -0
  342. package/dist/src/mcp-tools/browser-tools.js +760 -0
  343. package/dist/src/mcp-tools/business-pod-tools.d.ts +20 -0
  344. package/dist/src/mcp-tools/business-pod-tools.js +169 -0
  345. package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  346. package/dist/src/mcp-tools/claims-tools.js +863 -0
  347. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  348. package/dist/src/mcp-tools/config-tools.js +411 -0
  349. package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  350. package/dist/src/mcp-tools/coordination-tools.js +729 -0
  351. package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  352. package/dist/src/mcp-tools/daa-tools.js +534 -0
  353. package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  354. package/dist/src/mcp-tools/embeddings-tools.js +904 -0
  355. package/dist/src/mcp-tools/github-tools.d.ts +9 -0
  356. package/dist/src/mcp-tools/github-tools.js +659 -0
  357. package/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
  358. package/dist/src/mcp-tools/guidance-tools.js +639 -0
  359. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  360. package/dist/src/mcp-tools/hive-mind-tools.js +953 -0
  361. package/dist/src/mcp-tools/hooks-tools.d.ts +65 -0
  362. package/dist/src/mcp-tools/hooks-tools.js +4836 -0
  363. package/dist/src/mcp-tools/http-fetch-tools.d.ts +55 -0
  364. package/dist/src/mcp-tools/http-fetch-tools.js +329 -0
  365. package/dist/src/mcp-tools/index.d.ts +34 -0
  366. package/dist/src/mcp-tools/index.js +40 -0
  367. package/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
  368. package/dist/src/mcp-tools/managed-agent-tools.js +357 -0
  369. package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  370. package/dist/src/mcp-tools/memory-tools.js +1330 -0
  371. package/dist/src/mcp-tools/metaharness-tools.d.ts +51 -0
  372. package/dist/src/mcp-tools/metaharness-tools.js +684 -0
  373. package/dist/src/mcp-tools/neural-tools.d.ts +54 -0
  374. package/dist/src/mcp-tools/neural-tools.js +1168 -0
  375. package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  376. package/dist/src/mcp-tools/performance-tools.js +675 -0
  377. package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  378. package/dist/src/mcp-tools/progress-tools.js +348 -0
  379. package/dist/src/mcp-tools/request-tracker.d.ts +17 -0
  380. package/dist/src/mcp-tools/request-tracker.js +27 -0
  381. package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  382. package/dist/src/mcp-tools/ruvllm-tools.js +355 -0
  383. package/dist/src/mcp-tools/security-tools.d.ts +18 -0
  384. package/dist/src/mcp-tools/security-tools.js +556 -0
  385. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  386. package/dist/src/mcp-tools/session-tools.js +517 -0
  387. package/dist/src/mcp-tools/swarm-tools.d.ts +37 -0
  388. package/dist/src/mcp-tools/swarm-tools.js +390 -0
  389. package/dist/src/mcp-tools/system-tools.d.ts +13 -0
  390. package/dist/src/mcp-tools/system-tools.js +688 -0
  391. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  392. package/dist/src/mcp-tools/task-tools.js +487 -0
  393. package/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
  394. package/dist/src/mcp-tools/terminal-tools.js +306 -0
  395. package/dist/src/mcp-tools/testgen-tools.d.ts +26 -0
  396. package/dist/src/mcp-tools/testgen-tools.js +168 -0
  397. package/dist/src/mcp-tools/tool-loop-guardrail.d.ts +31 -0
  398. package/dist/src/mcp-tools/tool-loop-guardrail.js +71 -0
  399. package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  400. package/dist/src/mcp-tools/transfer-tools.js +447 -0
  401. package/dist/src/mcp-tools/types.d.ts +8 -0
  402. package/dist/src/mcp-tools/types.js +8 -0
  403. package/dist/src/mcp-tools/validate-input.d.ts +9 -0
  404. package/dist/src/mcp-tools/validate-input.js +9 -0
  405. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +13 -0
  406. package/dist/src/mcp-tools/wasm-agent-tools.js +840 -0
  407. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  408. package/dist/src/mcp-tools/workflow-tools.js +884 -0
  409. package/dist/src/memory/bge-embedder.d.ts +25 -0
  410. package/dist/src/memory/bge-embedder.js +121 -0
  411. package/dist/src/memory/cross-encoder-rerank.d.ts +33 -0
  412. package/dist/src/memory/cross-encoder-rerank.js +123 -0
  413. package/dist/src/memory/embedding-policy.d.ts +21 -0
  414. package/dist/src/memory/embedding-policy.js +30 -0
  415. package/dist/src/memory/embedding-quantization.d.ts +62 -0
  416. package/dist/src/memory/embedding-quantization.js +156 -0
  417. package/dist/src/memory/ewc-consolidation.d.ts +305 -0
  418. package/dist/src/memory/ewc-consolidation.js +611 -0
  419. package/dist/src/memory/graph-edge-writer.d.ts +95 -0
  420. package/dist/src/memory/graph-edge-writer.js +217 -0
  421. package/dist/src/memory/hybrid-retrieval.d.ts +77 -0
  422. package/dist/src/memory/hybrid-retrieval.js +192 -0
  423. package/dist/src/memory/intelligence.d.ts +405 -0
  424. package/dist/src/memory/intelligence.js +1316 -0
  425. package/dist/src/memory/lucene-bm25.d.ts +19 -0
  426. package/dist/src/memory/lucene-bm25.js +308 -0
  427. package/dist/src/memory/memory-bridge.d.ts +537 -0
  428. package/dist/src/memory/memory-bridge.js +2460 -0
  429. package/dist/src/memory/memory-initializer.d.ts +556 -0
  430. package/dist/src/memory/memory-initializer.js +3021 -0
  431. package/dist/src/memory/neural-package-bridge.d.ts +48 -0
  432. package/dist/src/memory/neural-package-bridge.js +87 -0
  433. package/dist/src/memory/rabitq-index.d.ts +60 -0
  434. package/dist/src/memory/rabitq-index.js +242 -0
  435. package/dist/src/memory/sona-optimizer.d.ts +267 -0
  436. package/dist/src/memory/sona-optimizer.js +779 -0
  437. package/dist/src/memory/structured-distill.d.ts +48 -0
  438. package/dist/src/memory/structured-distill.js +125 -0
  439. package/dist/src/output.d.ts +9 -0
  440. package/dist/src/output.js +9 -0
  441. package/dist/src/parser.d.ts +89 -0
  442. package/dist/src/parser.js +516 -0
  443. package/dist/src/plugins/manager.d.ts +133 -0
  444. package/dist/src/plugins/manager.js +415 -0
  445. package/dist/src/plugins/store/discovery.d.ts +99 -0
  446. package/dist/src/plugins/store/discovery.js +1224 -0
  447. package/dist/src/plugins/store/index.d.ts +76 -0
  448. package/dist/src/plugins/store/index.js +141 -0
  449. package/dist/src/plugins/store/search.d.ts +46 -0
  450. package/dist/src/plugins/store/search.js +230 -0
  451. package/dist/src/plugins/store/types.d.ts +279 -0
  452. package/dist/src/plugins/store/types.js +7 -0
  453. package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  454. package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  455. package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  456. package/dist/src/plugins/tests/standalone-test.js +188 -0
  457. package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  458. package/dist/src/plugins/tests/test-plugin-store.js +206 -0
  459. package/dist/src/production/circuit-breaker.d.ts +101 -0
  460. package/dist/src/production/circuit-breaker.js +241 -0
  461. package/dist/src/production/error-handler.d.ts +92 -0
  462. package/dist/src/production/error-handler.js +299 -0
  463. package/dist/src/production/index.d.ts +23 -0
  464. package/dist/src/production/index.js +18 -0
  465. package/dist/src/production/monitoring.d.ts +161 -0
  466. package/dist/src/production/monitoring.js +356 -0
  467. package/dist/src/production/rate-limiter.d.ts +80 -0
  468. package/dist/src/production/rate-limiter.js +201 -0
  469. package/dist/src/production/retry.d.ts +48 -0
  470. package/dist/src/production/retry.js +179 -0
  471. package/dist/src/prompt.d.ts +44 -0
  472. package/dist/src/prompt.js +501 -0
  473. package/dist/src/proxy/install.d.ts +29 -0
  474. package/dist/src/proxy/install.js +135 -0
  475. package/dist/src/proxy/lifecycle.d.ts +61 -0
  476. package/dist/src/proxy/lifecycle.js +249 -0
  477. package/dist/src/proxy/paths.d.ts +34 -0
  478. package/dist/src/proxy/paths.js +70 -0
  479. package/dist/src/proxy/release.d.ts +47 -0
  480. package/dist/src/proxy/release.js +138 -0
  481. package/dist/src/proxy/token-bridge.d.ts +5 -0
  482. package/dist/src/proxy/token-bridge.js +61 -0
  483. package/dist/src/proxy/verify.d.ts +44 -0
  484. package/dist/src/proxy/verify.js +68 -0
  485. package/dist/src/runtime/headless.d.ts +60 -0
  486. package/dist/src/runtime/headless.js +284 -0
  487. package/dist/src/runtime/parent-death-watchdog.d.ts +42 -0
  488. package/dist/src/runtime/parent-death-watchdog.js +70 -0
  489. package/dist/src/ruvector/agent-wasm.d.ts +228 -0
  490. package/dist/src/ruvector/agent-wasm.js +463 -0
  491. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  492. package/dist/src/ruvector/ast-analyzer.js +277 -0
  493. package/dist/src/ruvector/codemods/engine.d.ts +45 -0
  494. package/dist/src/ruvector/codemods/engine.js +291 -0
  495. package/dist/src/ruvector/codemods/scope-analysis.d.ts +29 -0
  496. package/dist/src/ruvector/codemods/scope-analysis.js +162 -0
  497. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  498. package/dist/src/ruvector/coverage-router.js +531 -0
  499. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  500. package/dist/src/ruvector/coverage-tools.js +157 -0
  501. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  502. package/dist/src/ruvector/diff-classifier.js +699 -0
  503. package/dist/src/ruvector/diskann-backend.d.ts +78 -0
  504. package/dist/src/ruvector/diskann-backend.js +310 -0
  505. package/dist/src/ruvector/enhanced-model-router.d.ts +172 -0
  506. package/dist/src/ruvector/enhanced-model-router.js +577 -0
  507. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  508. package/dist/src/ruvector/graph-analyzer.js +929 -0
  509. package/dist/src/ruvector/graph-backend.d.ts +79 -0
  510. package/dist/src/ruvector/graph-backend.js +220 -0
  511. package/dist/src/ruvector/index.d.ts +38 -0
  512. package/dist/src/ruvector/index.js +86 -0
  513. package/dist/src/ruvector/lora-adapter.d.ts +292 -0
  514. package/dist/src/ruvector/lora-adapter.js +710 -0
  515. package/dist/src/ruvector/model-prices.d.ts +50 -0
  516. package/dist/src/ruvector/model-prices.js +72 -0
  517. package/dist/src/ruvector/model-router.d.ts +408 -0
  518. package/dist/src/ruvector/model-router.js +1162 -0
  519. package/dist/src/ruvector/neural-router.d.ts +182 -0
  520. package/dist/src/ruvector/neural-router.js +825 -0
  521. package/dist/src/ruvector/output-verifier.d.ts +83 -0
  522. package/dist/src/ruvector/output-verifier.js +277 -0
  523. package/dist/src/ruvector/q-learning-router.d.ts +227 -0
  524. package/dist/src/ruvector/q-learning-router.js +721 -0
  525. package/dist/src/ruvector/router-calibrator.d.ts +65 -0
  526. package/dist/src/ruvector/router-calibrator.js +120 -0
  527. package/dist/src/ruvector/router-parallel-recorder.d.ts +127 -0
  528. package/dist/src/ruvector/router-parallel-recorder.js +183 -0
  529. package/dist/src/ruvector/router-trajectory.d.ts +194 -0
  530. package/dist/src/ruvector/router-trajectory.js +281 -0
  531. package/dist/src/ruvector/run-transcript-recorder.d.ts +154 -0
  532. package/dist/src/ruvector/run-transcript-recorder.js +209 -0
  533. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  534. package/dist/src/ruvector/ruvllm-wasm.js +379 -0
  535. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  536. package/dist/src/ruvector/semantic-router.js +178 -0
  537. package/dist/src/ruvector/task-embedder.d.ts +56 -0
  538. package/dist/src/ruvector/task-embedder.js +237 -0
  539. package/dist/src/ruvector/trajectory-tree.d.ts +113 -0
  540. package/dist/src/ruvector/trajectory-tree.js +237 -0
  541. package/dist/src/ruvector/vector-db.d.ts +73 -0
  542. package/dist/src/ruvector/vector-db.js +301 -0
  543. package/dist/src/ruvector/wasm-embedder.d.ts +13 -0
  544. package/dist/src/ruvector/wasm-embedder.js +143 -0
  545. package/dist/src/security/builtin-aidefence.d.ts +34 -0
  546. package/dist/src/security/builtin-aidefence.js +86 -0
  547. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  548. package/dist/src/services/agentic-flow-bridge.js +95 -0
  549. package/dist/src/services/ai-job-dedup.d.ts +61 -0
  550. package/dist/src/services/ai-job-dedup.js +136 -0
  551. package/dist/src/services/checkpoint-gate.d.ts +140 -0
  552. package/dist/src/services/checkpoint-gate.js +223 -0
  553. package/dist/src/services/claim-service.d.ts +204 -0
  554. package/dist/src/services/claim-service.js +818 -0
  555. package/dist/src/services/config-file-manager.d.ts +37 -0
  556. package/dist/src/services/config-file-manager.js +224 -0
  557. package/dist/src/services/container-worker-pool.d.ts +204 -0
  558. package/dist/src/services/container-worker-pool.js +589 -0
  559. package/dist/src/services/daemon-autostart.d.ts +17 -0
  560. package/dist/src/services/daemon-autostart.js +102 -0
  561. package/dist/src/services/distill-oracle.d.ts +190 -0
  562. package/dist/src/services/distill-oracle.js +349 -0
  563. package/dist/src/services/distill-tuning.d.ts +111 -0
  564. package/dist/src/services/distill-tuning.js +510 -0
  565. package/dist/src/services/evolve-proof.d.ts +253 -0
  566. package/dist/src/services/evolve-proof.js +343 -0
  567. package/dist/src/services/fable-harness.d.ts +208 -0
  568. package/dist/src/services/fable-harness.js +388 -0
  569. package/dist/src/services/git-workspace-identity.d.ts +42 -0
  570. package/dist/src/services/git-workspace-identity.js +99 -0
  571. package/dist/src/services/global-ai-budget.d.ts +135 -0
  572. package/dist/src/services/global-ai-budget.js +415 -0
  573. package/dist/src/services/harness-benchmark.d.ts +68 -0
  574. package/dist/src/services/harness-benchmark.js +94 -0
  575. package/dist/src/services/harness-canary.d.ts +60 -0
  576. package/dist/src/services/harness-canary.js +69 -0
  577. package/dist/src/services/harness-corpus-harvester.d.ts +51 -0
  578. package/dist/src/services/harness-corpus-harvester.js +74 -0
  579. package/dist/src/services/harness-flywheel-generations.d.ts +115 -0
  580. package/dist/src/services/harness-flywheel-generations.js +360 -0
  581. package/dist/src/services/harness-flywheel-runtime.d.ts +25 -0
  582. package/dist/src/services/harness-flywheel-runtime.js +92 -0
  583. package/dist/src/services/harness-flywheel.d.ts +48 -0
  584. package/dist/src/services/harness-flywheel.js +207 -0
  585. package/dist/src/services/harness-frozen-eval.d.ts +22 -0
  586. package/dist/src/services/harness-frozen-eval.js +66 -0
  587. package/dist/src/services/harness-hosts.d.ts +40 -0
  588. package/dist/src/services/harness-hosts.js +88 -0
  589. package/dist/src/services/harness-improvement-ledger.d.ts +63 -0
  590. package/dist/src/services/harness-improvement-ledger.js +101 -0
  591. package/dist/src/services/harness-loop.d.ts +53 -0
  592. package/dist/src/services/harness-loop.js +85 -0
  593. package/dist/src/services/harness-qualification.d.ts +66 -0
  594. package/dist/src/services/harness-qualification.js +143 -0
  595. package/dist/src/services/harness-replay.d.ts +37 -0
  596. package/dist/src/services/harness-replay.js +92 -0
  597. package/dist/src/services/harness-verify.d.ts +33 -0
  598. package/dist/src/services/harness-verify.js +26 -0
  599. package/dist/src/services/harness-worker.d.ts +23 -0
  600. package/dist/src/services/harness-worker.js +66 -0
  601. package/dist/src/services/headless-worker-executor.d.ts +358 -0
  602. package/dist/src/services/headless-worker-executor.js +1269 -0
  603. package/dist/src/services/index.d.ts +13 -0
  604. package/dist/src/services/index.js +11 -0
  605. package/dist/src/services/memory-backup.d.ts +53 -0
  606. package/dist/src/services/memory-backup.js +198 -0
  607. package/dist/src/services/memory-distillation.d.ts +41 -0
  608. package/dist/src/services/memory-distillation.js +277 -0
  609. package/dist/src/services/native-training.d.ts +68 -0
  610. package/dist/src/services/native-training.js +141 -0
  611. package/dist/src/services/registry-api.d.ts +58 -0
  612. package/dist/src/services/registry-api.js +146 -0
  613. package/dist/src/services/repo-supervisor.d.ts +70 -0
  614. package/dist/src/services/repo-supervisor.js +228 -0
  615. package/dist/src/services/ruvector-training.d.ts +222 -0
  616. package/dist/src/services/ruvector-training.js +693 -0
  617. package/dist/src/services/swarm-memory-branches.d.ts +135 -0
  618. package/dist/src/services/swarm-memory-branches.js +213 -0
  619. package/dist/src/services/weight-eft.d.ts +305 -0
  620. package/dist/src/services/weight-eft.js +296 -0
  621. package/dist/src/services/worker-daemon.d.ts +439 -0
  622. package/dist/src/services/worker-daemon.js +1865 -0
  623. package/dist/src/services/worker-queue.d.ts +194 -0
  624. package/dist/src/services/worker-queue.js +513 -0
  625. package/dist/src/services/workspace-lease.d.ts +55 -0
  626. package/dist/src/services/workspace-lease.js +191 -0
  627. package/dist/src/suggest.d.ts +53 -0
  628. package/dist/src/suggest.js +200 -0
  629. package/dist/src/transfer/anonymization/index.d.ts +25 -0
  630. package/dist/src/transfer/anonymization/index.js +175 -0
  631. package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  632. package/dist/src/transfer/deploy-seraphine.js +205 -0
  633. package/dist/src/transfer/export.d.ts +25 -0
  634. package/dist/src/transfer/export.js +113 -0
  635. package/dist/src/transfer/index.d.ts +12 -0
  636. package/dist/src/transfer/index.js +31 -0
  637. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  638. package/dist/src/transfer/ipfs/client.js +307 -0
  639. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  640. package/dist/src/transfer/ipfs/upload.js +413 -0
  641. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  642. package/dist/src/transfer/models/seraphine.js +373 -0
  643. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  644. package/dist/src/transfer/serialization/cfp.js +183 -0
  645. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  646. package/dist/src/transfer/storage/gcs.js +272 -0
  647. package/dist/src/transfer/storage/index.d.ts +6 -0
  648. package/dist/src/transfer/storage/index.js +6 -0
  649. package/dist/src/transfer/store/discovery.d.ts +84 -0
  650. package/dist/src/transfer/store/discovery.js +382 -0
  651. package/dist/src/transfer/store/download.d.ts +70 -0
  652. package/dist/src/transfer/store/download.js +334 -0
  653. package/dist/src/transfer/store/index.d.ts +84 -0
  654. package/dist/src/transfer/store/index.js +153 -0
  655. package/dist/src/transfer/store/publish.d.ts +76 -0
  656. package/dist/src/transfer/store/publish.js +294 -0
  657. package/dist/src/transfer/store/registry.d.ts +58 -0
  658. package/dist/src/transfer/store/registry.js +285 -0
  659. package/dist/src/transfer/store/search.d.ts +54 -0
  660. package/dist/src/transfer/store/search.js +232 -0
  661. package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  662. package/dist/src/transfer/store/tests/standalone-test.js +190 -0
  663. package/dist/src/transfer/store/types.d.ts +193 -0
  664. package/dist/src/transfer/store/types.js +6 -0
  665. package/dist/src/transfer/test-seraphine.d.ts +6 -0
  666. package/dist/src/transfer/test-seraphine.js +105 -0
  667. package/dist/src/transfer/tests/test-store.d.ts +7 -0
  668. package/dist/src/transfer/tests/test-store.js +214 -0
  669. package/dist/src/transfer/types.d.ts +245 -0
  670. package/dist/src/transfer/types.js +6 -0
  671. package/dist/src/types.d.ts +13 -0
  672. package/dist/src/types.js +13 -0
  673. package/dist/src/update/checker.d.ts +34 -0
  674. package/dist/src/update/checker.js +191 -0
  675. package/dist/src/update/executor.d.ts +33 -0
  676. package/dist/src/update/executor.js +217 -0
  677. package/dist/src/update/index.d.ts +33 -0
  678. package/dist/src/update/index.js +64 -0
  679. package/dist/src/update/rate-limiter.d.ts +20 -0
  680. package/dist/src/update/rate-limiter.js +96 -0
  681. package/dist/src/update/validator.d.ts +17 -0
  682. package/dist/src/update/validator.js +123 -0
  683. package/package.json +1 -1
@@ -0,0 +1,462 @@
1
+ /**
2
+ * Settings.json Generator
3
+ * Creates .claude/settings.json with V3-optimized hook configurations
4
+ */
5
+ import { detectPlatform } from './types.js';
6
+ /**
7
+ * Generate the complete settings.json content
8
+ */
9
+ export function generateSettings(options) {
10
+ const settings = {};
11
+ // Add hooks if enabled. CRITICAL (#1744 #3): only emit the hooks block when
12
+ // the helpers directory will also be bundled. The hook commands point at
13
+ // .claude/helpers/hook-handler.cjs; if that file isn't created (as in
14
+ // --minimal where components.helpers=false), every hook fires and silently
15
+ // fails to find its handler. Either bundle the helpers OR drop the hooks —
16
+ // the option this fix takes is the latter (minimal stays minimal).
17
+ if (options.components.settings && options.components.helpers) {
18
+ settings.hooks = generateHooksConfig(options.hooks);
19
+ }
20
+ // Add statusLine configuration if enabled
21
+ if (options.statusline.enabled) {
22
+ settings.statusLine = generateStatusLineConfig(options);
23
+ }
24
+ // Add permissions
25
+ settings.permissions = {
26
+ allow: [
27
+ 'Bash(npx @claude-flow*)',
28
+ 'Bash(npx claude-flow*)',
29
+ 'Bash(node .claude/*)',
30
+ 'mcp__claude-flow__*',
31
+ ],
32
+ deny: [
33
+ 'Read(./.env)',
34
+ 'Read(./.env.*)',
35
+ ],
36
+ };
37
+ // #1670 — RuFlo attribution (Co-Authored-By trailer + PR footer) is now
38
+ // OPT-IN. Default behavior no longer injects a third-party Co-Authored-By
39
+ // line into the user's commits — that pattern silently inflated GitHub
40
+ // contributor graphs and was hard to undo without rewriting history. Pass
41
+ // `--attribution` (or `attribution: true` in InitOptions) to enable.
42
+ //
43
+ // #2078 — when the user DOES opt in, write a no-reply bot email so GitHub
44
+ // treats this as a tool, not a personal contribution. Personal emails get
45
+ // added to user repos' contributor graphs even when the trailer is opt-in.
46
+ // `ruflo-bot@users.noreply.github.com` is GitHub's no-reply convention and
47
+ // is excluded from contributor graphs / mapped to a tool identity.
48
+ if (options.attribution === true) {
49
+ settings.attribution = {
50
+ commit: 'Co-Authored-By: ruflo-bot <ruflo-bot@users.noreply.github.com>',
51
+ pr: '🤖 Generated with [RuFlo](https://github.com/ruvnet/ruflo)',
52
+ };
53
+ }
54
+ // Note: Claude Code expects 'model' to be a string, not an object
55
+ // Additional ruflo-specific model preferences live in claudeFlow.modelPreferences below
56
+ settings.model = 'claude-sonnet-5';
57
+ // Add Agent Teams configuration (experimental feature)
58
+ settings.env = {
59
+ // Enable Claude Code Agent Teams for multi-agent coordination
60
+ CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: '1',
61
+ // Claude Flow specific environment
62
+ CLAUDE_FLOW_V3_ENABLED: 'true',
63
+ CLAUDE_FLOW_HOOKS_ENABLED: 'true',
64
+ };
65
+ // Detect platform for platform-aware configuration
66
+ const platform = detectPlatform();
67
+ // Add V3-specific settings
68
+ settings.claudeFlow = {
69
+ version: '3.0.0',
70
+ enabled: true,
71
+ platform: {
72
+ os: platform.os,
73
+ arch: platform.arch,
74
+ shell: platform.shell,
75
+ },
76
+ modelPreferences: {
77
+ default: 'claude-sonnet-5',
78
+ routing: 'claude-haiku-4-5-20251001',
79
+ },
80
+ agentTeams: {
81
+ enabled: true,
82
+ teammateMode: 'auto', // 'auto' | 'in-process' | 'tmux'
83
+ taskListEnabled: true,
84
+ mailboxEnabled: true,
85
+ coordination: {
86
+ autoAssignOnIdle: true, // Auto-assign pending tasks when teammate is idle
87
+ trainPatternsOnComplete: true, // Train neural patterns when tasks complete
88
+ notifyLeadOnComplete: true, // Notify team lead when tasks complete
89
+ sharedMemoryNamespace: 'agent-teams', // Memory namespace for team coordination
90
+ },
91
+ hooks: {
92
+ teammateIdle: {
93
+ enabled: true,
94
+ autoAssign: true,
95
+ checkTaskList: true,
96
+ },
97
+ taskCompleted: {
98
+ enabled: true,
99
+ trainPatterns: true,
100
+ notifyLead: true,
101
+ },
102
+ },
103
+ },
104
+ swarm: {
105
+ topology: options.runtime.topology,
106
+ maxAgents: options.runtime.maxAgents,
107
+ },
108
+ memory: {
109
+ backend: options.runtime.memoryBackend,
110
+ enableHNSW: options.runtime.enableHNSW,
111
+ learningBridge: { enabled: options.runtime.enableLearningBridge ?? true },
112
+ memoryGraph: { enabled: options.runtime.enableMemoryGraph ?? true },
113
+ agentScopes: { enabled: options.runtime.enableAgentScopes ?? true },
114
+ },
115
+ neural: {
116
+ enabled: options.runtime.enableNeural,
117
+ },
118
+ daemon: {
119
+ autoStart: false, // Opt-in only — prevents unintended token consumption (#1427, #1330)
120
+ workers: [
121
+ 'map', // Codebase mapping
122
+ 'audit', // Security auditing (critical priority)
123
+ 'optimize', // Performance optimization (high priority)
124
+ ],
125
+ schedules: {
126
+ audit: { interval: '4h', priority: 'critical' },
127
+ optimize: { interval: '2h', priority: 'high' },
128
+ },
129
+ },
130
+ learning: {
131
+ enabled: true,
132
+ autoTrain: true,
133
+ patterns: ['coordination', 'optimization', 'prediction'],
134
+ retention: {
135
+ shortTerm: '24h',
136
+ longTerm: '30d',
137
+ },
138
+ },
139
+ adr: {
140
+ autoGenerate: true,
141
+ directory: '/docs/adr',
142
+ template: 'madr',
143
+ },
144
+ ddd: {
145
+ trackDomains: true,
146
+ validateBoundedContexts: true,
147
+ directory: '/docs/ddd',
148
+ },
149
+ security: {
150
+ autoScan: true,
151
+ scanOnEdit: true,
152
+ cveCheck: true,
153
+ threatModel: true,
154
+ },
155
+ };
156
+ return settings;
157
+ }
158
+ /**
159
+ * Detect if we're on Windows for platform-aware hook commands.
160
+ */
161
+ const IS_WINDOWS = process.platform === 'win32';
162
+ /**
163
+ * Build a hook command that resolves to the right helpers dir on every
164
+ * install layout. `ruflo init` can land helpers either project-locally
165
+ * (`<project>/.claude/helpers/…`, when run from a project root) or globally
166
+ * (`$HOME/.claude/helpers/…`, when settings.json gets merged into the
167
+ * user-level Claude Code config). The earlier `${CLAUDE_PROJECT_DIR:-.}`
168
+ * form assumed project-local — so any global-install user hit
169
+ * `MODULE_NOT_FOUND` on every Bash/Edit/Session hook (#1943).
170
+ *
171
+ * The fix is a tiny POSIX `sh` probe: try `$CLAUDE_PROJECT_DIR/.claude/...`
172
+ * first, fall back to `$HOME/.claude/...` if it's missing. Both modes work,
173
+ * the global install never crashes, and project-local overrides still take
174
+ * precedence when present. On Windows, the same probe via `cmd /c` (the %~%
175
+ * fallback uses `IF EXIST`).
176
+ */
177
+ function hookCmd(script, subcommand) {
178
+ if (IS_WINDOWS) {
179
+ // cmd.exe equivalent of the sh probe below. `IF EXIST` checks the
180
+ // project-local path; falls back to %USERPROFILE% if missing.
181
+ return `cmd /c "IF EXIST \"%CLAUDE_PROJECT_DIR%\\${script.replace(/\//g, '\\')}\" (node \"%CLAUDE_PROJECT_DIR%\\${script.replace(/\//g, '\\')}\" ${subcommand}) ELSE (node \"%USERPROFILE%\\${script.replace(/\//g, '\\')}\" ${subcommand})"`;
182
+ }
183
+ // POSIX sh: prefer project-local helpers, fall back to $HOME/.claude/.
184
+ // The fallback handles `ruflo init`'s global-install path where helpers
185
+ // live at `$HOME/.claude/helpers/` but Claude Code still sets
186
+ // `CLAUDE_PROJECT_DIR` to the *project* root (which has no helpers).
187
+ // eslint-disable-next-line no-template-curly-in-string
188
+ const projVar = '${CLAUDE_PROJECT_DIR:-.}';
189
+ // eslint-disable-next-line no-template-curly-in-string
190
+ const homeVar = '${HOME}';
191
+ return `sh -c 'D="${projVar}"; [ -f "$D/${script}" ] || D="${homeVar}"; exec node "$D/${script}" ${subcommand}'`;
192
+ }
193
+ /** Shorthand for CJS hook-handler commands */
194
+ function hookHandlerCmd(subcommand) {
195
+ return hookCmd('.claude/helpers/hook-handler.cjs', subcommand);
196
+ }
197
+ /** Shorthand for ESM auto-memory-hook commands */
198
+ function autoMemoryCmd(subcommand) {
199
+ return hookCmd('.claude/helpers/auto-memory-hook.mjs', subcommand);
200
+ }
201
+ /**
202
+ * Generate statusLine configuration for Claude Code
203
+ * Uses local helper script for cross-platform compatibility (no npx cold-start)
204
+ */
205
+ function generateStatusLineConfig(_options) {
206
+ // Claude Code pipes JSON session data to the script via stdin.
207
+ // Valid fields: type, command, padding (optional).
208
+ // The script runs after each assistant message (debounced 300ms).
209
+ //
210
+ // ruflo#1948 + #1973: the previous `sh -c 'D="${CLAUDE_PROJECT_DIR:-.}"; …'`
211
+ // form requires a POSIX shell on PATH. On native Windows (no
212
+ // Git-Bash / WSL), `sh` either isn't found or its quoting gets
213
+ // mangled, producing weird artifacts like files named `0)` or
214
+ // `toastr.error('ESD...` from misparsed tokens leaking back into
215
+ // the file system. NEVER use `cmd /c` for statusline — Claude Code
216
+ // manages stdin directly for statusline commands and `cmd /c`
217
+ // blocks the stdin forwarding.
218
+ //
219
+ // Solution: emit a platform-appropriate command at init time.
220
+ // POSIX: `sh -c 'D="…"; … exec node "$D/<script>"'` (existing)
221
+ // Windows: a Node.js one-liner that resolves the path internally
222
+ // using `process.env.CLAUDE_PROJECT_DIR` with a HOME
223
+ // fallback — no shell-quoting hazards because the
224
+ // resolution happens inside node, not in the shell.
225
+ const script = '.claude/helpers/statusline.cjs';
226
+ if (process.platform === 'win32') {
227
+ // The Node CLI's `-e` flag avoids all shell-quoting pitfalls.
228
+ // We write the path resolution in JS:
229
+ // const fs = require('fs'); const p = require('path');
230
+ // const d = process.env.CLAUDE_PROJECT_DIR || '.';
231
+ // const f = p.join(d, '.claude/helpers/statusline.cjs');
232
+ // const home = process.env.USERPROFILE || process.env.HOME || '.';
233
+ // const h = p.join(home, '.claude/helpers/statusline.cjs');
234
+ // require(fs.existsSync(f) ? f : h);
235
+ // …compressed onto one line. Double-quotes around the -e arg are
236
+ // safe on cmd.exe; the inner JS uses single-quotes for strings.
237
+ const js = "const fs=require('fs'),p=require('path');" +
238
+ `const d=process.env.CLAUDE_PROJECT_DIR||'.';` +
239
+ `const f=p.join(d,'${script}');` +
240
+ `const h=p.join(process.env.USERPROFILE||process.env.HOME||'.', '${script}');` +
241
+ 'require(fs.existsSync(f)?f:h);';
242
+ return {
243
+ type: 'command',
244
+ command: `node -e "${js}"`,
245
+ };
246
+ }
247
+ // Same project-local / $HOME fallback as `hookCmd()` (see #1943).
248
+ // eslint-disable-next-line no-template-curly-in-string
249
+ const projVar = '${CLAUDE_PROJECT_DIR:-.}';
250
+ // eslint-disable-next-line no-template-curly-in-string
251
+ const homeVar = '${HOME}';
252
+ return {
253
+ type: 'command',
254
+ command: `sh -c 'D="${projVar}"; [ -f "$D/${script}" ] || D="${homeVar}"; exec node "$D/${script}"'`,
255
+ };
256
+ }
257
+ /**
258
+ * Generate hooks configuration
259
+ * Uses local hook-handler.cjs for cross-platform compatibility.
260
+ * All hooks invoke scripts directly via `node <script> <subcommand>`,
261
+ * working identically on Windows, macOS, and Linux.
262
+ */
263
+ function generateHooksConfig(config) {
264
+ const hooks = {};
265
+ // Node.js scripts handle errors internally via try/catch.
266
+ // No shell-level error suppression needed (2>/dev/null || true breaks Windows).
267
+ // PreToolUse — validate commands and edits before execution
268
+ if (config.preToolUse) {
269
+ hooks.PreToolUse = [
270
+ {
271
+ matcher: 'Bash',
272
+ hooks: [
273
+ {
274
+ type: 'command',
275
+ command: hookHandlerCmd('pre-bash'),
276
+ timeout: config.timeout,
277
+ },
278
+ ],
279
+ },
280
+ {
281
+ matcher: 'Write|Edit|MultiEdit',
282
+ hooks: [
283
+ {
284
+ type: 'command',
285
+ command: hookHandlerCmd('pre-edit'),
286
+ timeout: config.timeout,
287
+ },
288
+ ],
289
+ },
290
+ ];
291
+ }
292
+ // PostToolUse — record edits and commands for session metrics / learning
293
+ if (config.postToolUse) {
294
+ hooks.PostToolUse = [
295
+ {
296
+ matcher: 'Write|Edit|MultiEdit',
297
+ hooks: [
298
+ {
299
+ type: 'command',
300
+ command: hookHandlerCmd('post-edit'),
301
+ timeout: 10000,
302
+ },
303
+ ],
304
+ },
305
+ {
306
+ matcher: 'Bash',
307
+ hooks: [
308
+ {
309
+ type: 'command',
310
+ command: hookHandlerCmd('post-bash'),
311
+ timeout: config.timeout,
312
+ },
313
+ ],
314
+ },
315
+ ];
316
+ }
317
+ // UserPromptSubmit — intelligent task routing
318
+ if (config.userPromptSubmit) {
319
+ hooks.UserPromptSubmit = [
320
+ {
321
+ hooks: [
322
+ {
323
+ type: 'command',
324
+ command: hookHandlerCmd('route'),
325
+ timeout: 10000,
326
+ },
327
+ ],
328
+ },
329
+ ];
330
+ }
331
+ // SessionStart — restore session state + import auto memory
332
+ if (config.sessionStart) {
333
+ hooks.SessionStart = [
334
+ {
335
+ hooks: [
336
+ {
337
+ type: 'command',
338
+ command: hookHandlerCmd('session-restore'),
339
+ timeout: 15000,
340
+ },
341
+ {
342
+ type: 'command',
343
+ command: autoMemoryCmd('import'),
344
+ timeout: 8000,
345
+ },
346
+ ],
347
+ },
348
+ ];
349
+ }
350
+ // SessionEnd — persist session state
351
+ if (config.sessionStart) {
352
+ hooks.SessionEnd = [
353
+ {
354
+ hooks: [
355
+ {
356
+ type: 'command',
357
+ command: hookHandlerCmd('session-end'),
358
+ timeout: 10000,
359
+ },
360
+ ],
361
+ },
362
+ ];
363
+ }
364
+ // Stop — sync auto memory on exit
365
+ if (config.stop) {
366
+ hooks.Stop = [
367
+ {
368
+ hooks: [
369
+ {
370
+ type: 'command',
371
+ command: autoMemoryCmd('sync'),
372
+ timeout: 10000,
373
+ },
374
+ ],
375
+ },
376
+ ];
377
+ }
378
+ // PreCompact — preserve context before compaction
379
+ if (config.preCompact) {
380
+ hooks.PreCompact = [
381
+ {
382
+ matcher: 'manual',
383
+ hooks: [
384
+ {
385
+ type: 'command',
386
+ command: hookHandlerCmd('compact-manual'),
387
+ },
388
+ {
389
+ type: 'command',
390
+ command: hookHandlerCmd('session-end'),
391
+ timeout: 5000,
392
+ },
393
+ ],
394
+ },
395
+ {
396
+ matcher: 'auto',
397
+ hooks: [
398
+ {
399
+ type: 'command',
400
+ command: hookHandlerCmd('compact-auto'),
401
+ },
402
+ {
403
+ type: 'command',
404
+ command: hookHandlerCmd('session-end'),
405
+ timeout: 6000,
406
+ },
407
+ ],
408
+ },
409
+ ];
410
+ }
411
+ // SubagentStart — status update when a sub-agent is spawned
412
+ hooks.SubagentStart = [
413
+ {
414
+ hooks: [
415
+ {
416
+ type: 'command',
417
+ command: hookHandlerCmd('status'),
418
+ timeout: 3000,
419
+ },
420
+ ],
421
+ },
422
+ ];
423
+ // SubagentStop — track agent completion for metrics
424
+ // NOTE: The valid event is "SubagentStop" (not "SubagentEnd")
425
+ hooks.SubagentStop = [
426
+ {
427
+ hooks: [
428
+ {
429
+ type: 'command',
430
+ command: hookHandlerCmd('post-task'),
431
+ timeout: 5000,
432
+ },
433
+ ],
434
+ },
435
+ ];
436
+ // Notification — capture Claude Code notifications for logging
437
+ if (config.notification) {
438
+ hooks.Notification = [
439
+ {
440
+ hooks: [
441
+ {
442
+ type: 'command',
443
+ command: hookHandlerCmd('notify'),
444
+ timeout: 3000,
445
+ },
446
+ ],
447
+ },
448
+ ];
449
+ }
450
+ // NOTE: TeammateIdle, TaskCompleted, and PostCompact are NOT accepted by
451
+ // Claude Code's settings.json validator (rejected as "Invalid key in record").
452
+ // Agent Teams coordination lives in claudeFlow.agentTeams.hooks instead.
453
+ return hooks;
454
+ }
455
+ /**
456
+ * Generate settings.json as formatted string
457
+ */
458
+ export function generateSettingsJson(options) {
459
+ const settings = generateSettings(options);
460
+ return JSON.stringify(settings, null, 2);
461
+ }
462
+ //# sourceMappingURL=settings-generator.js.map
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Statusline Configuration Generator (Optimized)
3
+ * Creates fast, reliable statusline for V3 progress display
4
+ *
5
+ * Performance:
6
+ * - Single combined git execSync call (not 8+ separate ones)
7
+ * - process.memoryUsage() instead of ps aux
8
+ * - No recursive test file content reading
9
+ * - Shared settings cache
10
+ * - Strict 2s timeouts on all shell calls
11
+ */
12
+ import type { InitOptions } from './types.js';
13
+ /**
14
+ * Generate optimized statusline script
15
+ * Output format:
16
+ * ▊ RuFlo V3.6 ● user │ ⎇ branch │ Opus 4.7
17
+ * ─────────────────────────────────────────────────────
18
+ * 🏗️ DDD Domains [●●○○○] 2/5 ⚡ HNSW 150x
19
+ * 🤖 Swarm ◉ [ 5/15] 👥 2 🪝 10/17 🟢 CVE 3/3 💾 4MB 🧠 63%
20
+ * 🔧 Architecture ADRs ●71% │ DDD ● 13% │ Security ●CLEAN
21
+ * 📊 AgentDB Vectors ●3104⚡ │ Size 216KB │ Tests ●6 (~24 cases) │ MCP ●1/1
22
+ */
23
+ export declare function generateStatuslineScript(options: InitOptions): string;
24
+ /**
25
+ * Generate statusline hook for shell integration
26
+ */
27
+ export declare function generateStatuslineHook(options: InitOptions): string;
28
+ //# sourceMappingURL=statusline-generator.d.ts.map
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Statusline Configuration Generator (Optimized)
3
+ * Creates fast, reliable statusline for V3 progress display
4
+ *
5
+ * Performance:
6
+ * - Single combined git execSync call (not 8+ separate ones)
7
+ * - process.memoryUsage() instead of ps aux
8
+ * - No recursive test file content reading
9
+ * - Shared settings cache
10
+ * - Strict 2s timeouts on all shell calls
11
+ */
12
+ import * as fs from 'fs';
13
+ import * as path from 'path';
14
+ import { fileURLToPath } from 'url';
15
+ import { createRequire } from 'module';
16
+ const __dirname_sg = path.dirname(fileURLToPath(import.meta.url));
17
+ /**
18
+ * Resolves the running CLI's own version — same createRequire/walk-up
19
+ * approach as helper-refresh.ts's getInstalledCliVersion(), duplicated
20
+ * here rather than imported. helper-refresh.ts pulls in the `semver`
21
+ * package at module scope (for autoRefreshHelpersIfStale()'s version
22
+ * comparison, unrelated to this) — ES module imports load a module's
23
+ * ENTIRE top-level regardless of which export is used, so importing just
24
+ * getInstalledCliVersion from there still requires `semver` to be resolvable.
25
+ * Confirmed live: the CI smoke job that loads this generator via a minimal
26
+ * "smoke deps" install (no full `npm install`) failed with
27
+ * ERR_MODULE_NOT_FOUND('semver') the moment this file gained that import,
28
+ * even though this function itself never touches semver. Keeping this
29
+ * generator's own dependency footprint to bare Node builtins avoids
30
+ * dragging every future helper-refresh.ts dependency into every context
31
+ * that merely wants to render a statusline script.
32
+ */
33
+ function getInstalledCliVersionLocal() {
34
+ try {
35
+ const esmRequire = createRequire(import.meta.url);
36
+ const pkg = JSON.parse(fs.readFileSync(esmRequire.resolve('@claude-flow/cli/package.json'), 'utf-8'));
37
+ return String(pkg.version || '0.0.0');
38
+ }
39
+ catch {
40
+ let dir = __dirname_sg;
41
+ for (let i = 0; i < 6; i++) {
42
+ try {
43
+ const pkg = JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf-8'));
44
+ if (pkg && pkg.name === '@claude-flow/cli')
45
+ return String(pkg.version || '0.0.0');
46
+ }
47
+ catch { /* no package.json here, or unreadable — keep climbing */ }
48
+ const parent = path.dirname(dir);
49
+ if (parent === dir)
50
+ break;
51
+ dir = parent;
52
+ }
53
+ return '0.0.0';
54
+ }
55
+ }
56
+ /**
57
+ * Generate optimized statusline script
58
+ * Output format:
59
+ * ▊ RuFlo V3.6 ● user │ ⎇ branch │ Opus 4.7
60
+ * ─────────────────────────────────────────────────────
61
+ * 🏗️ DDD Domains [●●○○○] 2/5 ⚡ HNSW 150x
62
+ * 🤖 Swarm ◉ [ 5/15] 👥 2 🪝 10/17 🟢 CVE 3/3 💾 4MB 🧠 63%
63
+ * 🔧 Architecture ADRs ●71% │ DDD ● 13% │ Security ●CLEAN
64
+ * 📊 AgentDB Vectors ●3104⚡ │ Size 216KB │ Tests ●6 (~24 cases) │ MCP ●1/1
65
+ */
66
+ export function generateStatuslineScript(options) {
67
+ const maxAgents = options.runtime.maxAgents;
68
+ // Resolved reliably HERE (inside the actual running CLI process, via
69
+ // getInstalledCliVersion()'s createRequire/findPackageRoot resolution) —
70
+ // never wrong at generation time. Baked in as getPkgVersion()'s fallback
71
+ // so a pure-npx render (no persistent local install: no marketplace
72
+ // checkout, no project node_modules, nothing under a global prefix — npx
73
+ // only ever installs into its own ephemeral, unpredictably-hashed
74
+ // ~/.npm/_npx/<hash>/ directory, which none of getPkgVersion()'s
75
+ // candidate paths can find) shows the real version instead of the
76
+ // previous hardcoded "3.6" placeholder. getPkgVersion()'s own runtime
77
+ // candidate scan still wins over this baked-in value when it finds
78
+ // something newer (e.g. a later `npm update` in the same project).
79
+ const bakedVersion = getInstalledCliVersionLocal();
80
+ // #2679 fix: read the committed .claude/helpers/statusline.cjs as the
81
+ // single source of truth instead of maintaining a 1000-line template
82
+ // string inline. Prior to this fix, the inline template drifted from
83
+ // the deployed helper (v3.29.0 UX improvements — whole-row-clickable
84
+ // OSC 8, (domain) suffix, ellipsis, bright-white command, 300s cache
85
+ // TTL, windowsHide on subprocess spawns — all shipped in the helper
86
+ // but the generator kept its older shape). Now: read the helper +
87
+ // substitute two known values (maxAgents, bakedVersion).
88
+ //
89
+ // Walk-up finds the CLI package root (whether we're at src/init/ in
90
+ // tests or dist/src/init/ in installed use). Same shape as
91
+ // getInstalledCliVersionLocal() above — reuse the pattern for the
92
+ // same reason it exists there.
93
+ let helperContent = null;
94
+ try {
95
+ const esmRequire = createRequire(import.meta.url);
96
+ const pkgJsonPath = esmRequire.resolve('@claude-flow/cli/package.json');
97
+ const helperPath = path.join(path.dirname(pkgJsonPath), '.claude', 'helpers', 'statusline.cjs');
98
+ helperContent = fs.readFileSync(helperPath, 'utf-8');
99
+ }
100
+ catch {
101
+ let dir = __dirname_sg;
102
+ for (let i = 0; i < 6; i++) {
103
+ try {
104
+ const pkg = JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf-8'));
105
+ if (pkg && pkg.name === '@claude-flow/cli') {
106
+ const candidate = path.join(dir, '.claude', 'helpers', 'statusline.cjs');
107
+ if (fs.existsSync(candidate)) {
108
+ helperContent = fs.readFileSync(candidate, 'utf-8');
109
+ break;
110
+ }
111
+ }
112
+ }
113
+ catch { /* keep climbing */ }
114
+ const parent = path.dirname(dir);
115
+ if (parent === dir)
116
+ break;
117
+ dir = parent;
118
+ }
119
+ }
120
+ if (helperContent === null) {
121
+ throw new Error('statusline-generator: could not locate .claude/helpers/statusline.cjs '
122
+ + 'relative to @claude-flow/cli. This is a packaging bug — the helper '
123
+ + 'must ship with the CLI (see package.json files entry for .claude).');
124
+ }
125
+ // Two known interpolation points — both single-line, both idempotent
126
+ // string replacements. If a future edit to the helper renames either
127
+ // token, this replace() is a no-op and the fallback default (15,
128
+ // whatever the helper hard-codes) ships. Add a paired test in
129
+ // statusline-cost-display.test.ts before changing either token.
130
+ helperContent = helperContent.replace(/maxAgents: \d+,/, `maxAgents: ${maxAgents},`);
131
+ // Only overwrite the helper's baked version if OURS resolves higher.
132
+ // Otherwise the substitution could DOWNGRADE (test environments where
133
+ // esmRequire.resolve happens to hit an older node_modules install would
134
+ // clobber a fresh committed helper). Naive lexicographic compare — works
135
+ // for canonical semver strings with same-width digit parts, which is
136
+ // reliable at this stage of the version space.
137
+ const helperVerMatch = helperContent.match(/let ver = "([^"]+)";/);
138
+ const helperVer = helperVerMatch ? helperVerMatch[1] : '';
139
+ if (!helperVer || bakedVersion > helperVer) {
140
+ helperContent = helperContent.replace(/let ver = "[^"]+";/, `let ver = ${JSON.stringify(bakedVersion)};`);
141
+ }
142
+ return helperContent;
143
+ }
144
+ /**
145
+ * Generate statusline hook for shell integration
146
+ */
147
+ export function generateStatuslineHook(options) {
148
+ if (!options.statusline.enabled) {
149
+ return '#!/bin/bash\n# Statusline disabled\n';
150
+ }
151
+ return `#!/bin/bash
152
+ # RuFlo V3 Statusline Hook
153
+ # Source this in your .bashrc/.zshrc for terminal statusline
154
+
155
+ # Function to get statusline
156
+ claude_flow_statusline() {
157
+ local statusline_script="\${CLAUDE_FLOW_DIR:-.claude}/helpers/statusline.cjs"
158
+ if [ -f "$statusline_script" ]; then
159
+ node "$statusline_script" 2>/dev/null || echo ""
160
+ fi
161
+ }
162
+
163
+ # Bash: Add to PS1
164
+ # export PS1='$(claude_flow_statusline) \\n\\$ '
165
+
166
+ # Zsh: Add to RPROMPT
167
+ # export RPROMPT='$(claude_flow_statusline)'
168
+
169
+ # Claude Code: Add to .claude/settings.json
170
+ # "statusLine": {
171
+ # "type": "command",
172
+ # "command": "node .claude/helpers/statusline.cjs 2>/dev/null"
173
+ # "when": "test -f .claude/helpers/statusline.cjs"
174
+ # }
175
+ `;
176
+ }
177
+ //# sourceMappingURL=statusline-generator.js.map