agentic-qe 3.9.26 → 3.9.27

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 (297) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +69 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/bridge/captured-experience-bridge.d.ts +40 -0
  5. package/dist/bridge/captured-experience-bridge.js +232 -0
  6. package/dist/cli/bundle.js +5 -5
  7. package/dist/cli/chunks/adapter-T3LXVVV6.js +2 -0
  8. package/dist/cli/chunks/{agent-booster-wasm-ZOADSKRX.js → agent-booster-wasm-ITOX2PFK.js} +2 -2
  9. package/dist/cli/chunks/{agent-handler-SPLFCIHA.js → agent-handler-NGVDEBFM.js} +2 -2
  10. package/dist/cli/chunks/{agent-memory-branch-R6ZVL2FT.js → agent-memory-branch-6WLQE4UP.js} +2 -2
  11. package/dist/cli/chunks/aqe-learning-engine-NDMVUAJB.js +2 -0
  12. package/dist/cli/chunks/{audit-6TQQFGQN.js → audit-KTNR6LYC.js} +2 -2
  13. package/dist/cli/chunks/base-NQRD32GI.js +2 -0
  14. package/dist/cli/chunks/{hnswlib-node-TULXUZI4.js → better-sqlite3-ROUVYY3W.js} +2 -2
  15. package/dist/cli/chunks/{brain-handler-6BQCTD3M.js → brain-handler-ZFLB6Q37.js} +3 -3
  16. package/dist/cli/chunks/{branch-enumerator-JTESSKID.js → branch-enumerator-SONBYE7U.js} +2 -2
  17. package/dist/cli/chunks/{browser-YDZLFZNH.js → browser-D6YYID5Y.js} +2 -2
  18. package/dist/cli/chunks/browser-workflow-WSAEHMFE.js +2 -0
  19. package/dist/cli/chunks/{chunk-AOURUJFN.js → chunk-2IKQT3IF.js} +1 -1
  20. package/dist/cli/chunks/{chunk-4ZAOHYFA.js → chunk-2J3B4ONK.js} +2 -2
  21. package/dist/cli/chunks/{chunk-RXQX6JNQ.js → chunk-2MO2U3NO.js} +2 -2
  22. package/dist/cli/chunks/{chunk-HSQLB4GR.js → chunk-2O6XVANK.js} +2 -2
  23. package/dist/cli/chunks/{chunk-EYFL6QLX.js → chunk-2SEXNZIJ.js} +2 -2
  24. package/dist/cli/chunks/{chunk-6VRKHHYI.js → chunk-2UPD2NX5.js} +1 -1
  25. package/dist/cli/chunks/{chunk-ZUUNOGHI.js → chunk-2Z2DD5YW.js} +2 -2
  26. package/dist/cli/chunks/{chunk-YUMVG55I.js → chunk-3BTSXIJ3.js} +2 -2
  27. package/dist/cli/chunks/{chunk-F24XTOID.js → chunk-4AWB4BKC.js} +2 -2
  28. package/dist/cli/chunks/{chunk-LPDPGCDC.js → chunk-4DTF53TE.js} +2 -2
  29. package/dist/cli/chunks/{chunk-UJPERPQU.js → chunk-4K7KTT4Q.js} +1 -1
  30. package/dist/cli/chunks/{chunk-VBJ4UQ3X.js → chunk-4SLL4YG2.js} +2 -2
  31. package/dist/cli/chunks/{chunk-KQQPUHQD.js → chunk-4Z2KY7N3.js} +1 -1
  32. package/dist/cli/chunks/{chunk-TU2A5BGA.js → chunk-5DDRRXKR.js} +2 -2
  33. package/dist/cli/chunks/{chunk-TRIA62JA.js → chunk-5GBDMANM.js} +2 -2
  34. package/dist/cli/chunks/{chunk-VC2FHUOY.js → chunk-5W3XL5YW.js} +2 -2
  35. package/dist/cli/chunks/{chunk-EEWGVVKH.js → chunk-5WPQATT7.js} +2 -2
  36. package/dist/cli/chunks/{chunk-AGBIQXB4.js → chunk-6BGF3VZJ.js} +2 -2
  37. package/dist/cli/chunks/{chunk-7T2KT74O.js → chunk-6BIHLI3A.js} +2 -2
  38. package/dist/cli/chunks/{chunk-EX7UGFWX.js → chunk-6IYCOEW7.js} +2 -2
  39. package/dist/cli/chunks/{chunk-N2ET2TL5.js → chunk-6R2OTCWG.js} +2 -2
  40. package/dist/cli/chunks/{chunk-C5ZA6UBI.js → chunk-7EC2C5QP.js} +1 -1
  41. package/dist/cli/chunks/{chunk-GHQ6QT47.js → chunk-7QXW6HLF.js} +2 -2
  42. package/dist/cli/chunks/{chunk-LP7ILPFQ.js → chunk-A4QYEA22.js} +2 -2
  43. package/dist/cli/chunks/{chunk-4RFODPDS.js → chunk-A7D5532X.js} +2 -2
  44. package/dist/cli/chunks/{chunk-FDC2ANCP.js → chunk-AAYGZTW3.js} +3 -3
  45. package/dist/cli/chunks/{chunk-QFXOKERO.js → chunk-ADU5MOQE.js} +1 -1
  46. package/dist/cli/chunks/{chunk-WND3EYCS.js → chunk-BT5YOORE.js} +2 -2
  47. package/dist/cli/chunks/{chunk-XAA7ZBNG.js → chunk-BZNIVIZE.js} +1 -1
  48. package/dist/cli/chunks/{chunk-CMFRBO4N.js → chunk-C7TMWGMN.js} +3 -3
  49. package/dist/cli/chunks/{chunk-ARLHD5MG.js → chunk-CNWWQYZ3.js} +1 -1
  50. package/dist/cli/chunks/{chunk-YCZEXLKL.js → chunk-COTY53RT.js} +2 -2
  51. package/dist/cli/chunks/{chunk-OFAXQGU5.js → chunk-CYNQW276.js} +2 -2
  52. package/dist/cli/chunks/{chunk-PJPNRDEF.js → chunk-DL6L4FGW.js} +2 -2
  53. package/dist/cli/chunks/{chunk-MAPQ2UZ5.js → chunk-DPMCEGYQ.js} +2 -2
  54. package/dist/cli/chunks/{chunk-4EBC7ATS.js → chunk-DURR7FQ2.js} +9 -9
  55. package/dist/cli/chunks/{chunk-VHHFSVR3.js → chunk-E3K7FQKW.js} +2 -2
  56. package/dist/cli/chunks/{chunk-2XOIJE7J.js → chunk-ET5RCLBO.js} +2 -2
  57. package/dist/cli/chunks/{chunk-ONYCSOAR.js → chunk-EW2JQIYW.js} +1 -1
  58. package/dist/cli/chunks/{chunk-RD3CNJWR.js → chunk-F5PNA7J3.js} +2 -2
  59. package/dist/cli/chunks/{chunk-P6M6LNSI.js → chunk-FQZM3SVW.js} +2 -2
  60. package/dist/cli/chunks/{chunk-YYOKX7VH.js → chunk-FY3TF4SA.js} +2 -2
  61. package/dist/cli/chunks/{chunk-3K2QCWFD.js → chunk-G4KZCXZK.js} +1 -1
  62. package/dist/cli/chunks/{chunk-U5BMUXV2.js → chunk-GGIE7KUU.js} +2 -2
  63. package/dist/cli/chunks/{chunk-SYRUG2T7.js → chunk-GXHMSIBM.js} +1 -1
  64. package/dist/cli/chunks/{chunk-ETBVBV2M.js → chunk-HEZJOCD7.js} +2 -2
  65. package/dist/cli/chunks/{chunk-4I6XGKSB.js → chunk-HPB5MPJP.js} +2 -2
  66. package/dist/cli/chunks/{chunk-QQMGUORN.js → chunk-HV7V34DZ.js} +2 -2
  67. package/dist/cli/chunks/{chunk-MW4WEMLE.js → chunk-HYCRKKJN.js} +2 -2
  68. package/dist/cli/chunks/{chunk-RNVXTNEB.js → chunk-I3YJEVI2.js} +2 -2
  69. package/dist/cli/chunks/{chunk-4F6RPT7N.js → chunk-I73XKAOF.js} +3 -3
  70. package/dist/cli/chunks/{chunk-BBALCRJM.js → chunk-IQITE3HO.js} +1 -1
  71. package/dist/cli/chunks/{chunk-JWKNHSXP.js → chunk-ITGHTWHH.js} +2 -2
  72. package/dist/cli/chunks/{chunk-IKRLPS4M.js → chunk-IUUT6Q5I.js} +2 -2
  73. package/dist/cli/chunks/{chunk-G3KTLF57.js → chunk-J24PEKZ5.js} +2 -2
  74. package/dist/cli/chunks/{chunk-5JGFDJA6.js → chunk-J2ZH6IHM.js} +2 -2
  75. package/dist/cli/chunks/{chunk-SGGYSL7J.js → chunk-J6EDIEZB.js} +1 -1
  76. package/dist/cli/chunks/{chunk-PLB75ASZ.js → chunk-JBL5G5VJ.js} +1 -1
  77. package/dist/cli/chunks/{chunk-ANEIDNH7.js → chunk-JN7WVS57.js} +2 -2
  78. package/dist/cli/chunks/{chunk-6UFMNYQV.js → chunk-JP7AOQZZ.js} +1 -1
  79. package/dist/cli/chunks/{chunk-WCI2FMWZ.js → chunk-JZTMCQVH.js} +1 -1
  80. package/dist/cli/chunks/{chunk-TQBP3YGG.js → chunk-KFDY5AD7.js} +1 -1
  81. package/dist/cli/chunks/{chunk-7L3F76MS.js → chunk-LU27B4M7.js} +3 -3
  82. package/dist/cli/chunks/{chunk-QXQWQRZA.js → chunk-LXGVB3FK.js} +1 -1
  83. package/dist/cli/chunks/{chunk-AH3IPNOJ.js → chunk-MFRS4KFZ.js} +2 -2
  84. package/dist/cli/chunks/{chunk-G42KXBBG.js → chunk-MHPA6IWB.js} +2 -2
  85. package/dist/cli/chunks/{chunk-PSOF6DZA.js → chunk-MKDGVPE3.js} +129 -124
  86. package/dist/cli/chunks/{chunk-SDD3XQ7X.js → chunk-MSA7UH3M.js} +1 -1
  87. package/dist/cli/chunks/{chunk-3QPQZJUY.js → chunk-NTTW3LSE.js} +2 -2
  88. package/dist/cli/chunks/{chunk-6AH4SN6I.js → chunk-NWSFGZKC.js} +1 -1
  89. package/dist/cli/chunks/{chunk-4QUKBJAS.js → chunk-O7XW2BWN.js} +2 -2
  90. package/dist/cli/chunks/{chunk-4GUVB7FG.js → chunk-OA5ZH3IH.js} +2 -2
  91. package/dist/cli/chunks/{chunk-TLBP7EVX.js → chunk-OHT5NJXJ.js} +1 -1
  92. package/dist/cli/chunks/{chunk-FWPV44HL.js → chunk-PBP2TWV7.js} +2 -2
  93. package/dist/cli/chunks/{chunk-AUD45G7X.js → chunk-PFHUT2VE.js} +2 -2
  94. package/dist/cli/chunks/{chunk-XYMUYLHY.js → chunk-PGS2MYE7.js} +1 -1
  95. package/dist/cli/chunks/{chunk-DBSEDJ7P.js → chunk-PIR3KN5M.js} +2 -2
  96. package/dist/cli/chunks/{chunk-GW5T4BSO.js → chunk-PMP6QRTB.js} +4 -4
  97. package/dist/cli/chunks/{chunk-CBBVUZFD.js → chunk-PU7S6SEW.js} +4 -4
  98. package/dist/cli/chunks/{chunk-ZFLD5ATZ.js → chunk-PXFK5V2E.js} +2 -2
  99. package/dist/cli/chunks/{chunk-QUHNBIUZ.js → chunk-Q5GQ267O.js} +1 -1
  100. package/dist/cli/chunks/{chunk-PPP7KZQL.js → chunk-QM2LHV7P.js} +2 -2
  101. package/dist/cli/chunks/{chunk-FRUDEEZH.js → chunk-RAVTYXUD.js} +1 -1
  102. package/dist/cli/chunks/{chunk-N3GLRFMH.js → chunk-RDJZLKU2.js} +1 -1
  103. package/dist/cli/chunks/{chunk-B3KHJQ34.js → chunk-RE5OY7WL.js} +2 -2
  104. package/dist/cli/chunks/{chunk-XDEF6UFY.js → chunk-RM7WNXRT.js} +2 -2
  105. package/dist/cli/chunks/{chunk-VPPXZORB.js → chunk-RPDLRKAT.js} +1 -1
  106. package/dist/cli/chunks/{chunk-HKHRIPXP.js → chunk-S3QE2RBR.js} +9 -9
  107. package/dist/cli/chunks/{chunk-CYPOU765.js → chunk-SCS3RUTT.js} +1 -1
  108. package/dist/cli/chunks/{chunk-IVNZLESN.js → chunk-SL5MAYYP.js} +2 -2
  109. package/dist/cli/chunks/{chunk-SYQZPNHQ.js → chunk-T46HLTI3.js} +2 -2
  110. package/dist/cli/chunks/{chunk-BFSKBIAM.js → chunk-T5HPBBVB.js} +1 -1
  111. package/dist/cli/chunks/{chunk-5TTQNRAP.js → chunk-U7S7A7LB.js} +1 -1
  112. package/dist/cli/chunks/{chunk-EQ4IZRD5.js → chunk-UIKOUIGI.js} +2 -2
  113. package/dist/cli/chunks/{chunk-C77FS4ER.js → chunk-V7HMKS5S.js} +2 -2
  114. package/dist/cli/chunks/{chunk-EPCKRFMU.js → chunk-VNC7ANGV.js} +2 -2
  115. package/dist/cli/chunks/{chunk-QU7TNCUB.js → chunk-VRPZU5KM.js} +1 -1
  116. package/dist/cli/chunks/{chunk-A4U4DNPR.js → chunk-W5EOH4NH.js} +1 -1
  117. package/dist/cli/chunks/{chunk-4U57VG6R.js → chunk-WD5T5PE6.js} +2 -2
  118. package/dist/cli/chunks/{chunk-Y3YJMKXS.js → chunk-WGYJD6DT.js} +2 -2
  119. package/dist/cli/chunks/{chunk-TZ73IAF5.js → chunk-WHI7FVTH.js} +2 -2
  120. package/dist/cli/chunks/{chunk-2OFL5HSB.js → chunk-WLT5RGLK.js} +2 -2
  121. package/dist/cli/chunks/{chunk-22YZRYG4.js → chunk-WPN2NYZ3.js} +3 -3
  122. package/dist/cli/chunks/{chunk-MXZY5IJA.js → chunk-WVRFTL46.js} +1 -1
  123. package/dist/cli/chunks/{chunk-PS7YB3IV.js → chunk-X6HOSOIT.js} +3 -3
  124. package/dist/cli/chunks/{chunk-F77VZ4IY.js → chunk-XFDOE4QW.js} +2 -2
  125. package/dist/cli/chunks/{chunk-BOV44F3Z.js → chunk-XLFWSEZ4.js} +2 -2
  126. package/dist/cli/chunks/{chunk-XHENTAXI.js → chunk-XLY5LUNG.js} +2 -2
  127. package/dist/cli/chunks/{chunk-MSPY7HMF.js → chunk-XM3HKZ4U.js} +2 -2
  128. package/dist/cli/chunks/{chunk-CU5Q46NR.js → chunk-XS63BAQL.js} +4 -4
  129. package/dist/cli/chunks/{chunk-RLAXE5HU.js → chunk-YHROZCDI.js} +2 -2
  130. package/dist/cli/chunks/{chunk-EFAN5HUX.js → chunk-YLSLQ2DT.js} +2 -2
  131. package/dist/cli/chunks/{chunk-K64UL5PA.js → chunk-YYGYN4RJ.js} +2 -2
  132. package/dist/cli/chunks/{chunk-MTRA6I7Y.js → chunk-ZC5WKTB5.js} +1 -1
  133. package/dist/cli/chunks/chunk-ZGJTIDFI.js +2 -0
  134. package/dist/cli/chunks/{ci-EAX5WWT6.js → ci-TNCEZMBI.js} +2 -2
  135. package/dist/cli/chunks/{ci-output-JCWHRJ2A.js → ci-output-GXRUBE4X.js} +2 -2
  136. package/dist/cli/chunks/{circuit-breaker-RAEDVT33.js → circuit-breaker-UY3UVWZK.js} +2 -2
  137. package/dist/cli/chunks/{claude-flow-setup-NJAY4WXY.js → claude-flow-setup-G4PJY2IE.js} +2 -2
  138. package/dist/cli/chunks/client-XZQV5LLD.js +2 -0
  139. package/dist/cli/chunks/{cline-installer-X3GCUEWC.js → cline-installer-VDCVZLLN.js} +2 -2
  140. package/dist/cli/chunks/{code-GXJ6JC6O.js → code-2COXCETT.js} +2 -2
  141. package/dist/cli/chunks/{code-index-extractor-TTA7HZEW.js → code-index-extractor-TBRSOYNZ.js} +2 -2
  142. package/dist/cli/chunks/{codex-installer-TXMSGJHK.js → codex-installer-CNUIJ7RF.js} +2 -2
  143. package/dist/cli/chunks/{completions-RSFIDY22.js → completions-42LTVU5S.js} +2 -2
  144. package/dist/cli/chunks/{complexity-analyzer-C6244ZOI.js → complexity-analyzer-2ECJ3OPO.js} +2 -2
  145. package/dist/cli/chunks/{continuedev-installer-5WQIRQW4.js → continuedev-installer-FW2GFUG2.js} +2 -2
  146. package/dist/cli/chunks/{copilot-installer-5Q64SC52.js → copilot-installer-QSV6WUBZ.js} +2 -2
  147. package/dist/cli/chunks/{cost-tracker-6SBRULNN.js → cost-tracker-CH3CSBR5.js} +2 -2
  148. package/dist/cli/chunks/{coverage-X2AG3K6E.js → coverage-XNF65ZHG.js} +3 -3
  149. package/dist/cli/chunks/cross-domain-router-FTKMTQQC.js +2 -0
  150. package/dist/cli/chunks/{cursor-installer-VHZ5LEPG.js → cursor-installer-FP44QVKZ.js} +2 -2
  151. package/dist/cli/chunks/{daemon-CDQXWIV4.js → daemon-RCTFQOCN.js} +3 -3
  152. package/dist/cli/chunks/{dag-attention-scheduler-33UWNTSB.js → dag-attention-scheduler-SRMUBFRY.js} +2 -2
  153. package/dist/cli/chunks/{detect-UDWTKRQL.js → detect-6N6E24MC.js} +2 -2
  154. package/dist/cli/chunks/{dist-node-CKTPNPBG.js → dist-node-T6UY6WUC.js} +2 -2
  155. package/dist/cli/chunks/{domain-handler-5J4AH4XR.js → domain-handler-67FVCSTC.js} +2 -2
  156. package/dist/cli/chunks/{domain-transfer-P6VPN56R.js → domain-transfer-T6QVO7Q7.js} +2 -2
  157. package/dist/cli/chunks/dream-RB4NFA6Z.js +2 -0
  158. package/dist/cli/chunks/{embed-and-insert-pattern-2YFFI7IN.js → embed-and-insert-pattern-ZGTGPFKX.js} +2 -2
  159. package/dist/cli/chunks/{eval-K7VFIO2T.js → eval-KBCCSN2V.js} +2 -2
  160. package/dist/cli/chunks/{experience-capture-middleware-P4RQW7JV.js → experience-capture-middleware-QH2I2HCM.js} +3 -3
  161. package/dist/cli/chunks/{fast-paths-T27YLQWQ.js → fast-paths-ZP3R5NWJ.js} +2 -2
  162. package/dist/cli/chunks/{feature-flags-YFPFETDZ.js → feature-flags-MGYWJNZ2.js} +2 -2
  163. package/dist/cli/chunks/{feature-flags-HHQNCU6V.js → feature-flags-TTPWNBQU.js} +2 -2
  164. package/dist/cli/chunks/{file-discovery-ZKNENDOJ.js → file-discovery-VUIFTAJQ.js} +2 -2
  165. package/dist/cli/chunks/{fleet-N5OTMFIN.js → fleet-RFCEBGRJ.js} +3 -3
  166. package/dist/cli/chunks/{gnn-wrapper-D6L4FIWY.js → gnn-wrapper-JSEZQYAZ.js} +2 -2
  167. package/dist/cli/chunks/{heartbeat-handler-5RDU3KKK.js → heartbeat-handler-ZRVNKBJK.js} +4 -4
  168. package/dist/cli/chunks/{heartbeat-scheduler-FALV24GQ.js → heartbeat-scheduler-ZQTLT3DW.js} +2 -2
  169. package/dist/cli/chunks/hnsw-adapter-ZKM2ITVF.js +2 -0
  170. package/dist/cli/chunks/hnsw-index-CFYACM4M.js +2 -0
  171. package/dist/cli/chunks/{hnsw-legacy-bridge-ARD7KA3G.js → hnsw-legacy-bridge-Y6MPTDAI.js} +2 -2
  172. package/dist/cli/chunks/{better-sqlite3-QIKWKEGD.js → hnswlib-node-X73LVNSE.js} +2 -2
  173. package/dist/cli/chunks/{hooks-6HA23JHQ.js → hooks-RIKFUPBG.js} +30 -30
  174. package/dist/cli/chunks/{hybrid-router-XUYQW7FJ.js → hybrid-router-B35QFYSN.js} +2 -2
  175. package/dist/cli/chunks/{hypergraph-engine-OGGXYQAO.js → hypergraph-engine-GABHICVB.js} +2 -2
  176. package/dist/cli/chunks/{hypergraph-handler-UFV3XYVX.js → hypergraph-handler-NCMVBN4Q.js} +3 -3
  177. package/dist/cli/chunks/impact-analyzer-DOLCGJKR.js +2 -0
  178. package/dist/cli/chunks/{init-handler-VUSXGONQ.js → init-handler-7ROPCNFB.js} +6 -6
  179. package/dist/cli/chunks/init-wizard-BMYBCQNH.js +2 -0
  180. package/dist/cli/chunks/kernel-FUWIWNAU.js +2 -0
  181. package/dist/cli/chunks/{kilocode-installer-C2JMSYAU.js → kilocode-installer-JXHO4YK3.js} +2 -2
  182. package/dist/cli/chunks/{kiro-installer-6LJFFEEZ.js → kiro-installer-7SUM4FLK.js} +2 -2
  183. package/dist/cli/chunks/knowledge-graph-JFX7VTYG.js +2 -0
  184. package/dist/cli/chunks/{learning-4B624JV3.js → learning-74DAUWK5.js} +3 -3
  185. package/dist/cli/chunks/{llm-router-QUOLZECD.js → llm-router-LYQ3AJYV.js} +4 -4
  186. package/dist/cli/chunks/{load-MIQWBMGE.js → load-EKML5ERV.js} +2 -2
  187. package/dist/cli/chunks/load-test-5J6WURNM.js +2 -0
  188. package/dist/cli/chunks/{mcp-MBJWNXDM.js → mcp-XBL5K2W4.js} +2 -2
  189. package/dist/cli/chunks/{memory-WX3XHQZP.js → memory-FVYBB4DR.js} +5 -5
  190. package/dist/cli/chunks/memory-backend-SLFDDGZB.js +2 -0
  191. package/dist/cli/chunks/{memory-handlers-Q3XCN5SC.js → memory-handlers-LN7J33BW.js} +2 -2
  192. package/dist/cli/chunks/{multi-model-executor-RLY7OQOG.js → multi-model-executor-5LK2OUJ7.js} +2 -2
  193. package/dist/cli/chunks/{opencode-installer-JATQNZWA.js → opencode-installer-FY7QUQ3U.js} +2 -2
  194. package/dist/cli/chunks/{orchestrator-7BNG32I2.js → orchestrator-UYVNXY2H.js} +5 -5
  195. package/dist/cli/chunks/{pipeline-ORKGL7DP.js → pipeline-ZALCCJ2O.js} +2 -2
  196. package/dist/cli/chunks/{platform-4SLJDRVL.js → platform-J2VZO4PZ.js} +2 -2
  197. package/dist/cli/chunks/{plugin-V6FRBF4W.js → plugin-2J74277Q.js} +2 -2
  198. package/dist/cli/chunks/{prime-radiant-advanced-wasm-NA7AXKCA.js → prime-radiant-advanced-wasm-XUBMJ4Z5.js} +2 -2
  199. package/dist/cli/chunks/protocol-executor-3T2LU2YQ.js +2 -0
  200. package/dist/cli/chunks/{protocol-handler-RSJOZ4XL.js → protocol-handler-YGOAM45F.js} +2 -2
  201. package/dist/cli/chunks/{prove-2ZMKUODH.js → prove-7K3XVHHK.js} +2 -2
  202. package/dist/cli/chunks/{provider-manager-PSPAFCK7.js → provider-manager-S7GYXNYK.js} +2 -2
  203. package/dist/cli/chunks/qe-reasoning-bank-KPX2L7ZZ.js +2 -0
  204. package/dist/cli/chunks/{quality-6PZOOQSK.js → quality-7WK5BINE.js} +2 -2
  205. package/dist/cli/chunks/queen-coordinator-G7ZZKP7M.js +2 -0
  206. package/dist/cli/chunks/{real-embeddings-BGNTSKHD.js → real-embeddings-SE7AMRSP.js} +2 -2
  207. package/dist/cli/chunks/{roocode-installer-NOHRQJIP.js → roocode-installer-WAMTTOPL.js} +2 -2
  208. package/dist/cli/chunks/router-UNMP4QIG.js +2 -0
  209. package/dist/cli/chunks/routing-feedback-OG5NUKZD.js +2 -0
  210. package/dist/cli/chunks/{routing-handler-ZAOGNENU.js → routing-handler-PMHQRA32.js} +2 -2
  211. package/dist/cli/chunks/{ruvector-commands-5K3Q4N5H.js → ruvector-commands-GFL76O4H.js} +2 -2
  212. package/dist/cli/chunks/{rvf-dual-writer-NWFQC4KN.js → rvf-dual-writer-GWBC6LPL.js} +2 -2
  213. package/dist/cli/chunks/{rvf-migration-adapter-MS7QGBWK.js → rvf-migration-adapter-CXIG3BWR.js} +2 -2
  214. package/dist/cli/chunks/{rvf-migration-coordinator-YUBSSB6Z.js → rvf-migration-coordinator-EOQMTSCT.js} +2 -2
  215. package/dist/cli/chunks/rvf-native-adapter-EPXU4UUM.js +2 -0
  216. package/dist/cli/chunks/safe-db-BYZRI4XX.js +2 -0
  217. package/dist/cli/chunks/schedule-Z4ICJMF6.js +2 -0
  218. package/dist/cli/chunks/scheduler-T4IIRLST.js +2 -0
  219. package/dist/cli/chunks/{security-BJWJWQRB.js → security-TUU4SO7E.js} +3 -3
  220. package/dist/cli/chunks/shared-rvf-adapter-FDAQL677.js +2 -0
  221. package/dist/cli/chunks/{shared-rvf-dual-writer-LEBD3EHA.js → shared-rvf-dual-writer-REFYUOL6.js} +2 -2
  222. package/dist/cli/chunks/sqlite-persistence-SNTM6622.js +2 -0
  223. package/dist/cli/chunks/{status-handler-XANOAVIB.js → status-handler-V3FJKB72.js} +2 -2
  224. package/dist/cli/chunks/{structural-health-TZA7PJ2T.js → structural-health-YS2IIXLZ.js} +2 -2
  225. package/dist/cli/chunks/{sync-MKNYPUYP.js → sync-K5GEHWLO.js} +2 -2
  226. package/dist/cli/chunks/{task-handler-KXSUKNQV.js → task-handler-XPCZ2JHK.js} +2 -2
  227. package/dist/cli/chunks/{task-handlers-54MMRT3D.js → task-handlers-JTL52AMR.js} +3 -3
  228. package/dist/cli/chunks/{test-AKS5AAT7.js → test-5FJNVFGF.js} +4 -4
  229. package/dist/cli/chunks/{test-scheduling-OA7UPWQ5.js → test-scheduling-JPL25DXR.js} +3 -3
  230. package/dist/cli/chunks/{token-bootstrap-ZIUNRF3E.js → token-bootstrap-QPFQ4UAT.js} +2 -2
  231. package/dist/cli/chunks/{token-usage-IJENSXPQ.js → token-usage-MVT2IZ5R.js} +2 -2
  232. package/dist/cli/chunks/{transformers-CACTFP7H.js → transformers-ZXK7QT3Z.js} +2 -2
  233. package/dist/cli/chunks/{tree-sitter-wasm-parser-4H4UVHAQ.js → tree-sitter-wasm-parser-VBZAQFTO.js} +2 -2
  234. package/dist/cli/chunks/{types-AGACOWV3.js → types-UQCZMHTU.js} +2 -2
  235. package/dist/cli/chunks/unified-memory-RL5XRRVQ.js +2 -0
  236. package/dist/cli/chunks/unified-memory-hnsw-FMHZ5TCH.js +2 -0
  237. package/dist/cli/chunks/unified-persistence-GI5NFSWC.js +2 -0
  238. package/dist/cli/chunks/{upgrade-EKE25VPL.js → upgrade-TETHVGBS.js} +2 -2
  239. package/dist/cli/chunks/{validate-BZTYZQGP.js → validate-7YJTPQC7.js} +2 -2
  240. package/dist/cli/chunks/{validate-swarm-GZANKJ7M.js → validate-swarm-QO32GODJ.js} +2 -2
  241. package/dist/cli/chunks/{vibium-5X7QY25W.js → vibium-HDRQBZAY.js} +2 -2
  242. package/dist/cli/chunks/visual-security-TARFNARP.js +2 -0
  243. package/dist/cli/chunks/{web-tree-sitter-KDFT6ZUY.js → web-tree-sitter-4QMH7RWP.js} +2 -2
  244. package/dist/cli/chunks/{windsurf-installer-QFZJISMO.js → windsurf-installer-HMBCR4V3.js} +2 -2
  245. package/dist/cli/chunks/{witness-chain-ESSANJ4X.js → witness-chain-2SYYDES4.js} +2 -2
  246. package/dist/cli/chunks/witness-chain-U36QGK2S.js +2 -0
  247. package/dist/cli/chunks/{workflow-EQFV2P66.js → workflow-CNFOBA7L.js} +4 -4
  248. package/dist/cli/chunks/workflow-orchestrator-WILFC5ES.js +2 -0
  249. package/dist/cli/chunks/{wrappers-RKJJDJLC.js → wrappers-5KG5VXFG.js} +2 -2
  250. package/dist/cli/commands/hooks-handlers/hooks-shared.js +39 -6
  251. package/dist/kernel/kernel.d.ts +1 -0
  252. package/dist/kernel/kernel.js +21 -0
  253. package/dist/learning/pattern-promotion.d.ts +6 -0
  254. package/dist/learning/pattern-promotion.js +5 -0
  255. package/dist/learning/qe-reasoning-bank-types.d.ts +12 -3
  256. package/dist/learning/qe-reasoning-bank.d.ts +10 -3
  257. package/dist/learning/qe-reasoning-bank.js +28 -7
  258. package/dist/mcp/bundle.js +323 -318
  259. package/dist/optimization/index.d.ts +0 -2
  260. package/dist/optimization/index.js +0 -2
  261. package/dist/workers/workers/learning-consolidation.js +9 -3
  262. package/package.json +1 -1
  263. package/dist/cli/chunks/adapter-LIPKRUFH.js +0 -2
  264. package/dist/cli/chunks/aqe-learning-engine-XJGJ6YS7.js +0 -2
  265. package/dist/cli/chunks/base-22RFSMJU.js +0 -2
  266. package/dist/cli/chunks/browser-workflow-ST7DX7KA.js +0 -2
  267. package/dist/cli/chunks/chunk-RSNZQ3MN.js +0 -2
  268. package/dist/cli/chunks/client-6463JNJR.js +0 -2
  269. package/dist/cli/chunks/cross-domain-router-OYUCD42M.js +0 -2
  270. package/dist/cli/chunks/dream-R76KD347.js +0 -2
  271. package/dist/cli/chunks/hnsw-adapter-CYWGI732.js +0 -2
  272. package/dist/cli/chunks/hnsw-index-UOYT3QKQ.js +0 -2
  273. package/dist/cli/chunks/impact-analyzer-PWV7CJUA.js +0 -2
  274. package/dist/cli/chunks/init-wizard-DKIFAPJJ.js +0 -2
  275. package/dist/cli/chunks/kernel-WQL2MUBH.js +0 -2
  276. package/dist/cli/chunks/knowledge-graph-U5OZDWGT.js +0 -2
  277. package/dist/cli/chunks/load-test-D2CQYRZQ.js +0 -2
  278. package/dist/cli/chunks/memory-backend-HFIGDCZE.js +0 -2
  279. package/dist/cli/chunks/protocol-executor-LTJIEFVG.js +0 -2
  280. package/dist/cli/chunks/qe-reasoning-bank-ZJ56AWO2.js +0 -2
  281. package/dist/cli/chunks/queen-coordinator-CZA7SS4O.js +0 -2
  282. package/dist/cli/chunks/router-N23IDBEQ.js +0 -2
  283. package/dist/cli/chunks/routing-feedback-IADXJ4RV.js +0 -2
  284. package/dist/cli/chunks/rvf-native-adapter-MOR7NUA5.js +0 -2
  285. package/dist/cli/chunks/safe-db-IRAUFZTC.js +0 -2
  286. package/dist/cli/chunks/schedule-PKUUCNCA.js +0 -2
  287. package/dist/cli/chunks/scheduler-NE4NP4W5.js +0 -2
  288. package/dist/cli/chunks/shared-rvf-adapter-OTON2BMV.js +0 -2
  289. package/dist/cli/chunks/sqlite-persistence-DXFBYN5L.js +0 -2
  290. package/dist/cli/chunks/unified-memory-4M3V7XL6.js +0 -2
  291. package/dist/cli/chunks/unified-memory-hnsw-6IKIDXEW.js +0 -2
  292. package/dist/cli/chunks/unified-persistence-XJ4D23TB.js +0 -2
  293. package/dist/cli/chunks/visual-security-2X63QHFJ.js +0 -2
  294. package/dist/cli/chunks/witness-chain-MWIG363M.js +0 -2
  295. package/dist/cli/chunks/workflow-orchestrator-B3ECPAFI.js +0 -2
  296. package/dist/optimization/qe-workers.d.ts +0 -193
  297. package/dist/optimization/qe-workers.js +0 -692
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.26");process.exit(0)}
2
- import{a as i,b as v,c as d,d as p}from"./chunk-HSQLB4GR.js";import{a as h}from"./chunk-ZUUNOGHI.js";import"./chunk-GHQ6QT47.js";import{a as k}from"./chunk-2XOIJE7J.js";import"./chunk-QUHNBIUZ.js";import"./chunk-QXQWQRZA.js";import"./chunk-YUMVG55I.js";import"./chunk-UJPERPQU.js";import"./chunk-A4U4DNPR.js";import"./chunk-VPPXZORB.js";import"./chunk-7T2KT74O.js";import"./chunk-TU2A5BGA.js";import"./chunk-SYQZPNHQ.js";import"./chunk-ANEIDNH7.js";import"./chunk-PJPNRDEF.js";import"./chunk-RSNZQ3MN.js";import"./chunk-F77VZ4IY.js";import"./chunk-DBSEDJ7P.js";import"./chunk-SDD3XQ7X.js";import"./chunk-TZ73IAF5.js";import"./chunk-CYPOU765.js";import"./chunk-4I6XGKSB.js";import"./chunk-B3KHJQ34.js";import"./chunk-MW4WEMLE.js";import"./chunk-4ZAOHYFA.js";import"./chunk-OFAXQGU5.js";import"./chunk-2OFL5HSB.js";import"./chunk-ETBVBV2M.js";import"./chunk-BOV44F3Z.js";import"./chunk-RXQX6JNQ.js";import"./chunk-ARLHD5MG.js";import{Command as x}from"commander";import o from"chalk";function _(e,t,a){let c=new x("validate").description("Validation commands for skills and agents");return c.command("swarm").description("Validate skills in parallel using Claude Flow swarms (ADR-056)").option("-s, --skills <skills>",'Comma-separated list of skills to validate, or "all" for P0 skills',"all").option("-m, --models <models>","Comma-separated list of models to validate against",p.join(",")).option("-t, --topology <topology>","Swarm topology: hierarchical or mesh","hierarchical").option("--max-concurrent <number>","Maximum concurrent skill validations",String(i.maxConcurrentSkills)).option("--max-models <number>","Maximum concurrent models per skill",String(i.maxConcurrentModels)).option("--timeout <ms>","Timeout per validation in milliseconds",String(i.timeout)).option("--no-retry","Disable retries on failure").option("-v, --verbose","Show detailed output").option("--json","Output results as JSON").action(async l=>{if(await a())try{console.log(o.blue(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{a as i,b as v,c as d,d as p}from"./chunk-2O6XVANK.js";import{a as h}from"./chunk-2Z2DD5YW.js";import"./chunk-7QXW6HLF.js";import{a as k}from"./chunk-ET5RCLBO.js";import"./chunk-Q5GQ267O.js";import"./chunk-LXGVB3FK.js";import"./chunk-3BTSXIJ3.js";import"./chunk-4K7KTT4Q.js";import"./chunk-W5EOH4NH.js";import"./chunk-RPDLRKAT.js";import"./chunk-6BIHLI3A.js";import"./chunk-5DDRRXKR.js";import"./chunk-T46HLTI3.js";import"./chunk-JN7WVS57.js";import"./chunk-DL6L4FGW.js";import"./chunk-ZGJTIDFI.js";import"./chunk-XFDOE4QW.js";import"./chunk-PIR3KN5M.js";import"./chunk-MSA7UH3M.js";import"./chunk-WHI7FVTH.js";import"./chunk-SCS3RUTT.js";import"./chunk-HPB5MPJP.js";import"./chunk-RE5OY7WL.js";import"./chunk-HYCRKKJN.js";import"./chunk-2J3B4ONK.js";import"./chunk-CYNQW276.js";import"./chunk-WLT5RGLK.js";import"./chunk-HEZJOCD7.js";import"./chunk-XLFWSEZ4.js";import"./chunk-2MO2U3NO.js";import"./chunk-CNWWQYZ3.js";import{Command as x}from"commander";import o from"chalk";function _(e,t,a){let c=new x("validate").description("Validation commands for skills and agents");return c.command("swarm").description("Validate skills in parallel using Claude Flow swarms (ADR-056)").option("-s, --skills <skills>",'Comma-separated list of skills to validate, or "all" for P0 skills',"all").option("-m, --models <models>","Comma-separated list of models to validate against",p.join(",")).option("-t, --topology <topology>","Swarm topology: hierarchical or mesh","hierarchical").option("--max-concurrent <number>","Maximum concurrent skill validations",String(i.maxConcurrentSkills)).option("--max-models <number>","Maximum concurrent models per skill",String(i.maxConcurrentModels)).option("--timeout <ms>","Timeout per validation in milliseconds",String(i.timeout)).option("--no-retry","Disable retries on failure").option("-v, --verbose","Show detailed output").option("--json","Output results as JSON").action(async l=>{if(await a())try{console.log(o.blue(`
3
3
  Swarm Skill Validation
4
4
  `));let r=l.skills==="all"?[...d]:l.skills.split(",").map(y=>y.trim()),u=l.models.split(",").map(y=>y.trim()),g=P(l.topology),n={topology:g,maxConcurrentSkills:parseInt(l.maxConcurrent,10)||i.maxConcurrentSkills,maxConcurrentModels:parseInt(l.maxModels,10)||i.maxConcurrentModels,timeout:parseInt(l.timeout,10)||i.timeout,continueOnFailure:!0,retry:l.retry!==!1?i.retry:void 0};l.verbose&&(console.log(o.gray("Configuration:")),console.log(o.gray(` Topology: ${n.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${n.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${n.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${n.timeout}ms`)),console.log(o.gray(` Retry: ${n.retry?"enabled":"disabled"}`)),console.log("")),console.log(o.cyan(` Skills: ${r.join(", ")}`)),console.log(o.cyan(` Models: ${u.join(", ")}`)),console.log(o.cyan(` Topology: ${g}`)),console.log("");let m=await R(e),f=k(m),C=v(n,f),w=Date.now();console.log(o.yellow(` Starting parallel validation...
5
5
  `));let $=await C.validateSkillsParallel(r,u),s=C.getSummary($),b=Date.now()-w;l.json?T(s):V(s,l.verbose),console.log(o.blue(`
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.26");process.exit(0)}
2
- import{c as t}from"./chunk-ARLHD5MG.js";import{createRequire as o}from"module";var i,e,a,c,l,p,s,m,u,d,A,f,h,_,b,v,L,n=t(()=>{i=o(import.meta.url),e=i("vibium"),a=e,{RuvectorLayer:c,TensorCompress:l,differentiableSearch:p,hierarchicalForward:s,getCompressionLevel:m,init:u,FlashAttention:d,DotProductAttention:A,MultiHeadAttention:f,HyperbolicAttention:h,LinearAttention:_,MoEAttention:b,SonaEngine:v,pipeline:L}=e||{}});n();export{A as DotProductAttention,d as FlashAttention,h as HyperbolicAttention,_ as LinearAttention,b as MoEAttention,f as MultiHeadAttention,c as RuvectorLayer,v as SonaEngine,l as TensorCompress,a as default,p as differentiableSearch,m as getCompressionLevel,s as hierarchicalForward,u as init,L as pipeline};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{c as t}from"./chunk-CNWWQYZ3.js";import{createRequire as o}from"module";var i,e,a,c,l,p,s,m,u,d,A,f,h,_,b,v,L,n=t(()=>{i=o(import.meta.url),e=i("vibium"),a=e,{RuvectorLayer:c,TensorCompress:l,differentiableSearch:p,hierarchicalForward:s,getCompressionLevel:m,init:u,FlashAttention:d,DotProductAttention:A,MultiHeadAttention:f,HyperbolicAttention:h,LinearAttention:_,MoEAttention:b,SonaEngine:v,pipeline:L}=e||{}});n();export{A as DotProductAttention,d as FlashAttention,h as HyperbolicAttention,_ as LinearAttention,b as MoEAttention,f as MultiHeadAttention,c as RuvectorLayer,v as SonaEngine,l as TensorCompress,a as default,p as differentiableSearch,m as getCompressionLevel,s as hierarchicalForward,u as init,L as pipeline};
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{a}from"./chunk-OA5ZH3IH.js";import"./chunk-BT5YOORE.js";import"./chunk-MHPA6IWB.js";import"./chunk-T46HLTI3.js";import"./chunk-JN7WVS57.js";import"./chunk-ZGJTIDFI.js";import"./chunk-XFDOE4QW.js";import"./chunk-PIR3KN5M.js";import"./chunk-WHI7FVTH.js";import"./chunk-SCS3RUTT.js";import"./chunk-HPB5MPJP.js";import"./chunk-RE5OY7WL.js";import"./chunk-HYCRKKJN.js";import"./chunk-2J3B4ONK.js";import"./chunk-CYNQW276.js";import"./chunk-WLT5RGLK.js";import"./chunk-HEZJOCD7.js";import"./chunk-XLFWSEZ4.js";import"./chunk-2MO2U3NO.js";import"./chunk-CNWWQYZ3.js";export{a as VisualSecurityTool};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.26");process.exit(0)}
2
- import"./chunk-ARLHD5MG.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import"./chunk-CNWWQYZ3.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.26");process.exit(0)}
2
- import{b as u}from"./chunk-XAA7ZBNG.js";import{a as f,c as h}from"./chunk-TZ73IAF5.js";import"./chunk-ARLHD5MG.js";h();import{existsSync as i,mkdirSync as d,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf"),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||d(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let n=this.generator.generateBehavioralRules("windsurf"),s=p(this.projectRoot,n.path);if(e.rulesPath=s,!i(s)||this.overwrite){if(i(s)&&this.overwrite){let o=this.mergeExistingRules(s,n.content);a(s,o)}else a(s,n.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),n=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,n.mcpServers),JSON.stringify(r,null,2)+`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{b as u}from"./chunk-BZNIVIZE.js";import{a as f,c as h}from"./chunk-WHI7FVTH.js";import"./chunk-CNWWQYZ3.js";h();import{existsSync as i,mkdirSync as d,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf"),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||d(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let n=this.generator.generateBehavioralRules("windsurf"),s=p(this.projectRoot,n.path);if(e.rulesPath=s,!i(s)||this.overwrite){if(i(s)&&this.overwrite){let o=this.mergeExistingRules(s,n.content);a(s,o)}else a(s,n.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),n=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,n.mcpServers),JSON.stringify(r,null,2)+`
3
3
  `}catch{return t}}mergeExistingRules(e,t){try{let r=g(e,"utf-8");return r.includes("Agentic QE")||r.includes("fleet_init")?r:r.trimEnd()+`
4
4
 
5
5
  ---
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.26");process.exit(0)}
2
- import{a,b,c,d,e,f,g}from"./chunk-PJPNRDEF.js";import"./chunk-RSNZQ3MN.js";import"./chunk-F77VZ4IY.js";import"./chunk-RXQX6JNQ.js";import"./chunk-ARLHD5MG.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{a,b,c,d,e,f,g}from"./chunk-DL6L4FGW.js";import"./chunk-ZGJTIDFI.js";import"./chunk-XFDOE4QW.js";import"./chunk-2MO2U3NO.js";import"./chunk-CNWWQYZ3.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h}from"./chunk-HV7V34DZ.js";import"./chunk-T46HLTI3.js";import"./chunk-JN7WVS57.js";import"./chunk-ZGJTIDFI.js";import"./chunk-XFDOE4QW.js";import"./chunk-PIR3KN5M.js";import"./chunk-WHI7FVTH.js";import"./chunk-HPB5MPJP.js";import"./chunk-RE5OY7WL.js";import"./chunk-HYCRKKJN.js";import"./chunk-2J3B4ONK.js";import"./chunk-CYNQW276.js";import"./chunk-WLT5RGLK.js";import"./chunk-HEZJOCD7.js";import"./chunk-XLFWSEZ4.js";import"./chunk-2MO2U3NO.js";import"./chunk-CNWWQYZ3.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.26");process.exit(0)}
2
- import"./chunk-Y3YJMKXS.js";import{b as $}from"./chunk-SGGYSL7J.js";import{d as R}from"./chunk-ZFLD5ATZ.js";import{b as k,c as C,d as b}from"./chunk-P6M6LNSI.js";import{c as W}from"./chunk-DBSEDJ7P.js";import"./chunk-SDD3XQ7X.js";import"./chunk-TZ73IAF5.js";import"./chunk-ARLHD5MG.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import"./chunk-WGYJD6DT.js";import{b as $}from"./chunk-J6EDIEZB.js";import{d as R}from"./chunk-PXFK5V2E.js";import{b as k,c as C,d as b}from"./chunk-FQZM3SVW.js";import{c as W}from"./chunk-PIR3KN5M.js";import"./chunk-MSA7UH3M.js";import"./chunk-WHI7FVTH.js";import"./chunk-CNWWQYZ3.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
3
3
  Running workflow from: ${t}
4
4
  `));let s=k(c);if(!s.success||!s.workflow){console.log(o.red("Failed to parse pipeline:"));for(let w of s.errors)console.log(o.red(` ${w}`));await a(1)}let r={...W(l.params,"params")};if(s.pipeline){for(let w of s.pipeline.stages)if(w.params)for(let[S,h]of Object.entries(w.params))r[S]=h}if(!d.workflowOrchestrator.getWorkflow(s.workflow.id)){let w=d.workflowOrchestrator.registerWorkflow(s.workflow);w.success||(console.log(o.red(`Failed to register workflow: ${w.error.message}`)),await a(1))}let n=await d.workflowOrchestrator.executeWorkflow(s.workflow.id,r);if(!n.success){console.log(o.red(`Failed to start workflow: ${n.error.message}`)),await a(1);return}let p=n.value;if(console.log(o.cyan(` Execution ID: ${p}`)),console.log(o.gray(` Workflow: ${s.workflow.name}`)),console.log(o.gray(` Stages: ${s.workflow.steps.length}`)),console.log(""),l.watch){console.log(o.blue(`Workflow Progress:
5
5
  `));let w,S=Date.now();for(;;){let g=d.workflowOrchestrator.getWorkflowStatus(p);if(!g)break;if(!w||w.progress!==g.progress||w.status!==g.status||JSON.stringify(w.currentSteps)!==JSON.stringify(g.currentSteps)){process.stdout.write("\r\x1B[K");let v="\u2588".repeat(Math.floor(g.progress/5))+"\u2591".repeat(20-Math.floor(g.progress/5)),D=g.status==="completed"?o.green:g.status==="failed"?o.red:g.status==="running"?o.yellow:o.gray;console.log(` [${v}] ${g.progress}% - ${D(g.status)}`),g.currentSteps.length>0&&l.verbose&&console.log(o.gray(` Running: ${g.currentSteps.join(", ")}`)),w=g}if(g.status==="completed"||g.status==="failed"||g.status==="cancelled")break;await new Promise(v=>setTimeout(v,500))}let h=d.workflowOrchestrator.getWorkflowStatus(p);if(h){console.log("");let g=h.duration||Date.now()-S;h.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(g)}`)),console.log(o.gray(` Completed: ${h.completedSteps.length} stages`)),h.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${h.skippedSteps.length} stages`))):h.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${h.error}`)),console.log(o.gray(` Failed stages: ${h.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${h.status}`))}}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${p}' to check progress`));console.log(""),await a(0)}catch(s){console.error(o.red(`
@@ -35,10 +35,10 @@ Workflow cancelled: ${t}
35
35
  `)):console.log(o.red(`
36
36
  Failed to cancel workflow: ${l.error.message}
37
37
  `)),await a(l.success?0:1)}catch(l){console.error(o.red(`
38
- Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-ST7DX7KA.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
38
+ Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-WSAEHMFE.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
39
39
  Browser Workflow Templates:
40
40
  `));for(let u of e.data.availableTemplates)console.log(` ${o.cyan(u)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await a(0)}catch(t){console.error(o.red(`
41
- Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-ST7DX7KA.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-JCWHRJ2A.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
41
+ Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-WSAEHMFE.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-GXRUBE4X.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
42
42
  File not found: ${p}
43
43
  `)),await a(1)),f.workflowYaml=i.readFileSync(p,"utf-8")}else f.templateName=t;else console.log(o.red(`
44
44
  Provide a template name or --yaml. Use "workflow browser-list" to see templates.
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-DPMCEGYQ.js";import"./chunk-PFHUT2VE.js";import"./chunk-T46HLTI3.js";import"./chunk-JN7WVS57.js";import"./chunk-ZGJTIDFI.js";import"./chunk-XFDOE4QW.js";import"./chunk-PIR3KN5M.js";import"./chunk-MSA7UH3M.js";import"./chunk-WHI7FVTH.js";import"./chunk-SCS3RUTT.js";import"./chunk-HPB5MPJP.js";import"./chunk-RE5OY7WL.js";import"./chunk-HYCRKKJN.js";import"./chunk-2J3B4ONK.js";import"./chunk-CYNQW276.js";import"./chunk-WLT5RGLK.js";import"./chunk-HEZJOCD7.js";import"./chunk-XLFWSEZ4.js";import"./chunk-2MO2U3NO.js";import"./chunk-CNWWQYZ3.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.26");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-G3KTLF57.js";import"./chunk-SYQZPNHQ.js";import"./chunk-ANEIDNH7.js";import"./chunk-RSNZQ3MN.js";import"./chunk-F77VZ4IY.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-4RFODPDS.js";import"./chunk-DBSEDJ7P.js";import"./chunk-TZ73IAF5.js";import"./chunk-4I6XGKSB.js";import"./chunk-B3KHJQ34.js";import"./chunk-MW4WEMLE.js";import"./chunk-4ZAOHYFA.js";import"./chunk-OFAXQGU5.js";import"./chunk-2OFL5HSB.js";import"./chunk-ETBVBV2M.js";import"./chunk-BOV44F3Z.js";import"./chunk-RXQX6JNQ.js";import"./chunk-ARLHD5MG.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.27");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-J24PEKZ5.js";import"./chunk-T46HLTI3.js";import"./chunk-JN7WVS57.js";import"./chunk-ZGJTIDFI.js";import"./chunk-XFDOE4QW.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-A7D5532X.js";import"./chunk-PIR3KN5M.js";import"./chunk-WHI7FVTH.js";import"./chunk-HPB5MPJP.js";import"./chunk-RE5OY7WL.js";import"./chunk-HYCRKKJN.js";import"./chunk-2J3B4ONK.js";import"./chunk-CYNQW276.js";import"./chunk-WLT5RGLK.js";import"./chunk-HEZJOCD7.js";import"./chunk-XLFWSEZ4.js";import"./chunk-2MO2U3NO.js";import"./chunk-CNWWQYZ3.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
@@ -77,11 +77,23 @@ export async function initializeHooksSystem() {
77
77
  embeddingDimension: 384,
78
78
  useONNXEmbeddings: true, // Use real transformer embeddings (384-dim)
79
79
  }, state.coherenceService ?? undefined);
80
- // Initialize with timeout
80
+ // Initialize with cancellable timeout (issue #478).
81
+ //
82
+ // We can't use Promise.race() to bound initialize() because the loser
83
+ // promise keeps running — and on a slow init the leaked promise would
84
+ // continue appending to patterns.rvf indefinitely (downstream report:
85
+ // 43.8 GB in 29 minutes). Instead, drive cancellation through an
86
+ // AbortSignal that initialize() checks between every step, so the
87
+ // work actually stops when the deadline fires.
81
88
  const initTimeout = 10000; // 10 seconds
82
- const initPromise = state.reasoningBank.initialize();
83
- const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('ReasoningBank init timeout')), initTimeout));
84
- await Promise.race([initPromise, timeoutPromise]);
89
+ const controller = new AbortController();
90
+ const timer = setTimeout(() => controller.abort(new Error('ReasoningBank init timeout')), initTimeout);
91
+ try {
92
+ await state.reasoningBank.initialize({ signal: controller.signal });
93
+ }
94
+ finally {
95
+ clearTimeout(timer);
96
+ }
85
97
  // Wire RVF dual-writer for vector replication (optional, best-effort)
86
98
  try {
87
99
  const { getSharedRvfDualWriter } = await import('../../../integrations/ruvector/shared-rvf-dual-writer.js');
@@ -170,9 +182,30 @@ export async function createHybridBackendWithTimeout(dataDir) {
170
182
  enableFallback: true,
171
183
  defaultNamespace: 'qe-patterns',
172
184
  });
185
+ // HybridMemoryBackend.initialize() does not accept an AbortSignal yet
186
+ // (separate refactor). Use Promise.race for the timeout, but if the
187
+ // timeout wins, dispose the backend once init resolves so we don't leak
188
+ // SQLite/WAL handles in the background (issue #478 family).
189
+ let timedOut = false;
173
190
  const initPromise = backend.initialize();
174
- const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Backend init timeout')), timeoutMs));
175
- await Promise.race([initPromise, timeoutPromise]);
191
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => {
192
+ timedOut = true;
193
+ reject(new Error('Backend init timeout'));
194
+ }, timeoutMs));
195
+ try {
196
+ await Promise.race([initPromise, timeoutPromise]);
197
+ }
198
+ catch (err) {
199
+ if (timedOut) {
200
+ // Tear down the backend after the leaked init completes so its
201
+ // SQLite connections, WAL handles, and pool entries are released.
202
+ // .catch() prevents "unhandled rejection" if dispose itself throws.
203
+ void initPromise
204
+ .then(() => backend.dispose())
205
+ .catch(() => undefined);
206
+ }
207
+ throw err;
208
+ }
176
209
  return backend;
177
210
  }
178
211
  /**
@@ -20,6 +20,7 @@ export declare class QEKernelImpl implements QEKernel {
20
20
  private _startTime;
21
21
  private _initialized;
22
22
  private _loopTracker;
23
+ private _experienceBridge?;
23
24
  constructor(config?: Partial<KernelConfig>);
24
25
  get eventBus(): EventBus;
25
26
  get coordinator(): AgentCoordinator;
@@ -18,6 +18,7 @@ import * as path from 'path';
18
18
  import * as fs from 'fs';
19
19
  import { PluginLifecycleManager } from '../plugins/lifecycle';
20
20
  import { PluginCache } from '../plugins/cache';
21
+ import { CapturedExperienceBridge } from '../bridge/captured-experience-bridge.js';
21
22
  // Import domain plugin factories
22
23
  import { createTestGenerationPlugin } from '../domains/test-generation/plugin';
23
24
  import { createTestExecutionPlugin } from '../domains/test-execution/plugin';
@@ -75,6 +76,9 @@ export class QEKernelImpl {
75
76
  _initialized = false;
76
77
  // ADR-062: Loop detection tracker
77
78
  _loopTracker;
79
+ // Issue #479: drains captured_experiences into the eventBus so hook-driven
80
+ // activity reaches the 13 domain plugins' subscribeToEvents() handlers.
81
+ _experienceBridge;
78
82
  constructor(config = {}) {
79
83
  this._config = { ...DEFAULT_CONFIG, ...config };
80
84
  this._startTime = new Date();
@@ -225,9 +229,26 @@ export class QEKernelImpl {
225
229
  catch {
226
230
  // Migration coordinator is best-effort — don't block kernel startup
227
231
  }
232
+ // Issue #479: start the captured-experience bridge so hook-driven
233
+ // activity (written to captured_experiences SQLite by short-lived
234
+ // hook subprocesses) reaches the domain plugins' eventBus handlers.
235
+ // Best-effort — never block kernel startup on bridge failure.
236
+ try {
237
+ this._experienceBridge = new CapturedExperienceBridge(this._eventBus, this._memory);
238
+ await this._experienceBridge.start();
239
+ }
240
+ catch (err) {
241
+ console.warn('[QEKernel] CapturedExperienceBridge failed to start:', err instanceof Error ? err.message : err);
242
+ this._experienceBridge = undefined;
243
+ }
228
244
  this._initialized = true;
229
245
  }
230
246
  async dispose() {
247
+ // Stop the bridge first so it doesn't try to publish to a disposed bus.
248
+ if (this._experienceBridge) {
249
+ await this._experienceBridge.stop();
250
+ this._experienceBridge = undefined;
251
+ }
231
252
  // Dispose in reverse order of initialization
232
253
  await this._plugins.disposeAll();
233
254
  await this._coordinator.dispose();
@@ -53,6 +53,12 @@ export interface SeedingDeps {
53
53
  searchPatterns: (query: string | number[], options?: Record<string, unknown>) => Promise<Result<PatternSearchResult[]>>;
54
54
  storePattern: (options: Record<string, unknown>) => Promise<Result<QEPattern>>;
55
55
  patternStore: IPatternStore;
56
+ /**
57
+ * Optional cancellation signal. Checked before each store/search so that
58
+ * an aborted init (issue #478) stops appending to the pattern store
59
+ * instead of running to completion in the background.
60
+ */
61
+ signal?: AbortSignal;
56
62
  }
57
63
  /**
58
64
  * Seed cross-domain patterns by transferring generalizable patterns
@@ -152,10 +152,13 @@ export async function promotePattern(patternId, deps) {
152
152
  * from populated domains to their related domains.
153
153
  */
154
154
  export async function seedCrossDomainPatterns(deps) {
155
+ const { signal } = deps;
156
+ signal?.throwIfAborted();
155
157
  const stats = await deps.patternStore.getStats();
156
158
  let transferred = 0;
157
159
  let skipped = 0;
158
160
  for (const [sourceDomainStr, targetDomains] of Object.entries(RELATED_DOMAINS)) {
161
+ signal?.throwIfAborted();
159
162
  const sourceDomain = sourceDomainStr;
160
163
  const sourceCount = stats.byDomain[sourceDomain] || 0;
161
164
  if (sourceCount === 0)
@@ -167,12 +170,14 @@ export async function seedCrossDomainPatterns(deps) {
167
170
  if (!sourceResult.success)
168
171
  continue;
169
172
  for (const targetDomain of targetDomains) {
173
+ signal?.throwIfAborted();
170
174
  const targetCount = stats.byDomain[targetDomain] || 0;
171
175
  if (targetCount >= sourceCount) {
172
176
  skipped++;
173
177
  continue;
174
178
  }
175
179
  for (const { pattern: sourcePattern } of sourceResult.value) {
180
+ signal?.throwIfAborted();
176
181
  const existingCheck = await deps.searchPatterns(sourcePattern.name, {
177
182
  domain: targetDomain,
178
183
  limit: 1,
@@ -112,8 +112,17 @@ export interface PromotionBlockedEvent {
112
112
  * QEReasoningBank interface
113
113
  */
114
114
  export interface IQEReasoningBank {
115
- /** Initialize the reasoning bank */
116
- initialize(): Promise<void>;
115
+ /**
116
+ * Initialize the reasoning bank.
117
+ *
118
+ * Pass `signal` to bound long-running init steps (pattern bootstrap,
119
+ * cross-domain seeding). When the signal is aborted, every awaited step
120
+ * checks it via `throwIfAborted()` so the work stops promptly instead of
121
+ * leaking past a caller-side timeout.
122
+ */
123
+ initialize(options?: {
124
+ signal?: AbortSignal;
125
+ }): Promise<void>;
117
126
  /** Store a new pattern */
118
127
  storePattern(options: CreateQEPatternOptions): Promise<Result<QEPattern>>;
119
128
  /** Search for patterns */
@@ -136,7 +145,7 @@ export interface IQEReasoningBank {
136
145
  /** Get embedding for text */
137
146
  embed(text: string): Promise<number[]>;
138
147
  /** Seed cross-domain patterns by transferring from populated domains to related ones */
139
- seedCrossDomainPatterns(): Promise<{
148
+ seedCrossDomainPatterns(signal?: AbortSignal): Promise<{
140
149
  transferred: number;
141
150
  skipped: number;
142
151
  }>;
@@ -65,9 +65,16 @@ export declare class QEReasoningBank implements IQEReasoningBank {
65
65
  private stats;
66
66
  constructor(memory: MemoryBackend, eventBus?: EventBus | undefined, config?: Partial<QEReasoningBankConfig>, coherenceService?: import("../integrations/coherence/coherence-service.js").ICoherenceService | undefined);
67
67
  /**
68
- * Initialize the reasoning bank
68
+ * Initialize the reasoning bank.
69
+ *
70
+ * `options.signal` bounds the init: every step calls
71
+ * `signal.throwIfAborted()` before starting work, so a caller-side
72
+ * timeout that aborts the signal causes initialize() to reject promptly
73
+ * instead of leaking writes past the timeout (issue #478).
69
74
  */
70
- initialize(): Promise<void>;
75
+ initialize(options?: {
76
+ signal?: AbortSignal;
77
+ }): Promise<void>;
71
78
  /**
72
79
  * Load pre-trained patterns for common QE scenarios
73
80
  */
@@ -79,7 +86,7 @@ export declare class QEReasoningBank implements IQEReasoningBank {
79
86
  * Uses the domain compatibility matrix to determine which domains
80
87
  * are related and applies a relevance decay to transferred patterns.
81
88
  */
82
- seedCrossDomainPatterns(): Promise<{
89
+ seedCrossDomainPatterns(signal?: AbortSignal): Promise<{
83
90
  transferred: number;
84
91
  skipped: number;
85
92
  }>;
@@ -106,12 +106,20 @@ export class QEReasoningBank {
106
106
  });
107
107
  }
108
108
  /**
109
- * Initialize the reasoning bank
109
+ * Initialize the reasoning bank.
110
+ *
111
+ * `options.signal` bounds the init: every step calls
112
+ * `signal.throwIfAborted()` before starting work, so a caller-side
113
+ * timeout that aborts the signal causes initialize() to reject promptly
114
+ * instead of leaking writes past the timeout (issue #478).
110
115
  */
111
- async initialize() {
116
+ async initialize(options) {
112
117
  if (this.initialized)
113
118
  return;
119
+ const signal = options?.signal;
120
+ signal?.throwIfAborted();
114
121
  await this.patternStore.initialize();
122
+ signal?.throwIfAborted();
115
123
  // Wire SQLitePatternStore into PatternStore for delete/promote persistence
116
124
  try {
117
125
  const store = this.getSqliteStore();
@@ -121,8 +129,10 @@ export class QEReasoningBank {
121
129
  catch (e) {
122
130
  logger.warn('Failed to wire SQLitePatternStore into PatternStore', { error: toErrorMessage(e) });
123
131
  }
132
+ signal?.throwIfAborted();
124
133
  // Load any pre-trained patterns
125
- await this.loadPretrainedPatterns();
134
+ await this.loadPretrainedPatterns(signal);
135
+ signal?.throwIfAborted();
126
136
  this.initialized = true;
127
137
  // Run cross-domain transfer ONCE per DB lifetime (not every init)
128
138
  // IMPORTANT: Set the flag BEFORE the transfer so that even if the transfer
@@ -134,7 +144,7 @@ export class QEReasoningBank {
134
144
  if (!alreadySeeded) {
135
145
  // Set flag FIRST to prevent re-runs if transfer times out or process exits
136
146
  await this.memory.set(SEED_FLAG_KEY, true);
137
- await this.seedCrossDomainPatterns();
147
+ await this.seedCrossDomainPatterns(signal);
138
148
  }
139
149
  else {
140
150
  const stats = await this.patternStore.getStats();
@@ -142,6 +152,10 @@ export class QEReasoningBank {
142
152
  }
143
153
  }
144
154
  catch (error) {
155
+ // Re-throw abort errors so the caller sees the cancellation;
156
+ // swallow other errors per the existing non-fatal contract.
157
+ if (signal?.aborted)
158
+ throw error;
145
159
  logger.warn('Cross-domain seeding failed (non-fatal)', { error });
146
160
  }
147
161
  logger.info('Initialized');
@@ -149,8 +163,9 @@ export class QEReasoningBank {
149
163
  /**
150
164
  * Load pre-trained patterns for common QE scenarios
151
165
  */
152
- async loadPretrainedPatterns() {
166
+ async loadPretrainedPatterns(signal) {
153
167
  // Check if we already have patterns
168
+ signal?.throwIfAborted();
154
169
  const stats = await this.patternStore.getStats();
155
170
  if (stats.totalPatterns > 0) {
156
171
  logger.info('Found existing patterns', { totalPatterns: stats.totalPatterns });
@@ -189,10 +204,15 @@ export class QEReasoningBank {
189
204
  // 1. embeddings are computed via this.embed()
190
205
  // 2. patternStore.store() calls adapter.ingest() for each pattern
191
206
  for (const options of PRETRAINED_PATTERNS) {
207
+ // Bail before each store() so an aborted init does not keep appending
208
+ // to patterns.rvf (issue #478).
209
+ signal?.throwIfAborted();
192
210
  try {
193
211
  await this.storePattern(options);
194
212
  }
195
213
  catch (error) {
214
+ if (signal?.aborted)
215
+ throw error;
196
216
  logger.warn('Failed to load pattern', { name: options.name, error });
197
217
  }
198
218
  }
@@ -205,14 +225,15 @@ export class QEReasoningBank {
205
225
  * Uses the domain compatibility matrix to determine which domains
206
226
  * are related and applies a relevance decay to transferred patterns.
207
227
  */
208
- async seedCrossDomainPatterns() {
228
+ async seedCrossDomainPatterns(signal) {
209
229
  if (!this.initialized) {
210
- await this.initialize();
230
+ await this.initialize({ signal });
211
231
  }
212
232
  return seedCrossDomainPatternsFn({
213
233
  searchPatterns: this.searchPatterns.bind(this),
214
234
  storePattern: this.storePattern.bind(this),
215
235
  patternStore: this.patternStore,
236
+ signal,
216
237
  });
217
238
  }
218
239
  /**