agentic-qe 3.15.3 → 3.15.4

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 (355) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +69 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/cli/bundle.js +5 -5
  5. package/dist/cli/chunks/adapter-T54G3TBK.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-CYG3PKHH.js → agent-booster-wasm-MHJBRXMK.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-WTFYFZKL.js → agent-handler-G64SD7J2.js} +2 -2
  8. package/dist/cli/chunks/{agent-memory-branch-G6WE3ZXU.js → agent-memory-branch-G4UXFPKH.js} +2 -2
  9. package/dist/cli/chunks/aqe-learning-engine-HLCJJ3JM.js +2 -0
  10. package/dist/cli/chunks/{arena-ZFXQEVUQ.js → arena-63M3M6EW.js} +2 -2
  11. package/dist/cli/chunks/{arena-S72QW44C.js → arena-QJMKYPHS.js} +4 -4
  12. package/dist/cli/chunks/{audit-KPYIEQJ3.js → audit-UDFVTWSX.js} +3 -3
  13. package/dist/cli/chunks/base-VLD755UU.js +2 -0
  14. package/dist/cli/chunks/{better-sqlite3-L2M3TI5D.js → better-sqlite3-JLX2G56I.js} +2 -2
  15. package/dist/cli/chunks/{brain-handler-FHKLQTB4.js → brain-handler-PWF32LLW.js} +3 -3
  16. package/dist/cli/chunks/{branch-enumerator-3BSHOPOK.js → branch-enumerator-PB7QWXDP.js} +2 -2
  17. package/dist/cli/chunks/{browser-JUIJPL6Y.js → browser-CYNV2F3U.js} +2 -2
  18. package/dist/cli/chunks/browser-workflow-6M6VLWRF.js +2 -0
  19. package/dist/cli/chunks/{chunk-P36IODAM.js → chunk-2534PXIV.js} +2 -2
  20. package/dist/cli/chunks/{chunk-PUPEKA2J.js → chunk-2DRMTRBM.js} +2 -2
  21. package/dist/cli/chunks/{chunk-6EQDA4EC.js → chunk-2ICC4H6K.js} +2 -2
  22. package/dist/cli/chunks/{chunk-MUSYQF53.js → chunk-2LL35V3A.js} +2 -2
  23. package/dist/cli/chunks/{chunk-2MEWIXW4.js → chunk-2MU4WCMQ.js} +2 -2
  24. package/dist/cli/chunks/{chunk-CNQUU6CF.js → chunk-33IUCP34.js} +2 -2
  25. package/dist/cli/chunks/{chunk-U5AVZ3T2.js → chunk-35A22AUL.js} +1 -1
  26. package/dist/cli/chunks/{chunk-VUBLJBHQ.js → chunk-3BDDOFYW.js} +2 -2
  27. package/dist/cli/chunks/{chunk-FXTZXZCU.js → chunk-3C2BFLYC.js} +3 -3
  28. package/dist/cli/chunks/{chunk-4JVVVKAX.js → chunk-3MSBVOYW.js} +2 -2
  29. package/dist/cli/chunks/{chunk-P6EGRAQG.js → chunk-3ZIVBTX6.js} +2 -2
  30. package/dist/cli/chunks/{chunk-TBVPNN65.js → chunk-4GLR2S2M.js} +2 -2
  31. package/dist/cli/chunks/{chunk-6W6GZHQA.js → chunk-54ITMOFM.js} +4 -4
  32. package/dist/cli/chunks/{chunk-Z7UGEQ4G.js → chunk-54XTJBHV.js} +1 -1
  33. package/dist/cli/chunks/{chunk-L6OSEWOS.js → chunk-5B5D5KCV.js} +1 -1
  34. package/dist/cli/chunks/{chunk-HV3ZVUHO.js → chunk-5GWTJJEO.js} +1 -1
  35. package/dist/cli/chunks/{chunk-WSUYEVSY.js → chunk-5H7MR6HP.js} +1 -1
  36. package/dist/cli/chunks/{chunk-RQUSJEON.js → chunk-5SS2Z7JC.js} +2 -2
  37. package/dist/cli/chunks/chunk-5XXLWJU7.js +2 -0
  38. package/dist/cli/chunks/{chunk-ZATQLTYL.js → chunk-6EHVPFHW.js} +1 -1
  39. package/dist/cli/chunks/{chunk-2M75CW5Q.js → chunk-6HO3XRXE.js} +2 -2
  40. package/dist/cli/chunks/{chunk-ASUXS4N4.js → chunk-6HTO4BLV.js} +2 -2
  41. package/dist/cli/chunks/{chunk-POVP6O6K.js → chunk-6QPW4OVH.js} +1 -1
  42. package/dist/cli/chunks/{chunk-3ZTBV6M3.js → chunk-6TMUZGM2.js} +1 -1
  43. package/dist/cli/chunks/{chunk-RRSZ27A7.js → chunk-73MTUM6F.js} +2 -2
  44. package/dist/cli/chunks/{chunk-CFXROOIU.js → chunk-73PCVMGA.js} +2 -2
  45. package/dist/cli/chunks/{chunk-O66D4NEJ.js → chunk-76PRW2KY.js} +2 -2
  46. package/dist/cli/chunks/{chunk-XTGVGZ4J.js → chunk-7INP6HZH.js} +3 -3
  47. package/dist/cli/chunks/{chunk-ZL2GYU7H.js → chunk-7X2IVMXN.js} +2 -2
  48. package/dist/cli/chunks/{chunk-F5BREV2Q.js → chunk-A4OPQJ4A.js} +5 -5
  49. package/dist/cli/chunks/{chunk-2TBHPYOU.js → chunk-ADF6LGHZ.js} +2 -2
  50. package/dist/cli/chunks/{chunk-RWQDRPN5.js → chunk-AHVN3UQZ.js} +2 -2
  51. package/dist/cli/chunks/{chunk-QZBFMXO5.js → chunk-AOKSLWON.js} +54 -54
  52. package/dist/cli/chunks/{chunk-S7D4GD7H.js → chunk-ASKPTGUU.js} +2 -2
  53. package/dist/cli/chunks/{chunk-LEB6O2IN.js → chunk-B7GJXQD2.js} +2 -2
  54. package/dist/cli/chunks/{chunk-PBUWNMZ2.js → chunk-B7J3O2WM.js} +1 -1
  55. package/dist/cli/chunks/{chunk-WI7I6LMM.js → chunk-BBKLVHDQ.js} +1 -1
  56. package/dist/cli/chunks/{chunk-ED5HUPUR.js → chunk-BND6M2JX.js} +2 -2
  57. package/dist/cli/chunks/{chunk-5QUOM357.js → chunk-BPGFCUDO.js} +1 -1
  58. package/dist/cli/chunks/{chunk-QSVNVDA5.js → chunk-BY3IL56R.js} +1 -1
  59. package/dist/cli/chunks/{chunk-7SWHW5AC.js → chunk-BY5PLEPZ.js} +20 -20
  60. package/dist/cli/chunks/{chunk-OT6SOPAL.js → chunk-BZWZTGMF.js} +2 -2
  61. package/dist/cli/chunks/{chunk-7PDC4SKR.js → chunk-C5EN5WB6.js} +1 -1
  62. package/dist/cli/chunks/{chunk-APV5UWTU.js → chunk-CFXFGQEN.js} +2 -2
  63. package/dist/cli/chunks/{chunk-AEL4XJGJ.js → chunk-CQ3WSTJ2.js} +2 -2
  64. package/dist/cli/chunks/{chunk-A3IQU2ND.js → chunk-D7RVZ5C2.js} +2 -2
  65. package/dist/cli/chunks/{chunk-B23ROYST.js → chunk-DAYMT7TH.js} +21 -21
  66. package/dist/cli/chunks/{chunk-OTTTHNIT.js → chunk-DBIK4OFX.js} +1 -1
  67. package/dist/cli/chunks/{chunk-DLA3EHKJ.js → chunk-DEJM2P5K.js} +1 -1
  68. package/dist/cli/chunks/{chunk-OMHISPPF.js → chunk-DF4Y3HPO.js} +1 -1
  69. package/dist/cli/chunks/{chunk-DWG4TN6A.js → chunk-DFJGXXCL.js} +1 -1
  70. package/dist/cli/chunks/{chunk-7UUSV2SK.js → chunk-DPL4ZXTE.js} +1 -1
  71. package/dist/cli/chunks/{chunk-GPZH6OPP.js → chunk-DVE5SM5G.js} +3 -3
  72. package/dist/cli/chunks/{chunk-X335K4SU.js → chunk-EGHK6NMH.js} +2 -2
  73. package/dist/cli/chunks/{chunk-YJH7UFA2.js → chunk-EWUFVWRT.js} +2 -2
  74. package/dist/cli/chunks/{chunk-KCBCYF7M.js → chunk-EY5IUF7U.js} +2 -2
  75. package/dist/cli/chunks/{chunk-AOZJ6UUZ.js → chunk-FDK2GF4G.js} +2 -2
  76. package/dist/cli/chunks/{chunk-OGARNKLS.js → chunk-FRBCX46J.js} +2 -2
  77. package/dist/cli/chunks/{chunk-UZDTRCVU.js → chunk-G3ZUB3HD.js} +2 -2
  78. package/dist/cli/chunks/{chunk-OKNMZLGB.js → chunk-GAXTPQCZ.js} +2 -2
  79. package/dist/cli/chunks/{chunk-VX7CQUO7.js → chunk-GJVRQBLI.js} +2 -2
  80. package/dist/cli/chunks/{chunk-SKHP5WUP.js → chunk-GLKLEHK3.js} +2 -2
  81. package/dist/cli/chunks/{chunk-UTALYUMW.js → chunk-HCDTLV5J.js} +2 -2
  82. package/dist/cli/chunks/{chunk-7IJVCDDC.js → chunk-HEDLZWPM.js} +1 -1
  83. package/dist/cli/chunks/{chunk-V5NYGDSX.js → chunk-HEKCN5XQ.js} +2 -2
  84. package/dist/cli/chunks/{chunk-WW4RJ6BH.js → chunk-HFSBONCS.js} +2 -2
  85. package/dist/cli/chunks/{chunk-5LEUEWJY.js → chunk-HX5KQK7I.js} +2 -2
  86. package/dist/cli/chunks/{chunk-RDTR43YN.js → chunk-I43QRLLB.js} +2 -2
  87. package/dist/cli/chunks/{chunk-AQTQ24SK.js → chunk-I53365HG.js} +3 -3
  88. package/dist/cli/chunks/{chunk-RGD2CG23.js → chunk-I5A3HGO6.js} +2 -2
  89. package/dist/cli/chunks/{chunk-IARE5VGI.js → chunk-I6E4X3L3.js} +1 -1
  90. package/dist/cli/chunks/{chunk-YW4GM36K.js → chunk-IKWAPHJA.js} +2 -2
  91. package/dist/cli/chunks/{chunk-QUXX2DP7.js → chunk-ISASRHZP.js} +2 -2
  92. package/dist/cli/chunks/{chunk-BDKQSEEY.js → chunk-J3RNVHDH.js} +1 -1
  93. package/dist/cli/chunks/{chunk-QVNMTMDJ.js → chunk-JFQDWAU3.js} +2 -2
  94. package/dist/cli/chunks/{chunk-2GJJGO5D.js → chunk-JL3TI43V.js} +2 -2
  95. package/dist/cli/chunks/{chunk-6TYTBQPV.js → chunk-K2VUYRMG.js} +2 -2
  96. package/dist/cli/chunks/{chunk-A5H7TF7C.js → chunk-KOLHZSEC.js} +2 -2
  97. package/dist/cli/chunks/{chunk-WTMLRMKW.js → chunk-LGA6J4I4.js} +2 -2
  98. package/dist/cli/chunks/{chunk-CF3BPD2R.js → chunk-LJRZAALA.js} +154 -155
  99. package/dist/cli/chunks/{chunk-BO43BGHX.js → chunk-LOLAEDZD.js} +2 -2
  100. package/dist/cli/chunks/{chunk-XXW4KFBB.js → chunk-LPSE6DOQ.js} +1 -1
  101. package/dist/cli/chunks/{chunk-3UUMGWHW.js → chunk-LRTF5RMG.js} +4 -4
  102. package/dist/cli/chunks/{chunk-FPFGN2Z5.js → chunk-LXYTC62V.js} +2 -2
  103. package/dist/cli/chunks/{chunk-W7EHNX3Y.js → chunk-LY53L6NH.js} +2 -2
  104. package/dist/cli/chunks/{chunk-SP2JO53K.js → chunk-LZSLJJII.js} +2 -2
  105. package/dist/cli/chunks/{chunk-HSR53REE.js → chunk-M6SJALLA.js} +2 -2
  106. package/dist/cli/chunks/{chunk-AS54N3H7.js → chunk-MBV57LKC.js} +2 -2
  107. package/dist/cli/chunks/{chunk-6AKJ73X3.js → chunk-MGH4XIHH.js} +2 -2
  108. package/dist/cli/chunks/{chunk-HW4V7BVV.js → chunk-MVTUFPM2.js} +2 -2
  109. package/dist/cli/chunks/{chunk-4IYHYHTG.js → chunk-N6CRIUTO.js} +2 -2
  110. package/dist/cli/chunks/{chunk-X33LID2T.js → chunk-NBMQOP2R.js} +1 -1
  111. package/dist/cli/chunks/{chunk-D6PUDLJ4.js → chunk-NIJMLEAX.js} +2 -2
  112. package/dist/cli/chunks/{chunk-YTRGMILO.js → chunk-O7TMY4GS.js} +2 -2
  113. package/dist/cli/chunks/{chunk-PPA53NJB.js → chunk-OFQDM73J.js} +2 -2
  114. package/dist/cli/chunks/{chunk-M3ONCPSU.js → chunk-OG4KHX7S.js} +2 -2
  115. package/dist/cli/chunks/{chunk-3MNKYCLH.js → chunk-OHH6BUZK.js} +1 -1
  116. package/dist/cli/chunks/{chunk-HR7RL4PB.js → chunk-OOK6GPJR.js} +2 -2
  117. package/dist/cli/chunks/{chunk-XV2TIODR.js → chunk-P7GM3EE7.js} +1 -1
  118. package/dist/cli/chunks/{chunk-6V6XVGCL.js → chunk-PB2WSCBW.js} +3 -3
  119. package/dist/cli/chunks/{chunk-JJBTM4JO.js → chunk-PCWZCXBD.js} +2 -2
  120. package/dist/cli/chunks/{chunk-POTVF6BY.js → chunk-PEA4DVXW.js} +1 -1
  121. package/dist/cli/chunks/{chunk-WQZBKLAG.js → chunk-PJAXWCFC.js} +1 -1
  122. package/dist/cli/chunks/{chunk-KGS6H2HB.js → chunk-PMXWDTDK.js} +2 -2
  123. package/dist/cli/chunks/chunk-QIAX3JJB.js +3 -0
  124. package/dist/cli/chunks/{chunk-YGEC3PSD.js → chunk-R47LNH5W.js} +2 -2
  125. package/dist/cli/chunks/{chunk-M3ACHBC7.js → chunk-RA3MI5WK.js} +2 -2
  126. package/dist/cli/chunks/{chunk-HVIFA73X.js → chunk-RB2SL5GD.js} +2 -2
  127. package/dist/cli/chunks/{chunk-YHZGFWJE.js → chunk-RG67RZIX.js} +2 -2
  128. package/dist/cli/chunks/{chunk-5WOBFN2T.js → chunk-RI4JPBZD.js} +2 -2
  129. package/dist/cli/chunks/{chunk-NT6FYFJA.js → chunk-RJ5CZ7B6.js} +2 -2
  130. package/dist/cli/chunks/{chunk-A6PII4R4.js → chunk-RJMBHZYL.js} +1 -1
  131. package/dist/cli/chunks/{chunk-VHBZADYK.js → chunk-RWZ4F44Y.js} +2 -2
  132. package/dist/cli/chunks/{chunk-UGNTLSBL.js → chunk-S5D3HCGN.js} +2 -2
  133. package/dist/cli/chunks/{chunk-366IBPZB.js → chunk-SCL2OYN7.js} +2 -2
  134. package/dist/cli/chunks/{chunk-EQGT4VLC.js → chunk-SIUUAKCE.js} +1 -1
  135. package/dist/cli/chunks/{chunk-LPZAB3N2.js → chunk-SJB4KMZS.js} +3 -3
  136. package/dist/cli/chunks/{chunk-YCGU2LI7.js → chunk-SOSJFEFB.js} +2 -2
  137. package/dist/cli/chunks/{chunk-YQ3ZW47V.js → chunk-SZWXUG36.js} +2 -2
  138. package/dist/cli/chunks/{chunk-VGN46ZT4.js → chunk-T3BMCEQR.js} +2 -2
  139. package/dist/cli/chunks/{chunk-4N7YXTV3.js → chunk-TB22Y3WW.js} +1 -1
  140. package/dist/cli/chunks/{chunk-FTUNC4EI.js → chunk-TVQPYP2Z.js} +3 -3
  141. package/dist/cli/chunks/{chunk-JVQK6NGI.js → chunk-U2E5F3VZ.js} +2 -2
  142. package/dist/cli/chunks/{chunk-UCSGZVJX.js → chunk-UK5HY6LC.js} +1 -1
  143. package/dist/cli/chunks/{chunk-35VDOH4Y.js → chunk-UORI2CZ4.js} +1 -1
  144. package/dist/cli/chunks/{chunk-DH5NWHH2.js → chunk-V3NZ23X6.js} +2 -2
  145. package/dist/cli/chunks/{chunk-YGKU2QRC.js → chunk-VAXQUD5G.js} +1 -1
  146. package/dist/cli/chunks/{chunk-3Y4GX5FL.js → chunk-VMSO6DMF.js} +2 -2
  147. package/dist/cli/chunks/{chunk-GJB3LPCS.js → chunk-W3PPYNHF.js} +2 -2
  148. package/dist/cli/chunks/{chunk-7TW5UGDP.js → chunk-W6TJXK5Y.js} +2 -2
  149. package/dist/cli/chunks/{chunk-SRDECRTL.js → chunk-WEDVLKRB.js} +2 -2
  150. package/dist/cli/chunks/{chunk-4TM5K6EZ.js → chunk-WI5AEB7Q.js} +2 -2
  151. package/dist/cli/chunks/{chunk-Z7JPWXW2.js → chunk-WO4NSPLX.js} +2 -2
  152. package/dist/cli/chunks/{chunk-WSND64RL.js → chunk-WW6WUMS7.js} +2 -2
  153. package/dist/cli/chunks/{chunk-VOKIUF7I.js → chunk-WYO5VN2L.js} +1 -1
  154. package/dist/cli/chunks/{chunk-34Y4CIHD.js → chunk-X5S5UEM6.js} +2 -2
  155. package/dist/cli/chunks/{chunk-D5V6C3XG.js → chunk-XHCCH7UC.js} +3 -3
  156. package/dist/cli/chunks/{chunk-MZDUBFLP.js → chunk-XKIFNKHV.js} +1 -1
  157. package/dist/cli/chunks/{chunk-DE3QNPTG.js → chunk-XZ5Z56OP.js} +1 -1
  158. package/dist/cli/chunks/{chunk-RWLOERKK.js → chunk-YQ6BK7QC.js} +2 -2
  159. package/dist/cli/chunks/{chunk-HU474NXP.js → chunk-YUWUFYHK.js} +1 -1
  160. package/dist/cli/chunks/{chunk-ZJW4HRUA.js → chunk-YZ2AGC7O.js} +1 -1
  161. package/dist/cli/chunks/{chunk-WLOHTLHO.js → chunk-Z56QTRRB.js} +2 -2
  162. package/dist/cli/chunks/{chunk-EBIMVSPH.js → chunk-ZAOQIVHG.js} +2 -2
  163. package/dist/cli/chunks/{chunk-K65X6CQA.js → chunk-ZF5JTQEE.js} +1 -1
  164. package/dist/cli/chunks/{chunk-VRT736E3.js → chunk-ZKXZTIVF.js} +2 -2
  165. package/dist/cli/chunks/{chunk-ZI6NJEBY.js → chunk-ZP6ANUP7.js} +1 -1
  166. package/dist/cli/chunks/{chunk-I5VJ3FBC.js → chunk-ZURYZEHX.js} +2 -2
  167. package/dist/cli/chunks/{ci-JPISJ25U.js → ci-NGMGB43T.js} +3 -3
  168. package/dist/cli/chunks/{ci-output-DPHTFIGX.js → ci-output-BMJABAEX.js} +2 -2
  169. package/dist/cli/chunks/{circuit-breaker-PQ65VU2M.js → circuit-breaker-GYD5CMJQ.js} +2 -2
  170. package/dist/cli/chunks/{claude-flow-setup-GKHVO7AD.js → claude-flow-setup-MMOYVBVD.js} +2 -2
  171. package/dist/cli/chunks/client-FUHNNK5O.js +2 -0
  172. package/dist/cli/chunks/{cline-installer-HWMQZJ64.js → cline-installer-B2SOZ44R.js} +2 -2
  173. package/dist/cli/chunks/{code-OTY7BF3D.js → code-V3FIRAXD.js} +3 -3
  174. package/dist/cli/chunks/{code-index-extractor-FG3TMHHR.js → code-index-extractor-CV6A756Z.js} +2 -2
  175. package/dist/cli/chunks/{codex-installer-63JARKKS.js → codex-installer-EUC6J47Y.js} +2 -2
  176. package/dist/cli/chunks/{completions-4ZHONFML.js → completions-DQQIBAHR.js} +2 -2
  177. package/dist/cli/chunks/{complexity-analyzer-FYHTJW5Y.js → complexity-analyzer-HPXMXP5I.js} +2 -2
  178. package/dist/cli/chunks/{continuedev-installer-ZAWDSUR3.js → continuedev-installer-RCIYXH6V.js} +2 -2
  179. package/dist/cli/chunks/{copilot-installer-5QK565JX.js → copilot-installer-VUH32SHF.js} +2 -2
  180. package/dist/cli/chunks/core-handlers-F7TLX4LM.js +2 -0
  181. package/dist/cli/chunks/{cost-tracker-AWWMPPBJ.js → cost-tracker-YLCKLOAL.js} +2 -2
  182. package/dist/cli/chunks/{coverage-SMFQEGKE.js → coverage-IVKDV236.js} +3 -3
  183. package/dist/cli/chunks/cross-domain-router-EGWPY67O.js +2 -0
  184. package/dist/cli/chunks/{cursor-installer-3BL7JACV.js → cursor-installer-B42FN62K.js} +2 -2
  185. package/dist/cli/chunks/{daemon-R6ULBHHF.js → daemon-DECQRQII.js} +3 -3
  186. package/dist/cli/chunks/{daemon-OJ624POF.js → daemon-IPTOSCHM.js} +4 -4
  187. package/dist/cli/chunks/{dag-attention-scheduler-J6I3LTMY.js → dag-attention-scheduler-RY7CDYSC.js} +2 -2
  188. package/dist/cli/chunks/{detect-5Q5W33UR.js → detect-NW53BMJN.js} +2 -2
  189. package/dist/cli/chunks/{dist-node-GJNW56NA.js → dist-node-LE6KHXAB.js} +2 -2
  190. package/dist/cli/chunks/{domain-handler-IZQY2G44.js → domain-handler-JGXFT4LW.js} +2 -2
  191. package/dist/cli/chunks/{domain-plugins-PIGO3KI2.js → domain-plugins-GY3RYKKK.js} +2 -2
  192. package/dist/cli/chunks/{domain-transfer-NU3B4FQG.js → domain-transfer-CGBRXNTC.js} +2 -2
  193. package/dist/cli/chunks/dream-V4QN6OF5.js +2 -0
  194. package/dist/cli/chunks/{embed-and-insert-pattern-5QDDRPWV.js → embed-and-insert-pattern-65H4XHWR.js} +2 -2
  195. package/dist/cli/chunks/{eval-TB5HOAUY.js → eval-YPYIZQUR.js} +2 -2
  196. package/dist/cli/chunks/{experience-capture-middleware-SIYVLKDE.js → experience-capture-middleware-4JXVF5PL.js} +3 -3
  197. package/dist/cli/chunks/{fast-paths-T7QELS6D.js → fast-paths-HYQTAF2S.js} +2 -2
  198. package/dist/cli/chunks/{feature-flags-TNZ7ZAJV.js → feature-flags-HNSAFFX2.js} +2 -2
  199. package/dist/cli/chunks/{feature-flags-T3CNNYMJ.js → feature-flags-YACUH6OW.js} +2 -2
  200. package/dist/cli/chunks/{file-discovery-M45P2ZCY.js → file-discovery-R73BYEXB.js} +2 -2
  201. package/dist/cli/chunks/{fleet-DSBZPHBZ.js → fleet-6M3BP4OO.js} +3 -3
  202. package/dist/cli/chunks/{gnn-wrapper-EHODCF32.js → gnn-wrapper-QLD7KHXV.js} +2 -2
  203. package/dist/cli/chunks/{heartbeat-handler-V5DBVF7V.js → heartbeat-handler-EZP333X4.js} +4 -4
  204. package/dist/cli/chunks/heartbeat-scheduler-3N3L6CRM.js +2 -0
  205. package/dist/cli/chunks/hnsw-adapter-2BXJYDXI.js +2 -0
  206. package/dist/cli/chunks/hnsw-index-2DLI5OVO.js +2 -0
  207. package/dist/cli/chunks/{hnsw-legacy-bridge-IYKDYA2F.js → hnsw-legacy-bridge-47CUCSAU.js} +2 -2
  208. package/dist/cli/chunks/{hnswlib-node-DKG4LW3X.js → hnswlib-node-SVNYDJZH.js} +2 -2
  209. package/dist/cli/chunks/{hooks-VKNMAILY.js → hooks-6V5LMWP6.js} +10 -10
  210. package/dist/cli/chunks/hybrid-backend-OW4J65YH.js +2 -0
  211. package/dist/cli/chunks/{hypergraph-engine-AXZVP7A7.js → hypergraph-engine-L2FOBIFF.js} +2 -2
  212. package/dist/cli/chunks/{hypergraph-handler-6EO6JN4Z.js → hypergraph-handler-DU6Z57EE.js} +3 -3
  213. package/dist/cli/chunks/impact-analyzer-ZH5I2RG6.js +2 -0
  214. package/dist/cli/chunks/{init-handler-N3NG3RHN.js → init-handler-HETPWU67.js} +6 -6
  215. package/dist/cli/chunks/init-wizard-NIKM3ZOK.js +2 -0
  216. package/dist/cli/chunks/kernel-2EOSVM6X.js +2 -0
  217. package/dist/cli/chunks/{kilocode-installer-JICGAHLM.js → kilocode-installer-NHKYGJ7Q.js} +2 -2
  218. package/dist/cli/chunks/{kiro-installer-VYBFP6ZH.js → kiro-installer-24UK6GGR.js} +2 -2
  219. package/dist/cli/chunks/knowledge-graph-D3BPWNNO.js +2 -0
  220. package/dist/cli/chunks/{learning-3BHEZEPK.js → learning-QLVRZNHT.js} +3 -3
  221. package/dist/cli/chunks/{llm-router-GPTEZCUN.js → llm-router-XRMI2VMG.js} +4 -4
  222. package/dist/cli/chunks/llm-router-service-TJPPZFUN.js +2 -0
  223. package/dist/cli/chunks/{load-W5BIRPU4.js → load-W5UWL5C7.js} +2 -2
  224. package/dist/cli/chunks/load-test-RFT7IDOL.js +2 -0
  225. package/dist/cli/chunks/{mcp-EBV4DZPG.js → mcp-N7ALQ4BL.js} +2 -2
  226. package/dist/cli/chunks/{memory-7F6YYKNL.js → memory-WV52DLSA.js} +5 -5
  227. package/dist/cli/chunks/memory-backend-O2O4CFKZ.js +2 -0
  228. package/dist/cli/chunks/{memory-handlers-OGLJHAAJ.js → memory-handlers-DAEGUDBD.js} +2 -2
  229. package/dist/cli/chunks/{multi-model-executor-3ZIA2YOL.js → multi-model-executor-3FVTZCSO.js} +2 -2
  230. package/dist/cli/chunks/{opencode-installer-2XRZUTLR.js → opencode-installer-NTPWGHUW.js} +2 -2
  231. package/dist/cli/chunks/{orchestrator-VSZVJUJW.js → orchestrator-ORGJ6VAA.js} +5 -5
  232. package/dist/cli/chunks/pattern-null-store-TUBNXS34.js +2 -0
  233. package/dist/cli/chunks/{pattern-usage-recorder-I2IGVHRL.js → pattern-usage-recorder-WWXHUH5U.js} +2 -2
  234. package/dist/cli/chunks/{pipeline-5G3O6WBY.js → pipeline-ZOKZFXTH.js} +2 -2
  235. package/dist/cli/chunks/{platform-6GUFDIA3.js → platform-CDNL322F.js} +2 -2
  236. package/dist/cli/chunks/{plugin-GYXE4CIC.js → plugin-ZVLFNZZ4.js} +2 -2
  237. package/dist/cli/chunks/{prime-radiant-advanced-wasm-THX6JLGZ.js → prime-radiant-advanced-wasm-FVJDU2JY.js} +2 -2
  238. package/dist/cli/chunks/{project-root-QJRBKZQU.js → project-root-UCHQH3QL.js} +2 -2
  239. package/dist/cli/chunks/protocol-executor-6FQTTO3Y.js +2 -0
  240. package/dist/cli/chunks/{protocol-handler-B54LRU26.js → protocol-handler-4YBN5R23.js} +2 -2
  241. package/dist/cli/chunks/{prove-PCY2WQOD.js → prove-BHDHY664.js} +2 -2
  242. package/dist/cli/chunks/qe-reasoning-bank-TKPND56C.js +2 -0
  243. package/dist/cli/chunks/{quality-LPVDZC7U.js → quality-46AK277P.js} +2 -2
  244. package/dist/cli/chunks/{quality-gate-L3KXL6WE.js → quality-gate-WANE7TCN.js} +3 -3
  245. package/dist/cli/chunks/queen-coordinator-DWMXLPJG.js +2 -0
  246. package/dist/cli/chunks/{real-embeddings-N3H523PJ.js → real-embeddings-56MNGJGJ.js} +2 -2
  247. package/dist/cli/chunks/{ref-validation-6BKDPHZ7.js → ref-validation-S7UWXQIP.js} +2 -2
  248. package/dist/cli/chunks/{roocode-installer-NSGGTWXE.js → roocode-installer-TEYOQYL6.js} +2 -2
  249. package/dist/cli/chunks/router-QIMUYRCC.js +2 -0
  250. package/dist/cli/chunks/routing-feedback-4OH5ZNF4.js +2 -0
  251. package/dist/cli/chunks/{routing-handler-SRQNUBG3.js → routing-handler-KDTLMRWD.js} +2 -2
  252. package/dist/cli/chunks/{ruvector-commands-2IGULGDE.js → ruvector-commands-AOUDXCYE.js} +2 -2
  253. package/dist/cli/chunks/rvf-dual-writer-S6JBZL54.js +2 -0
  254. package/dist/cli/chunks/rvf-migration-adapter-TSGMLMYR.js +2 -0
  255. package/dist/cli/chunks/{rvf-migration-coordinator-ZD6WK5CK.js → rvf-migration-coordinator-V74MVBHS.js} +2 -2
  256. package/dist/cli/chunks/rvf-native-adapter-Z7QOW47S.js +2 -0
  257. package/dist/cli/chunks/{rvf-store-integrity-QULKUBBI.js → rvf-store-integrity-QI47Y354.js} +2 -2
  258. package/dist/cli/chunks/safe-db-JLOVBJNC.js +2 -0
  259. package/dist/cli/chunks/schedule-IM6XOBGR.js +2 -0
  260. package/dist/cli/chunks/scheduler-XL2SVVK5.js +2 -0
  261. package/dist/cli/chunks/{security-JW4EBARW.js → security-SN6MWOJT.js} +3 -3
  262. package/dist/cli/chunks/{shared-rvf-adapter-VQ7NJTGY.js → shared-rvf-adapter-2LB56LP4.js} +2 -2
  263. package/dist/cli/chunks/{shared-rvf-dual-writer-SKTS52HK.js → shared-rvf-dual-writer-WU7PFKQM.js} +2 -2
  264. package/dist/cli/chunks/sqlite-persistence-LWMIIC4U.js +2 -0
  265. package/dist/cli/chunks/{standalone-memory-3N4YJCSY.js → standalone-memory-F6FSRFWC.js} +2 -2
  266. package/dist/cli/chunks/{status-handler-5BQ2IIDG.js → status-handler-DHD5MS4G.js} +2 -2
  267. package/dist/cli/chunks/{structural-health-WGYR2RJB.js → structural-health-P6HPSQMR.js} +2 -2
  268. package/dist/cli/chunks/{sync-DLKSXTIR.js → sync-LISJGDSE.js} +2 -2
  269. package/dist/cli/chunks/{sync-R5OKUBTQ.js → sync-SNAXAVCN.js} +2 -2
  270. package/dist/cli/chunks/{task-handler-Z5KNTSUX.js → task-handler-ZT44NT5Z.js} +2 -2
  271. package/dist/cli/chunks/{task-handlers-RZFMYFSC.js → task-handlers-R6DQ5324.js} +3 -3
  272. package/dist/cli/chunks/{test-LHWKZJRN.js → test-MUFHR4JQ.js} +4 -4
  273. package/dist/cli/chunks/{test-scheduling-EN7WXUMS.js → test-scheduling-TAUSLZJP.js} +3 -3
  274. package/dist/cli/chunks/{token-bootstrap-4V3OO4EC.js → token-bootstrap-UGRH7OPU.js} +2 -2
  275. package/dist/cli/chunks/{token-usage-PFC2BYBS.js → token-usage-IX65ECBR.js} +2 -2
  276. package/dist/cli/chunks/{transformers-VZCC4SHC.js → transformers-QKPSVW2W.js} +2 -2
  277. package/dist/cli/chunks/{tree-sitter-wasm-parser-ZYDQXGKN.js → tree-sitter-wasm-parser-Z7PPA2JO.js} +2 -2
  278. package/dist/cli/chunks/{types-I6AWHZZQ.js → types-ULNNGGGH.js} +2 -2
  279. package/dist/cli/chunks/unified-memory-F5IJY7W7.js +2 -0
  280. package/dist/cli/chunks/unified-memory-hnsw-C3WAMAQL.js +2 -0
  281. package/dist/cli/chunks/unified-persistence-EWXXOTCB.js +2 -0
  282. package/dist/cli/chunks/{upgrade-T7SG75PA.js → upgrade-ECI3YUYA.js} +2 -2
  283. package/dist/cli/chunks/{validate-YLYEHTY3.js → validate-3JKRUW2S.js} +2 -2
  284. package/dist/cli/chunks/{validate-swarm-VTLTRUE3.js → validate-swarm-LZWANCIE.js} +2 -2
  285. package/dist/cli/chunks/visual-security-CKLTAIAB.js +2 -0
  286. package/dist/cli/chunks/{web-tree-sitter-JUM7ZY5M.js → web-tree-sitter-N5V4A6XG.js} +2 -2
  287. package/dist/cli/chunks/{windsurf-installer-4KS2466T.js → windsurf-installer-5TBM5B3C.js} +2 -2
  288. package/dist/cli/chunks/{witness-chain-E4X6TOCT.js → witness-chain-MFP3HBWQ.js} +2 -2
  289. package/dist/cli/chunks/witness-chain-Z6LWFEZS.js +2 -0
  290. package/dist/cli/chunks/{witness-chain-repair-MB53OZO6.js → witness-chain-repair-5QWRFVUK.js} +2 -2
  291. package/dist/cli/chunks/{witness-chain-verifier-LBWJHO7Y.js → witness-chain-verifier-SRAT7LVY.js} +2 -2
  292. package/dist/cli/chunks/{witness-key-manager-5IHVMXHJ.js → witness-key-manager-FYZXQTLJ.js} +2 -2
  293. package/dist/cli/chunks/{workflow-XUQXIRNE.js → workflow-M7TUYYXY.js} +5 -5
  294. package/dist/cli/chunks/workflow-orchestrator-OFTAR2NA.js +2 -0
  295. package/dist/cli/chunks/{wrappers-YVF5SQUN.js → wrappers-COU73OQ6.js} +2 -2
  296. package/dist/cli/commands/workflow.js +3 -0
  297. package/dist/cli/scheduler/persistent-scheduler.d.ts +2 -0
  298. package/dist/cli/scheduler/persistent-scheduler.js +12 -2
  299. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.d.ts +3 -0
  300. package/dist/domains/code-intelligence/services/metric-collector/listing-process-owner.js +57 -0
  301. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +124 -36
  302. package/dist/mcp/bundle.js +414 -415
  303. package/dist/mcp/handlers/domain-handler-configs.d.ts +42 -0
  304. package/dist/mcp/services/session-store.js +11 -1
  305. package/dist/mcp/types.d.ts +18 -0
  306. package/dist/memory/crdt/convergence-tracker.js +14 -24
  307. package/dist/memory/crdt/crdt-store.js +15 -0
  308. package/dist/memory/crdt/lww-register.js +3 -3
  309. package/dist/memory/crdt/or-set.js +18 -0
  310. package/dist/planning/goap-planner.js +18 -10
  311. package/dist/shared/embeddings/embedding-cache.d.ts +3 -3
  312. package/dist/shared/embeddings/embedding-cache.js +8 -8
  313. package/dist/shared/embeddings/nomic-embedder.js +9 -6
  314. package/dist/shared/llm/cache.js +1 -1
  315. package/package.json +1 -1
  316. package/dist/cli/chunks/adapter-WQSFQES5.js +0 -2
  317. package/dist/cli/chunks/aqe-learning-engine-TDHBBADE.js +0 -2
  318. package/dist/cli/chunks/base-CZSB27VO.js +0 -2
  319. package/dist/cli/chunks/browser-workflow-AEMIS6PA.js +0 -2
  320. package/dist/cli/chunks/chunk-INVDDFJC.js +0 -2
  321. package/dist/cli/chunks/chunk-QDQLL2QB.js +0 -3
  322. package/dist/cli/chunks/client-BS7I637W.js +0 -2
  323. package/dist/cli/chunks/core-handlers-UG7RMTK5.js +0 -2
  324. package/dist/cli/chunks/cross-domain-router-NX7F6TOF.js +0 -2
  325. package/dist/cli/chunks/dream-GYEH57FW.js +0 -2
  326. package/dist/cli/chunks/heartbeat-scheduler-4TJ3T7LR.js +0 -2
  327. package/dist/cli/chunks/hnsw-adapter-PHFK4EAP.js +0 -2
  328. package/dist/cli/chunks/hnsw-index-434XDDBH.js +0 -2
  329. package/dist/cli/chunks/hybrid-backend-DYVJQENQ.js +0 -2
  330. package/dist/cli/chunks/impact-analyzer-CBAST6M2.js +0 -2
  331. package/dist/cli/chunks/init-wizard-DWIJW7HY.js +0 -2
  332. package/dist/cli/chunks/kernel-AQGCS4X2.js +0 -2
  333. package/dist/cli/chunks/knowledge-graph-2ICXFUUV.js +0 -2
  334. package/dist/cli/chunks/llm-router-service-C47RGTH6.js +0 -2
  335. package/dist/cli/chunks/load-test-LRDAW3N6.js +0 -2
  336. package/dist/cli/chunks/memory-backend-UFBAYPQ6.js +0 -2
  337. package/dist/cli/chunks/pattern-null-store-27FCITT3.js +0 -2
  338. package/dist/cli/chunks/protocol-executor-XWXXTMEW.js +0 -2
  339. package/dist/cli/chunks/qe-reasoning-bank-3RMYXENE.js +0 -2
  340. package/dist/cli/chunks/queen-coordinator-AS6DZ7UJ.js +0 -2
  341. package/dist/cli/chunks/router-OVNLNGHO.js +0 -2
  342. package/dist/cli/chunks/routing-feedback-TBOWEB6H.js +0 -2
  343. package/dist/cli/chunks/rvf-dual-writer-YJYRCYGT.js +0 -2
  344. package/dist/cli/chunks/rvf-migration-adapter-VMRQ2SFO.js +0 -2
  345. package/dist/cli/chunks/rvf-native-adapter-B75L3ALW.js +0 -2
  346. package/dist/cli/chunks/safe-db-CRQHMCV6.js +0 -2
  347. package/dist/cli/chunks/schedule-L3DKJRXU.js +0 -2
  348. package/dist/cli/chunks/scheduler-VRHYUGY5.js +0 -2
  349. package/dist/cli/chunks/sqlite-persistence-JVAZETTL.js +0 -2
  350. package/dist/cli/chunks/unified-memory-WOOCCIUM.js +0 -2
  351. package/dist/cli/chunks/unified-memory-hnsw-PDDHFLUB.js +0 -2
  352. package/dist/cli/chunks/unified-persistence-6ETD3JSC.js +0 -2
  353. package/dist/cli/chunks/visual-security-O4OT2YPY.js +0 -2
  354. package/dist/cli/chunks/witness-chain-67JHPDCN.js +0 -2
  355. package/dist/cli/chunks/workflow-orchestrator-ZVFSNRYZ.js +0 -2
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
2
- import{b as l}from"./chunk-WSUYEVSY.js";function m(){let t=new Map;for(let[e,o]of Object.entries(p)){t.set(e,e),t.set(e.toLowerCase(),e);for(let[s,r]of Object.entries(o.providers))r&&(t.set(r,e),t.set(r.toLowerCase(),e),t.set(`${s}/${r}`,e),t.set(`${s}/${r}`.toLowerCase(),e))}return t}function C(t,e){let o=i(t),s=p[o];if(!s)throw new Error(`Unknown model: ${t}`);let r=s.providers[e];if(!r)throw new Error(`Model '${o}' (${s.canonical}) is not available on provider '${e}'`);return r}function i(t){let e=n.get(t);if(e||(e=n.get(t.toLowerCase()),e))return e;let o=[/^anthropic\//i,/^openai\//i,/^google\//i,/^meta-llama\//i,/^mistralai\//i,/^qwen\//i];for(let s of o){let r=t.replace(s,"");if(e=n.get(r),e||(e=n.get(r.toLowerCase()),e))return e}throw new Error(`Unknown model ID: ${t}`)}function d(t){try{let e=i(t);return p[e]}catch{return}}var p,n,c=l(()=>{"use strict";p={"claude-sonnet-4-5":{canonical:"Claude Sonnet 4.5",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-4-5-20250929",openrouter:"anthropic/claude-sonnet-4.5",bedrock:"anthropic.claude-sonnet-4-5-v2:0"}},"claude-opus-4":{canonical:"Claude Opus 4",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-20250514",openrouter:"anthropic/claude-opus-4",bedrock:"anthropic.claude-opus-4-v1:0"}},"claude-opus-4-5":{canonical:"Claude Opus 4.5",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-5-20251101",openrouter:"anthropic/claude-opus-4.5",bedrock:"anthropic.claude-opus-4-5-v1:0"}},"claude-haiku-3-5":{canonical:"Claude Haiku 3.5",family:"claude",tier:"economy",providers:{anthropic:"claude-3-5-haiku-20241022",openrouter:"anthropic/claude-3.5-haiku",bedrock:"anthropic.claude-3-5-haiku-v1:0"}},"claude-sonnet-4":{canonical:"Claude Sonnet 4",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-4-20250514",openrouter:"anthropic/claude-sonnet-4",bedrock:"anthropic.claude-sonnet-4-v1:0"}},"claude-opus-4-7":{canonical:"Claude Opus 4.7",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-7",openrouter:"anthropic/claude-opus-4.7",bedrock:"anthropic.claude-opus-4-7-v1:0"}},"claude-sonnet-4-6":{canonical:"Claude Sonnet 4.6",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-4-6",openrouter:"anthropic/claude-sonnet-4.6",bedrock:"anthropic.claude-sonnet-4-6-v1:0"}},"claude-haiku-4-5":{canonical:"Claude Haiku 4.5",family:"claude",tier:"economy",providers:{anthropic:"claude-haiku-4-5-20251001",openrouter:"anthropic/claude-haiku-4.5",bedrock:"anthropic.claude-haiku-4-5-v1:0"}},"claude-opus-4-6":{canonical:"Claude Opus 4.6",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-6",openrouter:"anthropic/claude-opus-4.6"}},"claude-opus-4-8":{canonical:"Claude Opus 4.8",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-8",openrouter:"anthropic/claude-opus-4.8",bedrock:"anthropic.claude-opus-4-8"}},"claude-sonnet-5":{canonical:"Claude Sonnet 5",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-5",openrouter:"anthropic/claude-sonnet-5",bedrock:"anthropic.claude-sonnet-5"}},"claude-opus-5":{canonical:"Claude Opus 5",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-5",openrouter:"anthropic/claude-opus-5",bedrock:"anthropic.claude-opus-5"}},"claude-opus-5-5":{canonical:"Claude Opus 5.5",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-5-5",openrouter:"anthropic/claude-opus-5.5",bedrock:"anthropic.claude-opus-5-5"}},"claude-fable-5":{canonical:"Claude Fable 5",family:"claude",tier:"flagship",providers:{anthropic:"claude-fable-5",openrouter:"anthropic/claude-fable-5",bedrock:"anthropic.claude-fable-5"}},"claude-fable-5-1":{canonical:"Claude Fable 5.1",family:"claude",tier:"flagship",providers:{anthropic:"claude-fable-5-1",openrouter:"anthropic/claude-fable-5.1",bedrock:"anthropic.claude-fable-5-1"}},"gpt-4o":{canonical:"GPT-4o",family:"gpt",tier:"standard",providers:{openai:"gpt-4o",azure:"gpt-4o",openrouter:"openai/gpt-4o"}},"gpt-4o-mini":{canonical:"GPT-4o Mini",family:"gpt",tier:"economy",providers:{openai:"gpt-4o-mini",azure:"gpt-4o-mini",openrouter:"openai/gpt-4o-mini"}},"gpt-4-turbo":{canonical:"GPT-4 Turbo",family:"gpt",tier:"premium",providers:{openai:"gpt-4-turbo",azure:"gpt-4-turbo",openrouter:"openai/gpt-4-turbo"}},"gpt-4":{canonical:"GPT-4",family:"gpt",tier:"premium",providers:{openai:"gpt-4",azure:"gpt-4",openrouter:"openai/gpt-4"}},o1:{canonical:"OpenAI o1",family:"gpt",tier:"flagship",providers:{openai:"o1",azure:"o1",openrouter:"openai/o1"}},"gpt-6-astra":{canonical:"GPT-6 Astra",family:"gpt",tier:"flagship",providers:{openai:"gpt-6-astra",azure:"gpt-6-astra",openrouter:"openai/gpt-6-astra"}},"gpt-6-sol":{canonical:"GPT-6 Sol",family:"gpt",tier:"standard",providers:{openai:"gpt-6-sol",azure:"gpt-6-sol",openrouter:"openai/gpt-6-sol"}},"gpt-6-luna":{canonical:"GPT-6 Luna",family:"gpt",tier:"economy",providers:{openai:"gpt-6-luna",azure:"gpt-6-luna",openrouter:"openai/gpt-6-luna"}},"o1-mini":{canonical:"OpenAI o1 Mini",family:"gpt",tier:"standard",providers:{openai:"o1-mini",azure:"o1-mini",openrouter:"openai/o1-mini"}},"gemini-pro":{canonical:"Gemini Pro",family:"gemini",tier:"standard",providers:{gemini:"gemini-pro",openrouter:"google/gemini-pro"}},"gemini-pro-1.5":{canonical:"Gemini Pro 1.5",family:"gemini",tier:"standard",providers:{gemini:"gemini-1.5-pro",openrouter:"google/gemini-pro-1.5"}},"gemini-flash-1.5":{canonical:"Gemini Flash 1.5",family:"gemini",tier:"economy",providers:{gemini:"gemini-1.5-flash",openrouter:"google/gemini-flash-1.5"}},"gemini-3.8-flash":{canonical:"Gemini 3.8 Flash",family:"gemini",tier:"economy",providers:{gemini:"gemini-3.8-flash",openrouter:"google/gemini-3.8-flash"}},"gemini-3.5-flash":{canonical:"Gemini 3.5 Flash",family:"gemini",tier:"standard",providers:{gemini:"gemini-3.5-flash",openrouter:"google/gemini-3.5-flash"}},"gemini-3.1-pro-preview":{canonical:"Gemini 3.1 Pro (preview)",family:"gemini",tier:"premium",providers:{gemini:"gemini-3.1-pro-preview",openrouter:"google/gemini-3.1-pro-preview"}},"gemini-ultra":{canonical:"Gemini Ultra",family:"gemini",tier:"flagship",providers:{gemini:"gemini-ultra",openrouter:"google/gemini-ultra"}},llama3:{canonical:"Llama 3",family:"llama",tier:"economy",providers:{ollama:"llama3",openrouter:"meta-llama/llama-3-8b-instruct"}},"llama3.1":{canonical:"Llama 3.1",family:"llama",tier:"economy",providers:{ollama:"llama3.1",openrouter:"meta-llama/llama-3.1-8b-instruct"}},codellama:{canonical:"CodeLlama",family:"llama",tier:"economy",providers:{ollama:"codellama",openrouter:"meta-llama/codellama-34b-instruct"}},mistral:{canonical:"Mistral",family:"mistral",tier:"economy",providers:{ollama:"mistral",openrouter:"mistralai/mistral-7b-instruct"}},mixtral:{canonical:"Mixtral",family:"mistral",tier:"standard",providers:{ollama:"mixtral",openrouter:"mistralai/mixtral-8x7b-instruct"}},phi3:{canonical:"Phi-3",family:"phi",tier:"economy",providers:{ollama:"phi3",azure:"phi-3-mini-128k-instruct"}},qwen2:{canonical:"Qwen 2",family:"qwen",tier:"economy",providers:{ollama:"qwen2",openrouter:"qwen/qwen-2-7b-instruct"}},"qwen3:8b":{canonical:"Qwen3 8B",family:"qwen",tier:"economy",providers:{ollama:"qwen3:8b"}},"qwen3:30b-a3b":{canonical:"Qwen3 30B-A3B",family:"qwen",tier:"economy",providers:{ollama:"qwen3:30b-a3b"}},"qwen3-coder:30b":{canonical:"Qwen3 Coder 30B-A3B",family:"qwen",tier:"economy",providers:{ollama:"qwen3-coder:30b"}}};n=m()});function f(t){let e=i(t),o=u[e];if(!o)throw new Error(`Model not found in registry: ${t}`);return{...o.capabilities}}function y(t){try{return f(t).supportsTools}catch{return!0}}function T(t){try{let e=i(t),o=u[e];return o?{...o.cost}:{inputCostPerMillion:0,outputCostPerMillion:0}}catch{return{inputCostPerMillion:0,outputCostPerMillion:0}}}function k(t){try{let e=i(t),o=u[e],s=d(e);return!o||!s?void 0:{id:e,providers:Object.keys(s.providers),...o}}catch{return}}function v(t){return h[t]??a}var u,a,g,E,h,M=l(()=>{"use strict";c();u={"claude-sonnet-4-5":{name:"Claude Sonnet 4.5",family:"claude",tier:"standard",description:"Most intelligent model, best for complex reasoning and coding tasks",releaseDate:"2025-09-29",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4":{name:"Claude Opus 4",family:"claude",tier:"flagship",description:"Flagship model with exceptional reasoning and reliability",releaseDate:"2025-05-14",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:75}},"claude-opus-4-5":{name:"Claude Opus 4.5",family:"claude",tier:"flagship",description:"Latest flagship model with enhanced reasoning capabilities",releaseDate:"2025-11-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:32768,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-haiku-3-5":{name:"Claude Haiku 3.5",family:"claude",tier:"economy",description:"Fast and cost-effective for routine tasks",releaseDate:"2024-10-22",deprecationDate:"2026-02-19",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"claude-sonnet-4":{name:"Claude Sonnet 4",family:"claude",tier:"standard",description:"Balanced model for general-purpose tasks",releaseDate:"2025-05-14",deprecationDate:"2026-06-15",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4-6":{name:"Claude Opus 4.6",family:"claude",tier:"flagship",description:"Previous-generation Opus, still served. Accepts sampling params; no xhigh effort.",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-opus-4-7":{name:"Claude Opus 4.7",family:"claude",tier:"flagship",description:"Flagship agentic-coding model (2026-04-16). 1M context at standard pricing, xhigh effort level, adaptive thinking only. New tokenizer emits 1.0\u20131.35\xD7 more tokens.",releaseDate:"2026-04-16",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-sonnet-4-6":{name:"Claude Sonnet 4.6",family:"claude",tier:"standard",description:"Previous-generation workhorse (ADR-093 tier 3 until the 2026-09 refresh). 1M context, still served; accepts sampling params.",releaseDate:"2026-02-01",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-haiku-4-5":{name:"Claude Haiku 4.5",family:"claude",tier:"economy",description:"Fast economy model replacing Haiku 3.5 (retired 2026-02-19). Extended thinking support.",releaseDate:"2025-10-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:64e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"claude-sonnet-5":{name:"Claude Sonnet 5",family:"claude",tier:"standard",description:"AQE workhorse (tiers 2-3). Adaptive thinking runs by default.",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:2,outputCostPerMillion:10}},"claude-opus-5":{name:"Claude Opus 5",family:"claude",tier:"flagship",description:"Previous Opus (tier 4 before Opus 5.5). Thinking is on by default when omitted.",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-opus-4-8":{name:"Claude Opus 4.8",family:"claude",tier:"flagship",description:"Previous-generation Opus; same request surface as Opus 4.7.",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-opus-5-5":{name:"Claude Opus 5.5",family:"claude",tier:"flagship",description:"AQE tier 4 flagship. Thinking cannot be disabled; default effort medium; forced tool_choice rejected.",releaseDate:"2026-09-22",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:4,outputCostPerMillion:20}},"claude-fable-5":{name:"Claude Fable 5",family:"claude",tier:"flagship",description:"Opt-in most-capable tier (superseded by Fable 5.1).",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:50}},"claude-fable-5-1":{name:"Claude Fable 5.1",family:"claude",tier:"flagship",description:"Opt-in most-capable model; 2x Opus pricing, thinking always on.",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:50}},"gpt-6-astra":{name:"GPT-6 Astra",family:"gpt",tier:"flagship",description:"OpenAI flagship (verified in /v1/models 2026-09-27)",recommended:!1,capabilities:{contextLength:105e4,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsSamplingParams:!1,usesMaxCompletionTokens:!0},cost:{inputCostPerMillion:10,outputCostPerMillion:50}},"gpt-6-sol":{name:"GPT-6 Sol",family:"gpt",tier:"standard",description:"OpenAI default for capable tasks",recommended:!0,capabilities:{contextLength:105e4,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsSamplingParams:!1,usesMaxCompletionTokens:!0},cost:{inputCostPerMillion:2,outputCostPerMillion:10}},"gpt-6-luna":{name:"GPT-6 Luna",family:"gpt",tier:"economy",description:"OpenAI low-cost tier",recommended:!0,capabilities:{contextLength:105e4,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsSamplingParams:!1,usesMaxCompletionTokens:!0},cost:{inputCostPerMillion:.1,outputCostPerMillion:.5}},"gpt-4o":{name:"GPT-4o",family:"gpt",tier:"standard",description:"OpenAI flagship multimodal model, fast and capable",releaseDate:"2024-05-13",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:15,imageCostPerUnit:.00765}},"gpt-4o-mini":{name:"GPT-4o Mini",family:"gpt",tier:"economy",description:"Small, fast, and affordable for lightweight tasks",releaseDate:"2024-07-18",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.15,outputCostPerMillion:.6,imageCostPerUnit:.001275}},"gpt-4-turbo":{name:"GPT-4 Turbo",family:"gpt",tier:"premium",description:"Previous flagship with vision and function calling",releaseDate:"2024-04-09",recommended:!1,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:30}},"gpt-4":{name:"GPT-4",family:"gpt",tier:"premium",description:"Original GPT-4 model, now superseded by GPT-4o",releaseDate:"2023-03-14",deprecationDate:"2025-06-01",recommended:!1,capabilities:{contextLength:8192,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:30,outputCostPerMillion:60}},o1:{name:"OpenAI o1",family:"gpt",tier:"flagship",description:"Reasoning-focused model with extended thinking",releaseDate:"2024-12-05",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:1e5,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:60}},"o1-mini":{name:"OpenAI o1 Mini",family:"gpt",tier:"standard",description:"Faster reasoning model optimized for STEM tasks",releaseDate:"2024-09-12",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:12}},"gemini-3.8-flash":{name:"Gemini 3.8 Flash",family:"gemini",tier:"economy",description:"Latest Gemini Flash (OpenRouter catalog 2026-09-27)",recommended:!0,capabilities:{contextLength:1048576,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.75,outputCostPerMillion:3.75}},"gemini-3.5-flash":{name:"Gemini 3.5 Flash",family:"gemini",tier:"standard",description:"Gemini 3.5 Flash",recommended:!1,capabilities:{contextLength:1048576,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:1.5,outputCostPerMillion:9}},"gemini-3.1-pro-preview":{name:"Gemini 3.1 Pro (preview)",family:"gemini",tier:"premium",description:"Gemini 3.1 Pro preview",recommended:!1,capabilities:{contextLength:1048576,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:2,outputCostPerMillion:12}},"gemini-pro":{name:"Gemini Pro",family:"gemini",tier:"standard",description:"Google balanced model for diverse tasks",releaseDate:"2023-12-06",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.5,outputCostPerMillion:1.5}},"gemini-pro-1.5":{name:"Gemini Pro 1.5",family:"gemini",tier:"standard",description:"Google mid-size model with 1M context window",releaseDate:"2024-02-15",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:3.5,outputCostPerMillion:10.5}},"gemini-flash-1.5":{name:"Gemini Flash 1.5",family:"gemini",tier:"economy",description:"Fast and efficient with 1M context window",releaseDate:"2024-05-14",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:.075,outputCostPerMillion:.3}},"gemini-ultra":{name:"Gemini Ultra",family:"gemini",tier:"flagship",description:"Google most capable model",releaseDate:"2024-02-08",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:12,outputCostPerMillion:36}},llama3:{name:"Llama 3",family:"llama",tier:"economy",description:"Meta open-source 8B model, runs locally",releaseDate:"2024-04-18",recommended:!0,capabilities:{contextLength:8192,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"llama3.1":{name:"Llama 3.1",family:"llama",tier:"economy",description:"Meta latest open-source model with tool support",releaseDate:"2024-07-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},codellama:{name:"CodeLlama",family:"llama",tier:"economy",description:"Meta code-specialized model",releaseDate:"2023-08-24",recommended:!0,capabilities:{contextLength:1e5,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mistral:{name:"Mistral",family:"mistral",tier:"economy",description:"Mistral AI 7B instruction-tuned model",releaseDate:"2023-09-27",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mixtral:{name:"Mixtral",family:"mistral",tier:"standard",description:"Mistral AI mixture of experts model",releaseDate:"2023-12-11",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},phi3:{name:"Phi-3",family:"phi",tier:"economy",description:"Microsoft small language model, efficient",releaseDate:"2024-04-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},qwen2:{name:"Qwen 2",family:"qwen",tier:"economy",description:"Alibaba multilingual model",releaseDate:"2024-06-07",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"qwen3:8b":{name:"Qwen3 8B",family:"qwen",tier:"economy",description:"Alibaba Qwen3 8B \u2014 tools + thinking; below the QE test-gen floor (use for judge/triage)",releaseDate:"2025-04-29",recommended:!1,capabilities:{contextLength:40960,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"qwen3:30b-a3b":{name:"Qwen3 30B-A3B",family:"qwen",tier:"economy",description:"Alibaba Qwen3 30B MoE (3B active) \u2014 fast general local model; clears the QE test-gen floor",releaseDate:"2025-04-29",recommended:!0,capabilities:{contextLength:262144,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"qwen3-coder:30b":{name:"Qwen3 Coder 30B-A3B",family:"qwen",tier:"economy",description:"Alibaba Qwen3-Coder 30B MoE (3B active) \u2014 code-tuned, non-thinking; preferred local QE test-gen model",releaseDate:"2025-07-31",recommended:!0,capabilities:{contextLength:262144,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}}};a="claude-sonnet-5",g="claude-opus-5-5",E="claude-haiku-4-5",h={1:"claude-haiku-4-5-20251001",2:a,3:a,4:g}});export{C as a,i as b,d as c,c as d,f as e,y as f,T as g,k as h,a as i,g as j,E as k,h as l,v as m,M as n};
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.4");process.exit(0)}
2
+ import{b as l}from"./chunk-5H7MR6HP.js";function m(){let t=new Map;for(let[e,o]of Object.entries(p)){t.set(e,e),t.set(e.toLowerCase(),e);for(let[s,r]of Object.entries(o.providers))r&&(t.set(r,e),t.set(r.toLowerCase(),e),t.set(`${s}/${r}`,e),t.set(`${s}/${r}`.toLowerCase(),e))}return t}function C(t,e){let o=i(t),s=p[o];if(!s)throw new Error(`Unknown model: ${t}`);let r=s.providers[e];if(!r)throw new Error(`Model '${o}' (${s.canonical}) is not available on provider '${e}'`);return r}function i(t){let e=n.get(t);if(e||(e=n.get(t.toLowerCase()),e))return e;let o=[/^anthropic\//i,/^openai\//i,/^google\//i,/^meta-llama\//i,/^mistralai\//i,/^qwen\//i];for(let s of o){let r=t.replace(s,"");if(e=n.get(r),e||(e=n.get(r.toLowerCase()),e))return e}throw new Error(`Unknown model ID: ${t}`)}function d(t){try{let e=i(t);return p[e]}catch{return}}var p,n,c=l(()=>{"use strict";p={"claude-sonnet-4-5":{canonical:"Claude Sonnet 4.5",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-4-5-20250929",openrouter:"anthropic/claude-sonnet-4.5",bedrock:"anthropic.claude-sonnet-4-5-v2:0"}},"claude-opus-4":{canonical:"Claude Opus 4",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-20250514",openrouter:"anthropic/claude-opus-4",bedrock:"anthropic.claude-opus-4-v1:0"}},"claude-opus-4-5":{canonical:"Claude Opus 4.5",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-5-20251101",openrouter:"anthropic/claude-opus-4.5",bedrock:"anthropic.claude-opus-4-5-v1:0"}},"claude-haiku-3-5":{canonical:"Claude Haiku 3.5",family:"claude",tier:"economy",providers:{anthropic:"claude-3-5-haiku-20241022",openrouter:"anthropic/claude-3.5-haiku",bedrock:"anthropic.claude-3-5-haiku-v1:0"}},"claude-sonnet-4":{canonical:"Claude Sonnet 4",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-4-20250514",openrouter:"anthropic/claude-sonnet-4",bedrock:"anthropic.claude-sonnet-4-v1:0"}},"claude-opus-4-7":{canonical:"Claude Opus 4.7",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-7",openrouter:"anthropic/claude-opus-4.7",bedrock:"anthropic.claude-opus-4-7-v1:0"}},"claude-sonnet-4-6":{canonical:"Claude Sonnet 4.6",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-4-6",openrouter:"anthropic/claude-sonnet-4.6",bedrock:"anthropic.claude-sonnet-4-6-v1:0"}},"claude-haiku-4-5":{canonical:"Claude Haiku 4.5",family:"claude",tier:"economy",providers:{anthropic:"claude-haiku-4-5-20251001",openrouter:"anthropic/claude-haiku-4.5",bedrock:"anthropic.claude-haiku-4-5-v1:0"}},"claude-opus-4-6":{canonical:"Claude Opus 4.6",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-6",openrouter:"anthropic/claude-opus-4.6"}},"claude-opus-4-8":{canonical:"Claude Opus 4.8",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-4-8",openrouter:"anthropic/claude-opus-4.8",bedrock:"anthropic.claude-opus-4-8"}},"claude-sonnet-5":{canonical:"Claude Sonnet 5",family:"claude",tier:"standard",providers:{anthropic:"claude-sonnet-5",openrouter:"anthropic/claude-sonnet-5",bedrock:"anthropic.claude-sonnet-5"}},"claude-opus-5":{canonical:"Claude Opus 5",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-5",openrouter:"anthropic/claude-opus-5",bedrock:"anthropic.claude-opus-5"}},"claude-opus-5-5":{canonical:"Claude Opus 5.5",family:"claude",tier:"flagship",providers:{anthropic:"claude-opus-5-5",openrouter:"anthropic/claude-opus-5.5",bedrock:"anthropic.claude-opus-5-5"}},"claude-fable-5":{canonical:"Claude Fable 5",family:"claude",tier:"flagship",providers:{anthropic:"claude-fable-5",openrouter:"anthropic/claude-fable-5",bedrock:"anthropic.claude-fable-5"}},"claude-fable-5-1":{canonical:"Claude Fable 5.1",family:"claude",tier:"flagship",providers:{anthropic:"claude-fable-5-1",openrouter:"anthropic/claude-fable-5.1",bedrock:"anthropic.claude-fable-5-1"}},"gpt-4o":{canonical:"GPT-4o",family:"gpt",tier:"standard",providers:{openai:"gpt-4o",azure:"gpt-4o",openrouter:"openai/gpt-4o"}},"gpt-4o-mini":{canonical:"GPT-4o Mini",family:"gpt",tier:"economy",providers:{openai:"gpt-4o-mini",azure:"gpt-4o-mini",openrouter:"openai/gpt-4o-mini"}},"gpt-4-turbo":{canonical:"GPT-4 Turbo",family:"gpt",tier:"premium",providers:{openai:"gpt-4-turbo",azure:"gpt-4-turbo",openrouter:"openai/gpt-4-turbo"}},"gpt-4":{canonical:"GPT-4",family:"gpt",tier:"premium",providers:{openai:"gpt-4",azure:"gpt-4",openrouter:"openai/gpt-4"}},o1:{canonical:"OpenAI o1",family:"gpt",tier:"flagship",providers:{openai:"o1",azure:"o1",openrouter:"openai/o1"}},"gpt-6-astra":{canonical:"GPT-6 Astra",family:"gpt",tier:"flagship",providers:{openai:"gpt-6-astra",azure:"gpt-6-astra",openrouter:"openai/gpt-6-astra"}},"gpt-6-sol":{canonical:"GPT-6 Sol",family:"gpt",tier:"standard",providers:{openai:"gpt-6-sol",azure:"gpt-6-sol",openrouter:"openai/gpt-6-sol"}},"gpt-6-luna":{canonical:"GPT-6 Luna",family:"gpt",tier:"economy",providers:{openai:"gpt-6-luna",azure:"gpt-6-luna",openrouter:"openai/gpt-6-luna"}},"o1-mini":{canonical:"OpenAI o1 Mini",family:"gpt",tier:"standard",providers:{openai:"o1-mini",azure:"o1-mini",openrouter:"openai/o1-mini"}},"gemini-pro":{canonical:"Gemini Pro",family:"gemini",tier:"standard",providers:{gemini:"gemini-pro",openrouter:"google/gemini-pro"}},"gemini-pro-1.5":{canonical:"Gemini Pro 1.5",family:"gemini",tier:"standard",providers:{gemini:"gemini-1.5-pro",openrouter:"google/gemini-pro-1.5"}},"gemini-flash-1.5":{canonical:"Gemini Flash 1.5",family:"gemini",tier:"economy",providers:{gemini:"gemini-1.5-flash",openrouter:"google/gemini-flash-1.5"}},"gemini-3.8-flash":{canonical:"Gemini 3.8 Flash",family:"gemini",tier:"economy",providers:{gemini:"gemini-3.8-flash",openrouter:"google/gemini-3.8-flash"}},"gemini-3.5-flash":{canonical:"Gemini 3.5 Flash",family:"gemini",tier:"standard",providers:{gemini:"gemini-3.5-flash",openrouter:"google/gemini-3.5-flash"}},"gemini-3.1-pro-preview":{canonical:"Gemini 3.1 Pro (preview)",family:"gemini",tier:"premium",providers:{gemini:"gemini-3.1-pro-preview",openrouter:"google/gemini-3.1-pro-preview"}},"gemini-ultra":{canonical:"Gemini Ultra",family:"gemini",tier:"flagship",providers:{gemini:"gemini-ultra",openrouter:"google/gemini-ultra"}},llama3:{canonical:"Llama 3",family:"llama",tier:"economy",providers:{ollama:"llama3",openrouter:"meta-llama/llama-3-8b-instruct"}},"llama3.1":{canonical:"Llama 3.1",family:"llama",tier:"economy",providers:{ollama:"llama3.1",openrouter:"meta-llama/llama-3.1-8b-instruct"}},codellama:{canonical:"CodeLlama",family:"llama",tier:"economy",providers:{ollama:"codellama",openrouter:"meta-llama/codellama-34b-instruct"}},mistral:{canonical:"Mistral",family:"mistral",tier:"economy",providers:{ollama:"mistral",openrouter:"mistralai/mistral-7b-instruct"}},mixtral:{canonical:"Mixtral",family:"mistral",tier:"standard",providers:{ollama:"mixtral",openrouter:"mistralai/mixtral-8x7b-instruct"}},phi3:{canonical:"Phi-3",family:"phi",tier:"economy",providers:{ollama:"phi3",azure:"phi-3-mini-128k-instruct"}},qwen2:{canonical:"Qwen 2",family:"qwen",tier:"economy",providers:{ollama:"qwen2",openrouter:"qwen/qwen-2-7b-instruct"}},"qwen3:8b":{canonical:"Qwen3 8B",family:"qwen",tier:"economy",providers:{ollama:"qwen3:8b"}},"qwen3:30b-a3b":{canonical:"Qwen3 30B-A3B",family:"qwen",tier:"economy",providers:{ollama:"qwen3:30b-a3b"}},"qwen3-coder:30b":{canonical:"Qwen3 Coder 30B-A3B",family:"qwen",tier:"economy",providers:{ollama:"qwen3-coder:30b"}}};n=m()});function f(t){let e=i(t),o=u[e];if(!o)throw new Error(`Model not found in registry: ${t}`);return{...o.capabilities}}function y(t){try{return f(t).supportsTools}catch{return!0}}function T(t){try{let e=i(t),o=u[e];return o?{...o.cost}:{inputCostPerMillion:0,outputCostPerMillion:0}}catch{return{inputCostPerMillion:0,outputCostPerMillion:0}}}function k(t){try{let e=i(t),o=u[e],s=d(e);return!o||!s?void 0:{id:e,providers:Object.keys(s.providers),...o}}catch{return}}function v(t){return h[t]??a}var u,a,g,E,h,M=l(()=>{"use strict";c();u={"claude-sonnet-4-5":{name:"Claude Sonnet 4.5",family:"claude",tier:"standard",description:"Most intelligent model, best for complex reasoning and coding tasks",releaseDate:"2025-09-29",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4":{name:"Claude Opus 4",family:"claude",tier:"flagship",description:"Flagship model with exceptional reasoning and reliability",releaseDate:"2025-05-14",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:75}},"claude-opus-4-5":{name:"Claude Opus 4.5",family:"claude",tier:"flagship",description:"Latest flagship model with enhanced reasoning capabilities",releaseDate:"2025-11-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:32768,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-haiku-3-5":{name:"Claude Haiku 3.5",family:"claude",tier:"economy",description:"Fast and cost-effective for routine tasks",releaseDate:"2024-10-22",deprecationDate:"2026-02-19",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"claude-sonnet-4":{name:"Claude Sonnet 4",family:"claude",tier:"standard",description:"Balanced model for general-purpose tasks",releaseDate:"2025-05-14",deprecationDate:"2026-06-15",recommended:!1,capabilities:{contextLength:2e5,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-opus-4-6":{name:"Claude Opus 4.6",family:"claude",tier:"flagship",description:"Previous-generation Opus, still served. Accepts sampling params; no xhigh effort.",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-opus-4-7":{name:"Claude Opus 4.7",family:"claude",tier:"flagship",description:"Flagship agentic-coding model (2026-04-16). 1M context at standard pricing, xhigh effort level, adaptive thinking only. New tokenizer emits 1.0\u20131.35\xD7 more tokens.",releaseDate:"2026-04-16",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-sonnet-4-6":{name:"Claude Sonnet 4.6",family:"claude",tier:"standard",description:"Previous-generation workhorse (ADR-093 tier 3 until the 2026-09 refresh). 1M context, still served; accepts sampling params.",releaseDate:"2026-02-01",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:3,outputCostPerMillion:15}},"claude-haiku-4-5":{name:"Claude Haiku 4.5",family:"claude",tier:"economy",description:"Fast economy model replacing Haiku 3.5 (retired 2026-02-19). Extended thinking support.",releaseDate:"2025-10-01",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:64e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!1,supportsEffortXHigh:!1,tokenizerVersion:"legacy"},cost:{inputCostPerMillion:1,outputCostPerMillion:5}},"claude-sonnet-5":{name:"Claude Sonnet 5",family:"claude",tier:"standard",description:"AQE workhorse (tiers 2-3). Adaptive thinking runs by default.",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:2,outputCostPerMillion:10}},"claude-opus-5":{name:"Claude Opus 5",family:"claude",tier:"flagship",description:"Previous Opus (tier 4 before Opus 5.5). Thinking is on by default when omitted.",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-opus-4-8":{name:"Claude Opus 4.8",family:"claude",tier:"flagship",description:"Previous-generation Opus; same request surface as Opus 4.7.",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:25}},"claude-opus-5-5":{name:"Claude Opus 5.5",family:"claude",tier:"flagship",description:"AQE tier 4 flagship. Thinking cannot be disabled; default effort medium; forced tool_choice rejected.",releaseDate:"2026-09-22",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:4,outputCostPerMillion:20}},"claude-fable-5":{name:"Claude Fable 5",family:"claude",tier:"flagship",description:"Opt-in most-capable tier (superseded by Fable 5.1).",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:50}},"claude-fable-5-1":{name:"Claude Fable 5.1",family:"claude",tier:"flagship",description:"Opt-in most-capable model; 2x Opus pricing, thinking always on.",recommended:!1,capabilities:{contextLength:1e6,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!0,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsAdaptiveThinking:!0,supportsEffortXHigh:!0,tokenizerVersion:"opus-4-7",supportsSamplingParams:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:50}},"gpt-6-astra":{name:"GPT-6 Astra",family:"gpt",tier:"flagship",description:"OpenAI flagship (verified in /v1/models 2026-09-27)",recommended:!1,capabilities:{contextLength:105e4,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsSamplingParams:!1,usesMaxCompletionTokens:!0},cost:{inputCostPerMillion:10,outputCostPerMillion:50}},"gpt-6-sol":{name:"GPT-6 Sol",family:"gpt",tier:"standard",description:"OpenAI default for capable tasks",recommended:!0,capabilities:{contextLength:105e4,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsSamplingParams:!1,usesMaxCompletionTokens:!0},cost:{inputCostPerMillion:2,outputCostPerMillion:10}},"gpt-6-luna":{name:"GPT-6 Luna",family:"gpt",tier:"economy",description:"OpenAI low-cost tier",recommended:!0,capabilities:{contextLength:105e4,maxOutputTokens:128e3,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1,supportsSamplingParams:!1,usesMaxCompletionTokens:!0},cost:{inputCostPerMillion:.1,outputCostPerMillion:.5}},"gpt-4o":{name:"GPT-4o",family:"gpt",tier:"standard",description:"OpenAI flagship multimodal model, fast and capable",releaseDate:"2024-05-13",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:5,outputCostPerMillion:15,imageCostPerUnit:.00765}},"gpt-4o-mini":{name:"GPT-4o Mini",family:"gpt",tier:"economy",description:"Small, fast, and affordable for lightweight tasks",releaseDate:"2024-07-18",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:16384,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.15,outputCostPerMillion:.6,imageCostPerUnit:.001275}},"gpt-4-turbo":{name:"GPT-4 Turbo",family:"gpt",tier:"premium",description:"Previous flagship with vision and function calling",releaseDate:"2024-04-09",recommended:!1,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:10,outputCostPerMillion:30}},"gpt-4":{name:"GPT-4",family:"gpt",tier:"premium",description:"Original GPT-4 model, now superseded by GPT-4o",releaseDate:"2023-03-14",deprecationDate:"2025-06-01",recommended:!1,capabilities:{contextLength:8192,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:30,outputCostPerMillion:60}},o1:{name:"OpenAI o1",family:"gpt",tier:"flagship",description:"Reasoning-focused model with extended thinking",releaseDate:"2024-12-05",recommended:!0,capabilities:{contextLength:2e5,maxOutputTokens:1e5,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:15,outputCostPerMillion:60}},"o1-mini":{name:"OpenAI o1 Mini",family:"gpt",tier:"standard",description:"Faster reasoning model optimized for STEM tasks",releaseDate:"2024-09-12",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:3,outputCostPerMillion:12}},"gemini-3.8-flash":{name:"Gemini 3.8 Flash",family:"gemini",tier:"economy",description:"Latest Gemini Flash (OpenRouter catalog 2026-09-27)",recommended:!0,capabilities:{contextLength:1048576,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.75,outputCostPerMillion:3.75}},"gemini-3.5-flash":{name:"Gemini 3.5 Flash",family:"gemini",tier:"standard",description:"Gemini 3.5 Flash",recommended:!1,capabilities:{contextLength:1048576,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:1.5,outputCostPerMillion:9}},"gemini-3.1-pro-preview":{name:"Gemini 3.1 Pro (preview)",family:"gemini",tier:"premium",description:"Gemini 3.1 Pro preview",recommended:!1,capabilities:{contextLength:1048576,maxOutputTokens:65536,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:2,outputCostPerMillion:12}},"gemini-pro":{name:"Gemini Pro",family:"gemini",tier:"standard",description:"Google balanced model for diverse tasks",releaseDate:"2023-12-06",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:.5,outputCostPerMillion:1.5}},"gemini-pro-1.5":{name:"Gemini Pro 1.5",family:"gemini",tier:"standard",description:"Google mid-size model with 1M context window",releaseDate:"2024-02-15",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:3.5,outputCostPerMillion:10.5}},"gemini-flash-1.5":{name:"Gemini Flash 1.5",family:"gemini",tier:"economy",description:"Fast and efficient with 1M context window",releaseDate:"2024-05-14",recommended:!0,capabilities:{contextLength:1e6,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!0},cost:{inputCostPerMillion:.075,outputCostPerMillion:.3}},"gemini-ultra":{name:"Gemini Ultra",family:"gemini",tier:"flagship",description:"Google most capable model",releaseDate:"2024-02-08",recommended:!1,capabilities:{contextLength:32e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!0,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:12,outputCostPerMillion:36}},llama3:{name:"Llama 3",family:"llama",tier:"economy",description:"Meta open-source 8B model, runs locally",releaseDate:"2024-04-18",recommended:!0,capabilities:{contextLength:8192,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"llama3.1":{name:"Llama 3.1",family:"llama",tier:"economy",description:"Meta latest open-source model with tool support",releaseDate:"2024-07-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},codellama:{name:"CodeLlama",family:"llama",tier:"economy",description:"Meta code-specialized model",releaseDate:"2023-08-24",recommended:!0,capabilities:{contextLength:1e5,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mistral:{name:"Mistral",family:"mistral",tier:"economy",description:"Mistral AI 7B instruction-tuned model",releaseDate:"2023-09-27",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},mixtral:{name:"Mixtral",family:"mistral",tier:"standard",description:"Mistral AI mixture of experts model",releaseDate:"2023-12-11",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},phi3:{name:"Phi-3",family:"phi",tier:"economy",description:"Microsoft small language model, efficient",releaseDate:"2024-04-23",recommended:!0,capabilities:{contextLength:128e3,maxOutputTokens:4096,supportsTools:!1,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!1,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},qwen2:{name:"Qwen 2",family:"qwen",tier:"economy",description:"Alibaba multilingual model",releaseDate:"2024-06-07",recommended:!0,capabilities:{contextLength:32e3,maxOutputTokens:4096,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"qwen3:8b":{name:"Qwen3 8B",family:"qwen",tier:"economy",description:"Alibaba Qwen3 8B \u2014 tools + thinking; below the QE test-gen floor (use for judge/triage)",releaseDate:"2025-04-29",recommended:!1,capabilities:{contextLength:40960,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"qwen3:30b-a3b":{name:"Qwen3 30B-A3B",family:"qwen",tier:"economy",description:"Alibaba Qwen3 30B MoE (3B active) \u2014 fast general local model; clears the QE test-gen floor",releaseDate:"2025-04-29",recommended:!0,capabilities:{contextLength:262144,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!0,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}},"qwen3-coder:30b":{name:"Qwen3 Coder 30B-A3B",family:"qwen",tier:"economy",description:"Alibaba Qwen3-Coder 30B MoE (3B active) \u2014 code-tuned, non-thinking; preferred local QE test-gen model",releaseDate:"2025-07-31",recommended:!0,capabilities:{contextLength:262144,maxOutputTokens:8192,supportsTools:!0,supportsStreaming:!0,supportsVision:!1,supportsJsonMode:!0,supportsSystemPrompt:!0,supportsExtendedThinking:!1,supportsMCP:!1,supportsEmbeddings:!1,supportsCodeExecution:!1},cost:{inputCostPerMillion:0,outputCostPerMillion:0}}};a="claude-sonnet-5",g="claude-opus-5-5",E="claude-haiku-4-5",h={1:"claude-haiku-4-5-20251001",2:a,3:a,4:g}});export{C as a,i as b,d as c,c as d,f as e,y as f,T as g,k as h,a as i,g as j,E as k,h as l,v as m,M as n};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
2
- import{d as m}from"./chunk-7TW5UGDP.js";import{d as T}from"./chunk-CNQUU6CF.js";T();function p(t,r,o){let e=0,n=t.length;for(;e<n;){let i=e+n>>>1;o(t[i],r)<=0?e=i+1:n=i}return e}function a(t,r,o){let e=p(t,r,o);return t.splice(e,0,r),e}function s(){return(t,r)=>t.createdAt.getTime()-r.createdAt.getTime()}m();export{a,s as b};
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.4");process.exit(0)}
2
+ import{d as m}from"./chunk-W6TJXK5Y.js";import{d as T}from"./chunk-33IUCP34.js";T();function p(t,r,o){let e=0,n=t.length;for(;e<n;){let i=e+n>>>1;o(t[i],r)<=0?e=i+1:n=i}return e}function a(t,r,o){let e=p(t,r,o);return t.splice(e,0,r),e}function s(){return(t,r)=>t.createdAt.getTime()-r.createdAt.getTime()}m();export{a,s as b};
@@ -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.3");process.exit(0)}
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.4");process.exit(0)}
2
2
  var i={copilot:{id:"copilot",name:"GitHub Copilot",configPath:".vscode/mcp.json",configFormat:"json",configKey:"servers",rulesPath:".github/copilot-instructions.md",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},cursor:{id:"cursor",name:"Cursor",configPath:".cursor/mcp.json",configFormat:"json",configKey:"mcpServers",rulesPath:".cursorrules",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},cline:{id:"cline",name:"Cline",configPath:".vscode/cline_mcp_settings.json",configFormat:"json",configKey:"mcpServers",rulesPath:".vscode/cline_custom_modes.json",rulesFormat:"json",supportsAutoApprove:!0,supportsCustomModes:!0,globalConfig:!1},kilocode:{id:"kilocode",name:"Kilo Code",configPath:".kilocode/mcp.json",configFormat:"json",configKey:"mcpServers",rulesPath:".kilocode/modes.json",rulesFormat:"json",supportsAutoApprove:!0,supportsCustomModes:!0,globalConfig:!1},roocode:{id:"roocode",name:"Roo Code",configPath:".roo/mcp.json",configFormat:"json",configKey:"mcpServers",rulesPath:".roo/modes.json",rulesFormat:"json",supportsAutoApprove:!0,supportsCustomModes:!0,globalConfig:!1},codex:{id:"codex",name:"OpenAI Codex CLI",configPath:".codex/config.toml",configFormat:"toml",configKey:"mcp_servers",rulesPath:"AGENTS.md",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},windsurf:{id:"windsurf",name:"Windsurf",configPath:".windsurf/mcp_config.json",configFormat:"json",configKey:"mcpServers",rulesPath:".windsurfrules",rulesFormat:"markdown",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1},continuedev:{id:"continuedev",name:"Continue.dev",configPath:".continue/config.yaml",configFormat:"yaml",configKey:"mcpServers",rulesPath:".continue/rules/aqe-qe-standards.yaml",rulesFormat:"yaml",supportsAutoApprove:!1,supportsCustomModes:!1,globalConfig:!1}},l=["fleet_init","fleet_status","fleet_health","agent_list","agent_metrics","agent_status","team_list","team_health","task_list","task_status","test_generate_enhanced","coverage_analyze_sublinear","quality_assess","defect_predict","code_index","memory_store","memory_retrieve","memory_query","memory_usage","model_route","routing_metrics","aqe_health"];function u(t){return t?{AQE_MEMORY_BACKEND:"memory",AQE_V3_MODE:"true"}:{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_V3_MODE:"true"}}function m(t,o){let e={command:"npx",args:["-y","agentic-qe@latest","mcp"],env:u(o)};return t&&(e.disabled=!1,e.alwaysAllow=l),e}function g(t,o){let e=m(t.supportsAutoApprove,o);if(t.id==="copilot"){let r={[t.configKey]:{"agentic-qe":{type:"stdio",...e}}};return JSON.stringify(r,null,2)+`
3
3
  `}let n={[t.configKey]:{"agentic-qe":e}};return JSON.stringify(n,null,2)+`
4
4
  `}function f(t){return`# Agentic QE MCP Server
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
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.4");process.exit(0)}
2
2
  var e=!1;function o(){e=!0;let r=!1;return()=>{r||(r=!0,e=!1)}}function t(){return e}export{o as a,t as b};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
2
- import{b as d,d as c}from"./chunk-UGNTLSBL.js";import{a as l,e as g}from"./chunk-2GJJGO5D.js";g();c();import{existsSync as y,readFileSync as p}from"node:fs";import{join as o,dirname as u}from"node:path";import{fileURLToPath as m}from"node:url";var i=class extends Error{constructor(t,n,r){super(t);this.code=n;this.cause=r;this.name="PatternLoaderError"}code;cause},s=class a{static instance=null;config;patterns;isLoading=!1;constructor(e={}){this.config={basePath:e.basePath??this.getDefaultBasePath(),throwOnMissing:e.throwOnMissing??!1,validatePatterns:e.validatePatterns??!0},this.patterns={index:null,booster:null,router:null,embedding:null,reasoning:null,loadedAt:null,errors:[]}}static getInstance(e){return a.instance||(a.instance=new a(e)),a.instance}static resetInstance(){a.instance=null}getDefaultBasePath(){try{let e=import.meta.url,t=m(e),n=u(t),r=o(n,"..","..","..");return o(r,"assets","patterns")}catch{return o(process.cwd(),"assets","patterns")}}async loadPatterns(){if(!this.isLoading){this.isLoading=!0,this.patterns.errors=[];try{this.patterns.index=this.loadJsonFile("index.json");let[e,t,n,r]=await Promise.all([Promise.resolve(this.loadJsonFile("adr-051-booster-patterns.json")),Promise.resolve(this.loadJsonFile("adr-051-router-patterns.json")),Promise.resolve(this.loadJsonFile("adr-051-embedding-patterns.json")),Promise.resolve(this.loadJsonFile("adr-051-reasoning-patterns.json"))]);this.patterns.booster=e,this.patterns.router=t,this.patterns.embedding=n,this.patterns.reasoning=r,this.patterns.loadedAt=new Date,this.config.validatePatterns&&this.validateLoadedPatterns()}finally{this.isLoading=!1}}}loadJsonFile(e){let t=o(this.config.basePath,e);try{if(!y(t)){let r=`Pattern file not found: ${t}`;if(this.patterns.errors.push(r),this.config.throwOnMissing)throw new i(r,"FILE_NOT_FOUND");return null}let n=p(t,"utf-8");return d(n)}catch(n){if(n instanceof i)throw n;let r=`Failed to load pattern file ${e}: ${l(n)}`;if(this.patterns.errors.push(r),this.config.throwOnMissing)throw new i(r,"PARSE_ERROR",n instanceof Error?n:void 0);return null}}validateLoadedPatterns(){this.patterns.booster&&(Array.isArray(this.patterns.booster.patterns)||this.patterns.errors.push("Booster patterns file missing patterns array")),this.patterns.router&&(Array.isArray(this.patterns.router.patterns)||this.patterns.errors.push("Router patterns file missing patterns array")),this.patterns.embedding&&(Array.isArray(this.patterns.embedding.patterns)||this.patterns.errors.push("Embedding patterns file missing patterns array")),this.patterns.reasoning&&(Array.isArray(this.patterns.reasoning.patterns)||this.patterns.errors.push("Reasoning patterns file missing patterns array"))}async ensureLoaded(){this.patterns.loadedAt||await this.loadPatterns()}async getIndex(){return await this.ensureLoaded(),this.patterns.index}async getBoosterPatterns(){return await this.ensureLoaded(),this.patterns.booster}async getRouterPatterns(){return await this.ensureLoaded(),this.patterns.router}async getEmbeddingPatterns(){return await this.ensureLoaded(),this.patterns.embedding}async getReasoningPatterns(){return await this.ensureLoaded(),this.patterns.reasoning}async getBoosterPatternByKey(e){let t=await this.getBoosterPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getRouterPatternByKey(e){let t=await this.getRouterPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getEmbeddingPatternByKey(e){let t=await this.getEmbeddingPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getReasoningPatternByKey(e){let t=await this.getReasoningPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getEligibleBoosterTransforms(){let e=await this.getBoosterPatternByKey("booster-transform-eligibility");return e?e.eligibility_criteria.simple_transforms:[]}async getTierHierarchy(){let e=await this.getRouterPatternByKey("router-5tier-complexity");return e?e.tier_hierarchy:null}async getQualityGateThresholds(){let e=await this.getReasoningPatternByKey("reasoning-pattern-quality-gates");return e?e.gate_thresholds:null}isLoaded(){return this.patterns.loadedAt!==null}getLoadedAt(){return this.patterns.loadedAt}getErrors(){return[...this.patterns.errors]}async getStatistics(){let e=await this.getIndex();return e?e.pattern_statistics:null}async reload(){this.patterns={index:null,booster:null,router:null,embedding:null,reasoning:null,loadedAt:null,errors:[]},await this.loadPatterns()}async getAllPatterns(){return await this.ensureLoaded(),{...this.patterns}}};function x(){return s.getInstance()}export{x as a};
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.4");process.exit(0)}
2
+ import{b as d,d as c}from"./chunk-S5D3HCGN.js";import{a as l,e as g}from"./chunk-JL3TI43V.js";g();c();import{existsSync as y,readFileSync as p}from"node:fs";import{join as o,dirname as u}from"node:path";import{fileURLToPath as m}from"node:url";var i=class extends Error{constructor(t,n,r){super(t);this.code=n;this.cause=r;this.name="PatternLoaderError"}code;cause},s=class a{static instance=null;config;patterns;isLoading=!1;constructor(e={}){this.config={basePath:e.basePath??this.getDefaultBasePath(),throwOnMissing:e.throwOnMissing??!1,validatePatterns:e.validatePatterns??!0},this.patterns={index:null,booster:null,router:null,embedding:null,reasoning:null,loadedAt:null,errors:[]}}static getInstance(e){return a.instance||(a.instance=new a(e)),a.instance}static resetInstance(){a.instance=null}getDefaultBasePath(){try{let e=import.meta.url,t=m(e),n=u(t),r=o(n,"..","..","..");return o(r,"assets","patterns")}catch{return o(process.cwd(),"assets","patterns")}}async loadPatterns(){if(!this.isLoading){this.isLoading=!0,this.patterns.errors=[];try{this.patterns.index=this.loadJsonFile("index.json");let[e,t,n,r]=await Promise.all([Promise.resolve(this.loadJsonFile("adr-051-booster-patterns.json")),Promise.resolve(this.loadJsonFile("adr-051-router-patterns.json")),Promise.resolve(this.loadJsonFile("adr-051-embedding-patterns.json")),Promise.resolve(this.loadJsonFile("adr-051-reasoning-patterns.json"))]);this.patterns.booster=e,this.patterns.router=t,this.patterns.embedding=n,this.patterns.reasoning=r,this.patterns.loadedAt=new Date,this.config.validatePatterns&&this.validateLoadedPatterns()}finally{this.isLoading=!1}}}loadJsonFile(e){let t=o(this.config.basePath,e);try{if(!y(t)){let r=`Pattern file not found: ${t}`;if(this.patterns.errors.push(r),this.config.throwOnMissing)throw new i(r,"FILE_NOT_FOUND");return null}let n=p(t,"utf-8");return d(n)}catch(n){if(n instanceof i)throw n;let r=`Failed to load pattern file ${e}: ${l(n)}`;if(this.patterns.errors.push(r),this.config.throwOnMissing)throw new i(r,"PARSE_ERROR",n instanceof Error?n:void 0);return null}}validateLoadedPatterns(){this.patterns.booster&&(Array.isArray(this.patterns.booster.patterns)||this.patterns.errors.push("Booster patterns file missing patterns array")),this.patterns.router&&(Array.isArray(this.patterns.router.patterns)||this.patterns.errors.push("Router patterns file missing patterns array")),this.patterns.embedding&&(Array.isArray(this.patterns.embedding.patterns)||this.patterns.errors.push("Embedding patterns file missing patterns array")),this.patterns.reasoning&&(Array.isArray(this.patterns.reasoning.patterns)||this.patterns.errors.push("Reasoning patterns file missing patterns array"))}async ensureLoaded(){this.patterns.loadedAt||await this.loadPatterns()}async getIndex(){return await this.ensureLoaded(),this.patterns.index}async getBoosterPatterns(){return await this.ensureLoaded(),this.patterns.booster}async getRouterPatterns(){return await this.ensureLoaded(),this.patterns.router}async getEmbeddingPatterns(){return await this.ensureLoaded(),this.patterns.embedding}async getReasoningPatterns(){return await this.ensureLoaded(),this.patterns.reasoning}async getBoosterPatternByKey(e){let t=await this.getBoosterPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getRouterPatternByKey(e){let t=await this.getRouterPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getEmbeddingPatternByKey(e){let t=await this.getEmbeddingPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getReasoningPatternByKey(e){let t=await this.getReasoningPatterns();return t?t.patterns.find(r=>r.key===e)??null:null}async getEligibleBoosterTransforms(){let e=await this.getBoosterPatternByKey("booster-transform-eligibility");return e?e.eligibility_criteria.simple_transforms:[]}async getTierHierarchy(){let e=await this.getRouterPatternByKey("router-5tier-complexity");return e?e.tier_hierarchy:null}async getQualityGateThresholds(){let e=await this.getReasoningPatternByKey("reasoning-pattern-quality-gates");return e?e.gate_thresholds:null}isLoaded(){return this.patterns.loadedAt!==null}getLoadedAt(){return this.patterns.loadedAt}getErrors(){return[...this.patterns.errors]}async getStatistics(){let e=await this.getIndex();return e?e.pattern_statistics:null}async reload(){this.patterns={index:null,booster:null,router:null,embedding:null,reasoning:null,loadedAt:null,errors:[]},await this.loadPatterns()}async getAllPatterns(){return await this.ensureLoaded(),{...this.patterns}}};function x(){return s.getInstance()}export{x as a};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
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.4");process.exit(0)}
2
2
  function r(e,f){if(e==null)return e;let n={...e};for(let t of f){let o=n[t];typeof o=="string"&&(n[t]=new Date(o))}return n}export{r as a};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
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.4");process.exit(0)}
2
2
  var i=/[\s\x00-\x1f\x7f]/;function e(t,n="git ref"){if(typeof t!="string"||t.length===0)return`Invalid ${n}: must be a non-empty string`;if(t.length>256)return`Invalid ${n}: longer than 256 characters`;if(t.startsWith("-"))return`Invalid ${n} "${t}": must not start with "-"`;if(i.test(t))return`Invalid ${n}: must not contain whitespace or control characters`}function s(t,n="git ref"){let r=e(t,n);if(r)throw new Error(r)}export{e as a,s as b};
@@ -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.3");process.exit(0)}
2
- import{d as W,f as Tt}from"./chunk-OGARNKLS.js";import{b as I,d as ge}from"./chunk-UGNTLSBL.js";import{a as $,b as K,c as V,d as Ne,e as dt}from"./chunk-ASUXS4N4.js";import{a as Y,c as Et}from"./chunk-UTALYUMW.js";import{a as _e,d as F,e as me,f as fe}from"./chunk-NT6FYFJA.js";import{a as X,b as pe,e as ct}from"./chunk-D6PUDLJ4.js";import{a as Se,c as he,d as ut}from"./chunk-WSND64RL.js";import{a as it}from"./chunk-INVDDFJC.js";import{e as ue}from"./chunk-FPFGN2Z5.js";import{a as O,e as de}from"./chunk-2GJJGO5D.js";import{a as H,b as y,c as ot}from"./chunk-YTRGMILO.js";import{a as le,b as at}from"./chunk-Z7JPWXW2.js";import{b as R,d as st}from"./chunk-WSUYEVSY.js";import{createHash as Ie}from"node:crypto";function gt(n){let e=Buffer.alloc(8);return e.writeBigUInt64LE(BigInt(n)),e}function pt(n){return typeof n=="string"?Buffer.from(n,"utf8"):n instanceof Uint8Array?Buffer.from(n):Buffer.from(Q(n),"utf8")}function Q(n){return n===null||typeof n!="object"?JSON.stringify(n)??"null":Array.isArray(n)?`[${n.map(Q).join(",")}]`:`{${Object.keys(n).sort().map(t=>`${JSON.stringify(t)}:${Q(n[t])}`).join(",")}}`}function Ce(...n){let e=Ie("sha256");for(let t of n)e.update(t);return e.digest()}function Le(n,e,t){return Ce(lt,n,e,gt(t))}var lt,Re,A,Oe=R(()=>{"use strict";lt=Buffer.from("ruvector:chain:"),Re=Ie("sha256").update("ruvector-proof-gate-v1").digest();A=class n{seq=0;prev=Re;chain=[];payloadHashes=[];admit(e){let t=Ce(pt(e)),r=Le(this.prev,t,this.seq);this.prev=r,this.chain.push(r),this.payloadHashes.push(t);let i={sequence:this.seq,payloadHash:t.toString("hex"),chainCommitment:r.toString("hex")};return this.seq+=1,i}verifyReceipt(e){return e.sequence>=0&&e.sequence<this.chain.length&&this.chain[e.sequence].toString("hex")===e.chainCommitment}chainRoot(){return this.prev.toString("hex")}get length(){return this.seq}get isEmpty(){return this.seq===0}verifyIntegrity(){if(this.chain.length!==this.payloadHashes.length)return!1;let e=Re;for(let t=0;t<this.chain.length;t++){if(!Le(e,this.payloadHashes[t],t).equals(this.chain[t]))return!1;e=this.chain[t]}return e.equals(this.prev)}toJSON(){return{seq:this.seq,head:this.prev.toString("hex"),chain:this.chain.map(e=>e.toString("hex")),payloadHashes:this.payloadHashes.map(e=>e.toString("hex"))}}static fromJSON(e){let t=new n;t.seq=e.seq,t.prev=Buffer.from(e.head,"hex");for(let r of e.chain)t.chain.push(Buffer.from(r,"hex"));for(let r of e.payloadHashes)t.payloadHashes.push(Buffer.from(r,"hex"));return t}}});function v(n){if(!J.has(n))throw new Error(`Invalid table name: "${n}" is not in the allowlist`);return n}function bt(n){let e=n.split(".");if(e.length>2)throw new Error(`Invalid SQL identifier: "${n}" has too many parts (max: schema.table)`);for(let t of e)if(!Ae.test(t))throw new Error(`Invalid SQL identifier: "${n}" \u2014 part "${t}" does not match pattern ${Ae}`);return n}var J,Ae,Z=R(()=>{"use strict";J=new Set(["schema_version","kv_store","vectors","rl_q_values","goap_goals","goap_actions","goap_plans","goap_plan_signatures","concept_nodes","concept_edges","dream_cycles","dream_insights","qe_patterns","qe_pattern_embeddings","qe_pattern_usage","qe_trajectories","embeddings","execution_results","executed_steps","mincut_snapshots","mincut_history","mincut_weak_vertices","mincut_alerts","mincut_healing_actions","mincut_observations","sona_patterns","sona_fisher_matrices","test_outcomes","routing_outcomes","coverage_sessions","patterns","hypergraph_nodes","hypergraph_edges","hypergraph_vertices","hypergraph_hyperedges","hypergraph_edge_vertices","hypergraph_vertex_properties","hypergraph_edge_properties","captured_experiences","experience_applications","witness_chain","witness_chain_receipts","witness_chain_archive","trajectories","trajectory_steps","pattern_evolution_events","pattern_relationships","pattern_versions","learning_daily_snapshots","metrics_outcomes","experience_consolidation_log","qe_pattern_reuse","learning_evidence_manifests","learning_evidence_segments","learning_segment_edges","learning_evidence_admissions","pattern_manifest_lineage","pattern_segment_lineage","qe_agent_co_execution"]);Ae=/^[a-z_][a-z0-9_]{0,62}$/});function be(n){n.exec(ve),n.exec(`
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.4");process.exit(0)}
2
+ import{d as W,f as Tt}from"./chunk-FRBCX46J.js";import{b as I,d as ge}from"./chunk-S5D3HCGN.js";import{a as K,b as $,c as V,d as Ne,e as dt}from"./chunk-6HTO4BLV.js";import{a as Y,c as Et}from"./chunk-HCDTLV5J.js";import{a as _e,d as F,e as me,f as fe}from"./chunk-RJ5CZ7B6.js";import{a as X,b as pe,e as ct}from"./chunk-NIJMLEAX.js";import{a as Se,c as he,d as ut}from"./chunk-WW6WUMS7.js";import{a as it}from"./chunk-5XXLWJU7.js";import{e as ue}from"./chunk-LXYTC62V.js";import{a as O,e as de}from"./chunk-JL3TI43V.js";import{a as H,b as y,c as ot}from"./chunk-O7TMY4GS.js";import{a as le,b as at}from"./chunk-WO4NSPLX.js";import{b as R,d as st}from"./chunk-5H7MR6HP.js";import{createHash as Ie}from"node:crypto";function gt(n){let t=Buffer.alloc(8);return t.writeBigUInt64LE(BigInt(n)),t}function pt(n){return typeof n=="string"?Buffer.from(n,"utf8"):n instanceof Uint8Array?Buffer.from(n):Buffer.from(Q(n),"utf8")}function Q(n){return n===null||typeof n!="object"?JSON.stringify(n)??"null":Array.isArray(n)?`[${n.map(Q).join(",")}]`:`{${Object.keys(n).sort().map(e=>`${JSON.stringify(e)}:${Q(n[e])}`).join(",")}}`}function Ce(...n){let t=Ie("sha256");for(let e of n)t.update(e);return t.digest()}function Le(n,t,e){return Ce(lt,n,t,gt(e))}var lt,Re,A,Oe=R(()=>{"use strict";lt=Buffer.from("ruvector:chain:"),Re=Ie("sha256").update("ruvector-proof-gate-v1").digest();A=class n{seq=0;prev=Re;chain=[];payloadHashes=[];admit(t){let e=Ce(pt(t)),r=Le(this.prev,e,this.seq);this.prev=r,this.chain.push(r),this.payloadHashes.push(e);let o={sequence:this.seq,payloadHash:e.toString("hex"),chainCommitment:r.toString("hex")};return this.seq+=1,o}verifyReceipt(t){return t.sequence>=0&&t.sequence<this.chain.length&&this.chain[t.sequence].toString("hex")===t.chainCommitment}chainRoot(){return this.prev.toString("hex")}get length(){return this.seq}get isEmpty(){return this.seq===0}verifyIntegrity(){if(this.chain.length!==this.payloadHashes.length)return!1;let t=Re;for(let e=0;e<this.chain.length;e++){if(!Le(t,this.payloadHashes[e],e).equals(this.chain[e]))return!1;t=this.chain[e]}return t.equals(this.prev)}toJSON(){return{seq:this.seq,head:this.prev.toString("hex"),chain:this.chain.map(t=>t.toString("hex")),payloadHashes:this.payloadHashes.map(t=>t.toString("hex"))}}static fromJSON(t){let e=new n;e.seq=t.seq,e.prev=Buffer.from(t.head,"hex");for(let r of t.chain)e.chain.push(Buffer.from(r,"hex"));for(let r of t.payloadHashes)e.payloadHashes.push(Buffer.from(r,"hex"));return e}}});function v(n){if(!J.has(n))throw new Error(`Invalid table name: "${n}" is not in the allowlist`);return n}function bt(n){let t=n.split(".");if(t.length>2)throw new Error(`Invalid SQL identifier: "${n}" has too many parts (max: schema.table)`);for(let e of t)if(!Ae.test(e))throw new Error(`Invalid SQL identifier: "${n}" \u2014 part "${e}" does not match pattern ${Ae}`);return n}var J,Ae,Z=R(()=>{"use strict";J=new Set(["schema_version","kv_store","vectors","rl_q_values","goap_goals","goap_actions","goap_plans","goap_plan_signatures","concept_nodes","concept_edges","dream_cycles","dream_insights","qe_patterns","qe_pattern_embeddings","qe_pattern_usage","qe_trajectories","embeddings","execution_results","executed_steps","mincut_snapshots","mincut_history","mincut_weak_vertices","mincut_alerts","mincut_healing_actions","mincut_observations","sona_patterns","sona_fisher_matrices","test_outcomes","routing_outcomes","coverage_sessions","patterns","hypergraph_nodes","hypergraph_edges","hypergraph_vertices","hypergraph_hyperedges","hypergraph_edge_vertices","hypergraph_vertex_properties","hypergraph_edge_properties","captured_experiences","experience_applications","witness_chain","witness_chain_receipts","witness_chain_archive","trajectories","trajectory_steps","pattern_evolution_events","pattern_relationships","pattern_versions","learning_daily_snapshots","metrics_outcomes","experience_consolidation_log","qe_pattern_reuse","learning_evidence_manifests","learning_evidence_segments","learning_segment_edges","learning_evidence_admissions","pattern_manifest_lineage","pattern_segment_lineage","qe_agent_co_execution"]);Ae=/^[a-z_][a-z0-9_]{0,62}$/});function be(n){n.exec(ve),n.exec(`
3
3
  INSERT OR IGNORE INTO learning_evidence_manifests (
4
4
  id, trajectory_id, trajectory_hash, manifest_hash, task_family,
5
5
  outcome, oracle_refs_json, source_kind, process_signals_json
@@ -731,41 +731,41 @@ import{d as W,f as Tt}from"./chunk-OGARNKLS.js";import{b as I,d as ge}from"./chu
731
731
  CREATE INDEX IF NOT EXISTS idx_coverage_sessions_technique ON coverage_sessions(technique);
732
732
  CREATE INDEX IF NOT EXISTS idx_coverage_sessions_agent ON coverage_sessions(agent_id);
733
733
  CREATE INDEX IF NOT EXISTS idx_coverage_sessions_created ON coverage_sessions(created_at);
734
- `,qe=["kv_store","vectors","rl_q_values","goap_actions","goap_goals","goap_plans","goap_plan_signatures","goap_execution_steps","concept_nodes","concept_edges","dream_cycles","dream_insights","qe_patterns","qe_pattern_embeddings","qe_pattern_usage","qe_trajectories","embeddings","execution_results","executed_steps","mincut_snapshots","mincut_history","mincut_weak_vertices","mincut_alerts","mincut_healing_actions","mincut_observations","hypergraph_nodes","hypergraph_edges","sona_patterns","witness_chain","learning_evidence_manifests","learning_evidence_segments","learning_segment_edges","learning_evidence_admissions","pattern_manifest_lineage","pattern_segment_lineage"]});function ie(n,e,t){return n.prepare("SELECT 1 FROM sqlite_master WHERE type = ? AND name = ?").get(e,t)!==void 0}function ze(n){return n.replace(/\s+/g," ").trim().replace(/^CREATE TRIGGER IF NOT EXISTS /i,"CREATE TRIGGER ").replace(/ ?;$/,"").toLowerCase()}function w(n,e){return n.prepare(e).get()?.n??0}function Be(n){let e=ie(n,"table","qe_patterns_fts"),t=e&&ie(n,"table","qe_patterns_fts_docsize"),r=[],i=[],o=n.prepare("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = ?");for(let u of _t){let l=o.get(u);l===void 0?r.push(u):ze(l.sql??"")!==mt[u]&&i.push(u)}let E=w(n,"SELECT count(*) AS n FROM qe_patterns"),c=t?w(n,"SELECT count(*) AS n FROM qe_patterns_fts_docsize"):-1,T=t&&c===E?w(n,`SELECT count(*) AS n FROM qe_patterns p
735
- WHERE NOT EXISTS (SELECT 1 FROM qe_patterns_fts_docsize d WHERE d.id = p.rowid)`):0;return{hasTable:e,hasDocsize:t,missingTriggers:r,mismatchedTriggers:i,patterns:E,indexed:c,unindexed:T}}function je(n){return!n.hasTable||n.missingTriggers.length>0||n.mismatchedTriggers.length>0?!0:n.hasDocsize?n.indexed!==n.patterns||n.unindexed>0:!1}function ft(n){if(n.readonly)return!0;try{return Number(n.pragma("query_only",{simple:!0}))===1}catch{return!1}}function He(n,e={}){let t=e.log??(o=>console.warn(o)),r=e.logPrefix??"[PatternFTS]",i={status:"healthy",createdTable:!1,recreatedTriggers:[],replacedTriggers:[],rebuilt:!1,patternsBefore:-1,indexedBefore:-1,indexedAfter:-1};try{if(!ie(n,"table","qe_patterns"))return i.status="no-patterns",i;if(ft(n))return i.status="readonly",i;let o=Be(n);if(i.patternsBefore=o.patterns,i.indexedBefore=o.indexed,!je(o))return i;let E=n.transaction(()=>{let c=Be(n);if(!je(c))return null;c.hasTable||n.exec(ne);for(let T of c.missingTriggers)n.exec(b[T]);for(let T of c.mismatchedTriggers)n.exec(`DROP TRIGGER IF EXISTS ${T}`),n.exec(b[T]);return n.exec("INSERT INTO qe_patterns_fts(qe_patterns_fts) VALUES('rebuild')"),{s:c,indexedAfter:w(n,"SELECT count(*) AS n FROM qe_patterns_fts_docsize")}}).immediate();if(E){let{s:c}=E;i.createdTable=!c.hasTable,i.recreatedTriggers=[...c.missingTriggers],i.replacedTriggers=[...c.mismatchedTriggers],i.patternsBefore=c.patterns,i.indexedBefore=c.indexed,i.indexedAfter=E.indexedAfter,i.rebuilt=!0}if(i.rebuilt){i.status="healed";let c=[];i.createdTable&&c.push("created qe_patterns_fts"),i.recreatedTriggers.length>0&&c.push(`recreated triggers [${i.recreatedTriggers.join(", ")}]`),i.replacedTriggers.length>0&&c.push(`replaced triggers [${i.replacedTriggers.join(", ")}]`);let T=i.indexedBefore<0?"n/a":String(i.indexedBefore);c.push(`rebuilt index (indexed ${T} -> ${i.indexedAfter}, qe_patterns ${i.patternsBefore})`),t(`${r} Healed qe_patterns FTS5 index: ${c.join("; ")}`)}return i}catch(o){i.status="failed",i.error=O(o);try{t(`${r} qe_patterns FTS5 self-heal skipped: ${i.error} (keyword search may be degraded; vector search unaffected)`)}catch{}return i}}var _t,mt,We=R(()=>{"use strict";de();se();_t=Object.keys(b);mt=Object.freeze(Object.fromEntries(Object.entries(b).map(([n,e])=>[n,ze(e)])))});function M(n,e,t){let r={value:e,timestamp:t??(e!==void 0?Date.now():0),nodeId:e!==void 0?n:"",version:e!==void 0?1:0,lastUpdated:Date.now()};function i(o,E,c,T){return o!==c?o-c:E.localeCompare(T)}return{get(){return r.value},set(o,E){let c=E??Date.now();(r.timestamp===0||i(c,n,r.timestamp,r.nodeId)>0)&&(r={value:o,timestamp:c,nodeId:n,version:r.version+1,lastUpdated:Date.now()})},merge(o){let E=o.getState();this.applyState(E)},getState(){return{value:r.value,timestamp:r.timestamp,nodeId:r.nodeId,version:r.version,lastUpdated:r.lastUpdated}},applyState(o){(r.timestamp===0||i(o.timestamp,o.nodeId,r.timestamp,r.nodeId)>0)&&(r={value:o.value,timestamp:o.timestamp,nodeId:o.nodeId,version:Math.max(r.version,o.version)+1,lastUpdated:Date.now()})},getNodeId(){return n},getTimestamp(){return r.timestamp}}}function G(n,e){let t=M(n);return t.applyState(e),t}var oe=R(()=>{"use strict"});function C(n){let e={counts:$(),version:0,lastUpdated:Date.now()};return V(e.counts,n,0),{get(){return Object.values(e.counts).reduce((t,r)=>t+r,0)},increment(t=1){if(t<0)throw new Error("G-Counter can only increment by positive values");t!==0&&(Ne(e.counts,n,t),e.version++,e.lastUpdated=Date.now())},merge(t){let r=t.getState();this.applyState(r)},getState(){return{counts:Object.assign($(),e.counts),version:e.version,lastUpdated:e.lastUpdated}},applyState(t){let r=!1;for(let[i,o]of Object.entries(t.counts)){let E=K(e.counts,i)??0;o>E&&(V(e.counts,i,o),r=!0)}r&&(e.version=Math.max(e.version,t.version)+1,e.lastUpdated=Date.now())},getNodeId(){return n},getLocalCount(){return K(e.counts,n)??0}}}function P(n,e){let t=C(n);return t.applyState(e),t}var k=R(()=>{"use strict";dt()});function q(n){let e=C(n),t=C(n),r=0,i=Date.now();return{get(){return e.get()-t.get()},increment(o=1){if(o<0)throw new Error("Use decrement() for negative values");o!==0&&(e.increment(o),r++,i=Date.now())},decrement(o=1){if(o<0)throw new Error("Use increment() for negative values");o!==0&&(t.increment(o),r++,i=Date.now())},merge(o){let E=o.getState();this.applyState(E)},getState(){return{positive:e.getState(),negative:t.getState(),version:r,lastUpdated:i}},applyState(o){let E=this.get();e.applyState(o.positive),t.applyState(o.negative);let c=this.get();E!==c&&(r=Math.max(r,o.version)+1,i=Date.now())},getNodeId(){return n}}}function B(n,e){let t=q(n);return t.applyState(e),t}var ae=R(()=>{"use strict";k()});function Nt(n,e){return`${n}:${Date.now()}:${e}`}function ce(n){return typeof n=="string"?`s:${n}`:typeof n=="number"?`n:${n}`:typeof n=="boolean"?`b:${n}`:`j:${JSON.stringify(n)}`}function St(n){let e=n.substring(0,2),t=n.substring(2);switch(e){case"s:":return t;case"n:":return Number(t);case"b:":return t==="true";case"j:":return I(t);default:throw new Error(`Unknown serialization type: ${e}`)}}function j(n){let e=new Map,t=new Map,r=0,i=Date.now(),o=0;function E(T){let u=e.get(T);if(!u||u.size===0)return!1;let l=t.get(T);if(!l||l.size===0)return!0;for(let m of u)if(!l.has(m))return!0;return!1}function c(T){let u=e.get(T);if(!u)return new Set;let l=t.get(T)||new Set,m=new Set;for(let p of u)l.has(p)||m.add(p);return m}return{has(T){let u=ce(T);return E(u)},values(){let T=[];for(let[u]of e)E(u)&&T.push(St(u));return T},size(){let T=0;for(let[u]of e)E(u)&&T++;return T},add(T){let u=ce(T),l=Nt(n,o++);e.has(u)||e.set(u,new Set),e.get(u).add(l),r++,i=Date.now()},remove(T){let u=ce(T),l=e.get(u);if(!l||l.size===0)return;t.has(u)||t.set(u,new Set);let m=t.get(u);for(let p of l)m.add(p);r++,i=Date.now()},merge(T){let u=T.getState();this.applyState(u)},getState(){let T={};for(let[l,m]of e)T[l]=Array.from(m);let u={};for(let[l,m]of t)m.size>0&&(u[l]=Array.from(m));return{elements:T,tombstones:u,version:r,lastUpdated:i}},applyState(T){let u=!1;for(let[l,m]of Object.entries(T.elements)){e.has(l)||e.set(l,new Set);let p=e.get(l);for(let g of m)p.has(g)||(p.add(g),u=!0)}for(let[l,m]of Object.entries(T.tombstones)){t.has(l)||t.set(l,new Set);let p=t.get(l);for(let g of m)p.has(g)||(p.add(g),u=!0)}u&&(r=Math.max(r,T.version)+1,i=Date.now())},getNodeId(){return n},clear(){for(let[T,u]of e){t.has(T)||t.set(T,new Set);let l=t.get(T);for(let m of u)l.add(m)}r++,i=Date.now()}}}function z(n,e){let t=j(n);return t.applyState(e),t}var Te=R(()=>{"use strict";ge()});function Ee(n){let e={...ht,...n},{nodeId:t,enableDeltaTracking:r,maxDeltaHistory:i}=e,o=new Map,E=new Map,c=new Map,T=new Map,u=0,l=[],m=new Set,p={registers:new Set,gCounters:new Set,pnCounters:new Set,sets:new Set};function g(a,s,d){let N={key:a,type:s,operation:d,timestamp:Date.now(),nodeId:t};for(let nt of m)try{nt(N)}catch(rt){console.error("[CRDTStore] Error in change listener:",rt)}}function _(a,s){u++,r&&p[a].add(s)}function L(){if(!r||!(p.registers.size>0||p.gCounters.size>0||p.pnCounters.size>0||p.sets.size>0))return;let s={fromVersion:l.length>0?l[l.length-1].toVersion:0,toVersion:u,timestamp:Date.now(),nodeId:t};if(p.registers.size>0){s.registers={};for(let d of p.registers){let N=o.get(d);N&&(s.registers[d]=N.getState())}p.registers.clear()}if(p.gCounters.size>0){s.gCounters={};for(let d of p.gCounters){let N=E.get(d);N&&(s.gCounters[d]=N.getState())}p.gCounters.clear()}if(p.pnCounters.size>0){s.pnCounters={};for(let d of p.pnCounters){let N=c.get(d);N&&(s.pnCounters[d]=N.getState())}p.pnCounters.clear()}if(p.sets.size>0){s.sets={};for(let d of p.sets){let N=T.get(d);N&&(s.sets[d]=N.getState())}p.sets.clear()}for(l.push(s);l.length>i;)l.shift()}let h={getRegister(a){return o.has(a)||o.set(a,M(t)),o.get(a)},setRegister(a,s){h.getRegister(a).set(s),_("registers",a),g(a,"lww-register","set")},hasRegister(a){return o.has(a)},deleteRegister(a){let s=o.delete(a);return s&&_("registers",a),s},getGCounter(a){return E.has(a)||E.set(a,C(t)),E.get(a)},incrementGCounter(a,s){h.getGCounter(a).increment(s),_("gCounters",a),g(a,"g-counter","increment")},hasGCounter(a){return E.has(a)},deleteGCounter(a){let s=E.delete(a);return s&&_("gCounters",a),s},getCounter(a){return c.has(a)||c.set(a,q(t)),c.get(a)},incrementCounter(a,s){h.getCounter(a).increment(s),_("pnCounters",a),g(a,"pn-counter","increment")},decrementCounter(a,s){h.getCounter(a).decrement(s),_("pnCounters",a),g(a,"pn-counter","decrement")},hasCounter(a){return c.has(a)},deleteCounter(a){let s=c.delete(a);return s&&_("pnCounters",a),s},getSet(a){return T.has(a)||T.set(a,j(t)),T.get(a)},addToSet(a,s){h.getSet(a).add(s),_("sets",a),g(a,"or-set","add")},removeFromSet(a,s){h.getSet(a).remove(s),_("sets",a),g(a,"or-set","remove")},hasSet(a){return T.has(a)},deleteSet(a){let s=T.delete(a);return s&&_("sets",a),s},merge(a){let s=a.getState();h.applyState(s)},getState(){L();let a={version:u,timestamp:Date.now(),nodeId:t,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let[s,d]of o)a.registers[s]=d.getState();for(let[s,d]of E)a.gCounters[s]=d.getState();for(let[s,d]of c)a.pnCounters[s]=d.getState();for(let[s,d]of T)a.sets[s]=d.getState();return a},applyState(a){for(let[s,d]of Object.entries(a.registers))o.has(s)?o.get(s).applyState(d):o.set(s,G(t,d)),_("registers",s),g(s,"lww-register","merge");for(let[s,d]of Object.entries(a.gCounters))E.has(s)?E.get(s).applyState(d):E.set(s,P(t,d)),_("gCounters",s),g(s,"g-counter","merge");for(let[s,d]of Object.entries(a.pnCounters))c.has(s)?c.get(s).applyState(d):c.set(s,B(t,d)),_("pnCounters",s),g(s,"pn-counter","merge");for(let[s,d]of Object.entries(a.sets))T.has(s)?T.get(s).applyState(d):T.set(s,z(t,d)),_("sets",s),g(s,"or-set","merge");u=Math.max(u,a.version)+1},getDelta(a){if(L(),l.length===0)return a>=u,null;let s=l.filter(N=>N.toVersion>a);if(s.length===0)return null;let d={fromVersion:a,toVersion:u,timestamp:Date.now(),nodeId:t,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let N of s)N.registers&&Object.assign(d.registers,N.registers),N.gCounters&&Object.assign(d.gCounters,N.gCounters),N.pnCounters&&Object.assign(d.pnCounters,N.pnCounters),N.sets&&Object.assign(d.sets,N.sets);return Object.keys(d.registers).length===0&&delete d.registers,Object.keys(d.gCounters).length===0&&delete d.gCounters,Object.keys(d.pnCounters).length===0&&delete d.pnCounters,Object.keys(d.sets).length===0&&delete d.sets,d},applyDelta(a){if(a.registers)for(let[s,d]of Object.entries(a.registers))o.has(s)?o.get(s).applyState(d):o.set(s,G(t,d)),_("registers",s),g(s,"lww-register","merge");if(a.gCounters)for(let[s,d]of Object.entries(a.gCounters))E.has(s)?E.get(s).applyState(d):E.set(s,P(t,d)),_("gCounters",s),g(s,"g-counter","merge");if(a.pnCounters)for(let[s,d]of Object.entries(a.pnCounters))c.has(s)?c.get(s).applyState(d):c.set(s,B(t,d)),_("pnCounters",s),g(s,"pn-counter","merge");if(a.sets)for(let[s,d]of Object.entries(a.sets))T.has(s)?T.get(s).applyState(d):T.set(s,z(t,d)),_("sets",s),g(s,"or-set","merge");u=Math.max(u,a.toVersion)+1},getVersion(){return u},getNodeId(){return t},on(a,s){if(a==="change")return m.add(s),()=>{m.delete(s)};throw new Error(`Unknown event type: ${a}`)},removeAllListeners(){m.clear()},keys(a){let s=[];return(!a||a==="lww-register")&&s.push(...Array.from(o.keys())),(!a||a==="g-counter")&&s.push(...Array.from(E.keys())),(!a||a==="pn-counter")&&s.push(...Array.from(c.keys())),(!a||a==="or-set")&&s.push(...Array.from(T.keys())),s},clear(){o.clear(),E.clear(),c.clear(),T.clear(),l.length=0,p.registers.clear(),p.gCounters.clear(),p.pnCounters.clear(),p.sets.clear(),u=0},getStats(){return{total:o.size+E.size+c.size+T.size,registers:o.size,gCounters:E.size,pnCounters:c.size,sets:T.size,version:u,nodeId:t,deltaHistorySize:l.length}}};return h}var ht,Ye=R(()=>{"use strict";oe();k();ae();Te();ht={nodeId:"default-node",enableDeltaTracking:!0,maxDeltaHistory:100}});var $e=R(()=>{"use strict"});var Ke=R(()=>{"use strict";oe();k();ae();Te();Ye();$e()});var Ct={};st(Ct,{ALLOWED_TABLE_NAMES:()=>J,BinaryHeap:()=>_e,DEFAULT_UNIFIED_MEMORY_CONFIG:()=>Ze,UnifiedHnswIndex:()=>F,UnifiedMemoryManager:()=>D,clearProjectRootCache:()=>H,createHnswIndex:()=>me,findProjectRoot:()=>y,getDefaultDbPath:()=>Je,getResolvedDefaultConfig:()=>et,getUnifiedMemory:()=>tt,initializeUnifiedMemory:()=>Rt,resetUnifiedMemory:()=>Lt,validateTableName:()=>v});import*as f from"fs";import*as Qe from"os";import*as S from"path";function Je(){let n=y();return S.join(n,".agentic-qe","memory.db")}function et(){return{...Ze,dbPath:Je()}}function tt(n){return D.getInstance(n)}async function Rt(n){let e=tt(n);return await e.initialize(),e}function Lt(){D.resetInstance()}function It(){if(Ve)return;Ve=!0;let n=()=>{try{let t=D.instance;t&&t.close()}catch(t){console.debug("[UnifiedMemory] Cleanup error:",t instanceof Error?t.message:t)}};process.on("beforeExit",n),Se(n);let e=t=>{he(t)||(n(),process.exit(0))};process.on("SIGINT",e),process.on("SIGTERM",e)}var U,Ze,D,Ve,Ot=R(()=>{at();ge();de();ct();it();Oe();Z();Z();fe();fe();se();We();ee();Ke();ot();ut();U=ue.create("unified-memory");Ze={dbPath:".agentic-qe/memory.db",walMode:!0,mmapSize:X.MMAP_SIZE_BYTES,cacheSize:X.CACHE_SIZE_KB,busyTimeout:X.BUSY_TIMEOUT_MS,vectorDimensions:X.DEFAULT_VECTOR_DIMENSIONS};D=class n{static instance=null;static instancePromise=null;db=null;config;initialized=!1;vectorsLoaded=!1;initPromise=null;preparedStatements=new Map;vectorIndex=new F("qe-memory");crdtStore=null;proofGate=null;proofGateEnvChecked=!1;static PROOF_NS="__proofgate__";static PROOF_KEY="chain";constructor(e){let t=et();if(this.config={...t,...e},process.env.AQE_MEMORY_BACKEND==="memory"){this.config.dbPath=":memory:";return}if(this.config.dbPath!==":memory:"&&!S.isAbsolute(this.config.dbPath)){let r=y();this.config.dbPath=S.join(r,this.config.dbPath)}}static getInstance(e){return n.instance||(n.instance=new n(e)),n.instance}static async getInstanceAsync(e){return n.instance?.initialized?n.instance:(n.instancePromise||(n.instancePromise=(async()=>{let t=n.getInstance(e);return await t.initialize(),t})()),n.instancePromise)}static resetInstance(){n.instance&&(n.instance.close(),n.instance=null),n.instancePromise=null,H()}async initialize(e){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInitialize(e?.signal)),this.initPromise}async _doInitialize(e){if(!this.initialized){e?.throwIfAborted();try{let t=this.config.dbPath===":memory:",r="",i=!1,o=0;if(!t){let E=process.env.AQE_PROJECT_ROOT;if(E){let c=S.resolve(this.config.dbPath),T=S.resolve(E);!c.startsWith(T)&&!c.startsWith(Qe.tmpdir())&&c.includes(".agentic-qe")&&(console.error(`[UnifiedMemory] WARNING: DB path "${this.config.dbPath}" points to a production .agentic-qe/ while AQE_PROJECT_ROOT="${E}". Redirecting to test-safe path.`),this.config.dbPath=S.join(E,".agentic-qe","memory.db"))}if(r=S.dirname(this.config.dbPath),f.existsSync(r)||f.mkdirSync(r,{recursive:!0}),i=f.existsSync(this.config.dbPath),i)o=f.statSync(this.config.dbPath).size;else if(f.existsSync(r)){let c=this.findRecentBackups(r);if(c.length>0){let T=c[0];console.error(`[UnifiedMemory] CRITICAL: Database file missing but directory exists!
734
+ `,qe=["kv_store","vectors","rl_q_values","goap_actions","goap_goals","goap_plans","goap_plan_signatures","goap_execution_steps","concept_nodes","concept_edges","dream_cycles","dream_insights","qe_patterns","qe_pattern_embeddings","qe_pattern_usage","qe_trajectories","embeddings","execution_results","executed_steps","mincut_snapshots","mincut_history","mincut_weak_vertices","mincut_alerts","mincut_healing_actions","mincut_observations","hypergraph_nodes","hypergraph_edges","sona_patterns","witness_chain","learning_evidence_manifests","learning_evidence_segments","learning_segment_edges","learning_evidence_admissions","pattern_manifest_lineage","pattern_segment_lineage"]});function ie(n,t,e){return n.prepare("SELECT 1 FROM sqlite_master WHERE type = ? AND name = ?").get(t,e)!==void 0}function ze(n){return n.replace(/\s+/g," ").trim().replace(/^CREATE TRIGGER IF NOT EXISTS /i,"CREATE TRIGGER ").replace(/ ?;$/,"").toLowerCase()}function w(n,t){return n.prepare(t).get()?.n??0}function Be(n){let t=ie(n,"table","qe_patterns_fts"),e=t&&ie(n,"table","qe_patterns_fts_docsize"),r=[],o=[],s=n.prepare("SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = ?");for(let u of _t){let d=s.get(u);d===void 0?r.push(u):ze(d.sql??"")!==mt[u]&&o.push(u)}let T=w(n,"SELECT count(*) AS n FROM qe_patterns"),c=e?w(n,"SELECT count(*) AS n FROM qe_patterns_fts_docsize"):-1,g=e&&c===T?w(n,`SELECT count(*) AS n FROM qe_patterns p
735
+ WHERE NOT EXISTS (SELECT 1 FROM qe_patterns_fts_docsize d WHERE d.id = p.rowid)`):0;return{hasTable:t,hasDocsize:e,missingTriggers:r,mismatchedTriggers:o,patterns:T,indexed:c,unindexed:g}}function je(n){return!n.hasTable||n.missingTriggers.length>0||n.mismatchedTriggers.length>0?!0:n.hasDocsize?n.indexed!==n.patterns||n.unindexed>0:!1}function ft(n){if(n.readonly)return!0;try{return Number(n.pragma("query_only",{simple:!0}))===1}catch{return!1}}function He(n,t={}){let e=t.log??(s=>console.warn(s)),r=t.logPrefix??"[PatternFTS]",o={status:"healthy",createdTable:!1,recreatedTriggers:[],replacedTriggers:[],rebuilt:!1,patternsBefore:-1,indexedBefore:-1,indexedAfter:-1};try{if(!ie(n,"table","qe_patterns"))return o.status="no-patterns",o;if(ft(n))return o.status="readonly",o;let s=Be(n);if(o.patternsBefore=s.patterns,o.indexedBefore=s.indexed,!je(s))return o;let T=n.transaction(()=>{let c=Be(n);if(!je(c))return null;c.hasTable||n.exec(ne);for(let g of c.missingTriggers)n.exec(b[g]);for(let g of c.mismatchedTriggers)n.exec(`DROP TRIGGER IF EXISTS ${g}`),n.exec(b[g]);return n.exec("INSERT INTO qe_patterns_fts(qe_patterns_fts) VALUES('rebuild')"),{s:c,indexedAfter:w(n,"SELECT count(*) AS n FROM qe_patterns_fts_docsize")}}).immediate();if(T){let{s:c}=T;o.createdTable=!c.hasTable,o.recreatedTriggers=[...c.missingTriggers],o.replacedTriggers=[...c.mismatchedTriggers],o.patternsBefore=c.patterns,o.indexedBefore=c.indexed,o.indexedAfter=T.indexedAfter,o.rebuilt=!0}if(o.rebuilt){o.status="healed";let c=[];o.createdTable&&c.push("created qe_patterns_fts"),o.recreatedTriggers.length>0&&c.push(`recreated triggers [${o.recreatedTriggers.join(", ")}]`),o.replacedTriggers.length>0&&c.push(`replaced triggers [${o.replacedTriggers.join(", ")}]`);let g=o.indexedBefore<0?"n/a":String(o.indexedBefore);c.push(`rebuilt index (indexed ${g} -> ${o.indexedAfter}, qe_patterns ${o.patternsBefore})`),e(`${r} Healed qe_patterns FTS5 index: ${c.join("; ")}`)}return o}catch(s){o.status="failed",o.error=O(s);try{e(`${r} qe_patterns FTS5 self-heal skipped: ${o.error} (keyword search may be degraded; vector search unaffected)`)}catch{}return o}}var _t,mt,We=R(()=>{"use strict";de();se();_t=Object.keys(b);mt=Object.freeze(Object.fromEntries(Object.entries(b).map(([n,t])=>[n,ze(t)])))});function M(n,t,e){let r={value:t,timestamp:e??(t!==void 0?Date.now():0),nodeId:t!==void 0?n:"",version:t!==void 0?1:0,lastUpdated:Date.now()};function o(s,T,c,g){return s!==c?s-c:T===g?0:T>g?1:-1}return{get(){return r.value},set(s,T){let c=T??Date.now();(r.version===0||o(c,n,r.timestamp,r.nodeId)>0)&&(r={value:s,timestamp:c,nodeId:n,version:r.version+1,lastUpdated:Date.now()})},merge(s){let T=s.getState();this.applyState(T)},getState(){return{value:r.value,timestamp:r.timestamp,nodeId:r.nodeId,version:r.version,lastUpdated:r.lastUpdated}},applyState(s){(r.version===0||o(s.timestamp,s.nodeId,r.timestamp,r.nodeId)>0)&&(r={value:s.value,timestamp:s.timestamp,nodeId:s.nodeId,version:Math.max(r.version,s.version)+1,lastUpdated:Date.now()})},getNodeId(){return n},getTimestamp(){return r.timestamp}}}function G(n,t){let e=M(n);return e.applyState(t),e}var oe=R(()=>{"use strict"});function C(n){let t={counts:K(),version:0,lastUpdated:Date.now()};return V(t.counts,n,0),{get(){return Object.values(t.counts).reduce((e,r)=>e+r,0)},increment(e=1){if(e<0)throw new Error("G-Counter can only increment by positive values");e!==0&&(Ne(t.counts,n,e),t.version++,t.lastUpdated=Date.now())},merge(e){let r=e.getState();this.applyState(r)},getState(){return{counts:Object.assign(K(),t.counts),version:t.version,lastUpdated:t.lastUpdated}},applyState(e){let r=!1;for(let[o,s]of Object.entries(e.counts)){let T=$(t.counts,o)??0;s>T&&(V(t.counts,o,s),r=!0)}r&&(t.version=Math.max(t.version,e.version)+1,t.lastUpdated=Date.now())},getNodeId(){return n},getLocalCount(){return $(t.counts,n)??0}}}function P(n,t){let e=C(n);return e.applyState(t),e}var k=R(()=>{"use strict";dt()});function q(n){let t=C(n),e=C(n),r=0,o=Date.now();return{get(){return t.get()-e.get()},increment(s=1){if(s<0)throw new Error("Use decrement() for negative values");s!==0&&(t.increment(s),r++,o=Date.now())},decrement(s=1){if(s<0)throw new Error("Use increment() for negative values");s!==0&&(e.increment(s),r++,o=Date.now())},merge(s){let T=s.getState();this.applyState(T)},getState(){return{positive:t.getState(),negative:e.getState(),version:r,lastUpdated:o}},applyState(s){let T=this.get();t.applyState(s.positive),e.applyState(s.negative);let c=this.get();T!==c&&(r=Math.max(r,s.version)+1,o=Date.now())},getNodeId(){return n}}}function B(n,t){let e=q(n);return e.applyState(t),e}var ae=R(()=>{"use strict";k()});function Nt(n,t){return`${n}:${Date.now()}:${t}`}function ce(n){return typeof n=="string"?`s:${n}`:typeof n=="number"?`n:${n}`:typeof n=="boolean"?`b:${n}`:`j:${JSON.stringify(n)}`}function St(n){let t=n.substring(0,2),e=n.substring(2);switch(t){case"s:":return e;case"n:":return Number(e);case"b:":return e==="true";case"j:":return I(e);default:throw new Error(`Unknown serialization type: ${t}`)}}function j(n){let t=new Map,e=new Map,r=0,o=Date.now(),s=0;function T(u){let d=`${n}:`;if(!u.startsWith(d))return;let m=u.slice(d.length),p=/^(-?\d+):(\d+)$/.exec(m);if(!p)return;let l=Number(p[1]),_=Number(p[2]);Number.isSafeInteger(l)&&Number.isSafeInteger(_)&&_<Number.MAX_SAFE_INTEGER&&(s=Math.max(s,_+1))}function c(u){let d=t.get(u);if(!d||d.size===0)return!1;let m=e.get(u);if(!m||m.size===0)return!0;for(let p of d)if(!m.has(p))return!0;return!1}function g(u){let d=t.get(u);if(!d)return new Set;let m=e.get(u)||new Set,p=new Set;for(let l of d)m.has(l)||p.add(l);return p}return{has(u){let d=ce(u);return c(d)},values(){let u=[];for(let[d]of t)c(d)&&u.push(St(d));return u},size(){let u=0;for(let[d]of t)c(d)&&u++;return u},add(u){let d=ce(u),m=Nt(n,s++);t.has(d)||t.set(d,new Set),t.get(d).add(m),r++,o=Date.now()},remove(u){let d=ce(u),m=t.get(d);if(!m||m.size===0)return;e.has(d)||e.set(d,new Set);let p=e.get(d);for(let l of m)p.add(l);r++,o=Date.now()},merge(u){let d=u.getState();this.applyState(d)},getState(){let u={};for(let[m,p]of t)u[m]=Array.from(p);let d={};for(let[m,p]of e)p.size>0&&(d[m]=Array.from(p));return{elements:u,tombstones:d,version:r,lastUpdated:o}},applyState(u){let d=!1;for(let[m,p]of Object.entries(u.elements)){t.has(m)||t.set(m,new Set);let l=t.get(m);for(let _ of p)T(_),l.has(_)||(l.add(_),d=!0)}for(let[m,p]of Object.entries(u.tombstones)){e.has(m)||e.set(m,new Set);let l=e.get(m);for(let _ of p)T(_),l.has(_)||(l.add(_),d=!0)}d&&(r=Math.max(r,u.version)+1,o=Date.now())},getNodeId(){return n},clear(){for(let[u,d]of t){e.has(u)||e.set(u,new Set);let m=e.get(u);for(let p of d)m.add(p)}r++,o=Date.now()}}}function z(n,t){let e=j(n);return e.applyState(t),e}var Te=R(()=>{"use strict";ge()});function Ee(n){let t={...ht,...n},{nodeId:e,enableDeltaTracking:r,maxDeltaHistory:o}=t,s=new Map,T=new Map,c=new Map,g=new Map,u=0,d=[],m=new Set,p={registers:new Set,gCounters:new Set,pnCounters:new Set,sets:new Set};function l(a,i,E){let f={key:a,type:i,operation:E,timestamp:Date.now(),nodeId:e};for(let nt of m)try{nt(f)}catch(rt){console.error("[CRDTStore] Error in change listener:",rt)}}function _(a,i){u++,r&&p[a].add(i)}function L(){if(!r||!(p.registers.size>0||p.gCounters.size>0||p.pnCounters.size>0||p.sets.size>0))return;let i={fromVersion:d.length>0?d[d.length-1].toVersion:0,toVersion:u,timestamp:Date.now(),nodeId:e};if(p.registers.size>0){i.registers={};for(let E of p.registers){let f=s.get(E);f&&(i.registers[E]=f.getState())}p.registers.clear()}if(p.gCounters.size>0){i.gCounters={};for(let E of p.gCounters){let f=T.get(E);f&&(i.gCounters[E]=f.getState())}p.gCounters.clear()}if(p.pnCounters.size>0){i.pnCounters={};for(let E of p.pnCounters){let f=c.get(E);f&&(i.pnCounters[E]=f.getState())}p.pnCounters.clear()}if(p.sets.size>0){i.sets={};for(let E of p.sets){let f=g.get(E);f&&(i.sets[E]=f.getState())}p.sets.clear()}for(d.push(i);d.length>o;)d.shift()}let h={getRegister(a){return s.has(a)||s.set(a,M(e)),s.get(a)},setRegister(a,i){h.getRegister(a).set(i),_("registers",a),l(a,"lww-register","set")},hasRegister(a){return s.has(a)},deleteRegister(a){let i=s.delete(a);return i&&_("registers",a),i},getGCounter(a){return T.has(a)||T.set(a,C(e)),T.get(a)},incrementGCounter(a,i){h.getGCounter(a).increment(i),_("gCounters",a),l(a,"g-counter","increment")},hasGCounter(a){return T.has(a)},deleteGCounter(a){let i=T.delete(a);return i&&_("gCounters",a),i},getCounter(a){return c.has(a)||c.set(a,q(e)),c.get(a)},incrementCounter(a,i){h.getCounter(a).increment(i),_("pnCounters",a),l(a,"pn-counter","increment")},decrementCounter(a,i){h.getCounter(a).decrement(i),_("pnCounters",a),l(a,"pn-counter","decrement")},hasCounter(a){return c.has(a)},deleteCounter(a){let i=c.delete(a);return i&&_("pnCounters",a),i},getSet(a){return g.has(a)||g.set(a,j(e)),g.get(a)},addToSet(a,i){h.getSet(a).add(i),_("sets",a),l(a,"or-set","add")},removeFromSet(a,i){h.getSet(a).remove(i),_("sets",a),l(a,"or-set","remove")},hasSet(a){return g.has(a)},deleteSet(a){let i=g.delete(a);return i&&_("sets",a),i},merge(a){let i=a.getState();h.applyState(i)},getState(){L();let a={version:u,timestamp:Date.now(),nodeId:e,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let[i,E]of s)a.registers[i]=E.getState();for(let[i,E]of T)a.gCounters[i]=E.getState();for(let[i,E]of c)a.pnCounters[i]=E.getState();for(let[i,E]of g)a.sets[i]=E.getState();return a},applyState(a){for(let[i,E]of Object.entries(a.registers))s.has(i)?s.get(i).applyState(E):s.set(i,G(e,E)),_("registers",i),l(i,"lww-register","merge");for(let[i,E]of Object.entries(a.gCounters))T.has(i)?T.get(i).applyState(E):T.set(i,P(e,E)),_("gCounters",i),l(i,"g-counter","merge");for(let[i,E]of Object.entries(a.pnCounters))c.has(i)?c.get(i).applyState(E):c.set(i,B(e,E)),_("pnCounters",i),l(i,"pn-counter","merge");for(let[i,E]of Object.entries(a.sets))g.has(i)?g.get(i).applyState(E):g.set(i,z(e,E)),_("sets",i),l(i,"or-set","merge");u=Math.max(u,a.version)+1},getDelta(a){if(L(),d.length===0)return a>=u,null;if(a<d[0].fromVersion){let f=h.getState();return{fromVersion:a,toVersion:u,timestamp:Date.now(),nodeId:e,registers:f.registers,gCounters:f.gCounters,pnCounters:f.pnCounters,sets:f.sets}}let i=d.filter(f=>f.toVersion>a);if(i.length===0)return null;let E={fromVersion:a,toVersion:u,timestamp:Date.now(),nodeId:e,registers:{},gCounters:{},pnCounters:{},sets:{}};for(let f of i)f.registers&&Object.assign(E.registers,f.registers),f.gCounters&&Object.assign(E.gCounters,f.gCounters),f.pnCounters&&Object.assign(E.pnCounters,f.pnCounters),f.sets&&Object.assign(E.sets,f.sets);return Object.keys(E.registers).length===0&&delete E.registers,Object.keys(E.gCounters).length===0&&delete E.gCounters,Object.keys(E.pnCounters).length===0&&delete E.pnCounters,Object.keys(E.sets).length===0&&delete E.sets,E},applyDelta(a){if(a.registers)for(let[i,E]of Object.entries(a.registers))s.has(i)?s.get(i).applyState(E):s.set(i,G(e,E)),_("registers",i),l(i,"lww-register","merge");if(a.gCounters)for(let[i,E]of Object.entries(a.gCounters))T.has(i)?T.get(i).applyState(E):T.set(i,P(e,E)),_("gCounters",i),l(i,"g-counter","merge");if(a.pnCounters)for(let[i,E]of Object.entries(a.pnCounters))c.has(i)?c.get(i).applyState(E):c.set(i,B(e,E)),_("pnCounters",i),l(i,"pn-counter","merge");if(a.sets)for(let[i,E]of Object.entries(a.sets))g.has(i)?g.get(i).applyState(E):g.set(i,z(e,E)),_("sets",i),l(i,"or-set","merge");u=Math.max(u,a.toVersion)+1},getVersion(){return u},getNodeId(){return e},on(a,i){if(a==="change")return m.add(i),()=>{m.delete(i)};throw new Error(`Unknown event type: ${a}`)},removeAllListeners(){m.clear()},keys(a){let i=[];return(!a||a==="lww-register")&&i.push(...Array.from(s.keys())),(!a||a==="g-counter")&&i.push(...Array.from(T.keys())),(!a||a==="pn-counter")&&i.push(...Array.from(c.keys())),(!a||a==="or-set")&&i.push(...Array.from(g.keys())),i},clear(){s.clear(),T.clear(),c.clear(),g.clear(),d.length=0,p.registers.clear(),p.gCounters.clear(),p.pnCounters.clear(),p.sets.clear(),u=0},getStats(){return{total:s.size+T.size+c.size+g.size,registers:s.size,gCounters:T.size,pnCounters:c.size,sets:g.size,version:u,nodeId:e,deltaHistorySize:d.length}}};return h}var ht,Ye=R(()=>{"use strict";oe();k();ae();Te();ht={nodeId:"default-node",enableDeltaTracking:!0,maxDeltaHistory:100}});var Ke=R(()=>{"use strict"});var $e=R(()=>{"use strict";oe();k();ae();Te();Ye();Ke()});var Ct={};st(Ct,{ALLOWED_TABLE_NAMES:()=>J,BinaryHeap:()=>_e,DEFAULT_UNIFIED_MEMORY_CONFIG:()=>Ze,UnifiedHnswIndex:()=>F,UnifiedMemoryManager:()=>D,clearProjectRootCache:()=>H,createHnswIndex:()=>me,findProjectRoot:()=>y,getDefaultDbPath:()=>Je,getResolvedDefaultConfig:()=>et,getUnifiedMemory:()=>tt,initializeUnifiedMemory:()=>Rt,resetUnifiedMemory:()=>Lt,validateTableName:()=>v});import*as N from"fs";import*as Qe from"os";import*as S from"path";function Je(){let n=y();return S.join(n,".agentic-qe","memory.db")}function et(){return{...Ze,dbPath:Je()}}function tt(n){return D.getInstance(n)}async function Rt(n){let t=tt(n);return await t.initialize(),t}function Lt(){D.resetInstance()}function It(){if(Ve)return;Ve=!0;let n=()=>{try{let e=D.instance;e&&e.close()}catch(e){console.debug("[UnifiedMemory] Cleanup error:",e instanceof Error?e.message:e)}};process.on("beforeExit",n),Se(n);let t=e=>{he(e)||(n(),process.exit(0))};process.on("SIGINT",t),process.on("SIGTERM",t)}var U,Ze,D,Ve,Ot=R(()=>{at();ge();de();ct();it();Oe();Z();Z();fe();fe();se();We();ee();$e();ot();ut();U=ue.create("unified-memory");Ze={dbPath:".agentic-qe/memory.db",walMode:!0,mmapSize:X.MMAP_SIZE_BYTES,cacheSize:X.CACHE_SIZE_KB,busyTimeout:X.BUSY_TIMEOUT_MS,vectorDimensions:X.DEFAULT_VECTOR_DIMENSIONS};D=class n{static instance=null;static instancePromise=null;db=null;config;initialized=!1;vectorsLoaded=!1;initPromise=null;preparedStatements=new Map;vectorIndex=new F("qe-memory");crdtStore=null;proofGate=null;proofGateEnvChecked=!1;static PROOF_NS="__proofgate__";static PROOF_KEY="chain";constructor(t){let e=et();if(this.config={...e,...t},process.env.AQE_MEMORY_BACKEND==="memory"){this.config.dbPath=":memory:";return}if(this.config.dbPath!==":memory:"&&!S.isAbsolute(this.config.dbPath)){let r=y();this.config.dbPath=S.join(r,this.config.dbPath)}}static getInstance(t){return n.instance||(n.instance=new n(t)),n.instance}static async getInstanceAsync(t){return n.instance?.initialized?n.instance:(n.instancePromise||(n.instancePromise=(async()=>{let e=n.getInstance(t);return await e.initialize(),e})()),n.instancePromise)}static resetInstance(){n.instance&&(n.instance.close(),n.instance=null),n.instancePromise=null,H()}async initialize(t){if(!this.initialized)return this.initPromise||(this.initPromise=this._doInitialize(t?.signal)),this.initPromise}async _doInitialize(t){if(!this.initialized){t?.throwIfAborted();try{let e=this.config.dbPath===":memory:",r="",o=!1,s=0;if(!e){let T=process.env.AQE_PROJECT_ROOT;if(T){let c=S.resolve(this.config.dbPath),g=S.resolve(T);!c.startsWith(g)&&!c.startsWith(Qe.tmpdir())&&c.includes(".agentic-qe")&&(console.error(`[UnifiedMemory] WARNING: DB path "${this.config.dbPath}" points to a production .agentic-qe/ while AQE_PROJECT_ROOT="${T}". Redirecting to test-safe path.`),this.config.dbPath=S.join(T,".agentic-qe","memory.db"))}if(r=S.dirname(this.config.dbPath),N.existsSync(r)||N.mkdirSync(r,{recursive:!0}),o=N.existsSync(this.config.dbPath),o)s=N.statSync(this.config.dbPath).size;else if(N.existsSync(r)){let c=this.findRecentBackups(r);if(c.length>0){let g=c[0];console.error(`[UnifiedMemory] CRITICAL: Database file missing but directory exists!
736
736
  Expected: ${this.config.dbPath}
737
- Found ${c.length} backup(s), newest: ${T.path} (${(T.size/1024/1024).toFixed(1)}MB)
738
- Restoring from backup to prevent data loss...`),f.copyFileSync(T.path,this.config.dbPath);for(let u of["-wal","-shm"]){let l=this.config.dbPath+u;f.existsSync(l)&&f.unlinkSync(l)}o=T.size}}}if(e?.throwIfAborted(),this.db=le(this.config.dbPath,{walMode:this.config.walMode,busyTimeout:this.config.busyTimeout,autoRestore:!0}),this.db.pragma(`mmap_size = ${this.config.mmapSize}`),this.db.pragma(`cache_size = ${this.config.cacheSize}`),this.db.pragma("foreign_keys = ON"),e?.aborted){try{this.db.close()}catch{}this.db=null,e.throwIfAborted()}if(await this.runMigrations(),He(this.db,{logPrefix:"[UnifiedMemory]"}),e?.throwIfAborted(),i&&o>1e6)try{let E=this.db.prepare("SELECT COUNT(*) as cnt FROM qe_patterns").get();if(E&&E.cnt===0){let c=f.statSync(this.config.dbPath).size;c<o*.1&&console.error(`[UnifiedMemory] CRITICAL: Possible data loss detected!
739
- DB was ${(o/1024/1024).toFixed(1)}MB, now ${(c/1024/1024).toFixed(1)}MB with 0 patterns.
737
+ Found ${c.length} backup(s), newest: ${g.path} (${(g.size/1024/1024).toFixed(1)}MB)
738
+ Restoring from backup to prevent data loss...`),N.copyFileSync(g.path,this.config.dbPath);for(let u of["-wal","-shm"]){let d=this.config.dbPath+u;N.existsSync(d)&&N.unlinkSync(d)}s=g.size}}}if(t?.throwIfAborted(),this.db=le(this.config.dbPath,{walMode:this.config.walMode,busyTimeout:this.config.busyTimeout,autoRestore:!0}),this.db.pragma(`mmap_size = ${this.config.mmapSize}`),this.db.pragma(`cache_size = ${this.config.cacheSize}`),this.db.pragma("foreign_keys = ON"),t?.aborted){try{this.db.close()}catch{}this.db=null,t.throwIfAborted()}if(await this.runMigrations(),He(this.db,{logPrefix:"[UnifiedMemory]"}),t?.throwIfAborted(),o&&s>1e6)try{let T=this.db.prepare("SELECT COUNT(*) as cnt FROM qe_patterns").get();if(T&&T.cnt===0){let c=N.statSync(this.config.dbPath).size;c<s*.1&&console.error(`[UnifiedMemory] CRITICAL: Possible data loss detected!
739
+ DB was ${(s/1024/1024).toFixed(1)}MB, now ${(c/1024/1024).toFixed(1)}MB with 0 patterns.
740
740
  This looks like the DB was replaced with an empty schema.
741
- Check backups in ${r} and restore manually.`)}}catch{}this.vectorsLoaded=!1,this.initialized=!0,console.log(`[UnifiedMemory] Initialized: ${this.config.dbPath}`),this.warnIfDuplicateDatabases()}catch(t){throw this.initPromise=null,t instanceof Error&&(t.name==="AbortError"||(e?.aborted??!1))?t:new Error(`Failed to initialize UnifiedMemoryManager: ${O(t)}`)}}}findRecentBackups(e){try{let r=f.readdirSync(e).filter(o=>o.startsWith("memory")&&o.endsWith(".db")&&o!=="memory.db").map(o=>{let E=S.join(e,o),c=f.statSync(E);return{path:E,size:c.size,mtime:c.mtimeMs}}).filter(o=>o.size>1e6).sort((o,E)=>E.mtime-o.mtime),i=S.join(e,"backups");if(f.existsSync(i)){let o=f.readdirSync(i);for(let E of o)if(E.endsWith(".db")){let c=S.join(i,E),T=f.statSync(c);T.size>1e6&&r.push({path:c,size:T.size,mtime:T.mtimeMs})}r.sort((E,c)=>c.mtime-E.mtime)}return r}catch{return[]}}warnIfDuplicateDatabases(){if(this.config.dbPath!==":memory:")try{let e=y(),t=S.resolve(this.config.dbPath),i=[S.join(e,".agentic-qe","memory.db"),S.join(e,"v3",".agentic-qe","memory.db")].map(o=>S.resolve(o)).filter(o=>o!==t&&f.existsSync(o));i.length>0&&console.warn(`[UnifiedMemory] WARNING: Duplicate database(s) detected!
742
- Canonical: ${t}
743
- Duplicates: ${i.join(", ")}
744
- This can cause data splits. Remove duplicates or set AQE_PROJECT_ROOT.`)}catch(e){U.debug("Duplicate database check failed",{error:e instanceof Error?e.message:String(e)})}}columnExists(e,t){if(!this.db)return!1;try{let r=v(e);return this.db.prepare(`PRAGMA table_info(${r})`).all().some(o=>o.name===t)}catch(r){return U.debug("Column existence check failed",{table:e,column:t,error:r instanceof Error?r.message:String(r)}),!1}}handleV2SchemaIncompatibilities(){if(!this.db)return;let e=[{table:"goap_plans",requiredColumn:"status",columnDef:"TEXT DEFAULT 'pending'"},{table:"goap_actions",requiredColumn:"agent_type",columnDef:"TEXT DEFAULT 'unknown'"},{table:"concept_nodes",requiredColumn:"concept_type",columnDef:"TEXT DEFAULT 'general'"},{table:"concept_edges",requiredColumn:"edge_type",columnDef:"TEXT DEFAULT 'related'"},{table:"dream_insights",requiredColumn:"cycle_id",columnDef:"TEXT DEFAULT ''"},{table:"rl_q_values",requiredColumn:"algorithm",columnDef:"TEXT DEFAULT 'q-learning'"}];for(let{table:t,requiredColumn:r,columnDef:i}of e)if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(t)&&!this.columnExists(t,r)){let E=v(t);try{this.db.exec(`ALTER TABLE ${E} ADD COLUMN ${r} ${i}`),console.log(`[UnifiedMemory] Added column ${r} to ${t} (safe migration)`)}catch(c){console.log(`[UnifiedMemory] Column ${r} on ${t}: ${c instanceof Error?c.message:String(c)}`)}}}async runMigrations(){if(!this.db)throw new Error("Database not initialized");this.db.exec(De),this.handleV2SchemaIncompatibilities();let t=this.db.prepare("SELECT version FROM schema_version WHERE id = 1").get()?.version??0;t<x&&(console.log(`[UnifiedMemory] Migrating from v${t} to v${x}`),this.db.transaction(()=>{t<1&&this.db.exec(ye),t<2&&this.db.exec(Xe),t<3&&(this.db.exec(Ue),this.db.exec(te),this.db.exec(Fe)),t<4&&this.db.exec(we),t<5&&this.db.exec(Ge),t<6&&this.db.exec(W),t<7&&this.db.exec(Pe),t<8&&this.db.exec(ke),t<9&&(this.db.exec(re),this.db.exec("INSERT INTO qe_patterns_fts(qe_patterns_fts) VALUES('rebuild')")),t<10&&this.db.exec(Y),t<11&&this.migrateToV11GoapExecutionSteps(),t<12&&be(this.db),t<13&&this.migrateToV13EmbeddingSpace(),this.db.prepare(`
741
+ Check backups in ${r} and restore manually.`)}}catch{}this.vectorsLoaded=!1,this.initialized=!0,console.log(`[UnifiedMemory] Initialized: ${this.config.dbPath}`),this.warnIfDuplicateDatabases()}catch(e){throw this.initPromise=null,e instanceof Error&&(e.name==="AbortError"||(t?.aborted??!1))?e:new Error(`Failed to initialize UnifiedMemoryManager: ${O(e)}`)}}}findRecentBackups(t){try{let r=N.readdirSync(t).filter(s=>s.startsWith("memory")&&s.endsWith(".db")&&s!=="memory.db").map(s=>{let T=S.join(t,s),c=N.statSync(T);return{path:T,size:c.size,mtime:c.mtimeMs}}).filter(s=>s.size>1e6).sort((s,T)=>T.mtime-s.mtime),o=S.join(t,"backups");if(N.existsSync(o)){let s=N.readdirSync(o);for(let T of s)if(T.endsWith(".db")){let c=S.join(o,T),g=N.statSync(c);g.size>1e6&&r.push({path:c,size:g.size,mtime:g.mtimeMs})}r.sort((T,c)=>c.mtime-T.mtime)}return r}catch{return[]}}warnIfDuplicateDatabases(){if(this.config.dbPath!==":memory:")try{let t=y(),e=S.resolve(this.config.dbPath),o=[S.join(t,".agentic-qe","memory.db"),S.join(t,"v3",".agentic-qe","memory.db")].map(s=>S.resolve(s)).filter(s=>s!==e&&N.existsSync(s));o.length>0&&console.warn(`[UnifiedMemory] WARNING: Duplicate database(s) detected!
742
+ Canonical: ${e}
743
+ Duplicates: ${o.join(", ")}
744
+ This can cause data splits. Remove duplicates or set AQE_PROJECT_ROOT.`)}catch(t){U.debug("Duplicate database check failed",{error:t instanceof Error?t.message:String(t)})}}columnExists(t,e){if(!this.db)return!1;try{let r=v(t);return this.db.prepare(`PRAGMA table_info(${r})`).all().some(s=>s.name===e)}catch(r){return U.debug("Column existence check failed",{table:t,column:e,error:r instanceof Error?r.message:String(r)}),!1}}handleV2SchemaIncompatibilities(){if(!this.db)return;let t=[{table:"goap_plans",requiredColumn:"status",columnDef:"TEXT DEFAULT 'pending'"},{table:"goap_actions",requiredColumn:"agent_type",columnDef:"TEXT DEFAULT 'unknown'"},{table:"concept_nodes",requiredColumn:"concept_type",columnDef:"TEXT DEFAULT 'general'"},{table:"concept_edges",requiredColumn:"edge_type",columnDef:"TEXT DEFAULT 'related'"},{table:"dream_insights",requiredColumn:"cycle_id",columnDef:"TEXT DEFAULT ''"},{table:"rl_q_values",requiredColumn:"algorithm",columnDef:"TEXT DEFAULT 'q-learning'"}];for(let{table:e,requiredColumn:r,columnDef:o}of t)if(this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(e)&&!this.columnExists(e,r)){let T=v(e);try{this.db.exec(`ALTER TABLE ${T} ADD COLUMN ${r} ${o}`),console.log(`[UnifiedMemory] Added column ${r} to ${e} (safe migration)`)}catch(c){console.log(`[UnifiedMemory] Column ${r} on ${e}: ${c instanceof Error?c.message:String(c)}`)}}}async runMigrations(){if(!this.db)throw new Error("Database not initialized");this.db.exec(De),this.handleV2SchemaIncompatibilities();let e=this.db.prepare("SELECT version FROM schema_version WHERE id = 1").get()?.version??0;e<x&&(console.log(`[UnifiedMemory] Migrating from v${e} to v${x}`),this.db.transaction(()=>{e<1&&this.db.exec(ye),e<2&&this.db.exec(Xe),e<3&&(this.db.exec(Ue),this.db.exec(te),this.db.exec(Fe)),e<4&&this.db.exec(we),e<5&&this.db.exec(Ge),e<6&&this.db.exec(W),e<7&&this.db.exec(Pe),e<8&&this.db.exec(ke),e<9&&(this.db.exec(re),this.db.exec("INSERT INTO qe_patterns_fts(qe_patterns_fts) VALUES('rebuild')")),e<10&&this.db.exec(Y),e<11&&this.migrateToV11GoapExecutionSteps(),e<12&&be(this.db),e<13&&this.migrateToV13EmbeddingSpace(),this.db.prepare(`
745
745
  INSERT OR REPLACE INTO schema_version (id, version, migrated_at)
746
746
  VALUES (1, ?, datetime('now'))
747
- `).run(x)})(),console.log("[UnifiedMemory] Migration complete"))}migrateToV11GoapExecutionSteps(){let e=this.db;e.exec(te);let t=(r,i,o)=>{e.prepare(`SELECT name FROM pragma_table_info('${r}')`).all().some(c=>c.name===i)||e.exec(`ALTER TABLE ${r} ADD COLUMN ${i} ${o}`)};t("goap_execution_steps","execution_id","TEXT"),t("goap_execution_steps","retries","INTEGER DEFAULT 0"),t("goap_execution_steps","started_at","TEXT"),t("goap_execution_steps","agent_output","TEXT"),t("goap_actions","method","TEXT"),t("goap_actions","params","TEXT"),t("goap_actions","implemented","INTEGER DEFAULT 0"),e.exec("CREATE INDEX IF NOT EXISTS idx_goap_exec_steps_execution ON goap_execution_steps(execution_id)")}async loadVectorIndex(){if(this.vectorsLoaded)return;if(!this.db)throw new Error("Database not initialized");this.vectorIndex.clear();let e=this.db.prepare("SELECT id, embedding, dimensions FROM vectors").all();for(let t of e){let r=this.bufferToFloatArray(t.embedding,t.dimensions);this.vectorIndex.add(t.id,r)}this.vectorsLoaded=!0,console.log(`[UnifiedMemory] Loaded ${e.length} vectors into vector index (ruvector flat)`)}async kvSet(e,t,r="default",i){this.ensureInitialized();let o=i?Date.now()+i*1e3:null,E=JSON.stringify(t);this.db.prepare(`
747
+ `).run(x)})(),console.log("[UnifiedMemory] Migration complete"))}migrateToV11GoapExecutionSteps(){let t=this.db;t.exec(te);let e=(r,o,s)=>{t.prepare(`SELECT name FROM pragma_table_info('${r}')`).all().some(c=>c.name===o)||t.exec(`ALTER TABLE ${r} ADD COLUMN ${o} ${s}`)};e("goap_execution_steps","execution_id","TEXT"),e("goap_execution_steps","retries","INTEGER DEFAULT 0"),e("goap_execution_steps","started_at","TEXT"),e("goap_execution_steps","agent_output","TEXT"),e("goap_actions","method","TEXT"),e("goap_actions","params","TEXT"),e("goap_actions","implemented","INTEGER DEFAULT 0"),t.exec("CREATE INDEX IF NOT EXISTS idx_goap_exec_steps_execution ON goap_execution_steps(execution_id)")}async loadVectorIndex(){if(this.vectorsLoaded)return;if(!this.db)throw new Error("Database not initialized");this.vectorIndex.clear();let t=this.db.prepare("SELECT id, embedding, dimensions FROM vectors").all();for(let e of t){let r=this.bufferToFloatArray(e.embedding,e.dimensions);this.vectorIndex.add(e.id,r)}this.vectorsLoaded=!0,console.log(`[UnifiedMemory] Loaded ${t.length} vectors into vector index (ruvector flat)`)}async kvSet(t,e,r="default",o){this.ensureInitialized();let s=o?Date.now()+o*1e3:null,T=JSON.stringify(e);this.db.prepare(`
748
748
  INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at)
749
749
  VALUES (?, ?, ?, ?)
750
- `).run(e,r,E,o),this.auditWrite("kvSet",r,e,E)}async kvGet(e,t="default"){this.ensureInitialized();let r=this.db.prepare(`
750
+ `).run(t,r,T,s),this.auditWrite("kvSet",r,t,T)}async kvGet(t,e="default"){this.ensureInitialized();let r=this.db.prepare(`
751
751
  SELECT value, expires_at FROM kv_store
752
752
  WHERE key = ? AND namespace = ?
753
- `).get(e,t);if(r){if(r.expires_at&&Date.now()>r.expires_at){this.db.prepare("DELETE FROM kv_store WHERE key = ? AND namespace = ?").run(e,t);return}return I(r.value)}}async kvDelete(e,t="default"){this.ensureInitialized();let r=this.db.prepare("DELETE FROM kv_store WHERE key = ? AND namespace = ?").run(e,t);return r.changes>0&&this.auditWrite("kvDelete",t,e,""),r.changes>0}async kvExists(e,t="default"){return this.ensureInitialized(),this.db.prepare(`
753
+ `).get(t,e);if(r){if(r.expires_at&&Date.now()>r.expires_at){this.db.prepare("DELETE FROM kv_store WHERE key = ? AND namespace = ?").run(t,e);return}return I(r.value)}}async kvDelete(t,e="default"){this.ensureInitialized();let r=this.db.prepare("DELETE FROM kv_store WHERE key = ? AND namespace = ?").run(t,e);return r.changes>0&&this.auditWrite("kvDelete",e,t,""),r.changes>0}async kvExists(t,e="default"){return this.ensureInitialized(),this.db.prepare(`
754
754
  SELECT 1 FROM kv_store
755
755
  WHERE key = ? AND namespace = ? AND (expires_at IS NULL OR expires_at > ?)
756
- `).get(e,t,Date.now())!==void 0}async kvSearch(e,t="default",r=100){this.ensureInitialized();let i=e.replace(/[!%_]/g,"!$&").replace(/\*/g,"%").replace(/\?/g,"_");return this.db.prepare(`
756
+ `).get(t,e,Date.now())!==void 0}async kvSearch(t,e="default",r=100){this.ensureInitialized();let o=t.replace(/[!%_]/g,"!$&").replace(/\*/g,"%").replace(/\?/g,"_");return this.db.prepare(`
757
757
  SELECT key FROM kv_store
758
758
  WHERE namespace = ? AND key LIKE ? ESCAPE '!'
759
759
  AND (expires_at IS NULL OR expires_at > ?)
760
760
  LIMIT ?
761
- `).all(t,i,Date.now(),r).map(E=>E.key)}async kvCleanupExpired(){return this.ensureInitialized(),this.db.prepare("DELETE FROM kv_store WHERE expires_at IS NOT NULL AND expires_at < ?").run(Date.now()).changes}enableProofGate(){this.ensureInitialized(),this.proofGateEnvChecked=!0,!this.proofGate&&(this.proofGate=this.loadProofChain()??new A)}isProofGateEnabled(){return this.proofGate!==null}verifyMemoryIntegrity(){if(!this.proofGate)throw new Error("Proof-gate not enabled \u2014 call enableProofGate() or set AQE_PROOF_GATE=1");return this.proofGate.verifyIntegrity()}getProofChainRoot(){return this.proofGate?this.proofGate.chainRoot():null}getProofChainLength(){return this.proofGate?this.proofGate.length:0}auditWrite(e,t,r,i){if(!this.proofGate){if(this.proofGateEnvChecked||(this.proofGateEnvChecked=!0,process.env.AQE_PROOF_GATE!=="1"))return;this.proofGate=this.loadProofChain()??new A}if(t!==n.PROOF_NS)try{this.proofGate.admit({op:e,ns:t,key:r,value:i}),this.persistProofChain()}catch(o){U.warn(`proof-gate audit skipped for ${t}/${r}: ${O(o)}`)}}persistProofChain(){!this.proofGate||!this.db||this.db.prepare(`
761
+ `).all(e,o,Date.now(),r).map(T=>T.key)}async kvCleanupExpired(){return this.ensureInitialized(),this.db.prepare("DELETE FROM kv_store WHERE expires_at IS NOT NULL AND expires_at < ?").run(Date.now()).changes}enableProofGate(){this.ensureInitialized(),this.proofGateEnvChecked=!0,!this.proofGate&&(this.proofGate=this.loadProofChain()??new A)}isProofGateEnabled(){return this.proofGate!==null}verifyMemoryIntegrity(){if(!this.proofGate)throw new Error("Proof-gate not enabled \u2014 call enableProofGate() or set AQE_PROOF_GATE=1");return this.proofGate.verifyIntegrity()}getProofChainRoot(){return this.proofGate?this.proofGate.chainRoot():null}getProofChainLength(){return this.proofGate?this.proofGate.length:0}auditWrite(t,e,r,o){if(!this.proofGate){if(this.proofGateEnvChecked||(this.proofGateEnvChecked=!0,process.env.AQE_PROOF_GATE!=="1"))return;this.proofGate=this.loadProofChain()??new A}if(e!==n.PROOF_NS)try{this.proofGate.admit({op:t,ns:e,key:r,value:o}),this.persistProofChain()}catch(s){U.warn(`proof-gate audit skipped for ${e}/${r}: ${O(s)}`)}}persistProofChain(){!this.proofGate||!this.db||this.db.prepare(`
762
762
  INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at)
763
763
  VALUES (?, ?, ?, NULL)
764
- `).run(n.PROOF_KEY,n.PROOF_NS,JSON.stringify(this.proofGate.toJSON()))}loadProofChain(){if(!this.db)return null;let e=this.db.prepare(`
764
+ `).run(n.PROOF_KEY,n.PROOF_NS,JSON.stringify(this.proofGate.toJSON()))}loadProofChain(){if(!this.db)return null;let t=this.db.prepare(`
765
765
  SELECT value FROM kv_store WHERE key = ? AND namespace = ?
766
- `).get(n.PROOF_KEY,n.PROOF_NS);if(!e)return null;try{return A.fromJSON(JSON.parse(e.value))}catch(t){return U.warn(`proof-gate chain failed to load (starting fresh): ${O(t)}`),null}}async vectorStore(e,t,r="default",i){this.ensureInitialized();let o=this.floatArrayToBuffer(t),E=i?JSON.stringify(i):null;this.db.prepare(`
766
+ `).get(n.PROOF_KEY,n.PROOF_NS);if(!t)return null;try{return A.fromJSON(JSON.parse(t.value))}catch(e){return U.warn(`proof-gate chain failed to load (starting fresh): ${O(e)}`),null}}async vectorStore(t,e,r="default",o){this.ensureInitialized();let s=this.floatArrayToBuffer(e),T=o?JSON.stringify(o):null;this.db.prepare(`
767
767
  INSERT OR REPLACE INTO vectors (id, namespace, embedding, dimensions, metadata, updated_at)
768
768
  VALUES (?, ?, ?, ?, ?, datetime('now'))
769
- `).run(e,r,o,t.length,E),this.vectorIndex.add(e,t)}async vectorGet(e){this.ensureInitialized();let t=this.db.prepare(`
769
+ `).run(t,r,s,e.length,T),this.vectorIndex.add(t,e)}async vectorGet(t){this.ensureInitialized();let e=this.db.prepare(`
770
770
  SELECT embedding, dimensions, metadata FROM vectors WHERE id = ?
771
- `).get(e);if(t)return{embedding:this.bufferToFloatArray(t.embedding,t.dimensions),metadata:t.metadata?I(t.metadata):void 0}}async vectorDelete(e){this.ensureInitialized();let t=this.db.prepare("DELETE FROM vectors WHERE id = ?").run(e);return this.vectorIndex.remove(e),t.changes>0}async vectorSearch(e,t=10,r,i){if(this.ensureInitialized(),!Number.isInteger(t)||t<=0)return[];this.vectorsLoaded||await this.loadVectorIndex();let o=this.vectorIndex.size(),E=!!(r||i),c=Math.min(o,Math.max(E?t*2:t,1)),T=r?this.db.prepare("SELECT id, namespace, metadata FROM vectors WHERE namespace = ?").all(r):void 0,u=T?new Map(T.map(g=>[g.id,g])):void 0,l=this.vectorIndex.search(e,c);for(;E&&l.filter(g=>(!i||g.id.startsWith(i))&&(!u||u.has(g.id))).length<t&&c<o;)c=Math.min(o,c*2),l=this.vectorIndex.search(e,c);if(l.length===0)return[];let m=u??(()=>{let g=l.map(h=>h.id),_=g.map(()=>"?").join(","),L=this.db.prepare(`SELECT id, namespace, metadata FROM vectors WHERE id IN (${_})`).all(...g);return new Map(L.map(h=>[h.id,h]))})();if(r){let g=[];for(let _ of l){let L=m.get(_.id);if(L&&L.namespace===r&&(!i||_.id.startsWith(i))&&(g.push({id:_.id,score:_.score,metadata:L.metadata?I(L.metadata):void 0}),g.length>=t))break}return g}return(i?l.filter(g=>g.id.startsWith(i)).slice(0,t):l.slice(0,t)).map(g=>{let _=m.get(g.id);return{id:g.id,score:g.score,metadata:_?.metadata?I(_.metadata):void 0}})}migrateToV13EmbeddingSpace(){let e=this.db;if(!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_pattern_embeddings'").get()){e.exec(Me);return}e.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(i=>i.name==="space_id")||e.exec("ALTER TABLE qe_pattern_embeddings ADD COLUMN space_id TEXT"),e.exec("CREATE INDEX IF NOT EXISTS idx_qe_pattern_embeddings_space ON qe_pattern_embeddings(space_id)")}getVectorSearchProvenance(){return this.vectorIndex.getProvider().isNativeBackend()?{backend:"native-hnsw",indexType:"hnsw",approximate:!0,estimatedRecall:this.vectorIndex.recall(),qualifiedMaxK:pe.EF_SEARCH}:{backend:"progressive-hnsw",indexType:"flat",approximate:!1,estimatedRecall:1}}async vectorCount(e){return this.ensureInitialized(),e?this.db.prepare("SELECT COUNT(*) as count FROM vectors WHERE namespace = ?").get(e).count:this.db.prepare("SELECT COUNT(*) as count FROM vectors").get().count}queryCount(e){this.ensureInitialized();let t=v(e);return this.db.prepare(`SELECT COUNT(*) as c FROM ${t}`).get().c}initializeCRDT(e){if(this.crdtStore){console.warn("[UnifiedMemory] CRDT store already initialized");return}this.crdtStore=Ee({nodeId:e}),console.log(`[UnifiedMemory] CRDT store initialized for node: ${e}`)}getCRDTStore(){return this.crdtStore}isCRDTInitialized(){return this.crdtStore!==null}async crdtSet(e,t,r="crdt"){this.ensureInitialized(),this.crdtStore&&this.crdtStore.setRegister(e,t),await this.kvSet(e,t,r)}async crdtGet(e,t="crdt"){if(this.crdtStore){let r=this.crdtStore.getRegister(e);if(r)return r.get()}return this.kvGet(e,t)}crdtIncrement(e,t=1){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");let r=this.crdtStore.getCounter(e);r||(this.crdtStore.incrementCounter(e,0),r=this.crdtStore.getCounter(e));for(let i=0;i<t;i++)this.crdtStore.incrementCounter(e)}crdtGetCounter(e){return this.crdtStore?this.crdtStore.getCounter(e)?.get()??0:0}crdtAddToSet(e,t){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.addToSet(e,t)}crdtRemoveFromSet(e,t){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.removeFromSet(e,t)}crdtGetSet(e){if(!this.crdtStore)return new Set;let t=this.crdtStore.getSet(e);return new Set(t.values())}crdtGetState(){return this.crdtStore?this.crdtStore.getState():null}crdtGetDelta(e){return this.crdtStore?this.crdtStore.getDelta(e??0):null}crdtMerge(e){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.applyState(e)}crdtApplyDelta(e){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.applyDelta(e)}async crdtPersist(){if(!this.crdtStore)return;let e=this.crdtStore.getState();await this.kvSet("__crdt_state__",e,"crdt-internal")}async crdtRestore(){if(!this.crdtStore)return!1;let e=await this.kvGet("__crdt_state__","crdt-internal");return e?(this.crdtStore.applyState(e),!0):!1}getDatabase(){if(!this.db||!this.initialized)throw new Error("UnifiedMemoryManager not initialized");return this.db}isInitialized(){return this.initialized}getDbPath(){return this.config.dbPath}prepare(e,t){if(!this.db)throw new Error("Database not initialized");let r=this.preparedStatements.get(e);return r||(r=this.db.prepare(t),this.preparedStatements.set(e,r)),r}transaction(e){if(!this.db)throw new Error("Database not initialized");return this.db.transaction(e)()}getStats(){if(!this.db)throw new Error("Database not initialized");let e=qe.map(i=>{try{let o=this.db.prepare(`SELECT COUNT(*) as count FROM ${i}`).get();return{name:i,rowCount:o.count}}catch(o){return U.debug("Table row count query failed",{table:i,error:o instanceof Error?o.message:String(o)}),{name:i,rowCount:0}}}),t=0,r=0;try{f.existsSync(this.config.dbPath)&&(t=f.statSync(this.config.dbPath).size);let i=this.config.dbPath+"-wal";f.existsSync(i)&&(r=f.statSync(i).size)}catch(i){console.debug("[UnifiedMemory] File stat error:",i instanceof Error?i.message:i)}return{tables:e,fileSize:t,walSize:r,vectorIndexSize:this.vectorIndex.size()}}vacuum(){if(!this.db)throw new Error("Database not initialized");this.db.exec("VACUUM")}checkpoint(){if(!this.db)throw new Error("Database not initialized");this.db.pragma("wal_checkpoint(TRUNCATE)")}close(){this.db&&(this.preparedStatements.clear(),this.vectorIndex.clear(),this.db.close(),this.db=null,this.initialized=!1,console.log("[UnifiedMemory] Database closed"))}ensureInitialized(){if(!this.initialized||!this.db)throw new Error("UnifiedMemoryManager not initialized. Call initialize() first.")}floatArrayToBuffer(e){let t=Buffer.alloc(e.length*4);for(let r=0;r<e.length;r++)t.writeFloatLE(e[r],r*4);return t}bufferToFloatArray(e,t){let r=new Float32Array(e.buffer,e.byteOffset,t);return Array.from(r)}};Ve=!1;It()});export{J as a,v as b,bt as c,Z as d,ve as e,ee as f,re as g,se as h,He as i,We as j,Je as k,Ze as l,et as m,D as n,tt as o,Rt as p,Lt as q,Ct as r,Ot as s};
771
+ `).get(t);if(e)return{embedding:this.bufferToFloatArray(e.embedding,e.dimensions),metadata:e.metadata?I(e.metadata):void 0}}async vectorDelete(t){this.ensureInitialized();let e=this.db.prepare("DELETE FROM vectors WHERE id = ?").run(t);return this.vectorIndex.remove(t),e.changes>0}async vectorSearch(t,e=10,r,o){if(this.ensureInitialized(),!Number.isInteger(e)||e<=0)return[];this.vectorsLoaded||await this.loadVectorIndex();let s=this.vectorIndex.size(),T=!!(r||o),c=Math.min(s,Math.max(T?e*2:e,1)),g=r?this.db.prepare("SELECT id, namespace, metadata FROM vectors WHERE namespace = ?").all(r):void 0,u=g?new Map(g.map(l=>[l.id,l])):void 0,d=this.vectorIndex.search(t,c);for(;T&&d.filter(l=>(!o||l.id.startsWith(o))&&(!u||u.has(l.id))).length<e&&c<s;)c=Math.min(s,c*2),d=this.vectorIndex.search(t,c);if(d.length===0)return[];let m=u??(()=>{let l=d.map(h=>h.id),_=l.map(()=>"?").join(","),L=this.db.prepare(`SELECT id, namespace, metadata FROM vectors WHERE id IN (${_})`).all(...l);return new Map(L.map(h=>[h.id,h]))})();if(r){let l=[];for(let _ of d){let L=m.get(_.id);if(L&&L.namespace===r&&(!o||_.id.startsWith(o))&&(l.push({id:_.id,score:_.score,metadata:L.metadata?I(L.metadata):void 0}),l.length>=e))break}return l}return(o?d.filter(l=>l.id.startsWith(o)).slice(0,e):d.slice(0,e)).map(l=>{let _=m.get(l.id);return{id:l.id,score:l.score,metadata:_?.metadata?I(_.metadata):void 0}})}migrateToV13EmbeddingSpace(){let t=this.db;if(!t.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_pattern_embeddings'").get()){t.exec(Me);return}t.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(o=>o.name==="space_id")||t.exec("ALTER TABLE qe_pattern_embeddings ADD COLUMN space_id TEXT"),t.exec("CREATE INDEX IF NOT EXISTS idx_qe_pattern_embeddings_space ON qe_pattern_embeddings(space_id)")}getVectorSearchProvenance(){return this.vectorIndex.getProvider().isNativeBackend()?{backend:"native-hnsw",indexType:"hnsw",approximate:!0,estimatedRecall:this.vectorIndex.recall(),qualifiedMaxK:pe.EF_SEARCH}:{backend:"progressive-hnsw",indexType:"flat",approximate:!1,estimatedRecall:1}}async vectorCount(t){return this.ensureInitialized(),t?this.db.prepare("SELECT COUNT(*) as count FROM vectors WHERE namespace = ?").get(t).count:this.db.prepare("SELECT COUNT(*) as count FROM vectors").get().count}queryCount(t){this.ensureInitialized();let e=v(t);return this.db.prepare(`SELECT COUNT(*) as c FROM ${e}`).get().c}initializeCRDT(t){if(this.crdtStore){console.warn("[UnifiedMemory] CRDT store already initialized");return}this.crdtStore=Ee({nodeId:t}),console.log(`[UnifiedMemory] CRDT store initialized for node: ${t}`)}getCRDTStore(){return this.crdtStore}isCRDTInitialized(){return this.crdtStore!==null}async crdtSet(t,e,r="crdt"){this.ensureInitialized(),this.crdtStore&&this.crdtStore.setRegister(t,e),await this.kvSet(t,e,r)}async crdtGet(t,e="crdt"){if(this.crdtStore){let r=this.crdtStore.getRegister(t);if(r)return r.get()}return this.kvGet(t,e)}crdtIncrement(t,e=1){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");let r=this.crdtStore.getCounter(t);r||(this.crdtStore.incrementCounter(t,0),r=this.crdtStore.getCounter(t));for(let o=0;o<e;o++)this.crdtStore.incrementCounter(t)}crdtGetCounter(t){return this.crdtStore?this.crdtStore.getCounter(t)?.get()??0:0}crdtAddToSet(t,e){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.addToSet(t,e)}crdtRemoveFromSet(t,e){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.removeFromSet(t,e)}crdtGetSet(t){if(!this.crdtStore)return new Set;let e=this.crdtStore.getSet(t);return new Set(e.values())}crdtGetState(){return this.crdtStore?this.crdtStore.getState():null}crdtGetDelta(t){return this.crdtStore?this.crdtStore.getDelta(t??0):null}crdtMerge(t){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.applyState(t)}crdtApplyDelta(t){if(!this.crdtStore)throw new Error("CRDT store not initialized. Call initializeCRDT first.");this.crdtStore.applyDelta(t)}async crdtPersist(){if(!this.crdtStore)return;let t=this.crdtStore.getState();await this.kvSet("__crdt_state__",t,"crdt-internal")}async crdtRestore(){if(!this.crdtStore)return!1;let t=await this.kvGet("__crdt_state__","crdt-internal");return t?(this.crdtStore.applyState(t),!0):!1}getDatabase(){if(!this.db||!this.initialized)throw new Error("UnifiedMemoryManager not initialized");return this.db}isInitialized(){return this.initialized}getDbPath(){return this.config.dbPath}prepare(t,e){if(!this.db)throw new Error("Database not initialized");let r=this.preparedStatements.get(t);return r||(r=this.db.prepare(e),this.preparedStatements.set(t,r)),r}transaction(t){if(!this.db)throw new Error("Database not initialized");return this.db.transaction(t)()}getStats(){if(!this.db)throw new Error("Database not initialized");let t=qe.map(o=>{try{let s=this.db.prepare(`SELECT COUNT(*) as count FROM ${o}`).get();return{name:o,rowCount:s.count}}catch(s){return U.debug("Table row count query failed",{table:o,error:s instanceof Error?s.message:String(s)}),{name:o,rowCount:0}}}),e=0,r=0;try{N.existsSync(this.config.dbPath)&&(e=N.statSync(this.config.dbPath).size);let o=this.config.dbPath+"-wal";N.existsSync(o)&&(r=N.statSync(o).size)}catch(o){console.debug("[UnifiedMemory] File stat error:",o instanceof Error?o.message:o)}return{tables:t,fileSize:e,walSize:r,vectorIndexSize:this.vectorIndex.size()}}vacuum(){if(!this.db)throw new Error("Database not initialized");this.db.exec("VACUUM")}checkpoint(){if(!this.db)throw new Error("Database not initialized");this.db.pragma("wal_checkpoint(TRUNCATE)")}close(){this.db&&(this.preparedStatements.clear(),this.vectorIndex.clear(),this.db.close(),this.db=null,this.initialized=!1,console.log("[UnifiedMemory] Database closed"))}ensureInitialized(){if(!this.initialized||!this.db)throw new Error("UnifiedMemoryManager not initialized. Call initialize() first.")}floatArrayToBuffer(t){let e=Buffer.alloc(t.length*4);for(let r=0;r<t.length;r++)e.writeFloatLE(t[r],r*4);return e}bufferToFloatArray(t,e){let r=new Float32Array(t.buffer,t.byteOffset,e);return Array.from(r)}};Ve=!1;It()});export{J as a,v as b,bt as c,Z as d,ve as e,ee as f,re as g,se as h,He as i,We as j,Je as k,Ze as l,et as m,D as n,tt as o,Rt as p,Lt as q,Ct as r,Ot as s};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
2
- import{b as k,c as p}from"./chunk-YTRGMILO.js";p();import{generateKeyPairSync as g,createPrivateKey as v,createPublicKey as I,sign as m,verify as D,createHash as b}from"crypto";import{existsSync as d,mkdirSync as P,writeFileSync as y,readFileSync as o,readdirSync as w}from"fs";import{join as n}from"path";var f=class{keys=new Map;activeKeyId=null;keyDir;constructor(e={}){this.keyDir=e.keyDir??null,this.keyDir&&this.loadFromDisk(),e.autoGenerate!==!1&&this.keys.size===0&&this.generateKeyPair()}generateKeyPair(){let{publicKey:e,privateKey:i}=g("ed25519"),r=e.export({type:"spki",format:"der"}),t=b("sha256").update(r).digest("hex").slice(0,16),s={keyId:t,publicKey:e,privateKey:i,createdAt:new Date().toISOString(),retired:!1};return this.keys.set(t,s),this.activeKeyId=t,this.keyDir&&(this.saveKeyPairToDisk(s),this.saveActiveKeyId()),{keyId:t,publicKey:r}}sign(e,i){let r=i??this.activeKeyId;if(!r)throw new Error("No active key available for signing");let t=this.keys.get(r);if(!t)throw new Error(`Key not found: ${r}`);return{signature:m(null,e,t.privateKey),keyId:r}}verify(e,i,r){let t=this.keys.get(r);if(!t)return!1;try{return D(null,e,t.publicKey,i)}catch{return!1}}rotateKey(){let e=this.activeKeyId;if(!e)throw new Error("No active key to rotate");let i=this.keys.get(e);i&&(i.retired=!0,this.keyDir&&this.saveKeyPairToDisk(i));let{keyId:r}=this.generateKeyPair();return{oldKeyId:e,newKeyId:r}}getActiveKeyId(){if(!this.activeKeyId)throw new Error("No active key");return this.activeKeyId}hasKey(e){return this.keys.has(e)}getKeyCount(){return this.keys.size}saveKeyPairToDisk(e){if(!this.keyDir)return;d(this.keyDir)||P(this.keyDir,{recursive:!0});let i=n(this.keyDir,e.keyId);y(`${i}.pub.pem`,e.publicKey.export({type:"spki",format:"pem"}),"utf-8"),y(`${i}.key.pem`,e.privateKey.export({type:"pkcs8",format:"pem"}),{encoding:"utf-8",mode:384}),y(`${i}.meta.json`,JSON.stringify({keyId:e.keyId,createdAt:e.createdAt,retired:e.retired}),"utf-8")}saveActiveKeyId(){!this.keyDir||!this.activeKeyId||y(n(this.keyDir,"active-key-id"),this.activeKeyId,"utf-8")}loadFromDisk(){if(!this.keyDir||!d(this.keyDir))return;let i=w(this.keyDir).filter(t=>t.endsWith(".meta.json"));for(let t of i)try{let s=JSON.parse(o(n(this.keyDir,t),"utf-8")),a=n(this.keyDir,s.keyId),l=o(`${a}.pub.pem`,"utf-8"),K=o(`${a}.key.pem`,"utf-8"),h={keyId:s.keyId,publicKey:I(l),privateKey:v(K),createdAt:s.createdAt,retired:s.retired};this.keys.set(s.keyId,h)}catch{}let r=n(this.keyDir,"active-key-id");if(d(r)){let t=o(r,"utf-8").trim();this.keys.has(t)&&(this.activeKeyId=t)}if(!this.activeKeyId){let t=[...this.keys.values()].filter(s=>!s.retired).sort((s,a)=>a.createdAt.localeCompare(s.createdAt));t.length>0&&(this.activeKeyId=t[0].keyId)}}},c=null;function F(){if(!c){let u=n(k(),".agentic-qe","witness-keys");c=new f({keyDir:u})}return c}function O(){c=null}export{f as a,F as b,O as c};
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.4");process.exit(0)}
2
+ import{b as k,c as p}from"./chunk-O7TMY4GS.js";p();import{generateKeyPairSync as g,createPrivateKey as v,createPublicKey as I,sign as m,verify as D,createHash as b}from"crypto";import{existsSync as d,mkdirSync as P,writeFileSync as y,readFileSync as o,readdirSync as w}from"fs";import{join as n}from"path";var f=class{keys=new Map;activeKeyId=null;keyDir;constructor(e={}){this.keyDir=e.keyDir??null,this.keyDir&&this.loadFromDisk(),e.autoGenerate!==!1&&this.keys.size===0&&this.generateKeyPair()}generateKeyPair(){let{publicKey:e,privateKey:i}=g("ed25519"),r=e.export({type:"spki",format:"der"}),t=b("sha256").update(r).digest("hex").slice(0,16),s={keyId:t,publicKey:e,privateKey:i,createdAt:new Date().toISOString(),retired:!1};return this.keys.set(t,s),this.activeKeyId=t,this.keyDir&&(this.saveKeyPairToDisk(s),this.saveActiveKeyId()),{keyId:t,publicKey:r}}sign(e,i){let r=i??this.activeKeyId;if(!r)throw new Error("No active key available for signing");let t=this.keys.get(r);if(!t)throw new Error(`Key not found: ${r}`);return{signature:m(null,e,t.privateKey),keyId:r}}verify(e,i,r){let t=this.keys.get(r);if(!t)return!1;try{return D(null,e,t.publicKey,i)}catch{return!1}}rotateKey(){let e=this.activeKeyId;if(!e)throw new Error("No active key to rotate");let i=this.keys.get(e);i&&(i.retired=!0,this.keyDir&&this.saveKeyPairToDisk(i));let{keyId:r}=this.generateKeyPair();return{oldKeyId:e,newKeyId:r}}getActiveKeyId(){if(!this.activeKeyId)throw new Error("No active key");return this.activeKeyId}hasKey(e){return this.keys.has(e)}getKeyCount(){return this.keys.size}saveKeyPairToDisk(e){if(!this.keyDir)return;d(this.keyDir)||P(this.keyDir,{recursive:!0});let i=n(this.keyDir,e.keyId);y(`${i}.pub.pem`,e.publicKey.export({type:"spki",format:"pem"}),"utf-8"),y(`${i}.key.pem`,e.privateKey.export({type:"pkcs8",format:"pem"}),{encoding:"utf-8",mode:384}),y(`${i}.meta.json`,JSON.stringify({keyId:e.keyId,createdAt:e.createdAt,retired:e.retired}),"utf-8")}saveActiveKeyId(){!this.keyDir||!this.activeKeyId||y(n(this.keyDir,"active-key-id"),this.activeKeyId,"utf-8")}loadFromDisk(){if(!this.keyDir||!d(this.keyDir))return;let i=w(this.keyDir).filter(t=>t.endsWith(".meta.json"));for(let t of i)try{let s=JSON.parse(o(n(this.keyDir,t),"utf-8")),a=n(this.keyDir,s.keyId),l=o(`${a}.pub.pem`,"utf-8"),K=o(`${a}.key.pem`,"utf-8"),h={keyId:s.keyId,publicKey:I(l),privateKey:v(K),createdAt:s.createdAt,retired:s.retired};this.keys.set(s.keyId,h)}catch{}let r=n(this.keyDir,"active-key-id");if(d(r)){let t=o(r,"utf-8").trim();this.keys.has(t)&&(this.activeKeyId=t)}if(!this.activeKeyId){let t=[...this.keys.values()].filter(s=>!s.retired).sort((s,a)=>a.createdAt.localeCompare(s.createdAt));t.length>0&&(this.activeKeyId=t[0].keyId)}}},c=null;function F(){if(!c){let u=n(k(),".agentic-qe","witness-keys");c=new f({keyDir:u})}return c}function O(){c=null}export{f as a,F as b,O as c};
@@ -1,3 +1,3 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.15.3");process.exit(0)}
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.4");process.exit(0)}
2
2
  import{readFileSync as R,existsSync as v,readdirSync as y}from"fs";import{join as S}from"path";var M=100*1024,b=/mcp__([a-z][a-z0-9-]*)__([a-z][a-z0-9_]*)/g,x=/^```/;function w(e,r){let n=e.length>M?e.slice(0,M):e,o=[],i=n.split(`
3
3
  `),a=!1;for(let s=0;s<i.length;s++){let p=i[s];if(x.test(p.trim())){a=!a;continue}let l,c=new RegExp(b.source,"g");for(;(l=c.exec(p))!==null;){let t=l[1],g=l[2],f=l[0],d=a?"code-block":"prose",u=d==="prose"?.9:.5;o.push({toolName:f,serverName:t,actionName:g,confidence:u,context:d,lineNumber:s+1})}}return o}function E(e){let r=new Map;for(let n of e)r.has(n.serverName)||r.set(n.serverName,[]),r.get(n.serverName).push(n);return r}function N(e){let r=[],n=[S(e,".claude","mcp.json"),S(e,".mcp.json")],o=process.env.HOME||process.env.USERPROFILE||"";o&&n.push(S(o,".claude","mcp.json"));for(let i of n)if(v(i))try{let a=R(i,"utf-8"),s=JSON.parse(a);s.mcpServers&&typeof s.mcpServers=="object"&&r.push(...Object.keys(s.mcpServers))}catch{}return[...new Set(r)]}function h(e,r,n){if(!v(e))return{agentName:r,references:[],requiredServers:[],availableServers:n,missingServers:[],warnings:[`Agent file not found: ${e}`],allSatisfied:!0};let o;try{o=R(e,"utf-8")}catch{return{agentName:r,references:[],requiredServers:[],availableServers:n,missingServers:[],warnings:[`Failed to read agent file: ${e}`],allSatisfied:!0}}let i=w(o,r),a=E(i),s=[...a.keys()],p=new Set(n),l=s.filter(t=>!p.has(t)),c=[];for(let t of l){let g=a.get(t)||[],f=Math.max(...g.map(m=>m.confidence)),d=g.length,u=[...new Set(g.map(m=>m.context))].join(", ");c.push(`[advisory] Agent "${r}" references MCP server "${t}" (${d} tool ref${d>1?"s":""}, confidence: ${f}, context: ${u}) but server is not configured. Agent may have reduced capabilities.`)}return{agentName:r,references:i,requiredServers:s,availableServers:n,missingServers:l,warnings:c,allSatisfied:l.length===0}}function C(e,r){let n=Date.now(),o=[],i=[],a=N(r);if(!v(e))return{agents:[],totalServersReferenced:0,globalMissingServers:[],agentsWithMissingDeps:[],warnings:[`Agents directory not found: ${e}`],durationMs:Date.now()-n};try{let c=y(e);for(let g of c){if(!g.endsWith(".md"))continue;let f=g.replace(".md",""),d=S(e,g),u=h(d,f,a);o.push(u),i.push(...u.warnings)}let t=S(e,"subagents");if(v(t)){let g=y(t);for(let f of g){if(!f.endsWith(".md"))continue;let d=f.replace(".md",""),u=S(t,f),m=h(u,d,a);o.push(m),i.push(...m.warnings)}}}catch(c){i.push(`Error scanning agents directory: ${c.message}`)}let s=new Set,p=new Set,l=[];for(let c of o){for(let t of c.requiredServers)s.add(t);for(let t of c.missingServers)p.add(t);c.missingServers.length>0&&l.push(c.agentName)}return{agents:o,totalServersReferenced:s.size,globalMissingServers:[...p],agentsWithMissingDeps:l,warnings:i,durationMs:Date.now()-n}}export{N as a,C as b};