agentic-qe 3.15.12 → 3.15.14

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 (506) hide show
  1. package/.claude/helpers/brain-checkpoint.cjs +124 -5
  2. package/.claude/skills/skills-manifest.json +1 -1
  3. package/CHANGELOG.md +196 -0
  4. package/assets/skills/skills-manifest.json +1 -1
  5. package/dist/cli/bundle.js +6 -6
  6. package/dist/cli/chunks/adapter-23KA2YW7.js +2 -0
  7. package/dist/cli/chunks/{agent-booster-wasm-5VZCKTIJ.js → agent-booster-wasm-2DLAEZK6.js} +2 -2
  8. package/dist/cli/chunks/{agent-handler-K3C6CQCD.js → agent-handler-P3IY7XEE.js} +2 -2
  9. package/dist/cli/chunks/{agent-memory-branch-NVFQ25WS.js → agent-memory-branch-WWKC2H3G.js} +2 -2
  10. package/dist/cli/chunks/aqe-learning-engine-MUICAXW5.js +2 -0
  11. package/dist/cli/chunks/{arena-TSZVDSXS.js → arena-4BMFF6BS.js} +4 -4
  12. package/dist/cli/chunks/{arena-QGWIJADQ.js → arena-EIV5OALF.js} +2 -2
  13. package/dist/cli/chunks/{audit-KIEE2SHJ.js → audit-DNTI453H.js} +3 -3
  14. package/dist/cli/chunks/base-XPWGYDKD.js +2 -0
  15. package/dist/cli/chunks/{better-sqlite3-BNB32NW3.js → better-sqlite3-TQBQGNC6.js} +2 -2
  16. package/dist/cli/chunks/brain-handler-HY57CNAO.js +95 -0
  17. package/dist/cli/chunks/{branch-enumerator-LZ7UXKAY.js → branch-enumerator-THPMZPHQ.js} +2 -2
  18. package/dist/cli/chunks/{browser-VDHAW4RK.js → browser-O6JJOZCK.js} +2 -2
  19. package/dist/cli/chunks/browser-workflow-UMQVBVGK.js +2 -0
  20. package/dist/cli/chunks/{chunk-4PU5GTZW.js → chunk-2HPNGK7A.js} +2 -2
  21. package/dist/cli/chunks/{chunk-MCPXNUDK.js → chunk-2IJO3657.js} +2 -2
  22. package/dist/cli/chunks/{chunk-4Y6OEBJZ.js → chunk-2QLE6NDW.js} +1 -1
  23. package/dist/cli/chunks/{chunk-DZGPUGUG.js → chunk-2UZBLC5H.js} +2 -2
  24. package/dist/cli/chunks/{chunk-5A66EGEW.js → chunk-2W5MQDHM.js} +2 -2
  25. package/dist/cli/chunks/{chunk-JRYWLOBD.js → chunk-3FITMWWJ.js} +2 -2
  26. package/dist/cli/chunks/{chunk-RCOLPF3B.js → chunk-3TF27MG5.js} +2 -2
  27. package/dist/cli/chunks/{chunk-KGA7VAI4.js → chunk-3XACRXBY.js} +2 -2
  28. package/dist/cli/chunks/{chunk-SQVZ3TRU.js → chunk-43XHGWYH.js} +2 -2
  29. package/dist/cli/chunks/{chunk-JR6CUKAI.js → chunk-4RPBODN5.js} +2 -2
  30. package/dist/cli/chunks/{chunk-C3YOVASQ.js → chunk-4T7XV5KQ.js} +1 -1
  31. package/dist/cli/chunks/{chunk-N7O3PF6Y.js → chunk-4WLIOPHX.js} +2 -2
  32. package/dist/cli/chunks/{chunk-PGSJBXTD.js → chunk-52KOPIMI.js} +2 -2
  33. package/dist/cli/chunks/{chunk-4KUOYDY2.js → chunk-56NSE3LJ.js} +2 -2
  34. package/dist/cli/chunks/{chunk-3IU4LDZR.js → chunk-57DRT6UA.js} +2 -2
  35. package/dist/cli/chunks/{chunk-2JYUA27M.js → chunk-57FX3GP6.js} +1 -1
  36. package/dist/cli/chunks/{chunk-7QEUHNKO.js → chunk-5PLBQZ5J.js} +1 -1
  37. package/dist/cli/chunks/{chunk-VF7FTD64.js → chunk-5Y7UFHJD.js} +1 -1
  38. package/dist/cli/chunks/{chunk-7JFDLL2F.js → chunk-5Z4MO2F3.js} +1 -1
  39. package/dist/cli/chunks/chunk-65EE2EST.js +8 -0
  40. package/dist/cli/chunks/{chunk-66PXR3NI.js → chunk-6NIGSY5L.js} +2 -2
  41. package/dist/cli/chunks/chunk-6O63ZTVX.js +3 -0
  42. package/dist/cli/chunks/{chunk-ZYOYR3UR.js → chunk-6OI5SK7M.js} +1 -1
  43. package/dist/cli/chunks/{chunk-5TAEW5OV.js → chunk-6P4Q4RTC.js} +1 -1
  44. package/dist/cli/chunks/{chunk-W5HQIYQU.js → chunk-7724KXM2.js} +3 -3
  45. package/dist/cli/chunks/{chunk-A2JCRXTK.js → chunk-7MISCSL5.js} +2 -2
  46. package/dist/cli/chunks/{chunk-OHVYINGM.js → chunk-7MUO4DEH.js} +3 -3
  47. package/dist/cli/chunks/{chunk-QCPVUNN3.js → chunk-7QUSNBAA.js} +2 -2
  48. package/dist/cli/chunks/{chunk-YUA6ZKKY.js → chunk-7SQTLUEN.js} +2 -2
  49. package/dist/cli/chunks/{chunk-CA5UNWQF.js → chunk-7T6L3LFN.js} +2 -2
  50. package/dist/cli/chunks/{chunk-UREDS662.js → chunk-7TH4PJSU.js} +2 -2
  51. package/dist/cli/chunks/{chunk-TVA5GRIU.js → chunk-7Y3LXH57.js} +2 -2
  52. package/dist/cli/chunks/{chunk-A5Y7DAVQ.js → chunk-A2T56XVL.js} +2 -2
  53. package/dist/cli/chunks/{chunk-ZROAMFX2.js → chunk-AJVLVF7V.js} +2 -2
  54. package/dist/cli/chunks/{chunk-26672ISV.js → chunk-ARRBXCII.js} +2 -2
  55. package/dist/cli/chunks/{chunk-5S4UIDFK.js → chunk-AYLEH2UF.js} +1 -1
  56. package/dist/cli/chunks/{chunk-DRCBRUGN.js → chunk-BBYJBZHG.js} +2 -2
  57. package/dist/cli/chunks/{chunk-BMG2JLSQ.js → chunk-BM3EJLMV.js} +2 -2
  58. package/dist/cli/chunks/{chunk-6QRI3JVE.js → chunk-BNG4J3CE.js} +2 -2
  59. package/dist/cli/chunks/{chunk-EN7GRVEQ.js → chunk-BPDAQB3F.js} +2 -2
  60. package/dist/cli/chunks/{chunk-J7Y7ZBIT.js → chunk-BQJ7CV53.js} +9 -9
  61. package/dist/cli/chunks/{chunk-ADUAJIAU.js → chunk-C3OIBFAA.js} +2 -2
  62. package/dist/cli/chunks/{chunk-4LWMAAWK.js → chunk-CAZM63TP.js} +2 -2
  63. package/dist/cli/chunks/{chunk-UZED4YZ5.js → chunk-CIINJHOX.js} +1 -1
  64. package/dist/cli/chunks/{chunk-C74M4WUI.js → chunk-CPPYZYXC.js} +2 -2
  65. package/dist/cli/chunks/chunk-D3ZZ2NLL.js +62 -0
  66. package/dist/cli/chunks/{chunk-U7ZHDGXG.js → chunk-D5GB5PUU.js} +1 -1
  67. package/dist/cli/chunks/{chunk-HZBXJFGN.js → chunk-DLTB5KCR.js} +2 -2
  68. package/dist/cli/chunks/{chunk-NNBQZR73.js → chunk-DRLSJJIC.js} +2 -2
  69. package/dist/cli/chunks/{chunk-HLGFHHWV.js → chunk-DSQESXL4.js} +2 -2
  70. package/dist/cli/chunks/{chunk-LFBA735S.js → chunk-E2JLAW3U.js} +3 -3
  71. package/dist/cli/chunks/{chunk-PT2NXS43.js → chunk-E3QIQMMN.js} +1 -1
  72. package/dist/cli/chunks/{chunk-35MIUSXQ.js → chunk-E7OR6V3V.js} +2 -2
  73. package/dist/cli/chunks/{chunk-G24SWTAX.js → chunk-E7QTWGPI.js} +413 -413
  74. package/dist/cli/chunks/{chunk-PX5OPXY6.js → chunk-EC65UZ77.js} +1 -1
  75. package/dist/cli/chunks/{chunk-JNXK47OL.js → chunk-EIEEST4T.js} +2 -2
  76. package/dist/cli/chunks/{chunk-2PPSS4JD.js → chunk-FHPNWHY7.js} +2 -2
  77. package/dist/cli/chunks/{chunk-PTBOLBM4.js → chunk-FJOIBZUB.js} +2 -2
  78. package/dist/cli/chunks/{chunk-TXEUVUMO.js → chunk-FTYRPEJS.js} +1 -1
  79. package/dist/cli/chunks/{chunk-ZPVGX4DI.js → chunk-G7HGUQAE.js} +2 -2
  80. package/dist/cli/chunks/{chunk-EF6OERRR.js → chunk-GY4P7KAI.js} +1 -1
  81. package/dist/cli/chunks/{chunk-UUZZXHUF.js → chunk-H3C5FJRH.js} +2 -2
  82. package/dist/cli/chunks/{chunk-L3PV7VXK.js → chunk-H4LYXLAT.js} +1 -1
  83. package/dist/cli/chunks/{chunk-5Z23ZMXZ.js → chunk-HAYKLXCT.js} +63 -61
  84. package/dist/cli/chunks/{chunk-IPA7K556.js → chunk-HEDGFKC5.js} +2 -2
  85. package/dist/cli/chunks/{chunk-BC4T6SCV.js → chunk-HHBF2BZC.js} +4 -4
  86. package/dist/cli/chunks/{chunk-IVTQF55W.js → chunk-HSDWPQQY.js} +3 -3
  87. package/dist/cli/chunks/{chunk-SG2TX72G.js → chunk-HTVGHHX2.js} +2 -2
  88. package/dist/cli/chunks/{chunk-FZJCBSN4.js → chunk-HV43NX4A.js} +2 -2
  89. package/dist/cli/chunks/{chunk-MMEALJ4D.js → chunk-IDBA5GK2.js} +2 -2
  90. package/dist/cli/chunks/{chunk-IA55PFLG.js → chunk-INGXD5IX.js} +2 -2
  91. package/dist/cli/chunks/{chunk-RYHG3I7J.js → chunk-IQRPR4KB.js} +2 -2
  92. package/dist/cli/chunks/{chunk-7OEFBWAG.js → chunk-IRPNEXOU.js} +2 -2
  93. package/dist/cli/chunks/{chunk-P7UFJ6DO.js → chunk-J35JWDJE.js} +1 -1
  94. package/dist/cli/chunks/chunk-J6ASX536.js +2 -0
  95. package/dist/cli/chunks/{chunk-2ASQRBK2.js → chunk-JAOCHPYX.js} +2 -2
  96. package/dist/cli/chunks/{chunk-G3AABG4Q.js → chunk-JB7R77SH.js} +2 -2
  97. package/dist/cli/chunks/{chunk-HSA5IGGW.js → chunk-JI67T6Q2.js} +2 -2
  98. package/dist/cli/chunks/{chunk-ZGROHCOW.js → chunk-JJHLGGPP.js} +1 -1
  99. package/dist/cli/chunks/{chunk-L7NGKANW.js → chunk-JK6PMLQQ.js} +2 -2
  100. package/dist/cli/chunks/{chunk-IL7GQNNE.js → chunk-JO26SG47.js} +2 -2
  101. package/dist/cli/chunks/{chunk-3EWQN37E.js → chunk-JSSU4RIK.js} +2 -2
  102. package/dist/cli/chunks/{chunk-TOWOJGEI.js → chunk-K2SMP4OD.js} +1 -1
  103. package/dist/cli/chunks/{chunk-YVJEUX3I.js → chunk-K7GFYFBO.js} +2 -2
  104. package/dist/cli/chunks/{chunk-DAUEK66C.js → chunk-K7RT6ITZ.js} +1 -1
  105. package/dist/cli/chunks/{chunk-33I2ZP6E.js → chunk-KJ5A54ZH.js} +2 -2
  106. package/dist/cli/chunks/{chunk-W4II6SIH.js → chunk-L5VSLPMW.js} +2 -2
  107. package/dist/cli/chunks/{chunk-NVRYELCY.js → chunk-L752CNG3.js} +3 -3
  108. package/dist/cli/chunks/{chunk-MAJXZYGK.js → chunk-L7PC675Y.js} +1 -1
  109. package/dist/cli/chunks/{chunk-YWWMNTBF.js → chunk-LTGQJYYO.js} +2 -2
  110. package/dist/cli/chunks/{chunk-7DNR4KKR.js → chunk-M2TG7VDK.js} +1 -1
  111. package/dist/cli/chunks/{chunk-2E2QO44T.js → chunk-M5JEA6ZY.js} +2 -2
  112. package/dist/cli/chunks/{chunk-IETBWYHW.js → chunk-MB4UKUBV.js} +2 -2
  113. package/dist/cli/chunks/{chunk-W7H55PY4.js → chunk-MKYOE7NE.js} +1 -1
  114. package/dist/cli/chunks/{chunk-FNUFTWEO.js → chunk-MQXWG55U.js} +3 -3
  115. package/dist/cli/chunks/{chunk-O4QJMANM.js → chunk-MR2OPUSA.js} +1 -1
  116. package/dist/cli/chunks/{chunk-KA5SHLMW.js → chunk-N736GLWZ.js} +2 -2
  117. package/dist/cli/chunks/{chunk-NV74SICL.js → chunk-NHEG2DLN.js} +2 -2
  118. package/dist/cli/chunks/chunk-NKOLILT7.js +86 -0
  119. package/dist/cli/chunks/{chunk-KJDI5CHX.js → chunk-NPCXGX7N.js} +2 -2
  120. package/dist/cli/chunks/{chunk-2IVE5AR3.js → chunk-NZQYJCO6.js} +1 -1
  121. package/dist/cli/chunks/{chunk-4SA7M34P.js → chunk-O2AAYJUV.js} +1 -1
  122. package/dist/cli/chunks/{chunk-ULCW6IVQ.js → chunk-O32BFQV4.js} +2 -2
  123. package/dist/cli/chunks/{chunk-JOWUS2X5.js → chunk-O3ERGUXH.js} +1 -1
  124. package/dist/cli/chunks/{chunk-BYRCB5JT.js → chunk-O5CEL447.js} +2 -2
  125. package/dist/cli/chunks/{chunk-CPIBIR3X.js → chunk-O756AOUX.js} +2 -2
  126. package/dist/cli/chunks/{chunk-TSOQ2QLT.js → chunk-OCN53CCK.js} +2 -2
  127. package/dist/cli/chunks/{chunk-YLKIXEPP.js → chunk-OGEIHS76.js} +1 -1
  128. package/dist/cli/chunks/{chunk-ICKUINKD.js → chunk-OLUOVNUF.js} +2 -2
  129. package/dist/cli/chunks/{chunk-5ADXFUMO.js → chunk-P2TPH3TC.js} +2 -2
  130. package/dist/cli/chunks/{chunk-SBHM5X2S.js → chunk-PCQZIAXB.js} +2 -2
  131. package/dist/cli/chunks/{chunk-CDA5Z74H.js → chunk-PGN4TARY.js} +2 -2
  132. package/dist/cli/chunks/{chunk-P5E26N2X.js → chunk-PNRPVQGI.js} +2 -2
  133. package/dist/cli/chunks/{chunk-23PQF7NN.js → chunk-PWQWKYBG.js} +1 -1
  134. package/dist/cli/chunks/{chunk-T4EN5VVK.js → chunk-QNQE3EOH.js} +2 -2
  135. package/dist/cli/chunks/chunk-QP2HLKTS.js +2 -0
  136. package/dist/cli/chunks/{chunk-7TA5MUPW.js → chunk-QP6GL3O5.js} +1 -1
  137. package/dist/cli/chunks/{chunk-GKFV6CUD.js → chunk-QUZ745UQ.js} +2 -2
  138. package/dist/cli/chunks/{chunk-INZARYUD.js → chunk-R5RRWLRI.js} +2 -2
  139. package/dist/cli/chunks/{chunk-VZBC6DP7.js → chunk-RE6JTSDM.js} +1 -1
  140. package/dist/cli/chunks/{chunk-JGIJPDGD.js → chunk-TOJF3ZG4.js} +2 -2
  141. package/dist/cli/chunks/{chunk-WLRU6ESI.js → chunk-TSP6SU5V.js} +2 -2
  142. package/dist/cli/chunks/{chunk-6E6HB4N4.js → chunk-TW6Z6W4X.js} +4 -4
  143. package/dist/cli/chunks/{chunk-ENGL7FIJ.js → chunk-TWOV3I3A.js} +1 -1
  144. package/dist/cli/chunks/chunk-U4TML2VD.js +3 -0
  145. package/dist/cli/chunks/{chunk-O3IM4WRZ.js → chunk-U6IOQKCT.js} +2 -2
  146. package/dist/cli/chunks/{chunk-SPC4RBLF.js → chunk-UDSB3XCG.js} +2 -2
  147. package/dist/cli/chunks/{chunk-URSTP3WI.js → chunk-UFP7SN5V.js} +2 -2
  148. package/dist/cli/chunks/{chunk-MYF5CNGV.js → chunk-UMHFTQTR.js} +2 -2
  149. package/dist/cli/chunks/{chunk-65TH6RPD.js → chunk-UNYTHZDZ.js} +1 -1
  150. package/dist/cli/chunks/{chunk-FAGKBOX2.js → chunk-UPWLMIDY.js} +2 -2
  151. package/dist/cli/chunks/{chunk-4CB3QPZM.js → chunk-USAKCGHC.js} +2 -2
  152. package/dist/cli/chunks/{chunk-QUJJYTJH.js → chunk-V3MGY76S.js} +2 -2
  153. package/dist/cli/chunks/{chunk-WDEXOLK2.js → chunk-V6SE2ZU2.js} +1 -1
  154. package/dist/cli/chunks/{chunk-JW5PDJ5O.js → chunk-VCVRZD4Y.js} +3 -3
  155. package/dist/cli/chunks/{chunk-TGMXUZZC.js → chunk-VG32EEUG.js} +2 -2
  156. package/dist/cli/chunks/{chunk-MYUMJ2ZI.js → chunk-VGZOPQQY.js} +1 -1
  157. package/dist/cli/chunks/{chunk-BOSMELJX.js → chunk-VJBJRFUO.js} +2 -2
  158. package/dist/cli/chunks/{chunk-K3A3NWT3.js → chunk-WBC6WB32.js} +2 -2
  159. package/dist/cli/chunks/{chunk-QWG3SILX.js → chunk-WCM6WE7G.js} +5 -5
  160. package/dist/cli/chunks/{chunk-GJKZ7UQO.js → chunk-WCPSR4MJ.js} +2 -2
  161. package/dist/cli/chunks/{chunk-U6IXYQO4.js → chunk-WKI46WWN.js} +2 -2
  162. package/dist/cli/chunks/{chunk-NX4BCSOZ.js → chunk-WM2QRIRD.js} +2 -2
  163. package/dist/cli/chunks/{chunk-32UTHIY5.js → chunk-WRC3HLUY.js} +3 -3
  164. package/dist/cli/chunks/{chunk-AJEXPFAB.js → chunk-WUGXXNK4.js} +1 -1
  165. package/dist/cli/chunks/{chunk-NA3F6FEO.js → chunk-WZQADC5R.js} +2 -2
  166. package/dist/cli/chunks/{chunk-SDRJJUPO.js → chunk-X6NJOT3V.js} +1 -1
  167. package/dist/cli/chunks/{chunk-CU36D7TN.js → chunk-X6Q2N5S5.js} +2 -2
  168. package/dist/cli/chunks/{chunk-UIKQPO4Y.js → chunk-X7CUI7KH.js} +2 -2
  169. package/dist/cli/chunks/{chunk-MCPEC6OO.js → chunk-XMCSKYDE.js} +1 -1
  170. package/dist/cli/chunks/{chunk-WTAUF6O4.js → chunk-XN3KCKAM.js} +2 -2
  171. package/dist/cli/chunks/{chunk-TLRHAMX5.js → chunk-XSPMLJCQ.js} +1 -1
  172. package/dist/cli/chunks/{chunk-VUR5THML.js → chunk-XTZGAG6P.js} +2 -2
  173. package/dist/cli/chunks/{chunk-47RMGDG4.js → chunk-YE54T2NQ.js} +2 -2
  174. package/dist/cli/chunks/{chunk-HM3LSFTY.js → chunk-YEFTK4HD.js} +2 -2
  175. package/dist/cli/chunks/{chunk-4HWUECVD.js → chunk-YGC5QKQ4.js} +2 -2
  176. package/dist/cli/chunks/{chunk-SUX5XB2Z.js → chunk-YGOSSVY5.js} +2 -2
  177. package/dist/cli/chunks/{chunk-UJNGGFGX.js → chunk-YKQWIXUY.js} +2 -2
  178. package/dist/cli/chunks/{chunk-SITL5YZV.js → chunk-Z2S7DNFP.js} +2 -2
  179. package/dist/cli/chunks/{chunk-WGTEZT7G.js → chunk-Z54G2YOL.js} +2 -2
  180. package/dist/cli/chunks/{chunk-YNVEDFPQ.js → chunk-ZJGFQK27.js} +1 -1
  181. package/dist/cli/chunks/{chunk-35NW676P.js → chunk-ZUE524JL.js} +2 -2
  182. package/dist/cli/chunks/{ci-BZNWW3I3.js → ci-UMA2SMNW.js} +2 -2
  183. package/dist/cli/chunks/{ci-config-LOHNXOKV.js → ci-config-UQSILJFQ.js} +2 -2
  184. package/dist/cli/chunks/{ci-output-LCOQBSJL.js → ci-output-U6YZLLKH.js} +2 -2
  185. package/dist/cli/chunks/{circuit-breaker-7LRXTLFE.js → circuit-breaker-ATYQP6X2.js} +2 -2
  186. package/dist/cli/chunks/{claude-flow-setup-HBU4VWC3.js → claude-flow-setup-6YHFD7AN.js} +2 -2
  187. package/dist/cli/chunks/client-E43GWLQH.js +2 -0
  188. package/dist/cli/chunks/{cline-installer-CO6MLH6X.js → cline-installer-EPE7IOZE.js} +2 -2
  189. package/dist/cli/chunks/{code-SIXBS6JM.js → code-NUEJ4XYO.js} +19 -18
  190. package/dist/cli/chunks/{code-index-extractor-GWJKZ2IQ.js → code-index-extractor-D4DBT6OL.js} +2 -2
  191. package/dist/cli/chunks/{codex-installer-6NINVWXJ.js → codex-installer-633SM4LR.js} +2 -2
  192. package/dist/cli/chunks/{completions-7VIX3GML.js → completions-WUKVIW3L.js} +2 -2
  193. package/dist/cli/chunks/{complexity-analyzer-FBQR6ZP2.js → complexity-analyzer-F73ACR5H.js} +2 -2
  194. package/dist/cli/chunks/{continuedev-installer-VA7RIXW5.js → continuedev-installer-QH42TKMS.js} +2 -2
  195. package/dist/cli/chunks/{copilot-installer-4QEBC4MU.js → copilot-installer-Y3XC7BTT.js} +2 -2
  196. package/dist/cli/chunks/core-handlers-R5A3SQDY.js +2 -0
  197. package/dist/cli/chunks/{cost-tracker-GRYKHPWL.js → cost-tracker-57QPV7E3.js} +2 -2
  198. package/dist/cli/chunks/coverage-IBCHMBCR.js +51 -0
  199. package/dist/cli/chunks/cross-domain-router-LLYVPZF6.js +2 -0
  200. package/dist/cli/chunks/{cursor-installer-ZXIPSZVH.js → cursor-installer-F4UYQHIN.js} +2 -2
  201. package/dist/cli/chunks/{daemon-N2VRHPSJ.js → daemon-BYYPIJ7G.js} +4 -4
  202. package/dist/cli/chunks/{daemon-D7F3RGI5.js → daemon-XR4Q6YZF.js} +3 -3
  203. package/dist/cli/chunks/{dag-attention-scheduler-NL6BA7BY.js → dag-attention-scheduler-ZR5ZD3TW.js} +2 -2
  204. package/dist/cli/chunks/{detect-XC2HCIIT.js → detect-GEGYURLL.js} +2 -2
  205. package/dist/cli/chunks/{dist-node-A3Y26MEI.js → dist-node-JU3KT2JO.js} +2 -2
  206. package/dist/cli/chunks/{domain-handler-WV6SFXRB.js → domain-handler-7QI3FJGE.js} +2 -2
  207. package/dist/cli/chunks/{domain-plugins-KJIF6Z2B.js → domain-plugins-O2YRM2PD.js} +2 -2
  208. package/dist/cli/chunks/domain-transfer-7J3S2OS6.js +2 -0
  209. package/dist/cli/chunks/dream-6C4NURSE.js +2 -0
  210. package/dist/cli/chunks/{embed-and-insert-pattern-PA3Y4KGO.js → embed-and-insert-pattern-URES5Q6J.js} +2 -2
  211. package/dist/cli/chunks/{eval-YGEZNUVE.js → eval-RVMCIUOR.js} +2 -2
  212. package/dist/cli/chunks/{experience-capture-middleware-D4T7NW6B.js → experience-capture-middleware-SYJQSBKE.js} +3 -3
  213. package/dist/cli/chunks/{fast-paths-6JYK7RYQ.js → fast-paths-QUKPKWKZ.js} +2 -2
  214. package/dist/cli/chunks/{feature-flags-DKXMDVPE.js → feature-flags-5JCSKL2P.js} +2 -2
  215. package/dist/cli/chunks/{feature-flags-RBH2GDSR.js → feature-flags-K7JXNKJI.js} +2 -2
  216. package/dist/cli/chunks/file-discovery-J5IE5KP7.js +2 -0
  217. package/dist/cli/chunks/fleet-II4Q6HXK.js +44 -0
  218. package/dist/cli/chunks/{gnn-wrapper-MV54UC4C.js → gnn-wrapper-M7VO2EMS.js} +2 -2
  219. package/dist/cli/chunks/{heartbeat-handler-7DKMVQQH.js → heartbeat-handler-ND5CY26N.js} +4 -4
  220. package/dist/cli/chunks/heartbeat-scheduler-FC5PBTMN.js +2 -0
  221. package/dist/cli/chunks/hnsw-adapter-47UIVOBG.js +2 -0
  222. package/dist/cli/chunks/hnsw-index-3AKVLOZQ.js +2 -0
  223. package/dist/cli/chunks/{hnsw-legacy-bridge-6IWREDQC.js → hnsw-legacy-bridge-N3AUUUU7.js} +2 -2
  224. package/dist/cli/chunks/{hnswlib-node-5BIESSCK.js → hnswlib-node-NZY3E5EN.js} +2 -2
  225. package/dist/cli/chunks/{hooks-3EETRM62.js → hooks-QVJDTII5.js} +10 -10
  226. package/dist/cli/chunks/hybrid-backend-YAOSNX47.js +2 -0
  227. package/dist/cli/chunks/{hypergraph-engine-RSWCB2D3.js → hypergraph-engine-ZRY6MTDV.js} +2 -2
  228. package/dist/cli/chunks/{hypergraph-handler-552LXKL3.js → hypergraph-handler-56DO4XZQ.js} +3 -3
  229. package/dist/cli/chunks/impact-analyzer-4FMJXM4M.js +2 -0
  230. package/dist/cli/chunks/{init-guard-OTDBJ5HD.js → init-guard-DTF4EVUY.js} +2 -2
  231. package/dist/cli/chunks/{init-handler-3FK3TKEA.js → init-handler-M6CNQHMX.js} +6 -6
  232. package/dist/cli/chunks/init-wizard-RTLCRWDT.js +2 -0
  233. package/dist/cli/chunks/kernel-2OWIGGGT.js +2 -0
  234. package/dist/cli/chunks/{kilocode-installer-KZ2O4LF3.js → kilocode-installer-IJN7XKBH.js} +2 -2
  235. package/dist/cli/chunks/{kiro-installer-MLCCXRF7.js → kiro-installer-UKKPGPDC.js} +2 -2
  236. package/dist/cli/chunks/knowledge-graph-25XXKDJN.js +2 -0
  237. package/dist/cli/chunks/learning-W2HETWQ4.js +131 -0
  238. package/dist/cli/chunks/{llm-router-PDEV3UP2.js → llm-router-Y546K4VX.js} +4 -4
  239. package/dist/cli/chunks/llm-router-service-G3EIN4UB.js +2 -0
  240. package/dist/cli/chunks/{load-XFVVLO7E.js → load-MKAB2AXE.js} +2 -2
  241. package/dist/cli/chunks/load-test-D6QYNIVT.js +2 -0
  242. package/dist/cli/chunks/{mcp-74G3CL2S.js → mcp-AZKUS6K3.js} +2 -2
  243. package/dist/cli/chunks/{memory-XIFM6JNX.js → memory-ZDOQN2KU.js} +5 -5
  244. package/dist/cli/chunks/memory-backend-LDFFZMEQ.js +2 -0
  245. package/dist/cli/chunks/{memory-handlers-ZCKURV6S.js → memory-handlers-3SQVY7FE.js} +2 -2
  246. package/dist/cli/chunks/{multi-model-executor-7L4W3O2Q.js → multi-model-executor-WWVXDHG4.js} +2 -2
  247. package/dist/cli/chunks/{opencode-installer-BPG422LF.js → opencode-installer-YUJNXXWS.js} +2 -2
  248. package/dist/cli/chunks/{orchestrator-OEAFLAEV.js → orchestrator-Z6PWPLRE.js} +109 -25
  249. package/dist/cli/chunks/pattern-null-store-KDVRM7PW.js +2 -0
  250. package/dist/cli/chunks/{pattern-usage-recorder-LOPNCULT.js → pattern-usage-recorder-TPWPX32U.js} +2 -2
  251. package/dist/cli/chunks/{pipeline-VWTYUZB7.js → pipeline-4BBGTE4M.js} +2 -2
  252. package/dist/cli/chunks/{platform-WFJJ3X2E.js → platform-5GSHXCV5.js} +2 -2
  253. package/dist/cli/chunks/{plugin-744TPUSG.js → plugin-OFDVF5HS.js} +2 -2
  254. package/dist/cli/chunks/{prime-radiant-advanced-wasm-BD5BLNDR.js → prime-radiant-advanced-wasm-NC6MUYGJ.js} +2 -2
  255. package/dist/cli/chunks/project-root-DDGBWDP6.js +2 -0
  256. package/dist/cli/chunks/protocol-executor-KBOLLCWA.js +2 -0
  257. package/dist/cli/chunks/{protocol-handler-JIBILI74.js → protocol-handler-MPOAAEPA.js} +2 -2
  258. package/dist/cli/chunks/{prove-MNOL5FYW.js → prove-CDKMAIVM.js} +2 -2
  259. package/dist/cli/chunks/qe-reasoning-bank-GRXBT7FC.js +2 -0
  260. package/dist/cli/chunks/{quality-JEGBDGGX.js → quality-ZH4F7R7R.js} +2 -2
  261. package/dist/cli/chunks/{quality-gate-SYJ6ROMI.js → quality-gate-IDRMW6OE.js} +3 -3
  262. package/dist/cli/chunks/queen-coordinator-L2QWMJ5Q.js +2 -0
  263. package/dist/cli/chunks/{real-embeddings-ZWXS5ZFV.js → real-embeddings-I2UVNNB3.js} +2 -2
  264. package/dist/cli/chunks/{ref-validation-RRHUFW2N.js → ref-validation-Z5GCGVXK.js} +2 -2
  265. package/dist/cli/chunks/{roocode-installer-XFO6JSVN.js → roocode-installer-IZ2S7PH2.js} +2 -2
  266. package/dist/cli/chunks/router-FT5WJPUH.js +2 -0
  267. package/dist/cli/chunks/routing-feedback-EO2MKOUX.js +2 -0
  268. package/dist/cli/chunks/{routing-handler-L2K3JASE.js → routing-handler-NAX35VUW.js} +2 -2
  269. package/dist/cli/chunks/{ruvector-commands-A6CINHGM.js → ruvector-commands-5YW2SOFF.js} +2 -2
  270. package/dist/cli/chunks/rvf-dual-writer-WHBFQJVU.js +2 -0
  271. package/dist/cli/chunks/rvf-migration-adapter-YT3APF2I.js +2 -0
  272. package/dist/cli/chunks/{rvf-migration-coordinator-T4RY7L53.js → rvf-migration-coordinator-VUIZHTVG.js} +2 -2
  273. package/dist/cli/chunks/rvf-native-adapter-37PUFKQD.js +2 -0
  274. package/dist/cli/chunks/{rvf-store-integrity-IR33TGQS.js → rvf-store-integrity-IPGCAT6C.js} +2 -2
  275. package/dist/cli/chunks/safe-db-TDZKUOZJ.js +2 -0
  276. package/dist/cli/chunks/schedule-CRKTRY2A.js +2 -0
  277. package/dist/cli/chunks/scheduler-6ZBDVQWN.js +2 -0
  278. package/dist/cli/chunks/{security-Z5GDE2IH.js → security-3IH4BO5Z.js} +3 -3
  279. package/dist/cli/chunks/{shared-rvf-adapter-SIZMEHPM.js → shared-rvf-adapter-ABY7PAY2.js} +2 -2
  280. package/dist/cli/chunks/{shared-rvf-dual-writer-HLM65RDS.js → shared-rvf-dual-writer-6KENLN2W.js} +2 -2
  281. package/dist/cli/chunks/sqlite-persistence-FFJQAIKW.js +2 -0
  282. package/dist/cli/chunks/{standalone-memory-SKSZG7P5.js → standalone-memory-RLFAUGOW.js} +2 -2
  283. package/dist/cli/chunks/{status-handler-766YOOMJ.js → status-handler-FCOZBPE5.js} +2 -2
  284. package/dist/cli/chunks/{structural-health-M45FNOLT.js → structural-health-4RDA5UUM.js} +2 -2
  285. package/dist/cli/chunks/{sync-B2U366I3.js → sync-54LUAUTK.js} +2 -2
  286. package/dist/cli/chunks/{sync-6CJ24B5T.js → sync-KGEEXXCC.js} +2 -2
  287. package/dist/cli/chunks/task-handler-K3OXHYKU.js +62 -0
  288. package/dist/cli/chunks/task-handlers-6H7L2UT4.js +9 -0
  289. package/dist/cli/chunks/{test-TODH7KRF.js → test-S7IG6EIX.js} +4 -4
  290. package/dist/cli/chunks/test-runner-process-OTQDAJLN.js +2 -0
  291. package/dist/cli/chunks/{test-scheduling-VMVMVRHT.js → test-scheduling-7XYXI4L2.js} +3 -3
  292. package/dist/cli/chunks/{token-bootstrap-XQW7BMCK.js → token-bootstrap-3QMABE45.js} +2 -2
  293. package/dist/cli/chunks/{token-usage-JCZEIRKO.js → token-usage-Y2YTPOFE.js} +2 -2
  294. package/dist/cli/chunks/{transformers-U2ML3OHE.js → transformers-UCJ3HHHC.js} +2 -2
  295. package/dist/cli/chunks/tree-sitter-wasm-parser-D6JTTHTP.js +2 -0
  296. package/dist/cli/chunks/{types-GGEPCHP6.js → types-6CMFPETH.js} +2 -2
  297. package/dist/cli/chunks/unified-memory-QARWQKJ2.js +2 -0
  298. package/dist/cli/chunks/unified-memory-hnsw-LHY3DXCP.js +2 -0
  299. package/dist/cli/chunks/unified-persistence-WEYYGLHM.js +2 -0
  300. package/dist/cli/chunks/{upgrade-T5GRM7HS.js → upgrade-K25DN6WU.js} +2 -2
  301. package/dist/cli/chunks/{validate-XMUJPLP3.js → validate-T4V3TBY3.js} +2 -2
  302. package/dist/cli/chunks/{validate-swarm-KJLF7JEH.js → validate-swarm-XSRC576T.js} +2 -2
  303. package/dist/cli/chunks/visual-security-O4ALMCXQ.js +2 -0
  304. package/dist/cli/chunks/{web-tree-sitter-LOHVZ7G5.js → web-tree-sitter-YOZXHRTN.js} +2 -2
  305. package/dist/cli/chunks/{windsurf-installer-33FBTXJU.js → windsurf-installer-ITPU2IYL.js} +2 -2
  306. package/dist/cli/chunks/witness-chain-B3YW5NMS.js +2 -0
  307. package/dist/cli/chunks/witness-chain-PIYR72HJ.js +2 -0
  308. package/dist/cli/chunks/{witness-chain-repair-VWBO4NXE.js → witness-chain-repair-YUG7E3UX.js} +2 -2
  309. package/dist/cli/chunks/{witness-chain-verifier-BHJ3ZAEK.js → witness-chain-verifier-DTDSVKOG.js} +2 -2
  310. package/dist/cli/chunks/{witness-key-manager-WNVPH2Z3.js → witness-key-manager-EWACWGAW.js} +2 -2
  311. package/dist/cli/chunks/{workflow-6QR5MQTO.js → workflow-ZIQ4FV42.js} +4 -4
  312. package/dist/cli/chunks/workflow-orchestrator-3ZN2BCGY.js +2 -0
  313. package/dist/cli/chunks/{wrappers-EHOL62TS.js → wrappers-PW2O27LL.js} +2 -2
  314. package/dist/cli/commands/code.js +6 -0
  315. package/dist/cli/commands/coverage.js +6 -0
  316. package/dist/cli/commands/fleet-run.d.ts +12 -0
  317. package/dist/cli/commands/fleet-run.js +175 -0
  318. package/dist/cli/commands/fleet.js +2 -117
  319. package/dist/cli/commands/learning-prune.d.ts +14 -0
  320. package/dist/cli/commands/learning-prune.js +105 -0
  321. package/dist/cli/commands/learning.js +9 -0
  322. package/dist/cli/handlers/brain-handler.js +12 -1
  323. package/dist/cli/handlers/task-handler.d.ts +5 -0
  324. package/dist/cli/handlers/task-handler.js +20 -0
  325. package/dist/cli/utils/coverage-verdict.js +14 -3
  326. package/dist/cli/utils/fleet-operation.d.ts +5 -2
  327. package/dist/cli/utils/fleet-operation.js +13 -2
  328. package/dist/cli/utils/fleet-result.d.ts +16 -2
  329. package/dist/cli/utils/fleet-result.js +26 -21
  330. package/dist/cli/utils/fleet-shard.d.ts +36 -0
  331. package/dist/cli/utils/fleet-shard.js +110 -0
  332. package/dist/context/compaction/index.d.ts +7 -0
  333. package/dist/context/compaction/index.js +30 -6
  334. package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
  335. package/dist/coordination/handlers/coverage-evidence.d.ts +19 -0
  336. package/dist/coordination/handlers/coverage-evidence.js +31 -2
  337. package/dist/coordination/handlers/coverage-handlers.js +5 -1
  338. package/dist/coordination/handlers/coverage-target.js +8 -1
  339. package/dist/coordination/handlers/handler-types.d.ts +2 -2
  340. package/dist/coordination/handlers/handler-utils.d.ts +6 -0
  341. package/dist/coordination/handlers/handler-utils.js +14 -4
  342. package/dist/coordination/handlers/misc-handlers.js +5 -2
  343. package/dist/coordination/handlers/quality-handlers.js +11 -3
  344. package/dist/coordination/handlers/security-handlers.js +12 -2
  345. package/dist/coordination/protocols/security-audit.js +11 -1
  346. package/dist/coordination/result-saver-adapters.js +1 -0
  347. package/dist/coordination/result-saver.js +9 -5
  348. package/dist/coordination/task-executor.js +7 -2
  349. package/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +1 -0
  350. package/dist/domains/chaos-resilience/services/chaos-engineer.js +23 -45
  351. package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
  352. package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
  353. package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
  354. package/dist/domains/code-intelligence/coordinator.js +24 -27
  355. package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
  356. package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +43 -5
  357. package/dist/domains/code-intelligence/services/semantic-analyzer.js +134 -71
  358. package/dist/domains/coverage-analysis/collected-metrics.d.ts +26 -0
  359. package/dist/domains/coverage-analysis/collected-metrics.js +54 -0
  360. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +13 -3
  361. package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +2 -0
  362. package/dist/domains/coverage-analysis/services/coverage-parser.js +18 -2
  363. package/dist/domains/defect-intelligence/services/defect-predictor.js +3 -6
  364. package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
  365. package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
  366. package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
  367. package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
  368. package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
  369. package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
  370. package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
  371. package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
  372. package/dist/domains/quality-assessment/coordinator.js +10 -4
  373. package/dist/domains/quality-assessment/coverage-report-event.d.ts +8 -0
  374. package/dist/domains/quality-assessment/coverage-report-event.js +22 -1
  375. package/dist/domains/quality-assessment/interfaces.d.ts +8 -0
  376. package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
  377. package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +4 -0
  378. package/dist/domains/quality-assessment/services/quality-analyzer.js +63 -17
  379. package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
  380. package/dist/domains/security-compliance/index.d.ts +1 -1
  381. package/dist/domains/security-compliance/interfaces.d.ts +46 -5
  382. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
  383. package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
  384. package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
  385. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
  386. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
  387. package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
  388. package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
  389. package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
  390. package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
  391. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
  392. package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
  393. package/dist/domains/security-compliance/services/scanners/index.js +1 -1
  394. package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
  395. package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
  396. package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
  397. package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
  398. package/dist/domains/security-compliance/services/security-auditor.js +106 -65
  399. package/dist/domains/test-execution/coordinator.d.ts +2 -1
  400. package/dist/domains/test-execution/coordinator.js +33 -27
  401. package/dist/domains/test-execution/interfaces.d.ts +10 -0
  402. package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
  403. package/dist/domains/test-execution/services/test-executor.js +22 -4
  404. package/dist/domains/visual-accessibility/coordinator.js +34 -9
  405. package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
  406. package/dist/domains/visual-accessibility/plugin.js +5 -0
  407. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
  408. package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
  409. package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
  410. package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
  411. package/dist/init/phases/07-hooks.js +90 -6
  412. package/dist/integrations/embeddings/index/HNSWIndex.js +8 -4
  413. package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +25 -0
  414. package/dist/integrations/ruvector/brain-rvf-exporter.js +154 -61
  415. package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
  416. package/dist/learning/dream/dream-engine.d.ts +24 -1
  417. package/dist/learning/dream/dream-engine.js +57 -6
  418. package/dist/learning/learning-retention.d.ts +103 -0
  419. package/dist/learning/learning-retention.js +213 -0
  420. package/dist/mcp/bundle.js +508 -503
  421. package/dist/mcp/handlers/domain-handler-configs.d.ts +17 -1
  422. package/dist/mcp/handlers/domain-handler-configs.js +33 -16
  423. package/dist/mcp/handlers/handler-factory.js +3 -0
  424. package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
  425. package/dist/mcp/handlers/model-route-handlers.js +139 -0
  426. package/dist/mcp/handlers/orchestrate-routes.js +41 -3
  427. package/dist/mcp/handlers/task-handlers.d.ts +3 -251
  428. package/dist/mcp/handlers/task-handlers.js +6 -828
  429. package/dist/mcp/handlers/task-inference.d.ts +26 -0
  430. package/dist/mcp/handlers/task-inference.js +156 -0
  431. package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
  432. package/dist/mcp/handlers/task-learning-handlers.js +230 -0
  433. package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
  434. package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
  435. package/dist/mcp/protocol-server.js +13 -3
  436. package/dist/mcp/tools/chaos-resilience/inject.d.ts +3 -4
  437. package/dist/mcp/tools/chaos-resilience/inject.js +11 -81
  438. package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
  439. package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
  440. package/dist/mcp/tools/coverage-analysis/index.js +8 -2
  441. package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -0
  442. package/dist/mcp/tools/learning-optimization/dream.js +4 -0
  443. package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
  444. package/dist/mcp/tools/visual-accessibility/index.js +29 -13
  445. package/dist/shared/events/domain-events.d.ts +2 -0
  446. package/dist/shared/metrics/code-metrics.js +21 -3
  447. package/dist/shared/parsers/typescript-parser.d.ts +6 -0
  448. package/dist/shared/parsers/typescript-parser.js +13 -1
  449. package/package.json +1 -1
  450. package/dist/cli/chunks/adapter-HL7MOCQN.js +0 -2
  451. package/dist/cli/chunks/aqe-learning-engine-OZ2DXB4G.js +0 -2
  452. package/dist/cli/chunks/base-WIM7G3HC.js +0 -2
  453. package/dist/cli/chunks/brain-handler-MPC5SPYI.js +0 -94
  454. package/dist/cli/chunks/browser-workflow-QRKCFVR3.js +0 -2
  455. package/dist/cli/chunks/chunk-4A76VPU4.js +0 -3
  456. package/dist/cli/chunks/chunk-QSGEBCDB.js +0 -62
  457. package/dist/cli/chunks/chunk-UCSK2RMI.js +0 -2
  458. package/dist/cli/chunks/chunk-VXVTFKRA.js +0 -2
  459. package/dist/cli/chunks/chunk-XCNSGSKV.js +0 -3
  460. package/dist/cli/chunks/chunk-XZOYKB22.js +0 -79
  461. package/dist/cli/chunks/chunk-YIDAXOUX.js +0 -8
  462. package/dist/cli/chunks/client-4PNYDFYS.js +0 -2
  463. package/dist/cli/chunks/core-handlers-ODO6LUWQ.js +0 -2
  464. package/dist/cli/chunks/coverage-USPMNKOU.js +0 -50
  465. package/dist/cli/chunks/cross-domain-router-DT4MHJKK.js +0 -2
  466. package/dist/cli/chunks/domain-transfer-L3F6AES2.js +0 -2
  467. package/dist/cli/chunks/dream-QOB3JCOM.js +0 -2
  468. package/dist/cli/chunks/file-discovery-BN76S2PR.js +0 -2
  469. package/dist/cli/chunks/fleet-43YMXACN.js +0 -46
  470. package/dist/cli/chunks/heartbeat-scheduler-3NNP4WCP.js +0 -2
  471. package/dist/cli/chunks/hnsw-adapter-MZR7Y4WF.js +0 -2
  472. package/dist/cli/chunks/hnsw-index-HE4AX22U.js +0 -2
  473. package/dist/cli/chunks/hybrid-backend-IHUHB3Y2.js +0 -2
  474. package/dist/cli/chunks/impact-analyzer-FI6GI6PD.js +0 -2
  475. package/dist/cli/chunks/init-wizard-WLQKH5Y5.js +0 -2
  476. package/dist/cli/chunks/kernel-2WZOQEZS.js +0 -2
  477. package/dist/cli/chunks/knowledge-graph-G3LVKK6P.js +0 -2
  478. package/dist/cli/chunks/learning-QUCMBD77.js +0 -122
  479. package/dist/cli/chunks/llm-router-service-MM75HKWJ.js +0 -2
  480. package/dist/cli/chunks/load-test-BEWEE44J.js +0 -2
  481. package/dist/cli/chunks/memory-backend-NYKBBKZR.js +0 -2
  482. package/dist/cli/chunks/pattern-null-store-QGPUIV6M.js +0 -2
  483. package/dist/cli/chunks/project-root-C7ELXZRK.js +0 -2
  484. package/dist/cli/chunks/protocol-executor-SUVE33BM.js +0 -2
  485. package/dist/cli/chunks/qe-reasoning-bank-YWZMMGJB.js +0 -2
  486. package/dist/cli/chunks/queen-coordinator-ZFAKXRN7.js +0 -2
  487. package/dist/cli/chunks/router-4FTAVYLJ.js +0 -2
  488. package/dist/cli/chunks/routing-feedback-IO2KOWMJ.js +0 -2
  489. package/dist/cli/chunks/rvf-dual-writer-KCIRNE7C.js +0 -2
  490. package/dist/cli/chunks/rvf-migration-adapter-MFC5WTJU.js +0 -2
  491. package/dist/cli/chunks/rvf-native-adapter-I3KWHE7X.js +0 -2
  492. package/dist/cli/chunks/safe-db-QXDZ6QY3.js +0 -2
  493. package/dist/cli/chunks/schedule-CZKD6RIY.js +0 -2
  494. package/dist/cli/chunks/scheduler-BLA3Q4CH.js +0 -2
  495. package/dist/cli/chunks/sqlite-persistence-XIUYDJC4.js +0 -2
  496. package/dist/cli/chunks/task-handler-P6IFLCKP.js +0 -62
  497. package/dist/cli/chunks/task-handlers-DPWMUKFC.js +0 -9
  498. package/dist/cli/chunks/test-runner-process-46IPK3GH.js +0 -2
  499. package/dist/cli/chunks/tree-sitter-wasm-parser-MOI2WWNJ.js +0 -2
  500. package/dist/cli/chunks/unified-memory-FL26RTV3.js +0 -2
  501. package/dist/cli/chunks/unified-memory-hnsw-E2BPTH3U.js +0 -2
  502. package/dist/cli/chunks/unified-persistence-5ZOUPKHF.js +0 -2
  503. package/dist/cli/chunks/visual-security-IJVPO5FA.js +0 -2
  504. package/dist/cli/chunks/witness-chain-5FAFCQKP.js +0 -2
  505. package/dist/cli/chunks/witness-chain-V2M32W5D.js +0 -2
  506. package/dist/cli/chunks/workflow-orchestrator-3JLF3IX7.js +0 -2
@@ -14,6 +14,7 @@
14
14
  import { MCPToolBase, getSharedMemoryBackend } from '../base.js';
15
15
  import { createDreamEngine, } from '../../../learning/dream/index.js';
16
16
  import { DreamAlreadyRunningError } from '../../../learning/dream/dream-engine.js';
17
+ import { describeDreamRetention } from '../../../learning/learning-retention.js';
17
18
  import { createQEReasoningBank } from '../../../learning/qe-reasoning-bank.js';
18
19
  import { toErrorMessage } from '../../../shared/error-utils.js';
19
20
  // ============================================================================
@@ -218,6 +219,9 @@ export class DreamCycleTool extends MCPToolBase {
218
219
  activationStats: result.activationStats,
219
220
  patternsCreated: result.patternsCreated,
220
221
  commitDurationMs: result.commitDurationMs,
222
+ retention: result.retention
223
+ ? { enabled: result.retention.enabled, steps: describeDreamRetention(result.retention) }
224
+ : undefined,
221
225
  };
222
226
  const insights = result.insights.map((i) => ({
223
227
  id: i.id,
@@ -75,11 +75,15 @@ export interface A11yAuditResult {
75
75
  }
76
76
  export interface UrlAudit {
77
77
  url: string;
78
+ /** 0-100 when measured; -1 when the URL was not measured (#1145). */
78
79
  score: number;
79
80
  passed: boolean;
80
81
  violations: A11yViolation[];
81
82
  warnings: A11yWarning[];
82
83
  passedRules: number;
84
+ /** False when no browser audited the URL; it is then neither passing nor failing (#1145). */
85
+ measured?: boolean;
86
+ notMeasuredReason?: string;
83
87
  }
84
88
  export interface A11yViolation {
85
89
  id: string;
@@ -103,7 +107,10 @@ export interface A11yWarning {
103
107
  }
104
108
  export interface A11ySummary {
105
109
  totalUrls: number;
110
+ /** URLs a browser actually audited; passing/score/violation counts cover only these (#1145). */
111
+ measuredUrls?: number;
106
112
  passingUrls: number;
113
+ /** Mean over measured URLs; -1 when none was measured (#1145). */
107
114
  avgScore: number;
108
115
  criticalViolations: number;
109
116
  seriousViolations: number;
@@ -218,19 +218,24 @@ export class A11yAuditTool extends MCPToolBase {
218
218
  wcagLevel,
219
219
  includeWarnings,
220
220
  });
221
- if (!auditResult.success) {
222
- // Add failed audit with error info
221
+ if (!auditResult.success || auditResult.value.measured !== true) {
222
+ // #1145: an unmeasured URL carries no findings and no verdict
223
223
  audits.push({
224
224
  url,
225
- score: 0,
225
+ score: -1,
226
226
  passed: false,
227
227
  violations: [],
228
228
  warnings: [],
229
229
  passedRules: 0,
230
+ measured: false,
231
+ notMeasuredReason: auditResult.success
232
+ ? auditResult.value.notMeasuredReason ?? 'not measured'
233
+ : auditResult.error.message,
230
234
  });
231
235
  continue;
232
236
  }
233
237
  const report = auditResult.value;
238
+ const notMeasuredWarnings = [];
234
239
  // Optionally check contrast
235
240
  let contrastViolations = [];
236
241
  if (checkContrast) {
@@ -256,6 +261,9 @@ export class A11yAuditTool extends MCPToolBase {
256
261
  }));
257
262
  }
258
263
  }
264
+ else {
265
+ notMeasuredWarnings.push({ id: 'color-contrast-not-measured', description: contrastResult.error.message, nodes: 0 });
266
+ }
259
267
  }
260
268
  // Optionally check keyboard navigation
261
269
  const keyboardViolations = [];
@@ -302,6 +310,9 @@ export class A11yAuditTool extends MCPToolBase {
302
310
  });
303
311
  }
304
312
  }
313
+ else {
314
+ notMeasuredWarnings.push({ id: 'keyboard-not-measured', description: keyboardResult.error.message, nodes: 0 });
315
+ }
305
316
  }
306
317
  // Convert report violations to output format
307
318
  const violations = [
@@ -323,11 +334,11 @@ export class A11yAuditTool extends MCPToolBase {
323
334
  ...keyboardViolations,
324
335
  ];
325
336
  // Convert warnings (from incomplete checks)
326
- const warnings = report.incomplete.map((i) => ({
327
- id: i.id,
328
- description: i.description,
329
- nodes: i.nodes.length,
330
- }));
337
+ const warnings = [...report.incomplete.map((i) => ({
338
+ id: i.id,
339
+ description: i.description,
340
+ nodes: i.nodes.length,
341
+ })), ...notMeasuredWarnings];
331
342
  const hasCriticalOrSerious = violations.some((v) => v.impact === 'critical' || v.impact === 'serious');
332
343
  audits.push({
333
344
  url,
@@ -336,14 +347,17 @@ export class A11yAuditTool extends MCPToolBase {
336
347
  violations,
337
348
  warnings,
338
349
  passedRules: report.passes.length,
350
+ measured: true,
339
351
  });
340
352
  }
353
+ const measuredAudits = audits.filter((a) => a.measured === true);
341
354
  const summary = {
342
355
  totalUrls: audits.length,
343
- passingUrls: audits.filter((a) => a.passed).length,
344
- avgScore: audits.length > 0
345
- ? Math.round(audits.reduce((sum, a) => sum + a.score, 0) / audits.length)
346
- : 0,
356
+ measuredUrls: measuredAudits.length,
357
+ passingUrls: measuredAudits.filter((a) => a.passed).length,
358
+ avgScore: measuredAudits.length > 0
359
+ ? Math.round(measuredAudits.reduce((sum, a) => sum + a.score, 0) / measuredAudits.length)
360
+ : -1,
347
361
  criticalViolations: audits.reduce((sum, a) => sum + a.violations.filter((v) => v.impact === 'critical').length, 0),
348
362
  seriousViolations: audits.reduce((sum, a) => sum + a.violations.filter((v) => v.impact === 'serious').length, 0),
349
363
  totalViolations: audits.reduce((sum, a) => sum + a.violations.length, 0),
@@ -352,7 +366,9 @@ export class A11yAuditTool extends MCPToolBase {
352
366
  const remediationPlan = generateRemediationPlan(topIssues);
353
367
  this.emitStream(context, {
354
368
  status: 'complete',
355
- message: `Audit complete: avg score ${summary.avgScore}%`,
369
+ message: summary.avgScore < 0
370
+ ? `Audit complete: no URL measured (0/${summary.totalUrls}); no score`
371
+ : `Audit complete: ${summary.measuredUrls}/${summary.totalUrls} URL(s) measured, avg score ${summary.avgScore}%`,
356
372
  progress: 100,
357
373
  });
358
374
  return {
@@ -38,6 +38,8 @@ export interface TestRunCompletedPayload {
38
38
  failed: number;
39
39
  skipped: number;
40
40
  duration: number;
41
+ /** #1176: tests that passed on a retry; already counted in `passed`. */
42
+ flaky?: number;
41
43
  }
42
44
  export interface FlakyTestDetectedPayload {
43
45
  testId: string;
@@ -41,6 +41,15 @@ function isGeneratedSource(content) {
41
41
  const head = content.slice(0, GENERATED_SNIFF_CHARS).replace(/\r\n/g, '\n');
42
42
  return GO_GENERATED_LINE.test(head) || GENERATED_TAG.test(firstCommentBlock(head));
43
43
  }
44
+ /** Extensions parsed as TypeScript/JavaScript; anything else is only estimated. */
45
+ const PARSED_EXTENSIONS = ['ts', 'tsx', 'mts', 'cts', 'js', 'jsx', 'mjs', 'cjs'];
46
+ /**
47
+ * A UTF-16 file read as UTF-8: its byte-order mark becomes two replacement
48
+ * characters (#1020). It is source in an unsupported encoding, not binary.
49
+ */
50
+ function isUtf16Source(content) {
51
+ return content.startsWith('\uFFFD\uFFFD') && content.slice(0, BINARY_SNIFF_CHARS).includes('\u0000');
52
+ }
44
53
  /** Exclusion decided from the file name alone. */
45
54
  function excludedByName(filePath) {
46
55
  const name = filePath.split(/[\\/]/).pop() ?? filePath;
@@ -86,6 +95,9 @@ export class CodeMetricsAnalyzer {
86
95
  ? { status: 'excluded', metrics: null, reason: `${filePath} was refused by the file reader (${readError.message})` }
87
96
  : { status: 'failed', metrics: null, reason: `${filePath} could not be read (${readError.message})` };
88
97
  }
98
+ if (content !== undefined && isUtf16Source(content)) {
99
+ return { status: 'failed', metrics: null, reason: `${filePath} is UTF-16 encoded; only UTF-8 source can be analysed` };
100
+ }
89
101
  // git-style sniff, except that TS/JS which parses cleanly is source even
90
102
  // with a raw NUL inside a string literal (seen in real repos).
91
103
  const sourceDespiteNul = parsedAsSource && !parseFailure;
@@ -97,6 +109,11 @@ export class CodeMetricsAnalyzer {
97
109
  }
98
110
  if (parseFailure)
99
111
  return { status: 'failed', metrics, reason: `${filePath} could not be parsed (${parseFailure})` };
112
+ // #1020: without a parse, complexity is a regex estimate — the same
113
+ // estimate a TS parse failure falls back to — so it is not a measurement.
114
+ if (!parsedAsSource) {
115
+ return { status: 'failed', metrics, reason: `${filePath} was not parsed (no parser for this file type); its complexity would only be a regex estimate` };
116
+ }
100
117
  return { status: 'measured', metrics };
101
118
  }
102
119
  /** Compute metrics, reporting read errors and parse failures separately. */
@@ -119,10 +136,11 @@ export class CodeMetricsAnalyzer {
119
136
  let functionCount = 0;
120
137
  let classCount = 0;
121
138
  // Only parse TypeScript/JavaScript files
122
- if (['ts', 'tsx', 'js', 'jsx'].includes(ext)) {
139
+ const parsedAsSource = PARSED_EXTENSIONS.includes(ext);
140
+ if (parsedAsSource) {
123
141
  try {
124
142
  const ast = this.parser.parseFile(fileName, content);
125
- const syntaxErrors = ast.parseDiagnostics?.length ?? 0;
143
+ const syntaxErrors = this.parser.countSyntaxErrors(ast);
126
144
  if (syntaxErrors > 0) {
127
145
  parseFailure = `${syntaxErrors} syntax error${syntaxErrors === 1 ? '' : 's'}`;
128
146
  }
@@ -197,7 +215,7 @@ export class CodeMetricsAnalyzer {
197
215
  classCount,
198
216
  maxNestingDepth,
199
217
  };
200
- return { metrics, content, parseFailure, parsedAsSource: ['ts', 'tsx', 'js', 'jsx'].includes(ext) };
218
+ return { metrics, content, parseFailure, parsedAsSource };
201
219
  }
202
220
  /**
203
221
  * Analyze function-level metrics
@@ -160,6 +160,12 @@ export declare class TypeScriptParser {
160
160
  * Parse a TypeScript file and return the AST SourceFile
161
161
  */
162
162
  parseFile(filePath: string, content: string): ts.SourceFile;
163
+ /**
164
+ * #1020: syntax errors in a parsed file, read through the public Program
165
+ * API instead of the internal `parseDiagnostics` field. For JavaScript this
166
+ * includes TypeScript-only syntax, which is not valid JavaScript.
167
+ */
168
+ countSyntaxErrors(sourceFile: ts.SourceFile): number;
163
169
  /**
164
170
  * Extract all functions from the AST
165
171
  */
@@ -17,6 +17,18 @@ export class TypeScriptParser {
17
17
  parseFile(filePath, content) {
18
18
  return ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true, this.getScriptKind(filePath));
19
19
  }
20
+ /**
21
+ * #1020: syntax errors in a parsed file, read through the public Program
22
+ * API instead of the internal `parseDiagnostics` field. For JavaScript this
23
+ * includes TypeScript-only syntax, which is not valid JavaScript.
24
+ */
25
+ countSyntaxErrors(sourceFile) {
26
+ const options = { noLib: true, noResolve: true, allowJs: true, types: [] };
27
+ const host = ts.createCompilerHost(options);
28
+ host.getSourceFile = () => sourceFile;
29
+ const program = ts.createProgram({ rootNames: [sourceFile.fileName], options, host });
30
+ return program.getSyntacticDiagnostics(sourceFile).length;
31
+ }
20
32
  /**
21
33
  * Extract all functions from the AST
22
34
  */
@@ -227,7 +239,7 @@ export class TypeScriptParser {
227
239
  return ts.ScriptKind.TS;
228
240
  if (filePath.endsWith('.jsx'))
229
241
  return ts.ScriptKind.JSX;
230
- if (filePath.endsWith('.js'))
242
+ if (/\.(js|mjs|cjs)$/.test(filePath))
231
243
  return ts.ScriptKind.JS;
232
244
  return ts.ScriptKind.TS;
233
245
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.15.12",
3
+ "version": "3.15.14",
4
4
  "description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,2 +0,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.12");process.exit(0)}
2
- import{a,b,c}from"./chunk-IVTQF55W.js";import"./chunk-FAGKBOX2.js";import"./chunk-W7H55PY4.js";import"./chunk-WTAUF6O4.js";import"./chunk-W4II6SIH.js";import"./chunk-WDEXOLK2.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
@@ -1,2 +0,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.12");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-FNUFTWEO.js";import"./chunk-UUZZXHUF.js";import"./chunk-LFBA735S.js";import"./chunk-SITL5YZV.js";import"./chunk-BC4T6SCV.js";import"./chunk-GJKZ7UQO.js";import"./chunk-ZGROHCOW.js";import"./chunk-SDRJJUPO.js";import"./chunk-7JFDLL2F.js";import"./chunk-SUX5XB2Z.js";import"./chunk-IETBWYHW.js";import"./chunk-2IVE5AR3.js";import"./chunk-BYRCB5JT.js";import"./chunk-FZJCBSN4.js";import"./chunk-65TH6RPD.js";import"./chunk-MYF5CNGV.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-NVRYELCY.js";import"./chunk-6QRI3JVE.js";import"./chunk-7TA5MUPW.js";import"./chunk-VZBC6DP7.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-CPIBIR3X.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import"./chunk-MAJXZYGK.js";import"./chunk-5A66EGEW.js";import"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
@@ -1,2 +0,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.12");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l}from"./chunk-KJDI5CHX.js";import"./chunk-SG2TX72G.js";import"./chunk-GKFV6CUD.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-6QRI3JVE.js";import"./chunk-7TA5MUPW.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";export{l as MCPToolBase,k as defaultToolLogger,j as getKernel,i as getLLMRouter,e as getMemoryBackend,g as getSharedLLMRouter,c as getSharedMemoryBackend,a as isMemoryOnlyMode,b as registerRvfResetFn,h as resetSharedLLMRouter,d as resetSharedMemoryBackend,f as setSharedLLMRouter};
@@ -1,94 +0,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.12");process.exit(0)}
2
- import{a as L,b as z,c as K,d as _,e as ie,f as W,g as G,h as A,i as Ce,j as se,k as Q,l as xe,m as J,n as le,o as Ie,p as P,q as Y,r as X,s as Z,t as ee}from"./chunk-EN7GRVEQ.js";import{c as Ee}from"./chunk-SUX5XB2Z.js";import{b as ve}from"./chunk-IETBWYHW.js";import{a as Se,d as ae,e as _e}from"./chunk-2IVE5AR3.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import{b as k,d as oe}from"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-6QRI3JVE.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import{a as we,b as Re,c as H,d as V,f as nn}from"./chunk-5A66EGEW.js";import{d as F,e as tn}from"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";import $ from"path";import o from"chalk";tn();oe();import{existsSync as te,mkdirSync as rn,writeFileSync as on,readFileSync as ce}from"fs";import{join as D,resolve as de}from"path";function ne(e,n){let r="shake256",t=JSON.stringify(n),a=e.prepare("SELECT * FROM witness_chain ORDER BY id DESC LIMIT 1").get(),i=a?ae(r,_e(a)):Se;e.prepare(`
3
- INSERT INTO witness_chain
4
- (prev_hash, action_hash, action_type, action_data, timestamp, actor, hash_algo)
5
- VALUES (?, ?, 'BRAIN_IMPORT', ?, ?, 'brain-import', ?)
6
- `).run(i,ae(r,t),t,new Date().toISOString(),r)}var an={rl_q_values:"includeQValues",dream_insights:"includeDreamInsights",dream_cycles:"includeDreamInsights",witness_chain:"includeWitnessChain",vectors:"includeVectors"};function sn(e,n){let r=an[e.tableName];return!(r&&n[r]===!1)}var ln=1e4;function cn(e,n,r,t){if(!sn(n,r))return le(D(t,n.fileName),[]),{count:0,rows:[]};let[a,i]=n.domainColumn?J(r.domains,n.domainColumn):[void 0,[]];if(r.domains&&r.domains.length>0&&!n.domainColumn){let s=r.domains.map(()=>"?").join(","),d=`manifest_id IN (SELECT id FROM learning_evidence_manifests WHERE task_family IN (${s}))`;["learning_evidence_segments","learning_segment_edges","learning_evidence_admissions"].includes(n.tableName)?(a=d,i=[...r.domains]):["pattern_manifest_lineage","pattern_segment_lineage"].includes(n.tableName)&&(a=`${d} AND pattern_id IN (SELECT id FROM qe_patterns WHERE qe_domain IN (${s}))`,i=[...r.domains,...r.domains])}if(se(e,n.tableName,a,i)>=ln){let s=n.blobColumns,d=s&&s.length>0?y=>W(y,s):void 0;return{count:Ie(D(t,n.fileName),xe(e,n.tableName,a,i),d)}}let l=Q(e,n.tableName,a,i);return n.blobColumns&&n.blobColumns.length>0&&(l=l.map(s=>W(s,n.blobColumns))),le(D(t,n.fileName),l),{count:l.length,rows:l}}function Be(e){let n=[];for(let r of _){let t=D(e,r.fileName);te(t)?n.push(A(ce(t,"utf-8"))):n.push(A(""))}return A(n.join(":"))}function Oe(e,n,r="memory.db"){let t=de(n.outputPath);te(t)||rn(t,{recursive:!0});let a=0,i={},c=new Set;for(let f of _){let y=cn(e,f,n,t);if(i[f.tableName]=y.count,a+=y.count,f.tableName==="qe_patterns"){if(y.rows)for(let h of y.rows)h.qe_domain&&c.add(h.qe_domain);else if(y.count>0){let[h,E]=f.domainColumn?J(n.domains,f.domainColumn):[void 0,[]],u=`SELECT DISTINCT qe_domain FROM qe_patterns ${h?`WHERE ${h} AND qe_domain IS NOT NULL`:"WHERE qe_domain IS NOT NULL"}`;try{let R=e.prepare(u).all(...E||[]);for(let g of R)c.add(g.qe_domain)}catch{}}}}let l=n.includeVectors!==!1?se(e,"vectors"):0,s=Be(t),d={version:"3.0",exportedAt:new Date().toISOString(),sourceDb:r,stats:{patternCount:i.qe_patterns||0,vectorCount:l,qValueCount:i.rl_q_values||0,dreamInsightCount:i.dream_insights||0,witnessChainLength:i.witness_chain||0,totalRecords:a},domains:[...c].sort(),checksum:s,tableRecordCounts:i};return on(D(t,"manifest.json"),JSON.stringify(d,null,2),"utf-8"),d}var dn=new Set(["qe_patterns","rl_q_values","dream_insights","witness_chain"]);function fn(e){return e==="1.0"?_.filter(n=>dn.has(n.tableName)):e==="3.0"?_:(console.warn(`[brain-import] Unknown manifest version '${e}'. Attempting full import \u2014 some files may be missing.`),_)}function Ae(e,n,r){let t=de(n),a=D(t,"manifest.json");if(!te(a))throw new Error(`Manifest not found at ${a}`);let i=k(ce(a,"utf-8")),c=Be(t);if(c!==i.checksum)throw new Error(`Checksum mismatch: expected ${i.checksum}, got ${c}. The export may have been tampered with or corrupted.`);let l=fn(i.version),s=0,d=0,f=0,y=()=>{let h=new Map,E=new Map,m=0;for(let u of l){let R=D(t,u.fileName),g=P(R,k);if(u.tableName==="witness_chain"){m+=g.length,d+=g.length;continue}u.blobColumns&&u.blobColumns.length>0&&(g=g.map(b=>G(b,u.blobColumns)));for(let b of g){let O=Y(b,h),x;if(u.dedupColumns&&u.dedupColumns.length>0)x=Z(e,u.tableName,O,u.dedupColumns,u.preserveId);else{let N=L[u.tableName]||"id",I=K[u.tableName],p=z[u.tableName];x=X(e,u.tableName,O,N,r.mergeStrategy,I,p,h,E,b.pattern_id)}s+=x.imported,d+=x.skipped,f+=x.conflicts}}ne(e,{sourceChecksum:i.checksum,sourceWitnessRows:m,importedRecords:s,skippedRecords:d,conflicts:f}),s+=1};return ee(e,r.dryRun??!1,y),{imported:s,skipped:d,conflicts:f}}function Ne(e){let n=de(e),r=D(n,"manifest.json");if(!te(r))throw new Error(`Manifest not found at ${r}`);return k(ce(r,"utf-8"))}nn();import{existsSync as j,readdirSync as mn,renameSync as un,statSync as pn,unlinkSync as fe,writeFileSync as gn}from"fs";import{basename as yn,dirname as hn,join as bn,resolve as re}from"path";var De=["",".idmap.json",".manifest.json"],wn=[...De,".lock"];function ke(e){for(let n of wn)try{let r=`${e}${n}`;j(r)&&fe(r)}catch{}}function Rn(e){let n=hn(e),r=`${yn(e)}.tmp.`,t;try{t=mn(n)}catch{return}for(let a of t){if(!a.startsWith(r))continue;let i=Number.parseInt(a.slice(r.length).split(".")[0],10);if(!(!Number.isInteger(i)||i<=0)&&!(i!==process.pid&&vn(i)))try{fe(bn(n,a))}catch{}}}function vn(e){try{return process.kill(e,0),!0}catch(n){return n.code==="EPERM"}}function $e(e,n,r="memory.db"){if(!V())throw new Error("@ruvector/rvf-node is not available. Install it or use --format jsonl instead.");let t=re(n.outputPath),a=n.dimension??384,i=`${t}.tmp.${process.pid}`;Rn(t),ke(i);let c=we(i,a),l=!1;try{let s={},d=new Set,f=0;for(let p of _){let[S,w]=p.domainColumn?J(n.domains,p.domainColumn):[void 0,[]],C=Q(e,p.tableName,S,w);if(n.domains&&n.domains.length>0){let v=new Set((s.learning_evidence_manifests??[]).map(B=>B.id)),q=new Set((s.qe_patterns??[]).map(B=>B.id));["learning_evidence_segments","learning_segment_edges","learning_evidence_admissions"].includes(p.tableName)?C=C.filter(B=>v.has(B.manifest_id)):p.tableName==="pattern_manifest_lineage"?C=C.filter(B=>{let T=B;return v.has(T.manifest_id)&&q.has(T.pattern_id)}):p.tableName==="pattern_segment_lineage"&&(C=C.filter(B=>{let T=B;return v.has(T.manifest_id)&&q.has(T.pattern_id)}))}if(p.tableName==="qe_patterns")for(let v of C)v.qe_domain&&d.add(v.qe_domain);let M=ie[p.tableName];M&&M.length>0&&(C=C.map(v=>W(v,M))),s[p.tableName]=C,f+=C.length}let y=0,h=[];if(Ce(e,"qe_pattern_embeddings")){let p=e.prepare("PRAGMA table_info('qe_pattern_embeddings')").all().some(w=>w.name==="space_id"),S=e.prepare(`SELECT pattern_id, embedding, dimension, ${p?"space_id":"NULL"} AS space_id
7
- FROM qe_pattern_embeddings`).all();for(let w of S)w.embedding&&w.dimension===a&&w.space_id&&h.push({id:`pe:${w.pattern_id}`,vector:new Float32Array(w.embedding.buffer,w.embedding.byteOffset,a),metadata:{tableName:"qe_pattern_embeddings",spaceId:w.space_id}})}h.length>0&&(y=c.ingest(h).accepted);let E={version:"3.0",format:"rvf",exportedAt:new Date().toISOString(),sourceDb:r,domains:[...d].sort(),tables:s},m=JSON.stringify(E),u=A(m),R=Buffer.from(m);c.embedKernel(R);let g=n.sign?c.sign(R)??void 0:void 0,b=g?n.signerKeyId??"default":void 0,O=c.fileId(),x=O?{fileId:O,parentId:c.parentId(),lineageDepth:c.lineageDepth()}:void 0,N=c.status(),I={version:"3.0",format:"rvf",exportedAt:E.exportedAt,sourceDb:r,stats:{patternCount:(s.qe_patterns||[]).length,embeddingCount:y,qValueCount:(s.rl_q_values||[]).length,dreamInsightCount:(s.dream_insights||[]).length,witnessChainLength:(s.witness_chain||[]).length,totalRecords:f,tableCounts:Object.fromEntries(_.map(({tableName:p})=>[p,s[p]?.length??0]))},domains:E.domains,checksum:u,rvfStatus:{totalVectors:N.totalVectors,totalSegments:N.totalSegments,fileSizeBytes:N.fileSizeBytes},...g?{signature:g,signerKeyId:b}:{},...x?{lineage:x}:{}};if(g)try{c.freeze()}catch{}if(gn(`${i}.manifest.json`,JSON.stringify(I,null,2),"utf-8"),c.close(),l=!0,j(t)&&!n.allowOverwriteRicher){let p;try{p=U(t)}catch(S){if(Sn(t)||!_n(S)){let w=S instanceof Error?S.message:String(S);throw new Error(`RVF_MIRROR_INSPECTION_AMBIGUOUS: the existing mirror is readable but its richness could not be established (${w}). Preserve/import it before retrying, or repeat with --force-overwrite-richer after preserving a backup.`)}}if(p){let S=p.stats.tableCounts,w=I.stats.tableCounts,C=_.map(({tableName:v})=>v).filter(v=>!S||!Number.isSafeInteger(S[v]));if(C.length>0)throw new Error(`RVF_MIRROR_INSPECTION_AMBIGUOUS: existing mirror lacks trustworthy counts for ${C.join(", ")}. Preserve/import it before retrying, or repeat with --force-overwrite-richer after preserving a backup.`);let M=_.map(({tableName:v})=>({tableName:v,existing:S[v],candidate:w[v]})).filter(({existing:v,candidate:q})=>v>q);if(M.length>0){let v=M.map(({tableName:q,existing:B,candidate:T})=>`${q} ${B} -> ${T}`).join(", ");throw new Error(`RVF_MIRROR_RICHER: refusing to replace richer mirrored tables: ${v}. Restore/import the mirror first, or repeat with --force-overwrite-richer after preserving a backup.`)}}}for(let p of[...De].reverse()){let S=`${i}${p}`,w=`${t}${p}`;j(S)?un(S,w):j(w)&&fe(w)}return I}catch(s){if(!l)try{c.close()}catch{}throw ke(i),s}}function Sn(e){let n;try{return n=H(re(e)),!!n.extractKernel()?.image}catch{return!1}finally{try{n?.close()}catch{}}}function _n(e){let n=e instanceof Error?e.message:String(e);return/ManifestNotFound|InvalidMagic|ChecksumMismatch|CorruptStore/i.test(n)}var En={patterns:"qe_patterns",qValues:"rl_q_values",dreamInsights:"dream_insights",witnessChain:"witness_chain"};function Te(e,n,r){if(!V())throw new Error("@ruvector/rvf-node is not available. Install it or use JSONL format.");let t=re(n);if(!j(t))throw new Error(`RVF file not found: ${t}`);let a=r.dryRun?H(t):Re(t);try{let i=a.verifyWitness();if(!i.valid&&(i.totalEntries>0||i.errors.length>0)){let m=i.errors.length>0?i.errors.join("; "):"unknown integrity error";throw new Error(`RVF witness verification failed: ${m}`)}let c=a.extractKernel();if(!c||!c.image)throw new Error("No brain data found in RVF file (missing kernel segment)");let l;try{l=JSON.parse(c.image.toString("utf-8"))}catch(m){throw new Error(`Failed to parse brain kernel data as JSON: ${m instanceof Error?m.message:m}`)}let s=0,d=0,f=0,y=0,h={};if(l.tables)Object.assign(h,l.tables);else for(let[m,u]of Object.entries(En)){let R=l[m];Array.isArray(R)&&(h[u]=R)}let E=()=>{let m=new Map,u=new Map,R=0;for(let g of _){let b=h[g.tableName];if(!b||!Array.isArray(b))continue;if(g.tableName==="witness_chain"){R+=b.length,d+=b.length;continue}let O=ie[g.tableName];O&&O.length>0&&(b=b.map(x=>G(x,O)));for(let x of b){let N=Y(x,m),I;if(g.dedupColumns&&g.dedupColumns.length>0)I=Z(e,g.tableName,N,g.dedupColumns,g.preserveId);else{let p=L[g.tableName]||"id",S=K[g.tableName],w=z[g.tableName];I=X(e,g.tableName,N,p,r.mergeStrategy,S,w,m,u,x.pattern_id)}if(I.imported)for(let p of O??[])N[p]instanceof Buffer&&y++;s+=I.imported,d+=I.skipped,f+=I.conflicts}}ne(e,{sourceChecksum:A(c.image.toString("utf-8")),sourceWitnessRows:R,importedRecords:s,skippedRecords:d,conflicts:f}),s+=1};if(ee(e,r.dryRun??!1,E),!r.dryRun&&f>0)try{a.compact()}catch{}return{imported:s,skipped:d,conflicts:f,embeddingsRestored:y}}finally{a.close()}}function U(e){if(!V())throw new Error("@ruvector/rvf-node is not available.");let n=re(e);if(!j(n))throw new Error(`RVF file not found: ${n}`);let r=H(n);try{let t=r.extractKernel();if(!t||!t.image)throw new Error("No brain data found in RVF file");let a=t.image.toString("utf-8"),i;try{i=JSON.parse(a)}catch(m){throw new Error(`Failed to parse brain kernel data as JSON: ${m instanceof Error?m.message:m}`)}let c=r.status(),l=pn(n).size,s=i.tables,d=s?s.qe_patterns?.length??0:i.patterns?.length??0,f=s?s.rl_q_values?.length??0:i.qValues?.length??0,y=s?s.dream_insights?.length??0:i.dreamInsights?.length??0,h=s?s.witness_chain?.length??0:i.witnessChain?.length??0,E=s&&typeof s=="object"&&!Array.isArray(s)?Object.fromEntries(Object.entries(s).filter(m=>Array.isArray(m[1])).map(([m,u])=>[m,u.length])):void 0;return{version:"3.0",format:"rvf",exportedAt:i.exportedAt??"unknown",sourceDb:i.sourceDb??"unknown",stats:{patternCount:d,embeddingCount:c.totalVectors,qValueCount:f,dreamInsightCount:y,witnessChainLength:h,...E?{tableCounts:E}:{}},domains:i.domains??[],checksum:A(a),rvfStatus:{totalVectors:c.totalVectors,totalSegments:c.totalSegments,fileSizeBytes:l}}}finally{r.close()}}function me(){return V()}oe();import{existsSync as pe,readFileSync as Cn,statSync as xn}from"fs";import{join as ue,resolve as Me}from"path";function Pe(e,n,r={}){let t=Me(e),a=Me(n),i=qe(t),c=qe(a),l=Fe(t,i),s=Fe(a,c),d=i==="jsonl"&&c==="jsonl",f=On({pathA:t,pathB:a,manifestA:l,manifestB:s,recordLevel:d,tableFilter:r.tableFilter,maxIdsPerBucket:r.maxIdsPerBucket??500}),y=new Set(l.domains),h=new Set(s.domains),E=l.domains.filter(b=>!h.has(b)),m=s.domains.filter(b=>!y.has(b)),u=l.checksum===s.checksum,R=l.version===s.version,g=u&&R&&f.every(b=>b.delta===0&&(b.added?.length??0)===0&&(b.removed?.length??0)===0&&(b.changed?.length??0)===0);return{pathA:t,pathB:a,formatA:i,formatB:c,manifestA:l,manifestB:s,checksumMatch:u,versionMatch:R,identical:g,recordLevel:d,tableDiffs:f,domainsOnlyInA:E,domainsOnlyInB:m}}function qe(e){if(!pe(e))throw new Error(`Path not found: ${e}`);if(e.endsWith(".rvf"))return"rvf";if(xn(e).isFile())throw new Error(`Unsupported brain export: ${e} (expected a .rvf file or a JSONL directory)`);return"jsonl"}function Fe(e,n){return n==="rvf"?Bn(e):In(e)}function In(e){let n=ue(e,"manifest.json");if(!pe(n))throw new Error(`Manifest not found at ${n}`);let r=k(Cn(n,"utf-8"));return je(r,"jsonl")}function Bn(e){let n=U(e);return je(n,"rvf")}function je(e,n){return{format:n,version:e.version??"unknown",exportedAt:e.exportedAt??"unknown",sourceDb:e.sourceDb??"unknown",checksum:e.checksum??"",totalRecords:e.stats?.totalRecords??0,domains:e.domains??[],tableRecordCounts:e.tableRecordCounts??{}}}function On(e){let n=e.tableFilter?_.filter(t=>t.tableName===e.tableFilter):_;if(e.tableFilter&&n.length===0)throw new Error(`Unknown table: ${e.tableFilter}`);let r=[];for(let t of n){let a=e.manifestA.tableRecordCounts[t.tableName]??0,i=e.manifestB.tableRecordCounts[t.tableName]??0,c=i-a,l,s,d;if(e.recordLevel&&An(t)){let f=Nn(ue(e.pathA,t.fileName),ue(e.pathB,t.fileName),t,e.maxIdsPerBucket);l=f.added,s=f.removed,d=f.changed}r.push({tableName:t.tableName,countA:a,countB:i,delta:c,...l!==void 0?{added:l}:{},...s!==void 0?{removed:s}:{},...d!==void 0?{changed:d}:{}})}return r}function An(e){return!0}function Nn(e,n,r,t){let a=Le(e,r),i=Le(n,r),c=[],l=[],s=[];for(let[d,f]of a){let y=i.get(d);if(y===void 0)l.length<t&&l.push(d);else if(y!==f){if(r.dedupColumns&&r.dedupColumns.length>0)continue;s.length<t&&s.push(d)}}for(let d of i.keys())a.has(d)||c.length<t&&c.push(d);return c.sort(),l.sort(),s.sort(),{added:c,removed:l,changed:s}}function Le(e,n){let r=new Map;if(!pe(e))return r;let t=P(e,k);for(let a of t){let i=kn(a,n);if(i===void 0)continue;let c=Dn(a);r.set(i,$n(c))}return r}function kn(e,n){if(n.dedupColumns&&n.dedupColumns.length>0){let a=[];for(let i of n.dedupColumns){let c=e[i];if(c==null)return;a.push(String(c))}return a.join("")}let r=L[n.tableName]??"id",t=e[r];if(t!=null)return String(t)}function Dn(e){let n=Object.keys(e).sort(),r={};for(let t of n)r[t]=e[t];return JSON.stringify(r)}function $n(e){return A(e)}oe();import{existsSync as ge,statSync as Tn}from"fs";import{join as Ve,resolve as Mn}from"path";var qn=20,Fn="qe_patterns";function We(e,n={}){let r=Mn(e);jn(r);let t=n.table??Fn,a=_.find(R=>R.tableName===t);if(!a)throw new Error(`Unknown table: ${t}`);let i=Ve(r,a.fileName);if(!ge(i))throw new Error(`Table file not found: ${a.fileName} (expected in ${r}). Was this export generated with --format jsonl?`);let c=P(i,k),l=a.domainColumn,s=Math.max(1,n.limit??qn),d=n.query?n.query.toLowerCase():void 0,f=n.domains&&n.domains.length>0?new Set(n.domains):void 0,y=n.since,h=n.until,E=n.patternType,m=0,u=[];for(let R of c)Ln(R,{domainColumn:l,domains:f,patternType:E,since:y,until:h,queryLower:d})&&(m++,u.length<s&&u.push(Pn(R,a.tableName,l)));return{table:t,inputPath:r,totalScanned:c.length,totalMatched:m,limit:s,hits:u,truncated:m>s}}function Ln(e,n){if(n.domains){if(!n.domainColumn)return!1;let r=e[n.domainColumn];if(typeof r!="string"||!n.domains.has(r))return!1}if(n.patternType!==void 0&&e.pattern_type!==n.patternType)return!1;if(n.since!==void 0||n.until!==void 0){let r=Je(e);if(r===void 0||n.since!==void 0&&r<n.since||n.until!==void 0&&r>n.until)return!1}if(n.queryLower!==void 0){let r=typeof e.name=="string"?e.name.toLowerCase():"",t=typeof e.description=="string"?e.description.toLowerCase():"";if(!r.includes(n.queryLower)&&!t.includes(n.queryLower))return!1}return!0}function Je(e){for(let n of["updated_at","created_at","timestamp"]){let r=e[n];if(typeof r=="string"&&r.length>0)return r}}function Pn(e,n,r){let t=(typeof e.id=="string"||typeof e.id=="number"?String(e.id):void 0)??`${n}:?`,a={name:typeof e.name=="string"?e.name:void 0,description:typeof e.description=="string"?e.description:void 0,domain:r&&typeof e[r]=="string"?e[r]:void 0,patternType:typeof e.pattern_type=="string"?e.pattern_type:void 0,confidence:typeof e.confidence=="number"?e.confidence:void 0,updatedAt:Je(e)};return{id:t,display:a,row:e}}function jn(e){if(!ge(e))throw new Error(`Path not found: ${e}`);if(Tn(e).isFile())throw e.endsWith(".rvf")?new Error("Brain search does not support RVF exports. Re-export with --format jsonl, or use `aqe brain info` for RVF summaries."):new Error(`Unsupported brain export: ${e} (expected a JSONL directory)`);let r=Ve(e,"manifest.json");if(!ge(r))throw new Error(`Manifest not found at ${r}. Is this a brain export directory?`)}function Ue(e,n){if(!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='qe_patterns'").get())return{created:0,skipped:0};e.exec(`
8
- CREATE TEMP TABLE IF NOT EXISTS _covered_patterns (
9
- pattern_id TEXT PRIMARY KEY
10
- )
11
- `),e.exec("DELETE FROM _covered_patterns"),e.exec(`
12
- INSERT INTO _covered_patterns (pattern_id)
13
- SELECT DISTINCT json_extract(action_data, '$.patternId')
14
- FROM witness_chain
15
- WHERE action_type = 'PATTERN_CREATE'
16
- AND json_extract(action_data, '$.patternId') IS NOT NULL
17
- `),e.exec(`
18
- INSERT OR IGNORE INTO _covered_patterns (pattern_id)
19
- SELECT DISTINCT json_extract(action_data, '$.pattern_id')
20
- FROM witness_chain
21
- WHERE action_type = 'PATTERN_CREATE'
22
- AND json_extract(action_data, '$.pattern_id') IS NOT NULL
23
- `);let t=e.prepare(`SELECT p.id, p.pattern_type, p.qe_domain, p.name, p.created_at
24
- FROM qe_patterns p
25
- LEFT JOIN _covered_patterns c ON p.id = c.pattern_id
26
- WHERE c.pattern_id IS NULL
27
- ORDER BY p.created_at ASC`).all(),i=e.prepare("SELECT COUNT(*) as count FROM qe_patterns").get().count-t.length,c=0;for(let l of t)n.append("PATTERN_CREATE",{patternId:l.id,patternType:l.pattern_type,qeDomain:l.qe_domain,name:l.name,originalCreatedAt:l.created_at,backfilled:!0},"system:backfill"),c++;return e.exec("DROP TABLE IF EXISTS _covered_patterns"),{created:c,skipped:i}}async function He(e,n){if(Vn(n.format)==="rvf"){let a=F(e,{readonly:!0});try{return $e(a,{outputPath:n.outputPath,domains:n.domains,allowOverwriteRicher:n.allowOverwriteRicher},e)}finally{a.close()}}let t=F(e,{readonly:!0});try{return Oe(t,n,e)}finally{t.close()}}async function ze(e,n,r){if(Xe(n,r.format)==="rvf"){let i=F(e);try{return Te(i,n,{mergeStrategy:r.mergeStrategy,dryRun:r.dryRun})}finally{i.close()}}let a=F(e);try{return Ae(a,n,r)}finally{a.close()}}async function Ke(e,n){return Xe(e,n)==="rvf"?U(e):Ne(e)}async function Ge(e,n,r={}){return Pe(e,n,r)}async function Qe(e,n={}){return We(e,n)}async function Ye(e){let n=F(e);try{let r=Ee(n,ve());return await r.initialize(),Ue(n,r)}finally{n.close()}}function Vn(e){if(e==="jsonl")return"jsonl";if(e==="rvf"){if(!me())throw new Error("RVF format requested but @ruvector/rvf-node is not available on this platform. Use --format jsonl instead.");return"rvf"}return me()?"rvf":"jsonl"}function Xe(e,n){return n==="rvf"?"rvf":n==="jsonl"?"jsonl":e.endsWith(".rvf")?"rvf":"jsonl"}var be=class{name="brain";description="Export, import, and inspect QE brain state";cleanupAndExit;ensureInitialized;constructor(n,r){this.cleanupAndExit=n,this.ensureInitialized=r}register(n,r){let t=n.command("brain").description(this.description);t.command("export").description("Export brain state to a portable directory").requiredOption("-o, --output <path>","Output directory path").option("--format <format>","Export format: rvf (default) or jsonl","rvf").option("--db <path>","Source database path").option("--force-overwrite-richer","Allow replacing an existing RVF with fewer patterns",!1).action(async a=>{await this.executeExport(a)}),t.command("import").description("Import brain state from an export directory").requiredOption("-i, --input <path>","Path to brain export directory").option("--strategy <strategy>","Merge strategy","skip-conflicts").option("--dry-run","Preview import without writing",!1).option("--db <path>","Target database path").action(async a=>{await this.executeImport(a)}),t.command("info").description("Show manifest info for a brain export").requiredOption("-i, --input <path>","Path to brain export directory").action(async a=>{await this.executeInfo(a)}),t.command("witness-backfill").description("Create witness chain entries for patterns that predate the witness chain").option("--db <path>","Database path").action(async a=>{await this.executeWitnessBackfill(a)}),t.command("diff").description("Compare two brain exports (JSONL directory or .rvf file)").argument("<a>","Path to first brain export").argument("<b>","Path to second brain export").option("--table <name>","Restrict comparison to a single table").option("--verbose","Show the IDs of added/removed/changed records",!1).option("--json","Emit the diff as JSON to stdout",!1).action(async(a,i,c)=>{await this.executeDiff(a,i,c)}),t.command("search").description("Search a JSONL brain export with filters").requiredOption("-i, --input <path>","Path to brain export directory (JSONL)").option("--table <name>","Table to search (default: qe_patterns)").option("--domain <name...>","Restrict to one or more domains").option("--pattern-type <type>","Restrict to a specific pattern_type (qe_patterns only)").option("--since <iso>","Include rows with timestamp \u2265 <iso>").option("--until <iso>","Include rows with timestamp \u2264 <iso>").option("-q, --query <text>","Substring match across name + description (case-insensitive)").option("-l, --limit <n>","Maximum results to return","20").option("--json","Emit results as JSON to stdout",!1).action(async a=>{await this.executeSearch(a)})}async executeExport(n){try{console.log(o.blue(`
28
- Exporting brain state (format: ${n.format})...
29
- `));let r=await ye(n.db),t=await He(r,{outputPath:$.resolve(n.output),format:n.format,allowOverwriteRicher:n.forceOverwriteRicher});if(console.log(o.green(" Export complete.")),console.log(` Format: ${o.cyan("format"in t?t.format??"jsonl":"jsonl")}`),console.log(` Patterns: ${o.cyan(t.stats.patternCount)}`),"embeddingCount"in t.stats?console.log(` Vectors: ${o.cyan(t.stats.embeddingCount)}`):"vectorCount"in t.stats&&console.log(` Vectors: ${o.cyan(t.stats.vectorCount)}`),"rvfStatus"in t){let a=t.rvfStatus;console.log(` RVF Size: ${o.cyan(Ze(a.fileSizeBytes))}`),console.log(` Segments: ${o.cyan(a.totalSegments)}`)}console.log(` Checksum: ${o.gray(t.checksum)}`),console.log(` Output: ${o.cyan($.resolve(n.output))}`),console.log(""),await this.cleanupAndExit(0)}catch(r){console.error(o.red(`
30
- Brain export failed:`),r),await this.cleanupAndExit(1)}}async executeImport(n){try{n.dryRun?console.log(o.yellow(`
31
- Dry-run mode \u2014 no data will be written.
32
- `)):console.log(o.blue(`
33
- Importing brain state...
34
- `));let r=await ye(n.db),t=await ze(r,$.resolve(n.input),{mergeStrategy:n.strategy,dryRun:n.dryRun});console.log(o.green(" Import complete.")),console.log(` Imported: ${o.cyan(t.imported)}`),console.log(` Skipped: ${o.yellow(t.skipped)}`),console.log(` Conflicts: ${o.red(t.conflicts)}`),"embeddingsRestored"in t&&console.log(` Embeddings: ${o.cyan(t.embeddingsRestored)}`),console.log(""),await this.cleanupAndExit(0)}catch(r){console.error(o.red(`
35
- Brain import failed:`),r),await this.cleanupAndExit(1)}}async executeInfo(n){try{console.log(o.blue(`
36
- Brain Export Info
37
- `));let r=$.resolve(n.input),t=await Ke(r),a="format"in t?t.format??"jsonl":"jsonl";if(console.log(` Version: ${o.cyan(t.version)}`),console.log(` Format: ${o.cyan(a)}`),console.log(` Exported: ${o.cyan(t.exportedAt)}`),console.log(` Source DB: ${o.cyan(t.sourceDb)}`),console.log(o.blue(`
38
- Learning Data:`)),console.log(` Patterns: ${o.cyan(t.stats.patternCount)}`),"qValueCount"in t.stats&&console.log(` Q-Values: ${o.cyan(t.stats.qValueCount)}`),"dreamInsightCount"in t.stats){let l=t.stats.dreamInsightCount,d=("tableRecordCounts"in t?t.tableRecordCounts:void 0)?.dream_cycles,f=d!==void 0?` (${d} cycles)`:"";console.log(` Dream Insights: ${o.cyan(l)}${o.gray(f)}`)}"witnessChainLength"in t.stats&&console.log(` Witness Chain: ${o.cyan(t.stats.witnessChainLength)} entries`),"embeddingCount"in t.stats?console.log(` Embeddings: ${o.cyan(t.stats.embeddingCount)}`):"vectorCount"in t.stats&&console.log(` Vectors: ${o.cyan(t.stats.vectorCount)}`);let i="tableRecordCounts"in t?t.tableRecordCounts:void 0;if(i){let l=Object.entries(i).filter(([s,d])=>d>0&&!["qe_patterns","rl_q_values","dream_insights","dream_cycles","witness_chain","vectors","qe_pattern_embeddings"].includes(s));if(l.length>0)for(let[s,d]of l){let y=`${s.replace(/_/g," ").replace(/\b\w/g,h=>h.toUpperCase())}:`.padEnd(15);console.log(` ${y}${o.cyan(d)}`)}}let c="totalRecords"in t.stats?t.stats.totalRecords:void 0;if(c!==void 0&&(console.log(o.blue(`
39
- Summary:`)),console.log(` Total Records: ${o.cyan(c)}`)),"domains"in t&&Array.isArray(t.domains)&&t.domains.length>0&&(c||console.log(o.blue(`
40
- Summary:`)),console.log(` Domains: ${o.cyan(t.domains.join(", "))}`)),"rvfStatus"in t){let l=t.rvfStatus;console.log(o.blue(`
41
- RVF Details:`)),console.log(` File Size: ${o.cyan(Ze(l.fileSizeBytes))}`),console.log(` Vectors: ${o.cyan(l.totalVectors)}`),console.log(` Segments: ${o.cyan(l.totalSegments)}`)}if("lineage"in t){let l=t.lineage;l&&(console.log(o.blue(`
42
- Lineage:`)),console.log(` File ID: ${o.cyan(l.fileId)}`),console.log(` Parent ID: ${o.cyan(l.parentId??"none (root)")}`),console.log(` Depth: ${o.cyan(l.lineageDepth)}`))}if("signature"in t){let l=t.signature,s=t.signerKeyId;console.log(o.blue(`
43
- Signature:`)),l?(console.log(` Status: ${o.green("Signed")}`),console.log(` Key ID: ${o.cyan(s??"unknown")}`),console.log(` Signature: ${o.gray(l.slice(0,32)+"...")}`)):console.log(` Status: ${o.yellow("Unsigned")}`)}console.log(`
44
- Checksum: ${o.gray(t.checksum)}`),console.log(""),await this.cleanupAndExit(0)}catch(r){console.error(o.red(`
45
- Failed to read brain info:`),r),await this.cleanupAndExit(1)}}async executeDiff(n,r,t){try{let a=await Ge($.resolve(n),$.resolve(r),{tableFilter:t.table});if(t.json){process.stdout.write(JSON.stringify(a,null,2)+`
46
- `),await this.cleanupAndExit(a.identical?0:1);return}Un(a,t.verbose),await this.cleanupAndExit(a.identical?0:1)}catch(a){console.error(o.red(`
47
- Brain diff failed:`),a),await this.cleanupAndExit(2)}}async executeSearch(n){try{let r=Wn(n.limit),t=Jn(n.domain),a=await Qe($.resolve(n.input),{table:n.table,domains:t,patternType:n.patternType,since:n.since,until:n.until,query:n.query,limit:r});if(n.json){process.stdout.write(JSON.stringify(a,null,2)+`
48
- `),await this.cleanupAndExit(a.totalMatched>0?0:3);return}Kn(a),await this.cleanupAndExit(a.totalMatched>0?0:3)}catch(r){console.error(o.red(`
49
- Brain search failed:`),r),await this.cleanupAndExit(2)}}async executeWitnessBackfill(n){try{console.log(o.blue(`
50
- Running witness chain backfill...
51
- `));let r=await ye(n.db),t=await Ye(r);console.log(o.green(" Backfill complete.")),console.log(` Created: ${o.cyan(t.created)} new witness entries`),console.log(` Skipped: ${o.cyan(t.skipped)} (already witnessed)`),console.log(""),await this.cleanupAndExit(0)}catch(r){console.error(o.red(`
52
- Witness backfill failed:`),r),await this.cleanupAndExit(1)}}getHelp(){return`
53
- Export, import, and inspect QE brain state.
54
-
55
- Formats:
56
- rvf \u2014 Single portable .rvf file (default, requires @ruvector/rvf-node)
57
- jsonl \u2014 JSONL directory format (fallback when native not available)
58
-
59
- Usage:
60
- aqe brain export -o brain.rvf [--format rvf] [--db <path>]
61
- aqe brain export -o ./brain-dir --format jsonl [--db <path>]
62
- aqe brain import -i brain.rvf [--strategy skip-conflicts] [--dry-run] [--db <path>]
63
- aqe brain info -i brain.rvf
64
-
65
- Subcommands:
66
- export Export brain state to a portable .rvf file or JSONL directory
67
- import Import a brain export into the local database
68
- info Show manifest metadata for an existing brain export
69
- diff Compare two brain exports (manifest always; record-level for JSONL)
70
- search Filtered search over a JSONL brain export
71
-
72
- Examples:
73
- aqe brain export -o .agentic-qe/brain.rvf
74
- aqe brain export -o .agentic-qe/brain.rvf --format rvf
75
- aqe brain export -o ./brain-export --format jsonl
76
- aqe brain import -i .agentic-qe/brain.rvf --strategy latest-wins
77
- aqe brain import -i .agentic-qe/brain.rvf --dry-run
78
- aqe brain info -i .agentic-qe/brain.rvf
79
- aqe brain diff ./brain-a ./brain-b --verbose
80
- aqe brain search -i ./brain-export --query oauth --domain test-generation
81
- aqe brain search -i ./brain-export --since 2026-03-01 --limit 50 --json
82
- `}};async function ye(e){if(e)return e;let{findProjectRoot:n}=await import("./unified-memory-FL26RTV3.js");return $.join(n(),".agentic-qe","memory.db")}function Ze(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Wn(e){let n=Number.parseInt(e,10);return!Number.isFinite(n)||n<1?20:n}function Jn(e){if(e===void 0)return;let n=Array.isArray(e)?e:[e],r=[];for(let t of n)for(let a of t.split(",")){let i=a.trim();i&&r.push(i)}return r.length>0?r:void 0}function Un(e,n){console.log(o.blue(`
83
- Brain Diff
84
- `)),console.log(` A: ${o.cyan(e.pathA)} (${e.formatA})`),console.log(` B: ${o.cyan(e.pathB)} (${e.formatB})`),console.log(` Versions: ${o.cyan(e.manifestA.version)} \u2192 ${o.cyan(e.manifestB.version)}`+(e.versionMatch?o.gray(" (match)"):o.yellow(" (differ)"))),console.log(` Checksums: ${o.gray(e.manifestA.checksum.slice(0,12))}\u2026 \u2192 ${o.gray(e.manifestB.checksum.slice(0,12))}\u2026`+(e.checksumMatch?o.gray(" (match)"):o.yellow(" (differ)"))),console.log(` Exported: ${o.gray(e.manifestA.exportedAt)} \u2192 ${o.gray(e.manifestB.exportedAt)}`),console.log(` Records: ${o.cyan(e.manifestA.totalRecords)} \u2192 ${o.cyan(e.manifestB.totalRecords)} `+en(e.manifestB.totalRecords-e.manifestA.totalRecords)),(e.domainsOnlyInA.length>0||e.domainsOnlyInB.length>0)&&(console.log(o.blue(`
85
- Domains:`)),e.domainsOnlyInA.length>0&&console.log(` Only in A: ${o.yellow(e.domainsOnlyInA.join(", "))}`),e.domainsOnlyInB.length>0&&console.log(` Only in B: ${o.yellow(e.domainsOnlyInB.join(", "))}`)),e.recordLevel||console.log(o.gray(`
86
- Note: record-level diff is only available when both sides are JSONL exports.
87
- Per-table counts shown below; re-export with --format jsonl for added/removed/changed IDs.`)),console.log(o.blue(`
88
- Tables:`));let r=e.tableDiffs.filter(Hn);if(r.length===0)console.log(o.gray(" (no differences)"));else for(let t of r)console.log(` ${t.tableName.padEnd(28)} ${o.cyan(String(t.countA).padStart(7))} \u2192 ${o.cyan(String(t.countB).padStart(7))} ${en(t.delta)}`+zn(t,n)),n&&(t.added&&t.added.length>0&&he("added",t.added),t.removed&&t.removed.length>0&&he("removed",t.removed),t.changed&&t.changed.length>0&&he("changed",t.changed));console.log(""),e.identical?console.log(o.green(` Result: identical
89
- `)):console.log(o.yellow(` Result: differences found
90
- `))}function Hn(e){return!!(e.delta!==0||e.added&&e.added.length>0||e.removed&&e.removed.length>0||e.changed&&e.changed.length>0)}function en(e){return e===0?o.gray("(\xB10)"):e>0?o.green(`(+${e})`):o.red(`(${e})`)}function zn(e,n){let r=[];return e.added&&e.added.length>0&&r.push(o.green(`+${e.added.length}`)),e.removed&&e.removed.length>0&&r.push(o.red(`-${e.removed.length}`)),e.changed&&e.changed.length>0&&r.push(o.yellow(`~${e.changed.length}`)),r.length===0?"":n?" "+r.join(" "):" "+o.gray("[")+r.join(" ")+o.gray("]")}function he(e,n){let r=n.slice(0,10).join(", "),t=n.length>10?o.gray(` \u2026(+${n.length-10} more)`):"";console.log(` ${o.gray(e+":")} ${r}${t}`)}function Kn(e){if(console.log(o.blue(`
91
- Brain Search
92
- `)),console.log(` Input: ${o.cyan(e.inputPath)}`),console.log(` Table: ${o.cyan(e.table)}`),console.log(` Scanned: ${o.cyan(e.totalScanned)} Matched: ${o.cyan(e.totalMatched)} Shown: ${o.cyan(e.hits.length)}`+(e.truncated?o.yellow(` (truncated to limit ${e.limit})`):"")),e.hits.length===0){console.log(o.yellow(`
93
- No matching rows.
94
- `));return}console.log("");for(let n of e.hits){let r=o.cyan(n.id)+(n.display.patternType?o.gray(` ${n.display.patternType}`):"")+(n.display.domain?o.gray(` [${n.display.domain}]`):"")+(n.display.confidence!==void 0?o.gray(` conf=${n.display.confidence.toFixed(2)}`):"");if(console.log(` ${r}`),n.display.name&&console.log(` ${o.bold(n.display.name)}`),n.display.description){let t=n.display.description.length>200?n.display.description.slice(0,200)+"\u2026":n.display.description;console.log(` ${o.gray(t)}`)}n.display.updatedAt&&console.log(` ${o.gray(n.display.updatedAt)}`),console.log("")}}function Dt(e,n){return new be(e,n)}export{be as BrainHandler,Dt as createBrainHandler};
@@ -1,2 +0,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.12");process.exit(0)}
2
- import{a}from"./chunk-5ADXFUMO.js";import"./chunk-KJDI5CHX.js";import"./chunk-SG2TX72G.js";import"./chunk-GKFV6CUD.js";import"./chunk-L7NGKANW.js";import"./chunk-66PXR3NI.js";import"./chunk-WTAUF6O4.js";import"./chunk-SPC4RBLF.js";import"./chunk-WGTEZT7G.js";import"./chunk-IPA7K556.js";import"./chunk-ZROAMFX2.js";import"./chunk-YUA6ZKKY.js";import"./chunk-3IU4LDZR.js";import"./chunk-YVJEUX3I.js";import"./chunk-6QRI3JVE.js";import"./chunk-7TA5MUPW.js";import"./chunk-YWWMNTBF.js";import"./chunk-UJNGGFGX.js";import"./chunk-ADUAJIAU.js";import"./chunk-7OEFBWAG.js";import"./chunk-QCPVUNN3.js";import"./chunk-35MIUSXQ.js";import"./chunk-DZGPUGUG.js";import"./chunk-4LWMAAWK.js";import"./chunk-IA55PFLG.js";import"./chunk-W4II6SIH.js";import"./chunk-O3IM4WRZ.js";import"./chunk-WDEXOLK2.js";export{a as BrowserWorkflowTool};
@@ -1,3 +0,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.12");process.exit(0)}
2
- import{a as h,b as y}from"./chunk-33I2ZP6E.js";import{b as p}from"./chunk-KA5SHLMW.js";import{f as g,k as v,l as f,m as b,o as c}from"./chunk-YIDAXOUX.js";import k from"chalk";var C=3,D="instrumented-report",R="static-estimation";async function T(e,r=a=>console.log(a)){let a=await v(e);if(a.status==="target-missing")return{kind:"no-data",reason:"target-missing",message:c("target-missing",e,null)};if(a.status==="evaluated"){let{evaluation:n,projectRoot:t}=a;if(n.status==="measured"){let{files:l,evidence:o}=n;return{kind:"data",data:{files:l,summary:h(l),instrumented:!0,...o.unmeasuredFiles.length>0?{unmeasuredFiles:o.unmeasuredFiles}:{}},projectRoot:t,evidence:o}}return{kind:"no-data",reason:n.reason,message:c(n.reason,e,t)}}let s=p(a.target,{includeTests:!1});return s.length===0?{kind:"no-sources"}:(r(k.gray(` Analyzing ${s.length} files...
3
- `)),{kind:"data",data:y(s,a.projectRoot),projectRoot:a.projectRoot})}function x(e){return{branch:e.files.some(r=>r.branches.total>0),function:e.files.some(r=>r.functions.total>0),statement:e.files.some(r=>r.statements.total>0)}}var N=e=>e==="target-missing"||e==="unreadable-report";function w(){return"UNMEASURED: no coverage report exists for this project, so these figures are a STATIC ESTIMATE derived from source shape \u2014 not measured coverage. No threshold verdict is given and nothing is stored as evidence. Run your tests with coverage first (e.g. `npm test -- --coverage`) and re-run."}async function M(e,r,a,s){let n=await T(r,s);if(n.kind==="no-sources")return n;if(n.kind==="no-data")return N(n.reason)?{kind:"error",reason:n.reason,message:n.message}:{kind:"unmeasured",reason:n.reason,message:n.message};let t=n.data,l=t.instrumented,o=await e.analyze({coverageData:t,threshold:a,includeFileDetails:!0,measured:l,...n.projectRoot?{projectRoot:n.projectRoot}:{}});if(!o.success||!o.value)return{kind:"analysis-failed",message:o.error?.message||"Coverage analysis failed"};let i=o.value;if(!l)return{kind:"estimate",data:t,summary:{...i.summary},message:w()};let u=x(t),m=f(i.summary,a,u),d=g(n.evidence,n.projectRoot??r),E={...m,meetsThreshold:m.meetsThreshold&&d.length===0};return{kind:"measured",data:t,collected:u,verdict:E,insufficientEvidence:d,...n.evidence?{evidence:n.evidence}:{},summary:{...i.summary,branch:u.branch?i.summary.branch:null,function:u.function?i.summary.function:null,statement:u.statement?i.summary.statement:null},recommendations:b(i.recommendations??[],m,a,u)}}function z(e,r){switch(e.kind){case"measured":{if(e.insufficientEvidence.length>0)return C;let{overall:a,meetsThreshold:s}=e.verdict;return s?a<r+5?2:0:1}case"estimate":case"unmeasured":return C;case"no-sources":return 0;default:return 1}}function O(e,r,a){let s={line:null,branch:null,function:null,statement:null};switch(e.kind){case"measured":return{summary:e.summary,meetsThreshold:e.verdict.meetsThreshold,threshold:r,recommendations:e.recommendations,measured:!0,estimated:!1,coverageMethod:D,branchDataCollected:e.collected.branch,functionDataCollected:e.collected.function,statementDataCollected:e.collected.statement,...e.data.unmeasuredFiles?.length?{unmeasuredFiles:e.data.unmeasuredFiles}:{},...e.evidence?{evidenceStatus:e.evidence.status}:{},...e.evidence?.stale?{staleReport:e.evidence.stale}:{},...e.insufficientEvidence.length>0?{warning:`INSUFFICIENT EVIDENCE: ${e.insufficientEvidence.join("; ")}`}:{}};case"estimate":return{summary:e.summary,meetsThreshold:null,threshold:r,measured:!1,estimated:!0,unmeasured:!0,coverageMethod:R,reason:"no-coverage-report",target:a,warning:e.message};case"unmeasured":case"error":return{summary:s,meetsThreshold:null,threshold:r,measured:!1,unmeasured:e.kind==="unmeasured",reason:e.reason,target:a,warning:e.message};case"analysis-failed":return{summary:s,meetsThreshold:null,threshold:r,measured:!1,target:a,error:e.message};case"no-sources":return{summary:s,meetsThreshold:null,threshold:r,measured:!1,target:a,warning:"No source files found"}}}export{C as a,T as b,M as c,z as d,O as e};
@@ -1,62 +0,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.12");process.exit(0)}
2
- import{r as C,v as M}from"./chunk-L7NGKANW.js";import{i as b}from"./chunk-7TA5MUPW.js";M();import{createRequire as H}from"node:module";var w=H(import.meta.url),_=null;function T(){if(_)return _;let E=w("hnswlib-node");if(!E.HierarchicalNSW)throw new Error("hnswlib-node module missing HierarchicalNSW export");return _=E.HierarchicalNSW,_}function U(){return!0}var x=class{indexes;config;initialized;nextId;unifiedAdapters=null;useUnified;constructor(e={}){this.config={M:e.M||16,efConstruction:e.efConstruction||200,efSearch:e.efSearch||50,dimension:e.dimension||384,metric:e.metric||"cosine",quantization:e.quantization||"none"},this.indexes=new Map,this.initialized=new Set,this.nextId=new Map,this.useUnified=U(),this.useUnified&&(this.unifiedAdapters=new Map)}initializeIndex(e){if(this.initialized.has(e))return;if(this.useUnified&&this.unifiedAdapters)try{let{HnswAdapter:s}=w("../../../kernel/hnsw-adapter.js"),d=new s(`embedding-${e}`,{dimensions:this.config.dimension,M:this.config.M,efConstruction:this.config.efConstruction,efSearch:this.config.efSearch,metric:this.config.metric==="dotproduct"?"cosine":this.config.metric});this.unifiedAdapters.set(e,d),this.initialized.add(e),this.nextId.set(e,0);return}catch{}let t={cosine:"cosine",euclidean:"l2",dotproduct:"ip"}[this.config.metric]||"cosine",n=T(),r=new n(t,this.config.dimension);r.initIndex({maxElements:1e4,m:this.config.M,efConstruction:this.config.efConstruction}),this.indexes.set(e,r),this.initialized.add(e),this.nextId.set(e,0)}addEmbedding(e,i){let t=e.namespace;this.initialized.has(t)||this.initializeIndex(t);let n=i??this.nextId.get(t);i===void 0&&this.nextId.set(t,n+1);let r=this.unifiedAdapters?.get(t);if(r){let o=e.vector instanceof Float32Array?e.vector:new Float32Array(this.toFloatArray(e.vector));return r.add(n,o),n}let s=this.indexes.get(t),d=this.toFloatArray(e.vector);return s.addPoint(d,n),n}addEmbeddingsBatch(e){return e.map(i=>this.addEmbedding(i.embedding,i.id))}search(e,i={}){let t=i.namespace||e.namespace;if(!this.initialized.has(t))return[];let n=i.limit||10,r=this.unifiedAdapters?.get(t);if(r){let l=e.vector instanceof Float32Array?e.vector:new Float32Array(this.toFloatArray(e.vector));return r.search(l,n).map(u=>({id:u.id,distance:1-u.score}))}let s=this.indexes.get(t),d=this.toFloatArray(e.vector),o=s.searchKnn(d,n);return o.neighbors.map((l,m)=>({id:l,distance:o.distances[m]}))}getIndexStats(e){if(!this.initialized.has(e))return null;let i=this.unifiedAdapters?.get(e);return i?{size:i.size(),maxElements:1e4,dimension:i.dimensions(),metric:this.config.metric}:{size:this.indexes.get(e).getCurrentCount(),maxElements:1e4,dimension:this.config.dimension,metric:this.config.metric}}async saveIndex(e,i){if(!this.initialized.has(e))throw new Error(`Namespace ${e} not initialized`);if(this.unifiedAdapters?.has(e)){console.warn(`[HNSWEmbeddingIndex] saveIndex() is a no-op for namespace '${e}' \u2014 unified HnswAdapter manages persistence internally.`);return}await this.indexes.get(e).writeIndex(i)}async loadIndex(e,i){if(this.useUnified){console.warn(`[HNSWEmbeddingIndex] loadIndex() is a no-op for namespace '${e}' \u2014 unified HnswAdapter manages persistence internally. Initialize via initializeIndex() instead.`);return}let n={cosine:"cosine",euclidean:"l2",dotproduct:"ip"}[this.config.metric]||"cosine",r=T(),s=new r(n,this.config.dimension);await s.readIndex(i),this.indexes.set(e,s),this.initialized.add(e)}clearIndex(e){if(this.initialized.has(e)){let i=this.unifiedAdapters?.get(e);i&&(i.clear?.(),this.unifiedAdapters.delete(e)),this.indexes.delete(e),this.initialized.delete(e),this.nextId.delete(e)}}clearAll(){if(this.unifiedAdapters){for(let e of this.unifiedAdapters.values())e.clear?.();this.unifiedAdapters.clear()}this.indexes.clear(),this.initialized.clear(),this.nextId.clear()}resizeIndex(e,i){this.initialized.has(e)&&(this.clearIndex(e),this.initializeIndex(e))}setEfSearch(e){this.config.efSearch=e}toFloatArray(e){if(Array.isArray(e))return e;if(e instanceof Float32Array)return Array.from(e);if(e instanceof Int8Array){let i=new Array(e.length);for(let t=0;t<e.length;t++)i[t]=e[t]/128;return i}if(e instanceof Uint8Array){let i=new Array(e.length);for(let t=0;t<e.length;t++)i[t]=(e[t]-128)/128;return i}throw new Error(`Unsupported vector type: ${typeof e}`)}getConfig(){return{...this.config}}isInitialized(e){return this.initialized.has(e)}getInitializedNamespaces(){return Array.from(this.initialized)}getSize(e){if(!this.initialized.has(e))return 0;let i=this.unifiedAdapters?.get(e);return i?i.size():this.nextId.get(e)||0}};var O={mergeSimilarityThreshold:.85,maxMergesPerRun:50,softThreshold:400,hardThreshold:2e3,archiveMinAgeDays:30,archiveQualityThreshold:.15,mergeQualityBoost:.02,contradictionSimilarityThreshold:.85,contradictionQualityDelta:.4},R=class{config;db=null;initialized=!1;constructor(e={}){this.config={...O,...e}}async initialize(e){if(!this.initialized){if(e)this.db=e;else{let i=C();await i.initialize(),this.db=i.getDatabase()}this.initialized=!0}}async consolidateAll(e){this.ensureInitialized();let i={merged:0,contradicted:0,qualityUpdated:0,archived:0,hardDeleted:0,activeRemaining:0,domainsProcessed:[]},t=this.db.prepare("SELECT domain, COUNT(*) as cnt FROM captured_experiences WHERE consolidated_into IS NULL GROUP BY domain").all(),n=e?t.filter(s=>e.includes(s.domain)):t.filter(s=>s.cnt>this.config.softThreshold);for(let{domain:s,cnt:d}of n){let o=await this.consolidateDomain(s,d);i.merged+=o.merged,i.contradicted+=o.contradicted,i.qualityUpdated+=o.qualityUpdated,i.archived+=o.archived,i.hardDeleted+=o.hardDeleted,i.domainsProcessed.push(s)}let r=this.db.prepare("SELECT COUNT(*) as cnt FROM captured_experiences WHERE consolidated_into IS NULL").get();return i.activeRemaining=r.cnt,(i.merged>0||i.archived>0||i.contradicted>0)&&console.log(`[ExperienceConsolidator] Consolidated: ${i.merged} merged, ${i.contradicted} contradicted, ${i.archived} archived, ${i.activeRemaining} active`),i}async consolidateDomain(e,i){this.ensureInitialized();let t={merged:0,contradicted:0,qualityUpdated:0,archived:0,hardDeleted:0,activeRemaining:0,domainsProcessed:[e]},n=await this.clusterAndMerge(e);t.merged=n.merged,t.contradicted=n.contradicted,t.qualityUpdated=this.reinforceQuality(e),t.archived=this.archiveValueless(e);let r=this.db.prepare("SELECT COUNT(*) as cnt FROM captured_experiences WHERE domain = ? AND consolidated_into IS NULL").get(e).cnt,s=0;return r>this.config.hardThreshold&&(s=this.hardDeleteExcess(e,r),t.archived+=s),t.activeRemaining=r-s,t}async bootstrapDomain(e){if(this.ensureInitialized(),this.db.prepare("SELECT value FROM kv_store WHERE key = ?").get(`consolidation_bootstrap_${e}`))return console.log(`[ExperienceConsolidator] Domain ${e} already bootstrapped`),{merged:0,contradicted:0,qualityUpdated:0,archived:0,hardDeleted:0,activeRemaining:0,domainsProcessed:[e]};let t={...this.config};this.config.mergeSimilarityThreshold=.8,this.config.maxMergesPerRun=200;let n=await this.consolidateDomain(e);Object.assign(this.config,t);try{this.db.prepare("INSERT OR REPLACE INTO kv_store (key, value, namespace) VALUES (?, ?, 'system')").run(`consolidation_bootstrap_${e}`,new Date().toISOString())}catch{}return console.log(`[ExperienceConsolidator] Bootstrap ${e}: ${n.merged} merged, ${n.archived} archived`),n}async clusterAndMerge(e){let i=this.db.prepare(`
3
- SELECT id, task, domain, quality, success, application_count,
4
- consolidation_count, reuse_success_count, reuse_failure_count,
5
- embedding, embedding_dimension, started_at
6
- FROM captured_experiences
7
- WHERE domain = ? AND consolidated_into IS NULL AND embedding IS NOT NULL
8
- ORDER BY quality DESC
9
- `).all(e);if(i.length<2)return{merged:0,contradicted:0};let t=new x({dimension:384,M:16,efConstruction:200,efSearch:100,metric:"cosine"}),n=new Map,r=0;for(let a of i)if(a.embedding&&a.embedding_dimension){let N=this.bufferToFloatArray(a.embedding,a.embedding_dimension),y=r++;n.set(y,a.id);let S={vector:N,dimension:384,namespace:"experiences",text:a.id,timestamp:Date.now(),quantization:"none",metadata:{}};t.addEmbedding(S,y)}let s=new Set,d=0,o=0,l=this.db.prepare("UPDATE captured_experiences SET consolidated_into = ? WHERE id = ?"),m=this.db.prepare("UPDATE captured_experiences SET consolidated_into = 'contradicted' WHERE id = ?"),u=this.db.prepare(`
10
- UPDATE captured_experiences
11
- SET consolidation_count = consolidation_count + ?,
12
- quality = MIN(1.0, quality + ?),
13
- quality_updated_at = datetime('now')
14
- WHERE id = ?
15
- `),I=this.db.prepare(`
16
- INSERT INTO experience_consolidation_log (id, domain, action, source_ids, target_id, details, created_at)
17
- VALUES (?, ?, ?, ?, ?, ?, datetime('now'))
18
- `);for(let a of i){if(d+o>=this.config.maxMergesPerRun)break;if(s.has(a.id)||!a.embedding||!a.embedding_dimension)continue;let y={vector:this.bufferToFloatArray(a.embedding,a.embedding_dimension),dimension:384,namespace:"experiences",text:a.id,timestamp:Date.now(),quantization:"none",metadata:{}},S=t.search(y,{limit:6,namespace:"experiences"}),h=[],g=[];for(let{id:v,distance:p}of S){if(d+o>=this.config.maxMergesPerRun)break;let c=n.get(v);if(!c||c===a.id||s.has(c))continue;let A=1-p;if(A<Math.min(this.config.mergeSimilarityThreshold,this.config.contradictionSimilarityThreshold))continue;let f=i.find(z=>z.id===c);if(!f)continue;let D=Math.abs(a.quality-f.quality);if(A>=this.config.contradictionSimilarityThreshold&&D>=this.config.contradictionQualityDelta){f.quality<a.quality&&(s.add(c),g.push(c),o++);continue}A>=this.config.mergeSimilarityThreshold&&f.quality<=a.quality&&f.application_count===0&&(s.add(c),h.push(c),d++)}h.length>0&&this.db.transaction(()=>{for(let c of h)l.run(a.id,c);let p=this.config.mergeQualityBoost*h.length;u.run(h.length,p,a.id),I.run(b(),e,"merge",JSON.stringify(h),a.id,JSON.stringify({count:h.length,boost:p}))})(),g.length>0&&this.db.transaction(()=>{for(let p of g)m.run(p);I.run(b(),e,"contradiction",JSON.stringify(g),a.id,JSON.stringify({count:g.length,survivorQuality:a.quality}))})()}return t.clearIndex("experiences"),{merged:d,contradicted:o}}reinforceQuality(e){let i=this.db.prepare(`
19
- SELECT ce.id, ce.quality, ce.consolidation_count,
20
- ce.reuse_success_count, ce.reuse_failure_count,
21
- COALESCE(app.total, 0) as app_total,
22
- COALESCE(app.successes, 0) as app_successes
23
- FROM captured_experiences ce
24
- LEFT JOIN (
25
- SELECT experience_id,
26
- COUNT(*) as total,
27
- SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as successes
28
- FROM experience_applications
29
- GROUP BY experience_id
30
- ) app ON app.experience_id = ce.id
31
- WHERE ce.domain = ? AND ce.consolidated_into IS NULL
32
- AND (app.total > 0 OR ce.reuse_success_count > 0 OR ce.reuse_failure_count > 0)
33
- `).all(e);if(i.length===0)return 0;let t=this.db.prepare(`
34
- UPDATE captured_experiences
35
- SET quality = ?, quality_updated_at = datetime('now')
36
- WHERE id = ?
37
- `),n=0;return this.db.transaction(()=>{for(let s of i){let d=s.app_total+s.reuse_success_count+s.reuse_failure_count,o=s.app_successes+s.reuse_success_count,l=d>0?o/d:0,m=Math.min(s.consolidation_count,10)/10,u=Math.min(1,.4*s.quality+.4*l+.2*m);Math.abs(u-s.quality)>.01&&(t.run(u,s.id),n++)}})(),n}archiveValueless(e){let i=new Date;i.setDate(i.getDate()-this.config.archiveMinAgeDays);let t=i.toISOString().replace("T"," ").slice(0,19),n=this.db.prepare(`
38
- UPDATE captured_experiences
39
- SET consolidated_into = 'archived'
40
- WHERE domain = ?
41
- AND consolidated_into IS NULL
42
- AND quality < ?
43
- AND application_count = 0
44
- AND success = 0
45
- AND consolidation_count = 1
46
- AND started_at < ?
47
- `).run(e,this.config.archiveQualityThreshold,t);if(n.changes>0)try{this.db.prepare(`
48
- INSERT INTO experience_consolidation_log (id, domain, action, source_ids, details, created_at)
49
- VALUES (?, ?, 'archive', '[]', ?, datetime('now'))
50
- `).run(b(),e,JSON.stringify({count:n.changes}))}catch{}return n.changes}hardDeleteExcess(e,i){let t=i-this.config.hardThreshold;if(t<=0)return 0;let r=this.db.prepare(`
51
- UPDATE captured_experiences
52
- SET consolidated_into = 'archived'
53
- WHERE id IN (
54
- SELECT id FROM captured_experiences
55
- WHERE domain = ? AND consolidated_into IS NULL AND application_count = 0
56
- ORDER BY quality ASC, started_at ASC
57
- LIMIT ?
58
- )
59
- `).run(e,t).changes;if(r>0){try{this.db.prepare(`
60
- INSERT INTO experience_consolidation_log (id, domain, action, source_ids, details, created_at)
61
- VALUES (?, ?, 'safety-valve-archive', '[]', ?, datetime('now'))
62
- `).run(b(),e,JSON.stringify({count:r,currentCount:i,hardThreshold:this.config.hardThreshold,note:"soft-archive replacement for legacy hard-delete safety valve"}))}catch{}console.warn(`[ExperienceConsolidator] Safety valve: soft-archived ${r} from ${e} (was ${i}, threshold ${this.config.hardThreshold})`)}return r}ensureInitialized(){if(!this.initialized||!this.db)throw new Error("ExperienceConsolidator not initialized. Call initialize() first.")}bufferToFloatArray(e,i){let t=[];for(let n=0;n<i;n++)t.push(e.readFloatLE(n*4));return t}};export{x as a,R as b};
@@ -1,2 +0,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.12");process.exit(0)}
2
- import{d as l,e as o}from"./chunk-SQVZ3TRU.js";var t=n=>typeof n=="number"&&Number.isFinite(n)&&n>=0&&n<=100,i=n=>n===null||t(n);function a(n){if(!n||typeof n!="object")return null;let e=n;if(e.measured!==!0||!t(e.line)||!i(e.statement)||!i(e.branch)||!i(e.function))return null;let r=typeof e.files=="number"&&Number.isInteger(e.files)&&e.files>=0?e.files:null;return r===null?null:{line:e.line,branch:e.branch,function:e.function,statement:e.statement,files:r,measured:!0,...e.runStatus==="passed"||e.runStatus==="failed"?{runStatus:e.runStatus}:{}}}function m(n){if(!n||typeof n!="object")return null;let e=n;if(e.measured!==!0||!t(e.line))return null;let r=s=>t(s)?s:null;return{line:e.line,branch:r(e.branch),function:r(e.function),statement:r(e.statement),measured:!0}}o();var u=class extends Error{constructor(e,r){super(`git ${e.join(" ")} timed out after ${Math.max(0,r)}ms`),this.name="GitTimeoutError"}};async function b(n,e){if(e.timeout<=0)throw new u(n,e.timeout);try{return await l("git",n,{cwd:e.cwd,timeout:e.timeout,maxBuffer:e.maxBuffer,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}})}catch(r){throw r.code==="ETIMEDOUT"?new u(n,e.timeout):r}}export{a,m as b,u as c,b as d};
@@ -1,2 +0,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.12");process.exit(0)}
2
- import{a as T}from"./chunk-UJNGGFGX.js";import{c as g}from"./chunk-ADUAJIAU.js";import{S,b as l}from"./chunk-35MIUSXQ.js";T();S();import{createRequire as B}from"module";var G=B(import.meta.url),d=class{validateTransfer(e,t){return{approved:!0}}};function R(){if(l().useCoherenceGate)try{let{CoherenceGate:o}=G("./coherence-gate.js");return new o}catch{}return new d}T();var x=g.create("transfer-verification"),A={maxSourceRegression:.05,minTargetImprovement:0,maxSourceConfidenceRegression:.1},b=class{config;constructor(e={}){this.config={...A,...e}}verifyTransfer(e){let t=e.sourcePerformanceAfter.successRate-e.sourcePerformanceBefore.successRate,r=e.targetPerformanceAfter.successRate-e.targetPerformanceBefore.successRate,n=e.sourcePerformanceAfter.avgConfidence-e.sourcePerformanceBefore.avgConfidence,a=e.targetPerformanceAfter.avgConfidence-e.targetPerformanceBefore.avgConfidence,s=t>=-this.config.maxSourceRegression&&n>=-this.config.maxSourceConfidenceRegression,c=r>=this.config.minTargetImprovement,u=s&&c,m;if(!u){let i=[];s||i.push(`source domain regressed: successRate delta=${t.toFixed(4)}, confidence delta=${n.toFixed(4)}`),c||i.push(`target domain did not improve: successRate delta=${r.toFixed(4)}`),m=i.join("; ")}return u?x.debug("Transfer verification passed",{transferId:e.transferId,sourceDelta:t,targetDelta:r}):x.warn("Transfer verification failed",{transferId:e.transferId,sourceDomain:e.sourceDomain,targetDomain:e.targetDomain,sourceDelta:t,targetDelta:r,failureReason:m}),{passed:u,sourceStable:s,targetImproved:c,sourceDelta:t,targetDelta:r,sourceConfidenceDelta:n,targetConfidenceDelta:a,failureReason:m}}getConfig(){return{...this.config}}};function M(o){return new b(o)}S();var p=class{alphas=new Map;betas=new Map;sample(e){let t=this.alphas.get(e)??1,r=this.betas.get(e)??1;return this.sampleBeta(t,r)}update(e,t){t?this.alphas.set(e,(this.alphas.get(e)??1)+1):this.betas.set(e,(this.betas.get(e)??1)+1)}getMean(e){let t=this.alphas.get(e)??1,r=this.betas.get(e)??1;return t/(t+r)}getObservationCount(e){let t=this.alphas.get(e)??1,r=this.betas.get(e)??1;return t-1+(r-1)}getAlpha(e){return this.alphas.get(e)??1}getBeta(e){return this.betas.get(e)??1}sampleBeta(e,t){let r=this.sampleGamma(e),n=this.sampleGamma(t);return r+n===0?.5:r/(r+n)}sampleGamma(e){if(e<1){let n=Math.random();return this.sampleGamma(e+1)*Math.pow(n,1/e)}let t=e-1/3,r=1/Math.sqrt(9*t);for(;;){let n,a;do n=this.standardNormal(),a=1+r*n;while(a<=0);a=a*a*a;let s=Math.random();if(s<1-.0331*n*n*n*n||Math.log(s)<.5*n*n+t*(1-a+Math.log(a)))return t*a}}standardNormal(){let e=Math.random(),t=Math.random();return Math.sqrt(-2*Math.log(e||1e-10))*Math.cos(2*Math.PI*t)}};var I={threshold:5,slack:.5,resetOnAlarm:!0,warmupSamples:20},h=class{config;states=new Map;constructor(e={}){this.config={...I,...e}}update(e,t){let r=this.getOrCreateState(e);if(r.samplesSinceReset++,r.mu===null)return r.warmupSum+=t,r.warmupCount++,r.warmupCount>=this.config.warmupSamples&&(r.mu=r.warmupSum/r.warmupCount),{driftDetected:!1,cumulativeSum:0,direction:"none",samplesSinceReset:r.samplesSinceReset};r.sPlus=Math.max(0,r.sPlus+(t-r.mu-this.config.slack)),r.sMinus=Math.max(0,r.sMinus+(-t+r.mu-this.config.slack));let n=Math.max(r.sPlus,r.sMinus),a=!1,s="none";r.sPlus>this.config.threshold?(a=!0,s="positive"):r.sMinus>this.config.threshold&&(a=!0,s="negative");let c={driftDetected:a,cumulativeSum:n,direction:s,samplesSinceReset:r.samplesSinceReset};return a&&this.config.resetOnAlarm&&(r.sPlus=0,r.sMinus=0,r.samplesSinceReset=0),c}reset(e){e?this.states.delete(e):this.states.clear()}getState(e){let t=this.states.get(e);if(!t)return{driftDetected:!1,cumulativeSum:0,direction:"none",samplesSinceReset:0};let r=Math.max(t.sPlus,t.sMinus),n="none";return t.sPlus>this.config.threshold?n="positive":t.sMinus>this.config.threshold&&(n="negative"),{driftDetected:t.sPlus>this.config.threshold||t.sMinus>this.config.threshold,cumulativeSum:r,direction:n,samplesSinceReset:t.samplesSinceReset}}getOrCreateState(e){let t=this.states.get(e);return t||(t={sPlus:0,sMinus:0,samplesSinceReset:0,warmupSum:0,warmupCount:0,mu:null},this.states.set(e,t)),t}};var w=g.create("domain-transfer"),V={minTransferProbability:.3,explorationWarmup:5,verification:{},maxHistorySize:1e3,useMetaLearningEnhancements:!0},v=class{constructor(e=100){this.decayThreshold=e}decayThreshold;getDecayMultiplier(e){return e<=0?1:Math.pow(.5,e/this.decayThreshold)}applyDecay(e,t,r){return t+(e-t)*this.getDecayMultiplier(r)}},y=class{cusum;outcomes=[];windowSize;constructor(e=20){this.windowSize=e,this.cusum=new h({threshold:3,slack:.1,resetOnAlarm:!1,warmupSamples:Math.min(10,Math.floor(e/2))})}record(e){this.outcomes.push(e),this.outcomes.length>this.windowSize*2&&this.outcomes.splice(0,this.outcomes.length-this.windowSize*2);let t=this.getCurrentRate();this.cusum.update("learn",t)}isPlateaued(){return this.outcomes.length<this.windowSize?!1:!this.cusum.getState("learn").driftDetected}getCurrentRate(){if(this.outcomes.length===0)return 0;let e=this.outcomes.slice(-this.windowSize);return e.filter(Boolean).length/e.length}getOutcomeCount(){return this.outcomes.length}getCusumState(){return this.cusum.getState("learn")}},D=class{front=[];dominates(e,t){let r=e.successRate>=t.successRate&&e.speed>=t.speed&&e.confidence>=t.confidence,n=e.successRate>t.successRate||e.speed>t.speed||e.confidence>t.confidence;return r&&n}add(e){for(let t=this.front.length-1;t>=0;t--)this.dominates(e,this.front[t])&&this.front.splice(t,1);this.front.some(t=>this.dominates(t,e))||this.front.push(e)}getFront(){return[...this.front]}isNonDominated(e){return!this.front.some(t=>this.dominates(t,e))}},C=class{constructor(e=.2){this.bonusScale=e}bonusScale;triedPairs=new Set;markTried(e){this.triedPairs.add(e)}isTried(e){return this.triedPairs.has(e)}getBonus(e){return this.triedPairs.has(e)?0:this.bonusScale}apply(e,t){return Math.min(1,e+this.getBonus(t))}getTriedCount(){return this.triedPairs.size}},P=class{config;sampler;verifier;coherenceGate;transferHistory=[];affinityScores=new Map;performanceProvider=null;transferExecutor=null;nativeModule=null;decayingBeta;plateauDetector;paretoFront;curiosityBonus;constructor(e={}){this.config={...V,...e},this.sampler=new p,this.verifier=M(this.config.verification),this.coherenceGate=R(),this.decayingBeta=new v,this.plateauDetector=new y,this.paretoFront=new D,this.curiosityBonus=new C,this.tryLoadNativeModule()}evaluateTransfer(e,t){if(!this.isEnabled())return this.createRejectedCandidate(e,t);let r=this.makePairKey(e,t),n=this.sampler.sample(r),s=this.sampler.getObservationCount(r)<this.config.explorationWarmup,c=this.getAffinityScore(e,t);if(this.isMetaLearningEnabled()){let u=this.sampler.getMean(r),m=this.sampler.getAlpha(r)-1;n=this.decayingBeta.applyDecay(n,u,m),n=this.curiosityBonus.apply(n,r)}return{sourceDomain:e,targetDomain:t,sampledProbability:n,affinityScore:c,isExploration:s,pairKey:r}}executeTransfer(e){let t=`transfer-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=this.coherenceGate.validateTransfer({domain:e.sourceDomain},e.targetDomain);if(!r.approved)return w.info("Transfer blocked by coherence gate",{transferId:t,source:e.sourceDomain,target:e.targetDomain,reason:r.rejectionReason}),this.createBlockedResult(t,e,r);let n=this.getPerformanceSnapshot(e.sourceDomain),a=this.getPerformanceSnapshot(e.targetDomain),s=this.computeSqrtDampening(e),c=this.doTransfer(e.sourceDomain,e.targetDomain,s),u=this.getPerformanceSnapshot(e.sourceDomain),m=this.getPerformanceSnapshot(e.targetDomain),i=this.verifier.verifyTransfer({transferId:t,sourceDomain:e.sourceDomain,targetDomain:e.targetDomain,sourcePerformanceBefore:n,sourcePerformanceAfter:u,targetPerformanceBefore:a,targetPerformanceAfter:m}),f=c&&i.passed;if(this.sampler.update(e.pairKey,f),this.updateAffinityScore(e.pairKey,f),this.isMetaLearningEnabled()){this.plateauDetector.record(f),this.curiosityBonus.markTried(e.pairKey);let F=this.sampler.getMean(e.pairKey);this.paretoFront.add({pairKey:e.pairKey,successRate:F,speed:1/(1+s),confidence:this.getAffinityScore(e.sourceDomain,e.targetDomain)})}return this.addToHistory({transferId:t,sourceDomain:e.sourceDomain,targetDomain:e.targetDomain,success:f,sampledProbability:e.sampledProbability,dampeningFactor:s,sourceDelta:i.sourceDelta,targetDelta:i.targetDelta,timestamp:Date.now()}),w.info("Transfer completed",{transferId:t,source:e.sourceDomain,target:e.targetDomain,success:f,dampeningFactor:s.toFixed(4),sourceDelta:i.sourceDelta.toFixed(4),targetDelta:i.targetDelta.toFixed(4)}),{transferId:t,candidate:e,success:f,dampeningFactor:s,verification:i,coherenceResult:r,sourcePerformanceBefore:n,sourcePerformanceAfter:u,targetPerformanceBefore:a,targetPerformanceAfter:m,timestamp:Date.now()}}getAffinityScore(e,t){return this.affinityScores.get(this.makePairKey(e,t))??.5}getTransferHistory(){return[...this.transferHistory]}getExpectedSuccessRate(e,t){return this.sampler.getMean(this.makePairKey(e,t))}getObservationCount(e,t){return this.sampler.getObservationCount(this.makePairKey(e,t))}setPerformanceProvider(e){this.performanceProvider=e}setTransferExecutor(e){this.transferExecutor=e}getSampler(){return this.sampler}getCoherenceGate(){return this.coherenceGate}getDecayingBeta(){return this.decayingBeta}getPlateauDetector(){return this.plateauDetector}getParetoFront(){return this.paretoFront}getCuriosityBonus(){return this.curiosityBonus}isLearningPlateaued(){return this.plateauDetector.isPlateaued()}isEnabled(){return l().useCrossDomainTransfer===!0}isMetaLearningEnabled(){return this.config.useMetaLearningEnhancements===!0&&l().useMetaLearningEnhancements!==!1}makePairKey(e,t){return`${e}->${t}`}computeSqrtDampening(e){let t=this.sampler.getObservationCount(e.pairKey);return Math.sqrt(t/(t+this.config.explorationWarmup))}doTransfer(e,t,r){return this.transferExecutor?this.transferExecutor(e,t,r):!0}getPerformanceSnapshot(e){return this.performanceProvider?this.performanceProvider(e):{domain:e,successRate:.5,avgConfidence:.5,patternCount:0,timestamp:Date.now()}}updateAffinityScore(e,t){let r=this.affinityScores.get(e)??.5;this.affinityScores.set(e,.2*(t?1:0)+.8*r)}addToHistory(e){for(this.transferHistory.push(e);this.transferHistory.length>this.config.maxHistorySize;)this.transferHistory.shift()}createBlockedResult(e,t,r){let n={domain:"",successRate:0,avgConfidence:0,patternCount:0,timestamp:Date.now()};return{transferId:e,candidate:t,success:!1,dampeningFactor:0,verification:{passed:!1,sourceStable:!1,targetImproved:!1,sourceDelta:0,targetDelta:0,sourceConfidenceDelta:0,targetConfidenceDelta:0,failureReason:`Coherence gate rejected: ${r.rejectionReason??"unknown"}`},coherenceResult:r,sourcePerformanceBefore:{...n,domain:t.sourceDomain},sourcePerformanceAfter:{...n,domain:t.sourceDomain},targetPerformanceBefore:{...n,domain:t.targetDomain},targetPerformanceAfter:{...n,domain:t.targetDomain},timestamp:Date.now()}}createRejectedCandidate(e,t){return{sourceDomain:e,targetDomain:t,sampledProbability:0,affinityScore:0,isExploration:!1,pairKey:this.makePairKey(e,t)}}tryLoadNativeModule(){this.nativeModule=null}};function J(o){return new P(o)}export{p as a,h as b,V as c,v as d,y as e,D as f,C as g,P as h,J as i};