agentic-qe 3.15.9 → 3.15.10

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 (568) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +251 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
  5. package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
  6. package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
  7. package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
  8. package/dist/adapters/ag-ui/json-patch.js +10 -6
  9. package/dist/audit/witness-chain.d.ts +1 -1
  10. package/dist/cli/bundle.js +6 -6
  11. package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
  12. package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
  13. package/dist/cli/chunks/{agent-handler-RIYHTHVZ.js → agent-handler-SVXSHEET.js} +2 -2
  14. package/dist/cli/chunks/{agent-memory-branch-WSUCUHOO.js → agent-memory-branch-WKQH36XL.js} +2 -2
  15. package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
  16. package/dist/cli/chunks/{arena-KRIBMIXX.js → arena-EKOOFVST.js} +2 -2
  17. package/dist/cli/chunks/{arena-YAJZX6MC.js → arena-OPS36NFZ.js} +4 -4
  18. package/dist/cli/chunks/{audit-7ZNOXWP3.js → audit-AO5NDZRI.js} +3 -3
  19. package/dist/cli/chunks/base-GTB6POYE.js +2 -0
  20. package/dist/cli/chunks/{better-sqlite3-ZQAT4I6H.js → better-sqlite3-TFLVEMMY.js} +2 -2
  21. package/dist/cli/chunks/{brain-handler-452WCPZC.js → brain-handler-ADBBJPYW.js} +3 -3
  22. package/dist/cli/chunks/{branch-enumerator-IJFXJRPN.js → branch-enumerator-HGHUYYL5.js} +2 -2
  23. package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
  24. package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
  25. package/dist/cli/chunks/{chunk-UOJBR4J3.js → chunk-2SXBBUM6.js} +2 -2
  26. package/dist/cli/chunks/{chunk-7JKB3Q7O.js → chunk-2T7RRL6G.js} +1 -1
  27. package/dist/cli/chunks/{chunk-HCYQHWI2.js → chunk-2XGVTYVX.js} +2 -2
  28. package/dist/cli/chunks/{chunk-3LYU7BLY.js → chunk-2ZI5FKSF.js} +2 -2
  29. package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
  30. package/dist/cli/chunks/{chunk-F3PQZX44.js → chunk-37OWRCUN.js} +1 -1
  31. package/dist/cli/chunks/{chunk-YRBBBUJX.js → chunk-3P34JFQH.js} +4 -4
  32. package/dist/cli/chunks/{chunk-ICP2ORGI.js → chunk-3Y7SPD72.js} +2 -2
  33. package/dist/cli/chunks/{chunk-WGDR2KIR.js → chunk-4G63WT4F.js} +2 -2
  34. package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
  35. package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
  36. package/dist/cli/chunks/{chunk-OXTFSIGN.js → chunk-5LPYV3TK.js} +1 -1
  37. package/dist/cli/chunks/{chunk-XWIUFYM3.js → chunk-62OAY5KJ.js} +1 -1
  38. package/dist/cli/chunks/{chunk-VCMINU7K.js → chunk-6C3II5OM.js} +2 -2
  39. package/dist/cli/chunks/{chunk-EFBLP43U.js → chunk-6GP6W46M.js} +2 -2
  40. package/dist/cli/chunks/{chunk-4JCY45KV.js → chunk-6KIL6CMD.js} +2 -2
  41. package/dist/cli/chunks/{chunk-CTZJUV5I.js → chunk-6MVVSSID.js} +1 -1
  42. package/dist/cli/chunks/{chunk-JEP4ULR6.js → chunk-6P7424AO.js} +2 -2
  43. package/dist/cli/chunks/{chunk-SVHUYVUR.js → chunk-6PX4OXQO.js} +2 -2
  44. package/dist/cli/chunks/{chunk-LEAKYZ37.js → chunk-6S3WJGUV.js} +2 -2
  45. package/dist/cli/chunks/{chunk-7X2Y727E.js → chunk-6TB6YOCZ.js} +1 -1
  46. package/dist/cli/chunks/{chunk-VU2EL424.js → chunk-6X5DHU6Q.js} +1 -1
  47. package/dist/cli/chunks/{chunk-DDPPSSHW.js → chunk-6XCMKIZN.js} +1 -1
  48. package/dist/cli/chunks/{chunk-ZANDSVCK.js → chunk-7LFZ4CHM.js} +2 -2
  49. package/dist/cli/chunks/{chunk-UYLYMWV5.js → chunk-7OZVZIBE.js} +2 -2
  50. package/dist/cli/chunks/{chunk-32UTLDNY.js → chunk-7PJIR4ST.js} +2 -2
  51. package/dist/cli/chunks/{chunk-DINZR5CF.js → chunk-7TB6FK4B.js} +1 -1
  52. package/dist/cli/chunks/{chunk-KVBEGOJE.js → chunk-7ZCDZHDB.js} +2 -2
  53. package/dist/cli/chunks/{chunk-55HRSNGN.js → chunk-A55QKKT2.js} +2 -2
  54. package/dist/cli/chunks/{chunk-LCJTEUDC.js → chunk-ABFFWZPC.js} +428 -433
  55. package/dist/cli/chunks/{chunk-PVIA2FPD.js → chunk-ACWFKES2.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2BA45H64.js → chunk-AH3ZD3NJ.js} +2 -2
  57. package/dist/cli/chunks/{chunk-OG2UI6A3.js → chunk-AI4VYSFS.js} +2 -2
  58. package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
  59. package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
  60. package/dist/cli/chunks/{chunk-TSYQDRNK.js → chunk-B6LTH6YV.js} +2 -2
  61. package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
  62. package/dist/cli/chunks/{chunk-OCESWNAZ.js → chunk-C522H7XR.js} +54 -33
  63. package/dist/cli/chunks/{chunk-TUYJ53V4.js → chunk-CESIR27V.js} +2 -2
  64. package/dist/cli/chunks/{chunk-PBZI2ZPV.js → chunk-CFBEBXLO.js} +3 -3
  65. package/dist/cli/chunks/{chunk-FJ4VTLLK.js → chunk-CMBLM26R.js} +2 -2
  66. package/dist/cli/chunks/{chunk-YZYDTABJ.js → chunk-CZ2IF6MC.js} +1 -1
  67. package/dist/cli/chunks/{chunk-GKPQ2GRR.js → chunk-CZGOSJQ4.js} +2 -2
  68. package/dist/cli/chunks/{chunk-FL3OYGCS.js → chunk-D6DA2KFD.js} +2 -2
  69. package/dist/cli/chunks/{chunk-37BIGMJI.js → chunk-DBMNJSBV.js} +1 -1
  70. package/dist/cli/chunks/{chunk-BHKXMIWX.js → chunk-DE4YJQJF.js} +2 -2
  71. package/dist/cli/chunks/{chunk-3CJCROMW.js → chunk-DEF34AFL.js} +2 -2
  72. package/dist/cli/chunks/chunk-DKAC3E3B.js +3 -0
  73. package/dist/cli/chunks/{chunk-AOFO4N32.js → chunk-DMFTELBS.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KLGYIEJK.js → chunk-DNRWGATA.js} +10 -10
  75. package/dist/cli/chunks/{chunk-JWGRWMZP.js → chunk-DT7SIJOA.js} +2 -2
  76. package/dist/cli/chunks/{chunk-6PXA2BQJ.js → chunk-DURHK377.js} +67 -67
  77. package/dist/cli/chunks/{chunk-HAROIAJE.js → chunk-EAU5KDFO.js} +1 -1
  78. package/dist/cli/chunks/{chunk-L42JPFCC.js → chunk-EDLFX4ZB.js} +2 -2
  79. package/dist/cli/chunks/{chunk-6OOYIO3W.js → chunk-EN2QSKFF.js} +2 -2
  80. package/dist/cli/chunks/{chunk-UNUTC6TX.js → chunk-ERQKYIP7.js} +2 -2
  81. package/dist/cli/chunks/{chunk-KFUUIAR4.js → chunk-ESUO3GTJ.js} +2 -2
  82. package/dist/cli/chunks/{chunk-4V27J6YN.js → chunk-EWFECZ2U.js} +2 -2
  83. package/dist/cli/chunks/{chunk-4W4DYVSH.js → chunk-FAUCT5KR.js} +3 -3
  84. package/dist/cli/chunks/{chunk-IFEIY3NQ.js → chunk-FB6TI3BH.js} +2 -2
  85. package/dist/cli/chunks/{chunk-2TDIS6YK.js → chunk-FBXTQNRH.js} +2 -2
  86. package/dist/cli/chunks/{chunk-XOLDMK23.js → chunk-FESZBPUB.js} +2 -2
  87. package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
  88. package/dist/cli/chunks/{chunk-A6YIH4C4.js → chunk-FKL3R5JQ.js} +2 -2
  89. package/dist/cli/chunks/{chunk-N5PDFGCQ.js → chunk-FPUDRSFJ.js} +2 -2
  90. package/dist/cli/chunks/{chunk-7QGYJ5OY.js → chunk-FZOWULMH.js} +1 -1
  91. package/dist/cli/chunks/{chunk-AVB5QY2Q.js → chunk-G3CZCUPM.js} +2 -2
  92. package/dist/cli/chunks/{chunk-FV3NHVC7.js → chunk-G5I6KGMW.js} +3 -3
  93. package/dist/cli/chunks/{chunk-N3KEY4XJ.js → chunk-GHBNRMSJ.js} +2 -2
  94. package/dist/cli/chunks/{chunk-2YH62JCN.js → chunk-GJHWY3ZX.js} +2 -2
  95. package/dist/cli/chunks/{chunk-ZXBCCO2H.js → chunk-GJMLK5UT.js} +2 -2
  96. package/dist/cli/chunks/{chunk-NHZIWIQZ.js → chunk-GRCIBCJ2.js} +2 -2
  97. package/dist/cli/chunks/{chunk-J3DTDJDT.js → chunk-GWZZ7DAO.js} +2 -2
  98. package/dist/cli/chunks/{chunk-4SUOVLJ6.js → chunk-GZLZCZ42.js} +2 -2
  99. package/dist/cli/chunks/{chunk-MZS32SYS.js → chunk-H2PYU7MN.js} +1 -1
  100. package/dist/cli/chunks/{chunk-ABFDB4X3.js → chunk-H32EPIR2.js} +1 -1
  101. package/dist/cli/chunks/{chunk-KIXYKUCI.js → chunk-H74Q7TJN.js} +1 -1
  102. package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
  103. package/dist/cli/chunks/{chunk-PMCRCEW5.js → chunk-I33O4BRQ.js} +2 -2
  104. package/dist/cli/chunks/{chunk-N3NP6PTT.js → chunk-IKISCIGH.js} +2 -2
  105. package/dist/cli/chunks/{chunk-Q3JVJRVJ.js → chunk-IPJ7Q3AJ.js} +1 -1
  106. package/dist/cli/chunks/{chunk-WRRCQ2UE.js → chunk-IU2IV4NE.js} +1 -1
  107. package/dist/cli/chunks/{chunk-QQ5SZH4D.js → chunk-JHIY4VCC.js} +2 -2
  108. package/dist/cli/chunks/{chunk-W32YU3VI.js → chunk-KG336OV3.js} +2 -2
  109. package/dist/cli/chunks/{chunk-W5VJRDDG.js → chunk-KI73QCR5.js} +2 -2
  110. package/dist/cli/chunks/{chunk-HGTWAZWU.js → chunk-KNQ2ERFX.js} +2 -2
  111. package/dist/cli/chunks/{chunk-SNBYYO6F.js → chunk-KOBVYY6H.js} +2 -2
  112. package/dist/cli/chunks/{chunk-VQHVHVSF.js → chunk-KSIWGGJI.js} +8 -8
  113. package/dist/cli/chunks/{chunk-REUFWGMA.js → chunk-LMS3Y7JD.js} +2 -2
  114. package/dist/cli/chunks/{chunk-LMU5DUDK.js → chunk-LQEURY7C.js} +1 -1
  115. package/dist/cli/chunks/{chunk-AJ4YDSOI.js → chunk-LRZY4KS2.js} +2 -2
  116. package/dist/cli/chunks/{chunk-KIKWJM6J.js → chunk-M2QV7PT7.js} +2 -2
  117. package/dist/cli/chunks/{chunk-TNMQVG4A.js → chunk-MA7JIQ6U.js} +2 -2
  118. package/dist/cli/chunks/{chunk-I6S35FRO.js → chunk-MG27QY4D.js} +2 -2
  119. package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
  120. package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
  121. package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
  122. package/dist/cli/chunks/{chunk-XOVNZT7F.js → chunk-NGKNYIQZ.js} +1 -1
  123. package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
  124. package/dist/cli/chunks/{chunk-ZVSLCEVC.js → chunk-NPPHWFA2.js} +3 -3
  125. package/dist/cli/chunks/{chunk-JNNZK7KH.js → chunk-NSHU347M.js} +1 -1
  126. package/dist/cli/chunks/{chunk-PX2B5TS2.js → chunk-NVYIZCSR.js} +2 -2
  127. package/dist/cli/chunks/{chunk-5NS3USRW.js → chunk-NW5JUCCG.js} +1 -1
  128. package/dist/cli/chunks/{chunk-KR3M44CF.js → chunk-NZYLNXT6.js} +3 -3
  129. package/dist/cli/chunks/{chunk-5D2I7JUP.js → chunk-OBAREPDC.js} +2 -2
  130. package/dist/cli/chunks/{chunk-F4JYIRW2.js → chunk-ODJNUMV3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-K5DJXMAA.js → chunk-OEKP73MC.js} +2 -2
  132. package/dist/cli/chunks/{chunk-2URBI52G.js → chunk-OPFGRS5S.js} +2 -2
  133. package/dist/cli/chunks/{chunk-HZ5NC6U5.js → chunk-OY2AHLSF.js} +1 -1
  134. package/dist/cli/chunks/{chunk-GII5WVAK.js → chunk-OY3NJNP2.js} +1 -1
  135. package/dist/cli/chunks/{chunk-P73W2K7T.js → chunk-PCEW6Q2C.js} +1 -1
  136. package/dist/cli/chunks/{chunk-7QTB5VJZ.js → chunk-PFG6VQ5Z.js} +2 -2
  137. package/dist/cli/chunks/{chunk-7KII4CQG.js → chunk-PGYMKGOE.js} +2 -2
  138. package/dist/cli/chunks/{chunk-BXO536GT.js → chunk-PPSAMXYN.js} +3 -3
  139. package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
  140. package/dist/cli/chunks/{chunk-ZBDRLF43.js → chunk-RPHY2DU6.js} +2 -2
  141. package/dist/cli/chunks/{chunk-XDBD4GXO.js → chunk-RWWOHCMG.js} +25 -20
  142. package/dist/cli/chunks/{chunk-J5KNRVXR.js → chunk-S75EYIJG.js} +1 -1
  143. package/dist/cli/chunks/{chunk-ETG7O5E5.js → chunk-SKQUUE4F.js} +5 -5
  144. package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
  145. package/dist/cli/chunks/{chunk-47V7FQGX.js → chunk-SU5H66SD.js} +2 -2
  146. package/dist/cli/chunks/{chunk-NTAD5UX4.js → chunk-SY2IB442.js} +2 -2
  147. package/dist/cli/chunks/{chunk-D6XVGFTI.js → chunk-TBLI254A.js} +2 -2
  148. package/dist/cli/chunks/{chunk-47TYABPD.js → chunk-TNMBRDCA.js} +3 -3
  149. package/dist/cli/chunks/{chunk-P2CXVNKK.js → chunk-TYFZXDGZ.js} +2 -2
  150. package/dist/cli/chunks/{chunk-2XITOPYV.js → chunk-U4OICXV2.js} +2 -2
  151. package/dist/cli/chunks/{chunk-JAV5WPSY.js → chunk-U53ZB4IX.js} +2 -2
  152. package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
  153. package/dist/cli/chunks/{chunk-2HL3UM5P.js → chunk-UCJMVXO4.js} +2 -2
  154. package/dist/cli/chunks/{chunk-HWK5L7IJ.js → chunk-UHTTW3IT.js} +2 -2
  155. package/dist/cli/chunks/{chunk-OXZLKP6C.js → chunk-V2M2XCR5.js} +1 -1
  156. package/dist/cli/chunks/{chunk-YZGSJG34.js → chunk-V2RSNVMW.js} +1 -1
  157. package/dist/cli/chunks/{chunk-5JWGCIQW.js → chunk-V6JBOIMX.js} +1 -1
  158. package/dist/cli/chunks/{chunk-JUVHZG7I.js → chunk-VFKF2XO7.js} +1 -1
  159. package/dist/cli/chunks/{chunk-XQ3DDY7X.js → chunk-VFSYMOAL.js} +2 -2
  160. package/dist/cli/chunks/{chunk-V5PXQSFS.js → chunk-VJQYDYAJ.js} +2 -2
  161. package/dist/cli/chunks/{chunk-A4RU67VX.js → chunk-VKRTTFB6.js} +2 -2
  162. package/dist/cli/chunks/{chunk-H3KBIWTO.js → chunk-VWNFAW2M.js} +2 -2
  163. package/dist/cli/chunks/{chunk-72AMFDC7.js → chunk-WBM6N6IM.js} +1 -1
  164. package/dist/cli/chunks/{chunk-XUIA5KMS.js → chunk-WDQ7IEZY.js} +2 -2
  165. package/dist/cli/chunks/{chunk-FLASM2XB.js → chunk-WDVRE6GN.js} +2 -2
  166. package/dist/cli/chunks/{chunk-FV7VAG74.js → chunk-WQ4PYWSW.js} +1 -1
  167. package/dist/cli/chunks/{chunk-DGTLJNJH.js → chunk-WSF24I3D.js} +2 -2
  168. package/dist/cli/chunks/{chunk-6YL6JOQB.js → chunk-XBVUVFJK.js} +2 -2
  169. package/dist/cli/chunks/{chunk-VRGCKBF7.js → chunk-XEB3NLJR.js} +2 -2
  170. package/dist/cli/chunks/{chunk-XYCKHYBM.js → chunk-XFVTGAAJ.js} +2 -2
  171. package/dist/cli/chunks/{chunk-2I2UPJS7.js → chunk-XLZYRTNO.js} +2 -2
  172. package/dist/cli/chunks/{chunk-AR2E4B7K.js → chunk-XUZDBQ5X.js} +5 -5
  173. package/dist/cli/chunks/{chunk-AQTVVLNP.js → chunk-Y76IAYQD.js} +1 -1
  174. package/dist/cli/chunks/{chunk-UOWHE77F.js → chunk-YAKGBHO4.js} +2 -2
  175. package/dist/cli/chunks/{chunk-JK2ME6IT.js → chunk-YBSBABOS.js} +2 -2
  176. package/dist/cli/chunks/{chunk-NDKLQW6N.js → chunk-YCGP5VFP.js} +2 -2
  177. package/dist/cli/chunks/{chunk-GBUIG3FS.js → chunk-YDAQK5UF.js} +1 -1
  178. package/dist/cli/chunks/{chunk-HTZJSQ3C.js → chunk-YK3BVZY6.js} +2 -2
  179. package/dist/cli/chunks/{chunk-GCWSX2NY.js → chunk-YK7JN5N7.js} +4 -4
  180. package/dist/cli/chunks/{chunk-C6RTMTEH.js → chunk-YKMU4LBV.js} +1 -1
  181. package/dist/cli/chunks/{chunk-JP4P3P3D.js → chunk-YYTGXD3R.js} +2 -2
  182. package/dist/cli/chunks/{chunk-763SUL4B.js → chunk-Z2O2YJAF.js} +2 -2
  183. package/dist/cli/chunks/{chunk-QTVWUQTB.js → chunk-Z7IYW5U7.js} +1 -1
  184. package/dist/cli/chunks/{chunk-XZJ2O3VC.js → chunk-ZG5666GJ.js} +1 -1
  185. package/dist/cli/chunks/{chunk-6EPHNJTL.js → chunk-ZXPY654C.js} +1 -1
  186. package/dist/cli/chunks/{ci-7SGRCFPS.js → ci-MSKMVH5X.js} +2 -2
  187. package/dist/cli/chunks/{ci-config-MX3URPZA.js → ci-config-7ODMNAUM.js} +2 -2
  188. package/dist/cli/chunks/{ci-output-M47NJY6D.js → ci-output-FXZ7ZZW3.js} +2 -2
  189. package/dist/cli/chunks/{circuit-breaker-5GAK45SW.js → circuit-breaker-4VOUEPOX.js} +2 -2
  190. package/dist/cli/chunks/{claude-flow-setup-YXYSRH4Y.js → claude-flow-setup-7D4SGLM4.js} +2 -2
  191. package/dist/cli/chunks/client-POSVREVS.js +2 -0
  192. package/dist/cli/chunks/{cline-installer-DLJ5QD5N.js → cline-installer-WRRT7BGQ.js} +2 -2
  193. package/dist/cli/chunks/{code-ONKLMVQ2.js → code-ZDJRIL3S.js} +3 -3
  194. package/dist/cli/chunks/{code-index-extractor-2232LGZN.js → code-index-extractor-4S4SHM56.js} +2 -2
  195. package/dist/cli/chunks/{codex-installer-UOWLYCMH.js → codex-installer-YTRHNDWR.js} +2 -2
  196. package/dist/cli/chunks/{completions-MHX7GCC7.js → completions-6N64JUXJ.js} +2 -2
  197. package/dist/cli/chunks/{complexity-analyzer-43ZUJKZU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
  198. package/dist/cli/chunks/{continuedev-installer-6Q5JR4FF.js → continuedev-installer-IIDR66LB.js} +2 -2
  199. package/dist/cli/chunks/{copilot-installer-CZUMVHSI.js → copilot-installer-SVVFY3S2.js} +2 -2
  200. package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
  201. package/dist/cli/chunks/{cost-tracker-VS5ZW3XN.js → cost-tracker-VGFS6IBX.js} +2 -2
  202. package/dist/cli/chunks/{coverage-VWKTWZ6D.js → coverage-B7MCGNTE.js} +3 -3
  203. package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
  204. package/dist/cli/chunks/{cursor-installer-YIFEMORH.js → cursor-installer-UPETT57E.js} +2 -2
  205. package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
  206. package/dist/cli/chunks/{daemon-SHWJSJW5.js → daemon-CQFNZLXU.js} +3 -3
  207. package/dist/cli/chunks/{dag-attention-scheduler-TCC2WM46.js → dag-attention-scheduler-PJVABHON.js} +2 -2
  208. package/dist/cli/chunks/{detect-IGTWSQMA.js → detect-56SKAGWX.js} +2 -2
  209. package/dist/cli/chunks/{dist-node-TCOTJVQX.js → dist-node-UYTYUMLN.js} +2 -2
  210. package/dist/cli/chunks/{domain-handler-55ZVYODR.js → domain-handler-YOYLBYJE.js} +2 -2
  211. package/dist/cli/chunks/{domain-plugins-GJRWOHQP.js → domain-plugins-7TARX2XF.js} +2 -2
  212. package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
  213. package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
  214. package/dist/cli/chunks/{embed-and-insert-pattern-XAMNIKQL.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
  215. package/dist/cli/chunks/{eval-GO22R4OZ.js → eval-GNB574IM.js} +2 -2
  216. package/dist/cli/chunks/{experience-capture-middleware-F2BRMJ3Y.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
  217. package/dist/cli/chunks/{fast-paths-6RGPYALD.js → fast-paths-KTZ5SF54.js} +2 -2
  218. package/dist/cli/chunks/{feature-flags-ZGS3KLPH.js → feature-flags-ITX5LQ57.js} +2 -2
  219. package/dist/cli/chunks/{feature-flags-MIWQIOHU.js → feature-flags-KFHSR5YF.js} +2 -2
  220. package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
  221. package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
  222. package/dist/cli/chunks/{gnn-wrapper-ALBJVW6T.js → gnn-wrapper-RLFW3GSX.js} +2 -2
  223. package/dist/cli/chunks/{heartbeat-handler-ZMM53NDY.js → heartbeat-handler-EM2URCYZ.js} +4 -4
  224. package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
  225. package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
  226. package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
  227. package/dist/cli/chunks/{hnsw-legacy-bridge-RYUJPA7B.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
  228. package/dist/cli/chunks/{hnswlib-node-XM6XF3YV.js → hnswlib-node-CBP73QHY.js} +2 -2
  229. package/dist/cli/chunks/{hooks-X62O7TJO.js → hooks-IP7XE34Z.js} +34 -34
  230. package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
  231. package/dist/cli/chunks/{hypergraph-engine-ZBWUPTVD.js → hypergraph-engine-ONAYHU25.js} +2 -2
  232. package/dist/cli/chunks/{hypergraph-handler-DUMF6SJV.js → hypergraph-handler-VINJRAID.js} +3 -3
  233. package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
  234. package/dist/cli/chunks/{init-guard-S4I2R46S.js → init-guard-RYVV5R3Z.js} +2 -2
  235. package/dist/cli/chunks/{init-handler-L4KJHVWS.js → init-handler-MPRGWMOE.js} +6 -6
  236. package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
  237. package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
  238. package/dist/cli/chunks/{kilocode-installer-GNNB5FCZ.js → kilocode-installer-OPD7JBRL.js} +2 -2
  239. package/dist/cli/chunks/{kiro-installer-HR6ZAH7T.js → kiro-installer-M4OPUNK2.js} +2 -2
  240. package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
  241. package/dist/cli/chunks/{learning-4IEEOHJS.js → learning-4UWTQLMF.js} +24 -24
  242. package/dist/cli/chunks/{llm-router-ZFMORP36.js → llm-router-SQ56FF6Z.js} +4 -4
  243. package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
  244. package/dist/cli/chunks/{load-ZM43WGDO.js → load-HPHKDGGL.js} +2 -2
  245. package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
  246. package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
  247. package/dist/cli/chunks/{memory-W5FZGVAD.js → memory-PFQ3KPVJ.js} +5 -5
  248. package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
  249. package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
  250. package/dist/cli/chunks/{multi-model-executor-SXXGAQ2G.js → multi-model-executor-3VDRX6TZ.js} +2 -2
  251. package/dist/cli/chunks/{opencode-installer-PIRBUAB5.js → opencode-installer-PJ576R63.js} +2 -2
  252. package/dist/cli/chunks/{orchestrator-H5SQCQTB.js → orchestrator-72QP4UU7.js} +63 -19
  253. package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
  254. package/dist/cli/chunks/{pattern-usage-recorder-XZTWDI2T.js → pattern-usage-recorder-754YQW7C.js} +2 -2
  255. package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
  256. package/dist/cli/chunks/{platform-KJDABL5C.js → platform-3E3DXLYB.js} +2 -2
  257. package/dist/cli/chunks/{plugin-V4KSBVVM.js → plugin-7FUQAKRE.js} +2 -2
  258. package/dist/cli/chunks/{prime-radiant-advanced-wasm-JDHTKQAT.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
  259. package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
  260. package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
  261. package/dist/cli/chunks/{protocol-handler-BNRONTQV.js → protocol-handler-BQRYMUTG.js} +2 -2
  262. package/dist/cli/chunks/{prove-ELLL6XMX.js → prove-H52QGC6B.js} +2 -2
  263. package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
  264. package/dist/cli/chunks/{quality-NH2QA4D4.js → quality-QO4XPAUM.js} +2 -2
  265. package/dist/cli/chunks/{quality-gate-JTKLF7GW.js → quality-gate-FBKE5E6F.js} +3 -3
  266. package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
  267. package/dist/cli/chunks/{real-embeddings-J3KCKLPB.js → real-embeddings-RWGOVOXO.js} +2 -2
  268. package/dist/cli/chunks/{ref-validation-HNXQRP4F.js → ref-validation-LF76ZOBD.js} +2 -2
  269. package/dist/cli/chunks/{roocode-installer-COJ6CX6S.js → roocode-installer-3BYEBTQ7.js} +2 -2
  270. package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
  271. package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
  272. package/dist/cli/chunks/{routing-handler-WM33ZILE.js → routing-handler-DST7BVCU.js} +2 -2
  273. package/dist/cli/chunks/{ruvector-commands-BBLXEA7A.js → ruvector-commands-XE32PGKC.js} +2 -2
  274. package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
  275. package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
  276. package/dist/cli/chunks/{rvf-migration-coordinator-P7H6HCAG.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
  277. package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
  278. package/dist/cli/chunks/{rvf-store-integrity-R5SPVRFP.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
  279. package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
  280. package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
  281. package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
  282. package/dist/cli/chunks/{security-AUDTRX3I.js → security-VSPNKCDS.js} +3 -3
  283. package/dist/cli/chunks/{shared-rvf-adapter-PVDGBGI2.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
  284. package/dist/cli/chunks/{shared-rvf-dual-writer-LZ2GMSS2.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
  285. package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
  286. package/dist/cli/chunks/{standalone-memory-XNOAI4G4.js → standalone-memory-O4QUTK6L.js} +2 -2
  287. package/dist/cli/chunks/{status-handler-K72XZE4T.js → status-handler-Z2BP6EOG.js} +2 -2
  288. package/dist/cli/chunks/{structural-health-NF3YY7U5.js → structural-health-R36WNLQG.js} +2 -2
  289. package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
  290. package/dist/cli/chunks/{sync-VBD5Y3E2.js → sync-QF5Y3EMZ.js} +2 -2
  291. package/dist/cli/chunks/{task-handler-24S3WFVJ.js → task-handler-43PYE75J.js} +2 -2
  292. package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
  293. package/dist/cli/chunks/{test-XFSGQELD.js → test-UWA377D4.js} +16 -16
  294. package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
  295. package/dist/cli/chunks/{test-scheduling-VYUQ4CDE.js → test-scheduling-YQZPJRRN.js} +3 -3
  296. package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
  297. package/dist/cli/chunks/{token-usage-VLQ6WO2L.js → token-usage-DO6WLMXP.js} +2 -2
  298. package/dist/cli/chunks/{transformers-TOFMWWNM.js → transformers-H5RGFKVO.js} +2 -2
  299. package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
  300. package/dist/cli/chunks/{types-JTWLBAZJ.js → types-PJS2FGPF.js} +2 -2
  301. package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
  302. package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
  303. package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
  304. package/dist/cli/chunks/{upgrade-4ABM72T4.js → upgrade-4IC4F6AB.js} +2 -2
  305. package/dist/cli/chunks/{validate-UDJCWKXI.js → validate-DHUWW7PF.js} +2 -2
  306. package/dist/cli/chunks/{validate-swarm-TODOUWNN.js → validate-swarm-OERQNOX5.js} +2 -2
  307. package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
  308. package/dist/cli/chunks/{web-tree-sitter-WBMAJPM5.js → web-tree-sitter-TV7DMKES.js} +2 -2
  309. package/dist/cli/chunks/{windsurf-installer-BTT53TUL.js → windsurf-installer-QZPWSH37.js} +2 -2
  310. package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
  311. package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
  312. package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
  313. package/dist/cli/chunks/{witness-chain-verifier-FRY3LMGH.js → witness-chain-verifier-YXENHB42.js} +2 -2
  314. package/dist/cli/chunks/{witness-key-manager-X7QHQQWL.js → witness-key-manager-HL26AGFO.js} +2 -2
  315. package/dist/cli/chunks/{workflow-QMZPAWQW.js → workflow-EOVVCN2E.js} +4 -4
  316. package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
  317. package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
  318. package/dist/cli/commands/fleet.js +19 -12
  319. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
  320. package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
  321. package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
  322. package/dist/cli/commands/learning.js +5 -3
  323. package/dist/cli/commands/ruvector-commands.js +2 -1
  324. package/dist/cli/commands/test.js +6 -0
  325. package/dist/cli/utils/ci-output.d.ts +9 -0
  326. package/dist/cli/utils/fleet-operation.d.ts +32 -0
  327. package/dist/cli/utils/fleet-operation.js +71 -0
  328. package/dist/cli/utils/fleet-result.d.ts +31 -0
  329. package/dist/cli/utils/fleet-result.js +124 -0
  330. package/dist/context/sources/git-source.js +6 -2
  331. package/dist/coordination/handlers/code-intelligence-handlers.js +60 -5
  332. package/dist/coordination/handlers/coverage-handlers.js +10 -1
  333. package/dist/coordination/handlers/requirements-handlers.js +16 -2
  334. package/dist/coordination/handlers/security-handlers.js +11 -1
  335. package/dist/coordination/handlers/test-execution-handlers.js +25 -7
  336. package/dist/coordination/mincut/queen-integration.d.ts +39 -1
  337. package/dist/coordination/mincut/queen-integration.js +83 -6
  338. package/dist/coordination/protocols/learning-consolidation-archive.d.ts +2 -6
  339. package/dist/coordination/protocols/learning-consolidation-archive.js +4 -27
  340. package/dist/coordination/protocols/learning-consolidation.d.ts +24 -0
  341. package/dist/coordination/protocols/learning-consolidation.js +71 -22
  342. package/dist/coordination/queen-coordinator.d.ts +1 -1
  343. package/dist/coordination/queen-coordinator.js +19 -7
  344. package/dist/coordination/queen-event-handlers.js +13 -0
  345. package/dist/coordination/queen-task-management.d.ts +18 -24
  346. package/dist/coordination/queen-task-management.js +62 -168
  347. package/dist/coordination/queen-task-queue.d.ts +41 -0
  348. package/dist/coordination/queen-task-queue.js +194 -0
  349. package/dist/coordination/queen-types.d.ts +1 -1
  350. package/dist/coordination/queen-work-stealing.d.ts +6 -1
  351. package/dist/coordination/queen-work-stealing.js +7 -4
  352. package/dist/coordination/result-saver-adapters.d.ts +15 -0
  353. package/dist/coordination/result-saver-adapters.js +57 -0
  354. package/dist/coordination/result-saver.d.ts +1 -1
  355. package/dist/coordination/result-saver.js +8 -5
  356. package/dist/coordination/yaml-pipeline-loader.js +5 -2
  357. package/dist/domains/code-intelligence/index-path-guard.d.ts +5 -2
  358. package/dist/domains/code-intelligence/index-path-guard.js +20 -50
  359. package/dist/domains/code-intelligence/plugin.js +5 -1
  360. package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
  361. package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
  362. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
  363. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
  364. package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
  365. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
  366. package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
  367. package/dist/domains/contract-testing/services/contract-validator.js +6 -4
  368. package/dist/domains/contract-testing/services/schema-validator.js +8 -5
  369. package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
  370. package/dist/domains/defect-intelligence/plugin.js +11 -2
  371. package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
  372. package/dist/domains/defect-intelligence/prediction-history.js +68 -0
  373. package/dist/domains/defect-intelligence/services/defect-predictor.js +25 -10
  374. package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
  375. package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
  376. package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
  377. package/dist/domains/learning-optimization/active-patterns.d.ts +2 -2
  378. package/dist/domains/learning-optimization/active-patterns.js +2 -2
  379. package/dist/domains/learning-optimization/coordinator.js +9 -5
  380. package/dist/domains/learning-optimization/interfaces.d.ts +6 -2
  381. package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
  382. package/dist/domains/learning-optimization/pattern-archive.js +56 -0
  383. package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
  384. package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
  385. package/dist/domains/learning-optimization/reward-source.d.ts +13 -0
  386. package/dist/domains/learning-optimization/reward-source.js +8 -1
  387. package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +5 -3
  388. package/dist/domains/learning-optimization/services/learning-coordinator.js +45 -58
  389. package/dist/domains/security-compliance/plugin.js +17 -3
  390. package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
  391. package/dist/domains/security-compliance/sast-path-guard.js +17 -0
  392. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
  393. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
  394. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
  395. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
  396. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
  397. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
  398. package/dist/domains/test-execution/coordinator.d.ts +5 -0
  399. package/dist/domains/test-execution/coordinator.js +35 -20
  400. package/dist/domains/test-execution/interfaces.d.ts +25 -0
  401. package/dist/domains/test-execution/plugin.js +19 -4
  402. package/dist/domains/test-execution/services/flaky-detector.js +9 -7
  403. package/dist/domains/test-execution/services/retry-handler.js +46 -7
  404. package/dist/domains/test-execution/services/runner-test-cases.d.ts +11 -0
  405. package/dist/domains/test-execution/services/runner-test-cases.js +20 -2
  406. package/dist/domains/test-execution/services/test-executor.js +8 -8
  407. package/dist/domains/test-generation/plugin.js +7 -2
  408. package/dist/domains/test-generation/services/test-data-generator.js +3 -1
  409. package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
  410. package/dist/hooks/cross-phase-hooks.js +2 -1
  411. package/dist/init/phases/10-workers.js +50 -6
  412. package/dist/integrations/browser/agent-browser/client.js +37 -52
  413. package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
  414. package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
  415. package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
  416. package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
  417. package/dist/integrations/browser/web-content-fetcher.js +9 -3
  418. package/dist/integrations/vibium/client.js +2 -2
  419. package/dist/integrations/vibium/runtime.d.ts +1 -1
  420. package/dist/integrations/vibium/runtime.js +14 -11
  421. package/dist/kernel/unified-memory-schemas.d.ts +3 -2
  422. package/dist/kernel/unified-memory-schemas.js +3 -2
  423. package/dist/kernel/unified-memory.js +25 -6
  424. package/dist/learning/dream/dream-commit.d.ts +65 -0
  425. package/dist/learning/dream/dream-commit.js +104 -0
  426. package/dist/learning/dream/dream-engine.d.ts +81 -31
  427. package/dist/learning/dream/dream-engine.js +225 -168
  428. package/dist/learning/dream/dream-insights-pruner.d.ts +9 -3
  429. package/dist/learning/dream/dream-insights-pruner.js +16 -30
  430. package/dist/learning/dream/index.d.ts +3 -2
  431. package/dist/learning/dream/index.js +3 -1
  432. package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
  433. package/dist/learning/dream/rvcow-branch-manager.js +8 -1
  434. package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
  435. package/dist/learning/dream/speculative-dreamer.js +64 -111
  436. package/dist/learning/dream/spreading-activation.d.ts +2 -1
  437. package/dist/learning/dream/spreading-activation.js +15 -6
  438. package/dist/learning/experience-capture.d.ts +9 -0
  439. package/dist/learning/experience-capture.js +18 -4
  440. package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
  441. package/dist/learning/qe-reasoning-bank.js +22 -11
  442. package/dist/learning/sqlite-persistence.d.ts +6 -0
  443. package/dist/learning/sqlite-persistence.js +16 -2
  444. package/dist/learning/usage-outcome.d.ts +68 -0
  445. package/dist/learning/usage-outcome.js +84 -0
  446. package/dist/mcp/background-workers.d.ts +13 -1
  447. package/dist/mcp/background-workers.js +17 -3
  448. package/dist/mcp/bundle.js +607 -580
  449. package/dist/mcp/handlers/core-handlers.js +11 -0
  450. package/dist/mcp/handlers/domain-handler-configs.d.ts +5 -0
  451. package/dist/mcp/handlers/domain-handler-configs.js +11 -3
  452. package/dist/mcp/handlers/handler-factory.d.ts +2 -1
  453. package/dist/mcp/handlers/handler-factory.js +36 -15
  454. package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
  455. package/dist/mcp/handlers/orchestrate-routes.js +88 -0
  456. package/dist/mcp/handlers/task-handlers.d.ts +3 -0
  457. package/dist/mcp/handlers/task-handlers.js +35 -8
  458. package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
  459. package/dist/mcp/protocol-server.js +2 -0
  460. package/dist/mcp/security/schema-validator.js +3 -2
  461. package/dist/mcp/tools/code-intelligence/c4.js +11 -1
  462. package/dist/mcp/tools/coverage-analysis/index.js +31 -2
  463. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
  464. package/dist/mcp/tools/learning-optimization/dream.js +38 -34
  465. package/dist/mcp/tools/learning-optimization/optimize.d.ts +18 -2
  466. package/dist/mcp/tools/learning-optimization/optimize.js +58 -10
  467. package/dist/mcp/tools/quality-assessment/gate.js +12 -1
  468. package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -2
  469. package/dist/migration/agent-compat.js +7 -5
  470. package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
  471. package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
  472. package/dist/shared/git/git-analyzer.d.ts +49 -0
  473. package/dist/shared/git/git-analyzer.js +159 -319
  474. package/dist/shared/git/git-process.d.ts +22 -0
  475. package/dist/shared/git/git-process.js +37 -0
  476. package/dist/shared/git/index.d.ts +1 -0
  477. package/dist/shared/git/index.js +1 -0
  478. package/dist/shared/io/payload-path-guard.d.ts +75 -0
  479. package/dist/shared/io/payload-path-guard.js +190 -0
  480. package/dist/shared/llm/router/agent-router-config.js +2 -1
  481. package/dist/shared/llm/translation/tool-translator.js +2 -1
  482. package/dist/shared/test-runner-args.d.ts +5 -0
  483. package/dist/shared/test-runner-args.js +6 -1
  484. package/dist/shared/test-runner-process.d.ts +6 -0
  485. package/dist/shared/test-runner-process.js +14 -0
  486. package/dist/shared/test-runner-verdict.d.ts +9 -1
  487. package/dist/shared/test-runner-verdict.js +15 -4
  488. package/dist/shared/utils/namespaced-search.d.ts +14 -0
  489. package/dist/shared/utils/namespaced-search.js +19 -1
  490. package/dist/shared/utils/safe-expression-evaluator.js +4 -3
  491. package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
  492. package/dist/validation/gate-reexecute.js +7 -4
  493. package/dist/workers/daemon.js +13 -1
  494. package/dist/workers/quality-daemon/git-watcher.js +9 -9
  495. package/dist/workers/workers/defect-predictor.d.ts +8 -3
  496. package/dist/workers/workers/defect-predictor.js +48 -49
  497. package/dist/workers/workers/learning-consolidation.d.ts +2 -0
  498. package/dist/workers/workers/learning-consolidation.js +12 -1
  499. package/dist/workflows/browser/workflow-loader.js +8 -5
  500. package/package.json +1 -1
  501. package/dist/cli/chunks/adapter-R2Q4QGXQ.js +0 -2
  502. package/dist/cli/chunks/agent-booster-wasm-427FRKWG.js +0 -2
  503. package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +0 -2
  504. package/dist/cli/chunks/base-67DXSAYM.js +0 -2
  505. package/dist/cli/chunks/browser-CT3MTV6G.js +0 -4
  506. package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +0 -2
  507. package/dist/cli/chunks/chunk-4URT6JO2.js +0 -2
  508. package/dist/cli/chunks/chunk-5LAAZLUC.js +0 -4
  509. package/dist/cli/chunks/chunk-7DMA5NYL.js +0 -4
  510. package/dist/cli/chunks/chunk-F2SQPP6U.js +0 -4
  511. package/dist/cli/chunks/chunk-G3BKZNFL.js +0 -120
  512. package/dist/cli/chunks/chunk-GR3JYE5A.js +0 -2
  513. package/dist/cli/chunks/chunk-J3WGK22W.js +0 -2
  514. package/dist/cli/chunks/chunk-KHSRIPBP.js +0 -180
  515. package/dist/cli/chunks/chunk-KTSLTZSG.js +0 -2
  516. package/dist/cli/chunks/chunk-O3JLOVZX.js +0 -4
  517. package/dist/cli/chunks/chunk-THAY7WHO.js +0 -12
  518. package/dist/cli/chunks/chunk-VXZJOKOX.js +0 -2
  519. package/dist/cli/chunks/chunk-VYLM2YV5.js +0 -12
  520. package/dist/cli/chunks/client-ZP3CTVRF.js +0 -2
  521. package/dist/cli/chunks/core-handlers-JSRXQWPE.js +0 -2
  522. package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +0 -2
  523. package/dist/cli/chunks/daemon-YIFT46FH.js +0 -34
  524. package/dist/cli/chunks/domain-transfer-6EF75EKU.js +0 -2
  525. package/dist/cli/chunks/dream-UDLM6M55.js +0 -2
  526. package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +0 -2
  527. package/dist/cli/chunks/fleet-ADL57COA.js +0 -44
  528. package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +0 -2
  529. package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +0 -2
  530. package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +0 -2
  531. package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +0 -2
  532. package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +0 -2
  533. package/dist/cli/chunks/init-wizard-422UZYQ5.js +0 -2
  534. package/dist/cli/chunks/kernel-N7PJ6FCE.js +0 -2
  535. package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +0 -2
  536. package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +0 -2
  537. package/dist/cli/chunks/load-test-POMIF4Q4.js +0 -2
  538. package/dist/cli/chunks/mcp-CRZKZE37.js +0 -2
  539. package/dist/cli/chunks/memory-backend-4P6AHSOY.js +0 -2
  540. package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +0 -2
  541. package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +0 -2
  542. package/dist/cli/chunks/pipeline-5LMLBIJ7.js +0 -19
  543. package/dist/cli/chunks/project-root-X72FSM2F.js +0 -2
  544. package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +0 -2
  545. package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +0 -2
  546. package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +0 -2
  547. package/dist/cli/chunks/router-CXZKOOTR.js +0 -2
  548. package/dist/cli/chunks/routing-feedback-IYFANYY5.js +0 -2
  549. package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +0 -2
  550. package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +0 -2
  551. package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +0 -2
  552. package/dist/cli/chunks/safe-db-WFODRGVZ.js +0 -2
  553. package/dist/cli/chunks/schedule-RO55OQXG.js +0 -2
  554. package/dist/cli/chunks/scheduler-XXMJCH24.js +0 -2
  555. package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +0 -2
  556. package/dist/cli/chunks/sync-UVXA6CT2.js +0 -2
  557. package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +0 -9
  558. package/dist/cli/chunks/token-bootstrap-EDK6FNQ3.js +0 -2
  559. package/dist/cli/chunks/tree-sitter-wasm-parser-MI3NZKUD.js +0 -2
  560. package/dist/cli/chunks/unified-memory-6JWHV6EF.js +0 -2
  561. package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +0 -2
  562. package/dist/cli/chunks/unified-persistence-KGGNA46H.js +0 -2
  563. package/dist/cli/chunks/visual-security-6VZNQLH7.js +0 -2
  564. package/dist/cli/chunks/witness-chain-AKKHWEWU.js +0 -2
  565. package/dist/cli/chunks/witness-chain-TATPXQRK.js +0 -2
  566. package/dist/cli/chunks/witness-chain-repair-2HGJGE7O.js +0 -2
  567. package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +0 -2
  568. package/dist/cli/chunks/wrappers-ZD5NBHYI.js +0 -2
@@ -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.15.9");process.exit(0)}
2
- import{a as k,b as v}from"./chunk-FL3OYGCS.js";import{a as b}from"./chunk-JNNZK7KH.js";import{a as y,e as E}from"./chunk-N3KEY4XJ.js";import"./chunk-H3KBIWTO.js";import"./chunk-HZ5NC6U5.js";import{Option as I}from"commander";import o from"chalk";import{createRequire as P}from"node:module";E();var M="--no-mcp and --with-mcp cannot be combined: --no-mcp skips the .mcp.json entry, --with-mcp forces it";function h(a,e){return a===!1||e===!0}function f(a){let e={noMcp:h(a.mcp,a.noMcp),withMcp:a.withMcp===!0,noGovernance:h(a.governance,a.noGovernance),noClaude:h(a.claude,a.noClaude),noStatusLine:h(a.statusline,a.noStatusLine),noDatabase:a.database===!1};if(e.noMcp&&e.withMcp)throw new Error(M);return e}var C=class{name="init";description="Initialize the AQE v3 system";cleanupAndExit;originalStdoutWrite=null;constructor(e){this.cleanupAndExit=e}register(e,n){e.command("init").description(this.description).option("-d, --domains <domains>","Comma-separated list of domains to enable","all").option("-m, --max-agents <number>","Maximum concurrent agents","15").option("--memory <backend>",'Memory backend (sqlite|agentdb|hybrid|memory). "memory" = database-free, in-memory only.',"hybrid").option("--no-database","Database-free install: alias for `--memory memory`. Skips the SQLite database phase and runs any MCP server in-memory \u2014 nothing is written to .agentic-qe/.").option("--no-statusline","Do not install AQE's Claude Code status line; remove an existing AQE-owned status line while preserving custom ones").option("--lazy","Enable lazy loading of domains").option("--wizard","Run interactive setup wizard").option("--auto","Auto-configure based on project analysis").option("-u, --upgrade","Upgrade existing installation (overwrite skills, agents, validation)").option("--browser-engine","Install optional Vibium and browser payload (explicit download)",!1).option("--no-browser-engine","Skip optional browser setup (default)").option("--minimal","Minimal configuration (skip optional features)").option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-index","Skip code intelligence pre-scan (supported escape hatch \u2014 KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)").option("--json","Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.").option("--with-n8n","Install n8n workflow testing agents and skills").option("--with-opencode","Include OpenCode agent/skill provisioning").option("--with-kiro","Include AWS Kiro IDE integration (agents, skills, hooks, steering)").option("--with-copilot","Include GitHub Copilot MCP config and instructions").option("--with-cursor","Include Cursor MCP config and rules").option("--with-cline","Include Cline MCP config and custom QE mode").option("--with-kilocode","Include Kilo Code MCP config and custom QE mode").option("--with-roocode","Include Roo Code MCP config and custom QE mode").option("--with-codex","Include OpenAI Codex CLI MCP, AGENTS.md, hooks, and QE skills").addOption(new I("--codex-guidance <mode>","Codex AGENTS.md guidance policy").choices(["full","compact","none"]).default("full")).option("--with-ruflo","Add optional Ruflo guidance and lifecycle hooks to the Codex setup").option("--with-windsurf","Include Windsurf MCP config and rules").option("--with-continuedev","Include Continue.dev MCP config and rules").option("--no-mcp","Skip MCP server config (MCP is enabled by default). Cannot be combined with --with-mcp").addOption(new I("--with-mcp","Write the project .mcp.json agentic-qe entry even when the agentic-qe-fleet Claude Code plugin already provides the AQE MCP server (#922). Cannot be combined with --no-mcp").conflicts("mcp")).option("--with-all-platforms","Include all coding agent platform configurations").option("--auto-migrate","Automatically migrate from v2 if detected").option("--with-claude-flow","Force Claude Flow integration setup").option("--skip-claude-flow","Skip Claude Flow integration").option("--no-governance","Skip governance configuration (ADR-058)").option("--no-claude","Suppress the default Claude Code surface (.claude/, .mcp.json, CLAUDE.md, governance, hooks) so --with-<platform> flags are the only install targets (#532)").option("--modular","Use new modular init system (default for --auto)").action(async i=>{await this.execute(i,n)})}async execute(e,n){if(e.json===!0){this.originalStdoutWrite=process.stdout.write.bind(process.stdout);let i=process.stderr.write.bind(process.stderr);process.stdout.write=((...s)=>i(...s))}try{let i=k(),s=v(i,!!process.env.AQE_PROJECT_ROOT);if(s){console.error(o.red(`
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.15.10");process.exit(0)}
2
+ import{a as k,b as v}from"./chunk-D6DA2KFD.js";import{a as b}from"./chunk-NSHU347M.js";import{a as y,e as E}from"./chunk-GHBNRMSJ.js";import"./chunk-VWNFAW2M.js";import"./chunk-OY2AHLSF.js";import{Option as I}from"commander";import o from"chalk";import{createRequire as P}from"node:module";E();var M="--no-mcp and --with-mcp cannot be combined: --no-mcp skips the .mcp.json entry, --with-mcp forces it";function h(a,e){return a===!1||e===!0}function f(a){let e={noMcp:h(a.mcp,a.noMcp),withMcp:a.withMcp===!0,noGovernance:h(a.governance,a.noGovernance),noClaude:h(a.claude,a.noClaude),noStatusLine:h(a.statusline,a.noStatusLine),noDatabase:a.database===!1};if(e.noMcp&&e.withMcp)throw new Error(M);return e}var C=class{name="init";description="Initialize the AQE v3 system";cleanupAndExit;originalStdoutWrite=null;constructor(e){this.cleanupAndExit=e}register(e,n){e.command("init").description(this.description).option("-d, --domains <domains>","Comma-separated list of domains to enable","all").option("-m, --max-agents <number>","Maximum concurrent agents","15").option("--memory <backend>",'Memory backend (sqlite|agentdb|hybrid|memory). "memory" = database-free, in-memory only.',"hybrid").option("--no-database","Database-free install: alias for `--memory memory`. Skips the SQLite database phase and runs any MCP server in-memory \u2014 nothing is written to .agentic-qe/.").option("--no-statusline","Do not install AQE's Claude Code status line; remove an existing AQE-owned status line while preserving custom ones").option("--lazy","Enable lazy loading of domains").option("--wizard","Run interactive setup wizard").option("--auto","Auto-configure based on project analysis").option("-u, --upgrade","Upgrade existing installation (overwrite skills, agents, validation)").option("--browser-engine","Install optional Vibium and browser payload (explicit download)",!1).option("--no-browser-engine","Skip optional browser setup (default)").option("--minimal","Minimal configuration (skip optional features)").option("--skip-patterns","Skip loading pre-trained patterns").option("--skip-code-index","Skip code intelligence pre-scan (supported escape hatch \u2014 KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)").option("--json","Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.").option("--with-n8n","Install n8n workflow testing agents and skills").option("--with-opencode","Include OpenCode agent/skill provisioning").option("--with-kiro","Include AWS Kiro IDE integration (agents, skills, hooks, steering)").option("--with-copilot","Include GitHub Copilot MCP config and instructions").option("--with-cursor","Include Cursor MCP config and rules").option("--with-cline","Include Cline MCP config and custom QE mode").option("--with-kilocode","Include Kilo Code MCP config and custom QE mode").option("--with-roocode","Include Roo Code MCP config and custom QE mode").option("--with-codex","Include OpenAI Codex CLI MCP, AGENTS.md, hooks, and QE skills").addOption(new I("--codex-guidance <mode>","Codex AGENTS.md guidance policy").choices(["full","compact","none"]).default("full")).option("--with-ruflo","Add optional Ruflo guidance and lifecycle hooks to the Codex setup").option("--with-windsurf","Include Windsurf MCP config and rules").option("--with-continuedev","Include Continue.dev MCP config and rules").option("--no-mcp","Skip MCP server config (MCP is enabled by default). Cannot be combined with --with-mcp").addOption(new I("--with-mcp","Write the project .mcp.json agentic-qe entry even when the agentic-qe-fleet Claude Code plugin already provides the AQE MCP server (#922). Cannot be combined with --no-mcp").conflicts("mcp")).option("--with-all-platforms","Include all coding agent platform configurations").option("--auto-migrate","Automatically migrate from v2 if detected").option("--with-claude-flow","Force Claude Flow integration setup").option("--skip-claude-flow","Skip Claude Flow integration").option("--no-governance","Skip governance configuration (ADR-058)").option("--no-claude","Suppress the default Claude Code surface (.claude/, .mcp.json, CLAUDE.md, governance, hooks) so --with-<platform> flags are the only install targets (#532)").option("--modular","Use new modular init system (default for --auto)").action(async i=>{await this.execute(i,n)})}async execute(e,n){if(e.json===!0){this.originalStdoutWrite=process.stdout.write.bind(process.stdout);let i=process.stderr.write.bind(process.stderr);process.stdout.write=((...s)=>i(...s))}try{let i=k(),s=v(i,!!process.env.AQE_PROJECT_ROOT);if(s){console.error(o.red(`
3
3
  ${s}
4
4
  `)),await this.cleanupAndExit(1);return}if(e.withAllPlatforms&&(e.withCopilot=!0,e.withCursor=!0,e.withCline=!0,e.withKilocode=!0,e.withRoocode=!0,e.withCodex=!0,e.withWindsurf=!0,e.withContinuedev=!0),e.upgrade&&!e.auto&&!e.wizard&&(e.auto=!0),e.wizard||e.auto){if(console.log(o.blue(`
5
5
  Agentic QE v3 Initialization
@@ -8,14 +8,14 @@ import{a as k,b as v}from"./chunk-FL3OYGCS.js";import{a as b}from"./chunk-JNNZK7
8
8
  `)),await this.runModularInit(e,n,i);return}await this.runStandardInit(e,n)}catch(i){console.error(o.red(`
9
9
  Failed to initialize:`),i),await this.cleanupAndExit(1)}}async runModularInit(e,n,i){let s=e.json===!0,l=f(e),m=l.noDatabase||e.memory==="memory";m&&(process.env.AQE_MEMORY_BACKEND="memory",s||console.log(o.gray(` Database-free mode: in-memory backend (no .agentic-qe/memory.db)
10
10
  `)));let g=l.noClaude;g&&!(e.withOpencode||e.withN8n||e.withKiro||e.withCopilot||e.withCursor||e.withCline||e.withKilocode||e.withRoocode||e.withCodex||e.withWindsurf||e.withContinuedev||e.withAllPlatforms)&&!s&&console.log(o.yellow(` --no-claude set without any --with-<platform>: this install will write almost nothing.
11
- `));let{createModularInitOrchestrator:r}=await import("./orchestrator-H5SQCQTB.js"),c=r({projectRoot:i,autoMode:e.auto,upgrade:e.upgrade,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,withN8n:e.withN8n,withOpenCode:e.withOpencode,withKiro:e.withKiro,withCopilot:e.withCopilot,withCursor:e.withCursor,withCline:e.withCline,withKiloCode:e.withKilocode,withRooCode:e.withRoocode,withCodex:e.withCodex,withRuflo:e.withRuflo,codexGuidance:e.codexGuidance,withWindsurf:e.withWindsurf,withContinueDev:e.withContinuedev,noMcp:l.noMcp,withMcp:l.withMcp,noGovernance:l.noGovernance,noClaude:g,noStatusLine:l.noStatusLine,memoryBackend:m?"memory":void 0});console.log(o.white(` Analyzing project...
11
+ `));let{createModularInitOrchestrator:r}=await import("./orchestrator-72QP4UU7.js"),c=r({projectRoot:i,autoMode:e.auto,upgrade:e.upgrade,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,skipCodeIndex:e.skipCodeIndex,withN8n:e.withN8n,withOpenCode:e.withOpencode,withKiro:e.withKiro,withCopilot:e.withCopilot,withCursor:e.withCursor,withCline:e.withCline,withKiloCode:e.withKilocode,withRooCode:e.withRoocode,withCodex:e.withCodex,withRuflo:e.withRuflo,codexGuidance:e.codexGuidance,withWindsurf:e.withWindsurf,withContinueDev:e.withContinuedev,noMcp:l.noMcp,withMcp:l.withMcp,noGovernance:l.noGovernance,noClaude:g,noStatusLine:l.noStatusLine,memoryBackend:m?"memory":void 0});console.log(o.white(` Analyzing project...
12
12
  `));let t=await c.initialize();if(s){this.originalStdoutWrite&&(process.stdout.write=this.originalStdoutWrite);let u={schemaVersion:1,success:t.success,steps:t.steps.map(p=>({step:p.step,status:p.status,message:p.message,durationMs:p.durationMs})),summary:t.summary,totalDurationMs:t.totalDurationMs,timestamp:t.timestamp.toISOString()};process.stdout.write(JSON.stringify(u,null,2)+`
13
- `);let w=t.steps.some(p=>p.status==="error");await this.cleanupAndExit(t.success&&!w?0:1);return}for(let u of t.steps){let w=u.status==="success"?"*":u.status==="error"?"x":"!",p=u.status==="success"?o.green:u.status==="error"?o.red:o.yellow;console.log(p(` ${w} ${u.step} (${u.durationMs}ms)`))}console.log("");let d;if(!e.skipClaudeFlow&&(e.withClaudeFlow||t.success))try{let{setupClaudeFlowIntegration:u}=await import("./claude-flow-setup-YXYSRH4Y.js");if(d=await u({projectRoot:i,force:e.withClaudeFlow}),d.available)console.log(o.green(" * Claude Flow integration enabled")),d.features.trajectories&&console.log(o.gray(" - SONA trajectory tracking")),d.features.modelRouting&&console.log(o.gray(" - 3-tier model routing (haiku/sonnet/opus)")),d.features.pretrain&&console.log(o.gray(" - Codebase pretrain analysis")),console.log("");else{let{getClaudeFlowNotFoundMessage:w}=await import("./detect-IGTWSQMA.js");console.log(o.gray(w())),console.log("")}}catch{let{getClaudeFlowNotFoundMessage:u}=await import("./detect-IGTWSQMA.js");console.log(o.gray(u())),console.log("")}t.success?(console.log(o.green(` AQE v3 initialized successfully!
13
+ `);let w=t.steps.some(p=>p.status==="error");await this.cleanupAndExit(t.success&&!w?0:1);return}for(let u of t.steps){let w=u.status==="success"?"*":u.status==="error"?"x":"!",p=u.status==="success"?o.green:u.status==="error"?o.red:o.yellow;console.log(p(` ${w} ${u.step} (${u.durationMs}ms)`))}console.log("");let d;if(!e.skipClaudeFlow&&(e.withClaudeFlow||t.success))try{let{setupClaudeFlowIntegration:u}=await import("./claude-flow-setup-7D4SGLM4.js");if(d=await u({projectRoot:i,force:e.withClaudeFlow}),d.available)console.log(o.green(" * Claude Flow integration enabled")),d.features.trajectories&&console.log(o.gray(" - SONA trajectory tracking")),d.features.modelRouting&&console.log(o.gray(" - 3-tier model routing (haiku/sonnet/opus)")),d.features.pretrain&&console.log(o.gray(" - Codebase pretrain analysis")),console.log("");else{let{getClaudeFlowNotFoundMessage:w}=await import("./detect-56SKAGWX.js");console.log(o.gray(w())),console.log("")}}catch{let{getClaudeFlowNotFoundMessage:u}=await import("./detect-56SKAGWX.js");console.log(o.gray(u())),console.log("")}t.success?(console.log(o.green(` AQE v3 initialized successfully!
14
14
  `)),console.log(o.blue(" Summary:")),console.log(o.gray(` - Patterns loaded: ${t.summary.patternsLoaded}`)),console.log(o.gray(` - Skills installed: ${t.summary.skillsInstalled}`)),console.log(o.gray(` - Agents installed: ${t.summary.agentsInstalled}`)),console.log(o.gray(` - Hooks configured: ${t.summary.hooksConfigured?"Yes":"No"}`)),console.log(o.gray(` - Workers started: ${t.summary.workersStarted}`)),console.log(o.gray(` - Claude Flow: ${d?.available?"Enabled":"Standalone mode"}`)),console.log(o.gray(` - Total time: ${t.totalDurationMs}ms
15
15
  `)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),t.summary.mcpConfigured&&(console.log(o.gray(`
16
16
  MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
17
17
  `))),A()):(console.log(o.red(` Initialization failed. Check errors above.
18
- `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,n,i){let s=f(e),{InitOrchestrator:l}=await import("./init-wizard-422UZYQ5.js"),m={projectRoot:i,autoMode:e.auto,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,withN8n:e.withN8n,noMcp:s.noMcp,withMcp:s.withMcp},g=new l(m);if(e.wizard){console.log(o.white(` Setup Wizard Steps:
18
+ `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runLegacyWizard(e,n,i){let s=f(e),{InitOrchestrator:l}=await import("./init-wizard-NIMZ4J55.js"),m={projectRoot:i,autoMode:e.auto,minimal:e.minimal,browserEngine:e.browserEngine,skipPatterns:e.skipPatterns,withN8n:e.withN8n,noMcp:s.noMcp,withMcp:s.withMcp},g=new l(m);if(e.wizard){console.log(o.white(` Setup Wizard Steps:
19
19
  `));let c=g.getWizardSteps();for(let t=0;t<c.length;t++)console.log(o.gray(` ${t+1}. ${c[t].title}`)),console.log(o.gray(` ${c[t].description}
20
20
  `))}console.log(o.white(` Analyzing project...
21
21
  `));let r=await g.initialize();for(let c of r.steps){let t=c.status==="success"?"*":c.status==="error"?"x":"!",d=c.status==="success"?o.green:c.status==="error"?o.red:o.yellow;console.log(d(` ${t} ${c.step} (${c.durationMs}ms)`))}console.log(""),r.success?(console.log(o.green(` AQE v3 initialized successfully!
@@ -23,7 +23,7 @@ import{a as k,b as v}from"./chunk-FL3OYGCS.js";import{a as b}from"./chunk-JNNZK7
23
23
  `)),console.log(o.white("Next steps:")),console.log(o.gray(" 1. Run tests: aqe test <path>")),console.log(o.gray(" 2. Check coverage: aqe coverage <path>")),console.log(o.gray(" 3. Check status: aqe status")),r.summary.mcpConfigured&&(console.log(o.gray(`
24
24
  MCP server configured in .mcp.json`)),console.log(o.gray(` Use --no-mcp to skip MCP setup if using CLI only
25
25
  `))),A()):(console.log(o.red(` Initialization failed. Check errors above.
26
- `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,n){let{QEKernelImpl:i}=await import("./kernel-N7PJ6FCE.js"),{CrossDomainEventRouter:s}=await import("./cross-domain-router-7UKODQWG.js"),{DefaultProtocolExecutor:l}=await import("./protocol-executor-QW6XN6QN.js"),{WorkflowOrchestrator:m}=await import("./workflow-orchestrator-4GAW7HNZ.js"),{createQueenCoordinator:g}=await import("./queen-coordinator-S4U4MKK2.js");console.log(o.blue(`
26
+ `)),await this.cleanupAndExit(1)),await this.cleanupAndExit(0)}async runStandardInit(e,n){let{QEKernelImpl:i}=await import("./kernel-JQK7PRAI.js"),{CrossDomainEventRouter:s}=await import("./cross-domain-router-N3AIEM3B.js"),{DefaultProtocolExecutor:l}=await import("./protocol-executor-RNZNZP3A.js"),{WorkflowOrchestrator:m}=await import("./workflow-orchestrator-UKHEJVSK.js"),{createQueenCoordinator:g}=await import("./queen-coordinator-4452SXZQ.js");console.log(o.blue(`
27
27
  Initializing Agentic QE v3...
28
28
  `));let r=e.domains==="all"?[...b]:e.domains.split(",").filter(d=>b.includes(d));console.log(o.gray(` Domains: ${r.length}`)),console.log(o.gray(` Max Agents: ${e.maxAgents}`)),console.log(o.gray(` Memory: ${e.memory}`)),console.log(o.gray(` Lazy Loading: ${e.lazy?"enabled":"disabled"}
29
29
  `)),n.kernel=new i({maxConcurrentAgents:parseInt(e.maxAgents,10),memoryBackend:e.memory,hnswEnabled:!0,lazyLoading:e.lazy||!1,enabledDomains:r,enableExperienceBridge:!1}),await n.kernel.initialize(),console.log(o.green(" * Kernel initialized")),n.router=new s(n.kernel.eventBus),await n.router.initialize(),console.log(o.green(" * Cross-domain router initialized"));let c=d=>n.kernel.getDomainAPI(d),t=new l(n.kernel.eventBus,n.kernel.memory,c);console.log(o.green(" * Protocol executor initialized")),n.workflowOrchestrator=new m(n.kernel.eventBus,n.kernel.memory,n.kernel.coordinator),await n.workflowOrchestrator.initialize(),this.registerDomainWorkflowActions(n.kernel,n.workflowOrchestrator),console.log(o.green(" * Workflow orchestrator initialized")),n.queen=g(n.kernel,n.router,t,void 0),await n.queen.initialize(),console.log(o.green(" * Queen Coordinator initialized")),n.initialized=!0,console.log(o.green(`
@@ -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.15.10");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-3P34JFQH.js";import"./chunk-FPUDRSFJ.js";import"./chunk-7LFZ4CHM.js";import"./chunk-6MVVSSID.js";import"./chunk-Z7IYW5U7.js";import"./chunk-6X5DHU6Q.js";import"./chunk-37OWRCUN.js";import"./chunk-ACWFKES2.js";import"./chunk-NSHU347M.js";import"./chunk-GHBNRMSJ.js";import"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";export{a as InitOrchestrator,b as createInitOrchestrator,d as formatInitResult,c as quickInit};
@@ -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.15.10");process.exit(0)}
2
+ import{K as a,L as b}from"./chunk-ABFFWZPC.js";import"./chunk-SY2IB442.js";import"./chunk-TNMBRDCA.js";import"./chunk-CMBLM26R.js";import"./chunk-DKAC3E3B.js";import"./chunk-FZOWULMH.js";import"./chunk-KG336OV3.js";import"./chunk-NNFZUTDH.js";import"./chunk-UARKIZAS.js";import"./chunk-V6JBOIMX.js";import"./chunk-NGKNYIQZ.js";import"./chunk-VFKF2XO7.js";import"./chunk-B6LTH6YV.js";import"./chunk-LQEURY7C.js";import"./chunk-2ZMF4NCF.js";import"./chunk-FFTPAWM6.js";import"./chunk-6S3WJGUV.js";import"./chunk-MA7JIQ6U.js";import"./chunk-LRZY4KS2.js";import"./chunk-RPHY2DU6.js";import"./chunk-ERQKYIP7.js";import"./chunk-IU2IV4NE.js";import"./chunk-DBMNJSBV.js";import"./chunk-EAU5KDFO.js";import"./chunk-DE4YJQJF.js";import"./chunk-G5I6KGMW.js";import"./chunk-APSRPR4W.js";import"./chunk-YAKGBHO4.js";import"./chunk-MNN5J4GU.js";import"./chunk-7ZCDZHDB.js";import"./chunk-BQUAE3CP.js";import"./chunk-2XGVTYVX.js";import"./chunk-YCGP5VFP.js";import"./chunk-WDVRE6GN.js";import"./chunk-NAXGWDVM.js";import"./chunk-2ZI5FKSF.js";import"./chunk-YYTGXD3R.js";import"./chunk-ODJNUMV3.js";import"./chunk-ESUO3GTJ.js";import"./chunk-UHTTW3IT.js";import"./chunk-H32EPIR2.js";import"./chunk-SU5H66SD.js";import"./chunk-6X5DHU6Q.js";import"./chunk-6C3II5OM.js";import"./chunk-DNRWGATA.js";import"./chunk-H2PYU7MN.js";import"./chunk-YK7JN5N7.js";import"./chunk-FBXTQNRH.js";import"./chunk-37OWRCUN.js";import"./chunk-62OAY5KJ.js";import"./chunk-6XCMKIZN.js";import"./chunk-TBLI254A.js";import"./chunk-XEB3NLJR.js";import"./chunk-2T7RRL6G.js";import"./chunk-7OZVZIBE.js";import"./chunk-FB6TI3BH.js";import"./chunk-DEF34AFL.js";import"./chunk-RK73HB2F.js";import"./chunk-NPPHWFA2.js";import"./chunk-EDLFX4ZB.js";import"./chunk-NW5JUCCG.js";import"./chunk-I33O4BRQ.js";import"./chunk-WDQ7IEZY.js";import"./chunk-2SXBBUM6.js";import"./chunk-KNQ2ERFX.js";import"./chunk-XFVTGAAJ.js";import"./chunk-DT7SIJOA.js";import"./chunk-RWWOHCMG.js";import"./chunk-6TB6YOCZ.js";import"./chunk-G3CZCUPM.js";import"./chunk-C522H7XR.js";import"./chunk-3Y7SPD72.js";import"./chunk-ACWFKES2.js";import"./chunk-AI4VYSFS.js";import"./chunk-VJQYDYAJ.js";import"./chunk-OBAREPDC.js";import"./chunk-6GP6W46M.js";import"./chunk-PGYMKGOE.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-6KIL6CMD.js";import"./chunk-PPSAMXYN.js";import"./chunk-6PX4OXQO.js";import"./chunk-WQ4PYWSW.js";import"./chunk-LMS3Y7JD.js";import"./chunk-NSHU347M.js";import"./chunk-AH3ZD3NJ.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-GHBNRMSJ.js";import"./chunk-XLZYRTNO.js";import"./chunk-NVYIZCSR.js";import"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-V2M2XCR5.js";import"./chunk-KOBVYY6H.js";import"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";export{a as QEKernelImpl,b as createKernel};
@@ -1,4 +1,4 @@
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.15.9");process.exit(0)}
2
- import{b as f}from"./chunk-GII5WVAK.js";import{a as m,e as v}from"./chunk-N3KEY4XJ.js";import"./chunk-HZ5NC6U5.js";v();import{existsSync as n,mkdirSync as p,readFileSync as d,writeFileSync as a}from"fs";import{join as u,dirname as h}from"path";var l=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=f()}async install(){let e={success:!0,mcpConfigured:!1,modeInstalled:!1,errors:[],configPath:"",modePath:""};try{let t=this.generator.generateMcpConfig("kilocode",{memoryBackend:this.options.memoryBackend}),r=u(this.projectRoot,t.path);if(e.configPath=r,!n(r)||this.overwrite){let s=h(r);if(n(s)||p(s,{recursive:!0}),n(r)&&this.overwrite){let c=this.mergeExistingConfig(r,t.content);a(r,c)}else a(r,t.content);e.mcpConfigured=!0}let i=this.generator.generateBehavioralRules("kilocode"),o=u(this.projectRoot,i.path);if(e.modePath=o,!n(o)||this.overwrite){let s=h(o);if(n(s)||p(s,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,i.content);a(o,c)}else a(o,i.content);e.modeInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Kilo Code installation failed: ${m(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(d(e,"utf-8")),i=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,i.mcpServers),JSON.stringify(r,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.15.10");process.exit(0)}
2
+ import{b as f}from"./chunk-OY3NJNP2.js";import{a as m,e as v}from"./chunk-GHBNRMSJ.js";import"./chunk-OY2AHLSF.js";v();import{existsSync as n,mkdirSync as p,readFileSync as d,writeFileSync as a}from"fs";import{join as u,dirname as h}from"path";var l=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=f()}async install(){let e={success:!0,mcpConfigured:!1,modeInstalled:!1,errors:[],configPath:"",modePath:""};try{let t=this.generator.generateMcpConfig("kilocode",{memoryBackend:this.options.memoryBackend}),r=u(this.projectRoot,t.path);if(e.configPath=r,!n(r)||this.overwrite){let s=h(r);if(n(s)||p(s,{recursive:!0}),n(r)&&this.overwrite){let c=this.mergeExistingConfig(r,t.content);a(r,c)}else a(r,t.content);e.mcpConfigured=!0}let i=this.generator.generateBehavioralRules("kilocode"),o=u(this.projectRoot,i.path);if(e.modePath=o,!n(o)||this.overwrite){let s=h(o);if(n(s)||p(s,{recursive:!0}),n(o)&&this.overwrite){let c=this.mergeExistingModes(o,i.content);a(o,c)}else a(o,i.content);e.modeInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Kilo Code installation failed: ${m(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(d(e,"utf-8")),i=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,i.mcpServers),JSON.stringify(r,null,2)+`
3
3
  `}catch{return t}}mergeExistingModes(e,t){try{let r=JSON.parse(d(e,"utf-8")),i=JSON.parse(t);if(!Array.isArray(r))return t;let o=r.filter(s=>s.slug!=="qe-engineer");return o.push(...i),JSON.stringify(o,null,2)+`
4
4
  `}catch{return t}}};function x(g){return new l(g)}export{l as KiloCodeInstaller,x as createKiloCodeInstaller};
@@ -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.15.9");process.exit(0)}
2
- import{a as $}from"./chunk-CTZJUV5I.js";import{i as w,j as S,k as _,n as Q}from"./chunk-XYCKHYBM.js";import{a as k,e as R}from"./chunk-N3KEY4XJ.js";import"./chunk-HZ5NC6U5.js";R();import{existsSync as m,mkdirSync as y,readdirSync as E,readFileSync as q,writeFileSync as v}from"fs";import{join as o,dirname as T}from"path";import{fileURLToPath as I}from"url";Q();var D=I(import.meta.url),P=T(D),M=class{projectRoot;options;openCodeDir;constructor(t){this.projectRoot=t.projectRoot,this.options={installAgents:!0,installSkills:!0,installHooks:!0,installSteering:!0,overwrite:!1,...t},this.openCodeDir=this.findOpenCodeDir()}findOpenCodeDir(){let t=[o(P,"../../.opencode"),o(P,"../../assets/opencode")],e=$(import.meta.url);e&&(t.push(o(e,".opencode")),t.push(o(e,"assets/opencode"))),t.push(o(process.cwd(),"node_modules/agentic-qe/assets/opencode"),o(process.cwd(),"node_modules/agentic-qe/.opencode"));for(let n of t)if(m(n)&&(m(o(n,"agents"))||m(o(n,"skills"))))return n;let s=o(process.cwd(),".opencode");return m(s)&&(m(o(s,"agents"))||m(o(s,"skills")))?s:t[0]}async install(){let t=o(this.projectRoot,".kiro"),e={success:!0,agentsInstalled:[],skillsInstalled:[],hooksInstalled:[],steeringInstalled:[],mcpConfigured:!1,errors:[],targetDir:t};try{if(e.mcpConfigured=this.installMcpConfig(t),this.options.installAgents){let s=this.installAgents(t);e.agentsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSkills){let s=this.installSkills(t);e.skillsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installHooks){let s=this.installHooks(t);e.hooksInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSteering){let s=this.installSteering(t);e.steeringInstalled=s.installed,e.errors.push(...s.errors)}}catch(s){e.success=!1,e.errors.push(`Kiro installation failed: ${k(s)}`)}return e}installMcpConfig(t){let e=o(t,"settings"),s=o(e,"mcp.json");if(m(s)&&!this.options.overwrite)return!1;y(e,{recursive:!0});let n={mcpServers:{"agentic-qe":{command:"npx",args:["-y","agentic-qe@latest","mcp"],env:this.options.memoryBackend==="memory"?{AQE_MEMORY_BACKEND:"memory",AQE_V3_MODE:"true"}:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"},disabled:!1,autoApprove:["fleet_init","fleet_status","test_generate_enhanced","coverage_analyze_sublinear","quality_assess","memory_store","memory_query"]}}};return v(s,JSON.stringify(n,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.15.10");process.exit(0)}
2
+ import{a as $}from"./chunk-6MVVSSID.js";import{i as w,j as S,k as _,n as Q}from"./chunk-XFVTGAAJ.js";import{a as k,e as R}from"./chunk-GHBNRMSJ.js";import"./chunk-OY2AHLSF.js";R();import{existsSync as m,mkdirSync as y,readdirSync as E,readFileSync as q,writeFileSync as v}from"fs";import{join as o,dirname as T}from"path";import{fileURLToPath as I}from"url";Q();var D=I(import.meta.url),P=T(D),M=class{projectRoot;options;openCodeDir;constructor(t){this.projectRoot=t.projectRoot,this.options={installAgents:!0,installSkills:!0,installHooks:!0,installSteering:!0,overwrite:!1,...t},this.openCodeDir=this.findOpenCodeDir()}findOpenCodeDir(){let t=[o(P,"../../.opencode"),o(P,"../../assets/opencode")],e=$(import.meta.url);e&&(t.push(o(e,".opencode")),t.push(o(e,"assets/opencode"))),t.push(o(process.cwd(),"node_modules/agentic-qe/assets/opencode"),o(process.cwd(),"node_modules/agentic-qe/.opencode"));for(let n of t)if(m(n)&&(m(o(n,"agents"))||m(o(n,"skills"))))return n;let s=o(process.cwd(),".opencode");return m(s)&&(m(o(s,"agents"))||m(o(s,"skills")))?s:t[0]}async install(){let t=o(this.projectRoot,".kiro"),e={success:!0,agentsInstalled:[],skillsInstalled:[],hooksInstalled:[],steeringInstalled:[],mcpConfigured:!1,errors:[],targetDir:t};try{if(e.mcpConfigured=this.installMcpConfig(t),this.options.installAgents){let s=this.installAgents(t);e.agentsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSkills){let s=this.installSkills(t);e.skillsInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installHooks){let s=this.installHooks(t);e.hooksInstalled=s.installed,e.errors.push(...s.errors)}if(this.options.installSteering){let s=this.installSteering(t);e.steeringInstalled=s.installed,e.errors.push(...s.errors)}}catch(s){e.success=!1,e.errors.push(`Kiro installation failed: ${k(s)}`)}return e}installMcpConfig(t){let e=o(t,"settings"),s=o(e,"mcp.json");if(m(s)&&!this.options.overwrite)return!1;y(e,{recursive:!0});let n={mcpServers:{"agentic-qe":{command:"npx",args:["-y","agentic-qe@latest","mcp"],env:this.options.memoryBackend==="memory"?{AQE_MEMORY_BACKEND:"memory",AQE_V3_MODE:"true"}:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"},disabled:!1,autoApprove:["fleet_init","fleet_status","test_generate_enhanced","coverage_analyze_sublinear","quality_assess","memory_store","memory_query"]}}};return v(s,JSON.stringify(n,null,2)+`
3
3
  `),!0}installAgents(t){let e=[],s=[],n=o(this.openCodeDir,"agents"),l=o(t,"agents");if(!m(n))return y(l,{recursive:!0}),this.writeDefaultQEAgent(l),e.push("qe-specialist"),{installed:e,errors:s};y(l,{recursive:!0});let i=E(n).filter(r=>r.endsWith(".yaml"));for(let r of i){let c=r.replace(".yaml",""),a=o(l,`${c}.json`);if(!(m(a)&&!this.options.overwrite))try{let p=q(o(n,r),"utf-8"),u=this.parseYamlAgent(p),d=this.convertToKiroAgent(u);v(a,JSON.stringify(d,null,2)+`
4
4
  `),e.push(c)}catch(p){s.push(`Failed to convert agent ${r}: ${k(p)}`)}}let g=o(this.options.projectRoot,".claude","agents");if(m(g)){let r=["subagents","n8n","testing","analysis"];for(let c of r){let a=o(g,c);if(!m(a))continue;let p=E(a,{recursive:!1}).filter(u=>typeof u=="string"&&u.endsWith(".md")&&u!=="README.md");for(let u of p){let d=u.replace(".md",""),h=o(l,`${d}.json`);if(!(m(h)&&!this.options.overwrite))try{let f=q(o(a,u),"utf-8"),A=this.convertMdAgentToKiro(f,d);A&&(v(h,JSON.stringify(A,null,2)+`
5
5
  `),e.push(d))}catch(f){s.push(`Failed to convert subagent ${u}: ${k(f)}`)}}}}return{installed:e,errors:s}}convertMdAgentToKiro(t,e){let s=t.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);if(!s)return null;let n=s[1],l=s[2].trim(),i=d=>{let h=new RegExp(`^${d}:\\s*"?([^"
@@ -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.15.10");process.exit(0)}
2
+ import{h as a}from"./chunk-G5I6KGMW.js";import"./chunk-APSRPR4W.js";import"./chunk-YYTGXD3R.js";import"./chunk-2SXBBUM6.js";import"./chunk-XFVTGAAJ.js";import"./chunk-ACWFKES2.js";import"./chunk-NSHU347M.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-GHBNRMSJ.js";import"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-OY2AHLSF.js";export{a as KnowledgeGraphService};
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.9");process.exit(0)}
3
- import{a as ge}from"./chunk-7QTB5VJZ.js";import{b as de}from"./chunk-LEAKYZ37.js";import{h as le}from"./chunk-KLGYIEJK.js";import"./chunk-MZS32SYS.js";import{b as F}from"./chunk-GCWSX2NY.js";import"./chunk-2TDIS6YK.js";import{j as Q}from"./chunk-F3PQZX44.js";import"./chunk-XWIUFYM3.js";import"./chunk-DDPPSSHW.js";import"./chunk-D6XVGFTI.js";import"./chunk-VRGCKBF7.js";import"./chunk-7JKB3Q7O.js";import{a as ie}from"./chunk-IFEIY3NQ.js";import{d as ce}from"./chunk-XDBD4GXO.js";import"./chunk-7X2Y727E.js";import"./chunk-AVB5QY2Q.js";import{s as re}from"./chunk-OCESWNAZ.js";import"./chunk-ICP2ORGI.js";import{b as M,d as Pe}from"./chunk-PVIA2FPD.js";import"./chunk-OG2UI6A3.js";import"./chunk-V5PXQSFS.js";import"./chunk-5D2I7JUP.js";import"./chunk-EFBLP43U.js";import"./chunk-7KII4CQG.js";import"./chunk-4SUOVLJ6.js";import"./chunk-ZXBCCO2H.js";import{b as ae,p as se}from"./chunk-BXO536GT.js";import"./chunk-SVHUYVUR.js";import"./chunk-FV7VAG74.js";import"./chunk-JNNZK7KH.js";import"./chunk-2BA45H64.js";import"./chunk-KTSLTZSG.js";import"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import"./chunk-N3KEY4XJ.js";import"./chunk-2I2UPJS7.js";import"./chunk-PX2B5TS2.js";import{c as A}from"./chunk-4V27J6YN.js";import"./chunk-H3KBIWTO.js";import"./chunk-OXZLKP6C.js";import"./chunk-SNBYYO6F.js";import{a as E,b as U}from"./chunk-6YL6JOQB.js";import"./chunk-6OOYIO3W.js";import"./chunk-HZ5NC6U5.js";re();Pe();import{Command as Fe}from"commander";import o from"chalk";import v from"node:path";import{randomUUID as Le}from"node:crypto";import{existsSync as x,writeFileSync as Ce,readFileSync as oe,copyFileSync as qe,renameSync as De}from"node:fs";import{stat as Be,unlink as I}from"node:fs/promises";U();U();import{existsSync as j,realpathSync as be,statSync as Z}from"node:fs";import{mkdir as ve,mkdtemp as Se,rename as Ie,rm as ee,stat as te}from"node:fs/promises";import{basename as Ne,dirname as q,join as _,resolve as we}from"node:path";import{randomUUID as je}from"node:crypto";re();import k from"chalk";import J from"node:path";import{createReadStream as pe,createWriteStream as ue}from"node:fs";import{createGzip as Ae,createGunzip as Oe}from"node:zlib";import{pipeline as me}from"node:stream/promises";U();var O={reasoningBank:null,initialized:!1};async function C(){if(O.initialized&&O.reasoningBank)return O.reasoningBank;let a=A(),t=J.join(a,".agentic-qe"),e=new ie({sqlite:{path:J.join(t,"memory.db"),walMode:!0,poolSize:3,busyTimeout:5e3},enableFallback:!0,defaultNamespace:"qe-patterns"});await e.initialize(),O.reasoningBank=le(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0}),await O.reasoningBank.initialize();try{let{getSharedRvfDualWriter:n}=await import("./shared-rvf-dual-writer-LZ2GMSS2.js"),i=await n();i&&O.reasoningBank.setRvfDualWriter(i)}catch(n){process.env.DEBUG&&console.debug("[learning] RVF wiring skipped:",n instanceof Error?n.message:n)}return O.initialized=!0,O.reasoningBank}function $(a){console.log(JSON.stringify(a,null,2))}function P(a){console.log(k.green("\u2713"),a)}function S(a){console.error(k.red("\u2717"),a)}function T(a){console.log(k.blue("\u2139"),a)}function fe(a){let{current:t,topDomains:e}=a,n={tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502",ml:"\u251C",mr:"\u2524"},i=55,g=n.h.repeat(i-2);console.log(""),console.log(`${n.tl}${g}${n.tr}`),console.log(`${n.v}${Te("AQE LEARNING DASHBOARD",i-2)}${n.v}`),console.log(`${n.ml}${g}${n.mr}`);let c=t.patternsCreatedToday>0?k.green(` (+${t.patternsCreatedToday} today)`):"";console.log(`${n.v} Patterns: ${D(String(t.totalPatterns)+c,32)}${n.v}`);let l=t.experiencesToday>0?k.green(` (+${t.experiencesToday} today)`):"";console.log(`${n.v} Experiences: ${D(String(t.totalExperiences)+l,32)}${n.v}`),console.log(`${n.v} Q-Values: ${D(String(t.totalQValues),32)}${n.v}`);let p=t.avgReward.toFixed(2),u=t.avgRewardDelta>=0?k.green(`(\u2191 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`):k.red(`(\u2193 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`);console.log(`${n.v} Avg Reward: ${D(`${p} ${u}`,32)}${n.v}`);let r=(t.successRate*100).toFixed(1);if(console.log(`${n.v} Success Rate: ${D(`${r}%`,32)}${n.v}`),console.log(`${n.v} Short-term: ${D(String(t.shortTermPatterns),32)}${n.v}`),console.log(`${n.v} Long-term: ${D(String(t.longTermPatterns),32)}${n.v}`),console.log(`${n.v}${" ".repeat(i-2)}${n.v}`),console.log(`${n.v} ${k.bold("Domain Coverage:")}${" ".repeat(i-19)}${n.v}`),e.length===0)console.log(`${n.v} ${k.dim("No patterns yet")}${" ".repeat(i-19)}${n.v}`);else{let s=Math.max(...e.map(f=>f.count),1),m=14;for(let{domain:f,count:y}of e){let b=Math.round(y/s*m),w=m-b,R=k.green("\u2588".repeat(b))+k.dim("\u2591".repeat(w)),B=D(f,20),H=_e(String(y),3);console.log(`${n.v} ${B} ${R} ${H} patterns ${n.v}`)}let d=new Set(e.map(f=>f.domain)),h=Q.filter(f=>!d.has(f)).slice(0,3);for(let f of h){let y=k.dim("\u2591".repeat(m)),b=D(f,20);console.log(`${n.v} ${b} ${y} 0 patterns ${n.v}`)}}console.log(`${n.bl}${g}${n.br}`),console.log("")}function Te(a,t){let e=K(a),n=Math.max(0,t-e.length),i=Math.floor(n/2),g=n-i;return" ".repeat(i)+a+" ".repeat(g)}function D(a,t){let e=K(a),n=Math.max(0,t-e.length);return a+" ".repeat(n)}function _e(a,t){let e=K(a),n=Math.max(0,t-e.length);return" ".repeat(n)+a}function K(a){return a.replace(/\x1b\[[0-9;]*m/g,"")}function N(){let a=A();return J.join(a,".agentic-qe","memory.db")}async function z(a,t){let e=t||`${a}.gz`;return await me(pe(a),Ae(),ue(e)),e}async function L(a,t){await me(pe(a),Oe(),ue(t))}async function V(a){try{let t=E(a,{readonly:!0}),e=t.prepare("PRAGMA integrity_check").get();return t.close(),e.integrity_check==="ok"?{valid:!0,message:"Database integrity verified"}:{valid:!1,message:`Integrity check failed: ${e.integrity_check}`}}catch(t){return{valid:!1,message:`Failed to verify: ${t instanceof Error?t.message:"unknown error"}`}}}async function Y(a){try{let t=E(a,{readonly:!0});if(!t.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='schema_version'").get())return t.close(),0;let n=t.prepare("SELECT version FROM schema_version WHERE id = 1").get();return t.close(),n?.version??0}catch{return 0}}var X="3.1.0",he={generate:"test-generation","test-generation":"test-generation",analyze:"coverage-analysis",coverage:"coverage-analysis","coverage-analysis":"coverage-analysis",run:"test-execution","test-execution":"test-execution",report:"quality-assessment",quality:"quality-assessment","quality-analysis":"quality-assessment",security:"security-compliance",sast:"security-compliance",owasp:"security-compliance",secrets:"security-compliance",audit:"security-compliance",recommend:"defect-intelligence",predict:"defect-intelligence","complexity-analysis":"code-intelligence","code-analysis":"code-intelligence",stabilize:"chaos-resilience",flaky:"chaos-resilience",quarantine:"chaos-resilience",retry:"chaos-resilience",stress:"chaos-resilience",load:"chaos-resilience",endurance:"chaos-resilience",baseline:"chaos-resilience"},ye={generate:"test-template","test-generation":"test-template",analyze:"coverage-strategy",coverage:"coverage-strategy","coverage-analysis":"coverage-strategy",run:"test-template","test-execution":"test-template",report:"assertion-pattern",quality:"assertion-pattern","quality-analysis":"assertion-pattern",security:"assertion-pattern",sast:"assertion-pattern",owasp:"assertion-pattern",secrets:"assertion-pattern",audit:"assertion-pattern",recommend:"assertion-pattern",predict:"assertion-pattern","complexity-analysis":"assertion-pattern","code-analysis":"assertion-pattern",stabilize:"flaky-fix",flaky:"flaky-fix",quarantine:"flaky-fix",retry:"flaky-fix",stress:"perf-benchmark",load:"perf-benchmark",endurance:"perf-benchmark",baseline:"perf-benchmark",mock:"mock-pattern",dependency:"mock-pattern"};function Ee(a){let t=E(a,{readonly:!0,fileMustExist:!0});try{let e=t.pragma("integrity_check");if(e.length!==1||e[0].integrity_check!=="ok")throw new Error("Database integrity verification failed");return{schemaVersion:(t.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='schema_version'").get()?t.prepare("SELECT version FROM schema_version WHERE id = 1").get():void 0)?.version??0,pages:t.pragma("page_count",{simple:!0}),verification:{valid:!0,message:"Database integrity verified"}}}finally{t.close()}}function G(a){return j(a)?be(a):_(be(q(a)),Ne(a))}function $e(a,t){if(G(a)===G(t))return!0;if(!j(a)||!j(t))return!1;let e=Z(a),n=Z(t);return e.dev===n.dev&&e.ino===n.ino}function ne(a,t){let e=G(a),n=G(t);for(let i of["","-wal","-shm","-journal"])if($e(`${e}${i}`,t)||$e(a,`${n}${i}`))throw new Error("Backup source and destination must not alias the same database or its sidecars")}function xe(a){if(!Z(a).isFile())throw new Error("Backup input must be a regular file")}async function W(a,t,e={}){let n=E(a,{readonly:!0,fileMustExist:!0});try{let i=await n.backup(t);if(i.totalPages<=0||i.remainingPages!==0||e.expectedPages!==void 0&&i.totalPages!==e.expectedPages)throw new Error("SQLite snapshot did not complete; the source may be empty or the destination busy");if(e.standalone){let c=E(t,{fileMustExist:!0,walMode:!1});try{if(c.pragma("journal_mode = DELETE",{simple:!0})!=="delete")throw new Error("Could not create a standalone SQLite image")}finally{c.close()}}let g=Ee(t);if(g.pages!==i.totalPages)throw new Error("SQLite snapshot page count does not match the completed backup");return g}finally{n.close()}}async function Re(a,t,e={}){xe(a);let n=we(e.compress?`${t}.gz`:t);await ve(q(n),{recursive:!0}),ne(a,we(t)),ne(a,n);let i=await Se(_(q(n),".aqe-backup-"));try{let g=_(i,"snapshot.db"),c=await W(a,g,{standalone:!0}),l=e.compress?await z(g):g;if(e.compress&&e.verify){let r=_(i,"verified.db");await L(l,r),Ee(r)}let p=Number(((await te(a)).size/1024).toFixed(2)),u=Number(((await te(l)).size/1024).toFixed(2));if(["-wal","-shm","-journal"].some(r=>j(`${n}${r}`)))throw new Error("Backup destination has SQLite sidecars; choose an unused output path");return await Ie(l,n),{backupPath:n,sourceSizeKB:p,backupSizeKB:u,compressed:!!e.compress,schemaVersion:c.schemaVersion,verification:c.verification}}finally{await ee(i,{recursive:!0,force:!0})}}async function ke(a,t,e={}){if(xe(a),await ve(q(t),{recursive:!0}),ne(a,t),j(t)&&!e.force)throw new Error(`Database already exists at: ${t}. Use --force to overwrite`);let n=await Se(_(q(t),".aqe-restore-")),i;try{let g=a.endsWith(".gz"),c=_(n,"snapshot.db"),l=a;g&&(l=_(n,"decompressed.db"),await L(a,l));let p=await W(l,c,{standalone:!0}),u=Number(((await te(c)).size/1024).toFixed(2));if(j(t)){let r=new Date().toISOString().replace(/[:.]/g,"-"),s=`${t}.pre-restore-${r}-${je()}.db`;try{await W(t,s,{standalone:!0}),i=s}catch(m){throw await ee(s,{force:!0}),new Error("Cannot create a verified safety backup of the existing database; restore refused. Stop project processes and preserve the database and its sidecars before restoring into an absent destination.",{cause:m})}}return await W(c,t,{expectedPages:p.pages}),{sizeKB:u,schemaVersion:p.schemaVersion,wasCompressed:g,safetyBackupPath:i}}catch(g){if(i){let c=g instanceof Error?g.message:"SQLite snapshot failed";throw new Error(`Restore failed: ${c}; previous database snapshot preserved at ${i}`,{cause:g})}throw g}finally{await ee(n,{recursive:!0,force:!0})}}function Gt(){let a=new Fe("learning").description("AQE self-learning system management (standalone, no claude-flow required)").addHelpText("after",`
2
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.10");process.exit(0)}
3
+ import{a as ue}from"./chunk-PFG6VQ5Z.js";import{b as pe}from"./chunk-6S3WJGUV.js";import{h as ge}from"./chunk-DNRWGATA.js";import"./chunk-H2PYU7MN.js";import{b as L}from"./chunk-YK7JN5N7.js";import"./chunk-FBXTQNRH.js";import{j as Q}from"./chunk-37OWRCUN.js";import"./chunk-62OAY5KJ.js";import"./chunk-6XCMKIZN.js";import"./chunk-TBLI254A.js";import"./chunk-XEB3NLJR.js";import"./chunk-2T7RRL6G.js";import{a as ie}from"./chunk-FB6TI3BH.js";import{d as ce,e as le,i as de}from"./chunk-RWWOHCMG.js";import"./chunk-6TB6YOCZ.js";import"./chunk-G3CZCUPM.js";import{v as re}from"./chunk-C522H7XR.js";import"./chunk-3Y7SPD72.js";import{b as M,d as Oe}from"./chunk-ACWFKES2.js";import"./chunk-AI4VYSFS.js";import"./chunk-VJQYDYAJ.js";import"./chunk-OBAREPDC.js";import"./chunk-6GP6W46M.js";import"./chunk-PGYMKGOE.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import{b as ae,p as se}from"./chunk-PPSAMXYN.js";import"./chunk-6PX4OXQO.js";import"./chunk-WQ4PYWSW.js";import"./chunk-NSHU347M.js";import"./chunk-AH3ZD3NJ.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-GHBNRMSJ.js";import"./chunk-XLZYRTNO.js";import"./chunk-NVYIZCSR.js";import{c as A}from"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-V2M2XCR5.js";import"./chunk-KOBVYY6H.js";import{a as E,b as U}from"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";re();Oe();import{Command as qe}from"commander";import o from"chalk";import v from"node:path";import{randomUUID as Be}from"node:crypto";import{existsSync as x,writeFileSync as Ae,readFileSync as oe,copyFileSync as Me,renameSync as Pe}from"node:fs";import{stat as Qe,unlink as I}from"node:fs/promises";U();U();import{existsSync as j,realpathSync as $e,statSync as Z}from"node:fs";import{mkdir as Ee,mkdtemp as xe,rename as je,rm as ee,stat as te}from"node:fs/promises";import{basename as Le,dirname as q,join as _,resolve as ve}from"node:path";import{randomUUID as Fe}from"node:crypto";re();import k from"chalk";import J from"node:path";import{createReadStream as me,createWriteStream as fe}from"node:fs";import{createGzip as Te,createGunzip as _e}from"node:zlib";import{pipeline as he}from"node:stream/promises";U();var O={reasoningBank:null,initialized:!1};async function C(){if(O.initialized&&O.reasoningBank)return O.reasoningBank;let a=A(),t=J.join(a,".agentic-qe"),e=new ie({sqlite:{path:J.join(t,"memory.db"),walMode:!0,poolSize:3,busyTimeout:5e3},enableFallback:!0,defaultNamespace:"qe-patterns"});await e.initialize(),O.reasoningBank=ge(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0}),await O.reasoningBank.initialize();try{let{getSharedRvfDualWriter:n}=await import("./shared-rvf-dual-writer-MX4FC2JE.js"),i=await n();i&&O.reasoningBank.setRvfDualWriter(i)}catch(n){process.env.DEBUG&&console.debug("[learning] RVF wiring skipped:",n instanceof Error?n.message:n)}return O.initialized=!0,O.reasoningBank}function $(a){console.log(JSON.stringify(a,null,2))}function P(a){console.log(k.green("\u2713"),a)}function S(a){console.error(k.red("\u2717"),a)}function T(a){console.log(k.blue("\u2139"),a)}function ye(a){let{current:t,topDomains:e}=a,n={tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502",ml:"\u251C",mr:"\u2524"},i=55,g=n.h.repeat(i-2);console.log(""),console.log(`${n.tl}${g}${n.tr}`),console.log(`${n.v}${Ie("AQE LEARNING DASHBOARD",i-2)}${n.v}`),console.log(`${n.ml}${g}${n.mr}`);let c=t.patternsCreatedToday>0?k.green(` (+${t.patternsCreatedToday} today)`):"";console.log(`${n.v} Patterns: ${D(String(t.totalPatterns)+c,32)}${n.v}`);let l=t.experiencesToday>0?k.green(` (+${t.experiencesToday} today)`):"";console.log(`${n.v} Experiences: ${D(String(t.totalExperiences)+l,32)}${n.v}`),console.log(`${n.v} Q-Values: ${D(String(t.totalQValues),32)}${n.v}`);let p=t.avgReward.toFixed(2),u=t.avgRewardDelta>=0?k.green(`(\u2191 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`):k.red(`(\u2193 ${Math.abs(t.avgRewardDelta).toFixed(2)} from last week)`);console.log(`${n.v} Avg Reward: ${D(`${p} ${u}`,32)}${n.v}`);let r=(t.successRate*100).toFixed(1);if(console.log(`${n.v} Success Rate: ${D(`${r}%`,32)}${n.v}`),console.log(`${n.v} Short-term: ${D(String(t.shortTermPatterns),32)}${n.v}`),console.log(`${n.v} Long-term: ${D(String(t.longTermPatterns),32)}${n.v}`),console.log(`${n.v}${" ".repeat(i-2)}${n.v}`),console.log(`${n.v} ${k.bold("Domain Coverage:")}${" ".repeat(i-19)}${n.v}`),e.length===0)console.log(`${n.v} ${k.dim("No patterns yet")}${" ".repeat(i-19)}${n.v}`);else{let s=Math.max(...e.map(f=>f.count),1),m=14;for(let{domain:f,count:y}of e){let b=Math.round(y/s*m),w=m-b,R=k.green("\u2588".repeat(b))+k.dim("\u2591".repeat(w)),B=D(f,20),H=Ne(String(y),3);console.log(`${n.v} ${B} ${R} ${H} patterns ${n.v}`)}let d=new Set(e.map(f=>f.domain)),h=Q.filter(f=>!d.has(f)).slice(0,3);for(let f of h){let y=k.dim("\u2591".repeat(m)),b=D(f,20);console.log(`${n.v} ${b} ${y} 0 patterns ${n.v}`)}}console.log(`${n.bl}${g}${n.br}`),console.log("")}function Ie(a,t){let e=K(a),n=Math.max(0,t-e.length),i=Math.floor(n/2),g=n-i;return" ".repeat(i)+a+" ".repeat(g)}function D(a,t){let e=K(a),n=Math.max(0,t-e.length);return a+" ".repeat(n)}function Ne(a,t){let e=K(a),n=Math.max(0,t-e.length);return" ".repeat(n)+a}function K(a){return a.replace(/\x1b\[[0-9;]*m/g,"")}function N(){let a=A();return J.join(a,".agentic-qe","memory.db")}async function z(a,t){let e=t||`${a}.gz`;return await he(me(a),Te(),fe(e)),e}async function F(a,t){await he(me(a),_e(),fe(t))}async function V(a){try{let t=E(a,{readonly:!0}),e=t.prepare("PRAGMA integrity_check").get();return t.close(),e.integrity_check==="ok"?{valid:!0,message:"Database integrity verified"}:{valid:!1,message:`Integrity check failed: ${e.integrity_check}`}}catch(t){return{valid:!1,message:`Failed to verify: ${t instanceof Error?t.message:"unknown error"}`}}}async function Y(a){try{let t=E(a,{readonly:!0});if(!t.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='schema_version'").get())return t.close(),0;let n=t.prepare("SELECT version FROM schema_version WHERE id = 1").get();return t.close(),n?.version??0}catch{return 0}}var X="3.1.0",be={generate:"test-generation","test-generation":"test-generation",analyze:"coverage-analysis",coverage:"coverage-analysis","coverage-analysis":"coverage-analysis",run:"test-execution","test-execution":"test-execution",report:"quality-assessment",quality:"quality-assessment","quality-analysis":"quality-assessment",security:"security-compliance",sast:"security-compliance",owasp:"security-compliance",secrets:"security-compliance",audit:"security-compliance",recommend:"defect-intelligence",predict:"defect-intelligence","complexity-analysis":"code-intelligence","code-analysis":"code-intelligence",stabilize:"chaos-resilience",flaky:"chaos-resilience",quarantine:"chaos-resilience",retry:"chaos-resilience",stress:"chaos-resilience",load:"chaos-resilience",endurance:"chaos-resilience",baseline:"chaos-resilience"},we={generate:"test-template","test-generation":"test-template",analyze:"coverage-strategy",coverage:"coverage-strategy","coverage-analysis":"coverage-strategy",run:"test-template","test-execution":"test-template",report:"assertion-pattern",quality:"assertion-pattern","quality-analysis":"assertion-pattern",security:"assertion-pattern",sast:"assertion-pattern",owasp:"assertion-pattern",secrets:"assertion-pattern",audit:"assertion-pattern",recommend:"assertion-pattern",predict:"assertion-pattern","complexity-analysis":"assertion-pattern","code-analysis":"assertion-pattern",stabilize:"flaky-fix",flaky:"flaky-fix",quarantine:"flaky-fix",retry:"flaky-fix",stress:"perf-benchmark",load:"perf-benchmark",endurance:"perf-benchmark",baseline:"perf-benchmark",mock:"mock-pattern",dependency:"mock-pattern"};function Re(a){let t=E(a,{readonly:!0,fileMustExist:!0});try{let e=t.pragma("integrity_check");if(e.length!==1||e[0].integrity_check!=="ok")throw new Error("Database integrity verification failed");return{schemaVersion:(t.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='schema_version'").get()?t.prepare("SELECT version FROM schema_version WHERE id = 1").get():void 0)?.version??0,pages:t.pragma("page_count",{simple:!0}),verification:{valid:!0,message:"Database integrity verified"}}}finally{t.close()}}function G(a){return j(a)?$e(a):_($e(q(a)),Le(a))}function Se(a,t){if(G(a)===G(t))return!0;if(!j(a)||!j(t))return!1;let e=Z(a),n=Z(t);return e.dev===n.dev&&e.ino===n.ino}function ne(a,t){let e=G(a),n=G(t);for(let i of["","-wal","-shm","-journal"])if(Se(`${e}${i}`,t)||Se(a,`${n}${i}`))throw new Error("Backup source and destination must not alias the same database or its sidecars")}function ke(a){if(!Z(a).isFile())throw new Error("Backup input must be a regular file")}async function W(a,t,e={}){let n=E(a,{readonly:!0,fileMustExist:!0});try{let i=await n.backup(t);if(i.totalPages<=0||i.remainingPages!==0||e.expectedPages!==void 0&&i.totalPages!==e.expectedPages)throw new Error("SQLite snapshot did not complete; the source may be empty or the destination busy");if(e.standalone){let c=E(t,{fileMustExist:!0,walMode:!1});try{if(c.pragma("journal_mode = DELETE",{simple:!0})!=="delete")throw new Error("Could not create a standalone SQLite image")}finally{c.close()}}let g=Re(t);if(g.pages!==i.totalPages)throw new Error("SQLite snapshot page count does not match the completed backup");return g}finally{n.close()}}async function De(a,t,e={}){ke(a);let n=ve(e.compress?`${t}.gz`:t);await Ee(q(n),{recursive:!0}),ne(a,ve(t)),ne(a,n);let i=await xe(_(q(n),".aqe-backup-"));try{let g=_(i,"snapshot.db"),c=await W(a,g,{standalone:!0}),l=e.compress?await z(g):g;if(e.compress&&e.verify){let r=_(i,"verified.db");await F(l,r),Re(r)}let p=Number(((await te(a)).size/1024).toFixed(2)),u=Number(((await te(l)).size/1024).toFixed(2));if(["-wal","-shm","-journal"].some(r=>j(`${n}${r}`)))throw new Error("Backup destination has SQLite sidecars; choose an unused output path");return await je(l,n),{backupPath:n,sourceSizeKB:p,backupSizeKB:u,compressed:!!e.compress,schemaVersion:c.schemaVersion,verification:c.verification}}finally{await ee(i,{recursive:!0,force:!0})}}async function Ce(a,t,e={}){if(ke(a),await Ee(q(t),{recursive:!0}),ne(a,t),j(t)&&!e.force)throw new Error(`Database already exists at: ${t}. Use --force to overwrite`);let n=await xe(_(q(t),".aqe-restore-")),i;try{let g=a.endsWith(".gz"),c=_(n,"snapshot.db"),l=a;g&&(l=_(n,"decompressed.db"),await F(a,l));let p=await W(l,c,{standalone:!0}),u=Number(((await te(c)).size/1024).toFixed(2));if(j(t)){let r=new Date().toISOString().replace(/[:.]/g,"-"),s=`${t}.pre-restore-${r}-${Fe()}.db`;try{await W(t,s,{standalone:!0}),i=s}catch(m){throw await ee(s,{force:!0}),new Error("Cannot create a verified safety backup of the existing database; restore refused. Stop project processes and preserve the database and its sidecars before restoring into an absent destination.",{cause:m})}}return await W(c,t,{expectedPages:p.pages}),{sizeKB:u,schemaVersion:p.schemaVersion,wasCompressed:g,safetyBackupPath:i}}catch(g){if(i){let c=g instanceof Error?g.message:"SQLite snapshot failed";throw new Error(`Restore failed: ${c}; previous database snapshot preserved at ${i}`,{cause:g})}throw g}finally{await ee(n,{recursive:!0,force:!0})}}function Jt(){let a=new qe("learning").description("AQE self-learning system management (standalone, no claude-flow required)").addHelpText("after",`
4
4
  Examples:
5
5
  # Check learning system status
6
6
  aqe learning stats
@@ -16,33 +16,33 @@ Examples:
16
16
 
17
17
  # Run background learning consolidation
18
18
  aqe learning daemon --interval 3600
19
- `);return ze(a),Ve(a),We(a),Ge(a),He(a),Ue(a),Je(a),Ke(a),Ye(a),Xe(a),Ze(a),et(a),tt(a),nt(a),Qe(a),Me(a),ot(a),at(a),it(a),a}function Me(a){a.command("embedding-health").description("Display active and stored embedding-space provenance").option("--json","Output as JSON").action(async t=>{let e=v.join(A(),".agentic-qe","memory.db");if(!x(e))throw new Error('Database not found. Run "aqe init --auto" first.');let n=E(e,{readonly:!0});try{let i=n.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_pattern_embeddings'").get(),g=i?n.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(p=>p.name==="space_id"):!1,c=i?n.prepare(`SELECT ${g?"space_id":"NULL"} AS spaceId FROM qe_pattern_embeddings`).all():[],l=ae(c,se()?.spaceId??null);if(t.json){$(l);return}console.log(o.bold(`
19
+ `);return We(a),Ge(a),He(a),Ue(a),Je(a),Ke(a),Ye(a),Xe(a),Ze(a),et(a),tt(a),nt(a),ot(a),rt(a),Ve(a),ze(a),at(a),it(a),lt(a),a}function ze(a){a.command("embedding-health").description("Display active and stored embedding-space provenance").option("--json","Output as JSON").action(async t=>{let e=v.join(A(),".agentic-qe","memory.db");if(!x(e))throw new Error('Database not found. Run "aqe init --auto" first.');let n=E(e,{readonly:!0});try{let i=n.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_pattern_embeddings'").get(),g=i?n.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(p=>p.name==="space_id"):!1,c=i?n.prepare(`SELECT ${g?"space_id":"NULL"} AS spaceId FROM qe_pattern_embeddings`).all():[],l=ae(c,se()?.spaceId??null);if(t.json){$(l);return}console.log(o.bold(`
20
20
  Embedding Space Health
21
21
  `)),console.log(` Status: ${l.status}`),console.log(` Active space: ${l.activeSpaceId??"(runtime not initialized)"}`),console.log(` Stored spaces: ${l.storedSpaceIds.join(", ")||"(none)"}`),console.log(` Verified vectors: ${l.verifiedVectors}`),console.log(` Mismatched vectors: ${l.mismatchedVectors}`),console.log(` Unverified vectors: ${l.unverifiedVectors}
22
- `)}finally{n.close()}})}function Qe(a){a.command("backfill-embeddings").description("Generate embeddings for learned patterns that are missing vectors").option("-b, --batch-size <n>","Patterns per embedding batch","32").option("--dry-run","Report missing embeddings without writing").option("--json","Output as JSON").action(async t=>{let e=Number(t.batchSize);if(!Number.isInteger(e)||e<=0)throw new Error("batch size must be a positive integer");let n=ce();try{await n.initialize();let i=n.getGhostPatternCount();if(t.dryRun){t.json?$({dryRun:!0,batchSize:e,...i}):(console.log(o.bold(`
22
+ `)}finally{n.close()}})}function Ve(a){a.command("backfill-embeddings").description("Generate embeddings for learned patterns that are missing vectors").option("-b, --batch-size <n>","Patterns per embedding batch","32").option("--dry-run","Report missing embeddings without writing").option("--json","Output as JSON").action(async t=>{let e=Number(t.batchSize);if(!Number.isInteger(e)||e<=0)throw new Error("batch size must be a positive integer");let n=de();try{await n.initialize();let i=n.getGhostPatternCount();if(t.dryRun){t.json?$({dryRun:!0,batchSize:e,...i}):(console.log(o.bold(`
23
23
  Pattern Embedding Backfill (dry run)
24
- `)),console.log(` Patterns: ${i.total}`),console.log(` Missing embeddings: ${i.withoutEmbeddings}`),i.sampleGhostIds.length>0&&console.log(` Sample IDs: ${i.sampleGhostIds.join(", ")}`),console.log(""));return}let g=await n.backfillEmbeddings(e),c=n.getGhostPatternCount(),l={skipped:"vector index unavailable"};if(g.processed>0)try{let u=await C(),r=u.getLastVectorReconcile()??u.reconcileVectorIndex();r&&(l={ingested:r.ingested,missing:r.missing,capped:r.capped})}catch(u){l={skipped:u instanceof Error?u.message:String(u)}}let p={...g,batchSize:e,missingBefore:i.withoutEmbeddings,missingAfter:c.withoutEmbeddings,rvfIndex:l};t.json?$(p):(P("Pattern embedding backfill complete."),console.log(` Processed: ${g.processed}`),console.log(` Skipped: ${g.skipped}`),console.log(` Errors: ${g.errors}`),console.log(` Remaining missing: ${c.withoutEmbeddings}`),console.log(` Method: ${g.method}`),console.log("ingested"in l?` Vector index (RVF): ingested ${l.ingested} of ${l.missing} missing${l.capped?" (capped; rerun to continue)":""}`:` Vector index (RVF): not updated (${l.skipped})`),console.log(""))}catch(i){throw S(`backfill-embeddings failed: ${i instanceof Error?i.message:"unknown"}`),i}finally{n.close()}})}function ze(a){a.command("stats").description("Display learning system statistics").option("--json","Output as JSON").option("--detailed","Show detailed breakdown").action(async t=>{try{let n=await(await C()).getStats();if(t.json)$(n);else{console.log(o.bold(`
24
+ `)),console.log(` Patterns: ${i.total}`),console.log(` Missing embeddings: ${i.withoutEmbeddings}`),i.sampleGhostIds.length>0&&console.log(` Sample IDs: ${i.sampleGhostIds.join(", ")}`),console.log(""));return}let g=await n.backfillEmbeddings(e),c=n.getGhostPatternCount(),l={skipped:"vector index unavailable"};if(g.processed>0)try{let u=await C(),r=u.getLastVectorReconcile()??u.reconcileVectorIndex();r&&(l={ingested:r.ingested,missing:r.missing,capped:r.capped})}catch(u){l={skipped:u instanceof Error?u.message:String(u)}}let p={...g,batchSize:e,missingBefore:i.withoutEmbeddings,missingAfter:c.withoutEmbeddings,rvfIndex:l};t.json?$(p):(P("Pattern embedding backfill complete."),console.log(` Processed: ${g.processed}`),console.log(` Skipped: ${g.skipped}`),console.log(` Errors: ${g.errors}`),console.log(` Remaining missing: ${c.withoutEmbeddings}`),console.log(` Method: ${g.method}`),console.log("ingested"in l?` Vector index (RVF): ingested ${l.ingested} of ${l.missing} missing${l.capped?" (capped; rerun to continue)":""}`:` Vector index (RVF): not updated (${l.skipped})`),console.log(""))}catch(i){throw S(`backfill-embeddings failed: ${i instanceof Error?i.message:"unknown"}`),i}finally{n.close()}})}function We(a){a.command("stats").description("Display learning system statistics").option("--json","Output as JSON").option("--detailed","Show detailed breakdown").action(async t=>{try{let n=await(await C()).getStats();if(t.json)$(n);else{console.log(o.bold(`
25
25
  \u{1F4CA} AQE Learning System Statistics
26
26
  `)),console.log(o.bold("Patterns:")),console.log(` Total: ${o.cyan(n.totalPatterns)}`),console.log(` Short-term: ${n.patternStoreStats.byTier.shortTerm}`),console.log(` Long-term: ${n.patternStoreStats.byTier.longTerm}`),console.log(` Avg Confidence: ${(n.patternStoreStats.avgConfidence*100).toFixed(1)}%`),console.log(` Avg Quality: ${(n.patternStoreStats.avgQualityScore*100).toFixed(1)}%`),console.log(o.bold(`
27
27
  By Domain:`));let i=Object.entries(n.byDomain).filter(([c,l])=>l>0).sort((c,l)=>l[1]-c[1]);if(i.length===0)console.log(o.dim(" No patterns yet"));else for(let[c,l]of i)console.log(` ${c}: ${l}`);console.log(o.bold(`
28
- Learning:`)),console.log(` Routing Requests: ${n.routingRequests}`),console.log(` Avg Routing Confidence: ${(n.avgRoutingConfidence*100).toFixed(1)}%`),console.log(` Learning Outcomes: ${n.learningOutcomes}`),console.log(` Pattern Success Rate: ${(n.patternSuccessRate*100).toFixed(1)}%`),console.log(o.bold(`
28
+ Learning:`)),console.log(` Routing Requests: ${n.routingRequests}`),console.log(` Avg Routing Confidence: ${(n.avgRoutingConfidence*100).toFixed(1)}%`),console.log(` Learning Outcomes: ${ce(n)}`),console.log(` Pattern Success Rate: ${le(n)}`),console.log(o.bold(`
29
29
  Search Performance:`)),console.log(` Operations: ${n.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${n.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${n.patternStoreStats.hnswStats.nativeAvailable?o.green("\u2713"):o.dim("\u25CB")}`),console.log(` Vector Count: ${n.patternStoreStats.hnswStats.vectorCount}`);let g=n.asymmetricLearning;if(g&&(console.log(o.bold(`
30
30
  Asymmetric Learning (ADR-061):`)),console.log(` Failure Penalty Ratio: ${g.failurePenaltyRatio||"10:1"}`),console.log(` Quarantined Patterns: ${g.quarantinedPatterns||0}`),console.log(` Rehabilitated: ${g.rehabilitatedPatterns||0}`),console.log(` Avg Confidence Delta: ${((g.avgConfidenceDelta||0)*100).toFixed(1)}%`)),t.detailed){console.log(o.bold(`
31
- By Pattern Type:`));for(let[c,l]of Object.entries(n.patternStoreStats.byType))l>0&&console.log(` ${c}: ${l}`)}console.log("")}return}catch(e){throw S(`stats failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ve(a){a.command("consolidate").description("Consolidate patterns - promote successful patterns to long-term memory").option("--dry-run","Show what would be promoted without making changes").option("--threshold <n>","Minimum successful uses for promotion","3").option("--success-rate <n>","Minimum success rate for promotion (0-1)","0.7").option("--json","Output as JSON").action(async t=>{try{let e=await C(),n=Number(t.threshold),i=Number(t.successRate),g=.6;if(!Number.isInteger(n)||n<1)throw new Error("threshold must be a positive integer");if(!Number.isFinite(i)||i<0||i>1)throw new Error("success rate must be between 0 and 1");let c=[],l=await e.searchPatterns("",{limit:1e3});if(!l.success)throw new Error(l.error.message);for(let r of l.value){let s=r.pattern;s.tier==="short-term"&&s.successfulUses>=n&&s.successRate>=i&&s.confidence>=g&&c.push({id:s.id,name:s.name,domain:s.qeDomain,successfulUses:s.successfulUses,successRate:s.successRate,currentTier:s.tier})}let p=0,u=[];if(!t.dryRun)for(let r of c){let s=await e.promotePattern(r.id);s.success?p++:u.push({id:r.id,error:s.error.message})}if(t.json)$({dryRun:t.dryRun||!1,eligibleCount:c.length,promotedCount:p,failedCount:u.length,threshold:n,successRateMin:i,confidenceMin:g,patterns:c,failures:u});else{if(console.log(o.bold(`
31
+ By Pattern Type:`));for(let[c,l]of Object.entries(n.patternStoreStats.byType))l>0&&console.log(` ${c}: ${l}`)}console.log("")}return}catch(e){throw S(`stats failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ge(a){a.command("consolidate").description("Consolidate patterns - promote successful patterns to long-term memory").option("--dry-run","Show what would be promoted without making changes").option("--threshold <n>","Minimum successful uses for promotion","3").option("--success-rate <n>","Minimum success rate for promotion (0-1)","0.7").option("--json","Output as JSON").action(async t=>{try{let e=await C(),n=Number(t.threshold),i=Number(t.successRate),g=.6;if(!Number.isInteger(n)||n<1)throw new Error("threshold must be a positive integer");if(!Number.isFinite(i)||i<0||i>1)throw new Error("success rate must be between 0 and 1");let c=[],l=await e.searchPatterns("",{limit:1e3});if(!l.success)throw new Error(l.error.message);for(let r of l.value){let s=r.pattern;s.tier==="short-term"&&s.successfulUses>=n&&s.successRate>=i&&s.confidence>=g&&c.push({id:s.id,name:s.name,domain:s.qeDomain,successfulUses:s.successfulUses,successRate:s.successRate,currentTier:s.tier})}let p=0,u=[];if(!t.dryRun)for(let r of c){let s=await e.promotePattern(r.id);s.success?p++:u.push({id:r.id,error:s.error.message})}if(t.json)$({dryRun:t.dryRun||!1,eligibleCount:c.length,promotedCount:p,failedCount:u.length,threshold:n,successRateMin:i,confidenceMin:g,patterns:c,failures:u});else{if(console.log(o.bold(`
32
32
  \u{1F504} Pattern Consolidation
33
33
  `)),console.log(` Promotion threshold: ${n} successful uses`),console.log(` Minimum success rate: ${(i*100).toFixed(0)}%`),console.log(` Minimum confidence: ${(g*100).toFixed(0)}%`),console.log(` Eligible patterns: ${c.length}
34
34
  `),c.length===0)console.log(o.dim(" No patterns eligible for promotion yet."));else{console.log(o.bold(" Patterns to promote:"));for(let r of c)console.log(` ${o.cyan(r.name)}`),console.log(o.dim(` Domain: ${r.domain}, Uses: ${r.successfulUses}, Rate: ${(r.successRate*100).toFixed(0)}%`));if(t.dryRun)console.log(o.yellow(`
35
35
  Dry run - no changes made`));else if(console.log(o.green(`
36
- Promoted: ${p}`)),u.length>0){console.log(o.red(` Failed: ${u.length}`));for(let r of u)console.log(o.dim(` ${r.id}: ${r.error}`))}}console.log("")}return}catch(e){throw S(`consolidate failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function We(a){a.command("export").description("Export learned patterns for sharing").option("-o, --output <file>","Output file path","aqe-patterns.json").option("-d, --domain <domain>","Filter by domain").option("--long-term-only","Only export long-term patterns").option("--json","Output as JSON (to stdout)").action(async t=>{try{let n=await(await C()).searchPatterns("",{limit:1e4,domain:t.domain});if(!n.success)throw new Error(n.error.message);let i=n.value.map(c=>c.pattern).filter(c=>!t.longTermOnly||c.tier==="long-term"),g={version:"3.0.0",exportedAt:new Date().toISOString(),source:process.cwd(),patternCount:i.length,patterns:i.map(c=>({id:c.id,name:c.name,description:c.description,patternType:c.patternType,qeDomain:c.qeDomain,tier:c.tier,confidence:c.confidence,successRate:c.successRate,successfulUses:c.successfulUses,qualityScore:c.qualityScore,template:c.template,context:c.context}))};if(t.json)$(g);else{let c=v.resolve(t.output);Ce(c,JSON.stringify(g,null,2),"utf-8"),P(`Exported ${i.length} patterns to ${c}`)}return}catch(e){throw S(`export failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ge(a){a.command("import").description("Import patterns from file").requiredOption("-i, --input <file>","Input file path").option("--dry-run","Show what would be imported without making changes").option("--json","Output as JSON").action(async t=>{try{let e=v.resolve(t.input);if(!x(e))throw new Error(`File not found: ${e}`);let n=oe(e,"utf-8"),i=M(n);if(!i.patterns||!Array.isArray(i.patterns))throw new Error("Invalid pattern file format");let g=await C(),c=0,l=0,p=0,u=[];if(!t.dryRun)for(let r of i.patterns)try{let s=await g.storePattern({patternType:r.patternType,name:r.name,description:r.description,template:r.template,context:r.context});s.success?(c++,s.value.embedding&&s.value.embedding.length>0||p++):F(s.error)?(c++,p++):(l++,u.push(`${r.name}: ${s.error.message}`))}catch(s){l++,u.push(`${r.name}: ${s instanceof Error?s.message:"unknown"}`)}t.json?$({dryRun:t.dryRun||!1,totalPatterns:i.patterns.length,imported:c,skipped:l,pendingIndex:p,errors:u}):(console.log(o.bold(`
36
+ Promoted: ${p}`)),u.length>0){console.log(o.red(` Failed: ${u.length}`));for(let r of u)console.log(o.dim(` ${r.id}: ${r.error}`))}}console.log("")}return}catch(e){throw S(`consolidate failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function He(a){a.command("export").description("Export learned patterns for sharing").option("-o, --output <file>","Output file path","aqe-patterns.json").option("-d, --domain <domain>","Filter by domain").option("--long-term-only","Only export long-term patterns").option("--json","Output as JSON (to stdout)").action(async t=>{try{let n=await(await C()).searchPatterns("",{limit:1e4,domain:t.domain});if(!n.success)throw new Error(n.error.message);let i=n.value.map(c=>c.pattern).filter(c=>!t.longTermOnly||c.tier==="long-term"),g={version:"3.0.0",exportedAt:new Date().toISOString(),source:process.cwd(),patternCount:i.length,patterns:i.map(c=>({id:c.id,name:c.name,description:c.description,patternType:c.patternType,qeDomain:c.qeDomain,tier:c.tier,confidence:c.confidence,successRate:c.successRate,successfulUses:c.successfulUses,qualityScore:c.qualityScore,template:c.template,context:c.context}))};if(t.json)$(g);else{let c=v.resolve(t.output);Ae(c,JSON.stringify(g,null,2),"utf-8"),P(`Exported ${i.length} patterns to ${c}`)}return}catch(e){throw S(`export failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ue(a){a.command("import").description("Import patterns from file").requiredOption("-i, --input <file>","Input file path").option("--dry-run","Show what would be imported without making changes").option("--json","Output as JSON").action(async t=>{try{let e=v.resolve(t.input);if(!x(e))throw new Error(`File not found: ${e}`);let n=oe(e,"utf-8"),i=M(n);if(!i.patterns||!Array.isArray(i.patterns))throw new Error("Invalid pattern file format");let g=await C(),c=0,l=0,p=0,u=[];if(!t.dryRun)for(let r of i.patterns)try{let s=await g.storePattern({patternType:r.patternType,name:r.name,description:r.description,template:r.template,context:r.context});s.success?(c++,s.value.embedding&&s.value.embedding.length>0||p++):L(s.error)?(c++,p++):(l++,u.push(`${r.name}: ${s.error.message}`))}catch(s){l++,u.push(`${r.name}: ${s instanceof Error?s.message:"unknown"}`)}t.json?$({dryRun:t.dryRun||!1,totalPatterns:i.patterns.length,imported:c,skipped:l,pendingIndex:p,errors:u}):(console.log(o.bold(`
37
37
  \u{1F4E5} Pattern Import
38
38
  `)),console.log(` Source: ${e}`),console.log(` Total patterns: ${i.patterns.length}`),t.dryRun?(console.log(o.yellow(`
39
39
  Dry run - no changes made`)),console.log(` Would import: ${i.patterns.length} patterns`)):(console.log(o.green(`
40
- Imported: ${c}`)),p>0&&console.log(o.yellow(` Vector index pending: ${p} (run "aqe learning backfill-embeddings" once an embedder is available)`)),l>0&&console.log(o.yellow(` Skipped: ${l}`))),console.log(""));return}catch(e){throw S(`import failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function He(a){a.command("reset").description("Reset learning data (patterns and metrics)").option("--confirm","Confirm reset without prompting").option("--patterns-only","Only reset patterns, keep metrics").action(async t=>{try{if(!t.confirm){console.log(o.yellow(`
40
+ Imported: ${c}`)),p>0&&console.log(o.yellow(` Vector index pending: ${p} (run "aqe learning backfill-embeddings" once an embedder is available)`)),l>0&&console.log(o.yellow(` Skipped: ${l}`))),console.log(""));return}catch(e){throw S(`import failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Je(a){a.command("reset").description("Reset learning data (patterns and metrics)").option("--confirm","Confirm reset without prompting").option("--patterns-only","Only reset patterns, keep metrics").action(async t=>{try{if(!t.confirm){console.log(o.yellow(`
41
41
  \u26A0\uFE0F This will reset your learning data.`)),console.log(o.gray(` Use --confirm to proceed
42
42
  `));return}let e=A(),n=v.join(e,".agentic-qe"),i=[v.join(n,"data","patterns"),v.join(n,"data","hnsw")];t.patternsOnly||i.push(v.join(n,"data","learning-config.json")),console.log(o.bold(`
43
43
  \u{1F5D1}\uFE0F Resetting Learning Data
44
44
  `));for(let g of i)x(g)&&console.log(o.dim(` Removing: ${v.relative(e,g)}`));P(`Learning data reset. Run "aqe init --auto" to reinitialize.
45
- `);return}catch(e){throw S(`reset failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ue(a){a.command("extract").description("Extract QE patterns from existing learning experiences").option("--min-reward <n>","Minimum reward threshold for pattern extraction","0.7").option("--min-count <n>","Minimum occurrences to form a pattern","3").option("--dry-run","Show what would be extracted without saving").option("--json","Output as JSON").action(async t=>{try{let e=A(),n=v.join(e,".agentic-qe","memory.db");if(!x(n))throw new Error('No memory database found. Run "aqe init --auto" first.');let i=parseFloat(t.minReward),g=parseInt(t.minCount,10);console.log(o.bold(`
45
+ `);return}catch(e){throw S(`reset failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ke(a){a.command("extract").description("Extract QE patterns from existing learning experiences").option("--min-reward <n>","Minimum reward threshold for pattern extraction","0.7").option("--min-count <n>","Minimum occurrences to form a pattern","3").option("--dry-run","Show what would be extracted without saving").option("--json","Output as JSON").action(async t=>{try{let e=A(),n=v.join(e,".agentic-qe","memory.db");if(!x(n))throw new Error('No memory database found. Run "aqe init --auto" first.');let i=parseFloat(t.minReward),g=parseInt(t.minCount,10);console.log(o.bold(`
46
46
  \u{1F52C} Pattern Extraction from Learning Experiences
47
47
  `)),console.log(` Min reward threshold: ${i}`),console.log(` Min occurrences: ${g}
48
48
  `);let c=E(n,{readonly:!0}),l=c.prepare(`
@@ -53,7 +53,7 @@ By Pattern Type:`));for(let[c,l]of Object.entries(n.patternStoreStats.byType))l>
53
53
  SELECT substr(key, 1, 40) as key_prefix, COUNT(*) as count
54
54
  FROM memory_entries WHERE key LIKE 'phase2/learning/%'
55
55
  GROUP BY substr(key, 1, 40) HAVING COUNT(*) >= ? ORDER BY COUNT(*) DESC LIMIT 20
56
- `).all(g)}catch{}c.close();let u=[];for(let r of l){let s=he[r.task_type]||"code-intelligence",m=ye[r.task_type]||"test-template",d=r.actions?r.actions.split(",").slice(0,5):[];u.push({name:`${r.task_type}-success-pattern`,domain:s,patternType:m,confidence:Math.min(.95,r.avg_reward/2),sourceCount:r.count,avgReward:r.avg_reward,actions:d})}if(t.json)$({minReward:i,minCount:g,dryRun:t.dryRun||!1,experienceGroups:l.length,memoryPatterns:p.length,extractedPatterns:u});else{if(console.log(o.bold("Learning Experience Groups:")),l.length===0)console.log(o.dim(" No qualifying experience groups found"));else for(let r of l){let s=r.avg_reward>=1?o.green:r.avg_reward>=.5?o.yellow:o.red;console.log(` ${o.cyan(r.task_type)}`),console.log(` Count: ${r.count}, Avg Reward: ${s(r.avg_reward.toFixed(2))}`)}console.log(o.bold(`
56
+ `).all(g)}catch{}c.close();let u=[];for(let r of l){let s=be[r.task_type]||"code-intelligence",m=we[r.task_type]||"test-template",d=r.actions?r.actions.split(",").slice(0,5):[];u.push({name:`${r.task_type}-success-pattern`,domain:s,patternType:m,confidence:Math.min(.95,r.avg_reward/2),sourceCount:r.count,avgReward:r.avg_reward,actions:d})}if(t.json)$({minReward:i,minCount:g,dryRun:t.dryRun||!1,experienceGroups:l.length,memoryPatterns:p.length,extractedPatterns:u});else{if(console.log(o.bold("Learning Experience Groups:")),l.length===0)console.log(o.dim(" No qualifying experience groups found"));else for(let r of l){let s=r.avg_reward>=1?o.green:r.avg_reward>=.5?o.yellow:o.red;console.log(` ${o.cyan(r.task_type)}`),console.log(` Count: ${r.count}, Avg Reward: ${s(r.avg_reward.toFixed(2))}`)}console.log(o.bold(`
57
57
  Memory Pattern Sources:`));for(let r of p.slice(0,10))console.log(` ${r.key_prefix}... (${r.count})`);if(console.log(o.bold(`
58
58
  Extracted Patterns:`)),u.length===0)console.log(o.dim(" No patterns extracted"));else for(let r of u)console.log(` ${o.green("+")} ${o.cyan(r.name)}`),console.log(o.dim(` Domain: ${r.domain}, Type: ${r.patternType}`)),console.log(o.dim(` Confidence: ${(r.confidence*100).toFixed(0)}%, Sources: ${r.sourceCount}`));if(!t.dryRun&&u.length>0){let r=await C(),s=0,m=[];for(let d of u)try{let h=d.actions.length>0?`// ${d.name}
59
59
  // Steps: ${d.actions.join(" -> ")}
@@ -61,47 +61,47 @@ Extracted Patterns:`)),u.length===0)console.log(o.dim(" No patterns extracted")
61
61
  {{implementation}}`:`// ${d.name}
62
62
  // Extracted pattern with ${d.sourceCount} successful uses
63
63
 
64
- {{implementation}}`,f=await r.storePattern({patternType:d.patternType,name:d.name,description:`Extracted from ${d.sourceCount} learning experiences with avg reward ${d.avgReward.toFixed(2)}`,template:{type:"code",content:h,variables:[{name:"implementation",type:"code",required:!0,description:"Implementation code for this pattern"}]},context:{tags:[d.domain,d.patternType,`sources:${d.sourceCount}`,`reward:${d.avgReward.toFixed(2)}`]}});f.success||F(f.error)?s++:m.push(`${d.name}: ${f.error.message}`)}catch(h){m.push(`${d.name}: ${h instanceof Error?h.message:"unknown"}`)}console.log(o.green(`
64
+ {{implementation}}`,f=await r.storePattern({patternType:d.patternType,name:d.name,description:`Extracted from ${d.sourceCount} learning experiences with avg reward ${d.avgReward.toFixed(2)}`,template:{type:"code",content:h,variables:[{name:"implementation",type:"code",required:!0,description:"Implementation code for this pattern"}]},context:{tags:[d.domain,d.patternType,`sources:${d.sourceCount}`,`reward:${d.avgReward.toFixed(2)}`]}});f.success||L(f.error)?s++:m.push(`${d.name}: ${f.error.message}`)}catch(h){m.push(`${d.name}: ${h instanceof Error?h.message:"unknown"}`)}console.log(o.green(`
65
65
  \u2713 Stored ${s} new patterns`)),m.length>0&&m.length<=5&&console.log(o.yellow(` Errors: ${m.slice(0,3).join(", ")}${m.length>3?"...":""}`))}else t.dryRun&&console.log(o.yellow(`
66
- Dry run - no patterns stored`));console.log("")}return}catch(e){throw S(`extract failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Je(a){a.command("dashboard").description("Display learning system dashboard with metrics and trends").option("--json","Output as JSON").option("--save-snapshot","Save a daily metrics snapshot").action(async t=>{try{let e=A(),n=de(e);await n.initialize(),t.saveSnapshot&&(await n.saveSnapshot(),P("Daily snapshot saved"));let i=await n.getDashboardData();n.close(),t.json?$(i):fe(i);return}catch(e){throw S(`dashboard failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ke(a){a.command("info").description("Show learning system configuration and paths").action(async()=>{try{let t=A(),e=v.join(t,".agentic-qe");console.log(o.bold(`
66
+ Dry run - no patterns stored`));console.log("")}return}catch(e){throw S(`extract failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ye(a){a.command("dashboard").description("Display learning system dashboard with metrics and trends").option("--json","Output as JSON").option("--save-snapshot","Save a daily metrics snapshot").action(async t=>{try{let e=A(),n=pe(e);await n.initialize(),t.saveSnapshot&&(await n.saveSnapshot(),P("Daily snapshot saved"));let i=await n.getDashboardData();n.close(),t.json?$(i):ye(i);return}catch(e){throw S(`dashboard failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Xe(a){a.command("info").description("Show learning system configuration and paths").action(async()=>{try{let t=A(),e=v.join(t,".agentic-qe");console.log(o.bold(`
67
67
  \u{1F4CB} AQE Learning System Info
68
68
  `)),console.log(o.bold("Paths:")),console.log(` Data directory: ${e}`),console.log(` Memory database: ${v.join(e,"memory.db")}`),console.log(` HNSW index: ${v.join(e,"data","hnsw")}`),console.log(` Patterns: ${v.join(e,"data","patterns")}`),console.log(o.bold(`
69
69
  Configuration:`)),console.log(` Learning enabled: ${process.env.AQE_LEARNING_ENABLED!=="false"?o.green("yes"):o.red("no")}`),console.log(` V3 mode: ${process.env.AQE_V3_MODE==="true"?o.green("yes"):o.dim("no")}`),console.log(` Promotion threshold: ${process.env.AQE_V3_PATTERN_PROMOTION_THRESHOLD||"3"} uses`),console.log(` Success rate threshold: ${process.env.AQE_V3_SUCCESS_RATE_THRESHOLD||"0.7"}`),console.log(o.bold(`
70
70
  Domains:`)),console.log(` ${Q.join(", ")}`),console.log(o.bold(`
71
71
  Hooks:`)),console.log(" Configure in .claude/settings.json"),console.log(` Events: pre-edit, post-edit, pre-task, post-task, route
72
- `);return}catch(t){throw S(`info failed: ${t instanceof Error?t.message:"unknown"}`),t}})}function Ye(a){a.command("backup").description("Backup learning database to a file").option("-o, --output <path>","Dedicated backup artifact path; never another live database").option("--compress","Compress backup with gzip").option("--verify","Verify backup integrity after creation").option("--json","Output as JSON").action(async t=>{try{let e=N();if(!x(e))throw new Error(`No learning database found at: ${e}`);let n=new Date().toISOString().replace(/[:.]/g,"-").slice(0,23),i=v.join(process.cwd(),"backups",`learning-${n}-${Le()}.db`),g=t.output?v.resolve(t.output):i,c=await Re(e,g,t),{backupPath:l,sourceSizeKB:p,backupSizeKB:u,schemaVersion:r}=c,s=t.verify?c.verification:void 0;if(t.json)$({success:!0,sourcePath:e,backupPath:l,sourceSizeKB:p,backupSizeKB:u,compressed:t.compress||!1,schemaVersion:r,verification:s,timestamp:new Date().toISOString()});else{if(console.log(o.bold(`
72
+ `);return}catch(t){throw S(`info failed: ${t instanceof Error?t.message:"unknown"}`),t}})}function Ze(a){a.command("backup").description("Backup learning database to a file").option("-o, --output <path>","Dedicated backup artifact path; never another live database").option("--compress","Compress backup with gzip").option("--verify","Verify backup integrity after creation").option("--json","Output as JSON").action(async t=>{try{let e=N();if(!x(e))throw new Error(`No learning database found at: ${e}`);let n=new Date().toISOString().replace(/[:.]/g,"-").slice(0,23),i=v.join(process.cwd(),"backups",`learning-${n}-${Be()}.db`),g=t.output?v.resolve(t.output):i,c=await De(e,g,t),{backupPath:l,sourceSizeKB:p,backupSizeKB:u,schemaVersion:r}=c,s=t.verify?c.verification:void 0;if(t.json)$({success:!0,sourcePath:e,backupPath:l,sourceSizeKB:p,backupSizeKB:u,compressed:t.compress||!1,schemaVersion:r,verification:s,timestamp:new Date().toISOString()});else{if(console.log(o.bold(`
73
73
  \u{1F4BE} Learning Database Backup
74
74
  `)),console.log(` Source: ${e}`),console.log(` Source size: ${p} KB`),console.log(` Backup: ${l}`),console.log(` Backup size: ${u} KB`),console.log(` Schema version: ${r}`),t.compress){let m=((1-u/p)*100).toFixed(1);console.log(` Compression: ${m}% reduction`)}s&&console.log(s.valid?o.green(` Verification: ${s.message}`):o.red(` Verification: ${s.message}`)),P(`Backup saved to: ${l}
75
- `)}return}catch(e){throw S(`backup failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Xe(a){a.command("restore").description("Restore a verified learning database backup (stop project writers first)").requiredOption("-i, --input <path>","Backup file path to restore from").option("--verify","Verify backup integrity before restore (always enforced)").option("--force","Overwrite existing database without confirmation").option("--json","Output as JSON").action(async t=>{try{let e=v.resolve(t.input),n=N();if(!x(e))throw new Error(`Backup file not found: ${e}`);let i=await ke(e,n,{force:t.force}),{sizeKB:g,schemaVersion:c,wasCompressed:l,safetyBackupPath:p}=i;t.json?$({success:!0,backupPath:e,restoredPath:n,sizeKB:g,schemaVersion:c,wasCompressed:l,safetyBackupPath:p,timestamp:new Date().toISOString()}):(console.log(o.bold(`
75
+ `)}return}catch(e){throw S(`backup failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function et(a){a.command("restore").description("Restore a verified learning database backup (stop project writers first)").requiredOption("-i, --input <path>","Backup file path to restore from").option("--verify","Verify backup integrity before restore (always enforced)").option("--force","Overwrite existing database without confirmation").option("--json","Output as JSON").action(async t=>{try{let e=v.resolve(t.input),n=N();if(!x(e))throw new Error(`Backup file not found: ${e}`);let i=await Ce(e,n,{force:t.force}),{sizeKB:g,schemaVersion:c,wasCompressed:l,safetyBackupPath:p}=i;t.json?$({success:!0,backupPath:e,restoredPath:n,sizeKB:g,schemaVersion:c,wasCompressed:l,safetyBackupPath:p,timestamp:new Date().toISOString()}):(console.log(o.bold(`
76
76
  \u{1F504} Learning Database Restore
77
77
  `)),console.log(` Backup: ${e}`),console.log(` Restored to: ${n}`),console.log(` Size: ${g.toFixed(2)} KB`),console.log(` Schema version: ${c}`),p&&console.log(` Previous database: ${p}`),P(`Database restored successfully
78
- `));return}catch(e){throw S(`restore failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function Ze(a){a.command("verify").description("Verify learning database integrity").option("-f, --file <path>","Database file to verify (defaults to current)").option("--json","Output as JSON").action(async t=>{try{let e=t.file?v.resolve(t.file):N();if(!x(e))throw new Error(`Database file not found: ${e}`);let n=await V(e),i=await Y(e),g=await Be(e),c={};try{let l=E(e,{readonly:!0});for(let p of["qe_patterns","qe_trajectories","captured_experiences","kv_store","vectors"])try{let u=l.prepare(`SELECT COUNT(*) as count FROM ${p}`).get();c[p]=u.count}catch{}l.close()}catch{}if(t.json)$({valid:n.valid,message:n.message,path:e,sizeKB:parseFloat((g.size/1024).toFixed(2)),schemaVersion:i,tableCounts:c,timestamp:new Date().toISOString()});else{if(console.log(o.bold(`
78
+ `));return}catch(e){throw S(`restore failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function tt(a){a.command("verify").description("Verify learning database integrity").option("-f, --file <path>","Database file to verify (defaults to current)").option("--json","Output as JSON").action(async t=>{try{let e=t.file?v.resolve(t.file):N();if(!x(e))throw new Error(`Database file not found: ${e}`);let n=await V(e),i=await Y(e),g=await Qe(e),c={};try{let l=E(e,{readonly:!0});for(let p of["qe_patterns","qe_trajectories","captured_experiences","kv_store","vectors"])try{let u=l.prepare(`SELECT COUNT(*) as count FROM ${p}`).get();c[p]=u.count}catch{}l.close()}catch{}if(t.json)$({valid:n.valid,message:n.message,path:e,sizeKB:parseFloat((g.size/1024).toFixed(2)),schemaVersion:i,tableCounts:c,timestamp:new Date().toISOString()});else{if(console.log(o.bold(`
79
79
  \u{1F50D} Database Verification
80
80
  `)),console.log(` Path: ${e}`),console.log(` Size: ${(g.size/1024).toFixed(2)} KB`),console.log(` Schema version: ${i}`),console.log(n.valid?o.green(` Status: ${n.message}`):o.red(` Status: ${n.message}`)),Object.keys(c).length>0){console.log(o.bold(`
81
- Table Counts:`));for(let[l,p]of Object.entries(c))console.log(` ${l}: ${p}`)}console.log("")}if(!n.valid)throw new Error(`Database verification failed: ${n.message}`);return}catch(e){throw S(`verify failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function et(a){a.command("export-full").description("Export all learning data including patterns, trajectories, and experiences").option("-o, --output <file>","Output file path","aqe-learning-export.json").option("--compress","Compress output with gzip").option("--include-trajectories","Include learning trajectories").option("--include-experiences","Include learning experiences").option("--json","Output as JSON (to stdout)").action(async t=>{try{let e=N();if(!x(e))throw new Error('No learning database found. Run "aqe init --auto" first.');let n=await C(),i=await Y(e),g=await n.searchPatterns("",{limit:1e4});if(!g.success)throw new Error(g.error.message);let c=g.value.map(p=>({id:p.pattern.id,name:p.pattern.name,description:p.pattern.description,patternType:p.pattern.patternType,qeDomain:p.pattern.qeDomain,tier:p.pattern.tier,confidence:p.pattern.confidence,successRate:p.pattern.successRate,successfulUses:p.pattern.successfulUses,qualityScore:p.pattern.qualityScore,template:p.pattern.template,context:p.pattern.context,createdAt:p.pattern.createdAt instanceof Date?p.pattern.createdAt.toISOString():p.pattern.createdAt||void 0,lastUsedAt:p.pattern.lastUsedAt instanceof Date?p.pattern.lastUsedAt.toISOString():p.pattern.lastUsedAt||void 0})),l={version:X,exportedAt:new Date().toISOString(),source:process.cwd(),schemaVersion:i,patternCount:c.length,patterns:c};if(t.includeTrajectories)try{let p=E(e,{readonly:!0}),u=p.prepare("SELECT id, task, agent, domain, success, steps_json FROM qe_trajectories ORDER BY started_at DESC LIMIT 1000").all();l.trajectories=u.map(r=>({id:r.id,task:r.task,agent:r.agent,domain:r.domain,success:r.success,stepsJson:r.steps_json})),p.close()}catch{}if(t.includeExperiences)try{let p=E(e,{readonly:!0}),u=p.prepare("SELECT domain as task_type, agent as action, AVG(quality) as avg_reward, COUNT(*) as count FROM captured_experiences WHERE agent != 'cli-hook' GROUP BY domain, agent ORDER BY count DESC LIMIT 500").all();l.experiences=u.map(s=>({taskType:s.task_type,action:s.action,reward:s.avg_reward,count:s.count}));let r=p.prepare("SELECT COUNT(*) as total, AVG(quality) as avg_reward FROM captured_experiences WHERE agent != 'cli-hook'").get();l.metadata={totalExperiences:r.total,avgReward:r.avg_reward},p.close()}catch{}if(t.json)$(l);else{let p=v.resolve(t.output);if(Ce(p,JSON.stringify(l,null,2),"utf-8"),t.compress){let u=await z(p);await I(p),p=u}console.log(o.bold(`
81
+ Table Counts:`));for(let[l,p]of Object.entries(c))console.log(` ${l}: ${p}`)}console.log("")}if(!n.valid)throw new Error(`Database verification failed: ${n.message}`);return}catch(e){throw S(`verify failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function nt(a){a.command("export-full").description("Export all learning data including patterns, trajectories, and experiences").option("-o, --output <file>","Output file path","aqe-learning-export.json").option("--compress","Compress output with gzip").option("--include-trajectories","Include learning trajectories").option("--include-experiences","Include learning experiences").option("--json","Output as JSON (to stdout)").action(async t=>{try{let e=N();if(!x(e))throw new Error('No learning database found. Run "aqe init --auto" first.');let n=await C(),i=await Y(e),g=await n.searchPatterns("",{limit:1e4});if(!g.success)throw new Error(g.error.message);let c=g.value.map(p=>({id:p.pattern.id,name:p.pattern.name,description:p.pattern.description,patternType:p.pattern.patternType,qeDomain:p.pattern.qeDomain,tier:p.pattern.tier,confidence:p.pattern.confidence,successRate:p.pattern.successRate,successfulUses:p.pattern.successfulUses,qualityScore:p.pattern.qualityScore,template:p.pattern.template,context:p.pattern.context,createdAt:p.pattern.createdAt instanceof Date?p.pattern.createdAt.toISOString():p.pattern.createdAt||void 0,lastUsedAt:p.pattern.lastUsedAt instanceof Date?p.pattern.lastUsedAt.toISOString():p.pattern.lastUsedAt||void 0})),l={version:X,exportedAt:new Date().toISOString(),source:process.cwd(),schemaVersion:i,patternCount:c.length,patterns:c};if(t.includeTrajectories)try{let p=E(e,{readonly:!0}),u=p.prepare("SELECT id, task, agent, domain, success, steps_json FROM qe_trajectories ORDER BY started_at DESC LIMIT 1000").all();l.trajectories=u.map(r=>({id:r.id,task:r.task,agent:r.agent,domain:r.domain,success:r.success,stepsJson:r.steps_json})),p.close()}catch{}if(t.includeExperiences)try{let p=E(e,{readonly:!0}),u=p.prepare("SELECT domain as task_type, agent as action, AVG(quality) as avg_reward, COUNT(*) as count FROM captured_experiences WHERE agent != 'cli-hook' GROUP BY domain, agent ORDER BY count DESC LIMIT 500").all();l.experiences=u.map(s=>({taskType:s.task_type,action:s.action,reward:s.avg_reward,count:s.count}));let r=p.prepare("SELECT COUNT(*) as total, AVG(quality) as avg_reward FROM captured_experiences WHERE agent != 'cli-hook'").get();l.metadata={totalExperiences:r.total,avgReward:r.avg_reward},p.close()}catch{}if(t.json)$(l);else{let p=v.resolve(t.output);if(Ae(p,JSON.stringify(l,null,2),"utf-8"),t.compress){let u=await z(p);await I(p),p=u}console.log(o.bold(`
82
82
  \u{1F4E4} Learning Data Export
83
83
  `)),console.log(` Patterns: ${c.length}`),l.trajectories&&console.log(` Trajectories: ${l.trajectories.length}`),l.experiences&&console.log(` Experience groups: ${l.experiences.length}`),console.log(` Schema version: ${i}`),console.log(` Export format: ${X}`),P(`Exported to: ${p}
84
- `)}return}catch(e){throw S(`export-full failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function tt(a){a.command("import-merge").description("Import and merge patterns from export file (preserves existing data)").requiredOption("-i, --input <file>","Input file path").option("--skip-duplicates","Skip patterns with matching names (default: update)").option("--dry-run","Show what would be imported without making changes").option("--json","Output as JSON").action(async t=>{try{let e=v.resolve(t.input);if(!x(e))throw new Error(`File not found: ${e}`);let n;if(e.endsWith(".gz")){let f=e.replace(".gz",".tmp.json");await L(e,f),n=oe(f,"utf-8"),await I(f)}else n=oe(e,"utf-8");let i=M(n);if(!i.patterns||!Array.isArray(i.patterns))throw new Error("Invalid import file format: missing patterns array");let g=await C(),c=await g.searchPatterns("",{limit:1e4}),l=new Set;if(c.success)for(let f of c.value)l.add(f.pattern.name);let p=0,u=0,r=0,s=[];if(!t.dryRun)for(let f of i.patterns){let y=l.has(f.name);if(y&&t.skipDuplicates){u++;continue}try{let b=await g.storePattern({patternType:f.patternType,name:f.name,description:f.description,template:f.template,context:f.context});b.success||F(b.error)?y?r++:p++:(u++,s.push(`${f.name}: ${b.error.message}`))}catch(b){u++,s.push(`${f.name}: ${b instanceof Error?b.message:"unknown"}`)}}let m=0,d=0,h=0;if(t.dryRun)for(let f of i.patterns){let y=l.has(f.name);y&&t.skipDuplicates?d++:y?h++:m++}t.json?$({dryRun:t.dryRun||!1,importVersion:i.version,totalPatterns:i.patterns.length,imported:t.dryRun?m:p,updated:t.dryRun?h:r,skipped:t.dryRun?d:u,errors:s.slice(0,10)}):(console.log(o.bold(`
84
+ `)}return}catch(e){throw S(`export-full failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function ot(a){a.command("import-merge").description("Import and merge patterns from export file (preserves existing data)").requiredOption("-i, --input <file>","Input file path").option("--skip-duplicates","Skip patterns with matching names (default: update)").option("--dry-run","Show what would be imported without making changes").option("--json","Output as JSON").action(async t=>{try{let e=v.resolve(t.input);if(!x(e))throw new Error(`File not found: ${e}`);let n;if(e.endsWith(".gz")){let f=e.replace(".gz",".tmp.json");await F(e,f),n=oe(f,"utf-8"),await I(f)}else n=oe(e,"utf-8");let i=M(n);if(!i.patterns||!Array.isArray(i.patterns))throw new Error("Invalid import file format: missing patterns array");let g=await C(),c=await g.searchPatterns("",{limit:1e4}),l=new Set;if(c.success)for(let f of c.value)l.add(f.pattern.name);let p=0,u=0,r=0,s=[];if(!t.dryRun)for(let f of i.patterns){let y=l.has(f.name);if(y&&t.skipDuplicates){u++;continue}try{let b=await g.storePattern({patternType:f.patternType,name:f.name,description:f.description,template:f.template,context:f.context});b.success||L(b.error)?y?r++:p++:(u++,s.push(`${f.name}: ${b.error.message}`))}catch(b){u++,s.push(`${f.name}: ${b instanceof Error?b.message:"unknown"}`)}}let m=0,d=0,h=0;if(t.dryRun)for(let f of i.patterns){let y=l.has(f.name);y&&t.skipDuplicates?d++:y?h++:m++}t.json?$({dryRun:t.dryRun||!1,importVersion:i.version,totalPatterns:i.patterns.length,imported:t.dryRun?m:p,updated:t.dryRun?h:r,skipped:t.dryRun?d:u,errors:s.slice(0,10)}):(console.log(o.bold(`
85
85
  \u{1F4E5} Learning Data Import (Merge)
86
86
  `)),console.log(` Source: ${e}`),console.log(` Export version: ${i.version||"unknown"}`),console.log(` Total patterns: ${i.patterns.length}`),console.log(` Existing patterns: ${l.size}`),t.dryRun?(console.log(o.yellow(`
87
87
  Dry run - no changes made`)),console.log(` Would import: ${m}
88
88
  Would update: ${h}
89
89
  Would skip: ${d}`)):(console.log(o.green(`
90
- Imported: ${p}`)),console.log(o.blue(` Updated: ${r}`)),u>0&&console.log(o.yellow(` Skipped: ${u}`)),s.length>0&&console.log(o.red(` Errors: ${s.length}`))),console.log(""));return}catch(e){throw S(`import-merge failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function nt(a){a.command("dream").description("Run dream cycles for pattern discovery via spreading activation").option("--duration <ms>","Duration of dream cycle in milliseconds","30000").option("--quick","Run a quick 5-second dream cycle").option("--full","Run a full 30-second dream cycle").option("--status","Show dream system status").option("--history","Show past dream cycles").option("--insights","Show pending insights from previous cycles").option("--apply <id>","Apply a specific insight by ID").option("--limit <n>","Maximum results for history/insights","20").option("--min-patterns <n>","Minimum patterns required to dream","10").option("--json","Output as JSON").action(async t=>{try{let{createDreamEngine:e}=await import("./dream-UDLM6M55.js");if(t.status){let r=e();await r.initialize();let s=r.isDreaming(),m=await r.getDreamHistory(100),d=await r.getPendingInsights(100),h=m.reduce((y,b)=>y+b.insightsGenerated,0),f=m[0];if(t.json)$({isDreaming:s,totalCycles:m.length,totalInsights:h,pendingInsights:d.length,lastDreamTime:f?.startTime.toISOString()||null});else{if(console.log(o.bold(`
90
+ Imported: ${p}`)),console.log(o.blue(` Updated: ${r}`)),u>0&&console.log(o.yellow(` Skipped: ${u}`)),s.length>0&&console.log(o.red(` Errors: ${s.length}`))),console.log(""));return}catch(e){throw S(`import-merge failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function rt(a){a.command("dream").description("Run dream cycles for pattern discovery via spreading activation").option("--duration <ms>","Duration of dream cycle in milliseconds","30000").option("--quick","Run a quick 5-second dream cycle").option("--full","Run a full 30-second dream cycle").option("--status","Show dream system status").option("--history","Show past dream cycles").option("--insights","Show pending insights from previous cycles").option("--apply <id>","Apply a specific insight by ID").option("--limit <n>","Maximum results for history/insights","20").option("--min-patterns <n>","Minimum patterns required to dream","10").option("--json","Output as JSON").action(async t=>{try{let{createDreamEngine:e}=await import("./dream-UA7MKOPQ.js");if(t.status){let r=e();await r.initialize();let s=r.isDreaming(),m=await r.getDreamHistory(100),d=await r.getPendingInsights(100),h=m.reduce((y,b)=>y+b.insightsGenerated,0),f=m[0];if(t.json)$({isDreaming:s,totalCycles:m.length,totalInsights:h,pendingInsights:d.length,lastDreamTime:f?.startTime.toISOString()||null});else{if(console.log(o.bold(`
91
91
  \u{1F319} Dream System Status
92
92
  `)),console.log(` Currently dreaming: ${s?o.green("Yes"):o.dim("No")}`),console.log(` Total dream cycles: ${m.length}`),console.log(` Total insights generated: ${h}`),console.log(` Pending insights: ${d.length}`),console.log(` Last dream: ${f?f.startTime.toISOString():o.dim("never")}`),m.length>0){console.log(o.bold(`
93
93
  Recent cycles:`));for(let y of m.slice(0,3)){let b=y.status==="completed"?o.green(y.status):o.yellow(y.status);console.log(` ${y.id.slice(0,8)} | ${b} | ${y.durationMs||0}ms | ${y.insightsGenerated} insights`)}}console.log("")}await r.close();return}if(t.history){let r=parseInt(t.limit,10),s=e();await s.initialize();let m=await s.getDreamHistory(r);if(t.json)$(m.map(d=>({id:d.id,startTime:d.startTime.toISOString(),endTime:d.endTime?.toISOString(),durationMs:d.durationMs,status:d.status,conceptsProcessed:d.conceptsProcessed,associationsFound:d.associationsFound,insightsGenerated:d.insightsGenerated})));else{if(console.log(o.bold(`
94
94
  \u{1F319} Dream Cycle History (${m.length} cycles)
95
95
  `)),m.length===0)console.log(o.dim(" No dream cycles found. Run: aqe learning dream"));else for(let d of m){let h=d.status==="completed"?o.green("\u2713"):d.status==="failed"?o.red("\u2717"):o.yellow("\u22EF");console.log(` ${h} ${d.id.slice(0,8)} | ${d.startTime.toISOString()}`),console.log(o.dim(` Duration: ${d.durationMs||0}ms | Concepts: ${d.conceptsProcessed} | Associations: ${d.associationsFound} | Insights: ${d.insightsGenerated}`))}console.log("")}await s.close();return}if(t.insights){let r=parseInt(t.limit,10),s=e();await s.initialize();let m=await s.getPendingInsights(r);if(t.json)$(m.map(d=>({id:d.id,type:d.type,description:d.description,noveltyScore:d.noveltyScore,confidenceScore:d.confidenceScore,actionable:d.actionable,applied:d.applied||!1,suggestedAction:d.suggestedAction,createdAt:d.createdAt?.toISOString()})));else{if(console.log(o.bold(`
96
96
  \u{1F4A1} Pending Dream Insights (${m.length})
97
- `)),m.length===0)console.log(o.dim(" No pending insights. Run a dream cycle first: aqe learning dream"));else for(let d of m){let h=d.noveltyScore>=.7?o.green(`${(d.noveltyScore*100).toFixed(0)}%`):o.yellow(`${(d.noveltyScore*100).toFixed(0)}%`),f=d.confidenceScore>=.7?o.green(`${(d.confidenceScore*100).toFixed(0)}%`):o.yellow(`${(d.confidenceScore*100).toFixed(0)}%`);console.log(` ${o.cyan(d.id.slice(0,8))} [${d.type}] ${d.actionable?"\u26A1":" "}`),console.log(` ${d.description}`),console.log(o.dim(` Novelty: ${h} | Confidence: ${f}`)),d.suggestedAction&&console.log(o.dim(` Action: ${d.suggestedAction}`))}console.log("")}await s.close();return}if(t.apply){let r=t.apply,s=e();await s.initialize();let d=(await s.getPendingInsights(100)).find(w=>w.id===r||w.id.startsWith(r));if(!d)throw await s.close(),new Error(`Insight not found: ${r}`);if(!d.actionable)throw await s.close(),new Error(`Insight ${r} is not actionable`);let h=await s.applyInsight(d.id),y=await(await C()).storePattern({patternType:"test-template",name:`Dream Insight: ${d.type}`,description:`${d.description} (confidence: ${d.confidenceScore.toFixed(2)})`,template:{type:"workflow",content:d.suggestedAction||d.description,variables:[]},context:{tags:["dream-generated",d.type,...d.sourceConcepts.slice(0,3)],complexity:"medium"}}),b=y.success?y.value.id:F(y.error);if(t.json?$({insightId:d.id,applied:h.success,patternId:b,error:h.error||(b||y.success?null:y.error?.message)}):h.success?(P(`Applied insight ${d.id.slice(0,8)}`),b&&P(`Created pattern ${b} in ReasoningBank`)):S(`Failed to apply insight: ${h.error}`),await s.close(),!h.success)throw new Error(`Failed to apply insight: ${h.error}`);return}let n=parseInt(t.duration,10);t.quick&&(n=5e3),t.full&&(n=3e4),n=Math.min(n,6e4);let i=parseInt(t.minPatterns,10);T(`Starting dream cycle (${n}ms, min ${i} patterns)...`);let g=e({maxDurationMs:n,minConceptsRequired:i});await g.initialize();let l=await(await C()).searchPatterns("",{limit:100,minConfidence:.3}),p=0;if(l.success&&l.value.length>0){let r=l.value.map(s=>({id:s.pattern.id,name:s.pattern.name,description:s.pattern.description||`${s.pattern.patternType} pattern`,domain:s.pattern.qeDomain||"learning-optimization",patternType:s.pattern.patternType,confidence:s.pattern.confidence,successRate:s.pattern.successRate||.5}));p=await g.loadPatternsAsConcepts(r),T(`Loaded ${p} patterns from ReasoningBank as concepts`)}else T("No patterns found in ReasoningBank \u2014 dreaming with existing concepts");let u=await g.dream(n);if(t.json)$({cycleId:u.cycle.id,status:u.cycle.status,durationMs:u.cycle.durationMs||0,conceptsProcessed:u.cycle.conceptsProcessed,associationsFound:u.cycle.associationsFound,insightsGenerated:u.cycle.insightsGenerated,activationStats:u.activationStats,patternsCreated:u.patternsCreated,insights:u.insights.map(r=>({id:r.id,type:r.type,description:r.description,noveltyScore:r.noveltyScore,confidenceScore:r.confidenceScore,actionable:r.actionable}))});else{if(console.log(o.bold(`
97
+ `)),m.length===0)console.log(o.dim(" No pending insights. Run a dream cycle first: aqe learning dream"));else for(let d of m){let h=d.noveltyScore>=.7?o.green(`${(d.noveltyScore*100).toFixed(0)}%`):o.yellow(`${(d.noveltyScore*100).toFixed(0)}%`),f=d.confidenceScore>=.7?o.green(`${(d.confidenceScore*100).toFixed(0)}%`):o.yellow(`${(d.confidenceScore*100).toFixed(0)}%`);console.log(` ${o.cyan(d.id.slice(0,8))} [${d.type}] ${d.actionable?"\u26A1":" "}`),console.log(` ${d.description}`),console.log(o.dim(` Novelty: ${h} | Confidence: ${f}`)),d.suggestedAction&&console.log(o.dim(` Action: ${d.suggestedAction}`))}console.log("")}await s.close();return}if(t.apply){let r=t.apply,s=e();await s.initialize();let d=(await s.getPendingInsights(100)).find(w=>w.id===r||w.id.startsWith(r));if(!d)throw await s.close(),new Error(`Insight not found: ${r}`);if(!d.actionable)throw await s.close(),new Error(`Insight ${r} is not actionable`);let h=await s.applyInsight(d.id),y=await(await C()).storePattern({patternType:"test-template",name:`Dream Insight: ${d.type}`,description:`${d.description} (confidence: ${d.confidenceScore.toFixed(2)})`,template:{type:"workflow",content:d.suggestedAction||d.description,variables:[]},context:{tags:["dream-generated",d.type,...d.sourceConcepts.slice(0,3)],complexity:"medium"}}),b=y.success?y.value.id:L(y.error);if(t.json?$({insightId:d.id,applied:h.success,patternId:b,error:h.error||(b||y.success?null:y.error?.message)}):h.success?(P(`Applied insight ${d.id.slice(0,8)}`),b&&P(`Created pattern ${b} in ReasoningBank`)):S(`Failed to apply insight: ${h.error}`),await s.close(),!h.success)throw new Error(`Failed to apply insight: ${h.error}`);return}let n=parseInt(t.duration,10);t.quick&&(n=5e3),t.full&&(n=3e4),n=Math.min(n,6e4);let i=parseInt(t.minPatterns,10);T(`Starting dream cycle (${n}ms, min ${i} patterns)...`);let g=e({maxDurationMs:n,minConceptsRequired:i});await g.initialize();let l=await(await C()).searchPatterns("",{limit:100,minConfidence:.3}),p=0;if(l.success&&l.value.length>0){let r=l.value.map(s=>({id:s.pattern.id,name:s.pattern.name,description:s.pattern.description||`${s.pattern.patternType} pattern`,domain:s.pattern.qeDomain||"learning-optimization",patternType:s.pattern.patternType,confidence:s.pattern.confidence,successRate:s.pattern.usageCount>0?s.pattern.successRate:void 0}));p=await g.loadPatternsAsConcepts(r),T(`Loaded ${p} patterns from ReasoningBank as concepts`)}else T("No patterns found in ReasoningBank \u2014 dreaming with existing concepts");let u=await g.dream(n);if(t.json)$({cycleId:u.cycle.id,status:u.cycle.status,durationMs:u.cycle.durationMs||0,conceptsProcessed:u.cycle.conceptsProcessed,associationsFound:u.cycle.associationsFound,insightsGenerated:u.cycle.insightsGenerated,activationStats:u.activationStats,patternsCreated:u.patternsCreated,insights:u.insights.map(r=>({id:r.id,type:r.type,description:r.description,noveltyScore:r.noveltyScore,confidenceScore:r.confidenceScore,actionable:r.actionable}))});else{if(console.log(o.bold(`
98
98
  \u{1F319} Dream Cycle Complete
99
99
  `)),console.log(` Cycle ID: ${u.cycle.id.slice(0,8)}`),console.log(` Status: ${u.cycle.status==="completed"?o.green("completed"):o.yellow(u.cycle.status)}`),console.log(` Duration: ${u.cycle.durationMs||0}ms`),console.log(` Concepts: ${u.cycle.conceptsProcessed}`),console.log(` Associations: ${u.cycle.associationsFound}`),console.log(` Insights: ${u.cycle.insightsGenerated}`),u.activationStats&&(console.log(o.bold(`
100
100
  Activation Stats:`)),console.log(` Iterations: ${u.activationStats.totalIterations}`),console.log(` Peak level: ${u.activationStats.peakActivation.toFixed(3)}`),console.log(` Nodes active: ${u.activationStats.nodesActivated}`)),u.insights.length>0){console.log(o.bold(`
101
101
  Generated Insights:`));for(let r of u.insights){let s=r.noveltyScore>=.7?o.green(`${(r.noveltyScore*100).toFixed(0)}%`):o.yellow(`${(r.noveltyScore*100).toFixed(0)}%`);console.log(` ${o.cyan(r.id.slice(0,8))} [${r.type}] ${r.actionable?"\u26A1 actionable":""}`),console.log(` ${r.description}`),console.log(o.dim(` Novelty: ${s} | Confidence: ${(r.confidenceScore*100).toFixed(0)}%`))}console.log(o.dim(`
102
102
  Apply insights with: aqe learning dream --apply <insight-id>`))}else console.log(o.dim(`
103
- No insights generated this cycle.`)),console.log(o.dim(" Try loading more patterns or running a longer cycle."));console.log("")}await g.close();return}catch(e){throw S(`dream failed: ${e instanceof Error?e.message:"unknown"}`),e instanceof Error&&e.stack&&console.error(o.dim(e.stack)),e}})}function ot(a){a.command("repair").description("Repair a corrupted learning database (dump + reimport to rebuild indexes)").option("-f, --file <path>","Database file to repair (defaults to current project)").option("--dry-run","Show what would be done without modifying files").option("--json","Output as JSON").action(async t=>{try{let e=t.file?v.resolve(t.file):N();if(!x(e))throw new Error(`Database file not found: ${e}`);let n=await V(e);if(n.valid){t.json?$({status:"healthy",message:"Database is already healthy, no repair needed",path:e}):P("Database integrity check passed \u2014 no repair needed.");return}T(`Corruption detected: ${n.message}`);let i={};try{let w=E(e,{readonly:!0}),R=w.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").all();for(let B of R)try{let H=w.prepare(`SELECT COUNT(*) as count FROM "${B.name}"`).get();i[B.name]=H.count}catch{}w.close()}catch{}let g=Object.values(i).reduce((w,R)=>w+R,0);if(T(`Found ${Object.keys(i).length} tables, ~${g} total rows`),t.dryRun){t.json?$({status:"dry-run",corruptionDetected:!0,message:n.message,tables:i,totalRows:g}):(console.log(o.bold(`
104
- Dry run \u2014 would perform these steps:`)),console.log(" 1. Backup corrupted DB"),console.log(" 2. Dump all data via .dump"),console.log(" 3. Reimport into fresh DB (rebuilds all indexes)"),console.log(" 4. Verify integrity of repaired DB"),console.log(" 5. Verify row counts match"),console.log(" 6. Swap repaired DB into place"),console.log(""));return}let c=`${e}.bak-${Date.now()}`;qe(e,c),T(`Backup created: ${c}`);for(let w of["-wal","-shm"]){let R=e+w;x(R)&&await I(R)}let{execFileSync:l}=await import("node:child_process"),{openSync:p,closeSync:u,readFileSync:r}=await import("node:fs"),s=`${e}.repaired`,m=`${e}.dump.sql`;try{let w=p(m,"w");try{l("sqlite3",[e,".dump"],{stdio:["ignore",w,"pipe"],timeout:12e4})}finally{u(w)}l("sqlite3",[s],{input:r(m),stdio:["pipe","pipe","pipe"],timeout:12e4}),l("sqlite3",[s,"PRAGMA journal_mode=WAL;"],{stdio:"pipe"})}catch(w){throw x(s)&&await I(s),x(m)&&await I(m),new Error(`sqlite3 dump/reimport failed: ${w instanceof Error?w.message:"unknown"}. Is sqlite3 installed?`)}let d=await V(s);if(!d.valid)throw x(m)&&await I(m),new Error(`Repaired DB still has integrity issues: ${d.message}. Backup preserved at ${c}`);let h={},f=E(s,{readonly:!0}),y=f.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").all();for(let w of y)try{let R=f.prepare(`SELECT COUNT(*) as count FROM "${w.name}"`).get();h[w.name]=R.count}catch{}f.close();let b=Object.values(h).reduce((w,R)=>w+R,0);De(e,`${e}.pre-repair`),De(s,e),x(m)&&await I(m),t.json?$({status:"repaired",backupPath:c,rowsBefore:g,rowsAfter:b,tablesRepaired:Object.keys(h).length,rowCounts:h}):(P("Database repaired successfully!"),console.log(` Backup: ${c}`),console.log(` Rows before: ${g}`),console.log(` Rows after: ${b}`),b<g&&console.log(o.yellow(` Warning: ${g-b} rows may have been lost due to data page corruption`)),console.log(` Tables: ${Object.keys(h).length}`),console.log(` Integrity: ${o.green("OK")}`),console.log(""));return}catch(e){throw S(`repair failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function rt(a){switch(a){case"sublinear":return{arrow:"\u25B2",label:"Sublinear (learning)",color:o.green};case"linear":return{arrow:"\u2192",label:"Linear (stagnating)",color:o.yellow};case"superlinear":return{arrow:"\u25BC",label:"Superlinear (degrading)",color:o.red};default:return{arrow:"?",label:"Insufficient data",color:o.dim}}}function at(a){a.command("health").description("Display per-domain learning health based on regret tracking").option("--json","Output as JSON").option("--domain <domain>","Filter to a specific domain").action(async t=>{try{let e=A(),n=v.join(e,".agentic-qe","memory.db");if(!x(n))throw new Error('Database not found. Run "aqe init --auto" first.');let i=ge(),g=E(n,{readonly:!0});if(g.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='captured_experiences'").get()){let s=t.domain?"AND domain = ?":"",m=[];t.domain&&m.push(t.domain);let d=g.prepare(`
103
+ No insights generated this cycle.`)),console.log(o.dim(" Try loading more patterns or running a longer cycle."));console.log("")}await g.close();return}catch(e){throw S(`dream failed: ${e instanceof Error?e.message:"unknown"}`),e instanceof Error&&e.stack&&console.error(o.dim(e.stack)),e}})}function at(a){a.command("repair").description("Repair a corrupted learning database (dump + reimport to rebuild indexes)").option("-f, --file <path>","Database file to repair (defaults to current project)").option("--dry-run","Show what would be done without modifying files").option("--json","Output as JSON").action(async t=>{try{let e=t.file?v.resolve(t.file):N();if(!x(e))throw new Error(`Database file not found: ${e}`);let n=await V(e);if(n.valid){t.json?$({status:"healthy",message:"Database is already healthy, no repair needed",path:e}):P("Database integrity check passed \u2014 no repair needed.");return}T(`Corruption detected: ${n.message}`);let i={};try{let w=E(e,{readonly:!0}),R=w.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").all();for(let B of R)try{let H=w.prepare(`SELECT COUNT(*) as count FROM "${B.name}"`).get();i[B.name]=H.count}catch{}w.close()}catch{}let g=Object.values(i).reduce((w,R)=>w+R,0);if(T(`Found ${Object.keys(i).length} tables, ~${g} total rows`),t.dryRun){t.json?$({status:"dry-run",corruptionDetected:!0,message:n.message,tables:i,totalRows:g}):(console.log(o.bold(`
104
+ Dry run \u2014 would perform these steps:`)),console.log(" 1. Backup corrupted DB"),console.log(" 2. Dump all data via .dump"),console.log(" 3. Reimport into fresh DB (rebuilds all indexes)"),console.log(" 4. Verify integrity of repaired DB"),console.log(" 5. Verify row counts match"),console.log(" 6. Swap repaired DB into place"),console.log(""));return}let c=`${e}.bak-${Date.now()}`;Me(e,c),T(`Backup created: ${c}`);for(let w of["-wal","-shm"]){let R=e+w;x(R)&&await I(R)}let{execFileSync:l}=await import("node:child_process"),{openSync:p,closeSync:u,readFileSync:r}=await import("node:fs"),s=`${e}.repaired`,m=`${e}.dump.sql`;try{let w=p(m,"w");try{l("sqlite3",[e,".dump"],{stdio:["ignore",w,"pipe"],timeout:12e4})}finally{u(w)}l("sqlite3",[s],{input:r(m),stdio:["pipe","pipe","pipe"],timeout:12e4}),l("sqlite3",[s,"PRAGMA journal_mode=WAL;"],{stdio:"pipe"})}catch(w){throw x(s)&&await I(s),x(m)&&await I(m),new Error(`sqlite3 dump/reimport failed: ${w instanceof Error?w.message:"unknown"}. Is sqlite3 installed?`)}let d=await V(s);if(!d.valid)throw x(m)&&await I(m),new Error(`Repaired DB still has integrity issues: ${d.message}. Backup preserved at ${c}`);let h={},f=E(s,{readonly:!0}),y=f.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").all();for(let w of y)try{let R=f.prepare(`SELECT COUNT(*) as count FROM "${w.name}"`).get();h[w.name]=R.count}catch{}f.close();let b=Object.values(h).reduce((w,R)=>w+R,0);Pe(e,`${e}.pre-repair`),Pe(s,e),x(m)&&await I(m),t.json?$({status:"repaired",backupPath:c,rowsBefore:g,rowsAfter:b,tablesRepaired:Object.keys(h).length,rowCounts:h}):(P("Database repaired successfully!"),console.log(` Backup: ${c}`),console.log(` Rows before: ${g}`),console.log(` Rows after: ${b}`),b<g&&console.log(o.yellow(` Warning: ${g-b} rows may have been lost due to data page corruption`)),console.log(` Tables: ${Object.keys(h).length}`),console.log(` Integrity: ${o.green("OK")}`),console.log(""));return}catch(e){throw S(`repair failed: ${e instanceof Error?e.message:"unknown"}`),e}})}function st(a){switch(a){case"sublinear":return{arrow:"\u25B2",label:"Sublinear (learning)",color:o.green};case"linear":return{arrow:"\u2192",label:"Linear (stagnating)",color:o.yellow};case"superlinear":return{arrow:"\u25BC",label:"Superlinear (degrading)",color:o.red};default:return{arrow:"?",label:"Insufficient data",color:o.dim}}}function it(a){a.command("health").description("Display per-domain learning health based on regret tracking").option("--json","Output as JSON").option("--domain <domain>","Filter to a specific domain").action(async t=>{try{let e=A(),n=v.join(e,".agentic-qe","memory.db");if(!x(n))throw new Error('Database not found. Run "aqe init --auto" first.');let i=ue(),g=E(n,{readonly:!0});if(g.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='captured_experiences'").get()){let s=t.domain?"AND domain = ?":"",m=[];t.domain&&m.push(t.domain);let d=g.prepare(`
105
105
  SELECT domain, quality, success, started_at
106
106
  FROM captured_experiences
107
107
  WHERE agent != 'cli-hook'
@@ -109,7 +109,7 @@ Dry run \u2014 would perform these steps:`)),console.log(" 1. Backup corrupted
109
109
  AND domain != ''
110
110
  ${s}
111
111
  ORDER BY started_at ASC
112
- `).all(...m);for(let h of d){let f=h.quality??(h.success?1:0);i.recordDecision(h.domain,f,1)}}g.close();let l=i.getHealthSummary();if(t.json){$(l);return}if(console.log(""),console.log(o.bold("Learning Health Dashboard:")),l.length===0){console.log(o.dim(" No domain data available. Run some QE tasks to generate learning data.")),console.log("");return}let p=Math.max(...l.map(s=>s.domain.length),20);for(let s of l){let{arrow:m,label:d,color:h}=rt(s.growthRate),f=D(s.domain+":",p+1),y=h(`${m} ${D(d,26)}`),b=`regret: ${s.cumulativeRegret.toFixed(1)}`,w=`decisions: ${s.totalDecisions}`;console.log(` ${f} ${y} ${b} ${w}`)}let u=l.filter(s=>s.stagnating);u.length>0&&(console.log(""),console.log(o.yellow(` Warning: ${u.length} domain(s) showing stagnation: ${u.map(s=>s.domain).join(", ")}`)));let r=l.filter(s=>s.growthRate==="sublinear");r.length>0&&console.log(o.green(` ${r.length} domain(s) actively learning`)),console.log("");return}catch(e){throw S(`health check failed: ${e instanceof Error?e.message:"unknown"}`),e}})}var st={bridge:3e4,learningWorker:2*36e5,dreamScheduler:2*36e5};function it(a){a.command("loop-health").description("Show pipeline component liveness for the self-learning loop").option("--json","Output as JSON").action(async t=>{try{let e=A(),n=v.join(e,".agentic-qe","memory.db");if(!x(n))throw new Error('Database not found. Run "aqe init --auto" first.');let i=E(n,{readonly:!0}),g;try{g=i.prepare("SELECT value FROM kv_store WHERE key = 'learning:loop-health' LIMIT 1").get()?.value}catch{}let c=null;try{if(i.prepare("PRAGMA table_info(routing_outcomes)").all().some(m=>m.name==="exploration")){let m=i.prepare(`SELECT
112
+ `).all(...m);for(let h of d){let f=h.quality??(h.success?1:0);i.recordDecision(h.domain,f,1)}}g.close();let l=i.getHealthSummary();if(t.json){$(l);return}if(console.log(""),console.log(o.bold("Learning Health Dashboard:")),l.length===0){console.log(o.dim(" No domain data available. Run some QE tasks to generate learning data.")),console.log("");return}let p=Math.max(...l.map(s=>s.domain.length),20);for(let s of l){let{arrow:m,label:d,color:h}=st(s.growthRate),f=D(s.domain+":",p+1),y=h(`${m} ${D(d,26)}`),b=`regret: ${s.cumulativeRegret.toFixed(1)}`,w=`decisions: ${s.totalDecisions}`;console.log(` ${f} ${y} ${b} ${w}`)}let u=l.filter(s=>s.stagnating);u.length>0&&(console.log(""),console.log(o.yellow(` Warning: ${u.length} domain(s) showing stagnation: ${u.map(s=>s.domain).join(", ")}`)));let r=l.filter(s=>s.growthRate==="sublinear");r.length>0&&console.log(o.green(` ${r.length} domain(s) actively learning`)),console.log("");return}catch(e){throw S(`health check failed: ${e instanceof Error?e.message:"unknown"}`),e}})}var ct={bridge:3e4,learningWorker:2*36e5,dreamScheduler:2*36e5};function lt(a){a.command("loop-health").description("Show pipeline component liveness for the self-learning loop").option("--json","Output as JSON").action(async t=>{try{let e=A(),n=v.join(e,".agentic-qe","memory.db");if(!x(n))throw new Error('Database not found. Run "aqe init --auto" first.');let i=E(n,{readonly:!0}),g;try{g=i.prepare("SELECT value FROM kv_store WHERE key = 'learning:loop-health' LIMIT 1").get()?.value}catch{}let c=null;try{if(i.prepare("PRAGMA table_info(routing_outcomes)").all().some(m=>m.name==="exploration")){let m=i.prepare(`SELECT
113
113
  COUNT(*) AS total,
114
114
  SUM(CASE WHEN exploration = 1 THEN 1 ELSE 0 END) AS explore,
115
115
  AVG(criticality) AS avgCrit,
@@ -119,4 +119,4 @@ Dry run \u2014 would perform these steps:`)),console.log(" 1. Backup corrupted
119
119
  WHERE exploration = 0 AND quality_score >= 0
120
120
  AND created_at >= datetime('now', '-7 days')`).get(),b=i.prepare(`SELECT AVG(quality_score) AS avgQ FROM routing_outcomes
121
121
  WHERE exploration = 1 AND quality_score >= 0
122
- AND created_at >= datetime('now', '-7 days')`).get();c={totalDecisions:d,explorationCount:h,exploitCount:f,explorationRate:d>0?h/d:0,avgQualityExploit:y.avgQ,avgQualityExplore:b.avgQ,avgCriticality:m.avgCrit,avgQWeight:m.avgQ}}}catch{}i.close();let l=null;if(g)try{l=M(g)}catch{l=null}let p=Date.now(),u=(r,s)=>{let m=st[r]??6e5;return!s||!s.lastSuccessAt?"never-ran":p-new Date(s.lastSuccessAt).getTime()>m?"stale":"live"};if(t.json){if(!l){$({overallLastSuccess:null,bootedAt:null,components:{},verdicts:{},routingDiversification:c,note:"No loop-health record yet. Workers must run at least once for this to populate."});return}let r={};for(let s of Object.keys(l.components))r[s]=u(s,l.components[s]);$({...l,verdicts:r,routingDiversification:c});return}if(console.log(""),console.log(o.bold("Self-Learning Loop Health")),console.log(""),!l)console.log(o.dim(" No loop-health record yet.")),console.log(o.dim(" Workers must run at least once to populate.")),console.log(o.dim(" Start the daemon: aqe daemon start"));else{console.log(` Booted at: ${o.dim(l.bootedAt)}`),console.log(` Last success (any): ${l.overallLastSuccess||o.dim("(none yet)")}`),console.log(""),console.log(o.bold(" Components:"));let r=[["bridge","CapturedExperienceBridge"],["learningWorker","LearningConsolidationWorker"],["dreamScheduler","DreamScheduler"]];for(let[m,d]of r){let h=l.components[m],f=u(m,h),y=f==="live"?o.green("\u25CF live"):f==="stale"?o.yellow("\u25CF stale"):o.dim("\u25CB never-ran"),b=h?.lastSuccessAt||o.dim("(never)"),w=h?`${h.successesSinceBoot}/${h.ticksSinceBoot} ticks ok`:o.dim("no ticks");console.log(` ${d.padEnd(32)} ${y.padEnd(20)} ${w}`),console.log(` ${o.dim("last success:")} ${b}`),h?.lastError&&console.log(` ${o.red("last error:")} ${h.lastError.message} ${o.dim("(at "+h.lastError.at+")")}`)}let s=r.filter(([m,d])=>u(m,l.components[m])==="stale");s.length>0&&(console.log(""),console.log(o.yellow(` Warning: ${s.length} component(s) stale \u2014 daemon may not be running or the loop is wedged.`)))}if(c&&c.totalDecisions>0){console.log(""),console.log(o.bold(" Routing diversification (last 7 days):"));let r=(c.explorationRate*100).toFixed(1);if(console.log(` Decisions: ${c.totalDecisions} (${c.exploitCount} exploit, ${c.explorationCount} explore = ${r}%)`),c.avgQualityExploit!==null&&c.avgQualityExplore!==null){let s=c.avgQualityExplore-c.avgQualityExploit,m=s>=0?o.green(`+${s.toFixed(3)}`):o.red(s.toFixed(3));console.log(` Avg quality: exploit=${c.avgQualityExploit.toFixed(3)}, explore=${c.avgQualityExplore.toFixed(3)} (\u0394 ${m})`)}c.avgCriticality!==null&&console.log(` Avg mincut multiplier: ${c.avgCriticality.toFixed(2)} (1.0=full rate, 0.2=critical-topology dampening)`),c.avgQWeight!==null&&c.avgQWeight>0&&console.log(` Avg Q-weight: ${c.avgQWeight.toFixed(3)} (0=cold start, ${.4} max)`)}console.log("");return}catch(e){throw S(`loop-health failed: ${e instanceof Error?e.message:"unknown"}`),e}})}export{Gt as createLearningCommand,C as initializeLearningSystem};
122
+ AND created_at >= datetime('now', '-7 days')`).get();c={totalDecisions:d,explorationCount:h,exploitCount:f,explorationRate:d>0?h/d:0,avgQualityExploit:y.avgQ,avgQualityExplore:b.avgQ,avgCriticality:m.avgCrit,avgQWeight:m.avgQ}}}catch{}i.close();let l=null;if(g)try{l=M(g)}catch{l=null}let p=Date.now(),u=(r,s)=>{let m=ct[r]??6e5;return!s||!s.lastSuccessAt?"never-ran":p-new Date(s.lastSuccessAt).getTime()>m?"stale":"live"};if(t.json){if(!l){$({overallLastSuccess:null,bootedAt:null,components:{},verdicts:{},routingDiversification:c,note:"No loop-health record yet. Workers must run at least once for this to populate."});return}let r={};for(let s of Object.keys(l.components))r[s]=u(s,l.components[s]);$({...l,verdicts:r,routingDiversification:c});return}if(console.log(""),console.log(o.bold("Self-Learning Loop Health")),console.log(""),!l)console.log(o.dim(" No loop-health record yet.")),console.log(o.dim(" Workers must run at least once to populate.")),console.log(o.dim(" Start the daemon: aqe daemon start"));else{console.log(` Booted at: ${o.dim(l.bootedAt)}`),console.log(` Last success (any): ${l.overallLastSuccess||o.dim("(none yet)")}`),console.log(""),console.log(o.bold(" Components:"));let r=[["bridge","CapturedExperienceBridge"],["learningWorker","LearningConsolidationWorker"],["dreamScheduler","DreamScheduler"]];for(let[m,d]of r){let h=l.components[m],f=u(m,h),y=f==="live"?o.green("\u25CF live"):f==="stale"?o.yellow("\u25CF stale"):o.dim("\u25CB never-ran"),b=h?.lastSuccessAt||o.dim("(never)"),w=h?`${h.successesSinceBoot}/${h.ticksSinceBoot} ticks ok`:o.dim("no ticks");console.log(` ${d.padEnd(32)} ${y.padEnd(20)} ${w}`),console.log(` ${o.dim("last success:")} ${b}`),h?.lastError&&console.log(` ${o.red("last error:")} ${h.lastError.message} ${o.dim("(at "+h.lastError.at+")")}`)}let s=r.filter(([m,d])=>u(m,l.components[m])==="stale");s.length>0&&(console.log(""),console.log(o.yellow(` Warning: ${s.length} component(s) stale \u2014 daemon may not be running or the loop is wedged.`)))}if(c&&c.totalDecisions>0){console.log(""),console.log(o.bold(" Routing diversification (last 7 days):"));let r=(c.explorationRate*100).toFixed(1);if(console.log(` Decisions: ${c.totalDecisions} (${c.exploitCount} exploit, ${c.explorationCount} explore = ${r}%)`),c.avgQualityExploit!==null&&c.avgQualityExplore!==null){let s=c.avgQualityExplore-c.avgQualityExploit,m=s>=0?o.green(`+${s.toFixed(3)}`):o.red(s.toFixed(3));console.log(` Avg quality: exploit=${c.avgQualityExploit.toFixed(3)}, explore=${c.avgQualityExplore.toFixed(3)} (\u0394 ${m})`)}c.avgCriticality!==null&&console.log(` Avg mincut multiplier: ${c.avgCriticality.toFixed(2)} (1.0=full rate, 0.2=critical-topology dampening)`),c.avgQWeight!==null&&c.avgQWeight>0&&console.log(` Avg Q-weight: ${c.avgQWeight.toFixed(3)} (0=cold start, ${.4} max)`)}console.log("");return}catch(e){throw S(`loop-health failed: ${e instanceof Error?e.message:"unknown"}`),e}})}export{Jt as createLearningCommand,C as initializeLearningSystem};
@@ -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.15.9");process.exit(0)}
2
- import{d as R,e as $,f as I,i as S,j as k,l as M,m as _,n as N,p as D,q as j}from"./chunk-XUIA5KMS.js";import{i as w,j as T,n as q}from"./chunk-XYCKHYBM.js";import"./chunk-OCESWNAZ.js";import"./chunk-ICP2ORGI.js";import"./chunk-PVIA2FPD.js";import"./chunk-OG2UI6A3.js";import"./chunk-V5PXQSFS.js";import"./chunk-5D2I7JUP.js";import{b as A,d as J}from"./chunk-EFBLP43U.js";import"./chunk-7KII4CQG.js";import"./chunk-4SUOVLJ6.js";import"./chunk-ZXBCCO2H.js";import"./chunk-SVHUYVUR.js";import"./chunk-2BA45H64.js";import"./chunk-KTSLTZSG.js";import"./chunk-O3JLOVZX.js";import"./chunk-DGTLJNJH.js";import"./chunk-N3KEY4XJ.js";import"./chunk-2I2UPJS7.js";import"./chunk-4V27J6YN.js";import"./chunk-H3KBIWTO.js";import"./chunk-6YL6JOQB.js";import"./chunk-6OOYIO3W.js";import"./chunk-HZ5NC6U5.js";J();import{Command as F}from"commander";import t from"chalk";q();var p=null;function x(){return process.env.AQE_CONFIG_ROOT}function b(){return p===null&&(p=j({projectRoot:x()})),p}function U(){p=null}function K(){p!==null&&(D(p,x()),U())}function me(){let o=new F("llm").description("LLM Router management (ADR-043)").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.15.10");process.exit(0)}
2
+ import{d as R,e as $,f as I,i as S,j as k,l as M,m as _,n as N,p as D,q as j}from"./chunk-WDQ7IEZY.js";import{i as w,j as T,n as q}from"./chunk-XFVTGAAJ.js";import"./chunk-C522H7XR.js";import"./chunk-3Y7SPD72.js";import"./chunk-ACWFKES2.js";import"./chunk-AI4VYSFS.js";import"./chunk-VJQYDYAJ.js";import"./chunk-OBAREPDC.js";import{b as A,d as J}from"./chunk-6GP6W46M.js";import"./chunk-PGYMKGOE.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-6PX4OXQO.js";import"./chunk-AH3ZD3NJ.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-GHBNRMSJ.js";import"./chunk-XLZYRTNO.js";import"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";J();import{Command as F}from"commander";import t from"chalk";q();var p=null;function x(){return process.env.AQE_CONFIG_ROOT}function b(){return p===null&&(p=j({projectRoot:x()})),p}function U(){p=null}function K(){p!==null&&(D(p,x()),U())}function me(){let o=new F("llm").description("LLM Router management (ADR-043)").addHelpText("after",`
3
3
  Examples:
4
4
  $ aqe llm providers List available providers
5
5
  $ aqe llm models --provider claude List Claude models
@@ -31,7 +31,7 @@ Cost Estimate
31
31
  `)),console.log(t.gray(`Model: ${s.canonicalName} (${s.canonicalId})`)),console.log(t.gray(`Tokens: ${n.toLocaleString()}
32
32
  `)),console.log(t.bold("Pricing (per 1M tokens):")),console.log(` Input: ${E(s.inputCostPer1M)}`),console.log(` Output: ${E(s.outputCostPer1M)}`),console.log(t.bold(`
33
33
  Estimated Cost:`)),console.log(` Input: ${t.yellow("$"+r.toFixed(6))}`),console.log(` Output: ${t.yellow("$"+i.toFixed(6))}`),console.log(` Total: ${t.green("$"+c.toFixed(6))}`),console.log("")}function l(o,e){return o.padEnd(e)}function Q(o,e){return o.length<=e?o:o.slice(0,e-1)+"..."}function E(o){return o==null?"-":o===0?"$0 (free)":`$${o.toFixed(2)}`}function V(o){let e={claude:w,"claude-code":"sonnet",codex:"default",openai:"gpt-6-sol",ollama:"qwen3-coder:30b",openrouter:"anthropic/claude-sonnet-5",gemini:"gemini-2.5-flash","azure-openai":"gpt-4o",bedrock:"anthropic.claude-sonnet-4-6-v1:0",cognitum:"cognitum-auto",onnx:"phi-4"};if(S(o))return e[o];let n=$(o),s=n?.config;return s?.defaultModel??s?.models?.[0]??n?.models?.[0]??""}function L(o){let e=s=>!!process.env[s],n=$(o);if(n){let r=n.config?.command?.[0];return r&&_(r)?"available":"configured"}switch(o){case"claude":return e("ANTHROPIC_API_KEY")?"available":"configured";case"openai":return e("OPENAI_API_KEY")?"available":"configured";case"ollama":return"configured";case"openrouter":return e("OPENROUTER_API_KEY")?"available":"not configured";case"gemini":return e("GOOGLE_API_KEY")?"available":"not configured";case"azure-openai":return e("AZURE_OPENAI_API_KEY")?"available":"not configured";case"bedrock":return e("AWS_ACCESS_KEY_ID")?"available":"not configured";case"onnx":return"configured";default:return"not configured"}}function Z(o,e){let{mode:n,complexity:s,agentType:r}=e;if(r?.includes("security")||o.toLowerCase().includes("security"))return{provider:"claude",model:w,reason:"Security tasks require advanced reasoning (rule-match)",confidence:.95,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:.014}};if(n==="cost-optimized"||s==="trivial"||s==="low")return{provider:"openai",model:"gpt-4o-mini",reason:"Cost optimization selected efficient model",confidence:.85,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:9e-4}};if(n==="performance-optimized"||s==="expert")return{provider:"claude",model:T,reason:"Complex task requires flagship model",confidence:.92,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:.028}};let i=b();return{provider:i.defaultProvider,model:i.defaultModel,reason:"Default provider selected",confidence:.8,estimatedCost:{inputTokens:2e3,outputTokens:1e3,totalCostUsd:.021}}}function X(o,e){let n=o.toLowerCase();if(n==="apikey"||n.endsWith(".apikey")||n.includes("apikey="))throw new Error("API keys cannot be saved via 'aqe llm config --set'. They belong in environment variables: ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, GEMINI_API_KEY / GOOGLE_AI_API_KEY / GOOGLE_API_KEY, AZURE_OPENAI_API_KEY. The CLI will not write secrets to .agentic-qe/llm-config.json (which may be checked into source control).");let s=b();switch(o){case"mode":if(["manual","rule-based","cost-optimized","performance-optimized"].includes(e))s.mode=e;else throw new Error(`Invalid mode: ${e}`);break;case"defaultProvider":if(N().includes(e))s.defaultProvider=e;else throw new Error(`Invalid provider: ${e}`);break;case"enableMetrics":s.enableMetrics=e==="true";break;case"cacheDecisions":s.cacheDecisions=e==="true";break;default:throw new Error(`Unknown config key: ${o}`)}K()}async function ee(o){return k.map(e=>{let n=L(e);return{provider:e,healthy:n==="available"||e==="ollama"||e==="onnx",latencyMs:n!=="not configured"?A(50,250):void 0,message:n==="available"?"OK":n==="configured"?"API key not verified":"Not configured"}})}function oe(o){let e=M.find(n=>n.canonicalId===o);if(e)return e;for(let n of M)for(let s of Object.values(n.providerIds))if(s===o)return n}async function te(o){let{readFile:e}=await import("fs/promises");if(o.transcript){let n=await e(o.transcript,"utf-8"),s=JSON.parse(n);if(!s.messages||!Array.isArray(s.messages))throw new Error(`Transcript file must contain a 'messages' array: ${o.transcript}`);return{systemPrompt:s.systemPrompt,taskDescription:s.taskDescription,messages:s.messages}}if(o.stdin){let n=[];for await(let i of process.stdin)n.push(Buffer.from(i));let s=Buffer.concat(n).toString("utf-8"),r=JSON.parse(s);if(!r.messages||!Array.isArray(r.messages))throw new Error("Transcript from stdin must contain a `messages` array");return{systemPrompt:r.systemPrompt,taskDescription:r.taskDescription,messages:r.messages}}if(o.session){let{readFile:n,readdir:s}=await import("fs/promises"),{join:r}=await import("path"),i=await import("os"),c=r(i.homedir(),".claude","projects"),d=null;try{let y=await s(c);for(let f of y){let a=r(c,f),v=(await s(a).catch(()=>[])).find(u=>u.includes(o.session)&&u.endsWith(".jsonl"));if(v){d=r(a,v);break}}}catch{}if(!d)throw new Error(`Could not find session JSONL for session ID "${o.session}" in ~/.claude/projects/. Use --transcript <path> as fallback.`);let P=(await n(d,"utf-8")).trim().split(`
34
- `).filter(Boolean),m=[];for(let y of P)try{let f=JSON.parse(y),a=f.type,O=f.message;if(!O)continue;let v=O.role,u=O.content;if(a==="user"&&v==="user"){let h=typeof u=="string"?u:Array.isArray(u)?u.map(C=>C.text??"").join(""):"";h.trim()&&m.push({role:"user",content:h})}else if(a==="assistant"&&v==="assistant"){let h=typeof u=="string"?u:Array.isArray(u)?u.filter(C=>C.type==="text").map(C=>C.text??"").join(""):"";h.trim()&&m.push({role:"assistant",content:h})}}catch{}if(m.length===0)throw new Error(`Session JSONL at ${d} contained no parseable messages.`);return{messages:m}}throw new Error("aqe llm advise requires one of: --transcript <path>, --stdin, --session <id>")}async function ne(o){let e=o.json!==!1,n=o.quiet??!1;try{let s=await te(o);!n&&!e&&console.log(t.gray("Consulting advisor..."));let{createLLMRouterService:r}=await import("./llm-router-service-4DE5WDUZ.js"),{MultiModelExecutor:i,DEFAULT_ADVISOR_MODEL:c}=await import("./multi-model-executor-SXXGAQ2G.js"),d=o.provider,g=await r({projectRoot:x(),allowProjectProviderEndpoints:!1,override:{mode:"manual",...d?{defaultProvider:d}:{},...o.model?{defaultModel:o.model}:{}}});if(!g)throw new Error(`No enabled LLM provider is available for advisor${d?` provider "${d}"`:""}.`);let P=d??g.resolvedConfig.defaultProvider,m=o.model??g.resolvedConfig.providers?.[P]?.defaultModel??g.resolvedConfig.defaultModel??c,y=new i(g.router),f=o.redact??"strict",a=await y.consult(s,{provider:P,model:m,maxWords:o.maxWords?parseInt(o.maxWords,10):void 0,agentName:o.agent,triggerReason:o.triggerReason??"cli",sessionId:o.session??"cli-"+Date.now(),redact:f,advisorSystemPrompt:o.advisorPrompt});e?console.log(JSON.stringify({advice:a.advice,model:a.model,provider:a.provider,tokens_in:a.tokensIn,tokens_out:a.tokensOut,latency_ms:a.latencyMs,cost_usd:a.costUsd,advice_hash:a.adviceHash,trigger_reason:a.triggerReason,cache_hit:a.cacheHit,redaction_applied:a.redactionsApplied.length>0,redactions:a.redactionsApplied,circuit_breaker_remaining:a.circuitBreakerRemaining},null,2)):(console.log(t.bold.cyan(`
34
+ `).filter(Boolean),m=[];for(let y of P)try{let f=JSON.parse(y),a=f.type,O=f.message;if(!O)continue;let v=O.role,u=O.content;if(a==="user"&&v==="user"){let h=typeof u=="string"?u:Array.isArray(u)?u.map(C=>C.text??"").join(""):"";h.trim()&&m.push({role:"user",content:h})}else if(a==="assistant"&&v==="assistant"){let h=typeof u=="string"?u:Array.isArray(u)?u.filter(C=>C.type==="text").map(C=>C.text??"").join(""):"";h.trim()&&m.push({role:"assistant",content:h})}}catch{}if(m.length===0)throw new Error(`Session JSONL at ${d} contained no parseable messages.`);return{messages:m}}throw new Error("aqe llm advise requires one of: --transcript <path>, --stdin, --session <id>")}async function ne(o){let e=o.json!==!1,n=o.quiet??!1;try{let s=await te(o);!n&&!e&&console.log(t.gray("Consulting advisor..."));let{createLLMRouterService:r}=await import("./llm-router-service-5OGAUOXF.js"),{MultiModelExecutor:i,DEFAULT_ADVISOR_MODEL:c}=await import("./multi-model-executor-3VDRX6TZ.js"),d=o.provider,g=await r({projectRoot:x(),allowProjectProviderEndpoints:!1,override:{mode:"manual",...d?{defaultProvider:d}:{},...o.model?{defaultModel:o.model}:{}}});if(!g)throw new Error(`No enabled LLM provider is available for advisor${d?` provider "${d}"`:""}.`);let P=d??g.resolvedConfig.defaultProvider,m=o.model??g.resolvedConfig.providers?.[P]?.defaultModel??g.resolvedConfig.defaultModel??c,y=new i(g.router),f=o.redact??"strict",a=await y.consult(s,{provider:P,model:m,maxWords:o.maxWords?parseInt(o.maxWords,10):void 0,agentName:o.agent,triggerReason:o.triggerReason??"cli",sessionId:o.session??"cli-"+Date.now(),redact:f,advisorSystemPrompt:o.advisorPrompt});e?console.log(JSON.stringify({advice:a.advice,model:a.model,provider:a.provider,tokens_in:a.tokensIn,tokens_out:a.tokensOut,latency_ms:a.latencyMs,cost_usd:a.costUsd,advice_hash:a.adviceHash,trigger_reason:a.triggerReason,cache_hit:a.cacheHit,redaction_applied:a.redactionsApplied.length>0,redactions:a.redactionsApplied,circuit_breaker_remaining:a.circuitBreakerRemaining},null,2)):(console.log(t.bold.cyan(`
35
35
  Advisor Response
36
- `)),console.log(a.advice),console.log(),console.log(t.gray(`(${a.provider}/${a.model}, ${a.tokensIn}\u2192${a.tokensOut} tokens, ${a.latencyMs}ms, $${a.costUsd.toFixed(4)})`))),process.exit(0)}catch(s){let r=s instanceof Error?s.message:String(s),i=s?.exitCode??1;console.error(e?JSON.stringify({error:r,exit_code:i},null,2):t.red(`Error: ${r}`)),process.exit(i)}}async function se(o){let e=o.json??!1,n=parseInt(o.minCalls??"1",10);try{let{AdvisorCircuitBreaker:s}=await import("./circuit-breaker-5GAK45SW.js"),i=new s().getState(o.session),c=i.callCount>=n,d={session:o.session,advisor_calls:i.callCount,required:n,gate:c?"PASS":"FAIL"};if(e)console.log(JSON.stringify(d,null,2));else{let g=c?t.green("PASS"):t.red("FAIL");console.log(`
36
+ `)),console.log(a.advice),console.log(),console.log(t.gray(`(${a.provider}/${a.model}, ${a.tokensIn}\u2192${a.tokensOut} tokens, ${a.latencyMs}ms, $${a.costUsd.toFixed(4)})`))),process.exit(0)}catch(s){let r=s instanceof Error?s.message:String(s),i=s?.exitCode??1;console.error(e?JSON.stringify({error:r,exit_code:i},null,2):t.red(`Error: ${r}`)),process.exit(i)}}async function se(o){let e=o.json??!1,n=parseInt(o.minCalls??"1",10);try{let{AdvisorCircuitBreaker:s}=await import("./circuit-breaker-4VOUEPOX.js"),i=new s().getState(o.session),c=i.callCount>=n,d={session:o.session,advisor_calls:i.callCount,required:n,gate:c?"PASS":"FAIL"};if(e)console.log(JSON.stringify(d,null,2));else{let g=c?t.green("PASS"):t.red("FAIL");console.log(`
37
37
  Advisor Quality Gate: ${g}`),console.log(` Session: ${o.session}`),console.log(` Advisor calls: ${i.callCount}`),console.log(` Required: \u2265${n}`)}process.exit(c?0:7)}catch(s){let r=s instanceof Error?s.message:String(s);console.error(e?JSON.stringify({error:r},null,2):t.red(`Error: ${r}`)),process.exit(1)}}export{me as createLLMRouterCommand};
@@ -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.15.10");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-RK73HB2F.js";import"./chunk-NPPHWFA2.js";import"./chunk-EDLFX4ZB.js";import"./chunk-NW5JUCCG.js";import"./chunk-I33O4BRQ.js";import"./chunk-WDQ7IEZY.js";import"./chunk-2SXBBUM6.js";import"./chunk-KNQ2ERFX.js";import"./chunk-XFVTGAAJ.js";import"./chunk-C522H7XR.js";import"./chunk-3Y7SPD72.js";import"./chunk-ACWFKES2.js";import"./chunk-AI4VYSFS.js";import"./chunk-VJQYDYAJ.js";import"./chunk-OBAREPDC.js";import"./chunk-6GP6W46M.js";import"./chunk-PGYMKGOE.js";import"./chunk-GZLZCZ42.js";import"./chunk-GJMLK5UT.js";import"./chunk-6PX4OXQO.js";import"./chunk-WQ4PYWSW.js";import"./chunk-AH3ZD3NJ.js";import"./chunk-HOZUDE4C.js";import"./chunk-ATHWDAXB.js";import"./chunk-N6PIIK6G.js";import"./chunk-WSF24I3D.js";import"./chunk-GHBNRMSJ.js";import"./chunk-XLZYRTNO.js";import"./chunk-EWFECZ2U.js";import"./chunk-VWNFAW2M.js";import"./chunk-XBVUVFJK.js";import"./chunk-EN2QSKFF.js";import"./chunk-OY2AHLSF.js";export{a as createLLMRouterService,d as extractProviderConfigs,b as pickEnabledProviders,c as pickPrimaryAndFallbacks};