agentic-qe 3.9.10 → 3.9.11

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 (282) hide show
  1. package/.claude/skills/release/SKILL.md +36 -12
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +7 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +5 -5
  6. package/dist/cli/chunks/adapter-LDF6QG2T.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-HM4XSABF.js → agent-booster-wasm-ERBGW3L7.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-UDBDLLO4.js → agent-handler-G5WC5V6J.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-VIXQ3DAR.js → agent-memory-branch-XAM3NPTO.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-4BL4TKWF.js +2 -0
  11. package/dist/cli/chunks/{audit-FWTGLQHH.js → audit-QW4RPP6W.js} +2 -2
  12. package/dist/cli/chunks/base-KJWQLVQN.js +2 -0
  13. package/dist/cli/chunks/{better-sqlite3-TYI3CCWU.js → better-sqlite3-JNLN3EQY.js} +2 -2
  14. package/dist/cli/chunks/{brain-handler-45ZGBLSB.js → brain-handler-YXCEHA2J.js} +3 -3
  15. package/dist/cli/chunks/{branch-enumerator-ZBXELCQA.js → branch-enumerator-ZJUGC2OB.js} +2 -2
  16. package/dist/cli/chunks/{browser-2KM5IKEX.js → browser-RLRS7JBO.js} +2 -2
  17. package/dist/cli/chunks/browser-workflow-CWRD6MPO.js +2 -0
  18. package/dist/cli/chunks/{chunk-LODXDV4G.js → chunk-22OWZHSK.js} +2 -2
  19. package/dist/cli/chunks/{chunk-NIFVFUCU.js → chunk-2DSXKIGI.js} +2 -2
  20. package/dist/cli/chunks/{chunk-WW5DZ6BU.js → chunk-2NQ37ZD2.js} +1 -1
  21. package/dist/cli/chunks/{chunk-C234RGWZ.js → chunk-2PM3SD63.js} +2 -2
  22. package/dist/cli/chunks/{chunk-SMTAZQJ3.js → chunk-2SPDBBGB.js} +2 -2
  23. package/dist/cli/chunks/{chunk-RMQQ5UHM.js → chunk-44P37G45.js} +2 -2
  24. package/dist/cli/chunks/{chunk-EHGTNSJ2.js → chunk-4DHHTDMU.js} +1 -1
  25. package/dist/cli/chunks/{chunk-34WI4QNF.js → chunk-5BOJ7G3B.js} +2 -2
  26. package/dist/cli/chunks/{chunk-WLX57ULC.js → chunk-5QQVR2PJ.js} +2 -2
  27. package/dist/cli/chunks/{chunk-AO4HDN62.js → chunk-5RDXUTEB.js} +2 -2
  28. package/dist/cli/chunks/{chunk-ACNL4NFI.js → chunk-5XQLA5PW.js} +2 -2
  29. package/dist/cli/chunks/{chunk-XSUPK7FI.js → chunk-5Z3K47TT.js} +1 -1
  30. package/dist/cli/chunks/{chunk-4ZR5G4MZ.js → chunk-6RU5DG36.js} +2 -2
  31. package/dist/cli/chunks/{chunk-E4YKNKQL.js → chunk-6V7446OP.js} +2 -2
  32. package/dist/cli/chunks/{chunk-XH7D6EGE.js → chunk-7BYZSHCI.js} +1 -1
  33. package/dist/cli/chunks/{chunk-32OB4ZYQ.js → chunk-7CSQKBZM.js} +1 -1
  34. package/dist/cli/chunks/{chunk-CQNXIYQW.js → chunk-7D352FKW.js} +2 -2
  35. package/dist/cli/chunks/{chunk-C55GEYDA.js → chunk-7H46NSQI.js} +2 -2
  36. package/dist/cli/chunks/chunk-7J3CK3UY.js +2 -0
  37. package/dist/cli/chunks/{chunk-JYPW22JV.js → chunk-7WTKRSJW.js} +2 -2
  38. package/dist/cli/chunks/{chunk-TO4NGP3E.js → chunk-AIHD3V62.js} +1 -1
  39. package/dist/cli/chunks/{chunk-WFEXEDMC.js → chunk-BMDH76Z5.js} +2 -2
  40. package/dist/cli/chunks/{chunk-JQX2DHQT.js → chunk-C2HPZ65V.js} +1 -1
  41. package/dist/cli/chunks/{chunk-TTXYZUTQ.js → chunk-C3W4M7UY.js} +2 -2
  42. package/dist/cli/chunks/{chunk-XMAV7AIC.js → chunk-C4BDVGMS.js} +1 -1
  43. package/dist/cli/chunks/{chunk-52ZHPZVX.js → chunk-C5QJV576.js} +2 -2
  44. package/dist/cli/chunks/{chunk-3HIDCXW3.js → chunk-C6EG74P6.js} +1 -1
  45. package/dist/cli/chunks/{chunk-4LOJJ4VX.js → chunk-CL6NRSRJ.js} +1 -1
  46. package/dist/cli/chunks/{chunk-JHUEBBSX.js → chunk-CV3KHYEY.js} +2 -2
  47. package/dist/cli/chunks/{chunk-2IJFZW3N.js → chunk-DKJZW6KO.js} +3 -3
  48. package/dist/cli/chunks/{chunk-5QKTLOGO.js → chunk-DZZKBPOK.js} +1 -1
  49. package/dist/cli/chunks/{chunk-JXDJMVIG.js → chunk-E5XSCY5J.js} +2 -2
  50. package/dist/cli/chunks/{chunk-U635PSAW.js → chunk-F2OCIVD2.js} +2 -2
  51. package/dist/cli/chunks/{chunk-AOA454FC.js → chunk-F57L5LEP.js} +2 -2
  52. package/dist/cli/chunks/{chunk-5V6DRRLO.js → chunk-F6ADG6BA.js} +2 -2
  53. package/dist/cli/chunks/{chunk-F7HRGQRS.js → chunk-FOONOTJJ.js} +2 -2
  54. package/dist/cli/chunks/{chunk-A2ULGMMG.js → chunk-G3XXEPHS.js} +1 -1
  55. package/dist/cli/chunks/{chunk-I3IRIJOT.js → chunk-GEXHAKJ3.js} +1 -1
  56. package/dist/cli/chunks/{chunk-HJMLJNCB.js → chunk-GF6KRBPQ.js} +1 -1
  57. package/dist/cli/chunks/{chunk-IJUL2UMO.js → chunk-GOWDJPOX.js} +1 -1
  58. package/dist/cli/chunks/{chunk-VNKCUKUJ.js → chunk-HGPK3IIX.js} +3 -3
  59. package/dist/cli/chunks/{chunk-KSRAA6ZD.js → chunk-I2HIQGZ2.js} +3 -3
  60. package/dist/cli/chunks/{chunk-KUCU5ML6.js → chunk-I3V5VPNQ.js} +2 -2
  61. package/dist/cli/chunks/{chunk-335CCAOL.js → chunk-IFVGKXD2.js} +1 -1
  62. package/dist/cli/chunks/{chunk-ITDYTODU.js → chunk-IURQ4SKQ.js} +2 -2
  63. package/dist/cli/chunks/{chunk-3A4BL62O.js → chunk-JDJRCINX.js} +1 -1
  64. package/dist/cli/chunks/{chunk-ZENLP5LF.js → chunk-JG6GFIR4.js} +1 -1
  65. package/dist/cli/chunks/{chunk-CEBZHZ4O.js → chunk-JJS3OOFV.js} +1 -1
  66. package/dist/cli/chunks/{chunk-XSWOB74I.js → chunk-K33CP3M4.js} +2 -2
  67. package/dist/cli/chunks/{chunk-54TZA65H.js → chunk-K6S2C76B.js} +2 -2
  68. package/dist/cli/chunks/{chunk-ISZJAZ2D.js → chunk-KE5INK6G.js} +1 -1
  69. package/dist/cli/chunks/{chunk-53G3OCGS.js → chunk-KFNPCKTB.js} +2 -2
  70. package/dist/cli/chunks/{chunk-CFQHIWWH.js → chunk-KK6MUW7H.js} +1 -1
  71. package/dist/cli/chunks/{chunk-CJO2V2FB.js → chunk-KNG3K26M.js} +1 -1
  72. package/dist/cli/chunks/{chunk-YT6KBEXE.js → chunk-KUU5KPBS.js} +2 -2
  73. package/dist/cli/chunks/{chunk-DPYCHODC.js → chunk-KXNVYDJF.js} +2 -2
  74. package/dist/cli/chunks/{chunk-D2A4TGZY.js → chunk-L4TU4IIE.js} +1 -1
  75. package/dist/cli/chunks/{chunk-FYI52MFF.js → chunk-L7LOSW5T.js} +24 -24
  76. package/dist/cli/chunks/{chunk-IEQ2VYMO.js → chunk-LKYO7SZ7.js} +2 -2
  77. package/dist/cli/chunks/{chunk-DG2OYKUQ.js → chunk-LLC3GJXO.js} +2 -2
  78. package/dist/cli/chunks/{chunk-3AG647MY.js → chunk-LPTSNKCM.js} +2 -2
  79. package/dist/cli/chunks/{chunk-BIV6HWMT.js → chunk-MFHKKNVZ.js} +2 -2
  80. package/dist/cli/chunks/{chunk-X364AIY6.js → chunk-MQTFPGGG.js} +1 -1
  81. package/dist/cli/chunks/{chunk-BCSCJBYQ.js → chunk-N3LKRXKM.js} +2 -2
  82. package/dist/cli/chunks/{chunk-JN3CC2TX.js → chunk-N5EQ3Q63.js} +2 -2
  83. package/dist/cli/chunks/{chunk-QFUINEBN.js → chunk-NDLYVPON.js} +1 -1
  84. package/dist/cli/chunks/{chunk-JRMNQWRL.js → chunk-NEI3CUGT.js} +3 -3
  85. package/dist/cli/chunks/{chunk-LKCFJC4Q.js → chunk-NKUPM5KQ.js} +1 -1
  86. package/dist/cli/chunks/{chunk-URXG7FMO.js → chunk-NMJFMH4E.js} +2 -2
  87. package/dist/cli/chunks/{chunk-AE6Y5CNJ.js → chunk-NU5DOYGG.js} +2 -2
  88. package/dist/cli/chunks/{chunk-KXXLMLMJ.js → chunk-NWUOACDR.js} +2 -2
  89. package/dist/cli/chunks/{chunk-U4NODKRR.js → chunk-O374BYD4.js} +2 -2
  90. package/dist/cli/chunks/{chunk-4FU6YNDP.js → chunk-OUCFT3RT.js} +2 -2
  91. package/dist/cli/chunks/{chunk-JRG4AFUR.js → chunk-P5GOHOPL.js} +3 -3
  92. package/dist/cli/chunks/{chunk-EJNASXOY.js → chunk-P6O43I72.js} +2 -2
  93. package/dist/cli/chunks/{chunk-B3L3CT4X.js → chunk-PRUG76TG.js} +2 -2
  94. package/dist/cli/chunks/{chunk-YPIZMTTA.js → chunk-PX2LQIS3.js} +2 -2
  95. package/dist/cli/chunks/{chunk-XICRAXUR.js → chunk-QEBXLE7N.js} +4 -4
  96. package/dist/cli/chunks/{chunk-WVQZGLCT.js → chunk-QL5O27ES.js} +2 -2
  97. package/dist/cli/chunks/{chunk-A5OIXFFL.js → chunk-QRQV2KJ3.js} +1 -1
  98. package/dist/cli/chunks/{chunk-UBT7VCKQ.js → chunk-QWWYIHND.js} +2 -2
  99. package/dist/cli/chunks/{chunk-ROEMVTXC.js → chunk-R5FOT2GW.js} +3 -3
  100. package/dist/cli/chunks/{chunk-BNNH3KZP.js → chunk-RI5IUJ2E.js} +1 -1
  101. package/dist/cli/chunks/{chunk-B4AFVIOA.js → chunk-RRCFW2M3.js} +2 -2
  102. package/dist/cli/chunks/{chunk-ORA6NIXN.js → chunk-S37G7A6J.js} +2 -2
  103. package/dist/cli/chunks/{chunk-GCNTU3QJ.js → chunk-STVZ2TBG.js} +1 -1
  104. package/dist/cli/chunks/{chunk-B2QVWL5R.js → chunk-TEHFGVQG.js} +2 -2
  105. package/dist/cli/chunks/{chunk-EGIYLRW5.js → chunk-TFK7FDC4.js} +2 -2
  106. package/dist/cli/chunks/{chunk-UETM5XDO.js → chunk-TI4B6LPH.js} +1 -1
  107. package/dist/cli/chunks/{chunk-KK3KVYE7.js → chunk-TIKBMCDQ.js} +2 -2
  108. package/dist/cli/chunks/{chunk-FJOBKT7N.js → chunk-TRCNODAD.js} +1 -1
  109. package/dist/cli/chunks/{chunk-226DSROQ.js → chunk-TSXTP4MO.js} +3 -3
  110. package/dist/cli/chunks/{chunk-27B575K6.js → chunk-UMRNJLCT.js} +2 -2
  111. package/dist/cli/chunks/{chunk-NBTM2J4B.js → chunk-V45UPEEM.js} +2 -2
  112. package/dist/cli/chunks/{chunk-OSD55UO7.js → chunk-VMBRYYYH.js} +2 -2
  113. package/dist/cli/chunks/{chunk-EEWTTYRC.js → chunk-VQIBPHLI.js} +1 -1
  114. package/dist/cli/chunks/{chunk-JOEEGNNX.js → chunk-W2CIYDNQ.js} +2 -2
  115. package/dist/cli/chunks/{chunk-6X7WKNDF.js → chunk-WGKNSWGX.js} +2 -2
  116. package/dist/cli/chunks/{chunk-FIQNVPYY.js → chunk-WUDYOEEV.js} +2 -2
  117. package/dist/cli/chunks/{chunk-MOLMS6MA.js → chunk-WY4RNWWV.js} +2 -2
  118. package/dist/cli/chunks/{chunk-VXIXHZCN.js → chunk-XBG6EFDT.js} +2 -2
  119. package/dist/cli/chunks/{chunk-OWQRMH3G.js → chunk-XIJ6LU5G.js} +2 -2
  120. package/dist/cli/chunks/{chunk-RE2IBX7Z.js → chunk-XS7YNHNG.js} +2 -2
  121. package/dist/cli/chunks/{chunk-A53XKLEA.js → chunk-Y5WIREMP.js} +8 -8
  122. package/dist/cli/chunks/{chunk-VIWDVS24.js → chunk-Y5YE6LVE.js} +2 -2
  123. package/dist/cli/chunks/{chunk-5TATJQ3Z.js → chunk-YBVFSBYN.js} +2 -2
  124. package/dist/cli/chunks/{chunk-4EKWEDHA.js → chunk-YGZOCUJM.js} +9 -9
  125. package/dist/cli/chunks/{chunk-M4CYXAVP.js → chunk-YIZNQK5R.js} +4 -4
  126. package/dist/cli/chunks/{chunk-IGRKFVFD.js → chunk-YSNVBAUR.js} +2 -2
  127. package/dist/cli/chunks/{chunk-FF7TSDO4.js → chunk-YZNN62EM.js} +2 -2
  128. package/dist/cli/chunks/{chunk-H56YBNXW.js → chunk-Z5CFWIET.js} +2 -2
  129. package/dist/cli/chunks/{chunk-IJPE6OGD.js → chunk-ZGWNU6V6.js} +4 -4
  130. package/dist/cli/chunks/{chunk-4VOGUZW5.js → chunk-ZM7WJNQY.js} +1 -1
  131. package/dist/cli/chunks/{chunk-OOHKW3UE.js → chunk-ZWGFOQOS.js} +2 -2
  132. package/dist/cli/chunks/{ci-WS32HBBS.js → ci-3W7NMONI.js} +2 -2
  133. package/dist/cli/chunks/{ci-output-67R5MSLL.js → ci-output-S3L4ODFZ.js} +2 -2
  134. package/dist/cli/chunks/{circuit-breaker-MA562FT7.js → circuit-breaker-2KWBO7XA.js} +2 -2
  135. package/dist/cli/chunks/{claude-flow-setup-4QKGSRS7.js → claude-flow-setup-NXRU3CZJ.js} +2 -2
  136. package/dist/cli/chunks/client-6QLRJHON.js +2 -0
  137. package/dist/cli/chunks/{cline-installer-6VSROHRY.js → cline-installer-EJZWTH4O.js} +2 -2
  138. package/dist/cli/chunks/{code-FBPBHVV3.js → code-M5S5TNSV.js} +2 -2
  139. package/dist/cli/chunks/{code-index-extractor-62F622V2.js → code-index-extractor-YKAU2SIV.js} +2 -2
  140. package/dist/cli/chunks/{codex-installer-LSR6DVCU.js → codex-installer-2RO7UPOC.js} +2 -2
  141. package/dist/cli/chunks/{completions-56QOICBN.js → completions-6X4AQ43R.js} +2 -2
  142. package/dist/cli/chunks/{complexity-analyzer-SDH4NWIS.js → complexity-analyzer-TVSEUC4O.js} +2 -2
  143. package/dist/cli/chunks/{continuedev-installer-S7ZPL3VC.js → continuedev-installer-OPFGF74I.js} +2 -2
  144. package/dist/cli/chunks/{copilot-installer-25GNNKNL.js → copilot-installer-RRL4SCGA.js} +2 -2
  145. package/dist/cli/chunks/{cost-tracker-73J4Y2RS.js → cost-tracker-XBNJ7WKR.js} +2 -2
  146. package/dist/cli/chunks/{coverage-WEE2AZ5F.js → coverage-FPJJTRAR.js} +3 -3
  147. package/dist/cli/chunks/cross-domain-router-Z4NI2VT3.js +2 -0
  148. package/dist/cli/chunks/{cursor-installer-DHQ644T3.js → cursor-installer-OPY7SFFC.js} +2 -2
  149. package/dist/cli/chunks/{daemon-3WUJ5E3X.js → daemon-S3ZA7RT3.js} +3 -3
  150. package/dist/cli/chunks/{dag-attention-scheduler-IRLAM43H.js → dag-attention-scheduler-AOAJOWRN.js} +2 -2
  151. package/dist/cli/chunks/{detect-DTSB4T4R.js → detect-3F2HT32S.js} +2 -2
  152. package/dist/cli/chunks/{domain-handler-DDN2Z5XC.js → domain-handler-SCWOCRON.js} +2 -2
  153. package/dist/cli/chunks/{domain-transfer-3RRG4S6R.js → domain-transfer-4I3QTX44.js} +2 -2
  154. package/dist/cli/chunks/dream-ICDONOKV.js +2 -0
  155. package/dist/cli/chunks/esm-node-PH6TIFQ6.js +2 -0
  156. package/dist/cli/chunks/{eval-UXEP425X.js → eval-M46NFR6V.js} +2 -2
  157. package/dist/cli/chunks/{fast-paths-4XLHS2VN.js → fast-paths-I2NAO6KL.js} +2 -2
  158. package/dist/cli/chunks/{feature-flags-KXXHAEYF.js → feature-flags-NQHRPIUT.js} +2 -2
  159. package/dist/cli/chunks/{feature-flags-6C2HD76K.js → feature-flags-PPFEWUVO.js} +2 -2
  160. package/dist/cli/chunks/{file-discovery-YSDUIZO4.js → file-discovery-WHHTABIG.js} +2 -2
  161. package/dist/cli/chunks/{fleet-TYDG5DWK.js → fleet-O5C6B37V.js} +3 -3
  162. package/dist/cli/chunks/{gnn-wrapper-GJVYRPHB.js → gnn-wrapper-RYIYJINN.js} +2 -2
  163. package/dist/cli/chunks/{heartbeat-handler-X63CM35O.js → heartbeat-handler-NUE27AHM.js} +4 -4
  164. package/dist/cli/chunks/{heartbeat-scheduler-NYH4CMVM.js → heartbeat-scheduler-COBJE65L.js} +2 -2
  165. package/dist/cli/chunks/hnsw-adapter-5BSHU4UF.js +2 -0
  166. package/dist/cli/chunks/hnsw-index-KX6DATRE.js +2 -0
  167. package/dist/cli/chunks/{hnsw-legacy-bridge-YDVUZTJI.js → hnsw-legacy-bridge-4YLY2WU2.js} +2 -2
  168. package/dist/cli/chunks/{hnswlib-node-TLBDFWA6.js → hnswlib-node-GCYY3MVY.js} +2 -2
  169. package/dist/cli/chunks/{hooks-B6PVGP7D.js → hooks-F3ZDOXBU.js} +6 -6
  170. package/dist/cli/chunks/{hybrid-router-YZEBKUZJ.js → hybrid-router-ZKOXVYVB.js} +2 -2
  171. package/dist/cli/chunks/{hypergraph-engine-OQ2ZEG53.js → hypergraph-engine-7P7HDFAU.js} +2 -2
  172. package/dist/cli/chunks/{hypergraph-handler-VPD424MI.js → hypergraph-handler-L2PIBHKZ.js} +3 -3
  173. package/dist/cli/chunks/impact-analyzer-KNWIKJVU.js +2 -0
  174. package/dist/cli/chunks/{init-handler-5WYP6NJW.js → init-handler-6FQSEU3G.js} +6 -6
  175. package/dist/cli/chunks/init-wizard-VKUUCD2T.js +2 -0
  176. package/dist/cli/chunks/kernel-LRGVOUOH.js +2 -0
  177. package/dist/cli/chunks/{kilocode-installer-YVY4EVMY.js → kilocode-installer-F2OCU37B.js} +2 -2
  178. package/dist/cli/chunks/{kiro-installer-GNT4BN3A.js → kiro-installer-NXSCDS3D.js} +2 -2
  179. package/dist/cli/chunks/knowledge-graph-7O4ACKK7.js +2 -0
  180. package/dist/cli/chunks/{learning-LD2RSBRS.js → learning-X2WZCNO2.js} +3 -3
  181. package/dist/cli/chunks/{llm-router-ALKXFKLQ.js → llm-router-LG3AFXW4.js} +4 -4
  182. package/dist/cli/chunks/{load-XAOTGZYB.js → load-N4TOWO47.js} +2 -2
  183. package/dist/cli/chunks/load-test-MWJ46OOI.js +2 -0
  184. package/dist/cli/chunks/{mcp-WDAJHGH4.js → mcp-L6GELR4I.js} +2 -2
  185. package/dist/cli/chunks/{memory-M7QD57JD.js → memory-XWVTSHTR.js} +5 -5
  186. package/dist/cli/chunks/memory-backend-XNNH47PJ.js +2 -0
  187. package/dist/cli/chunks/{memory-handlers-2NHGZLQM.js → memory-handlers-N4HCIXM6.js} +2 -2
  188. package/dist/cli/chunks/{multi-model-executor-2XZQK2IN.js → multi-model-executor-QVV6JZYD.js} +2 -2
  189. package/dist/cli/chunks/{opencode-installer-ASCVY3GG.js → opencode-installer-MID5ZQNA.js} +2 -2
  190. package/dist/cli/chunks/{orchestrator-GOZICWN3.js → orchestrator-HIOP5K2H.js} +13 -13
  191. package/dist/cli/chunks/{pipeline-YHQRJWV3.js → pipeline-DXEZV7FN.js} +2 -2
  192. package/dist/cli/chunks/{platform-4NESYFHN.js → platform-LDZ6HBEA.js} +2 -2
  193. package/dist/cli/chunks/{plugin-E24I2RVB.js → plugin-XPQBUDKJ.js} +2 -2
  194. package/dist/cli/chunks/{prime-radiant-advanced-wasm-CDVSLR7R.js → prime-radiant-advanced-wasm-OVJE7LH7.js} +2 -2
  195. package/dist/cli/chunks/protocol-executor-C4VLLOXH.js +2 -0
  196. package/dist/cli/chunks/{protocol-handler-TGTDKSZB.js → protocol-handler-BI37HYPC.js} +2 -2
  197. package/dist/cli/chunks/{prove-WUKDAMSE.js → prove-4A65UZVW.js} +2 -2
  198. package/dist/cli/chunks/{provider-manager-BTKK6W7M.js → provider-manager-MAP3LEV2.js} +2 -2
  199. package/dist/cli/chunks/qe-reasoning-bank-ALMRMCX6.js +2 -0
  200. package/dist/cli/chunks/{quality-RTIOIS2K.js → quality-4RQ3D3JL.js} +2 -2
  201. package/dist/cli/chunks/queen-coordinator-PJMDHNCR.js +2 -0
  202. package/dist/cli/chunks/{real-embeddings-4JJKAEMO.js → real-embeddings-GT7AC5MU.js} +2 -2
  203. package/dist/cli/chunks/{roocode-installer-XU2IXRBM.js → roocode-installer-L77GZ3ZK.js} +2 -2
  204. package/dist/cli/chunks/router-5EMK2VI4.js +2 -0
  205. package/dist/cli/chunks/routing-feedback-GM474EAA.js +2 -0
  206. package/dist/cli/chunks/{routing-handler-3KBOCIEN.js → routing-handler-3GKAOO3V.js} +2 -2
  207. package/dist/cli/chunks/{ruvector-commands-HHE2ZPX7.js → ruvector-commands-JG4JJJIE.js} +2 -2
  208. package/dist/cli/chunks/{rvf-dual-writer-GAWM2BUZ.js → rvf-dual-writer-HSJJLGC7.js} +2 -2
  209. package/dist/cli/chunks/{rvf-migration-adapter-HQPEC4BN.js → rvf-migration-adapter-YKJNIXE6.js} +2 -2
  210. package/dist/cli/chunks/{rvf-migration-coordinator-A4K45EFU.js → rvf-migration-coordinator-ROE2JI6M.js} +2 -2
  211. package/dist/cli/chunks/rvf-native-adapter-L6TVMXZG.js +2 -0
  212. package/dist/cli/chunks/safe-db-D2JVWU7V.js +2 -0
  213. package/dist/cli/chunks/schedule-ATMJHEWX.js +2 -0
  214. package/dist/cli/chunks/scheduler-FFU5HTXP.js +2 -0
  215. package/dist/cli/chunks/{security-UIKUNOXB.js → security-Q46N26CF.js} +3 -3
  216. package/dist/cli/chunks/shared-rvf-adapter-KBGYVHKT.js +2 -0
  217. package/dist/cli/chunks/{shared-rvf-dual-writer-ZUWSLFPH.js → shared-rvf-dual-writer-3HAS2G2C.js} +2 -2
  218. package/dist/cli/chunks/sqlite-persistence-CDUAJ4WV.js +2 -0
  219. package/dist/cli/chunks/{status-handler-E3VSWGA6.js → status-handler-LMQZIGFN.js} +2 -2
  220. package/dist/cli/chunks/{structural-health-Y22H4BOU.js → structural-health-DTU6QRF5.js} +2 -2
  221. package/dist/cli/chunks/{sync-CA4KWZFS.js → sync-QIUCA4J6.js} +2 -2
  222. package/dist/cli/chunks/{task-handler-3EZPIAMD.js → task-handler-PVZ5GTKK.js} +2 -2
  223. package/dist/cli/chunks/{task-handlers-6UVAQAGP.js → task-handlers-W34B2327.js} +2 -2
  224. package/dist/cli/chunks/{test-Q5DOFSJI.js → test-JQJAOFZO.js} +4 -4
  225. package/dist/cli/chunks/{test-scheduling-BSXWCIMQ.js → test-scheduling-4ZE5MPNY.js} +3 -3
  226. package/dist/cli/chunks/{token-bootstrap-XGEZU2CS.js → token-bootstrap-GL5WJ5SI.js} +2 -2
  227. package/dist/cli/chunks/{token-usage-BZX5TCG6.js → token-usage-BUSEAXEB.js} +2 -2
  228. package/dist/cli/chunks/{transformers-7ITQPXAU.js → transformers-FLJ4PR2F.js} +2 -2
  229. package/dist/cli/chunks/{tree-sitter-wasm-parser-ZYBBNYR3.js → tree-sitter-wasm-parser-VHFVZOVZ.js} +2 -2
  230. package/dist/cli/chunks/{types-ACZ5VVRC.js → types-DD6ZWJZW.js} +2 -2
  231. package/dist/cli/chunks/unified-memory-H55OLMCH.js +2 -0
  232. package/dist/cli/chunks/unified-memory-hnsw-EL4ZOWLV.js +2 -0
  233. package/dist/cli/chunks/unified-persistence-SW3GZQOI.js +2 -0
  234. package/dist/cli/chunks/{validate-IQL6OVXD.js → validate-RAX2MQKU.js} +2 -2
  235. package/dist/cli/chunks/{validate-swarm-J52J2K5X.js → validate-swarm-7FDYRKAC.js} +2 -2
  236. package/dist/cli/chunks/{vibium-XSE76PXE.js → vibium-FUESVL6F.js} +2 -2
  237. package/dist/cli/chunks/visual-security-7RHKMS2T.js +2 -0
  238. package/dist/cli/chunks/{web-tree-sitter-YM6QXUIY.js → web-tree-sitter-DNSKYDCS.js} +2 -2
  239. package/dist/cli/chunks/{windsurf-installer-M27DVL4H.js → windsurf-installer-YA244VF3.js} +2 -2
  240. package/dist/cli/chunks/witness-chain-PBFNSR2Z.js +2 -0
  241. package/dist/cli/chunks/{witness-chain-NB5LP73S.js → witness-chain-SGGPG6VR.js} +2 -2
  242. package/dist/cli/chunks/{workflow-5DODQ6XS.js → workflow-TCQSFBBE.js} +4 -4
  243. package/dist/cli/chunks/workflow-orchestrator-KQP277ZB.js +2 -0
  244. package/dist/cli/chunks/{wrappers-K7HHCIYD.js → wrappers-44R4HXVW.js} +2 -2
  245. package/dist/init/agents-installer.js +6 -0
  246. package/dist/init/phases/09-assets.js +26 -9
  247. package/dist/mcp/bundle.js +1 -1
  248. package/package.json +1 -1
  249. package/dist/cli/chunks/adapter-IKCDCMSI.js +0 -2
  250. package/dist/cli/chunks/aqe-learning-engine-W4WW7SQW.js +0 -2
  251. package/dist/cli/chunks/base-UQKFTHOY.js +0 -2
  252. package/dist/cli/chunks/browser-workflow-NMOEM3HW.js +0 -2
  253. package/dist/cli/chunks/chunk-7FWZHYYE.js +0 -2
  254. package/dist/cli/chunks/client-XQGZKXOB.js +0 -2
  255. package/dist/cli/chunks/cross-domain-router-C2ZFCSXJ.js +0 -2
  256. package/dist/cli/chunks/dream-JSZZ67OO.js +0 -2
  257. package/dist/cli/chunks/esm-node-X4TES6NX.js +0 -2
  258. package/dist/cli/chunks/hnsw-adapter-SQCVEHB5.js +0 -2
  259. package/dist/cli/chunks/hnsw-index-UGVC5IDK.js +0 -2
  260. package/dist/cli/chunks/impact-analyzer-ZIXSRWED.js +0 -2
  261. package/dist/cli/chunks/init-wizard-MO6PCXPX.js +0 -2
  262. package/dist/cli/chunks/kernel-P54KQB2F.js +0 -2
  263. package/dist/cli/chunks/knowledge-graph-GU57FQAQ.js +0 -2
  264. package/dist/cli/chunks/load-test-5RFBTSS7.js +0 -2
  265. package/dist/cli/chunks/memory-backend-GPOP3IR4.js +0 -2
  266. package/dist/cli/chunks/protocol-executor-M5IONISJ.js +0 -2
  267. package/dist/cli/chunks/qe-reasoning-bank-WIEXCBVE.js +0 -2
  268. package/dist/cli/chunks/queen-coordinator-ZFK6DANW.js +0 -2
  269. package/dist/cli/chunks/router-TOFBEI2Q.js +0 -2
  270. package/dist/cli/chunks/routing-feedback-RC2VDP6W.js +0 -2
  271. package/dist/cli/chunks/rvf-native-adapter-ZOQDH3JY.js +0 -2
  272. package/dist/cli/chunks/safe-db-RIP3X32S.js +0 -2
  273. package/dist/cli/chunks/schedule-Q6KZRLWS.js +0 -2
  274. package/dist/cli/chunks/scheduler-SJO5QPAU.js +0 -2
  275. package/dist/cli/chunks/shared-rvf-adapter-JJCR3AWU.js +0 -2
  276. package/dist/cli/chunks/sqlite-persistence-HK2S6XAI.js +0 -2
  277. package/dist/cli/chunks/unified-memory-EXO6WK33.js +0 -2
  278. package/dist/cli/chunks/unified-memory-hnsw-7HPSTFVV.js +0 -2
  279. package/dist/cli/chunks/unified-persistence-WC3O4WOJ.js +0 -2
  280. package/dist/cli/chunks/visual-security-COW3OCEE.js +0 -2
  281. package/dist/cli/chunks/witness-chain-XQXF3RSP.js +0 -2
  282. package/dist/cli/chunks/workflow-orchestrator-HSIZEKZM.js +0 -2
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a}from"./chunk-LPTSNKCM.js";import"./chunk-5BOJ7G3B.js";import"./chunk-N5EQ3Q63.js";import"./chunk-NMJFMH4E.js";import"./chunk-C3W4M7UY.js";import"./chunk-7J3CK3UY.js";import"./chunk-5QQVR2PJ.js";import"./chunk-LLC3GJXO.js";import"./chunk-YSNVBAUR.js";import"./chunk-L4TU4IIE.js";import"./chunk-44P37G45.js";import"./chunk-XS7YNHNG.js";import"./chunk-2SPDBBGB.js";import"./chunk-F57L5LEP.js";import"./chunk-QWWYIHND.js";import"./chunk-RRCFW2M3.js";import"./chunk-6RU5DG36.js";import"./chunk-NWUOACDR.js";import"./chunk-K6S2C76B.js";import"./chunk-IFVGKXD2.js";export{a as LoadTestTool};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{a as p}from"./chunk-WW5DZ6BU.js";import"./chunk-335CCAOL.js";import{Command as d}from"commander";import{spawn as m}from"child_process";import{join as e,dirname as a}from"path";import{existsSync as l}from"fs";import{fileURLToPath as u}from"url";function f(){return new d("mcp").description("Start the MCP protocol server for Claude Code integration").option("--http <port>","Also start HTTP server for AG-UI/A2A protocols","0").option("--verbose","Enable verbose logging").action(async r=>{let s={...process.env,AQE_HTTP_PORT:r.http||"0"};r.verbose&&(s.AQE_VERBOSE="true");let o=g();o||(console.error("Error: Could not find MCP server entry point"),console.error("Make sure agentic-qe is properly installed"),process.exit(1));let n=o.endsWith(".js"),c=m("node",n?[o]:["--import","tsx",o],{env:s,stdio:"inherit",cwd:process.cwd()});c.on("error",i=>{console.error("Failed to start MCP server:",i.message),process.exit(1)}),c.on("exit",i=>{process.exit(i??0)}),process.on("SIGINT",()=>c.kill("SIGINT")),process.on("SIGTERM",()=>c.kill("SIGTERM"))})}function g(){let t=[],r=p(import.meta.url);r&&t.push(e(r,"dist","mcp","bundle.js"),e(r,"dist","mcp","entry.js"),e(r,"src","mcp","entry.ts"));let s=u(import.meta.url),o=a(s);t.push(e(o,"..","mcp","bundle.js"),e(o,"..","mcp","entry.js"),e(o,"..","mcp","entry.ts"),e(o,"..","..","mcp","bundle.js")),t.push(e(process.cwd(),"node_modules","agentic-qe","dist","mcp","bundle.js"),e(process.cwd(),"node_modules","agentic-qe","dist","mcp","entry.js"));for(let n of t)if(l(n))return n;return null}var R=f;export{f as createMcpCommand,R as default};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a as p}from"./chunk-2NQ37ZD2.js";import"./chunk-IFVGKXD2.js";import{Command as d}from"commander";import{spawn as m}from"child_process";import{join as e,dirname as a}from"path";import{existsSync as l}from"fs";import{fileURLToPath as u}from"url";function f(){return new d("mcp").description("Start the MCP protocol server for Claude Code integration").option("--http <port>","Also start HTTP server for AG-UI/A2A protocols","0").option("--verbose","Enable verbose logging").action(async r=>{let s={...process.env,AQE_HTTP_PORT:r.http||"0"};r.verbose&&(s.AQE_VERBOSE="true");let o=g();o||(console.error("Error: Could not find MCP server entry point"),console.error("Make sure agentic-qe is properly installed"),process.exit(1));let n=o.endsWith(".js"),c=m("node",n?[o]:["--import","tsx",o],{env:s,stdio:"inherit",cwd:process.cwd()});c.on("error",i=>{console.error("Failed to start MCP server:",i.message),process.exit(1)}),c.on("exit",i=>{process.exit(i??0)}),process.on("SIGINT",()=>c.kill("SIGINT")),process.on("SIGTERM",()=>c.kill("SIGTERM"))})}function g(){let t=[],r=p(import.meta.url);r&&t.push(e(r,"dist","mcp","bundle.js"),e(r,"dist","mcp","entry.js"),e(r,"src","mcp","entry.ts"));let s=u(import.meta.url),o=a(s);t.push(e(o,"..","mcp","bundle.js"),e(o,"..","mcp","entry.js"),e(o,"..","mcp","entry.ts"),e(o,"..","..","mcp","bundle.js")),t.push(e(process.cwd(),"node_modules","agentic-qe","dist","mcp","bundle.js"),e(process.cwd(),"node_modules","agentic-qe","dist","mcp","entry.js"));for(let n of t)if(l(n))return n;return null}var R=f;export{f as createMcpCommand,R as default};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{a as i,c as p}from"./chunk-IGRKFVFD.js";import"./chunk-335CCAOL.js";p();import{Command as f}from"commander";import r from"chalk";function S(w,o,l){let c=new f("memory").description("Memory store, retrieve, search, and delete operations").addHelpText("after",`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a as i,c as p}from"./chunk-YSNVBAUR.js";import"./chunk-IFVGKXD2.js";p();import{Command as f}from"commander";import r from"chalk";function S(w,o,l){let c=new f("memory").description("Memory store, retrieve, search, and delete operations").addHelpText("after",`
3
3
  Examples:
4
4
  # Store a value
5
5
  aqe memory store --key "auth-pattern" --value "JWT with refresh tokens" --namespace patterns
@@ -24,9 +24,9 @@ Examples:
24
24
 
25
25
  # Show usage stats
26
26
  aqe memory usage
27
- `);return c.command("store").description("Store a key-value pair in memory").requiredOption("--key <key>","Memory key").requiredOption("--value <value>","Value to store (string or JSON)").option("--namespace <ns>","Namespace for grouping","default").option("--ttl <seconds>","Time-to-live in seconds").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryStore:t}=await import("./memory-handlers-2NHGZLQM.js"),a=e.value;try{a=JSON.parse(e.value)}catch{}let s=await t({key:e.key,value:a,namespace:e.namespace,ttl:e.ttl?parseInt(e.ttl,10):void 0});e.json?console.log(JSON.stringify(s,null,2)):s.success?console.log(r.green(` \u2713 Stored "${e.key}" in namespace "${e.namespace}"`)):(console.error(r.red(` \u2717 ${s.error}`)),await o(1))}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("get").description("Retrieve a value by key").requiredOption("--key <key>","Memory key to retrieve").option("--namespace <ns>","Namespace","default").option("--include-metadata","Include metadata in response").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryRetrieve:t}=await import("./memory-handlers-2NHGZLQM.js"),a=await t({key:e.key,namespace:e.namespace,includeMetadata:e.includeMetadata});if(e.json)console.log(JSON.stringify(a,null,2));else if(a.success&&a.data)if(a.data.found){let s=typeof a.data.value=="string"?a.data.value:JSON.stringify(a.data.value,null,2);console.log(r.green(` ${e.key}`)+r.gray(` [${e.namespace}]`)),console.log(` ${s}`)}else console.log(r.yellow(` Key "${e.key}" not found in namespace "${e.namespace}"`));else console.error(r.red(` \u2717 ${a.error}`)),await o(1)}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("search").description("Search memory by pattern (glob) or semantic query").option("--pattern <glob>",'Glob pattern to match keys (e.g., "auth*")').option("--query <text>","Natural language query (implies --semantic)").option("--semantic","Use HNSW vector search for semantic matching").option("--namespace <ns>","Namespace to search in","default").option("--limit <n>","Maximum results","20").option("--offset <n>","Skip first N results","0").option("--json","Output as JSON").action(async e=>{if(!e.pattern&&!e.query&&(console.error(r.red(" Either --pattern or --query is required")),await o(1)),!!await l())try{let{handleMemoryQuery:t}=await import("./memory-handlers-2NHGZLQM.js"),a=e.query||e.pattern,s=e.semantic||!!e.query,n=await t({pattern:a,namespace:e.namespace,limit:parseInt(e.limit,10),offset:parseInt(e.offset,10),semantic:s});if(e.json)console.log(JSON.stringify(n,null,2));else if(n.success&&n.data){let{entries:y,total:d,searchType:u}=n.data;console.log(r.blue(` ${d} result(s) via ${u} search
27
+ `);return c.command("store").description("Store a key-value pair in memory").requiredOption("--key <key>","Memory key").requiredOption("--value <value>","Value to store (string or JSON)").option("--namespace <ns>","Namespace for grouping","default").option("--ttl <seconds>","Time-to-live in seconds").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryStore:t}=await import("./memory-handlers-N4HCIXM6.js"),a=e.value;try{a=JSON.parse(e.value)}catch{}let s=await t({key:e.key,value:a,namespace:e.namespace,ttl:e.ttl?parseInt(e.ttl,10):void 0});e.json?console.log(JSON.stringify(s,null,2)):s.success?console.log(r.green(` \u2713 Stored "${e.key}" in namespace "${e.namespace}"`)):(console.error(r.red(` \u2717 ${s.error}`)),await o(1))}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("get").description("Retrieve a value by key").requiredOption("--key <key>","Memory key to retrieve").option("--namespace <ns>","Namespace","default").option("--include-metadata","Include metadata in response").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryRetrieve:t}=await import("./memory-handlers-N4HCIXM6.js"),a=await t({key:e.key,namespace:e.namespace,includeMetadata:e.includeMetadata});if(e.json)console.log(JSON.stringify(a,null,2));else if(a.success&&a.data)if(a.data.found){let s=typeof a.data.value=="string"?a.data.value:JSON.stringify(a.data.value,null,2);console.log(r.green(` ${e.key}`)+r.gray(` [${e.namespace}]`)),console.log(` ${s}`)}else console.log(r.yellow(` Key "${e.key}" not found in namespace "${e.namespace}"`));else console.error(r.red(` \u2717 ${a.error}`)),await o(1)}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("search").description("Search memory by pattern (glob) or semantic query").option("--pattern <glob>",'Glob pattern to match keys (e.g., "auth*")').option("--query <text>","Natural language query (implies --semantic)").option("--semantic","Use HNSW vector search for semantic matching").option("--namespace <ns>","Namespace to search in","default").option("--limit <n>","Maximum results","20").option("--offset <n>","Skip first N results","0").option("--json","Output as JSON").action(async e=>{if(!e.pattern&&!e.query&&(console.error(r.red(" Either --pattern or --query is required")),await o(1)),!!await l())try{let{handleMemoryQuery:t}=await import("./memory-handlers-N4HCIXM6.js"),a=e.query||e.pattern,s=e.semantic||!!e.query,n=await t({pattern:a,namespace:e.namespace,limit:parseInt(e.limit,10),offset:parseInt(e.offset,10),semantic:s});if(e.json)console.log(JSON.stringify(n,null,2));else if(n.success&&n.data){let{entries:y,total:d,searchType:u}=n.data;console.log(r.blue(` ${d} result(s) via ${u} search
28
28
  `));for(let m of y){let g=m.score!==void 0?r.gray(` (score: ${m.score.toFixed(3)})`):"";console.log(` ${r.green(m.key)} ${r.gray(`[${m.namespace}]`)}${g}`)}n.data.hasMore&&console.log(r.gray(`
29
- ... and more. Use --offset ${parseInt(e.offset,10)+parseInt(e.limit,10)} to see next page`))}else console.error(r.red(` \u2717 ${n.error}`)),await o(1)}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("list").description("List all memory entries in a namespace").option("--namespace <ns>","Namespace to list","default").option("--limit <n>","Maximum results","50").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryQuery:t}=await import("./memory-handlers-2NHGZLQM.js"),a=await t({pattern:"*",namespace:e.namespace,limit:parseInt(e.limit,10)});if(e.json)console.log(JSON.stringify(a,null,2));else if(a.success&&a.data){console.log(r.blue(` ${a.data.total} entries in namespace "${e.namespace}"
29
+ ... and more. Use --offset ${parseInt(e.offset,10)+parseInt(e.limit,10)} to see next page`))}else console.error(r.red(` \u2717 ${n.error}`)),await o(1)}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("list").description("List all memory entries in a namespace").option("--namespace <ns>","Namespace to list","default").option("--limit <n>","Maximum results","50").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryQuery:t}=await import("./memory-handlers-N4HCIXM6.js"),a=await t({pattern:"*",namespace:e.namespace,limit:parseInt(e.limit,10)});if(e.json)console.log(JSON.stringify(a,null,2));else if(a.success&&a.data){console.log(r.blue(` ${a.data.total} entries in namespace "${e.namespace}"
30
30
  `));for(let s of a.data.entries)console.log(` ${r.green(s.key)}`);a.data.hasMore&&console.log(r.gray(`
31
- ... more entries exist. Use --limit to see more.`))}else console.error(r.red(` \u2717 ${a.error}`)),await o(1)}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("delete").description("Delete a memory entry by key").requiredOption("--key <key>","Memory key to delete").option("--namespace <ns>","Namespace","default").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryDelete:t}=await import("./memory-handlers-2NHGZLQM.js"),a=await t({key:e.key,namespace:e.namespace});e.json?console.log(JSON.stringify(a,null,2)):a.success&&a.data?a.data.deleted?console.log(r.green(` \u2713 Deleted "${e.key}" from namespace "${e.namespace}"`)):console.log(r.yellow(` Key "${e.key}" not found in namespace "${e.namespace}"`)):(console.error(r.red(` \u2717 ${a.error}`)),await o(1))}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("share").description("Share knowledge between agents").requiredOption("--from <agentId>","Source agent ID").requiredOption("--to <agentIds>","Comma-separated target agent IDs").requiredOption("--domain <domain>","Knowledge domain").requiredOption("--content <json>","JSON content to share").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryShare:t}=await import("./memory-handlers-2NHGZLQM.js"),a;try{a=JSON.parse(e.content)}catch{console.error(r.red(" --content must be valid JSON")),await o(1);return}let s=e.to.split(",").map(y=>y.trim()),n=await t({sourceAgentId:e.from,targetAgentIds:s,knowledgeDomain:e.domain,knowledgeContent:a});e.json?console.log(JSON.stringify(n,null,2)):n.success&&n.data?(console.log(r.green(` \u2713 Shared knowledge from ${n.data.sourceAgent} to ${n.data.targetAgents.join(", ")}`)),console.log(r.gray(` Domain: ${n.data.domain}`))):(console.error(r.red(` \u2717 ${n.error}`)),await o(1))}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("usage").description("Show memory usage statistics").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryUsage:t}=await import("./memory-handlers-2NHGZLQM.js"),a=await t();e.json?console.log(JSON.stringify(a,null,2)):a.success&&a.data?(console.log(r.blue(` Memory Usage
31
+ ... more entries exist. Use --limit to see more.`))}else console.error(r.red(` \u2717 ${a.error}`)),await o(1)}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("delete").description("Delete a memory entry by key").requiredOption("--key <key>","Memory key to delete").option("--namespace <ns>","Namespace","default").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryDelete:t}=await import("./memory-handlers-N4HCIXM6.js"),a=await t({key:e.key,namespace:e.namespace});e.json?console.log(JSON.stringify(a,null,2)):a.success&&a.data?a.data.deleted?console.log(r.green(` \u2713 Deleted "${e.key}" from namespace "${e.namespace}"`)):console.log(r.yellow(` Key "${e.key}" not found in namespace "${e.namespace}"`)):(console.error(r.red(` \u2717 ${a.error}`)),await o(1))}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("share").description("Share knowledge between agents").requiredOption("--from <agentId>","Source agent ID").requiredOption("--to <agentIds>","Comma-separated target agent IDs").requiredOption("--domain <domain>","Knowledge domain").requiredOption("--content <json>","JSON content to share").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryShare:t}=await import("./memory-handlers-N4HCIXM6.js"),a;try{a=JSON.parse(e.content)}catch{console.error(r.red(" --content must be valid JSON")),await o(1);return}let s=e.to.split(",").map(y=>y.trim()),n=await t({sourceAgentId:e.from,targetAgentIds:s,knowledgeDomain:e.domain,knowledgeContent:a});e.json?console.log(JSON.stringify(n,null,2)):n.success&&n.data?(console.log(r.green(` \u2713 Shared knowledge from ${n.data.sourceAgent} to ${n.data.targetAgents.join(", ")}`)),console.log(r.gray(` Domain: ${n.data.domain}`))):(console.error(r.red(` \u2717 ${n.error}`)),await o(1))}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c.command("usage").description("Show memory usage statistics").option("--json","Output as JSON").action(async e=>{if(await l())try{let{handleMemoryUsage:t}=await import("./memory-handlers-N4HCIXM6.js"),a=await t();e.json?console.log(JSON.stringify(a,null,2)):a.success&&a.data?(console.log(r.blue(` Memory Usage
32
32
  `)),console.log(` Entries: ${r.green(String(a.data.entries))}`),console.log(` Vectors: ${r.green(String(a.data.vectors))}`),console.log(` Namespaces: ${r.green(String(a.data.namespaces))}`)):(console.error(r.red(` \u2717 ${a.error}`)),await o(1))}catch(t){console.error(r.red(` Error: ${i(t)}`)),await o(1)}}),c}export{S as createMemoryCommand};
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a}from"./chunk-WY4RNWWV.js";import"./chunk-QWWYIHND.js";import"./chunk-RRCFW2M3.js";import"./chunk-IFVGKXD2.js";export{a as InMemoryBackend};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{c as a,d as c}from"./chunk-4EKWEDHA.js";import"./chunk-VIWDVS24.js";import"./chunk-6X7WKNDF.js";import"./chunk-KSRAA6ZD.js";import"./chunk-YT6KBEXE.js";import"./chunk-VXIXHZCN.js";import"./chunk-OOHKW3UE.js";import"./chunk-GCNTU3QJ.js";import"./chunk-JQX2DHQT.js";import"./chunk-KUCU5ML6.js";import"./chunk-IEQ2VYMO.js";import"./chunk-U4NODKRR.js";import"./chunk-CEBZHZ4O.js";import"./chunk-C55GEYDA.js";import"./chunk-5V6DRRLO.js";import"./chunk-EGIYLRW5.js";import"./chunk-3AG647MY.js";import"./chunk-YPIZMTTA.js";import"./chunk-XSUPK7FI.js";import"./chunk-LODXDV4G.js";import"./chunk-WVQZGLCT.js";import"./chunk-BNNH3KZP.js";import"./chunk-52ZHPZVX.js";import"./chunk-X364AIY6.js";import"./chunk-A53XKLEA.js";import"./chunk-UETM5XDO.js";import"./chunk-XMAV7AIC.js";import"./chunk-JRG4AFUR.js";import"./chunk-IJUL2UMO.js";import"./chunk-E4YKNKQL.js";import"./chunk-BIV6HWMT.js";import"./chunk-U635PSAW.js";import"./chunk-B2QVWL5R.js";import"./chunk-A5OIXFFL.js";import"./chunk-5TATJQ3Z.js";import"./chunk-2IJFZW3N.js";import"./chunk-5QKTLOGO.js";import"./chunk-FIQNVPYY.js";import"./chunk-TO4NGP3E.js";import"./chunk-F7HRGQRS.js";import"./chunk-32OB4ZYQ.js";import{a as m,b as R,d as $,e as y,f as g,i as b}from"./chunk-4FU6YNDP.js";import"./chunk-4LOJJ4VX.js";import"./chunk-ROEMVTXC.js";import"./chunk-M4CYXAVP.js";import"./chunk-EJNASXOY.js";import"./chunk-226DSROQ.js";import"./chunk-OWQRMH3G.js";import"./chunk-VNKCUKUJ.js";import"./chunk-XICRAXUR.js";import"./chunk-EEWTTYRC.js";import"./chunk-ZENLP5LF.js";import"./chunk-XH7D6EGE.js";import"./chunk-53G3OCGS.js";import"./chunk-ITDYTODU.js";import"./chunk-JXDJMVIG.js";import"./chunk-KK3KVYE7.js";import"./chunk-34WI4QNF.js";import"./chunk-JN3CC2TX.js";import"./chunk-B3L3CT4X.js";import"./chunk-XSWOB74I.js";import"./chunk-BCSCJBYQ.js";import"./chunk-JOEEGNNX.js";import"./chunk-AO4HDN62.js";import"./chunk-JHUEBBSX.js";import"./chunk-JRMNQWRL.js";import"./chunk-C234RGWZ.js";import"./chunk-AE6Y5CNJ.js";import"./chunk-JYPW22JV.js";import{b as w}from"./chunk-NIFVFUCU.js";import"./chunk-H56YBNXW.js";import"./chunk-URXG7FMO.js";import"./chunk-TTXYZUTQ.js";import"./chunk-ORA6NIXN.js";import"./chunk-7FWZHYYE.js";import"./chunk-WLX57ULC.js";import"./chunk-OSD55UO7.js";import"./chunk-DG2OYKUQ.js";import"./chunk-A2ULGMMG.js";import{a as i,c as S}from"./chunk-IGRKFVFD.js";import"./chunk-D2A4TGZY.js";import"./chunk-MOLMS6MA.js";import"./chunk-RMQQ5UHM.js";import"./chunk-RE2IBX7Z.js";import"./chunk-SMTAZQJ3.js";import"./chunk-AOA454FC.js";import"./chunk-UBT7VCKQ.js";import"./chunk-B4AFVIOA.js";import"./chunk-4ZR5G4MZ.js";import"./chunk-KXXLMLMJ.js";import"./chunk-54TZA65H.js";import"./chunk-335CCAOL.js";S();async function T(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=e.namespace||"default",n=`${t}:${e.key}`;if(m()){let r=g(e.key,e.value,t,{tags:e.metadata?.tags}),o=await y.evaluateWrite(r);if(!o.allowed){if(R()&&b.recordViolation({type:"contradiction",severity:"medium",gate:"memoryWriteGate",description:`Memory write blocked for key ${e.key}: ${o.reason}`,context:{key:e.key,namespace:t,reason:o.reason,conflictingPatterns:o.conflictingPatterns}}),$())return{success:!1,error:`Memory write blocked by governance: ${o.reason}`};console.warn(`[MemoryHandler] Write allowed with warning: ${o.reason}`)}}await s.memory.set(n,e.value,{ttl:e.ttl});try{let r=`${e.key} ${JSON.stringify(e.value)}`,o=await w(r);await s.memory.storeVector(n,o,{key:e.key,namespace:t,storedAt:Date.now()})}catch(r){console.warn(`[MemoryHandler] Vector indexing failed for ${e.key}: ${i(r)}`)}return m()&&y.registerPattern(g(e.key,e.value,t)),{success:!0,data:{stored:!0,key:e.key,namespace:t,timestamp:new Date().toISOString(),persisted:!0}}}catch(t){return{success:!1,error:`Failed to store memory: ${i(t)}`}}}async function z(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let n=`${e.namespace||"default"}:${e.key}`,r=await s.memory.get(n);if(r===void 0)return{success:!0,data:{found:!1,key:e.key}};let o={found:!0,key:e.key,value:r,timestamp:new Date().toISOString()};return e.includeMetadata&&(o.metadata={}),{success:!0,data:o}}catch(t){return{success:!1,error:`Failed to retrieve memory: ${i(t)}`}}}function v(e){return e.includes(" ")&&!e.includes("*")&&!e.includes("?")}async function E(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=e.namespace||"default",n=e.limit||100,r=e.offset||0;if((e.semantic===!0||e.semantic!==!1&&e.pattern&&v(e.pattern))&&e.pattern)try{let l=await w(e.pattern),u=await s.memory.vectorSearch(l,n+r),M=t!=="default"?u.filter(d=>d.key.startsWith(`${t}:`)):u;return{success:!0,data:{entries:M.slice(r,r+n).map(d=>{let k=d.key.split(":");return{key:k.length>1?k.slice(1).join(":"):d.key,namespace:k.length>1?k[0]:t,score:d.score}}),total:M.length,hasMore:r+n<M.length,searchType:"semantic"}}}catch(l){console.error(`[MemoryHandler] Semantic search failed, falling back to pattern: ${i(l)}`)}let f=e.pattern?`${t}:${e.pattern}`:`${t}:*`,h=await s.memory.search(f,n+r);return{success:!0,data:{entries:h.slice(r,r+n).map(l=>{let u=l.split(":");return{key:u.slice(1).join(":"),namespace:u[0]}}),total:h.length,hasMore:r+n<h.length,searchType:"pattern"}}}catch(t){return{success:!1,error:`Failed to query memory: ${i(t)}`}}}async function K(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=e.namespace||"default",n=`${t}:${e.key}`;return{success:!0,data:{deleted:await s.memory.delete(n),key:e.key,namespace:t}}}catch(t){return{success:!1,error:`Failed to delete memory: ${i(t)}`}}}async function W(){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:e}=a();try{let s=await e.memory.search("*",1e4),t=0,n=1;try{let r=e.memory;r.getVectorStats&&(t=(await r.getVectorStats())?.vectorCount??0);let o=new Set(s.map(f=>f.split(":")[0]).filter(Boolean));n=Math.max(1,o.size)}catch{}return{success:!0,data:{entries:s.length,vectors:t,namespaces:n,size:{current:s.length,limit:Number.MAX_SAFE_INTEGER,unit:"entries"}}}}catch(s){return{success:!1,error:`Failed to get memory usage: ${i(s)}`}}}async function _(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=`shared:${e.knowledgeDomain}:${Date.now()}`,n={source:e.sourceAgentId,targets:e.targetAgentIds,domain:e.knowledgeDomain,content:e.knowledgeContent,timestamp:new Date().toISOString()};if(m()){let r=g(t,n,e.knowledgeDomain,{agentId:e.sourceAgentId}),o=await y.evaluateWrite(r);if(!o.allowed&&(R()&&b.recordViolation({type:"contradiction",severity:"medium",agentId:e.sourceAgentId,gate:"memoryWriteGate",description:`Shared knowledge blocked for domain ${e.knowledgeDomain}: ${o.reason}`,context:{sourceAgent:e.sourceAgentId,targetAgents:e.targetAgentIds,domain:e.knowledgeDomain,reason:o.reason}}),$()))return{success:!1,error:`Knowledge sharing blocked by governance: ${o.reason}`}}return await s.memory.set(t,n,{namespace:"agent-knowledge"}),m()&&y.registerPattern(g(t,n,e.knowledgeDomain)),{success:!0,data:{shared:!0,sourceAgent:e.sourceAgentId,targetAgents:e.targetAgentIds,domain:e.knowledgeDomain}}}catch(t){return{success:!1,error:`Failed to share memory: ${i(t)}`}}}export{K as handleMemoryDelete,E as handleMemoryQuery,z as handleMemoryRetrieve,_ as handleMemoryShare,T as handleMemoryStore,W as handleMemoryUsage};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{c as a,d as c}from"./chunk-YGZOCUJM.js";import"./chunk-Y5YE6LVE.js";import"./chunk-WGKNSWGX.js";import"./chunk-I2HIQGZ2.js";import"./chunk-KUU5KPBS.js";import"./chunk-XBG6EFDT.js";import"./chunk-ZWGFOQOS.js";import"./chunk-STVZ2TBG.js";import"./chunk-C2HPZ65V.js";import"./chunk-I3V5VPNQ.js";import"./chunk-LKYO7SZ7.js";import"./chunk-O374BYD4.js";import"./chunk-JJS3OOFV.js";import"./chunk-7H46NSQI.js";import"./chunk-F6ADG6BA.js";import"./chunk-TFK7FDC4.js";import"./chunk-LPTSNKCM.js";import"./chunk-PX2LQIS3.js";import"./chunk-5Z3K47TT.js";import"./chunk-22OWZHSK.js";import"./chunk-QL5O27ES.js";import"./chunk-RI5IUJ2E.js";import"./chunk-C5QJV576.js";import"./chunk-MQTFPGGG.js";import"./chunk-Y5WIREMP.js";import"./chunk-TI4B6LPH.js";import"./chunk-C4BDVGMS.js";import"./chunk-P5GOHOPL.js";import"./chunk-GOWDJPOX.js";import"./chunk-6V7446OP.js";import"./chunk-MFHKKNVZ.js";import"./chunk-F2OCIVD2.js";import"./chunk-TEHFGVQG.js";import"./chunk-QRQV2KJ3.js";import"./chunk-YBVFSBYN.js";import"./chunk-DKJZW6KO.js";import"./chunk-DZZKBPOK.js";import"./chunk-WUDYOEEV.js";import"./chunk-AIHD3V62.js";import"./chunk-FOONOTJJ.js";import"./chunk-7CSQKBZM.js";import{a as m,b as R,d as $,e as y,f as g,i as b}from"./chunk-OUCFT3RT.js";import"./chunk-CL6NRSRJ.js";import"./chunk-R5FOT2GW.js";import"./chunk-YIZNQK5R.js";import"./chunk-P6O43I72.js";import"./chunk-TSXTP4MO.js";import"./chunk-XIJ6LU5G.js";import"./chunk-HGPK3IIX.js";import"./chunk-QEBXLE7N.js";import"./chunk-VQIBPHLI.js";import"./chunk-JG6GFIR4.js";import"./chunk-7BYZSHCI.js";import"./chunk-KFNPCKTB.js";import"./chunk-IURQ4SKQ.js";import"./chunk-E5XSCY5J.js";import"./chunk-TIKBMCDQ.js";import"./chunk-5BOJ7G3B.js";import"./chunk-N5EQ3Q63.js";import"./chunk-PRUG76TG.js";import"./chunk-K33CP3M4.js";import"./chunk-N3LKRXKM.js";import"./chunk-W2CIYDNQ.js";import"./chunk-5RDXUTEB.js";import"./chunk-CV3KHYEY.js";import"./chunk-NEI3CUGT.js";import"./chunk-2PM3SD63.js";import"./chunk-NU5DOYGG.js";import"./chunk-7WTKRSJW.js";import{b as w}from"./chunk-2DSXKIGI.js";import"./chunk-Z5CFWIET.js";import"./chunk-NMJFMH4E.js";import"./chunk-C3W4M7UY.js";import"./chunk-S37G7A6J.js";import"./chunk-7J3CK3UY.js";import"./chunk-5QQVR2PJ.js";import"./chunk-VMBRYYYH.js";import"./chunk-LLC3GJXO.js";import"./chunk-G3XXEPHS.js";import{a as i,c as S}from"./chunk-YSNVBAUR.js";import"./chunk-L4TU4IIE.js";import"./chunk-WY4RNWWV.js";import"./chunk-44P37G45.js";import"./chunk-XS7YNHNG.js";import"./chunk-2SPDBBGB.js";import"./chunk-F57L5LEP.js";import"./chunk-QWWYIHND.js";import"./chunk-RRCFW2M3.js";import"./chunk-6RU5DG36.js";import"./chunk-NWUOACDR.js";import"./chunk-K6S2C76B.js";import"./chunk-IFVGKXD2.js";S();async function T(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=e.namespace||"default",n=`${t}:${e.key}`;if(m()){let r=g(e.key,e.value,t,{tags:e.metadata?.tags}),o=await y.evaluateWrite(r);if(!o.allowed){if(R()&&b.recordViolation({type:"contradiction",severity:"medium",gate:"memoryWriteGate",description:`Memory write blocked for key ${e.key}: ${o.reason}`,context:{key:e.key,namespace:t,reason:o.reason,conflictingPatterns:o.conflictingPatterns}}),$())return{success:!1,error:`Memory write blocked by governance: ${o.reason}`};console.warn(`[MemoryHandler] Write allowed with warning: ${o.reason}`)}}await s.memory.set(n,e.value,{ttl:e.ttl});try{let r=`${e.key} ${JSON.stringify(e.value)}`,o=await w(r);await s.memory.storeVector(n,o,{key:e.key,namespace:t,storedAt:Date.now()})}catch(r){console.warn(`[MemoryHandler] Vector indexing failed for ${e.key}: ${i(r)}`)}return m()&&y.registerPattern(g(e.key,e.value,t)),{success:!0,data:{stored:!0,key:e.key,namespace:t,timestamp:new Date().toISOString(),persisted:!0}}}catch(t){return{success:!1,error:`Failed to store memory: ${i(t)}`}}}async function z(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let n=`${e.namespace||"default"}:${e.key}`,r=await s.memory.get(n);if(r===void 0)return{success:!0,data:{found:!1,key:e.key}};let o={found:!0,key:e.key,value:r,timestamp:new Date().toISOString()};return e.includeMetadata&&(o.metadata={}),{success:!0,data:o}}catch(t){return{success:!1,error:`Failed to retrieve memory: ${i(t)}`}}}function v(e){return e.includes(" ")&&!e.includes("*")&&!e.includes("?")}async function E(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=e.namespace||"default",n=e.limit||100,r=e.offset||0;if((e.semantic===!0||e.semantic!==!1&&e.pattern&&v(e.pattern))&&e.pattern)try{let l=await w(e.pattern),u=await s.memory.vectorSearch(l,n+r),M=t!=="default"?u.filter(d=>d.key.startsWith(`${t}:`)):u;return{success:!0,data:{entries:M.slice(r,r+n).map(d=>{let k=d.key.split(":");return{key:k.length>1?k.slice(1).join(":"):d.key,namespace:k.length>1?k[0]:t,score:d.score}}),total:M.length,hasMore:r+n<M.length,searchType:"semantic"}}}catch(l){console.error(`[MemoryHandler] Semantic search failed, falling back to pattern: ${i(l)}`)}let f=e.pattern?`${t}:${e.pattern}`:`${t}:*`,h=await s.memory.search(f,n+r);return{success:!0,data:{entries:h.slice(r,r+n).map(l=>{let u=l.split(":");return{key:u.slice(1).join(":"),namespace:u[0]}}),total:h.length,hasMore:r+n<h.length,searchType:"pattern"}}}catch(t){return{success:!1,error:`Failed to query memory: ${i(t)}`}}}async function K(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=e.namespace||"default",n=`${t}:${e.key}`;return{success:!0,data:{deleted:await s.memory.delete(n),key:e.key,namespace:t}}}catch(t){return{success:!1,error:`Failed to delete memory: ${i(t)}`}}}async function W(){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:e}=a();try{let s=await e.memory.search("*",1e4),t=0,n=1;try{let r=e.memory;r.getVectorStats&&(t=(await r.getVectorStats())?.vectorCount??0);let o=new Set(s.map(f=>f.split(":")[0]).filter(Boolean));n=Math.max(1,o.size)}catch{}return{success:!0,data:{entries:s.length,vectors:t,namespaces:n,size:{current:s.length,limit:Number.MAX_SAFE_INTEGER,unit:"entries"}}}}catch(s){return{success:!1,error:`Failed to get memory usage: ${i(s)}`}}}async function _(e){if(!c())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{kernel:s}=a();try{let t=`shared:${e.knowledgeDomain}:${Date.now()}`,n={source:e.sourceAgentId,targets:e.targetAgentIds,domain:e.knowledgeDomain,content:e.knowledgeContent,timestamp:new Date().toISOString()};if(m()){let r=g(t,n,e.knowledgeDomain,{agentId:e.sourceAgentId}),o=await y.evaluateWrite(r);if(!o.allowed&&(R()&&b.recordViolation({type:"contradiction",severity:"medium",agentId:e.sourceAgentId,gate:"memoryWriteGate",description:`Shared knowledge blocked for domain ${e.knowledgeDomain}: ${o.reason}`,context:{sourceAgent:e.sourceAgentId,targetAgents:e.targetAgentIds,domain:e.knowledgeDomain,reason:o.reason}}),$()))return{success:!1,error:`Knowledge sharing blocked by governance: ${o.reason}`}}return await s.memory.set(t,n,{namespace:"agent-knowledge"}),m()&&y.registerPattern(g(t,n,e.knowledgeDomain)),{success:!0,data:{shared:!0,sourceAgent:e.sourceAgentId,targetAgents:e.targetAgentIds,domain:e.knowledgeDomain}}}catch(t){return{success:!1,error:`Failed to share memory: ${i(t)}`}}}export{K as handleMemoryDelete,E as handleMemoryQuery,z as handleMemoryRetrieve,_ as handleMemoryShare,T as handleMemoryStore,W as handleMemoryUsage};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{a as k}from"./chunk-QFUINEBN.js";import{a as g}from"./chunk-335CCAOL.js";import{createHash as M}from"crypto";var w=[{category:"aws_key",regex:/\b(AKIA[0-9A-Z]{16})\b/g,replacement:"<REDACTED:aws_key>",modes:["strict","balanced"]},{category:"env_value",regex:/^([A-Z][A-Z0-9_]{2,})=(.+)$/gm,replacement:"$1=<REDACTED:env_value>",modes:["strict","balanced"]},{category:"api_key_header",regex:/(Authorization:\s*Bearer\s+)\S+/gi,replacement:"$1<REDACTED:api_key>",modes:["strict","balanced"]},{category:"api_key_header",regex:/(x-api-key:\s*)\S+/gi,replacement:"$1<REDACTED:api_key>",modes:["strict","balanced"]},{category:"private_key",regex:/-----BEGIN\s[\w\s]*PRIVATE KEY-----[\s\S]*?-----END\s[\w\s]*PRIVATE KEY-----/g,replacement:"<REDACTED:private_key>",modes:["strict","balanced"]},{category:"jwt",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g,replacement:"<REDACTED:jwt>",modes:["strict","balanced"]},{category:"github_token",regex:/\b(ghp_|gho_|ghs_|ghr_|github_pat_)[A-Za-z0-9_]{16,}\b/g,replacement:"<REDACTED:github_token>",modes:["strict","balanced"]},{category:"gitlab_token",regex:/\b(glpat-)[A-Za-z0-9_-]{20,}\b/g,replacement:"<REDACTED:gitlab_token>",modes:["strict","balanced"]},{category:"slack_token",regex:/\b(xoxb-|xoxp-|xoxs-|xoxa-)[A-Za-z0-9-]{10,}\b/g,replacement:"<REDACTED:slack_token>",modes:["strict","balanced"]},{category:"stripe_key",regex:/\b(sk_live_|pk_live_|sk_test_|pk_test_|rk_live_|rk_test_)[A-Za-z0-9]{10,}\b/g,replacement:"<REDACTED:stripe_key>",modes:["strict","balanced"]},{category:"google_api_key",regex:/\bAIzaSy[A-Za-z0-9_-]{33}\b/g,replacement:"<REDACTED:google_api_key>",modes:["strict","balanced"]},{category:"aws_session_token",regex:/\bASIA[0-9A-Z]{16}\b/g,replacement:"<REDACTED:aws_session_token>",modes:["strict","balanced"]},{category:"connection_string",regex:/\b(mongodb(\+srv)?|postgres(ql)?|mysql|redis|amqp):\/\/[^\s"']+/gi,replacement:"<REDACTED:connection_string>",modes:["strict","balanced"]},{category:"generic_secret",regex:/\b(password|secret|token|apikey|api_key|access_key|secret_key)\s*[:=]\s*['"]?(?!ghp_|gho_|ghs_|ghr_|github_pat_|glpat-|xoxb-|xoxp-|xoxs-|xoxa-|sk_live_|pk_live_|sk_test_|pk_test_|rk_live_|rk_test_|AIzaSy|AKIA|ASIA|<REDACTED:)[^\s'"]{8,}['"]?/gi,replacement:"<REDACTED:generic_secret>",modes:["strict","balanced"]},{category:"email",regex:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"<REDACTED:pii_email>",modes:["strict"]},{category:"phone",regex:/\b(\+?1?[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b/g,replacement:"<REDACTED:pii_phone>",modes:["strict"]},{category:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"<REDACTED:pii_ssn>",modes:["strict"]}],R=new Set(["ollama"]),E=new Set(["claude","ollama"]);function u(o){return R.has(o)}function I(o){return E.has(o)}function P(o){return/^qe-security|^qe-pentest/.test(o)}function b(o,t="strict"){if(t==="off")return{text:o,redactions:[],replacementCount:0};let e=o,r=new Set,a=0;for(let s of w){if(!s.modes.includes(t))continue;let c=new RegExp(s.regex.source,s.regex.flags),n=e.match(c);n&&n.length>0&&(r.add(s.category),a+=n.length,e=e.replace(c,s.replacement))}return{text:e,redactions:Array.from(r).sort(),replacementCount:a}}function f(o,t,e){if(P(o)&&!I(t))throw new p(`Security agent "${o}" may only use providers: ${[...E].join(", ")}. Got: "${t}". OpenRouter is excluded (third-party proxy risk).`,6);if(e==="off"&&!u(t))throw new p(`Redaction mode "off" is only allowed for self-hosted providers (${[...R].join(", ")}). Got: "${t}".`,6)}var p=class extends Error{constructor(e,r){super(e);this.exitCode=r;this.name="AdvisorRedactionError"}};var O="openrouter",z="anthropic/claude-opus-4",Z=100,$=`You are the advisor in an executor/advisor pattern. The executor has forwarded its full conversation transcript to you and is waiting for brief strategic guidance.
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a as k}from"./chunk-NDLYVPON.js";import{a as g}from"./chunk-IFVGKXD2.js";import{createHash as M}from"crypto";var w=[{category:"aws_key",regex:/\b(AKIA[0-9A-Z]{16})\b/g,replacement:"<REDACTED:aws_key>",modes:["strict","balanced"]},{category:"env_value",regex:/^([A-Z][A-Z0-9_]{2,})=(.+)$/gm,replacement:"$1=<REDACTED:env_value>",modes:["strict","balanced"]},{category:"api_key_header",regex:/(Authorization:\s*Bearer\s+)\S+/gi,replacement:"$1<REDACTED:api_key>",modes:["strict","balanced"]},{category:"api_key_header",regex:/(x-api-key:\s*)\S+/gi,replacement:"$1<REDACTED:api_key>",modes:["strict","balanced"]},{category:"private_key",regex:/-----BEGIN\s[\w\s]*PRIVATE KEY-----[\s\S]*?-----END\s[\w\s]*PRIVATE KEY-----/g,replacement:"<REDACTED:private_key>",modes:["strict","balanced"]},{category:"jwt",regex:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g,replacement:"<REDACTED:jwt>",modes:["strict","balanced"]},{category:"github_token",regex:/\b(ghp_|gho_|ghs_|ghr_|github_pat_)[A-Za-z0-9_]{16,}\b/g,replacement:"<REDACTED:github_token>",modes:["strict","balanced"]},{category:"gitlab_token",regex:/\b(glpat-)[A-Za-z0-9_-]{20,}\b/g,replacement:"<REDACTED:gitlab_token>",modes:["strict","balanced"]},{category:"slack_token",regex:/\b(xoxb-|xoxp-|xoxs-|xoxa-)[A-Za-z0-9-]{10,}\b/g,replacement:"<REDACTED:slack_token>",modes:["strict","balanced"]},{category:"stripe_key",regex:/\b(sk_live_|pk_live_|sk_test_|pk_test_|rk_live_|rk_test_)[A-Za-z0-9]{10,}\b/g,replacement:"<REDACTED:stripe_key>",modes:["strict","balanced"]},{category:"google_api_key",regex:/\bAIzaSy[A-Za-z0-9_-]{33}\b/g,replacement:"<REDACTED:google_api_key>",modes:["strict","balanced"]},{category:"aws_session_token",regex:/\bASIA[0-9A-Z]{16}\b/g,replacement:"<REDACTED:aws_session_token>",modes:["strict","balanced"]},{category:"connection_string",regex:/\b(mongodb(\+srv)?|postgres(ql)?|mysql|redis|amqp):\/\/[^\s"']+/gi,replacement:"<REDACTED:connection_string>",modes:["strict","balanced"]},{category:"generic_secret",regex:/\b(password|secret|token|apikey|api_key|access_key|secret_key)\s*[:=]\s*['"]?(?!ghp_|gho_|ghs_|ghr_|github_pat_|glpat-|xoxb-|xoxp-|xoxs-|xoxa-|sk_live_|pk_live_|sk_test_|pk_test_|rk_live_|rk_test_|AIzaSy|AKIA|ASIA|<REDACTED:)[^\s'"]{8,}['"]?/gi,replacement:"<REDACTED:generic_secret>",modes:["strict","balanced"]},{category:"email",regex:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"<REDACTED:pii_email>",modes:["strict"]},{category:"phone",regex:/\b(\+?1?[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b/g,replacement:"<REDACTED:pii_phone>",modes:["strict"]},{category:"ssn",regex:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"<REDACTED:pii_ssn>",modes:["strict"]}],R=new Set(["ollama"]),E=new Set(["claude","ollama"]);function u(o){return R.has(o)}function I(o){return E.has(o)}function P(o){return/^qe-security|^qe-pentest/.test(o)}function b(o,t="strict"){if(t==="off")return{text:o,redactions:[],replacementCount:0};let e=o,r=new Set,a=0;for(let s of w){if(!s.modes.includes(t))continue;let c=new RegExp(s.regex.source,s.regex.flags),n=e.match(c);n&&n.length>0&&(r.add(s.category),a+=n.length,e=e.replace(c,s.replacement))}return{text:e,redactions:Array.from(r).sort(),replacementCount:a}}function f(o,t,e){if(P(o)&&!I(t))throw new p(`Security agent "${o}" may only use providers: ${[...E].join(", ")}. Got: "${t}". OpenRouter is excluded (third-party proxy risk).`,6);if(e==="off"&&!u(t))throw new p(`Redaction mode "off" is only allowed for self-hosted providers (${[...R].join(", ")}). Got: "${t}".`,6)}var p=class extends Error{constructor(e,r){super(e);this.exitCode=r;this.name="AdvisorRedactionError"}};var O="openrouter",z="anthropic/claude-opus-4",Z=100,$=`You are the advisor in an executor/advisor pattern. The executor has forwarded its full conversation transcript to you and is waiting for brief strategic guidance.
3
3
 
4
4
  You see the task, every tool call the executor has made, every result it has seen.
5
5
 
@@ -1,3 +1,3 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{a as v}from"./chunk-WW5DZ6BU.js";import{a as c,c as S}from"./chunk-IGRKFVFD.js";import"./chunk-335CCAOL.js";S();import{existsSync as n,mkdirSync as g,readdirSync as h,writeFileSync as I,copyFileSync as f}from"fs";import{join as o}from"path";var m=class{projectRoot;options;sourceDir;constructor(e){this.projectRoot=e.projectRoot,this.options={installAgents:!0,installSkills:!0,installTools:!0,overwrite:!1,...e},this.sourceDir=this.findSourceDir()}findSourceDir(){let e=o(this.projectRoot,".opencode"),s=v(import.meta.url),r=[];s&&r.push(o(s,".opencode")),r.push(o(this.projectRoot,"node_modules/agentic-qe/.opencode"));for(let t of r)if(t!==e&&this.isValidSourceDir(t))return t;return r[0]??o(this.projectRoot,"node_modules/agentic-qe/.opencode")}isValidSourceDir(e){return n(e)?n(o(e,"agents"))||n(o(e,"skills")):!1}async install(){let e=o(this.projectRoot,".opencode"),s={success:!0,agentsInstalled:[],skillsInstalled:[],toolsInstalled:[],permissionsInstalled:!1,errors:[],targetDir:e};try{if(!n(this.sourceDir))return s.errors.push(`Source .opencode directory not found: ${this.sourceDir}`),s.success=!1,s;if(this.options.installAgents){let t=this.installAgents(e);s.agentsInstalled=t.installed,s.errors.push(...t.errors)}if(this.options.installSkills){let t=this.installSkills(e);s.skillsInstalled=t.installed,s.errors.push(...t.errors)}if(this.options.installTools){let t=this.installTools(e);s.toolsInstalled=t.installed,s.errors.push(...t.errors)}let r=this.installPermissions(e);s.permissionsInstalled=r.installed,s.errors.push(...r.errors),this.generateOpenCodeConfig()}catch(r){s.success=!1,s.errors.push(`Installation failed: ${c(r)}`)}return s}installAgents(e){let s=[],r=[],t=o(this.sourceDir,"agents"),l=o(e,"agents");if(!n(t))return r.push(`Source agents directory not found: ${t}`),{installed:s,errors:r};n(l)||g(l,{recursive:!0});let u=h(t).filter(i=>i.endsWith(".yaml"));for(let i of u){let p=o(t,i),a=o(l,i);if(!(n(a)&&!this.options.overwrite))try{f(p,a),s.push(i.replace(".yaml",""))}catch(d){r.push(`Failed to install agent ${i}: ${c(d)}`)}}return{installed:s,errors:r}}installSkills(e){let s=[],r=[],t=o(this.sourceDir,"skills"),l=o(e,"skills");if(!n(t))return r.push(`Source skills directory not found: ${t}`),{installed:s,errors:r};n(l)||g(l,{recursive:!0});let u=h(t).filter(i=>i.endsWith(".yaml"));for(let i of u){let p=o(t,i),a=o(l,i);if(!(n(a)&&!this.options.overwrite))try{f(p,a),s.push(i.replace(".yaml",""))}catch(d){r.push(`Failed to install skill ${i}: ${c(d)}`)}}return{installed:s,errors:r}}installTools(e){let s=[],r=[],t=o(this.sourceDir,"tools"),l=o(e,"tools");if(!n(t))return r.push(`Source tools directory not found: ${t}`),{installed:s,errors:r};n(l)||g(l,{recursive:!0});let u=h(t).filter(i=>i.endsWith(".ts"));for(let i of u){let p=o(t,i),a=o(l,i);if(!(n(a)&&!this.options.overwrite))try{f(p,a),s.push(i.replace(".ts",""))}catch(d){r.push(`Failed to install tool ${i}: ${c(d)}`)}}return{installed:s,errors:r}}installPermissions(e){let s=[],r=o(this.sourceDir,"permissions.yaml"),t=o(e,"permissions.yaml");if(!n(r))return{installed:!1,errors:[]};if(n(t)&&!this.options.overwrite)return{installed:!1,errors:[]};try{return n(e)||g(e,{recursive:!0}),f(r,t),{installed:!0,errors:[]}}catch(l){return s.push(`Failed to install permissions.yaml: ${c(l)}`),{installed:!1,errors:s}}}generateOpenCodeConfig(){let e=o(this.projectRoot,"opencode.json");if(n(e))return;I(e,JSON.stringify({mcp:{"agentic-qe":{type:"local",command:["npx","agentic-qe","mcp"],environment:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"}}}},null,2)+`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a as v}from"./chunk-2NQ37ZD2.js";import{a as c,c as S}from"./chunk-YSNVBAUR.js";import"./chunk-IFVGKXD2.js";S();import{existsSync as n,mkdirSync as g,readdirSync as h,writeFileSync as I,copyFileSync as f}from"fs";import{join as o}from"path";var m=class{projectRoot;options;sourceDir;constructor(e){this.projectRoot=e.projectRoot,this.options={installAgents:!0,installSkills:!0,installTools:!0,overwrite:!1,...e},this.sourceDir=this.findSourceDir()}findSourceDir(){let e=o(this.projectRoot,".opencode"),s=v(import.meta.url),r=[];s&&r.push(o(s,".opencode")),r.push(o(this.projectRoot,"node_modules/agentic-qe/.opencode"));for(let t of r)if(t!==e&&this.isValidSourceDir(t))return t;return r[0]??o(this.projectRoot,"node_modules/agentic-qe/.opencode")}isValidSourceDir(e){return n(e)?n(o(e,"agents"))||n(o(e,"skills")):!1}async install(){let e=o(this.projectRoot,".opencode"),s={success:!0,agentsInstalled:[],skillsInstalled:[],toolsInstalled:[],permissionsInstalled:!1,errors:[],targetDir:e};try{if(!n(this.sourceDir))return s.errors.push(`Source .opencode directory not found: ${this.sourceDir}`),s.success=!1,s;if(this.options.installAgents){let t=this.installAgents(e);s.agentsInstalled=t.installed,s.errors.push(...t.errors)}if(this.options.installSkills){let t=this.installSkills(e);s.skillsInstalled=t.installed,s.errors.push(...t.errors)}if(this.options.installTools){let t=this.installTools(e);s.toolsInstalled=t.installed,s.errors.push(...t.errors)}let r=this.installPermissions(e);s.permissionsInstalled=r.installed,s.errors.push(...r.errors),this.generateOpenCodeConfig()}catch(r){s.success=!1,s.errors.push(`Installation failed: ${c(r)}`)}return s}installAgents(e){let s=[],r=[],t=o(this.sourceDir,"agents"),l=o(e,"agents");if(!n(t))return r.push(`Source agents directory not found: ${t}`),{installed:s,errors:r};n(l)||g(l,{recursive:!0});let u=h(t).filter(i=>i.endsWith(".yaml"));for(let i of u){let p=o(t,i),a=o(l,i);if(!(n(a)&&!this.options.overwrite))try{f(p,a),s.push(i.replace(".yaml",""))}catch(d){r.push(`Failed to install agent ${i}: ${c(d)}`)}}return{installed:s,errors:r}}installSkills(e){let s=[],r=[],t=o(this.sourceDir,"skills"),l=o(e,"skills");if(!n(t))return r.push(`Source skills directory not found: ${t}`),{installed:s,errors:r};n(l)||g(l,{recursive:!0});let u=h(t).filter(i=>i.endsWith(".yaml"));for(let i of u){let p=o(t,i),a=o(l,i);if(!(n(a)&&!this.options.overwrite))try{f(p,a),s.push(i.replace(".yaml",""))}catch(d){r.push(`Failed to install skill ${i}: ${c(d)}`)}}return{installed:s,errors:r}}installTools(e){let s=[],r=[],t=o(this.sourceDir,"tools"),l=o(e,"tools");if(!n(t))return r.push(`Source tools directory not found: ${t}`),{installed:s,errors:r};n(l)||g(l,{recursive:!0});let u=h(t).filter(i=>i.endsWith(".ts"));for(let i of u){let p=o(t,i),a=o(l,i);if(!(n(a)&&!this.options.overwrite))try{f(p,a),s.push(i.replace(".ts",""))}catch(d){r.push(`Failed to install tool ${i}: ${c(d)}`)}}return{installed:s,errors:r}}installPermissions(e){let s=[],r=o(this.sourceDir,"permissions.yaml"),t=o(e,"permissions.yaml");if(!n(r))return{installed:!1,errors:[]};if(n(t)&&!this.options.overwrite)return{installed:!1,errors:[]};try{return n(e)||g(e,{recursive:!0}),f(r,t),{installed:!0,errors:[]}}catch(l){return s.push(`Failed to install permissions.yaml: ${c(l)}`),{installed:!1,errors:s}}}generateOpenCodeConfig(){let e=o(this.projectRoot,"opencode.json");if(n(e))return;I(e,JSON.stringify({mcp:{"agentic-qe":{type:"local",command:["npx","agentic-qe","mcp"],environment:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"}}}},null,2)+`
3
3
  `)}};function C(y){return new m(y)}export{m as OpenCodeInstaller,C as createOpenCodeInstaller};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{a as be}from"./chunk-27B575K6.js";import{c as _e}from"./chunk-52ZHPZVX.js";import{a as ne,b as de,c as ke,d as we,e as Ce,f as Ie,g as Pe,h as Se,i as Re,j as Ae,k as xe}from"./chunk-FYI52MFF.js";import"./chunk-X364AIY6.js";import{a as Ee}from"./chunk-WW5DZ6BU.js";import"./chunk-TO4NGP3E.js";import"./chunk-JN3CC2TX.js";import"./chunk-URXG7FMO.js";import"./chunk-TTXYZUTQ.js";import"./chunk-7FWZHYYE.js";import"./chunk-WLX57ULC.js";import{b as x,d as te}from"./chunk-DG2OYKUQ.js";import{a as S,b as ve,c as ee}from"./chunk-IGRKFVFD.js";import"./chunk-MOLMS6MA.js";import{a as _,b as ce}from"./chunk-RMQQ5UHM.js";import"./chunk-RE2IBX7Z.js";import"./chunk-SMTAZQJ3.js";import"./chunk-AOA454FC.js";import"./chunk-UBT7VCKQ.js";import"./chunk-B4AFVIOA.js";import"./chunk-4ZR5G4MZ.js";import"./chunk-KXXLMLMJ.js";import"./chunk-54TZA65H.js";import{a as le}from"./chunk-335CCAOL.js";ee();ee();var y=class{requiresPhases;requiresEnhancements;async shouldRun(e){return!0}async execute(e){let t=Date.now();try{return{success:!0,data:await this.run(e),durationMs:Date.now()-t,message:`${this.description} completed`}}catch(s){return{success:!1,error:ve(s),durationMs:Date.now()-t,message:`${this.description} failed: ${S(s)}`}}}checkDependencies(e){if(!this.requiresPhases?.length)return!0;for(let t of this.requiresPhases)if(!e.results.get(t)?.success)return e.services.warn(`Phase ${this.name} requires ${t} which has not completed`),!1;return!0}checkEnhancements(e){if(!this.requiresEnhancements?.length)return!0;for(let t of this.requiresEnhancements)if(!(t==="claudeFlow"?e.enhancements.claudeFlow:t==="ruvector"?e.enhancements.ruvector:!1))return e.services.warn(`Phase ${this.name} requires ${t} which is not available`),!1;return!0}};te();ce();import{existsSync as q}from"fs";import{join as T}from"path";var N=class extends y{name="detection";description="Detect existing installations";order=10;critical=!0;async run(e){let{projectRoot:t}=e,s=await this.detectV2Installation(t),n=q(T(t,".agentic-qe","config.yaml")),o=s.version?.startsWith("3."),r=s.detected,i=n||o||!1,l=!r&&!i;return e.v2Detection=s,{v2Detected:r,v3Detected:i,freshInstall:l,v2Detection:s}}async detectV2Installation(e){let t=T(e,".agentic-qe","memory.db"),s=T(e,".agentic-qe","config"),n=T(e,".claude","agents"),o=T(e,".agentic-qe","config","learning.json"),r=q(t),i=q(s),l=q(n),d=q(o),u=q(T(e,".agentic-qe","config.yaml")),g,p=!1;return r&&(g=this.readVersionFromDb(t),g?p=g.startsWith("3."):g="2.x.x"),{detected:!p&&r&&(!g?.startsWith("3.")||d&&!u),memoryDbPath:r?t:void 0,configPath:i?s:void 0,agentsPath:l?n:void 0,hasMemoryDb:r,hasConfig:i,hasAgents:l,version:g}}readVersionFromDb(e){try{let t=_(e,{readonly:!0,fileMustExist:!0});try{if(!t.prepare(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a as be}from"./chunk-UMRNJLCT.js";import{c as _e}from"./chunk-C5QJV576.js";import{a as ne,b as de,c as ke,d as we,e as Ce,f as Ie,g as Pe,h as Se,i as Re,j as Ae,k as xe}from"./chunk-L7LOSW5T.js";import"./chunk-MQTFPGGG.js";import{a as Ee}from"./chunk-2NQ37ZD2.js";import"./chunk-AIHD3V62.js";import"./chunk-N5EQ3Q63.js";import"./chunk-NMJFMH4E.js";import"./chunk-C3W4M7UY.js";import"./chunk-7J3CK3UY.js";import"./chunk-5QQVR2PJ.js";import{b as x,d as te}from"./chunk-LLC3GJXO.js";import{a as S,b as ve,c as ee}from"./chunk-YSNVBAUR.js";import"./chunk-WY4RNWWV.js";import{a as _,b as ce}from"./chunk-44P37G45.js";import"./chunk-XS7YNHNG.js";import"./chunk-2SPDBBGB.js";import"./chunk-F57L5LEP.js";import"./chunk-QWWYIHND.js";import"./chunk-RRCFW2M3.js";import"./chunk-6RU5DG36.js";import"./chunk-NWUOACDR.js";import"./chunk-K6S2C76B.js";import{a as le}from"./chunk-IFVGKXD2.js";ee();ee();var y=class{requiresPhases;requiresEnhancements;async shouldRun(e){return!0}async execute(e){let t=Date.now();try{return{success:!0,data:await this.run(e),durationMs:Date.now()-t,message:`${this.description} completed`}}catch(s){return{success:!1,error:ve(s),durationMs:Date.now()-t,message:`${this.description} failed: ${S(s)}`}}}checkDependencies(e){if(!this.requiresPhases?.length)return!0;for(let t of this.requiresPhases)if(!e.results.get(t)?.success)return e.services.warn(`Phase ${this.name} requires ${t} which has not completed`),!1;return!0}checkEnhancements(e){if(!this.requiresEnhancements?.length)return!0;for(let t of this.requiresEnhancements)if(!(t==="claudeFlow"?e.enhancements.claudeFlow:t==="ruvector"?e.enhancements.ruvector:!1))return e.services.warn(`Phase ${this.name} requires ${t} which is not available`),!1;return!0}};te();ce();import{existsSync as q}from"fs";import{join as T}from"path";var N=class extends y{name="detection";description="Detect existing installations";order=10;critical=!0;async run(e){let{projectRoot:t}=e,s=await this.detectV2Installation(t),n=q(T(t,".agentic-qe","config.yaml")),o=s.version?.startsWith("3."),r=s.detected,i=n||o||!1,l=!r&&!i;return e.v2Detection=s,{v2Detected:r,v3Detected:i,freshInstall:l,v2Detection:s}}async detectV2Installation(e){let t=T(e,".agentic-qe","memory.db"),s=T(e,".agentic-qe","config"),n=T(e,".claude","agents"),o=T(e,".agentic-qe","config","learning.json"),r=q(t),i=q(s),l=q(n),d=q(o),u=q(T(e,".agentic-qe","config.yaml")),g,p=!1;return r&&(g=this.readVersionFromDb(t),g?p=g.startsWith("3."):g="2.x.x"),{detected:!p&&r&&(!g?.startsWith("3.")||d&&!u),memoryDbPath:r?t:void 0,configPath:i?s:void 0,agentsPath:l?n:void 0,hasMemoryDb:r,hasConfig:i,hasAgents:l,version:g}}readVersionFromDb(e){try{let t=_(e,{readonly:!0,fileMustExist:!0});try{if(!t.prepare(`
3
3
  SELECT name FROM sqlite_master
4
4
  WHERE type='table' AND name='kv_store'
5
5
  `).get()){t.close();return}let n=t.prepare(`
@@ -8,7 +8,7 @@ import{a as be}from"./chunk-27B575K6.js";import{c as _e}from"./chunk-52ZHPZVX.js
8
8
  `).get();return t.close(),n?x(n.value):void 0}catch{t.close();return}}catch{return}}};var Q=class extends y{name="analysis";description="Analyze project structure";order=20;critical=!0;requiresPhases=["detection"];async run(e){let s=await ke(e.projectRoot).analyze();return e.analysis=s,e.services.log(` Project: ${s.projectName}`),e.services.log(` Languages: ${s.languages.map(n=>n.name).join(", ")}`),e.services.log(` Frameworks: ${s.frameworks.map(n=>n.name).join(", ")}`),s}};var L=class extends y{name="configuration";description="Generate configuration";order=30;critical=!0;requiresPhases=["analysis"];async run(e){if(!e.analysis)throw new Error("Analysis phase must complete before configuration");let s=we({minimal:e.options.minimal}).recommend(e.analysis);return s=this.applyOptions(s,e),e.config=s,e.services.log(` Version: ${s.version}`),e.services.log(` Learning: ${s.learning.enabled?"enabled":"disabled"}`),e.services.log(` Workers: ${s.workers.enabled.length}`),s}applyOptions(e,t){let{options:s}=t;return s.minimal&&(e.skills.install=!1,e.learning.pretrainedPatterns=!1,e.workers.enabled=[],e.workers.daemonAutoStart=!1),s.skipPatterns&&(e.learning.pretrainedPatterns=!1),s.wizardAnswers&&(e=this.applyWizardAnswers(e,s.wizardAnswers)),e}applyWizardAnswers(e,t){switch(t["project-type"]&&t["project-type"]!=="auto"&&(e.project.type=t["project-type"]),t["learning-mode"]){case"full":e.learning.enabled=!0,e.learning.embeddingModel="transformer";break;case"basic":e.learning.enabled=!0,e.learning.embeddingModel="hash";break;case"disabled":e.learning.enabled=!1;break}return t["load-patterns"]===!1&&(e.learning.pretrainedPatterns=!1),t.hooks===!1&&(e.hooks.claudeCode=!1),t.workers===!1&&(e.workers.daemonAutoStart=!1),t.skills===!1&&(e.skills.install=!1),e}};import{existsSync as V,mkdirSync as ue}from"fs";import{join as B}from"path";var W=class extends y{name="database";description="Initialize persistence database";order=40;critical=!0;requiresPhases=["configuration"];async run(e){let{projectRoot:t}=e,s=B(t,"vectors.db");V(s)&&e.services.log(` \u26A0 Stale vectors.db detected at ${s}
9
9
  This file is left over from @ruvector/router (pre-v3.9.6).
10
10
  It is no longer read or written by AQE. Safe to delete:
11
- rm "${s}"`);let n=B(t,".agentic-qe");V(n)||ue(n,{recursive:!0});let o=B(n,"workers");V(o)||ue(o,{recursive:!0});let r=B(n,"data");V(r)||ue(r,{recursive:!0});let i=B(n,"memory.db"),l=!V(i);try{let{initializeUnifiedMemory:d,resetUnifiedMemory:u}=await import("./unified-memory-EXO6WK33.js"),g=await d({dbPath:i,walMode:!0,busyTimeout:5e3}),h=g.getStats().tables.map(E=>E.name);await g.kvSet("_init_marker",{initialized:new Date().toISOString(),projectRoot:t,version:ne()},"_system");let w=g.getDatabase().prepare("SELECT version FROM schema_version WHERE id = 1").get()?.version??0;return u(),e.services.log(` Database: ${i}`),e.services.log(` Schema version: v${w}`),e.services.log(` Tables: ${h.length} (v3 full schema)`),{dbPath:i,created:l,tablesCreated:h,schemaVersion:w}}catch(d){throw new Error(`SQLite persistence initialization FAILED: ${d}
11
+ rm "${s}"`);let n=B(t,".agentic-qe");V(n)||ue(n,{recursive:!0});let o=B(n,"workers");V(o)||ue(o,{recursive:!0});let r=B(n,"data");V(r)||ue(r,{recursive:!0});let i=B(n,"memory.db"),l=!V(i);try{let{initializeUnifiedMemory:d,resetUnifiedMemory:u}=await import("./unified-memory-H55OLMCH.js"),g=await d({dbPath:i,walMode:!0,busyTimeout:5e3}),h=g.getStats().tables.map(A=>A.name);await g.kvSet("_init_marker",{initialized:new Date().toISOString(),projectRoot:t,version:ne()},"_system");let w=g.getDatabase().prepare("SELECT version FROM schema_version WHERE id = 1").get()?.version??0;return u(),e.services.log(` Database: ${i}`),e.services.log(` Schema version: v${w}`),e.services.log(` Tables: ${h.length} (v3 full schema)`),{dbPath:i,created:l,tablesCreated:h,schemaVersion:w}}catch(d){throw new Error(`SQLite persistence initialization FAILED: ${d}
12
12
  Database path: ${i}
13
13
  Ensure the directory is writable and has sufficient disk space.`)}}};import{existsSync as se,mkdirSync as pe,writeFileSync as $e}from"fs";import{join as $}from"path";var H=class extends y{name="learning";description="Initialize learning system";order=50;critical=!1;requiresPhases=["database","configuration"];async shouldRun(e){return e.config?.learning?.enabled??!0}async run(e){let t=e.config,{projectRoot:s,options:n}=e;if(!t.learning.enabled)return{enabled:!1,dataDir:"",hnswDir:"",patternsLoaded:0};let o=$(s,".agentic-qe","data");se(o)||pe(o,{recursive:!0});let r=$(o,"hnsw");se(r)||pe(r,{recursive:!0});let i=$(o,"learning-config.json"),l={embeddingModel:t.learning.embeddingModel,hnswConfig:t.learning.hnswConfig,qualityThreshold:t.learning.qualityThreshold,promotionThreshold:t.learning.promotionThreshold,databasePath:$(o,"memory.db"),hnswIndexPath:$(r,"index.bin"),initialized:new Date().toISOString()};$e(i,JSON.stringify(l,null,2),"utf-8");let d=0;return t.learning.pretrainedPatterns&&!n.skipPatterns&&(d=await this.loadPretrainedPatterns(o,e)),e.services.log(` Data dir: ${o}`),e.services.log(` HNSW dir: ${r}`),e.services.log(` Patterns loaded: ${d}`),{enabled:!0,dataDir:o,hnswDir:r,patternsLoaded:d}}async loadPretrainedPatterns(e,t){try{let s=$(e,"patterns");se(s)||pe(s,{recursive:!0});let n=$(s,"index.json");return se(n)||$e(n,JSON.stringify({version:ne(),domains:[],loadedAt:new Date().toISOString()},null,2),"utf-8"),0}catch(s){return t.services.warn(`Could not load pre-trained patterns: ${s}`),0}}};te();ce();import{existsSync as Ge,statSync as Ue}from"fs";import{join as re}from"path";var De=3e4,je=18e4,qe=["**/node_modules/**","**/dist/**","**/build/**","**/out/**","**/coverage/**","**/.agentic-qe/**","**/.git/**","**/.next/**","**/.nuxt/**","**/.output/**","**/__pycache__/**","**/.pytest_cache/**","**/target/**","**/vendor/**","**/.venv/**","**/venv/**","**/.tox/**","**/*.min.js","**/*.min.css","**/*.bundle.js","**/*.map","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/Pipfile.lock","**/poetry.lock","**/.env","**/.env.*"],G=class extends y{name="code-intelligence";description="Code intelligence pre-scan";order=60;critical=!1;requiresPhases=["database"];async shouldRun(e){let t=process.env.AQE_SKIP_CODE_INDEX;return t==="1"||t==="true"?(e.services.log(" Code intelligence skipped (AQE_SKIP_CODE_INDEX=1)"),e.services.log(" Run `aqe code index` later to build the KG on demand."),!1):e.options.skipCodeIndex?(e.services.log(" Code intelligence skipped (--skip-code-index)"),e.services.log(" Run `aqe code index` later to build the KG on demand."),!1):!0}async run(e){let{projectRoot:t}=e,s=re(t,".agentic-qe","memory.db");if(!Ge(s))return e.services.log(" Building knowledge graph..."),await this.runCodeIntelligenceScan(t,e,!1);let n=_(s);try{if(!this.checkCodeIntelligenceIndex(n))return n.close(),e.services.log(" Building knowledge graph..."),await this.runCodeIntelligenceScan(t,e,!1);let r=this.getLastIndexedAt(n);if(!r){let d=this.getKGEntryCount(n);return n.close(),e.services.log(` Using existing index (${d} entries)`),{status:"existing",entries:d}}let i=this.getKGEntryCount(n);n.close();let l=await this.findChangedFiles(t,r);return l.length===0?(e.services.log(` Index up to date (${i} entries)`),{status:"existing",entries:i}):(e.services.log(` Delta scan: ${l.length} files changed since last index...`),await this.runCodeIntelligenceScan(t,e,!0,l))}catch(o){try{n.close()}catch{}throw o}}checkCodeIntelligenceIndex(e){try{return e.prepare(`
14
14
  SELECT COUNT(*) as count FROM kv_store
@@ -16,11 +16,11 @@ Ensure the directory is writable and has sufficient disk space.`)}}};import{exis
16
16
  `).get().count>0}catch{return!1}}getKGEntryCount(e){try{return e.prepare(`
17
17
  SELECT COUNT(*) as count FROM kv_store
18
18
  WHERE namespace LIKE 'code-intelligence:kg%'
19
- `).get().count}catch{return 0}}async runCodeIntelligenceScan(e,t,s,n){let{KnowledgeGraphService:o}=await import("./knowledge-graph-GU57FQAQ.js"),r=re(e,".agentic-qe","memory.db"),i={type:"sqlite",sqlite:{path:r,walMode:!0}},{backend:l}=await be(i,!0),d=new o(l,{namespace:"code-intelligence:kg",enableVectorEmbeddings:!0});try{let u;n?u=n:u=(await(await import("fast-glob")).default(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py"],{cwd:e,ignore:qe})).map(f=>re(e,f)),t.services.log(` Scanning ${u.length} source files...`);let g=await this.runBoundedScan(d,u,s,t);if(g.status==="timeout")return t.services.warn(` \u26A0 Code intelligence pre-scan exceeded ${je/1e3}s phase cap. Indexed ${g.entries} entries before timeout. Last file: ${g.timeoutFile??"(unknown)"}. Init is continuing \u2014 re-run 'aqe code index' later, or report this file to https://github.com/proffesor-for-testing/agentic-qe/issues.`),g;if(g.status==="indexed"){let p=s?"Delta indexed":"Indexed";t.services.log(` ${p} ${g.entries} entries to ${r}`),await this.buildHypergraph(r,u,t)}return g}finally{try{d.destroy()}catch{}try{await l.dispose()}catch{}}}async runBoundedScan(e,t,s,n){let o=0,r=0,i=0,l="",d=Date.now(),u=!1;s||await e.clear();let g=n.projectRoot,p=f=>f.startsWith(g)?f.slice(g.length+1):f;for(let f of t){if(Date.now()-d>je){u=!0;break}l=f,n.services.log(` [${i+1}/${t.length}] ${p(f)}`);try{let v=await this.withTimeout(e.index({paths:[f],incremental:!0,includeTests:!0}),De,f);v.success&&(o+=v.value.nodesCreated,r+=v.value.edgesCreated)}catch(v){let w=v instanceof Error?v.message:String(v);w.startsWith("AQE_PER_FILE_TIMEOUT")?n.services.warn(` \u26A0 Skipped ${p(f)} \u2014 indexing exceeded ${De/1e3}s`):n.services.warn(` \u26A0 Failed to index ${p(f)}: ${w}`)}i++}let h=o+r;return u?{status:"timeout",entries:h,timeoutFile:l}:{status:"indexed",entries:h}}withTimeout(e,t,s){return new Promise((n,o)=>{let r=setTimeout(()=>{o(new Error(`AQE_PER_FILE_TIMEOUT: ${s}`))},t);typeof r.unref=="function"&&r.unref(),e.then(i=>{clearTimeout(r),n(i)},i=>{clearTimeout(r),o(i)})})}async buildHypergraph(e,t,s){try{let{extractCodeIndex:n}=await import("./code-index-extractor-62F622V2.js"),{createHypergraphEngine:o}=await import("./hypergraph-engine-OQ2ZEG53.js"),r=_(e),i=await o({db:r,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:!1}),l=await n(t),d=await i.buildFromIndexResult(l);r.close(),d.nodesCreated+d.edgesCreated>0&&s.services.log(` Hypergraph: ${d.nodesCreated} nodes, ${d.edgesCreated} edges`)}catch(n){s.services.warn?.(` Hypergraph build skipped: ${n}`)}}getLastIndexedAt(e){try{let t=e.prepare(`
19
+ `).get().count}catch{return 0}}async runCodeIntelligenceScan(e,t,s,n){let{KnowledgeGraphService:o}=await import("./knowledge-graph-7O4ACKK7.js"),r=re(e,".agentic-qe","memory.db"),i={type:"sqlite",sqlite:{path:r,walMode:!0}},{backend:l}=await be(i,!0),d=new o(l,{namespace:"code-intelligence:kg",enableVectorEmbeddings:!0});try{let u;n?u=n:u=(await(await import("fast-glob")).default(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py"],{cwd:e,ignore:qe})).map(f=>re(e,f)),t.services.log(` Scanning ${u.length} source files...`);let g=await this.runBoundedScan(d,u,s,t);if(g.status==="timeout")return t.services.warn(` \u26A0 Code intelligence pre-scan exceeded ${je/1e3}s phase cap. Indexed ${g.entries} entries before timeout. Last file: ${g.timeoutFile??"(unknown)"}. Init is continuing \u2014 re-run 'aqe code index' later, or report this file to https://github.com/proffesor-for-testing/agentic-qe/issues.`),g;if(g.status==="indexed"){let p=s?"Delta indexed":"Indexed";t.services.log(` ${p} ${g.entries} entries to ${r}`),await this.buildHypergraph(r,u,t)}return g}finally{try{d.destroy()}catch{}try{await l.dispose()}catch{}}}async runBoundedScan(e,t,s,n){let o=0,r=0,i=0,l="",d=Date.now(),u=!1;s||await e.clear();let g=n.projectRoot,p=f=>f.startsWith(g)?f.slice(g.length+1):f;for(let f of t){if(Date.now()-d>je){u=!0;break}l=f,n.services.log(` [${i+1}/${t.length}] ${p(f)}`);try{let v=await this.withTimeout(e.index({paths:[f],incremental:!0,includeTests:!0}),De,f);v.success&&(o+=v.value.nodesCreated,r+=v.value.edgesCreated)}catch(v){let w=v instanceof Error?v.message:String(v);w.startsWith("AQE_PER_FILE_TIMEOUT")?n.services.warn(` \u26A0 Skipped ${p(f)} \u2014 indexing exceeded ${De/1e3}s`):n.services.warn(` \u26A0 Failed to index ${p(f)}: ${w}`)}i++}let h=o+r;return u?{status:"timeout",entries:h,timeoutFile:l}:{status:"indexed",entries:h}}withTimeout(e,t,s){return new Promise((n,o)=>{let r=setTimeout(()=>{o(new Error(`AQE_PER_FILE_TIMEOUT: ${s}`))},t);typeof r.unref=="function"&&r.unref(),e.then(i=>{clearTimeout(r),n(i)},i=>{clearTimeout(r),o(i)})})}async buildHypergraph(e,t,s){try{let{extractCodeIndex:n}=await import("./code-index-extractor-YKAU2SIV.js"),{createHypergraphEngine:o}=await import("./hypergraph-engine-7P7HDFAU.js"),r=_(e),i=await o({db:r,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:!1}),l=await n(t),d=await i.buildFromIndexResult(l);r.close(),d.nodesCreated+d.edgesCreated>0&&s.services.log(` Hypergraph: ${d.nodesCreated} nodes, ${d.edgesCreated} edges`)}catch(n){s.services.warn?.(` Hypergraph build skipped: ${n}`)}}getLastIndexedAt(e){try{let t=e.prepare(`
20
20
  SELECT value FROM kv_store
21
21
  WHERE namespace = 'code-intelligence:kg'
22
22
  AND key = 'metadata:index'
23
- `).get();if(!t)return null;let s=x(t.value);if(!s.indexedAt)return null;let n=new Date(s.indexedAt);return isNaN(n.getTime())?null:n}catch{return null}}async findChangedFiles(e,t){let n=await(await import("fast-glob")).default(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py"],{cwd:e,ignore:qe}),o=t.getTime(),r=[];for(let i of n){let l=re(e,i);try{Ue(l).mtimeMs>o&&r.push(l)}catch{}}return r}};te();import{existsSync as P,mkdirSync as oe,readFileSync as Te,writeFileSync as M}from"fs";import{join as b}from"path";var U=class extends y{name="hooks";description="Configure Claude Code hooks";order=70;critical=!1;requiresPhases=["configuration"];async shouldRun(e){return e.config?.hooks?.claudeCode??!0}async run(e){let t=e.config,{projectRoot:s}=e;if(!t.hooks.claudeCode)return{configured:!1,settingsPath:"",hookTypes:[],existingAqeDetected:!1};let n=b(s,".claude");P(n)||oe(n,{recursive:!0});let o=b(n,"hooks");P(o)||oe(o,{recursive:!0});let r=b(n,"settings.json"),i={};if(P(r))try{let v=Te(r,"utf-8");i=x(v)}catch{i={}}let l=this.generateHooksConfig(t,s),d=Object.keys(l),u=i.hooks||{},g=this.hasExistingAqeHooks(u);g&&e.services.log(" Detected existing AQE hooks \u2014 replacing with updated config"),i.hooks=Ie(u,l);let p=i.env||{};i.env={...p,...Pe(t)};let h=Se(t,s);for(let[v,w]of Object.entries(h))if(v==="_aqePermissions"){let E=i.permissions||{},ae=E.allow||[],I=w,m=[...new Set([...ae,...I])];i.permissions={...E,allow:m}}else i[v]=w;let f=i.enabledMcpjsonServers||[];f=f.filter(v=>v!=="aqe"),f.includes("agentic-qe")||f.push("agentic-qe"),i.enabledMcpjsonServers=f,M(r,JSON.stringify(i,null,2),"utf-8"),this.writeHooksReadme(o,d),this.installHookAssets(o,e);try{let v=Te(r,"utf-8"),E=x(v).hooks;(!E||!this.hasExistingAqeHooks(E))&&e.services.log(" WARNING: settings.json written but AQE hooks not detected \u2014 check settings-merge logic")}catch{e.services.log(" WARNING: Could not verify settings.json after write")}return e.services.log(` Settings: ${r}`),e.services.log(` Hooks dir: ${o}`),e.services.log(` Hook types: ${d.join(", ")}`),{configured:!0,settingsPath:r,hookTypes:d,existingAqeDetected:g}}writeHooksReadme(e,t){let s=b(e,"README.txt");if(P(s))return;let n=["AQE Hooks Directory","====================","","Claude Code hooks are configured in .claude/settings.json (not as files here).","This directory contains supporting infrastructure for the learning system.","","Configured hook types: "+t.join(", "),"","Files:"," settings.json \u2014 Hook definitions (in parent .claude/ directory)"," helpers/brain-checkpoint.cjs \u2014 Auto-exports brain to aqe.rvf on session end"," cross-phase-memory.yaml \u2014 QCSD feedback loop configuration","","Manual testing:"," npx agentic-qe hooks session-start --session-id test --json",' npx agentic-qe hooks route --task "generate tests" --json'," npx agentic-qe hooks post-edit --file src/example.ts --success --json",""].join(`
23
+ `).get();if(!t)return null;let s=x(t.value);if(!s.indexedAt)return null;let n=new Date(s.indexedAt);return isNaN(n.getTime())?null:n}catch{return null}}async findChangedFiles(e,t){let n=await(await import("fast-glob")).default(["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.py"],{cwd:e,ignore:qe}),o=t.getTime(),r=[];for(let i of n){let l=re(e,i);try{Ue(l).mtimeMs>o&&r.push(l)}catch{}}return r}};te();import{existsSync as P,mkdirSync as oe,readFileSync as Te,writeFileSync as M}from"fs";import{join as b}from"path";var U=class extends y{name="hooks";description="Configure Claude Code hooks";order=70;critical=!1;requiresPhases=["configuration"];async shouldRun(e){return e.config?.hooks?.claudeCode??!0}async run(e){let t=e.config,{projectRoot:s}=e;if(!t.hooks.claudeCode)return{configured:!1,settingsPath:"",hookTypes:[],existingAqeDetected:!1};let n=b(s,".claude");P(n)||oe(n,{recursive:!0});let o=b(n,"hooks");P(o)||oe(o,{recursive:!0});let r=b(n,"settings.json"),i={};if(P(r))try{let v=Te(r,"utf-8");i=x(v)}catch{i={}}let l=this.generateHooksConfig(t,s),d=Object.keys(l),u=i.hooks||{},g=this.hasExistingAqeHooks(u);g&&e.services.log(" Detected existing AQE hooks \u2014 replacing with updated config"),i.hooks=Ie(u,l);let p=i.env||{};i.env={...p,...Pe(t)};let h=Se(t,s);for(let[v,w]of Object.entries(h))if(v==="_aqePermissions"){let A=i.permissions||{},ae=A.allow||[],I=w,m=[...new Set([...ae,...I])];i.permissions={...A,allow:m}}else i[v]=w;let f=i.enabledMcpjsonServers||[];f=f.filter(v=>v!=="aqe"),f.includes("agentic-qe")||f.push("agentic-qe"),i.enabledMcpjsonServers=f,M(r,JSON.stringify(i,null,2),"utf-8"),this.writeHooksReadme(o,d),this.installHookAssets(o,e);try{let v=Te(r,"utf-8"),A=x(v).hooks;(!A||!this.hasExistingAqeHooks(A))&&e.services.log(" WARNING: settings.json written but AQE hooks not detected \u2014 check settings-merge logic")}catch{e.services.log(" WARNING: Could not verify settings.json after write")}return e.services.log(` Settings: ${r}`),e.services.log(` Hooks dir: ${o}`),e.services.log(` Hook types: ${d.join(", ")}`),{configured:!0,settingsPath:r,hookTypes:d,existingAqeDetected:g}}writeHooksReadme(e,t){let s=b(e,"README.txt");if(P(s))return;let n=["AQE Hooks Directory","====================","","Claude Code hooks are configured in .claude/settings.json (not as files here).","This directory contains supporting infrastructure for the learning system.","","Configured hook types: "+t.join(", "),"","Files:"," settings.json \u2014 Hook definitions (in parent .claude/ directory)"," helpers/brain-checkpoint.cjs \u2014 Auto-exports brain to aqe.rvf on session end"," cross-phase-memory.yaml \u2014 QCSD feedback loop configuration","","Manual testing:"," npx agentic-qe hooks session-start --session-id test --json",' npx agentic-qe hooks route --task "generate tests" --json'," npx agentic-qe hooks post-edit --file src/example.ts --success --json",""].join(`
24
24
  `);M(s,n,"utf-8")}installHookAssets(e,t){let{projectRoot:s}=t;this.installBrainCheckpoint(s,t),this.installStatusline(s,t);let n=b(e,"cross-phase-memory.yaml");if(!P(n)){let r=[b(s,"v3","assets","hooks","cross-phase-memory.yaml"),b(s,"assets","hooks","cross-phase-memory.yaml"),b(s,"node_modules","agentic-qe","v3","assets","hooks","cross-phase-memory.yaml")],i=!1;for(let l of r)if(P(l)){let{copyFileSync:d}=le("fs");d(l,n),t.services.log(" Installed cross-phase memory config"),i=!0;break}i||M(n,["# Cross-Phase Memory Hooks Configuration","# Generated by aqe init",'version: "1.0"',"enabled: true",""].join(`
25
25
  `),"utf-8")}let o=b(e,"v3-domain-workers.json");P(o)||M(o,JSON.stringify({version:"3.0",workers:[{name:"pattern-consolidator",interval:"5m",enabled:!0},{name:"routing-accuracy-monitor",interval:"10m",enabled:!0},{name:"coverage-gap-scanner",interval:"15m",enabled:!0},{name:"flaky-test-detector",interval:"30m",enabled:!0}]},null,2),"utf-8")}hasExistingAqeHooks(e){for(let t of Object.values(e))if(Array.isArray(t)){for(let s of t)if(Ce(s))return!0}return!1}installBrainCheckpoint(e,t){let s=b(e,".claude","helpers");P(s)||oe(s,{recursive:!0});let n=b(s,"brain-checkpoint.cjs"),o=[b(e,".claude","helpers","brain-checkpoint.cjs"),b(e,"node_modules","agentic-qe",".claude","helpers","brain-checkpoint.cjs")];for(let r of o)if(P(r)&&r!==n){let{copyFileSync:i}=le("fs");i(r,n),t.services.log(" Installed brain-checkpoint.cjs (copied)");return}P(n)||(M(n,this.generateBrainCheckpointScript(),"utf-8"),t.services.log(" Installed brain-checkpoint.cjs (generated)"))}installStatusline(e,t){let s=b(e,".claude","helpers");P(s)||oe(s,{recursive:!0});let n=b(s,"statusline-v3.cjs"),o=[b(e,"node_modules","agentic-qe","assets","helpers","statusline-v3.cjs"),b(e,"assets","helpers","statusline-v3.cjs")];for(let r of o)if(P(r)&&r!==n){let{copyFileSync:i}=le("fs");i(r,n),t.services.log(" Installed statusline-v3.cjs (copied)");return}P(n)||(M(n,this.generateMinimalStatuslineScript(),"utf-8"),t.services.log(" Installed statusline-v3.cjs (generated)"))}generateMinimalStatuslineScript(){return`#!/usr/bin/env node
26
26
  /**
@@ -107,10 +107,10 @@ function verifyBrain() {
107
107
  const cmd = process.argv[2] || 'verify';
108
108
  const result = cmd === 'export' ? exportBrain() : verifyBrain();
109
109
  if (process.argv.includes('--json')) process.stdout.write(JSON.stringify(result));
110
- `}generateHooksConfig(e,t){return{PreToolUse:[{matcher:"^(Write|Edit|MultiEdit)$",hooks:[{type:"command",command:'npx agentic-qe hooks guard --file "$TOOL_INPUT_file_path" --json',timeout:3e3,continueOnError:!0}]},{matcher:"^(Write|Edit|MultiEdit)$",hooks:[{type:"command",command:'npx agentic-qe hooks pre-edit --file "$TOOL_INPUT_file_path" --json',timeout:5e3,continueOnError:!0}]},{matcher:"^Bash$",hooks:[{type:"command",command:'npx agentic-qe hooks pre-command --command "$TOOL_INPUT_command" --json',timeout:3e3,continueOnError:!0}]},{matcher:"^Task$",hooks:[{type:"command",command:'npx agentic-qe hooks pre-task --description "$TOOL_INPUT_prompt" --json',timeout:5e3,continueOnError:!0}]}],PostToolUse:[{matcher:"^(Write|Edit|MultiEdit)$",hooks:[{type:"command",command:'npx agentic-qe hooks post-edit --file "$TOOL_INPUT_file_path" --success --json',timeout:5e3,continueOnError:!0}]},{matcher:"^Bash$",hooks:[{type:"command",command:'npx agentic-qe hooks post-command --command "$TOOL_INPUT_command" --success --json',timeout:5e3,continueOnError:!0}]},{matcher:"^Task$",hooks:[{type:"command",command:'npx agentic-qe hooks post-task --task-id "$TOOL_RESULT_agent_id" --success --json',timeout:5e3,continueOnError:!0}]}],UserPromptSubmit:[{hooks:[{type:"command",command:'npx agentic-qe hooks route --task "$PROMPT" --json',timeout:5e3,continueOnError:!0}]}],SessionStart:[{hooks:[{type:"command",command:'npx agentic-qe hooks session-start --session-id "$SESSION_ID" --json',timeout:1e4,continueOnError:!0}]},{hooks:[{type:"command",command:`sh -c 'exec node "\${CLAUDE_PROJECT_DIR:-.}/.claude/helpers/brain-checkpoint.cjs" verify --json'`,timeout:5e3,continueOnError:!0}]}],Stop:[{hooks:[{type:"command",command:"npx agentic-qe hooks session-end --save-state --json",timeout:5e3,continueOnError:!0}]},{hooks:[{type:"command",command:`sh -c 'exec node "\${CLAUDE_PROJECT_DIR:-.}/.claude/helpers/brain-checkpoint.cjs" export --json'`,timeout:6e4,continueOnError:!0}]}]}}};te();import{existsSync as ze,readFileSync as Ke,writeFileSync as Ye}from"fs";import{join as Je}from"path";var z=class extends y{name="mcp";description="Configure MCP server";order=80;critical=!1;requiresPhases=["configuration","database"];async run(e){let{projectRoot:t}=e;if(e.options.noMcp)return e.services.log(" MCP: skipped (--no-mcp)"),e.services.log(" CLI commands available: aqe memory, aqe test, aqe coverage, etc."),{configured:!1,mcpPath:"",serverName:""};let s={command:"aqe-mcp",args:[],env:{AQE_LEARNING_ENABLED:"true",AQE_WORKERS_ENABLED:"true",NODE_ENV:"production"}},n=Je(t,".mcp.json"),o={};if(ze(n))try{let i=Ke(n,"utf-8");o=x(i)}catch{o={}}o.mcpServers||(o.mcpServers={});let r=o.mcpServers;return r["agentic-qe"]=s,Ye(n,JSON.stringify(o,null,2),"utf-8"),e.services.log(` MCP config: ${n}`),e.services.log(" Server: agentic-qe"),e.services.log(" Learning: enabled"),e.services.log(" Workers: enabled"),{configured:!0,mcpPath:n,serverName:"agentic-qe"}}};import{existsSync as R,readFileSync as Ze}from"fs";import{join as A}from"path";ee();import{spawnSync as Xe}from"node:child_process";function ge(c,e,t,s){return c(e,t,{encoding:"utf8",timeout:s,maxBuffer:8*1024*1024})}var Oe=(c,e,t)=>Xe(c,e,t);function Me(c=Oe,e=5e3){let t=ge(c,"vibium",["--version"],e);if(t.status!==0)return null;let s=(t.stdout||"").trim(),n=(t.stderr||"").trim(),o=s||n;if(!o)return"unknown";let r=o.match(/v?(\d+\.\d+\.\d+(?:[-+][\w.]+)?)/);return r?r[1]:o.split(/\s+/)[0]||"unknown"}function me(c={}){let e=c.packageSpec||"vibium";if(c.skip)return{status:"skipped",packageSpec:e,message:"install skipped by options"};let t=c.spawner||Oe,s=Me(t);if(s)return{status:"already-installed",version:s,packageSpec:e};let n=c.npmBin||"npm",o=ge(t,n,["--version"],5e3);if(o.error||o.status!==0)return{status:"npm-unavailable",packageSpec:e,message:"npm is not available on PATH. Install Node.js + npm, then run `npm install -g vibium`."};let r=c.timeoutMs||18e4,i=ge(t,n,["install","-g",e],r);return i.status!==0?{status:"install-failed",packageSpec:e,message:i.stderr?.trim()||i.stdout?.trim()||S(i.error)||"unknown npm install failure"}:{status:"installed",version:Me(t)||"unknown",packageSpec:e}}var K=class extends y{name="assets";description="Install skills and agents";order=90;critical=!1;requiresPhases=["configuration"];async run(e){let t=e.config,{projectRoot:s,options:n}=e,o=this.detectVersionUpgrade(e),r=n.upgrade||t.skills.overwrite||n.autoMode&&o,i=0,l=0,d=0,u=0,g=0,p=0,h=0,f=0,v=0;if(n.upgrade?e.services.log(" Upgrade mode: overwriting existing files"):n.autoMode&&o&&e.services.log(" Version upgrade detected: updating skills and agents"),t.skills.install){let k=await Re({projectRoot:s,installV2Skills:t.skills.installV2,installV3Skills:t.skills.installV3,overwrite:r}).install();i=k.installed.length,k.errors.length>0&&e.services.warn(`Skills warnings: ${k.errors.join(", ")}`)}try{let k=await Ae({projectRoot:s,installQEAgents:!0,installSubagents:!0,overwrite:r}).install();l=k.installed.length,k.errors.length>0&&e.services.warn(`Agents warnings: ${k.errors.join(", ")}`)}catch(m){e.services.warn(`Agents install error: ${m instanceof Error?m.message:m}`)}_e(s);let w;if(n.minimal)w={status:"skipped",packageSpec:"vibium",message:"minimal mode"};else try{let m=me({skip:!1,timeoutMs:5e3});if(m.status==="already-installed")w=m,e.services.log(` Browser engine: vibium ${w.version} (already installed)`);else switch(e.services.log(" Browser engine: installing vibium via npm (this can take 1\u20133 minutes on first run; downloads Chrome for Testing lazily)\u2026"),w=me({skip:!1}),w.status){case"installed":e.services.log(` Browser engine: vibium ${w.version} installed`);break;case"skipped":e.services.log(" Browser engine: skipped");break;case"install-failed":e.services.warn(`Browser engine install failed (qe-browser skill will be unavailable until you run \`npm install -g vibium\`): ${w.message||"unknown"}`);break;case"npm-unavailable":e.services.warn("Browser engine: npm not on PATH \u2014 install Node.js + npm, then `npm install -g vibium` to enable qe-browser");break}}catch(m){let k=m instanceof Error?m.message:String(m);e.services.warn(`Browser engine install error: ${k}
110
+ `}generateHooksConfig(e,t){return{PreToolUse:[{matcher:"^(Write|Edit|MultiEdit)$",hooks:[{type:"command",command:'npx agentic-qe hooks guard --file "$TOOL_INPUT_file_path" --json',timeout:3e3,continueOnError:!0}]},{matcher:"^(Write|Edit|MultiEdit)$",hooks:[{type:"command",command:'npx agentic-qe hooks pre-edit --file "$TOOL_INPUT_file_path" --json',timeout:5e3,continueOnError:!0}]},{matcher:"^Bash$",hooks:[{type:"command",command:'npx agentic-qe hooks pre-command --command "$TOOL_INPUT_command" --json',timeout:3e3,continueOnError:!0}]},{matcher:"^Task$",hooks:[{type:"command",command:'npx agentic-qe hooks pre-task --description "$TOOL_INPUT_prompt" --json',timeout:5e3,continueOnError:!0}]}],PostToolUse:[{matcher:"^(Write|Edit|MultiEdit)$",hooks:[{type:"command",command:'npx agentic-qe hooks post-edit --file "$TOOL_INPUT_file_path" --success --json',timeout:5e3,continueOnError:!0}]},{matcher:"^Bash$",hooks:[{type:"command",command:'npx agentic-qe hooks post-command --command "$TOOL_INPUT_command" --success --json',timeout:5e3,continueOnError:!0}]},{matcher:"^Task$",hooks:[{type:"command",command:'npx agentic-qe hooks post-task --task-id "$TOOL_RESULT_agent_id" --success --json',timeout:5e3,continueOnError:!0}]}],UserPromptSubmit:[{hooks:[{type:"command",command:'npx agentic-qe hooks route --task "$PROMPT" --json',timeout:5e3,continueOnError:!0}]}],SessionStart:[{hooks:[{type:"command",command:'npx agentic-qe hooks session-start --session-id "$SESSION_ID" --json',timeout:1e4,continueOnError:!0}]},{hooks:[{type:"command",command:`sh -c 'exec node "\${CLAUDE_PROJECT_DIR:-.}/.claude/helpers/brain-checkpoint.cjs" verify --json'`,timeout:5e3,continueOnError:!0}]}],Stop:[{hooks:[{type:"command",command:"npx agentic-qe hooks session-end --save-state --json",timeout:5e3,continueOnError:!0}]},{hooks:[{type:"command",command:`sh -c 'exec node "\${CLAUDE_PROJECT_DIR:-.}/.claude/helpers/brain-checkpoint.cjs" export --json'`,timeout:6e4,continueOnError:!0}]}]}}};te();import{existsSync as ze,readFileSync as Ke,writeFileSync as Ye}from"fs";import{join as Je}from"path";var z=class extends y{name="mcp";description="Configure MCP server";order=80;critical=!1;requiresPhases=["configuration","database"];async run(e){let{projectRoot:t}=e;if(e.options.noMcp)return e.services.log(" MCP: skipped (--no-mcp)"),e.services.log(" CLI commands available: aqe memory, aqe test, aqe coverage, etc."),{configured:!1,mcpPath:"",serverName:""};let s={command:"aqe-mcp",args:[],env:{AQE_LEARNING_ENABLED:"true",AQE_WORKERS_ENABLED:"true",NODE_ENV:"production"}},n=Je(t,".mcp.json"),o={};if(ze(n))try{let i=Ke(n,"utf-8");o=x(i)}catch{o={}}o.mcpServers||(o.mcpServers={});let r=o.mcpServers;return r["agentic-qe"]=s,Ye(n,JSON.stringify(o,null,2),"utf-8"),e.services.log(` MCP config: ${n}`),e.services.log(" Server: agentic-qe"),e.services.log(" Learning: enabled"),e.services.log(" Workers: enabled"),{configured:!0,mcpPath:n,serverName:"agentic-qe"}}};import{existsSync as E,readFileSync as Ze,readdirSync as et}from"fs";import{join as R}from"path";ee();import{spawnSync as Xe}from"node:child_process";function ge(c,e,t,s){return c(e,t,{encoding:"utf8",timeout:s,maxBuffer:8*1024*1024})}var Oe=(c,e,t)=>Xe(c,e,t);function Me(c=Oe,e=5e3){let t=ge(c,"vibium",["--version"],e);if(t.status!==0)return null;let s=(t.stdout||"").trim(),n=(t.stderr||"").trim(),o=s||n;if(!o)return"unknown";let r=o.match(/v?(\d+\.\d+\.\d+(?:[-+][\w.]+)?)/);return r?r[1]:o.split(/\s+/)[0]||"unknown"}function me(c={}){let e=c.packageSpec||"vibium";if(c.skip)return{status:"skipped",packageSpec:e,message:"install skipped by options"};let t=c.spawner||Oe,s=Me(t);if(s)return{status:"already-installed",version:s,packageSpec:e};let n=c.npmBin||"npm",o=ge(t,n,["--version"],5e3);if(o.error||o.status!==0)return{status:"npm-unavailable",packageSpec:e,message:"npm is not available on PATH. Install Node.js + npm, then run `npm install -g vibium`."};let r=c.timeoutMs||18e4,i=ge(t,n,["install","-g",e],r);return i.status!==0?{status:"install-failed",packageSpec:e,message:i.stderr?.trim()||i.stdout?.trim()||S(i.error)||"unknown npm install failure"}:{status:"installed",version:Me(t)||"unknown",packageSpec:e}}var K=class extends y{name="assets";description="Install skills and agents";order=90;critical=!1;requiresPhases=["configuration"];async run(e){let t=e.config,{projectRoot:s,options:n}=e,o=this.detectVersionUpgrade(e),r=n.upgrade||t.skills.overwrite||n.autoMode&&o,i=0,l=0,d=0,u=0,g=0,p=0,h=0,f=0,v=0;if(n.upgrade?e.services.log(" Upgrade mode: overwriting existing files"):n.autoMode&&o&&e.services.log(" Version upgrade detected: updating skills and agents"),t.skills.install){let k=await Re({projectRoot:s,installV2Skills:t.skills.installV2,installV3Skills:t.skills.installV3,overwrite:r}).install();i=k.installed.length,k.errors.length>0&&e.services.warn(`Skills warnings: ${k.errors.join(", ")}`)}try{let k=await Ae({projectRoot:s,installQEAgents:!0,installSubagents:!0,overwrite:r}).install();l=k.installed.length,k.errors.length>0&&e.services.warn(`Agents warnings: ${k.errors.join(", ")}`)}catch(m){e.services.warn(`Agents install error: ${m instanceof Error?m.message:m}`)}_e(s);let w;if(n.minimal)w={status:"skipped",packageSpec:"vibium",message:"minimal mode"};else try{let m=me({skip:!1,timeoutMs:5e3});if(m.status==="already-installed")w=m,e.services.log(` Browser engine: vibium ${w.version} (already installed)`);else switch(e.services.log(" Browser engine: installing vibium via npm (this can take 1\u20133 minutes on first run; downloads Chrome for Testing lazily)\u2026"),w=me({skip:!1}),w.status){case"installed":e.services.log(` Browser engine: vibium ${w.version} installed`);break;case"skipped":e.services.log(" Browser engine: skipped");break;case"install-failed":e.services.warn(`Browser engine install failed (qe-browser skill will be unavailable until you run \`npm install -g vibium\`): ${w.message||"unknown"}`);break;case"npm-unavailable":e.services.warn("Browser engine: npm not on PATH \u2014 install Node.js + npm, then `npm install -g vibium` to enable qe-browser");break}}catch(m){let k=m instanceof Error?m.message:String(m);e.services.warn(`Browser engine install error: ${k}
111
111
  qe-browser fleet skill will be unavailable until you run:
112
112
  npm install -g vibium
113
- Then re-run \`aqe init\` to verify. The rest of the AQE install will continue.`)}if(n.withN8n){let k=await xe({projectRoot:s,installAgents:!0,installSkills:!0,overwrite:r,n8nApiConfig:n.n8nApiConfig}).install();d=k.agentsInstalled.length,u=k.skillsInstalled.length,k.errors.length>0&&e.services.warn(`N8n warnings: ${k.errors.join(", ")}`)}let E=n.autoMode&&R(A(s,"opencode.json"));if(n.withOpenCode||E){let{createOpenCodeInstaller:m}=await import("./opencode-installer-ASCVY3GG.js"),a=await m({projectRoot:s,installAgents:!0,installSkills:!0,installTools:!0,overwrite:r}).install();g=a.agentsInstalled.length,p=a.skillsInstalled.length,a.errors.length>0&&e.services.warn(`OpenCode warnings: ${a.errors.join(", ")}`)}e.services.log(` Skills: ${i}`),e.services.log(` Agents: ${l}`),n.withN8n&&(e.services.log(` N8n agents: ${d}`),e.services.log(` N8n skills: ${u}`)),(n.withOpenCode||E)&&(e.services.log(` OpenCode agents: ${g}`),e.services.log(` OpenCode skills: ${p}`));let ae=n.autoMode&&R(A(s,".kiro"));if(n.withKiro||ae){let{createKiroInstaller:m}=await import("./kiro-installer-GNT4BN3A.js"),a=await m({projectRoot:s,installAgents:!0,installSkills:!0,installHooks:!0,installSteering:!0,overwrite:r}).install();h=a.agentsInstalled.length,f=a.skillsInstalled.length,v=a.hooksInstalled.length,a.errors.length>0&&e.services.warn(`Kiro warnings: ${a.errors.join(", ")}`),e.services.log(` Kiro agents: ${h}`),e.services.log(` Kiro skills: ${f}`),e.services.log(` Kiro hooks: ${v}`),e.services.log(` Kiro steering: ${a.steeringInstalled.length}`),a.mcpConfigured&&e.services.log(" Kiro MCP: .kiro/settings/mcp.json")}let I=[];if(n.withCopilot||n.autoMode&&R(A(s,".vscode"))){let{createCopilotInstaller:m}=await import("./copilot-installer-25GNNKNL.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("copilot"),a.errors.length>0&&e.services.warn(`Copilot warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Copilot MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Copilot rules: ${a.rulesPath}`)}if(n.withCursor||n.autoMode&&R(A(s,".cursor"))){let{createCursorInstaller:m}=await import("./cursor-installer-DHQ644T3.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("cursor"),a.errors.length>0&&e.services.warn(`Cursor warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Cursor MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Cursor rules: ${a.rulesPath}`)}if(n.withCline){let{createClineInstaller:m}=await import("./cline-installer-6VSROHRY.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("cline"),a.errors.length>0&&e.services.warn(`Cline warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Cline MCP: ${a.configPath}`),a.modeInstalled&&e.services.log(` Cline mode: ${a.modePath}`)}if(n.withKiloCode||n.autoMode&&R(A(s,".kilocode"))){let{createKiloCodeInstaller:m}=await import("./kilocode-installer-YVY4EVMY.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("kilocode"),a.errors.length>0&&e.services.warn(`Kilo Code warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Kilo Code MCP: ${a.configPath}`),a.modeInstalled&&e.services.log(` Kilo Code mode: ${a.modePath}`)}if(n.withRooCode||n.autoMode&&R(A(s,".roo"))){let{createRooCodeInstaller:m}=await import("./roocode-installer-XU2IXRBM.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("roocode"),a.errors.length>0&&e.services.warn(`Roo Code warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Roo Code MCP: ${a.configPath}`),a.modeInstalled&&e.services.log(` Roo Code mode: ${a.modePath}`)}if(n.withCodex||n.autoMode&&R(A(s,".codex"))){let{createCodexInstaller:m}=await import("./codex-installer-LSR6DVCU.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("codex"),a.errors.length>0&&e.services.warn(`Codex warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Codex MCP: ${a.configPath}`),a.agentsMdInstalled&&e.services.log(` Codex AGENTS.md: ${a.agentsMdPath}`)}if(n.withWindsurf||n.autoMode&&R(A(s,".windsurf"))){let{createWindsurfInstaller:m}=await import("./windsurf-installer-M27DVL4H.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("windsurf"),a.errors.length>0&&e.services.warn(`Windsurf warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Windsurf MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Windsurf rules: ${a.rulesPath}`)}if(n.withContinueDev||n.autoMode&&R(A(s,".continue"))){let{createContinueDevInstaller:m}=await import("./continuedev-installer-S7ZPL3VC.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("continuedev"),a.errors.length>0&&e.services.warn(`Continue.dev warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Continue.dev MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Continue.dev rules: ${a.rulesPath}`)}return I.length>0&&e.services.log(` Platforms configured: ${I.join(", ")}`),{skillsInstalled:i,agentsInstalled:l,n8nAgents:d,n8nSkills:u,openCodeAgents:g,openCodeSkills:p,kiroAgents:h,kiroSkills:f,kiroHooks:v,platformsConfigured:I,browserEngine:w}}detectVersionUpgrade(e){let t=A(e.projectRoot,".agentic-qe","config.yaml");if(!R(t))return!1;try{let o=Ze(t,"utf-8").match(/version:\s*"?([^"\n]+)"?/)?.[1],r=e.config.version;return o!==void 0&&o!==r}catch{return!1}}};import{existsSync as et,mkdirSync as tt,writeFileSync as ie}from"fs";import{join as O}from"path";var Y=class extends y{name="workers";description="Configure background workers";order=100;critical=!1;requiresPhases=["configuration"];async shouldRun(e){let t=e.config;return t?.workers?.daemonAutoStart&&(t?.workers?.enabled?.length??0)>0}async run(e){let t=e.config,{projectRoot:s}=e;if(!t.workers.daemonAutoStart||t.workers.enabled.length===0)return{workersDir:"",workersConfigured:0,registryPath:"",daemonStarted:!1,daemonPid:null};let n=O(s,".agentic-qe","workers");et(n)||tt(n,{recursive:!0});let o={"learning-consolidation":18e5,"pattern-consolidator":18e5,"test-health":3e5,"coverage-tracker":6e5,"coverage-gap-scanner":6e5,"flaky-detector":9e5,"flaky-test-detector":9e5,"security-scan":18e5,"quality-gate":3e5,"compliance-checker":18e5,"defect-predictor":9e5,"regression-monitor":6e5,"routing-accuracy-monitor":9e5,"performance-baseline":36e5,"cloud-sync":3e5},r={};for(let h of t.workers.enabled)r[h]={name:h,enabled:!0,interval:t.workers.intervals[h]||o[h]||6e4,lastRun:null,status:"pending"};let i=O(n,"registry.json"),l={version:t.version,maxConcurrent:t.workers.maxConcurrent,workers:r,createdAt:new Date().toISOString(),daemonPid:null};ie(i,JSON.stringify(l,null,2),"utf-8");for(let h of t.workers.enabled){let f=O(n,`${h}.json`),v={name:h,enabled:!0,interval:t.workers.intervals[h]||o[h]||6e4,projectRoot:s,dataDir:O(s,".agentic-qe","data"),createdAt:new Date().toISOString()};ie(f,JSON.stringify(v,null,2),"utf-8")}let d=O(n,"start-daemon.cjs");ie(d,`#!/usr/bin/env node
113
+ Then re-run \`aqe init\` to verify. The rest of the AQE install will continue.`)}if(n.withN8n){let k=await xe({projectRoot:s,installAgents:!0,installSkills:!0,overwrite:r,n8nApiConfig:n.n8nApiConfig}).install();d=k.agentsInstalled.length,u=k.skillsInstalled.length,k.errors.length>0&&e.services.warn(`N8n warnings: ${k.errors.join(", ")}`)}let A=n.autoMode&&E(R(s,"opencode.json"));if(n.withOpenCode||A){let{createOpenCodeInstaller:m}=await import("./opencode-installer-MID5ZQNA.js"),a=await m({projectRoot:s,installAgents:!0,installSkills:!0,installTools:!0,overwrite:r}).install();g=a.agentsInstalled.length,p=a.skillsInstalled.length,a.errors.length>0&&e.services.warn(`OpenCode warnings: ${a.errors.join(", ")}`)}e.services.log(` Skills: ${i}`),e.services.log(` Agents: ${l}`),n.withN8n&&(e.services.log(` N8n agents: ${d}`),e.services.log(` N8n skills: ${u}`)),(n.withOpenCode||A)&&(e.services.log(` OpenCode agents: ${g}`),e.services.log(` OpenCode skills: ${p}`));let ae=n.autoMode&&E(R(s,".kiro"));if(n.withKiro||ae){let{createKiroInstaller:m}=await import("./kiro-installer-NXSCDS3D.js"),a=await m({projectRoot:s,installAgents:!0,installSkills:!0,installHooks:!0,installSteering:!0,overwrite:r}).install();h=a.agentsInstalled.length,f=a.skillsInstalled.length,v=a.hooksInstalled.length,a.errors.length>0&&e.services.warn(`Kiro warnings: ${a.errors.join(", ")}`),e.services.log(` Kiro agents: ${h}`),e.services.log(` Kiro skills: ${f}`),e.services.log(` Kiro hooks: ${v}`),e.services.log(` Kiro steering: ${a.steeringInstalled.length}`),a.mcpConfigured&&e.services.log(" Kiro MCP: .kiro/settings/mcp.json")}let I=[];if(n.withCopilot||n.autoMode&&E(R(s,".vscode"))){let{createCopilotInstaller:m}=await import("./copilot-installer-RRL4SCGA.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("copilot"),a.errors.length>0&&e.services.warn(`Copilot warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Copilot MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Copilot rules: ${a.rulesPath}`)}if(n.withCursor||n.autoMode&&E(R(s,".cursor"))){let{createCursorInstaller:m}=await import("./cursor-installer-OPY7SFFC.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("cursor"),a.errors.length>0&&e.services.warn(`Cursor warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Cursor MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Cursor rules: ${a.rulesPath}`)}if(n.withCline){let{createClineInstaller:m}=await import("./cline-installer-EJZWTH4O.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("cline"),a.errors.length>0&&e.services.warn(`Cline warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Cline MCP: ${a.configPath}`),a.modeInstalled&&e.services.log(` Cline mode: ${a.modePath}`)}if(n.withKiloCode||n.autoMode&&E(R(s,".kilocode"))){let{createKiloCodeInstaller:m}=await import("./kilocode-installer-F2OCU37B.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("kilocode"),a.errors.length>0&&e.services.warn(`Kilo Code warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Kilo Code MCP: ${a.configPath}`),a.modeInstalled&&e.services.log(` Kilo Code mode: ${a.modePath}`)}if(n.withRooCode||n.autoMode&&E(R(s,".roo"))){let{createRooCodeInstaller:m}=await import("./roocode-installer-L77GZ3ZK.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("roocode"),a.errors.length>0&&e.services.warn(`Roo Code warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Roo Code MCP: ${a.configPath}`),a.modeInstalled&&e.services.log(` Roo Code mode: ${a.modePath}`)}if(n.withCodex||n.autoMode&&E(R(s,".codex"))){let{createCodexInstaller:m}=await import("./codex-installer-2RO7UPOC.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("codex"),a.errors.length>0&&e.services.warn(`Codex warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Codex MCP: ${a.configPath}`),a.agentsMdInstalled&&e.services.log(` Codex AGENTS.md: ${a.agentsMdPath}`)}if(n.withWindsurf||n.autoMode&&E(R(s,".windsurf"))){let{createWindsurfInstaller:m}=await import("./windsurf-installer-YA244VF3.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("windsurf"),a.errors.length>0&&e.services.warn(`Windsurf warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Windsurf MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Windsurf rules: ${a.rulesPath}`)}if(n.withContinueDev||n.autoMode&&E(R(s,".continue"))){let{createContinueDevInstaller:m}=await import("./continuedev-installer-OPFGF74I.js"),a=await m({projectRoot:s,overwrite:r}).install();a.mcpConfigured&&I.push("continuedev"),a.errors.length>0&&e.services.warn(`Continue.dev warnings: ${a.errors.join(", ")}`),a.mcpConfigured&&e.services.log(` Continue.dev MCP: ${a.configPath}`),a.rulesInstalled&&e.services.log(` Continue.dev rules: ${a.rulesPath}`)}return I.length>0&&e.services.log(` Platforms configured: ${I.join(", ")}`),{skillsInstalled:i,agentsInstalled:l,n8nAgents:d,n8nSkills:u,openCodeAgents:g,openCodeSkills:p,kiroAgents:h,kiroSkills:f,kiroHooks:v,platformsConfigured:I,browserEngine:w}}detectVersionUpgrade(e){let t=e.config.version,s=R(e.projectRoot,".agentic-qe","config.yaml");if(E(s))try{let i=Ze(s,"utf-8").match(/version:\s*"?([^"\n]+)"?/)?.[1];if(i===t)return!1;if(i!==void 0)return!0}catch{}let n=R(e.projectRoot,".claude","agents","v3");try{return E(n)&&et(n).some(o=>o.endsWith(".md")&&o.startsWith("qe-"))}catch{return!1}}};import{existsSync as tt,mkdirSync as nt,writeFileSync as ie}from"fs";import{join as O}from"path";var Y=class extends y{name="workers";description="Configure background workers";order=100;critical=!1;requiresPhases=["configuration"];async shouldRun(e){let t=e.config;return t?.workers?.daemonAutoStart&&(t?.workers?.enabled?.length??0)>0}async run(e){let t=e.config,{projectRoot:s}=e;if(!t.workers.daemonAutoStart||t.workers.enabled.length===0)return{workersDir:"",workersConfigured:0,registryPath:"",daemonStarted:!1,daemonPid:null};let n=O(s,".agentic-qe","workers");tt(n)||nt(n,{recursive:!0});let o={"learning-consolidation":18e5,"pattern-consolidator":18e5,"test-health":3e5,"coverage-tracker":6e5,"coverage-gap-scanner":6e5,"flaky-detector":9e5,"flaky-test-detector":9e5,"security-scan":18e5,"quality-gate":3e5,"compliance-checker":18e5,"defect-predictor":9e5,"regression-monitor":6e5,"routing-accuracy-monitor":9e5,"performance-baseline":36e5,"cloud-sync":3e5},r={};for(let h of t.workers.enabled)r[h]={name:h,enabled:!0,interval:t.workers.intervals[h]||o[h]||6e4,lastRun:null,status:"pending"};let i=O(n,"registry.json"),l={version:t.version,maxConcurrent:t.workers.maxConcurrent,workers:r,createdAt:new Date().toISOString(),daemonPid:null};ie(i,JSON.stringify(l,null,2),"utf-8");for(let h of t.workers.enabled){let f=O(n,`${h}.json`),v={name:h,enabled:!0,interval:t.workers.intervals[h]||o[h]||6e4,projectRoot:s,dataDir:O(s,".agentic-qe","data"),createdAt:new Date().toISOString()};ie(f,JSON.stringify(v,null,2),"utf-8")}let d=O(n,"start-daemon.cjs");ie(d,`#!/usr/bin/env node
114
114
  // AQE v3 Worker Daemon Startup Script (cross-platform)
115
115
  // Generated by aqe init
116
116
  // Starts the MCP server with background workers enabled
@@ -189,7 +189,7 @@ try {
189
189
  console.log('Daemon not running (stale PID file)');
190
190
  try { unlinkSync(pidFile); } catch {}
191
191
  }
192
- `),e.services.log(` Workers dir: ${n}`),e.services.log(` Workers: ${t.workers.enabled.join(", ")}`),e.services.log(` Registry: ${i}`),{workersDir:n,workersConfigured:t.workers.enabled.length,registryPath:i,daemonStarted:!1,daemonPid:null}}};import{existsSync as nt,readFileSync as st,writeFileSync as fe}from"fs";import{join as Fe}from"path";var J=class extends y{name="claude-md";description="Generate CLAUDE.md";order=110;critical=!1;requiresPhases=["configuration"];async run(e){let t=e.config,{projectRoot:s}=e,n=Fe(s,"CLAUDE.md"),o=this.generateContent(t),r=!1;if(nt(n)){let i=st(n,"utf-8");if(i.includes("## Agentic QE v3"))return e.services.log(" CLAUDE.md already has AQE section"),{generated:!1,path:n,backupCreated:!1};let l=Fe(s,"CLAUDE.md.backup");fe(l,i,"utf-8"),r=!0,fe(n,i+`
192
+ `),e.services.log(` Workers dir: ${n}`),e.services.log(` Workers: ${t.workers.enabled.join(", ")}`),e.services.log(` Registry: ${i}`),{workersDir:n,workersConfigured:t.workers.enabled.length,registryPath:i,daemonStarted:!1,daemonPid:null}}};import{existsSync as st,readFileSync as rt,writeFileSync as fe}from"fs";import{join as Fe}from"path";var J=class extends y{name="claude-md";description="Generate CLAUDE.md";order=110;critical=!1;requiresPhases=["configuration"];async run(e){let t=e.config,{projectRoot:s}=e,n=Fe(s,"CLAUDE.md"),o=this.generateContent(t),r=!1;if(st(n)){let i=rt(n,"utf-8");if(i.includes("## Agentic QE v3"))return e.services.log(" CLAUDE.md already has AQE section"),{generated:!1,path:n,backupCreated:!1};let l=Fe(s,"CLAUDE.md.backup");fe(l,i,"utf-8"),r=!0,fe(n,i+`
193
193
 
194
194
  `+o,"utf-8")}else fe(n,o,"utf-8");return e.services.log(` Path: ${n}`),r&&e.services.log(" Backup created"),{generated:!0,path:n,backupCreated:r}}generateContent(e){let t=e.domains.enabled.slice(0,6).join(", "),s=Math.max(0,e.domains.enabled.length-6);return`## Agentic QE v3
195
195
 
@@ -353,7 +353,7 @@ Task({ prompt: "Security audit", subagent_type: "qe-security-scanner", run_in_ba
353
353
 
354
354
  ---
355
355
  *Generated by AQE v3 init - ${new Date().toISOString()}*
356
- `}};import{existsSync as D,readFileSync as rt}from"fs";import{join as F,dirname as ot}from"path";import{mkdirSync as Ne,writeFileSync as it}from"fs";ce();var X=class extends y{name="verification";description="Verify installation";order=120;critical=!0;requiresPhases=["database","configuration"];async run(e){let t=e.config,{projectRoot:s}=e,n=[],o=F(s,".agentic-qe","memory.db");n.push({name:"Database exists",passed:D(o)}),n.push({name:".agentic-qe directory",passed:D(F(s,".agentic-qe"))});let r=F(s,".agentic-qe","config.yaml");await this.saveConfig(t,s),n.push({name:"Config saved",passed:D(r)});let i=await this.writeVersionToDb(t.version,s);n.push({name:"Version marker",passed:i});let l=["Database exists",".agentic-qe directory","Config saved"],d=n.filter(u=>l.includes(u.name)).every(u=>u.passed);e.services.log(" Verification checks:");for(let u of n){let g=l.includes(u.name),p=u.passed?"\u2713":g?"\u2717":"\u26A0",h=!g&&!u.passed?" (optional)":"";e.services.log(` ${p} ${u.name}${h}`)}return{verified:d,versionWritten:i,configSaved:D(r),checks:n}}async writeVersionToDb(e,t){let s=F(t,".agentic-qe","memory.db");try{let n=ot(s);D(n)||Ne(n,{recursive:!0});let o=_(s);try{o.exec(`
356
+ `}};import{existsSync as D,readFileSync as ot}from"fs";import{join as F,dirname as it}from"path";import{mkdirSync as Ne,writeFileSync as at}from"fs";ce();var X=class extends y{name="verification";description="Verify installation";order=120;critical=!0;requiresPhases=["database","configuration"];async run(e){let t=e.config,{projectRoot:s}=e,n=[],o=F(s,".agentic-qe","memory.db");n.push({name:"Database exists",passed:D(o)}),n.push({name:".agentic-qe directory",passed:D(F(s,".agentic-qe"))});let r=F(s,".agentic-qe","config.yaml");await this.saveConfig(t,s),n.push({name:"Config saved",passed:D(r)});let i=await this.writeVersionToDb(t.version,s);n.push({name:"Version marker",passed:i});let l=["Database exists",".agentic-qe directory","Config saved"],d=n.filter(u=>l.includes(u.name)).every(u=>u.passed);e.services.log(" Verification checks:");for(let u of n){let g=l.includes(u.name),p=u.passed?"\u2713":g?"\u2717":"\u26A0",h=!g&&!u.passed?" (optional)":"";e.services.log(` ${p} ${u.name}${h}`)}return{verified:d,versionWritten:i,configSaved:D(r),checks:n}}async writeVersionToDb(e,t){let s=F(t,".agentic-qe","memory.db");try{let n=it(s);D(n)||Ne(n,{recursive:!0});let o=_(s);try{o.exec(`
357
357
  CREATE TABLE IF NOT EXISTS kv_store (
358
358
  key TEXT NOT NULL,
359
359
  namespace TEXT NOT NULL,
@@ -368,9 +368,9 @@ Task({ prompt: "Security audit", subagent_type: "qe-security-scanner", run_in_ba
368
368
  `).run("aqe_version",JSON.stringify(e),r),o.prepare(`
369
369
  INSERT OR REPLACE INTO kv_store (key, namespace, value, created_at)
370
370
  VALUES (?, '_system', ?, ?)
371
- `).run("init_timestamp",JSON.stringify(new Date().toISOString()),r),o.close(),!0}catch{return o.close(),!1}}catch{return!1}}async saveConfig(e,t){let s=F(t,".agentic-qe");D(s)||Ne(s,{recursive:!0});let n=F(s,"config.yaml");if(D(n)){let r=this.loadExistingConfig(n);r&&(e=this.mergeConfigs(e,r))}let o=this.configToYAML(e);it(n,o,"utf-8")}loadExistingConfig(e){try{let t=rt(e,"utf-8");return this.parseYAML(t)}catch{return null}}parseYAML(e){try{let t={},s=e.split(`
371
+ `).run("init_timestamp",JSON.stringify(new Date().toISOString()),r),o.close(),!0}catch{return o.close(),!1}}catch{return!1}}async saveConfig(e,t){let s=F(t,".agentic-qe");D(s)||Ne(s,{recursive:!0});let n=F(s,"config.yaml");if(D(n)){let r=this.loadExistingConfig(n);r&&(e=this.mergeConfigs(e,r))}let o=this.configToYAML(e);at(n,o,"utf-8")}loadExistingConfig(e){try{let t=ot(e,"utf-8");return this.parseYAML(t)}catch{return null}}parseYAML(e){try{let t={},s=e.split(`
372
372
  `),n="",o="";for(let i of s){if(i.trim().startsWith("#")||i.trim()==="")continue;let l=i.match(/^(\w+):\s*(.*)$/);if(l){n=l[1],o="";let p=l[2].trim();p&&!p.startsWith('"')?t[n]=this.parseValue(p):p?t[n]=this.parseValue(p):t[n]={};continue}let d=i.match(/^ (\w+):\s*(.*)$/);if(d&&n){o=d[1];let p=d[2].trim();t[n]||(t[n]={}),p?t[n][o]=this.parseValue(p):t[n][o]={};continue}let u=i.match(/^ ([\w-]+):\s*(.*)$/);if(u&&n&&o){let p=u[1],h=u[2].trim(),f=t[n];f[o]||(f[o]={}),typeof f[o]=="object"&&!Array.isArray(f[o])&&(f[o][p]=this.parseValue(h));continue}let g=i.match(/^ - "?([^"]*)"?$/);if(g&&n&&o){let p=t[n];Array.isArray(p[o])||(p[o]=[]),p[o].push(g[1])}}let r=[["domains","enabled"],["domains","disabled"],["workers","enabled"]];for(let[i,l]of r){let d=t[i];d&&l in d&&!Array.isArray(d[l])&&(d[l]=[])}return t}catch{return null}}parseValue(e){return e==="true"?!0:e==="false"?!1:/^\d+$/.test(e)?parseInt(e,10):/^\d+\.\d+$/.test(e)?parseFloat(e):e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}mergeConfigs(e,t){if(t.domains?.enabled&&Array.isArray(t.domains.enabled)){let s=new Set(t.domains.enabled),n=new Set(e.domains.enabled);for(let r of n)s.add(r);let o=new Set(Array.isArray(t.domains?.disabled)?t.domains.disabled:[]);e.domains.enabled=Array.from(s).filter(r=>!o.has(r))}return t.domains?.disabled&&Array.isArray(t.domains.disabled)&&(e.domains.disabled=t.domains.disabled),t.learning?.enabled!==void 0&&(e.learning.enabled=t.learning.enabled),t.hooks?.claudeCode!==void 0&&(e.hooks.claudeCode=t.hooks.claudeCode),t.hooks?.preCommit!==void 0&&(e.hooks.preCommit=t.hooks.preCommit),t.hooks?.ciIntegration!==void 0&&(e.hooks.ciIntegration=t.hooks.ciIntegration),t.workers?.enabled&&Array.isArray(t.workers.enabled)&&(e.workers.enabled=t.workers.enabled),t.workers?.daemonAutoStart!==void 0&&(e.workers.daemonAutoStart=t.workers.daemonAutoStart),t.agents?.maxConcurrent!==void 0&&(e.agents.maxConcurrent=t.agents.maxConcurrent),t.agents?.defaultTimeout!==void 0&&(e.agents.defaultTimeout=t.agents.defaultTimeout),e}configToYAML(e){return["# Agentic QE v3 Configuration","# Generated by aqe init",`# ${new Date().toISOString()}`,"#",'# NOTE: Your customizations are PRESERVED when you run "aqe init" again.','# You do NOT need to re-run "aqe init" after editing this file - changes',"# take effect immediately. The following settings are merged on reinstall:","# - domains.enabled (custom domains like visual-accessibility)","# - domains.disabled","# - learning.enabled","# - hooks.* preferences","# - workers.enabled","# - agents.maxConcurrent and defaultTimeout","",`version: "${e.version}"`,"","project:",` name: "${e.project.name}"`,` root: "${e.project.root}"`,` type: "${e.project.type}"`,"","learning:",` enabled: ${e.learning.enabled}`,` embeddingModel: "${e.learning.embeddingModel}"`," hnswConfig:",` M: ${e.learning.hnswConfig.M}`,` efConstruction: ${e.learning.hnswConfig.efConstruction}`,` efSearch: ${e.learning.hnswConfig.efSearch}`,` qualityThreshold: ${e.learning.qualityThreshold}`,` promotionThreshold: ${e.learning.promotionThreshold}`,` pretrainedPatterns: ${e.learning.pretrainedPatterns}`,"","routing:",` mode: "${e.routing.mode}"`,` confidenceThreshold: ${e.routing.confidenceThreshold}`,` feedbackEnabled: ${e.routing.feedbackEnabled}`,"","# ADR-092: Advisor Strategy \u2014 agents consult a stronger model for strategic guidance","# Set provider/model to override auto-detection from environment API keys","advisor:",' # provider: "openrouter" # openrouter | claude | ollama (auto-detected if not set)',' # model: "anthropic/claude-opus-4" # provider-specific model ID',' # maxUses: "3" # per-task advisor call cap',' redact: "strict" # strict | balanced | off',"","workers:"," enabled:",...e.workers.enabled.map(s=>` - "${s}"`)," intervals:",...Object.entries(e.workers.intervals).map(([s,n])=>` ${s}: ${n}`),` maxConcurrent: ${e.workers.maxConcurrent}`,` daemonAutoStart: ${e.workers.daemonAutoStart}`,"","hooks:",` claudeCode: ${e.hooks.claudeCode}`,` preCommit: ${e.hooks.preCommit}`,` ciIntegration: ${e.hooks.ciIntegration}`,"","skills:",` install: ${e.skills.install}`,` installV2: ${e.skills.installV2}`,` installV3: ${e.skills.installV3}`,` overwrite: ${e.skills.overwrite}`,"","domains:"," enabled:",...e.domains.enabled.map(s=>` - "${s}"`)," disabled:",...e.domains.disabled.map(s=>` - "${s}"`),"","agents:",` maxConcurrent: ${e.agents.maxConcurrent}`,` defaultTimeout: ${e.agents.defaultTimeout}`,""].join(`
373
- `)}};ee();import{existsSync as j,mkdirSync as Qe,readdirSync as Le,copyFileSync as Ve}from"fs";import{join as C,dirname as at}from"path";import{fileURLToPath as lt}from"url";var ct=lt(import.meta.url),Be=at(ct);function dt(){let c=[C(Be,"../../assets/governance"),C(Be,"../assets/governance")],e=Ee(import.meta.url);e&&(c.push(C(e,"assets/governance")),c.push(C(e,"dist/assets/governance"))),c.push(C(process.cwd(),"node_modules/agentic-qe/assets/governance")),c.push(C(process.cwd(),"assets/governance"));for(let t of c)if(j(t))return t;throw new Error(`Governance assets not found. Package may be corrupted. Searched: ${c.join(", ")}`)}var he=class{projectRoot;overwrite;skipShards;assetsPath;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.skipShards=e.skipShards??!1,this.assetsPath=dt()}async install(){let e=[],t=[],s=[],n=C(this.projectRoot,".claude","guidance"),o=C(n,"shards");try{Qe(n,{recursive:!0}),this.skipShards||Qe(o,{recursive:!0})}catch(u){return s.push(`Failed to create governance directory: ${S(u)}`),{installed:e,skipped:t,errors:s,governanceDir:n,constitutionInstalled:!1,shardsInstalled:0}}let r=!1,i=C(this.assetsPath,"constitution.md"),l=C(n,"constitution.md");if(j(i))try{!j(l)||this.overwrite?(Ve(i,l),e.push("constitution.md"),r=!0):t.push("constitution.md")}catch(u){s.push(`Failed to install constitution.md: ${S(u)}`)}else s.push("constitution.md not found in assets");let d=0;if(!this.skipShards){let u=C(this.assetsPath,"shards");if(j(u))try{let g=Le(u).filter(p=>p.endsWith(".shard.md"));for(let p of g){let h=C(u,p),f=C(o,p);try{!j(f)||this.overwrite?(Ve(h,f),e.push(`shards/${p}`),d++):t.push(`shards/${p}`)}catch(v){s.push(`Failed to install ${p}: ${S(v)}`)}}}catch(g){s.push(`Failed to read shards directory: ${S(g)}`)}else s.push("Shards directory not found in assets")}return{installed:e,skipped:t,errors:s,governanceDir:n,constitutionInstalled:r,shardsInstalled:d}}isInstalled(){let e=C(this.projectRoot,".claude","guidance","constitution.md");return j(e)}getInstalledShards(){let e=C(this.projectRoot,".claude","guidance","shards");if(!j(e))return[];try{return Le(e).filter(t=>t.endsWith(".shard.md"))}catch{return[]}}};function We(c){return new he(c)}var Z=class extends y{name="governance";description="Install governance configuration";order=95;critical=!1;requiresPhases=["configuration"];async shouldRun(e){return e.options.noGovernance?(e.services.log(" Governance skipped (--no-governance flag)"),!1):e.options.minimal?(e.services.log(" Governance skipped (minimal mode)"),!1):!0}async run(e){let{projectRoot:t,options:s}=e,n=s.upgrade,o=We({projectRoot:t,overwrite:n});if(o.isInstalled()&&!n){let i=o.getInstalledShards();return e.services.log(` Governance already installed (${i.length} shards)`),e.services.log(" Use --upgrade to overwrite existing files"),{filesInstalled:0,filesSkipped:1+i.length,constitutionInstalled:!1,shardsInstalled:0,governanceDir:`${t}/.claude/guidance`,skippedByFlag:!1}}let r=await o.install();if(r.errors.length>0)for(let i of r.errors)e.services.warn(` ${i}`);return e.services.log(` Constitution: ${r.constitutionInstalled?"installed":"skipped"}`),e.services.log(` Shards: ${r.shardsInstalled} installed, ${r.skipped.filter(i=>i.startsWith("shards/")).length} skipped`),r.installed.length>0&&(e.services.log(" Governance enabled (non-strict mode by default)"),e.services.log(" Set GOVERNANCE_STRICT_MODE=true for strict enforcement")),{filesInstalled:r.installed.length,filesSkipped:r.skipped.length,constitutionInstalled:r.constitutionInstalled,shardsInstalled:r.shardsInstalled,governanceDir:r.governanceDir,skippedByFlag:!1}}};var ut=new N,pt=new Q,gt=new L,mt=new W,ft=new H,ht=new G,yt=new U,vt=new z,kt=new K,wt=new Y,bt=new J,Ct=new X,It=new Z;function He(){return[ut,pt,gt,mt,ft,ht,yt,vt,kt,It,wt,bt,Ct]}var ye=class{phases;context;constructor(e){this.context=this.createContext(e),this.phases=e.customPhases??He()}createContext(e){let t=e.withAllPlatforms;return{projectRoot:e.projectRoot,options:{autoMode:e.autoMode,upgrade:e.upgrade,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,minimal:e.minimal,withN8n:e.withN8n,withOpenCode:e.withOpenCode,withKiro:e.withKiro,withCopilot:e.withCopilot||t,withCursor:e.withCursor||t,withCline:e.withCline||t,withKiloCode:e.withKiloCode||t,withRooCode:e.withRooCode||t,withCodex:e.withCodex||t,withWindsurf:e.withWindsurf||t,withContinueDev:e.withContinueDev||t,withAllPlatforms:e.withAllPlatforms,n8nApiConfig:e.n8nApiConfig,wizardAnswers:e.wizardAnswers,noGovernance:e.noGovernance,noMcp:e.noMcp},config:{},enhancements:{claudeFlow:!1,ruvector:!1},results:new Map,services:{log:s=>console.log(s),warn:s=>console.warn(s),error:s=>console.error(s)}}}async initialize(){let e=Date.now(),t=[];try{let s=[...this.phases].sort((n,o)=>n.order-o.order);for(let n of s){if(!await n.shouldRun(this.context))continue;console.log(`
373
+ `)}};ee();import{existsSync as j,mkdirSync as Qe,readdirSync as Le,copyFileSync as Ve}from"fs";import{join as C,dirname as lt}from"path";import{fileURLToPath as ct}from"url";var dt=ct(import.meta.url),Be=lt(dt);function ut(){let c=[C(Be,"../../assets/governance"),C(Be,"../assets/governance")],e=Ee(import.meta.url);e&&(c.push(C(e,"assets/governance")),c.push(C(e,"dist/assets/governance"))),c.push(C(process.cwd(),"node_modules/agentic-qe/assets/governance")),c.push(C(process.cwd(),"assets/governance"));for(let t of c)if(j(t))return t;throw new Error(`Governance assets not found. Package may be corrupted. Searched: ${c.join(", ")}`)}var he=class{projectRoot;overwrite;skipShards;assetsPath;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.skipShards=e.skipShards??!1,this.assetsPath=ut()}async install(){let e=[],t=[],s=[],n=C(this.projectRoot,".claude","guidance"),o=C(n,"shards");try{Qe(n,{recursive:!0}),this.skipShards||Qe(o,{recursive:!0})}catch(u){return s.push(`Failed to create governance directory: ${S(u)}`),{installed:e,skipped:t,errors:s,governanceDir:n,constitutionInstalled:!1,shardsInstalled:0}}let r=!1,i=C(this.assetsPath,"constitution.md"),l=C(n,"constitution.md");if(j(i))try{!j(l)||this.overwrite?(Ve(i,l),e.push("constitution.md"),r=!0):t.push("constitution.md")}catch(u){s.push(`Failed to install constitution.md: ${S(u)}`)}else s.push("constitution.md not found in assets");let d=0;if(!this.skipShards){let u=C(this.assetsPath,"shards");if(j(u))try{let g=Le(u).filter(p=>p.endsWith(".shard.md"));for(let p of g){let h=C(u,p),f=C(o,p);try{!j(f)||this.overwrite?(Ve(h,f),e.push(`shards/${p}`),d++):t.push(`shards/${p}`)}catch(v){s.push(`Failed to install ${p}: ${S(v)}`)}}}catch(g){s.push(`Failed to read shards directory: ${S(g)}`)}else s.push("Shards directory not found in assets")}return{installed:e,skipped:t,errors:s,governanceDir:n,constitutionInstalled:r,shardsInstalled:d}}isInstalled(){let e=C(this.projectRoot,".claude","guidance","constitution.md");return j(e)}getInstalledShards(){let e=C(this.projectRoot,".claude","guidance","shards");if(!j(e))return[];try{return Le(e).filter(t=>t.endsWith(".shard.md"))}catch{return[]}}};function We(c){return new he(c)}var Z=class extends y{name="governance";description="Install governance configuration";order=95;critical=!1;requiresPhases=["configuration"];async shouldRun(e){return e.options.noGovernance?(e.services.log(" Governance skipped (--no-governance flag)"),!1):e.options.minimal?(e.services.log(" Governance skipped (minimal mode)"),!1):!0}async run(e){let{projectRoot:t,options:s}=e,n=s.upgrade,o=We({projectRoot:t,overwrite:n});if(o.isInstalled()&&!n){let i=o.getInstalledShards();return e.services.log(` Governance already installed (${i.length} shards)`),e.services.log(" Use --upgrade to overwrite existing files"),{filesInstalled:0,filesSkipped:1+i.length,constitutionInstalled:!1,shardsInstalled:0,governanceDir:`${t}/.claude/guidance`,skippedByFlag:!1}}let r=await o.install();if(r.errors.length>0)for(let i of r.errors)e.services.warn(` ${i}`);return e.services.log(` Constitution: ${r.constitutionInstalled?"installed":"skipped"}`),e.services.log(` Shards: ${r.shardsInstalled} installed, ${r.skipped.filter(i=>i.startsWith("shards/")).length} skipped`),r.installed.length>0&&(e.services.log(" Governance enabled (non-strict mode by default)"),e.services.log(" Set GOVERNANCE_STRICT_MODE=true for strict enforcement")),{filesInstalled:r.installed.length,filesSkipped:r.skipped.length,constitutionInstalled:r.constitutionInstalled,shardsInstalled:r.shardsInstalled,governanceDir:r.governanceDir,skippedByFlag:!1}}};var pt=new N,gt=new Q,mt=new L,ft=new W,ht=new H,yt=new G,vt=new U,kt=new z,wt=new K,bt=new Y,Ct=new J,It=new X,Pt=new Z;function He(){return[pt,gt,mt,ft,ht,yt,vt,kt,wt,Pt,bt,Ct,It]}var ye=class{phases;context;constructor(e){this.context=this.createContext(e),this.phases=e.customPhases??He()}createContext(e){let t=e.withAllPlatforms;return{projectRoot:e.projectRoot,options:{autoMode:e.autoMode,upgrade:e.upgrade,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,minimal:e.minimal,withN8n:e.withN8n,withOpenCode:e.withOpenCode,withKiro:e.withKiro,withCopilot:e.withCopilot||t,withCursor:e.withCursor||t,withCline:e.withCline||t,withKiloCode:e.withKiloCode||t,withRooCode:e.withRooCode||t,withCodex:e.withCodex||t,withWindsurf:e.withWindsurf||t,withContinueDev:e.withContinueDev||t,withAllPlatforms:e.withAllPlatforms,n8nApiConfig:e.n8nApiConfig,wizardAnswers:e.wizardAnswers,noGovernance:e.noGovernance,noMcp:e.noMcp},config:{},enhancements:{claudeFlow:!1,ruvector:!1},results:new Map,services:{log:s=>console.log(s),warn:s=>console.warn(s),error:s=>console.error(s)}}}async initialize(){let e=Date.now(),t=[];try{let s=[...this.phases].sort((n,o)=>n.order-o.order);for(let n of s){if(!await n.shouldRun(this.context))continue;console.log(`
374
374
  \u{1F4CB} ${n.description}...`);let r=await n.execute(this.context);if(this.context.results.set(n.name,r),t.push({step:n.description,status:r.success?"success":"error",message:r.message||"",durationMs:r.durationMs}),!r.success&&n.critical){if(console.error(`
375
- \u274C Critical phase failed: ${n.name}`),n.rollback)try{await n.rollback(this.context)}catch(i){console.error(`Rollback failed: ${i}`)}return this.createFailureResult(t,e)}if(r.skipRemaining)break}return this.createSuccessResult(t,e)}catch(s){return t.push({step:"Initialization Failed",status:"error",message:S(s),durationMs:0}),this.createFailureResult(t,e)}}createSuccessResult(e,t){let s=this.context.config,n=this.context.results.get("learning"),o=this.context.results.get("code-intelligence"),r=this.context.results.get("assets"),i=this.context.results.get("hooks"),l=this.context.results.get("mcp"),d=this.context.results.get("claude-md"),u=this.context.results.get("workers");return{success:!0,config:s||de("unknown",this.context.projectRoot),steps:e,summary:{projectAnalyzed:this.context.results.has("analysis"),configGenerated:this.context.results.has("configuration"),codeIntelligenceIndexed:o?.data?.entries??0,patternsLoaded:n?.data?.patternsLoaded??0,skillsInstalled:r?.data?.skillsInstalled??0,agentsInstalled:r?.data?.agentsInstalled??0,hooksConfigured:i?.data?.configured??!1,mcpConfigured:l?.data?.configured??!1,claudeMdGenerated:d?.data?.generated??!1,workersStarted:u?.data?.workersConfigured??0},totalDurationMs:Date.now()-t,timestamp:new Date}}createFailureResult(e,t){return{success:!1,config:de("unknown",this.context.projectRoot),steps:e,summary:{projectAnalyzed:!1,configGenerated:!1,codeIntelligenceIndexed:0,patternsLoaded:0,skillsInstalled:0,agentsInstalled:0,hooksConfigured:!1,mcpConfigured:!1,claudeMdGenerated:!1,workersStarted:0},totalDurationMs:Date.now()-t,timestamp:new Date}}getPhase(e){return this.phases.find(t=>t.name===e)}getPhases(){return[...this.phases]}getContext(){return this.context}};function Pt(c){return new ye(c)}async function _s(c){return await Pt({projectRoot:c,autoMode:!0}).initialize()}function $s(c){let e=[];e.push(""),e.push("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),e.push("\u2502 AQE v3 Initialization \u2502"),e.push("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");for(let s of c.steps){let n=s.status==="success"?"\u2713":s.status==="error"?"\u2717":"\u25CB",o=s.step.substring(0,48).padEnd(48);e.push(`\u2502 ${n} ${o} ${String(s.durationMs).padStart(4)}ms \u2502`)}e.push("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524"),e.push(`\u2502 Project: ${c.config.project.name.substring(0,45).padEnd(45)} \u2502`),e.push(`\u2502 Type: ${c.config.project.type.padEnd(48)} \u2502`),e.push(`\u2502 Code Intel: ${String(c.summary.codeIntelligenceIndexed).padEnd(43)} \u2502`),e.push(`\u2502 Patterns: ${String(c.summary.patternsLoaded).padEnd(45)} \u2502`),e.push(`\u2502 Skills: ${String(c.summary.skillsInstalled).padEnd(47)} \u2502`),e.push(`\u2502 Agents: ${String(c.summary.agentsInstalled).padEnd(47)} \u2502`),e.push(`\u2502 Workers: ${String(c.summary.workersStarted).padEnd(46)} \u2502`),e.push(`\u2502 Hooks: ${c.summary.hooksConfigured?"Yes":"No".padEnd(48)} \u2502`),e.push(`\u2502 MCP: ${c.summary.mcpConfigured?"Yes":"No".padEnd(50)} \u2502`),e.push(`\u2502 CLAUDE.md: ${c.summary.claudeMdGenerated?"Yes":"No".padEnd(44)} \u2502`),e.push("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");let t=c.success?"\u2713 AQE v3 initialized successfully":"\u2717 Initialization failed";return e.push(`\u2502 ${t.padEnd(57)} \u2502`),e.push("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"),e.push(""),e.join(`
376
- `)}export{ye as ModularInitOrchestrator,Pt as createModularInitOrchestrator,$s as formatInitResultModular,_s as quickInitModular};
375
+ \u274C Critical phase failed: ${n.name}`),n.rollback)try{await n.rollback(this.context)}catch(i){console.error(`Rollback failed: ${i}`)}return this.createFailureResult(t,e)}if(r.skipRemaining)break}return this.createSuccessResult(t,e)}catch(s){return t.push({step:"Initialization Failed",status:"error",message:S(s),durationMs:0}),this.createFailureResult(t,e)}}createSuccessResult(e,t){let s=this.context.config,n=this.context.results.get("learning"),o=this.context.results.get("code-intelligence"),r=this.context.results.get("assets"),i=this.context.results.get("hooks"),l=this.context.results.get("mcp"),d=this.context.results.get("claude-md"),u=this.context.results.get("workers");return{success:!0,config:s||de("unknown",this.context.projectRoot),steps:e,summary:{projectAnalyzed:this.context.results.has("analysis"),configGenerated:this.context.results.has("configuration"),codeIntelligenceIndexed:o?.data?.entries??0,patternsLoaded:n?.data?.patternsLoaded??0,skillsInstalled:r?.data?.skillsInstalled??0,agentsInstalled:r?.data?.agentsInstalled??0,hooksConfigured:i?.data?.configured??!1,mcpConfigured:l?.data?.configured??!1,claudeMdGenerated:d?.data?.generated??!1,workersStarted:u?.data?.workersConfigured??0},totalDurationMs:Date.now()-t,timestamp:new Date}}createFailureResult(e,t){return{success:!1,config:de("unknown",this.context.projectRoot),steps:e,summary:{projectAnalyzed:!1,configGenerated:!1,codeIntelligenceIndexed:0,patternsLoaded:0,skillsInstalled:0,agentsInstalled:0,hooksConfigured:!1,mcpConfigured:!1,claudeMdGenerated:!1,workersStarted:0},totalDurationMs:Date.now()-t,timestamp:new Date}}getPhase(e){return this.phases.find(t=>t.name===e)}getPhases(){return[...this.phases]}getContext(){return this.context}};function St(c){return new ye(c)}async function $s(c){return await St({projectRoot:c,autoMode:!0}).initialize()}function Ds(c){let e=[];e.push(""),e.push("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"),e.push("\u2502 AQE v3 Initialization \u2502"),e.push("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");for(let s of c.steps){let n=s.status==="success"?"\u2713":s.status==="error"?"\u2717":"\u25CB",o=s.step.substring(0,48).padEnd(48);e.push(`\u2502 ${n} ${o} ${String(s.durationMs).padStart(4)}ms \u2502`)}e.push("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524"),e.push(`\u2502 Project: ${c.config.project.name.substring(0,45).padEnd(45)} \u2502`),e.push(`\u2502 Type: ${c.config.project.type.padEnd(48)} \u2502`),e.push(`\u2502 Code Intel: ${String(c.summary.codeIntelligenceIndexed).padEnd(43)} \u2502`),e.push(`\u2502 Patterns: ${String(c.summary.patternsLoaded).padEnd(45)} \u2502`),e.push(`\u2502 Skills: ${String(c.summary.skillsInstalled).padEnd(47)} \u2502`),e.push(`\u2502 Agents: ${String(c.summary.agentsInstalled).padEnd(47)} \u2502`),e.push(`\u2502 Workers: ${String(c.summary.workersStarted).padEnd(46)} \u2502`),e.push(`\u2502 Hooks: ${c.summary.hooksConfigured?"Yes":"No".padEnd(48)} \u2502`),e.push(`\u2502 MCP: ${c.summary.mcpConfigured?"Yes":"No".padEnd(50)} \u2502`),e.push(`\u2502 CLAUDE.md: ${c.summary.claudeMdGenerated?"Yes":"No".padEnd(44)} \u2502`),e.push("\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524");let t=c.success?"\u2713 AQE v3 initialized successfully":"\u2717 Initialization failed";return e.push(`\u2502 ${t.padEnd(57)} \u2502`),e.push("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"),e.push(""),e.join(`
376
+ `)}export{ye as ModularInitOrchestrator,St as createModularInitOrchestrator,Ds as formatInitResultModular,$s as quickInitModular};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{a as y,b as w,c as u}from"./chunk-A2ULGMMG.js";import"./chunk-335CCAOL.js";import{Command as O}from"commander";import{resolve as A}from"path";import s from"chalk";import*as M from"node:fs/promises";import{parse as W}from"yaml";var E=["eq","neq","gt","gte","lt","lte","contains","exists"],D=["sequential","parallel"],N=/\$\{([^}]+)\}/g,k=class{parse(r,t){try{let n=this.interpolateVariables(r,t??{}),a=W(n);return this.validateAndConvert(a)}catch(n){return u(n instanceof Error?new Error(`YAML parse error: ${n.message}`):new Error(`YAML parse error: ${String(n)}`))}}async loadFromFile(r,t){try{let n=await M.readFile(r,"utf-8");return this.parse(n,t)}catch(n){return u(n instanceof Error?new Error(`Failed to read pipeline file '${r}': ${n.message}`):new Error(`Failed to read pipeline file '${r}': ${String(n)}`))}}interpolateVariables(r,t){return r.replace(N,(n,a)=>{let o=this.resolveVarPath(t,a);return o===void 0?n:String(o)})}validateSchema(r){return this.validateAndConvert(r)}validateAndConvert(r){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error("YAML must parse to an object"));let t=r;if(!t.id||typeof t.id!="string")return u(new Error("Missing or invalid required field 'id' (string)"));if(!t.name||typeof t.name!="string")return u(new Error("Missing or invalid required field 'name' (string)"));if(!t.steps||!Array.isArray(t.steps)||t.steps.length===0)return u(new Error("'steps' must be a non-empty array"));let n=typeof t.description=="string"?t.description:"",a=typeof t.version=="string"?t.version:"1.0.0",o;if(t.defaultMode!==void 0){if(!D.includes(t.defaultMode))return u(new Error(`Invalid defaultMode '${String(t.defaultMode)}'. Must be one of: ${D.join(", ")}`));o=t.defaultMode}let e;if(t.timeout!==void 0){if(typeof t.timeout!="number"||t.timeout<=0)return u(new Error("'timeout' must be a positive number"));e=t.timeout}let i=Array.isArray(t.tags)?t.tags.filter(g=>typeof g=="string"):void 0,l=this.validateSteps(t.steps);if(!l.success)return l;let d;if(t.triggers!==void 0){if(!Array.isArray(t.triggers))return u(new Error("'triggers' must be an array"));let g=this.validateTriggers(t.triggers);if(!g.success)return g;d=g.value}let p=this.detectCircularDependencies(l.value);if(p)return u(new Error(`Circular dependency detected: ${p}`));let c={id:t.id,name:t.name,description:n,version:a,steps:l.value,...o!==void 0&&{defaultMode:o},...e!==void 0&&{timeout:e},...i!==void 0&&{tags:i},...d!==void 0&&{triggers:d}};return w(c)}validateSteps(r){let t=[],n=new Set;for(let a=0;a<r.length;a++){let o=r[a];if(!o||typeof o!="object"||Array.isArray(o))return u(new Error(`Step at index ${a} must be an object`));let e=o;if(!e.id||typeof e.id!="string")return u(new Error(`Step at index ${a}: missing or invalid 'id' (string)`));if(n.has(e.id))return u(new Error(`Duplicate step ID: ${e.id}`));if(n.add(e.id),!e.name||typeof e.name!="string")return u(new Error(`Step '${e.id}': missing or invalid 'name' (string)`));if(!e.domain||typeof e.domain!="string")return u(new Error(`Step '${e.id}': missing or invalid 'domain' (string)`));if(!y.includes(e.domain))return u(new Error(`Step '${e.id}': invalid domain '${e.domain}'. Must be one of: ${y.join(", ")}`));if(!e.action||typeof e.action!="string")return u(new Error(`Step '${e.id}': missing or invalid 'action' (string)`));let i=this.validateStringRecord(e.inputMapping,`Step '${e.id}'.inputMapping`);if(i!==void 0&&i instanceof Error)return u(i);let l=this.validateStringRecord(e.outputMapping,`Step '${e.id}'.outputMapping`);if(l!==void 0&&l instanceof Error)return u(l);let d;if(e.dependsOn!==void 0){if(!Array.isArray(e.dependsOn)||!e.dependsOn.every(f=>typeof f=="string"))return u(new Error(`Step '${e.id}': 'dependsOn' must be an array of strings`));for(let f of e.dependsOn)if(!r.some(j=>j.id===f))return u(new Error(`Step '${e.id}' depends on unknown step: ${f}`));d=e.dependsOn}let p;if(e.condition!==void 0){let f=this.validateCondition(e.condition,`Step '${e.id}'.condition`);if(!f.success)return f;p=f.value}let c;if(e.skipCondition!==void 0){let f=this.validateCondition(e.skipCondition,`Step '${e.id}'.skipCondition`);if(!f.success)return f;c=f.value}let g;if(e.timeout!==void 0){if(typeof e.timeout!="number"||e.timeout<=0)return u(new Error(`Step '${e.id}': 'timeout' must be a positive number`));g=e.timeout}let $;if(e.retry!==void 0){let f=this.validateRetry(e.retry,e.id);if(!f.success)return f;$=f.value}let b;if(e.rollback!==void 0){let f=this.validateRollback(e.rollback,e.id);if(!f.success)return f;b=f.value}let R=typeof e.continueOnFailure=="boolean"?e.continueOnFailure:void 0,S;if(e.approval!==void 0){let f=this.validateApproval(e.approval,e.id);if(!f.success)return f;S=f.value}let C={id:e.id,name:e.name,domain:e.domain,action:e.action,...i!==void 0&&{inputMapping:i},...l!==void 0&&{outputMapping:l},...d!==void 0&&{dependsOn:d},...p!==void 0&&{condition:p},...c!==void 0&&{skipCondition:c},...g!==void 0&&{timeout:g},...$!==void 0&&{retry:$},...b!==void 0&&{rollback:b},...R!==void 0&&{continueOnFailure:R},...S!==void 0&&{approval:S}};t.push(C)}return w(t)}validateCondition(r,t){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`${t}: must be an object with path, operator, value`));let n=r;return!n.path||typeof n.path!="string"?u(new Error(`${t}: missing or invalid 'path' (string)`)):!n.operator||typeof n.operator!="string"?u(new Error(`${t}: missing or invalid 'operator' (string)`)):E.includes(n.operator)?n.value===void 0?u(new Error(`${t}: missing 'value'`)):w({path:n.path,operator:n.operator,value:n.value}):u(new Error(`${t}: invalid operator '${n.operator}'. Must be one of: ${E.join(", ")}`))}validateTriggers(r){let t=[];for(let n=0;n<r.length;n++){let a=r[n];if(!a||typeof a!="object"||Array.isArray(a))return u(new Error(`Trigger at index ${n} must be an object`));let o=a;if(!o.eventType||typeof o.eventType!="string")return u(new Error(`Trigger at index ${n}: missing or invalid 'eventType' (string)`));let e;if(o.sourceDomain!==void 0){if(typeof o.sourceDomain!="string"||!y.includes(o.sourceDomain))return u(new Error(`Trigger at index ${n}: invalid 'sourceDomain' '${String(o.sourceDomain)}'`));e=o.sourceDomain}let i;if(o.condition!==void 0){let d=this.validateCondition(o.condition,`Trigger at index ${n}.condition`);if(!d.success)return d;i=d.value}let l=this.validateStringRecord(o.inputMapping,`Trigger at index ${n}.inputMapping`);if(l!==void 0&&l instanceof Error)return u(l);t.push({eventType:o.eventType,...e!==void 0&&{sourceDomain:e},...i!==void 0&&{condition:i},...l!==void 0&&{inputMapping:l}})}return w(t)}validateRetry(r,t){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`Step '${t}': 'retry' must be an object`));let n=r;return typeof n.maxAttempts!="number"||n.maxAttempts<1?u(new Error(`Step '${t}': retry.maxAttempts must be a positive integer`)):typeof n.backoffMs!="number"||n.backoffMs<0?u(new Error(`Step '${t}': retry.backoffMs must be a non-negative number`)):w({maxAttempts:n.maxAttempts,backoffMs:n.backoffMs,...typeof n.backoffMultiplier=="number"&&{backoffMultiplier:n.backoffMultiplier}})}validateRollback(r,t){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`Step '${t}': 'rollback' must be an object`));let n=r;return!n.domain||typeof n.domain!="string"||!y.includes(n.domain)?u(new Error(`Step '${t}': rollback.domain is invalid or missing`)):!n.action||typeof n.action!="string"?u(new Error(`Step '${t}': rollback.action is required (string)`)):w({domain:n.domain,action:n.action,...n.input!==void 0&&typeof n.input=="object"&&{input:n.input}})}validateApproval(r,t){if(typeof r=="boolean")return w(r);if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`Step '${t}': 'approval' must be a boolean or object`));let n=r,a={};if(n.autoApproveAfter!==void 0){if(typeof n.autoApproveAfter!="number"||n.autoApproveAfter<0)return u(new Error(`Step '${t}': approval.autoApproveAfter must be a non-negative number`));a.autoApproveAfter=n.autoApproveAfter}if(n.message!==void 0){if(typeof n.message!="string")return u(new Error(`Step '${t}': approval.message must be a string`));a.message=n.message}return w(a)}validateStringRecord(r,t){if(r==null)return;if(typeof r!="object"||Array.isArray(r))return new Error(`${t}: must be an object with string values`);let n=r;for(let[a,o]of Object.entries(n))if(typeof o!="string")return new Error(`${t}: value for key '${a}' must be a string, got ${typeof o}`);return n}resolveVarPath(r,t){if(t in r)return r[t];let n=t.split("."),a=r;for(let o of n){if(a==null||typeof a!="object")return;a=a[o]}return a}detectCircularDependencies(r){let t=new Set,n=new Set,a=(o,e)=>{if(n.has(o))return[...e,o].join(" -> ");if(t.has(o))return null;t.add(o),n.add(o);let i=r.find(l=>l.id===o);if(i?.dependsOn)for(let l of i.dependsOn){let d=a(l,[...e,o]);if(d)return d}return n.delete(o),null};for(let o of r){let e=a(o.id,[]);if(e)return e}return null}};function h(m){let r={};for(let t of m){let n=t.indexOf("=");if(n===-1)r[t]=!0;else{let a=t.slice(0,n),o=t.slice(n+1);o==="true"?r[a]=!0:o==="false"?r[a]=!1:!isNaN(Number(o))&&o!==""?r[a]=Number(o):r[a]=o}}return r}function T(m){return h(m)}function v(m){return m.workflowOrchestrator}function X(m,r,t){let n=new k,a=new O("pipeline").description("Manage YAML deterministic pipelines (Imp-9)");return a.command("load <file>").description("Load and register a pipeline from a YAML file").option("--vars <entries...>","Variable substitutions (key=value)").action(async(o,e)=>{if(!await t())return;let i=v(m);if(!i){console.error(s.red(' Workflow orchestrator not available. Run "aqe fleet init" first.')),await r(1);return}let l=A(o),d=e.vars?h(e.vars):void 0;console.log(s.blue(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a as y,b as w,c as u}from"./chunk-G3XXEPHS.js";import"./chunk-IFVGKXD2.js";import{Command as O}from"commander";import{resolve as A}from"path";import s from"chalk";import*as M from"node:fs/promises";import{parse as W}from"yaml";var E=["eq","neq","gt","gte","lt","lte","contains","exists"],D=["sequential","parallel"],N=/\$\{([^}]+)\}/g,k=class{parse(r,t){try{let n=this.interpolateVariables(r,t??{}),a=W(n);return this.validateAndConvert(a)}catch(n){return u(n instanceof Error?new Error(`YAML parse error: ${n.message}`):new Error(`YAML parse error: ${String(n)}`))}}async loadFromFile(r,t){try{let n=await M.readFile(r,"utf-8");return this.parse(n,t)}catch(n){return u(n instanceof Error?new Error(`Failed to read pipeline file '${r}': ${n.message}`):new Error(`Failed to read pipeline file '${r}': ${String(n)}`))}}interpolateVariables(r,t){return r.replace(N,(n,a)=>{let o=this.resolveVarPath(t,a);return o===void 0?n:String(o)})}validateSchema(r){return this.validateAndConvert(r)}validateAndConvert(r){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error("YAML must parse to an object"));let t=r;if(!t.id||typeof t.id!="string")return u(new Error("Missing or invalid required field 'id' (string)"));if(!t.name||typeof t.name!="string")return u(new Error("Missing or invalid required field 'name' (string)"));if(!t.steps||!Array.isArray(t.steps)||t.steps.length===0)return u(new Error("'steps' must be a non-empty array"));let n=typeof t.description=="string"?t.description:"",a=typeof t.version=="string"?t.version:"1.0.0",o;if(t.defaultMode!==void 0){if(!D.includes(t.defaultMode))return u(new Error(`Invalid defaultMode '${String(t.defaultMode)}'. Must be one of: ${D.join(", ")}`));o=t.defaultMode}let e;if(t.timeout!==void 0){if(typeof t.timeout!="number"||t.timeout<=0)return u(new Error("'timeout' must be a positive number"));e=t.timeout}let i=Array.isArray(t.tags)?t.tags.filter(g=>typeof g=="string"):void 0,l=this.validateSteps(t.steps);if(!l.success)return l;let d;if(t.triggers!==void 0){if(!Array.isArray(t.triggers))return u(new Error("'triggers' must be an array"));let g=this.validateTriggers(t.triggers);if(!g.success)return g;d=g.value}let p=this.detectCircularDependencies(l.value);if(p)return u(new Error(`Circular dependency detected: ${p}`));let c={id:t.id,name:t.name,description:n,version:a,steps:l.value,...o!==void 0&&{defaultMode:o},...e!==void 0&&{timeout:e},...i!==void 0&&{tags:i},...d!==void 0&&{triggers:d}};return w(c)}validateSteps(r){let t=[],n=new Set;for(let a=0;a<r.length;a++){let o=r[a];if(!o||typeof o!="object"||Array.isArray(o))return u(new Error(`Step at index ${a} must be an object`));let e=o;if(!e.id||typeof e.id!="string")return u(new Error(`Step at index ${a}: missing or invalid 'id' (string)`));if(n.has(e.id))return u(new Error(`Duplicate step ID: ${e.id}`));if(n.add(e.id),!e.name||typeof e.name!="string")return u(new Error(`Step '${e.id}': missing or invalid 'name' (string)`));if(!e.domain||typeof e.domain!="string")return u(new Error(`Step '${e.id}': missing or invalid 'domain' (string)`));if(!y.includes(e.domain))return u(new Error(`Step '${e.id}': invalid domain '${e.domain}'. Must be one of: ${y.join(", ")}`));if(!e.action||typeof e.action!="string")return u(new Error(`Step '${e.id}': missing or invalid 'action' (string)`));let i=this.validateStringRecord(e.inputMapping,`Step '${e.id}'.inputMapping`);if(i!==void 0&&i instanceof Error)return u(i);let l=this.validateStringRecord(e.outputMapping,`Step '${e.id}'.outputMapping`);if(l!==void 0&&l instanceof Error)return u(l);let d;if(e.dependsOn!==void 0){if(!Array.isArray(e.dependsOn)||!e.dependsOn.every(f=>typeof f=="string"))return u(new Error(`Step '${e.id}': 'dependsOn' must be an array of strings`));for(let f of e.dependsOn)if(!r.some(j=>j.id===f))return u(new Error(`Step '${e.id}' depends on unknown step: ${f}`));d=e.dependsOn}let p;if(e.condition!==void 0){let f=this.validateCondition(e.condition,`Step '${e.id}'.condition`);if(!f.success)return f;p=f.value}let c;if(e.skipCondition!==void 0){let f=this.validateCondition(e.skipCondition,`Step '${e.id}'.skipCondition`);if(!f.success)return f;c=f.value}let g;if(e.timeout!==void 0){if(typeof e.timeout!="number"||e.timeout<=0)return u(new Error(`Step '${e.id}': 'timeout' must be a positive number`));g=e.timeout}let $;if(e.retry!==void 0){let f=this.validateRetry(e.retry,e.id);if(!f.success)return f;$=f.value}let b;if(e.rollback!==void 0){let f=this.validateRollback(e.rollback,e.id);if(!f.success)return f;b=f.value}let R=typeof e.continueOnFailure=="boolean"?e.continueOnFailure:void 0,S;if(e.approval!==void 0){let f=this.validateApproval(e.approval,e.id);if(!f.success)return f;S=f.value}let C={id:e.id,name:e.name,domain:e.domain,action:e.action,...i!==void 0&&{inputMapping:i},...l!==void 0&&{outputMapping:l},...d!==void 0&&{dependsOn:d},...p!==void 0&&{condition:p},...c!==void 0&&{skipCondition:c},...g!==void 0&&{timeout:g},...$!==void 0&&{retry:$},...b!==void 0&&{rollback:b},...R!==void 0&&{continueOnFailure:R},...S!==void 0&&{approval:S}};t.push(C)}return w(t)}validateCondition(r,t){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`${t}: must be an object with path, operator, value`));let n=r;return!n.path||typeof n.path!="string"?u(new Error(`${t}: missing or invalid 'path' (string)`)):!n.operator||typeof n.operator!="string"?u(new Error(`${t}: missing or invalid 'operator' (string)`)):E.includes(n.operator)?n.value===void 0?u(new Error(`${t}: missing 'value'`)):w({path:n.path,operator:n.operator,value:n.value}):u(new Error(`${t}: invalid operator '${n.operator}'. Must be one of: ${E.join(", ")}`))}validateTriggers(r){let t=[];for(let n=0;n<r.length;n++){let a=r[n];if(!a||typeof a!="object"||Array.isArray(a))return u(new Error(`Trigger at index ${n} must be an object`));let o=a;if(!o.eventType||typeof o.eventType!="string")return u(new Error(`Trigger at index ${n}: missing or invalid 'eventType' (string)`));let e;if(o.sourceDomain!==void 0){if(typeof o.sourceDomain!="string"||!y.includes(o.sourceDomain))return u(new Error(`Trigger at index ${n}: invalid 'sourceDomain' '${String(o.sourceDomain)}'`));e=o.sourceDomain}let i;if(o.condition!==void 0){let d=this.validateCondition(o.condition,`Trigger at index ${n}.condition`);if(!d.success)return d;i=d.value}let l=this.validateStringRecord(o.inputMapping,`Trigger at index ${n}.inputMapping`);if(l!==void 0&&l instanceof Error)return u(l);t.push({eventType:o.eventType,...e!==void 0&&{sourceDomain:e},...i!==void 0&&{condition:i},...l!==void 0&&{inputMapping:l}})}return w(t)}validateRetry(r,t){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`Step '${t}': 'retry' must be an object`));let n=r;return typeof n.maxAttempts!="number"||n.maxAttempts<1?u(new Error(`Step '${t}': retry.maxAttempts must be a positive integer`)):typeof n.backoffMs!="number"||n.backoffMs<0?u(new Error(`Step '${t}': retry.backoffMs must be a non-negative number`)):w({maxAttempts:n.maxAttempts,backoffMs:n.backoffMs,...typeof n.backoffMultiplier=="number"&&{backoffMultiplier:n.backoffMultiplier}})}validateRollback(r,t){if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`Step '${t}': 'rollback' must be an object`));let n=r;return!n.domain||typeof n.domain!="string"||!y.includes(n.domain)?u(new Error(`Step '${t}': rollback.domain is invalid or missing`)):!n.action||typeof n.action!="string"?u(new Error(`Step '${t}': rollback.action is required (string)`)):w({domain:n.domain,action:n.action,...n.input!==void 0&&typeof n.input=="object"&&{input:n.input}})}validateApproval(r,t){if(typeof r=="boolean")return w(r);if(!r||typeof r!="object"||Array.isArray(r))return u(new Error(`Step '${t}': 'approval' must be a boolean or object`));let n=r,a={};if(n.autoApproveAfter!==void 0){if(typeof n.autoApproveAfter!="number"||n.autoApproveAfter<0)return u(new Error(`Step '${t}': approval.autoApproveAfter must be a non-negative number`));a.autoApproveAfter=n.autoApproveAfter}if(n.message!==void 0){if(typeof n.message!="string")return u(new Error(`Step '${t}': approval.message must be a string`));a.message=n.message}return w(a)}validateStringRecord(r,t){if(r==null)return;if(typeof r!="object"||Array.isArray(r))return new Error(`${t}: must be an object with string values`);let n=r;for(let[a,o]of Object.entries(n))if(typeof o!="string")return new Error(`${t}: value for key '${a}' must be a string, got ${typeof o}`);return n}resolveVarPath(r,t){if(t in r)return r[t];let n=t.split("."),a=r;for(let o of n){if(a==null||typeof a!="object")return;a=a[o]}return a}detectCircularDependencies(r){let t=new Set,n=new Set,a=(o,e)=>{if(n.has(o))return[...e,o].join(" -> ");if(t.has(o))return null;t.add(o),n.add(o);let i=r.find(l=>l.id===o);if(i?.dependsOn)for(let l of i.dependsOn){let d=a(l,[...e,o]);if(d)return d}return n.delete(o),null};for(let o of r){let e=a(o.id,[]);if(e)return e}return null}};function h(m){let r={};for(let t of m){let n=t.indexOf("=");if(n===-1)r[t]=!0;else{let a=t.slice(0,n),o=t.slice(n+1);o==="true"?r[a]=!0:o==="false"?r[a]=!1:!isNaN(Number(o))&&o!==""?r[a]=Number(o):r[a]=o}}return r}function T(m){return h(m)}function v(m){return m.workflowOrchestrator}function X(m,r,t){let n=new k,a=new O("pipeline").description("Manage YAML deterministic pipelines (Imp-9)");return a.command("load <file>").description("Load and register a pipeline from a YAML file").option("--vars <entries...>","Variable substitutions (key=value)").action(async(o,e)=>{if(!await t())return;let i=v(m);if(!i){console.error(s.red(' Workflow orchestrator not available. Run "aqe fleet init" first.')),await r(1);return}let l=A(o),d=e.vars?h(e.vars):void 0;console.log(s.blue(`
3
3
  Loading pipeline from: ${o}
4
4
  `));let p=await n.loadFromFile(l,d);if(!p.success){console.error(s.red(` Parse error: ${p.error.message}`)),await r(1);return}let c=p.value,g=i.registerWorkflow(c);if(!g.success){console.error(s.red(` Registration error: ${g.error.message}`)),await r(1);return}console.log(s.green(" Pipeline loaded successfully.")),console.log(` ID: ${s.cyan(c.id)}`),console.log(` Name: ${s.cyan(c.name)}`),console.log(` Steps: ${s.cyan(c.steps.length)}`),console.log(` Version: ${s.cyan(c.version)}`),c.tags?.length&&console.log(` Tags: ${s.cyan(c.tags.join(", "))}`),console.log(""),await r(0)}),a.command("validate <file>").description("Validate a YAML pipeline without registering it").option("--vars <entries...>","Variable substitutions (key=value)").action(async(o,e)=>{let i=A(o),l=e.vars?h(e.vars):void 0;console.log(s.blue(`
5
5
  Validating pipeline: ${o}
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.10");process.exit(0)}
2
- import{a as u}from"./chunk-3HIDCXW3.js";import{a as y,c as w}from"./chunk-IGRKFVFD.js";import{b as $}from"./chunk-335CCAOL.js";import{Command as v}from"commander";import o from"chalk";import{existsSync as d,readFileSync as P}from"node:fs";import m from"node:path";w();var C=$({});var p=Object.keys(u);function h(s){return p.includes(s)}function x(s,e){let t=m.join(s,e.configPath),n=m.join(s,e.rulesPath);return{configExists:d(t),rulesExists:d(n)}}function E(s,e){try{let t=P(s,"utf-8");return e==="json"?{valid:!0,data:JSON.parse(t)}:e==="toml"?t.trim().length===0?{valid:!1,error:"File is empty"}:{valid:!0}:e==="yaml"?t.trim().length===0?{valid:!1,error:"File is empty"}:{valid:!0}:{valid:!0}}catch(t){return{valid:!1,error:y(t)}}}function I(s,e){try{return P(s,"utf-8").includes("agentic-qe")}catch{return!1}}function j(){let s=new v("platform").description("Manage coding agent platform configurations");return s.command("list").description("List all supported platforms and their configuration status").action(async()=>{let e=process.cwd();console.log(""),console.log(o.bold.blue(" Supported Platforms")),console.log(o.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log("");let t=18,n=36,r=14;console.log(o.gray(` ${"Platform".padEnd(t)}${"Config Path".padEnd(n)}${"Status".padEnd(r)}`)),console.log(o.gray(` ${"\u2500".repeat(t+n+r)}`));for(let l of p){let f=u[l],{configExists:c,rulesExists:a}=x(e,f),i=c&&a?o.green("configured"):c||a?o.yellow("partial"):o.gray("not configured");console.log(` ${o.white(f.name.padEnd(t))}${o.gray(f.configPath.padEnd(n))}${i}`)}console.log(""),console.log(o.gray(' Use "aqe platform setup <name>" to configure a platform')),console.log(o.gray(' Use "aqe init --with-all-platforms" to configure all at once')),console.log("")}),s.command("setup <name>").description("Set up a specific platform configuration").option("--overwrite","Overwrite existing configuration files").action(async(e,t)=>{let n=process.cwd();h(e)||(console.log(""),console.log(o.red(` Unknown platform: ${e}`)),console.log(o.gray(` Valid platforms: ${p.join(", ")}`)),console.log(""),process.exit(1));let r=u[e];console.log(""),console.log(o.bold.blue(` Setting up ${r.name}`)),console.log(o.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log("");try{let l=await C(`../../init/${e}-installer.js`),c=[`create${e.charAt(0).toUpperCase()}${e.slice(1).replace(/([a-z])([A-Z])/g,"$1$2")}Installer`,`create${R(e)}Installer`],a;for(let i of c)if(typeof l[i]=="function"){a=l[i];break}if(!a){for(let i of Object.keys(l))if(i.startsWith("create")&&i.endsWith("Installer")&&typeof l[i]=="function"){a=l[i];break}}a||(console.log(o.red(` Could not find installer factory for ${e}`)),process.exit(1));let g=await a({projectRoot:n,overwrite:t.overwrite}).install();if(g.success)console.log(o.green(` ${r.name} configured successfully`)),g.mcpConfigured&&console.log(o.gray(` MCP config: ${r.configPath}`)),g.rulesInstalled&&console.log(o.gray(` Rules: ${r.rulesPath}`));else if(console.log(o.red(` ${r.name} setup failed`)),g.errors)for(let i of g.errors)console.log(o.red(` ${i}`))}catch(l){console.log(o.red(` Failed to set up ${r.name}: ${y(l)}`))}console.log("")}),s.command("verify <name>").description("Verify a platform configuration is correct").action(async e=>{let t=process.cwd();h(e)||(console.log(""),console.log(o.red(` Unknown platform: ${e}`)),console.log(o.gray(` Valid platforms: ${p.join(", ")}`)),console.log(""),process.exit(1));let n=u[e];console.log(""),console.log(o.bold.blue(` Verifying ${n.name}`)),console.log(o.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log("");let r=!0,l=m.join(t,n.configPath);if(d(l)?console.log(o.green(` [pass] Config file exists: ${n.configPath}`)):(console.log(o.red(` [fail] Config file missing: ${n.configPath}`)),r=!1),d(l)){let c=E(l,n.configFormat);c.valid?console.log(o.green(` [pass] Config file is valid ${n.configFormat.toUpperCase()}`)):(console.log(o.red(` [fail] Config file is invalid: ${c.error}`)),r=!1),I(l,n)?console.log(o.green(" [pass] Config contains agentic-qe entry")):(console.log(o.red(" [fail] Config does not contain agentic-qe entry")),r=!1)}let f=m.join(t,n.rulesPath);d(f)?console.log(o.green(` [pass] Rules file exists: ${n.rulesPath}`)):(console.log(o.red(` [fail] Rules file missing: ${n.rulesPath}`)),r=!1),console.log(""),r?console.log(o.green(` ${n.name} configuration is valid`)):(console.log(o.yellow(` ${n.name} configuration has issues`)),console.log(o.gray(` Run "aqe platform setup ${e}" to fix`))),console.log("")}),s}function R(s){return s.charAt(0).toUpperCase()+s.slice(1)}var V=j;export{j as createPlatformCommand,V as default};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.11");process.exit(0)}
2
+ import{a as u}from"./chunk-C6EG74P6.js";import{a as y,c as w}from"./chunk-YSNVBAUR.js";import{b as $}from"./chunk-IFVGKXD2.js";import{Command as v}from"commander";import o from"chalk";import{existsSync as d,readFileSync as P}from"node:fs";import m from"node:path";w();var C=$({});var p=Object.keys(u);function h(s){return p.includes(s)}function x(s,e){let t=m.join(s,e.configPath),n=m.join(s,e.rulesPath);return{configExists:d(t),rulesExists:d(n)}}function E(s,e){try{let t=P(s,"utf-8");return e==="json"?{valid:!0,data:JSON.parse(t)}:e==="toml"?t.trim().length===0?{valid:!1,error:"File is empty"}:{valid:!0}:e==="yaml"?t.trim().length===0?{valid:!1,error:"File is empty"}:{valid:!0}:{valid:!0}}catch(t){return{valid:!1,error:y(t)}}}function I(s,e){try{return P(s,"utf-8").includes("agentic-qe")}catch{return!1}}function j(){let s=new v("platform").description("Manage coding agent platform configurations");return s.command("list").description("List all supported platforms and their configuration status").action(async()=>{let e=process.cwd();console.log(""),console.log(o.bold.blue(" Supported Platforms")),console.log(o.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log("");let t=18,n=36,r=14;console.log(o.gray(` ${"Platform".padEnd(t)}${"Config Path".padEnd(n)}${"Status".padEnd(r)}`)),console.log(o.gray(` ${"\u2500".repeat(t+n+r)}`));for(let l of p){let f=u[l],{configExists:c,rulesExists:a}=x(e,f),i=c&&a?o.green("configured"):c||a?o.yellow("partial"):o.gray("not configured");console.log(` ${o.white(f.name.padEnd(t))}${o.gray(f.configPath.padEnd(n))}${i}`)}console.log(""),console.log(o.gray(' Use "aqe platform setup <name>" to configure a platform')),console.log(o.gray(' Use "aqe init --with-all-platforms" to configure all at once')),console.log("")}),s.command("setup <name>").description("Set up a specific platform configuration").option("--overwrite","Overwrite existing configuration files").action(async(e,t)=>{let n=process.cwd();h(e)||(console.log(""),console.log(o.red(` Unknown platform: ${e}`)),console.log(o.gray(` Valid platforms: ${p.join(", ")}`)),console.log(""),process.exit(1));let r=u[e];console.log(""),console.log(o.bold.blue(` Setting up ${r.name}`)),console.log(o.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log("");try{let l=await C(`../../init/${e}-installer.js`),c=[`create${e.charAt(0).toUpperCase()}${e.slice(1).replace(/([a-z])([A-Z])/g,"$1$2")}Installer`,`create${R(e)}Installer`],a;for(let i of c)if(typeof l[i]=="function"){a=l[i];break}if(!a){for(let i of Object.keys(l))if(i.startsWith("create")&&i.endsWith("Installer")&&typeof l[i]=="function"){a=l[i];break}}a||(console.log(o.red(` Could not find installer factory for ${e}`)),process.exit(1));let g=await a({projectRoot:n,overwrite:t.overwrite}).install();if(g.success)console.log(o.green(` ${r.name} configured successfully`)),g.mcpConfigured&&console.log(o.gray(` MCP config: ${r.configPath}`)),g.rulesInstalled&&console.log(o.gray(` Rules: ${r.rulesPath}`));else if(console.log(o.red(` ${r.name} setup failed`)),g.errors)for(let i of g.errors)console.log(o.red(` ${i}`))}catch(l){console.log(o.red(` Failed to set up ${r.name}: ${y(l)}`))}console.log("")}),s.command("verify <name>").description("Verify a platform configuration is correct").action(async e=>{let t=process.cwd();h(e)||(console.log(""),console.log(o.red(` Unknown platform: ${e}`)),console.log(o.gray(` Valid platforms: ${p.join(", ")}`)),console.log(""),process.exit(1));let n=u[e];console.log(""),console.log(o.bold.blue(` Verifying ${n.name}`)),console.log(o.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log("");let r=!0,l=m.join(t,n.configPath);if(d(l)?console.log(o.green(` [pass] Config file exists: ${n.configPath}`)):(console.log(o.red(` [fail] Config file missing: ${n.configPath}`)),r=!1),d(l)){let c=E(l,n.configFormat);c.valid?console.log(o.green(` [pass] Config file is valid ${n.configFormat.toUpperCase()}`)):(console.log(o.red(` [fail] Config file is invalid: ${c.error}`)),r=!1),I(l,n)?console.log(o.green(" [pass] Config contains agentic-qe entry")):(console.log(o.red(" [fail] Config does not contain agentic-qe entry")),r=!1)}let f=m.join(t,n.rulesPath);d(f)?console.log(o.green(` [pass] Rules file exists: ${n.rulesPath}`)):(console.log(o.red(` [fail] Rules file missing: ${n.rulesPath}`)),r=!1),console.log(""),r?console.log(o.green(` ${n.name} configuration is valid`)):(console.log(o.yellow(` ${n.name} configuration has issues`)),console.log(o.gray(` Run "aqe platform setup ${e}" to fix`))),console.log("")}),s}function R(s){return s.charAt(0).toUpperCase()+s.slice(1)}var V=j;export{j as createPlatformCommand,V as default};