agentic-qe 3.10.9 → 3.11.1

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 (474) hide show
  1. package/.claude/agents/v3/qe-learning-coordinator.md +1 -1
  2. package/.claude/commands/agents/README.md +50 -0
  3. package/.claude/commands/agents/agent-capabilities.md +140 -0
  4. package/.claude/commands/agents/agent-coordination.md +28 -0
  5. package/.claude/commands/agents/agent-spawning.md +28 -0
  6. package/.claude/commands/agents/agent-types.md +216 -0
  7. package/.claude/commands/agents/health.md +139 -0
  8. package/.claude/commands/agents/list.md +100 -0
  9. package/.claude/commands/agents/logs.md +130 -0
  10. package/.claude/commands/agents/metrics.md +122 -0
  11. package/.claude/commands/agents/pool.md +127 -0
  12. package/.claude/commands/agents/spawn.md +140 -0
  13. package/.claude/commands/agents/status.md +115 -0
  14. package/.claude/commands/agents/stop.md +102 -0
  15. package/.claude/commands/claude-flow-help.md +1 -1
  16. package/.claude/commands/coordination/README.md +9 -0
  17. package/.claude/commands/coordination/agent-spawn.md +25 -0
  18. package/.claude/commands/coordination/init.md +44 -0
  19. package/.claude/commands/coordination/orchestrate.md +43 -0
  20. package/.claude/commands/coordination/spawn.md +45 -0
  21. package/.claude/commands/coordination/swarm-init.md +85 -0
  22. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  23. package/.claude/commands/github/code-review-swarm.md +1 -1
  24. package/.claude/commands/github/issue-tracker.md +3 -3
  25. package/.claude/commands/github/release-manager.md +5 -3
  26. package/.claude/commands/github/release-swarm.md +1 -1
  27. package/.claude/commands/github/repo-architect.md +2 -2
  28. package/.claude/commands/github/swarm-issue.md +4 -1
  29. package/.claude/commands/github/swarm-pr.md +6 -3
  30. package/.claude/commands/github/sync-coordinator.md +3 -1
  31. package/.claude/commands/github/workflow-automation.md +2 -2
  32. package/.claude/commands/hive-mind/README.md +17 -0
  33. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  34. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  35. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  36. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  37. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  38. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  39. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  40. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  41. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  42. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  43. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  44. package/.claude/commands/memory/README.md +9 -0
  45. package/.claude/commands/memory/memory-persist.md +25 -0
  46. package/.claude/commands/memory/memory-search.md +25 -0
  47. package/.claude/commands/memory/memory-usage.md +25 -0
  48. package/.claude/commands/memory/neural.md +47 -0
  49. package/.claude/commands/swarm/README.md +15 -0
  50. package/.claude/commands/swarm/analysis.md +95 -0
  51. package/.claude/commands/swarm/development.md +96 -0
  52. package/.claude/commands/swarm/examples.md +168 -0
  53. package/.claude/commands/swarm/maintenance.md +102 -0
  54. package/.claude/commands/swarm/optimization.md +117 -0
  55. package/.claude/commands/swarm/research.md +136 -0
  56. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  57. package/.claude/commands/swarm/swarm-background.md +8 -0
  58. package/.claude/commands/swarm/swarm-init.md +19 -0
  59. package/.claude/commands/swarm/swarm-modes.md +8 -0
  60. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  61. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  62. package/.claude/commands/swarm/swarm-status.md +8 -0
  63. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  64. package/.claude/commands/swarm/swarm.md +87 -0
  65. package/.claude/commands/swarm/testing.md +131 -0
  66. package/.claude/commands/workflows/README.md +9 -0
  67. package/.claude/commands/workflows/development.md +78 -0
  68. package/.claude/commands/workflows/research.md +63 -0
  69. package/.claude/commands/workflows/workflow-create.md +25 -0
  70. package/.claude/commands/workflows/workflow-execute.md +25 -0
  71. package/.claude/commands/workflows/workflow-export.md +25 -0
  72. package/.claude/helpers/auto-commit.sh +1 -1
  73. package/.claude/helpers/auto-memory-hook.mjs +37 -4
  74. package/.claude/helpers/github-safe.js +90 -40
  75. package/.claude/helpers/github-setup.sh +30 -13
  76. package/.claude/helpers/hook-handler.cjs +68 -49
  77. package/.claude/helpers/intelligence.cjs +156 -27
  78. package/.claude/helpers/post-commit +1 -1
  79. package/.claude/helpers/pre-commit +1 -1
  80. package/.claude/helpers/quick-start.sh +4 -4
  81. package/.claude/helpers/router.js +70 -31
  82. package/.claude/helpers/ruflo-hook.cjs +59 -0
  83. package/.claude/helpers/session.js +28 -6
  84. package/.claude/helpers/setup-mcp.sh +3 -3
  85. package/.claude/helpers/statusline.cjs +584 -468
  86. package/.claude/helpers/statusline.js +47 -11
  87. package/.claude/skills/README.md +2 -2
  88. package/.claude/skills/agentic-quality-engineering/SKILL.md +6 -5
  89. package/.claude/skills/agentic-quality-engineering/schemas/output.json +7 -3
  90. package/.claude/skills/github-code-review/SKILL.md +2 -17
  91. package/.claude/skills/github-multi-repo/SKILL.md +4 -16
  92. package/.claude/skills/github-project-management/SKILL.md +18 -33
  93. package/.claude/skills/github-release-management/SKILL.md +4 -21
  94. package/.claude/skills/github-workflow-automation/SKILL.md +8 -26
  95. package/.claude/skills/holistic-testing-pact/SKILL.md +50 -17
  96. package/.claude/skills/pair-programming/SKILL.md +2 -2
  97. package/.claude/skills/reasoningbank-intelligence/SKILL.md +2 -2
  98. package/.claude/skills/skill-builder/SKILL.md +0 -103
  99. package/.claude/skills/skills-manifest.json +6 -6
  100. package/.claude/skills/sparc-methodology/SKILL.md +2 -11
  101. package/.claude/skills/stream-chain/SKILL.md +0 -3
  102. package/.claude/skills/swarm-advanced/SKILL.md +2 -5
  103. package/.claude/skills/swarm-orchestration/SKILL.md +1 -1
  104. package/.claude/skills/verification-quality/SKILL.md +121 -93
  105. package/.opencode/skills/qe-agentic-quality-engineering.yaml +5 -5
  106. package/.opencode/skills/qe-holistic-testing-pact.yaml +11 -11
  107. package/CHANGELOG.md +100 -0
  108. package/README.md +17 -0
  109. package/assets/agents/v3/qe-learning-coordinator.md +1 -1
  110. package/assets/skills/README.md +2 -2
  111. package/assets/skills/agentic-quality-engineering/SKILL.md +6 -5
  112. package/assets/skills/agentic-quality-engineering/schemas/output.json +7 -3
  113. package/assets/skills/holistic-testing-pact/SKILL.md +50 -17
  114. package/assets/skills/pair-programming/SKILL.md +2 -2
  115. package/assets/skills/skills-manifest.json +6 -6
  116. package/assets/skills/verification-quality/SKILL.md +121 -93
  117. package/dist/audit/witness-chain.d.ts +1 -1
  118. package/dist/audit/witness-findings.d.ts +50 -0
  119. package/dist/audit/witness-findings.js +41 -0
  120. package/dist/cli/bundle.js +5 -5
  121. package/dist/cli/chunks/adapter-A6GCBONS.js +2 -0
  122. package/dist/cli/chunks/{agent-booster-wasm-RPAOJXZ3.js → agent-booster-wasm-3OJAT664.js} +2 -2
  123. package/dist/cli/chunks/{agent-handler-SMD5CAS6.js → agent-handler-6TCTI5AT.js} +2 -2
  124. package/dist/cli/chunks/{agent-memory-branch-3IOQIQ7Y.js → agent-memory-branch-FAWCYEGJ.js} +2 -2
  125. package/dist/cli/chunks/aqe-learning-engine-FRCSXNMG.js +2 -0
  126. package/dist/cli/chunks/{arena-AP2J62WO.js → arena-O2TCUQBF.js} +4 -4
  127. package/dist/cli/chunks/{arena-GT3D6EAO.js → arena-UVYIGYUF.js} +2 -2
  128. package/dist/cli/chunks/{audit-Q3GJ5354.js → audit-AYESKHAJ.js} +2 -2
  129. package/dist/cli/chunks/base-CZ3EHBU5.js +2 -0
  130. package/dist/cli/chunks/{hnswlib-node-YTK7S7GL.js → better-sqlite3-MJNUEPYB.js} +2 -2
  131. package/dist/cli/chunks/{brain-handler-2Z4ILQF3.js → brain-handler-KSJBVTHZ.js} +3 -3
  132. package/dist/cli/chunks/{branch-enumerator-EZWGL4UM.js → branch-enumerator-4O3S42EG.js} +2 -2
  133. package/dist/cli/chunks/{browser-YZELFPLJ.js → browser-5VXK323P.js} +2 -2
  134. package/dist/cli/chunks/browser-workflow-EKTGQQBQ.js +2 -0
  135. package/dist/cli/chunks/{chunk-CDJIYJIA.js → chunk-22FHOXEE.js} +1 -1
  136. package/dist/cli/chunks/{chunk-OIN3Y4BY.js → chunk-2RE32VOF.js} +1 -1
  137. package/dist/cli/chunks/{chunk-RSWQY4NZ.js → chunk-3D4HNUZM.js} +2 -2
  138. package/dist/cli/chunks/{chunk-6TR3OM7C.js → chunk-3DS7ZHA7.js} +2 -2
  139. package/dist/cli/chunks/{chunk-HGKZOSAI.js → chunk-3G25ZBQ6.js} +1 -1
  140. package/dist/cli/chunks/{chunk-QHPLU5BU.js → chunk-3IMEDZIS.js} +3 -3
  141. package/dist/cli/chunks/{chunk-EL6F72JN.js → chunk-3V5DAM37.js} +2 -2
  142. package/dist/cli/chunks/{chunk-IR7PJUO7.js → chunk-3XCEFSUK.js} +2 -2
  143. package/dist/cli/chunks/{chunk-L5NEEGKO.js → chunk-437XL5VZ.js} +2 -2
  144. package/dist/cli/chunks/{chunk-C6GQIUKW.js → chunk-44HXRFOP.js} +2 -2
  145. package/dist/cli/chunks/{chunk-KAMFT25W.js → chunk-4565IIF6.js} +2 -2
  146. package/dist/cli/chunks/{chunk-X7677BX3.js → chunk-4BMPFEEG.js} +2 -2
  147. package/dist/cli/chunks/{chunk-3YKJGKOY.js → chunk-4G4GTF36.js} +4 -4
  148. package/dist/cli/chunks/{chunk-352W5G4G.js → chunk-4OYC5TIZ.js} +2 -2
  149. package/dist/cli/chunks/{chunk-VHCHBMZC.js → chunk-4RUS5E3Q.js} +2 -2
  150. package/dist/cli/chunks/{chunk-QHICG2NI.js → chunk-4S3UIY3G.js} +2 -2
  151. package/dist/cli/chunks/{chunk-FD37QFXW.js → chunk-4UHWZ47M.js} +1 -1
  152. package/dist/cli/chunks/{chunk-UU7OCRZM.js → chunk-56PICCZN.js} +2 -2
  153. package/dist/cli/chunks/chunk-57WGS6BI.js +2 -0
  154. package/dist/cli/chunks/{chunk-RRSJ7BMF.js → chunk-5LDUW2FD.js} +1 -1
  155. package/dist/cli/chunks/{chunk-J6GKKXCP.js → chunk-5PSIKJL5.js} +2 -2
  156. package/dist/cli/chunks/{chunk-QE3CZGAC.js → chunk-5QFZEEJ2.js} +3 -3
  157. package/dist/cli/chunks/{chunk-RHOBDQXA.js → chunk-5Y7GXQOM.js} +2 -2
  158. package/dist/cli/chunks/{chunk-5X73HV2P.js → chunk-6CH7476R.js} +1 -1
  159. package/dist/cli/chunks/{chunk-BG2FN5K2.js → chunk-6WNYBIPS.js} +2 -2
  160. package/dist/cli/chunks/{chunk-G4KVGUQN.js → chunk-6YNXH6H4.js} +2 -2
  161. package/dist/cli/chunks/{chunk-2WRVNEIR.js → chunk-6ZAUNPAI.js} +2 -2
  162. package/dist/cli/chunks/{chunk-2I5QLMQF.js → chunk-72UPBNVF.js} +2 -2
  163. package/dist/cli/chunks/{chunk-VDL277DX.js → chunk-76UVJLPM.js} +2 -2
  164. package/dist/cli/chunks/{chunk-4EJTE5TL.js → chunk-7DQLYWLR.js} +1 -1
  165. package/dist/cli/chunks/{chunk-4D3LVXUD.js → chunk-7GP7ZG3K.js} +2 -2
  166. package/dist/cli/chunks/{chunk-757YHKIJ.js → chunk-7OAKIXNM.js} +2 -2
  167. package/dist/cli/chunks/{chunk-7S6D5K4X.js → chunk-7QICU44H.js} +2 -2
  168. package/dist/cli/chunks/{chunk-ABJPFKHE.js → chunk-7SRSOZMP.js} +1 -1
  169. package/dist/cli/chunks/{chunk-2WSEJHFQ.js → chunk-7WQKKYYG.js} +1 -1
  170. package/dist/cli/chunks/{chunk-7NT34MLU.js → chunk-AEZMNFXM.js} +1 -1
  171. package/dist/cli/chunks/{chunk-MDED3HJI.js → chunk-AG4BYKUV.js} +2 -2
  172. package/dist/cli/chunks/{chunk-QL7OOCPO.js → chunk-AL54LED5.js} +2 -2
  173. package/dist/cli/chunks/{chunk-I7RTTJH5.js → chunk-ATQTTGSE.js} +2 -2
  174. package/dist/cli/chunks/{chunk-HQZX4XYH.js → chunk-B5EE63VE.js} +2 -2
  175. package/dist/cli/chunks/{chunk-QWXJRZEH.js → chunk-B6U56VWG.js} +1 -1
  176. package/dist/cli/chunks/{chunk-5HLOQEKL.js → chunk-BOQNPFO5.js} +1 -1
  177. package/dist/cli/chunks/{chunk-I5C7O5IQ.js → chunk-BR4ERWVD.js} +2 -2
  178. package/dist/cli/chunks/{chunk-GPALZJD3.js → chunk-BVFNF3RW.js} +1 -1
  179. package/dist/cli/chunks/{chunk-NYBAH76S.js → chunk-BXLWERBR.js} +3 -3
  180. package/dist/cli/chunks/{chunk-YQBL5XTM.js → chunk-C27UV6DO.js} +1 -1
  181. package/dist/cli/chunks/{chunk-UUA2NVUN.js → chunk-C7FYDE5F.js} +244 -233
  182. package/dist/cli/chunks/{chunk-6HPI6YX3.js → chunk-CIDTFU3C.js} +2 -2
  183. package/dist/cli/chunks/{chunk-VIHFC67B.js → chunk-CII57TME.js} +1 -1
  184. package/dist/cli/chunks/{chunk-57XCLC55.js → chunk-CN2HMHIY.js} +2 -2
  185. package/dist/cli/chunks/{chunk-CREORFJV.js → chunk-CXIFCN6G.js} +1 -1
  186. package/dist/cli/chunks/{chunk-EYGRNXQT.js → chunk-CZU5G6J4.js} +1 -1
  187. package/dist/cli/chunks/{chunk-HZSYCVLC.js → chunk-D4DAZ3P2.js} +2 -2
  188. package/dist/cli/chunks/{chunk-3HT4CT6F.js → chunk-D6MPGK7R.js} +2 -2
  189. package/dist/cli/chunks/{chunk-DK6WWNCL.js → chunk-DZT4A7R3.js} +2 -2
  190. package/dist/cli/chunks/{chunk-H7AQ7M3J.js → chunk-EFRIMR74.js} +1 -1
  191. package/dist/cli/chunks/{chunk-S73EBPI5.js → chunk-EJSDQQZH.js} +3 -3
  192. package/dist/cli/chunks/{chunk-X6YUGKMM.js → chunk-EQYDPF52.js} +1 -1
  193. package/dist/cli/chunks/{chunk-BYVARYGB.js → chunk-EZBXCEBV.js} +2 -2
  194. package/dist/cli/chunks/{chunk-L5IO7QNO.js → chunk-FBOPSWF6.js} +2 -2
  195. package/dist/cli/chunks/{chunk-K23XK33X.js → chunk-FK3XYV3A.js} +2 -2
  196. package/dist/cli/chunks/{chunk-4BB75U6N.js → chunk-FOD6JEEU.js} +2 -2
  197. package/dist/cli/chunks/{chunk-TIR3Z6TE.js → chunk-GUSW3OGX.js} +1 -1
  198. package/dist/cli/chunks/{chunk-2K2X75UF.js → chunk-H4V6WCF7.js} +2 -2
  199. package/dist/cli/chunks/{chunk-AHUX7QSE.js → chunk-H5GCRC2D.js} +2 -2
  200. package/dist/cli/chunks/{chunk-R2M3RMCN.js → chunk-HMVL55QX.js} +2 -2
  201. package/dist/cli/chunks/{chunk-NOWGQ6YZ.js → chunk-HOFEAA4R.js} +1 -1
  202. package/dist/cli/chunks/{chunk-PFGH7TWL.js → chunk-HYT5EMES.js} +2 -2
  203. package/dist/cli/chunks/{chunk-AU4DQMLJ.js → chunk-IAHJ62JS.js} +4 -4
  204. package/dist/cli/chunks/{chunk-ZVF7QY4R.js → chunk-IIX5Y7BO.js} +1 -1
  205. package/dist/cli/chunks/{chunk-QAP5S7YC.js → chunk-ILZHECWZ.js} +3 -3
  206. package/dist/cli/chunks/{chunk-ZT2DGSIO.js → chunk-IUVAWWQG.js} +2 -2
  207. package/dist/cli/chunks/{chunk-ABVBHH7P.js → chunk-IVZVVZZ3.js} +3 -3
  208. package/dist/cli/chunks/{chunk-DZWZASDV.js → chunk-J2LAYCYZ.js} +1 -1
  209. package/dist/cli/chunks/{chunk-G7V2HDTH.js → chunk-JGHEGMLD.js} +3 -3
  210. package/dist/cli/chunks/{chunk-QFIKEZB5.js → chunk-K3BBLIWW.js} +2 -2
  211. package/dist/cli/chunks/{chunk-BSMUT672.js → chunk-K7XPKGOL.js} +2 -2
  212. package/dist/cli/chunks/{chunk-YHFCLJMY.js → chunk-KIBP3LGY.js} +1 -1
  213. package/dist/cli/chunks/{chunk-U6TZVACK.js → chunk-KRUKMGPF.js} +2 -2
  214. package/dist/cli/chunks/{chunk-UX4UHYLE.js → chunk-L2QHZFC3.js} +1 -1
  215. package/dist/cli/chunks/{chunk-O36VC7B7.js → chunk-LNV76GGB.js} +2 -2
  216. package/dist/cli/chunks/{chunk-NMQEU4BG.js → chunk-LOPM3YIO.js} +2 -2
  217. package/dist/cli/chunks/{chunk-LT6QHDPK.js → chunk-LSZLXLZA.js} +2 -2
  218. package/dist/cli/chunks/{chunk-NLUWPS2H.js → chunk-MILWEZSZ.js} +3 -3
  219. package/dist/cli/chunks/{chunk-LHKQW72O.js → chunk-MX6M2VPB.js} +1 -1
  220. package/dist/cli/chunks/{chunk-KRAWWBX5.js → chunk-N4OWZLH5.js} +2 -2
  221. package/dist/cli/chunks/{chunk-4MUZGQPE.js → chunk-N52WQO3G.js} +2 -2
  222. package/dist/cli/chunks/{chunk-246Z3PH6.js → chunk-N6NSZG7Z.js} +2 -2
  223. package/dist/cli/chunks/{chunk-OQUH7657.js → chunk-N6RSJGTW.js} +5 -5
  224. package/dist/cli/chunks/{chunk-WOGWIMQK.js → chunk-NKCL6RAF.js} +2 -2
  225. package/dist/cli/chunks/{chunk-C6JULAWA.js → chunk-NVJIOCS5.js} +5 -5
  226. package/dist/cli/chunks/{chunk-TKZABUHO.js → chunk-NYWK7ZSX.js} +1 -1
  227. package/dist/cli/chunks/{chunk-DNE6MVNA.js → chunk-O5NF6BBD.js} +1 -1
  228. package/dist/cli/chunks/{chunk-CWRSQQHV.js → chunk-O75SVMMB.js} +2 -2
  229. package/dist/cli/chunks/{chunk-OD4OIPXO.js → chunk-OHBZON7T.js} +1 -1
  230. package/dist/cli/chunks/{chunk-CLJNAQXB.js → chunk-OUBYADPD.js} +2 -2
  231. package/dist/cli/chunks/{chunk-PYQZ4OA3.js → chunk-OUSD2RWO.js} +2 -2
  232. package/dist/cli/chunks/{chunk-TVU6NMO3.js → chunk-OX2PGDUM.js} +3 -3
  233. package/dist/cli/chunks/{chunk-XLK4GP3I.js → chunk-P7CMWL7Y.js} +2 -2
  234. package/dist/cli/chunks/{chunk-7C5HI4ZA.js → chunk-PY4YQDBM.js} +4 -4
  235. package/dist/cli/chunks/{chunk-5U5SEO7C.js → chunk-QEDS3MOJ.js} +2 -2
  236. package/dist/cli/chunks/{chunk-WPBVLIWQ.js → chunk-QMN563LV.js} +18 -18
  237. package/dist/cli/chunks/{chunk-D2JCSWYM.js → chunk-QOR4YAZY.js} +2 -2
  238. package/dist/cli/chunks/{chunk-H4SHHYRD.js → chunk-QUTKELAS.js} +2 -2
  239. package/dist/cli/chunks/{chunk-42FBJF73.js → chunk-QXDZN2WX.js} +1 -1
  240. package/dist/cli/chunks/{chunk-OSP5AJAB.js → chunk-S456W64P.js} +2 -2
  241. package/dist/cli/chunks/{chunk-VHYNRISI.js → chunk-S7IHSELP.js} +2 -2
  242. package/dist/cli/chunks/{chunk-62MH7QAQ.js → chunk-S7ZHD6VN.js} +2 -2
  243. package/dist/cli/chunks/{chunk-QL6ZJ7RV.js → chunk-SU4YXUVK.js} +2 -2
  244. package/dist/cli/chunks/{chunk-JZNMU63B.js → chunk-SZPTUV3B.js} +2 -2
  245. package/dist/cli/chunks/{chunk-FALB6Z2Y.js → chunk-T7PUM6OY.js} +1 -1
  246. package/dist/cli/chunks/{chunk-BVEQPMOF.js → chunk-TCKBICJ3.js} +2 -2
  247. package/dist/cli/chunks/{chunk-Z6FRNWQA.js → chunk-TOQJWLJV.js} +2 -2
  248. package/dist/cli/chunks/{chunk-YB3PQ3UV.js → chunk-TUEDIQHY.js} +1 -1
  249. package/dist/cli/chunks/{chunk-CVRTXIYP.js → chunk-U5GCSSYX.js} +1 -1
  250. package/dist/cli/chunks/{chunk-WWGGL3TR.js → chunk-UDLN2THT.js} +1 -1
  251. package/dist/cli/chunks/{chunk-CLSHSVMY.js → chunk-V6YDM37M.js} +1 -1
  252. package/dist/cli/chunks/{chunk-ILPIH4Z6.js → chunk-VGR65B4Y.js} +1 -1
  253. package/dist/cli/chunks/{chunk-XEMP2PNW.js → chunk-VRHLHGKR.js} +2 -2
  254. package/dist/cli/chunks/{chunk-BM52ZEAD.js → chunk-VS2G6LX5.js} +2 -2
  255. package/dist/cli/chunks/{chunk-TOGD2JH2.js → chunk-W6RS5S4Q.js} +2 -2
  256. package/dist/cli/chunks/{chunk-UJBIHPU5.js → chunk-WEPZOCN7.js} +1 -1
  257. package/dist/cli/chunks/{chunk-OF3EMOWN.js → chunk-WIC5UZCQ.js} +2 -2
  258. package/dist/cli/chunks/{chunk-D7NWDUY3.js → chunk-X2OVUBF6.js} +2 -2
  259. package/dist/cli/chunks/{chunk-XYRJL7YN.js → chunk-X4GKYSOH.js} +2 -2
  260. package/dist/cli/chunks/{chunk-TXWUV3S5.js → chunk-XEVUW4QL.js} +2 -2
  261. package/dist/cli/chunks/{chunk-HAC7NB6R.js → chunk-XMDZRULK.js} +2 -2
  262. package/dist/cli/chunks/{chunk-UPGKS6Z3.js → chunk-YFY35CSD.js} +2 -2
  263. package/dist/cli/chunks/{chunk-7D5JE46U.js → chunk-Z6ADE3KJ.js} +2 -2
  264. package/dist/cli/chunks/{chunk-KJA5A3TV.js → chunk-ZKPOKMJZ.js} +2 -2
  265. package/dist/cli/chunks/{chunk-7PYEJ4NV.js → chunk-ZRWAFMM7.js} +2 -2
  266. package/dist/cli/chunks/{ci-KDEFR2X3.js → ci-KTWY7BZT.js} +2 -2
  267. package/dist/cli/chunks/{ci-output-Z3WXRRFI.js → ci-output-WOX6QBMS.js} +2 -2
  268. package/dist/cli/chunks/{circuit-breaker-GS44DEW2.js → circuit-breaker-6XKOSFIF.js} +2 -2
  269. package/dist/cli/chunks/{claude-flow-setup-OHVMHAAH.js → claude-flow-setup-5JA4MNE4.js} +2 -2
  270. package/dist/cli/chunks/client-X3KUJ6R5.js +2 -0
  271. package/dist/cli/chunks/{cline-installer-5TCF4MZD.js → cline-installer-Z2ANHEKW.js} +2 -2
  272. package/dist/cli/chunks/{code-3KCGTG7Z.js → code-NO4ZKNDU.js} +2 -2
  273. package/dist/cli/chunks/{code-index-extractor-LJBI54MZ.js → code-index-extractor-VV4OEPG7.js} +2 -2
  274. package/dist/cli/chunks/{codex-installer-IB62Z6LA.js → codex-installer-BP7Y2NYR.js} +2 -2
  275. package/dist/cli/chunks/{completions-JDXX7KKB.js → completions-YULJQUF4.js} +2 -2
  276. package/dist/cli/chunks/{complexity-analyzer-6JVDXXXP.js → complexity-analyzer-D7XYPQ76.js} +2 -2
  277. package/dist/cli/chunks/{continuedev-installer-PUB45QVR.js → continuedev-installer-E3L7UF72.js} +2 -2
  278. package/dist/cli/chunks/{copilot-installer-QWJ36P22.js → copilot-installer-5TRUMJC5.js} +2 -2
  279. package/dist/cli/chunks/core-handlers-A2EQB3UH.js +2 -0
  280. package/dist/cli/chunks/{cost-tracker-J3KEJDL5.js → cost-tracker-QTYSJMSV.js} +2 -2
  281. package/dist/cli/chunks/{coverage-FWKRI2EY.js → coverage-D5DKZ3XT.js} +3 -3
  282. package/dist/cli/chunks/cross-domain-router-OKZ2PDHT.js +2 -0
  283. package/dist/cli/chunks/{cursor-installer-2HYCUCTH.js → cursor-installer-UDBHGUIG.js} +2 -2
  284. package/dist/cli/chunks/{daemon-G3DBRWDQ.js → daemon-2GXYN7F7.js} +3 -3
  285. package/dist/cli/chunks/{daemon-BVP66DIZ.js → daemon-IVWUMQKL.js} +4 -4
  286. package/dist/cli/chunks/{dag-attention-scheduler-2AQLNB4B.js → dag-attention-scheduler-PWXR4QTU.js} +2 -2
  287. package/dist/cli/chunks/{detect-RUM5SHNE.js → detect-C6P7ONFB.js} +2 -2
  288. package/dist/cli/chunks/{dist-node-GX7MJHFT.js → dist-node-2BUFM2JK.js} +2 -2
  289. package/dist/cli/chunks/{domain-handler-OFBGZ2U5.js → domain-handler-Q2GWZLDM.js} +2 -2
  290. package/dist/cli/chunks/{domain-transfer-6CGRPRGR.js → domain-transfer-GMUBAM3J.js} +2 -2
  291. package/dist/cli/chunks/dream-ZBP4Z5C3.js +2 -0
  292. package/dist/cli/chunks/{embed-and-insert-pattern-MUOEVQX2.js → embed-and-insert-pattern-EFUERRM2.js} +2 -2
  293. package/dist/cli/chunks/{eval-SJMG67DE.js → eval-24FIC43F.js} +2 -2
  294. package/dist/cli/chunks/{experience-capture-middleware-ICKN6IXX.js → experience-capture-middleware-R4UP2Q2M.js} +3 -3
  295. package/dist/cli/chunks/{fast-paths-HXLBG3J4.js → fast-paths-RQCGGTXB.js} +2 -2
  296. package/dist/cli/chunks/{feature-flags-CRUB2ASU.js → feature-flags-APTWWVNQ.js} +2 -2
  297. package/dist/cli/chunks/{feature-flags-JYZSSQJC.js → feature-flags-SOXVYIBN.js} +2 -2
  298. package/dist/cli/chunks/{file-discovery-YHHC7NTJ.js → file-discovery-66KRMXVF.js} +2 -2
  299. package/dist/cli/chunks/{fleet-2VGDL4YL.js → fleet-EMBNKO5Q.js} +3 -3
  300. package/dist/cli/chunks/{gnn-wrapper-7ZAGD4S4.js → gnn-wrapper-6TKDWFJF.js} +2 -2
  301. package/dist/cli/chunks/{heartbeat-handler-HAW3JRHN.js → heartbeat-handler-4ODKJ75H.js} +4 -4
  302. package/dist/cli/chunks/heartbeat-scheduler-6JUWQXWG.js +2 -0
  303. package/dist/cli/chunks/hnsw-adapter-JT4BU7XJ.js +2 -0
  304. package/dist/cli/chunks/hnsw-index-JC5YELJX.js +2 -0
  305. package/dist/cli/chunks/{hnsw-legacy-bridge-BO325POX.js → hnsw-legacy-bridge-25KFCLUC.js} +2 -2
  306. package/dist/cli/chunks/{better-sqlite3-6A6EAXAT.js → hnswlib-node-FUWQTM2D.js} +2 -2
  307. package/dist/cli/chunks/{hooks-HKM3JTFQ.js → hooks-JIDA2COE.js} +10 -10
  308. package/dist/cli/chunks/hybrid-router-SLTXHUFG.js +2 -0
  309. package/dist/cli/chunks/{hypergraph-engine-LGLGHK6B.js → hypergraph-engine-3YDFDPE3.js} +2 -2
  310. package/dist/cli/chunks/{hypergraph-handler-6QDVREZA.js → hypergraph-handler-VWZX2OJX.js} +3 -3
  311. package/dist/cli/chunks/impact-analyzer-JXHCMZXY.js +2 -0
  312. package/dist/cli/chunks/{init-handler-XUQ7XHIE.js → init-handler-DH7VQAMF.js} +6 -6
  313. package/dist/cli/chunks/init-wizard-EX37TYOG.js +2 -0
  314. package/dist/cli/chunks/kernel-JPHAG27D.js +2 -0
  315. package/dist/cli/chunks/{kilocode-installer-6CEZLVIX.js → kilocode-installer-2W2KZCGH.js} +2 -2
  316. package/dist/cli/chunks/{kiro-installer-6CJGATOS.js → kiro-installer-E5KP7OMD.js} +2 -2
  317. package/dist/cli/chunks/knowledge-graph-5QJZIRYB.js +2 -0
  318. package/dist/cli/chunks/{learning-EIYTYZJY.js → learning-XJRUVPLF.js} +3 -3
  319. package/dist/cli/chunks/{llm-router-J4CI7VHU.js → llm-router-AEEKEMF5.js} +4 -4
  320. package/dist/cli/chunks/llm-router-service-SE2RO4P5.js +2 -0
  321. package/dist/cli/chunks/{load-CQPWGLQQ.js → load-PZ4YOTBJ.js} +2 -2
  322. package/dist/cli/chunks/load-test-LOTBWIIS.js +2 -0
  323. package/dist/cli/chunks/{mcp-THOATWCO.js → mcp-IVA6LC2S.js} +2 -2
  324. package/dist/cli/chunks/{memory-NZHMHMRK.js → memory-Y3DHXFQE.js} +5 -5
  325. package/dist/cli/chunks/memory-backend-BSDKTFAN.js +2 -0
  326. package/dist/cli/chunks/{memory-handlers-L2J54AQE.js → memory-handlers-V5PXEJWL.js} +2 -2
  327. package/dist/cli/chunks/{multi-model-executor-3P5E773H.js → multi-model-executor-646G4S4Y.js} +2 -2
  328. package/dist/cli/chunks/{opencode-installer-IRZMKSNG.js → opencode-installer-P6KOOTUS.js} +2 -2
  329. package/dist/cli/chunks/{orchestrator-UADLXTKP.js → orchestrator-T2GVKYMX.js} +5 -5
  330. package/dist/cli/chunks/pattern-null-store-LRSXCZWM.js +2 -0
  331. package/dist/cli/chunks/{pipeline-QEH3XHXJ.js → pipeline-CK2ON45P.js} +2 -2
  332. package/dist/cli/chunks/{platform-NEZ3NXLT.js → platform-OQNSD3A3.js} +2 -2
  333. package/dist/cli/chunks/{plugin-O33HR2VO.js → plugin-UOG6RNRM.js} +2 -2
  334. package/dist/cli/chunks/{prime-radiant-advanced-wasm-MBUMFEX7.js → prime-radiant-advanced-wasm-37UE6TG5.js} +2 -2
  335. package/dist/cli/chunks/protocol-executor-WPUVJEL7.js +2 -0
  336. package/dist/cli/chunks/{protocol-handler-L455UOUT.js → protocol-handler-V722S6YH.js} +2 -2
  337. package/dist/cli/chunks/{prove-3XA3SMAA.js → prove-ANGY6W3W.js} +2 -2
  338. package/dist/cli/chunks/provider-manager-EVPWSH3E.js +2 -0
  339. package/dist/cli/chunks/qe-reasoning-bank-IH63FG33.js +2 -0
  340. package/dist/cli/chunks/{quality-H6Z5JH5B.js → quality-KG4ALI2L.js} +2 -2
  341. package/dist/cli/chunks/queen-coordinator-TTCAGYQO.js +2 -0
  342. package/dist/cli/chunks/{real-embeddings-5DNJ4KEM.js → real-embeddings-GUZDO5UN.js} +2 -2
  343. package/dist/cli/chunks/{roocode-installer-KHXKR2FK.js → roocode-installer-WROAR6MJ.js} +2 -2
  344. package/dist/cli/chunks/router-64Q4ILOQ.js +2 -0
  345. package/dist/cli/chunks/routing-feedback-KCZV4XXC.js +2 -0
  346. package/dist/cli/chunks/{routing-handler-WAMGESEM.js → routing-handler-UFPSSS5D.js} +2 -2
  347. package/dist/cli/chunks/{ruvector-commands-4J7XC6XY.js → ruvector-commands-XJQMKDRM.js} +2 -2
  348. package/dist/cli/chunks/{rvf-dual-writer-3PZEN6XN.js → rvf-dual-writer-QPRMDKYX.js} +2 -2
  349. package/dist/cli/chunks/{rvf-migration-adapter-OIUNRQSU.js → rvf-migration-adapter-SOHBK23K.js} +2 -2
  350. package/dist/cli/chunks/{rvf-migration-coordinator-QZXDI4I5.js → rvf-migration-coordinator-MTWUSPEJ.js} +2 -2
  351. package/dist/cli/chunks/rvf-native-adapter-GNJKMURU.js +2 -0
  352. package/dist/cli/chunks/safe-db-6VBZQIJI.js +2 -0
  353. package/dist/cli/chunks/schedule-4V7O5IPX.js +2 -0
  354. package/dist/cli/chunks/scheduler-CQDMHEHN.js +2 -0
  355. package/dist/cli/chunks/{security-5NY77AMD.js → security-5MAMQKP6.js} +3 -3
  356. package/dist/cli/chunks/{shared-rvf-adapter-MHPUZIMW.js → shared-rvf-adapter-YEUBSRNN.js} +2 -2
  357. package/dist/cli/chunks/{shared-rvf-dual-writer-ITLDYHCX.js → shared-rvf-dual-writer-DBQJHG42.js} +2 -2
  358. package/dist/cli/chunks/sqlite-persistence-7DHUFTHL.js +2 -0
  359. package/dist/cli/chunks/{status-handler-7RBRIXZD.js → status-handler-ZUB2UKQZ.js} +2 -2
  360. package/dist/cli/chunks/{structural-health-MQPY6GA6.js → structural-health-B2GHENWX.js} +2 -2
  361. package/dist/cli/chunks/{sync-66KCEANE.js → sync-7VMXJTR2.js} +2 -2
  362. package/dist/cli/chunks/{sync-USVQTHKN.js → sync-YCUUW3IP.js} +2 -2
  363. package/dist/cli/chunks/{task-handler-4UI4FPPW.js → task-handler-N7LJTXZM.js} +2 -2
  364. package/dist/cli/chunks/{task-handlers-KRII3GVV.js → task-handlers-GDHNJV2E.js} +3 -3
  365. package/dist/cli/chunks/{test-JHN2MVEG.js → test-6COGC5KI.js} +4 -4
  366. package/dist/cli/chunks/{test-scheduling-ZWTEGS3S.js → test-scheduling-CUERHJMF.js} +3 -3
  367. package/dist/cli/chunks/{token-bootstrap-YWXL6AS5.js → token-bootstrap-JTGSL6PP.js} +2 -2
  368. package/dist/cli/chunks/{token-usage-INII2XM3.js → token-usage-LSG3JYGX.js} +2 -2
  369. package/dist/cli/chunks/{transformers-DVFGDNZC.js → transformers-ODIITRCT.js} +2 -2
  370. package/dist/cli/chunks/{tree-sitter-wasm-parser-W2XJT3XF.js → tree-sitter-wasm-parser-KSP7ZZ5H.js} +2 -2
  371. package/dist/cli/chunks/{types-GBZ5Q2GP.js → types-6N6SUU2O.js} +2 -2
  372. package/dist/cli/chunks/unified-memory-MQA72NLP.js +2 -0
  373. package/dist/cli/chunks/unified-memory-hnsw-K7HA3CWV.js +2 -0
  374. package/dist/cli/chunks/unified-persistence-2DXB4OE4.js +2 -0
  375. package/dist/cli/chunks/{upgrade-2JEXEGQX.js → upgrade-7SCVOCPS.js} +2 -2
  376. package/dist/cli/chunks/{validate-GDCM5YTS.js → validate-762ISH2Y.js} +2 -2
  377. package/dist/cli/chunks/{validate-swarm-QZ5RSJEU.js → validate-swarm-R6WYYXGO.js} +2 -2
  378. package/dist/cli/chunks/{vibium-I5BMT734.js → vibium-5GZYSUDQ.js} +2 -2
  379. package/dist/cli/chunks/visual-security-UD6CARIJ.js +2 -0
  380. package/dist/cli/chunks/{web-tree-sitter-3QY2LMLP.js → web-tree-sitter-VYYVAJTY.js} +2 -2
  381. package/dist/cli/chunks/{windsurf-installer-V7OBPLOB.js → windsurf-installer-RRIOR3B6.js} +2 -2
  382. package/dist/cli/chunks/witness-chain-LWALPPMC.js +2 -0
  383. package/dist/cli/chunks/{witness-chain-BNJ4VSZX.js → witness-chain-SRVBEKDB.js} +2 -2
  384. package/dist/cli/chunks/{workflow-3FJSNLPI.js → workflow-XNUDHGEC.js} +4 -4
  385. package/dist/cli/chunks/workflow-orchestrator-QU652FLH.js +2 -0
  386. package/dist/cli/chunks/{wrappers-ERTQNIPK.js → wrappers-3STST7QW.js} +2 -2
  387. package/dist/domains/requirements-validation/coordinator.d.ts +16 -2
  388. package/dist/domains/requirements-validation/coordinator.js +112 -7
  389. package/dist/domains/requirements-validation/plugin.js +20 -1
  390. package/dist/domains/test-generation/coordinator.d.ts +26 -1
  391. package/dist/domains/test-generation/coordinator.js +119 -2
  392. package/dist/domains/test-generation/plugin.js +23 -1
  393. package/dist/integrations/darwin/index.d.ts +10 -0
  394. package/dist/integrations/darwin/index.js +2 -0
  395. package/dist/integrations/darwin/qe-fitness.d.ts +83 -0
  396. package/dist/integrations/darwin/qe-fitness.js +147 -0
  397. package/dist/integrations/darwin/types.d.ts +69 -0
  398. package/dist/integrations/darwin/types.js +21 -0
  399. package/dist/mcp/bundle.js +390 -379
  400. package/dist/mcp/tool-scoping.d.ts +8 -2
  401. package/dist/mcp/tool-scoping.js +13 -0
  402. package/dist/routing/escalation/auto-escalation-tracker.d.ts +34 -15
  403. package/dist/routing/escalation/auto-escalation-tracker.js +24 -15
  404. package/dist/routing/free-tier/coordinator-support.d.ts +90 -0
  405. package/dist/routing/free-tier/coordinator-support.js +78 -0
  406. package/dist/routing/free-tier/executor.d.ts +161 -0
  407. package/dist/routing/free-tier/executor.js +182 -0
  408. package/dist/routing/free-tier/feedback-sink.d.ts +49 -0
  409. package/dist/routing/free-tier/feedback-sink.js +52 -0
  410. package/dist/routing/free-tier/index.d.ts +15 -0
  411. package/dist/routing/free-tier/index.js +6 -0
  412. package/dist/routing/free-tier/ladder.d.ts +41 -0
  413. package/dist/routing/free-tier/ladder.js +78 -0
  414. package/dist/routing/free-tier/provider.d.ts +57 -0
  415. package/dist/routing/free-tier/provider.js +111 -0
  416. package/dist/routing/free-tier/types.d.ts +80 -0
  417. package/dist/routing/free-tier/types.js +16 -0
  418. package/dist/routing/value-score.d.ts +49 -0
  419. package/dist/routing/value-score.js +54 -0
  420. package/dist/shared/optional-module.d.ts +23 -0
  421. package/dist/shared/optional-module.js +46 -0
  422. package/dist/verification/adversarial-verify/calibrate.d.ts +32 -0
  423. package/dist/verification/adversarial-verify/calibrate.js +33 -0
  424. package/dist/verification/adversarial-verify/gate.d.ts +38 -0
  425. package/dist/verification/adversarial-verify/gate.js +32 -0
  426. package/dist/verification/adversarial-verify/index.d.ts +20 -0
  427. package/dist/verification/adversarial-verify/index.js +6 -0
  428. package/dist/verification/adversarial-verify/prompts.d.ts +14 -0
  429. package/dist/verification/adversarial-verify/prompts.js +17 -0
  430. package/dist/verification/adversarial-verify/synthesize.d.ts +18 -0
  431. package/dist/verification/adversarial-verify/synthesize.js +35 -0
  432. package/dist/verification/adversarial-verify/types.d.ts +59 -0
  433. package/dist/verification/adversarial-verify/types.js +10 -0
  434. package/dist/verification/adversarial-verify/verify.d.ts +20 -0
  435. package/dist/verification/adversarial-verify/verify.js +34 -0
  436. package/package.json +14 -1
  437. package/dist/cli/chunks/adapter-TRSV37EA.js +0 -2
  438. package/dist/cli/chunks/aqe-learning-engine-CVJRJOSO.js +0 -2
  439. package/dist/cli/chunks/base-BX4A2D4V.js +0 -2
  440. package/dist/cli/chunks/browser-workflow-O3RL7EYT.js +0 -2
  441. package/dist/cli/chunks/chunk-OPKEQYAC.js +0 -2
  442. package/dist/cli/chunks/client-T263ZXVV.js +0 -2
  443. package/dist/cli/chunks/core-handlers-ODKKGCFK.js +0 -2
  444. package/dist/cli/chunks/cross-domain-router-APU725GC.js +0 -2
  445. package/dist/cli/chunks/dream-PJ5GKY3J.js +0 -2
  446. package/dist/cli/chunks/heartbeat-scheduler-4ZHUIW3Q.js +0 -2
  447. package/dist/cli/chunks/hnsw-adapter-UVJJ6TTP.js +0 -2
  448. package/dist/cli/chunks/hnsw-index-K6HS34JZ.js +0 -2
  449. package/dist/cli/chunks/hybrid-router-25S7OH2Y.js +0 -2
  450. package/dist/cli/chunks/impact-analyzer-UP4RDMJH.js +0 -2
  451. package/dist/cli/chunks/init-wizard-2PAJ3GEC.js +0 -2
  452. package/dist/cli/chunks/kernel-7WOQGMMT.js +0 -2
  453. package/dist/cli/chunks/knowledge-graph-FN2AWHGR.js +0 -2
  454. package/dist/cli/chunks/llm-router-service-C3UPBAS3.js +0 -2
  455. package/dist/cli/chunks/load-test-PQSGLDXJ.js +0 -2
  456. package/dist/cli/chunks/memory-backend-6FR4RT5O.js +0 -2
  457. package/dist/cli/chunks/pattern-null-store-B2UX4NZY.js +0 -2
  458. package/dist/cli/chunks/protocol-executor-OQ6SL7SR.js +0 -2
  459. package/dist/cli/chunks/provider-manager-DQWHW2RG.js +0 -2
  460. package/dist/cli/chunks/qe-reasoning-bank-3JS2CZAE.js +0 -2
  461. package/dist/cli/chunks/queen-coordinator-KXCWEM3Y.js +0 -2
  462. package/dist/cli/chunks/router-OVLIKT55.js +0 -2
  463. package/dist/cli/chunks/routing-feedback-2BYCXNXX.js +0 -2
  464. package/dist/cli/chunks/rvf-native-adapter-YNUYOQ5C.js +0 -2
  465. package/dist/cli/chunks/safe-db-6TYYEU7C.js +0 -2
  466. package/dist/cli/chunks/schedule-XVH7RTVY.js +0 -2
  467. package/dist/cli/chunks/scheduler-DHZBN5HA.js +0 -2
  468. package/dist/cli/chunks/sqlite-persistence-NR5WXTPN.js +0 -2
  469. package/dist/cli/chunks/unified-memory-WJEZ5YAK.js +0 -2
  470. package/dist/cli/chunks/unified-memory-hnsw-6ZA2PMYO.js +0 -2
  471. package/dist/cli/chunks/unified-persistence-SWH6R7MA.js +0 -2
  472. package/dist/cli/chunks/visual-security-PH5JQZCZ.js +0 -2
  473. package/dist/cli/chunks/witness-chain-WYMBNGSL.js +0 -2
  474. package/dist/cli/chunks/workflow-orchestrator-56JIXCI4.js +0 -2
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * ruflo-hook.cjs — cross-platform Node.js port of ruflo-hook.sh (#2132)
4
+ *
5
+ * Deployed to .claude/helpers/ during ruflo init. On Windows, the
6
+ * generated .claude/settings.json hooks point here instead of the
7
+ * plugin's bash-only ruflo-hook.sh.
8
+ *
9
+ * Always exits 0 — hook subcommands are best-effort telemetry and must
10
+ * never block a Claude Code turn.
11
+ */
12
+
13
+ 'use strict';
14
+
15
+ const { spawnSync, execSync } = require('child_process');
16
+ const fs = require('fs');
17
+
18
+ function done() { process.exit(0); }
19
+
20
+ function commandExists(cmd) {
21
+ try {
22
+ const r = execSync(
23
+ process.platform === 'win32' ? 'where ' + cmd : 'command -v ' + cmd,
24
+ { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }
25
+ );
26
+ return r.trim().length > 0;
27
+ } catch { return false; }
28
+ }
29
+
30
+ function invokeHook(bin, binArgs, hookArgs, stdinData) {
31
+ const args = [...binArgs, ...hookArgs];
32
+ const result = spawnSync(bin, args, {
33
+ shell: process.platform === 'win32',
34
+ input: stdinData || '',
35
+ encoding: 'utf8',
36
+ stdio: ['pipe', 'ignore', 'ignore'],
37
+ timeout: 30_000,
38
+ });
39
+ return result.status === 0;
40
+ }
41
+
42
+ function main() {
43
+ const args = process.argv.slice(2);
44
+ if (args.length === 0) done();
45
+
46
+ const [subcommand, ...rest] = args;
47
+
48
+ let stdinData = '';
49
+ try { stdinData = fs.readFileSync(0, 'utf8'); } catch { stdinData = ''; }
50
+
51
+ const hookArgs = ['hooks', subcommand, ...rest];
52
+
53
+ if (commandExists('ruflo')) { invokeHook('ruflo', [], hookArgs, stdinData); done(); }
54
+ if (commandExists('claude-flow')) { invokeHook('claude-flow', [], hookArgs, stdinData); done(); }
55
+ invokeHook('npx', ['--prefer-offline', '--yes', 'ruflo@latest'], hookArgs, stdinData);
56
+ done();
57
+ }
58
+
59
+ main();
@@ -10,6 +10,20 @@ const path = require('path');
10
10
  const SESSION_DIR = path.join(process.cwd(), '.claude-flow', 'sessions');
11
11
  const SESSION_FILE = path.join(SESSION_DIR, 'current.json');
12
12
 
13
+ // #2307: Atomic write — serialize to a per-process temp file, then rename()
14
+ // into place. rename() is atomic on the same filesystem, so concurrent writers
15
+ // (session-restore, metric, daemon workers, teammates) can't interleave partial
16
+ // content. Without this, two non-atomic writeFileSync calls can race so that a
17
+ // shorter payload overwrites a longer one in place, leaving the longer payload's
18
+ // tail dangling past the end (valid JSON + trailing garbage = parse error).
19
+ // Temp name includes process.pid so concurrent writers don't collide on it.
20
+ // Same class as #1707 (metrics) / #1637 (daemon-state) — session.js was missed.
21
+ function atomicWrite(file, data) {
22
+ const tmp = `${file}.tmp.${process.pid}`;
23
+ fs.writeFileSync(tmp, data);
24
+ fs.renameSync(tmp, file);
25
+ }
26
+
13
27
  const commands = {
14
28
  start: () => {
15
29
  const sessionId = `session-${Date.now()}`;
@@ -27,7 +41,7 @@ const commands = {
27
41
  };
28
42
 
29
43
  fs.mkdirSync(SESSION_DIR, { recursive: true });
30
- fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
44
+ atomicWrite(SESSION_FILE, JSON.stringify(session, null, 2));
31
45
 
32
46
  console.log(`Session started: ${sessionId}`);
33
47
  return session;
@@ -39,9 +53,17 @@ const commands = {
39
53
  return null;
40
54
  }
41
55
 
42
- const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
56
+ let session;
57
+ try {
58
+ session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
59
+ } catch (e) {
60
+ // #2307: corrupted session file (e.g. from a pre-atomic-write race).
61
+ // Don't throw — start a fresh session so the hook recovers cleanly.
62
+ console.log(`Session file corrupted (${e.message}); starting fresh`);
63
+ return commands.start();
64
+ }
43
65
  session.restoredAt = new Date().toISOString();
44
- fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
66
+ atomicWrite(SESSION_FILE, JSON.stringify(session, null, 2));
45
67
 
46
68
  console.log(`Session restored: ${session.id}`);
47
69
  return session;
@@ -59,7 +81,7 @@ const commands = {
59
81
 
60
82
  // Archive session
61
83
  const archivePath = path.join(SESSION_DIR, `${session.id}.json`);
62
- fs.writeFileSync(archivePath, JSON.stringify(session, null, 2));
84
+ atomicWrite(archivePath, JSON.stringify(session, null, 2));
63
85
  fs.unlinkSync(SESSION_FILE);
64
86
 
65
87
  console.log(`Session ended: ${session.id}`);
@@ -95,7 +117,7 @@ const commands = {
95
117
  const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
96
118
  session.context[key] = value;
97
119
  session.updatedAt = new Date().toISOString();
98
- fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
120
+ atomicWrite(SESSION_FILE, JSON.stringify(session, null, 2));
99
121
 
100
122
  return session;
101
123
  },
@@ -116,7 +138,7 @@ const commands = {
116
138
  const session = JSON.parse(fs.readFileSync(SESSION_FILE, 'utf-8'));
117
139
  if (session.metrics[name] !== undefined) {
118
140
  session.metrics[name]++;
119
- fs.writeFileSync(SESSION_FILE, JSON.stringify(session, null, 2));
141
+ atomicWrite(SESSION_FILE, JSON.stringify(session, null, 2));
120
142
  }
121
143
 
122
144
  return session;
@@ -11,8 +11,8 @@ if ! command -v claude &> /dev/null; then
11
11
  fi
12
12
 
13
13
  # Add MCP server
14
- echo "📦 Adding ruflo MCP server..."
15
- claude mcp add ruflo npx ruflo mcp start
14
+ echo "📦 Adding Claude Flow MCP server..."
15
+ claude mcp add claude-flow npx claude-flow mcp start
16
16
 
17
17
  echo "✅ MCP server setup complete!"
18
- echo "🎯 You can now use mcp__ruflo__ tools in Claude Code"
18
+ echo "🎯 You can now use mcp__claude-flow__ tools in Claude Code"