agentic-qe 3.13.8 → 3.13.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +65 -0
  3. package/assets/skills/skills-manifest.json +1 -1
  4. package/dist/cli/bundle.js +5 -5
  5. package/dist/cli/chunks/adapter-6CNMDJVJ.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-W5KKWWGM.js → agent-booster-wasm-AWNQ6KB3.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-U27BOQIY.js → agent-handler-RSHQZHPS.js} +2 -2
  8. package/dist/cli/chunks/{agent-memory-branch-FYEN2L2U.js → agent-memory-branch-FU7Y3TQ3.js} +2 -2
  9. package/dist/cli/chunks/aqe-learning-engine-JGHHNSFX.js +2 -0
  10. package/dist/cli/chunks/{arena-F2ZO52SD.js → arena-LOK2WYHC.js} +2 -2
  11. package/dist/cli/chunks/{arena-7GWHLRNN.js → arena-XQOCNKB6.js} +4 -4
  12. package/dist/cli/chunks/{audit-O4RLECCQ.js → audit-6ZS4EAD2.js} +3 -3
  13. package/dist/cli/chunks/base-ND3KAA2L.js +2 -0
  14. package/dist/cli/chunks/{better-sqlite3-3VQVXH7I.js → better-sqlite3-IMBCIZK3.js} +2 -2
  15. package/dist/cli/chunks/{brain-handler-Z4FSHVHF.js → brain-handler-3U6BH4EO.js} +3 -3
  16. package/dist/cli/chunks/{branch-enumerator-VW7QDS3O.js → branch-enumerator-CJBPVBXM.js} +2 -2
  17. package/dist/cli/chunks/{browser-P5PZI236.js → browser-M4VW3KJY.js} +2 -2
  18. package/dist/cli/chunks/browser-workflow-EBSNGTSH.js +2 -0
  19. package/dist/cli/chunks/{chunk-CR5ZQXMN.js → chunk-2CLM53W2.js} +2 -2
  20. package/dist/cli/chunks/{chunk-DKX6SIVF.js → chunk-2E35LWYJ.js} +4 -4
  21. package/dist/cli/chunks/{chunk-UK2267F4.js → chunk-2FFCL4BK.js} +3 -3
  22. package/dist/cli/chunks/{chunk-XONUAS4K.js → chunk-2FPHM356.js} +2 -2
  23. package/dist/cli/chunks/{chunk-SLTIRAYZ.js → chunk-2HEHM2KV.js} +2 -2
  24. package/dist/cli/chunks/{chunk-PTAX4IY2.js → chunk-2HMBDTSI.js} +2 -2
  25. package/dist/cli/chunks/{chunk-HBM423QM.js → chunk-2LGQNT6Q.js} +1 -1
  26. package/dist/cli/chunks/{chunk-W2FT6OUU.js → chunk-2SS2SSNZ.js} +3 -3
  27. package/dist/cli/chunks/{chunk-SYPXKVVR.js → chunk-35CHBX6K.js} +2 -2
  28. package/dist/cli/chunks/{chunk-426SRHIW.js → chunk-37GWETSW.js} +2 -2
  29. package/dist/cli/chunks/{chunk-QYPXBIP5.js → chunk-3E3YLEHB.js} +1 -1
  30. package/dist/cli/chunks/{chunk-2CSKJ5JM.js → chunk-3I5ZTLFY.js} +1 -1
  31. package/dist/cli/chunks/{chunk-6H3VRSJ4.js → chunk-4EWKERKV.js} +2 -2
  32. package/dist/cli/chunks/{chunk-6BNPFSFE.js → chunk-4NXABNLF.js} +1 -1
  33. package/dist/cli/chunks/{chunk-M3PXWTNF.js → chunk-4PRQMFVO.js} +2 -2
  34. package/dist/cli/chunks/{chunk-YTBW2SLZ.js → chunk-4TSLLWE7.js} +1 -1
  35. package/dist/cli/chunks/{chunk-MRLPZMA3.js → chunk-54RIPGMC.js} +1 -1
  36. package/dist/cli/chunks/{chunk-MLFS3MVR.js → chunk-66BUC3JG.js} +2 -2
  37. package/dist/cli/chunks/{chunk-U6O3CFIW.js → chunk-6C5WRBGZ.js} +3 -3
  38. package/dist/cli/chunks/{chunk-YEGZUE6G.js → chunk-6FIWTBR5.js} +1 -1
  39. package/dist/cli/chunks/{chunk-5QZAXVUI.js → chunk-6L36EHM2.js} +2 -2
  40. package/dist/cli/chunks/{chunk-5PRVDHNG.js → chunk-6SM74KJI.js} +1 -1
  41. package/dist/cli/chunks/{chunk-MKCCKFUY.js → chunk-74QKFILD.js} +2 -2
  42. package/dist/cli/chunks/{chunk-Y7ALSL72.js → chunk-7BZUNNWC.js} +1 -1
  43. package/dist/cli/chunks/{chunk-A3V4SRLU.js → chunk-7GZJMPTD.js} +2 -2
  44. package/dist/cli/chunks/{chunk-BTCQJOI2.js → chunk-7JK57AI2.js} +1 -1
  45. package/dist/cli/chunks/chunk-7NDJW2DU.js +22 -0
  46. package/dist/cli/chunks/{chunk-5LLHM6NK.js → chunk-7QNN4GQU.js} +2 -2
  47. package/dist/cli/chunks/{chunk-Y5JWDXGB.js → chunk-7QSGUJE2.js} +1 -1
  48. package/dist/cli/chunks/{chunk-PIPV2C7N.js → chunk-7XCRPSSU.js} +2 -2
  49. package/dist/cli/chunks/{chunk-HP76TI6A.js → chunk-7XWFAPPI.js} +2 -2
  50. package/dist/cli/chunks/{chunk-RWSBQ2AD.js → chunk-A233TTUX.js} +1 -1
  51. package/dist/cli/chunks/{chunk-AMTA6V5L.js → chunk-A6V5NZCV.js} +2 -2
  52. package/dist/cli/chunks/{chunk-SEOOA2FX.js → chunk-AJQGNQ3W.js} +2 -2
  53. package/dist/cli/chunks/{chunk-CB6FBMND.js → chunk-ATSVI6T4.js} +1 -1
  54. package/dist/cli/chunks/{chunk-X4FHVATG.js → chunk-BB4LWAAH.js} +2 -2
  55. package/dist/cli/chunks/{chunk-AGJG5PAS.js → chunk-BFX3N7KU.js} +1 -1
  56. package/dist/cli/chunks/{chunk-BC37ZYBO.js → chunk-BM5BSYPW.js} +2 -2
  57. package/dist/cli/chunks/{chunk-CK2I5QTK.js → chunk-BTG5UFMA.js} +2 -2
  58. package/dist/cli/chunks/{chunk-HQQI4ZEO.js → chunk-C5CP66K5.js} +1 -1
  59. package/dist/cli/chunks/{chunk-2Q7T3PL4.js → chunk-C5HYQTD7.js} +1 -1
  60. package/dist/cli/chunks/{chunk-ZKOIWNH7.js → chunk-C656WHED.js} +2 -2
  61. package/dist/cli/chunks/{chunk-DZHVLIR6.js → chunk-CCAY7Q56.js} +1 -1
  62. package/dist/cli/chunks/{chunk-D2SHZXX7.js → chunk-CPXZC7LF.js} +1 -1
  63. package/dist/cli/chunks/{chunk-PVUQMV6P.js → chunk-DR4V75BF.js} +2 -2
  64. package/dist/cli/chunks/{chunk-MQKQTX4T.js → chunk-DZNK4EM7.js} +3 -3
  65. package/dist/cli/chunks/{chunk-X6MSSQFP.js → chunk-EE55ALFK.js} +2 -2
  66. package/dist/cli/chunks/{chunk-SECJ2IQE.js → chunk-EJRDL5W5.js} +2 -2
  67. package/dist/cli/chunks/{chunk-YWISQTXQ.js → chunk-EKZNA6HW.js} +1 -1
  68. package/dist/cli/chunks/{chunk-AKCNLYE3.js → chunk-EP2HOAEB.js} +2 -2
  69. package/dist/cli/chunks/{chunk-D53CCDCD.js → chunk-EZY3DAIX.js} +1 -1
  70. package/dist/cli/chunks/{chunk-SSIOQDWN.js → chunk-F3AHUNWH.js} +2 -2
  71. package/dist/cli/chunks/{chunk-Y6EFJG52.js → chunk-FBJUNJ2A.js} +1 -1
  72. package/dist/cli/chunks/{chunk-IYOGT6HD.js → chunk-FC47FRFI.js} +2 -2
  73. package/dist/cli/chunks/{chunk-7QJ344ZA.js → chunk-FOPLJRWL.js} +2 -2
  74. package/dist/cli/chunks/{chunk-XIJGRH5I.js → chunk-FOWBKCRK.js} +10 -10
  75. package/dist/cli/chunks/{chunk-QYZLZ6P3.js → chunk-G427QR5W.js} +2 -2
  76. package/dist/cli/chunks/{chunk-TQL4CSAS.js → chunk-G7YD3BR3.js} +2 -2
  77. package/dist/cli/chunks/{chunk-HD22NMGP.js → chunk-GQ6H37RN.js} +2 -2
  78. package/dist/cli/chunks/{chunk-CDBTYQ4N.js → chunk-GRTU5QOT.js} +2 -2
  79. package/dist/cli/chunks/{chunk-YCL7OWK3.js → chunk-GSN4QIDI.js} +2 -2
  80. package/dist/cli/chunks/{chunk-ZLWYE47I.js → chunk-H633BGA7.js} +1 -1
  81. package/dist/cli/chunks/{chunk-QFHOF4F3.js → chunk-H7AACUYS.js} +2 -2
  82. package/dist/cli/chunks/{chunk-BS4ZARET.js → chunk-HEY2ZRL7.js} +2 -2
  83. package/dist/cli/chunks/{chunk-ACZ7CNBM.js → chunk-HL5RC5YB.js} +1 -1
  84. package/dist/cli/chunks/{chunk-YRSKYBOL.js → chunk-HZIT42TM.js} +2 -2
  85. package/dist/cli/chunks/{chunk-JKSAZL2F.js → chunk-I3SBXWF2.js} +1 -1
  86. package/dist/cli/chunks/{chunk-X6VCAUOX.js → chunk-IHNPXNFG.js} +2 -2
  87. package/dist/cli/chunks/{chunk-NXTV6EJQ.js → chunk-IJ3HHUSD.js} +2 -2
  88. package/dist/cli/chunks/{chunk-PZS742LW.js → chunk-IR7FZYPO.js} +1 -1
  89. package/dist/cli/chunks/{chunk-XUB5UG7C.js → chunk-IYLSML27.js} +2 -2
  90. package/dist/cli/chunks/{chunk-3KSB2PDF.js → chunk-J6H2LUBM.js} +2 -2
  91. package/dist/cli/chunks/{chunk-YISGZEZR.js → chunk-JALFKAAD.js} +1 -1
  92. package/dist/cli/chunks/{chunk-MMNNQ5PO.js → chunk-JGXU5FUZ.js} +3 -3
  93. package/dist/cli/chunks/{chunk-OWWLOSVW.js → chunk-JMF3FMAO.js} +2 -2
  94. package/dist/cli/chunks/{chunk-4GTPYV66.js → chunk-JPDJARGR.js} +2 -2
  95. package/dist/cli/chunks/{chunk-BU6HG2RT.js → chunk-JUVW4DOU.js} +2 -2
  96. package/dist/cli/chunks/{chunk-XJT6TR5E.js → chunk-JWV5ZM2S.js} +2 -2
  97. package/dist/cli/chunks/{chunk-UJ5KZ764.js → chunk-K6SXDKWV.js} +1 -1
  98. package/dist/cli/chunks/{chunk-PDIJAWCK.js → chunk-KBJYXZI7.js} +2 -2
  99. package/dist/cli/chunks/{chunk-GO6GSIHE.js → chunk-KBOGA4GA.js} +2 -2
  100. package/dist/cli/chunks/{chunk-J3EDJVZR.js → chunk-KITVDY4T.js} +1 -1
  101. package/dist/cli/chunks/{chunk-ZO6QWQ2G.js → chunk-KQVTTP2S.js} +2 -2
  102. package/dist/cli/chunks/{chunk-CZTNTQZA.js → chunk-LPVHYZAE.js} +1 -1
  103. package/dist/cli/chunks/{chunk-UGBHQC32.js → chunk-MFGKSD44.js} +2 -2
  104. package/dist/cli/chunks/{chunk-CDVGXGUX.js → chunk-MGJPS2YV.js} +2 -2
  105. package/dist/cli/chunks/{chunk-Q53NBMNL.js → chunk-MMA6Q6NF.js} +2 -2
  106. package/dist/cli/chunks/{chunk-DTN5NUAJ.js → chunk-MMRORLMM.js} +2 -2
  107. package/dist/cli/chunks/{chunk-SXSCWO6M.js → chunk-NBUBGYLE.js} +2 -2
  108. package/dist/cli/chunks/{chunk-D45ZSWZD.js → chunk-NCX4W65B.js} +5 -5
  109. package/dist/cli/chunks/{chunk-M7O7UKP3.js → chunk-NL3KX4NE.js} +10 -10
  110. package/dist/cli/chunks/{chunk-YLFM5AZ4.js → chunk-NRD76M7A.js} +2 -2
  111. package/dist/cli/chunks/{chunk-R557EYUJ.js → chunk-NZRKWUBM.js} +2 -2
  112. package/dist/cli/chunks/{chunk-2GD3RLVF.js → chunk-O5QZB2AP.js} +2 -2
  113. package/dist/cli/chunks/{chunk-XKKCH24C.js → chunk-OLETDPH2.js} +2 -2
  114. package/dist/cli/chunks/{chunk-CB23FNZW.js → chunk-OSWAQX4G.js} +2 -2
  115. package/dist/cli/chunks/{chunk-GVX4IAKF.js → chunk-OZLMIEJC.js} +2 -2
  116. package/dist/cli/chunks/{chunk-SBGMMCPJ.js → chunk-OZO2JUEK.js} +1 -1
  117. package/dist/cli/chunks/{chunk-65LJ2QU4.js → chunk-PGJHCCR6.js} +3 -3
  118. package/dist/cli/chunks/{chunk-WR3PYP6X.js → chunk-PIV3QHGJ.js} +2 -2
  119. package/dist/cli/chunks/{chunk-L24DBYXX.js → chunk-PLJ72A3I.js} +2 -2
  120. package/dist/cli/chunks/{chunk-LXGDJ5TO.js → chunk-PSBQRTNF.js} +5 -5
  121. package/dist/cli/chunks/{chunk-7TK24XF7.js → chunk-PUN3KZ6N.js} +2 -2
  122. package/dist/cli/chunks/{chunk-TM55OOPV.js → chunk-PVGOOKBF.js} +1 -1
  123. package/dist/cli/chunks/{chunk-WIDOUTFF.js → chunk-Q26QKZYI.js} +2 -2
  124. package/dist/cli/chunks/{chunk-7VWAKVRE.js → chunk-Q7QKJY6Y.js} +2 -2
  125. package/dist/cli/chunks/{chunk-22TNTFEN.js → chunk-QHRMZP6J.js} +1 -1
  126. package/dist/cli/chunks/{chunk-ICET3FUT.js → chunk-QR6NVCRT.js} +3 -3
  127. package/dist/cli/chunks/{chunk-I6LGE3DO.js → chunk-QZOAU2N5.js} +1 -1
  128. package/dist/cli/chunks/{chunk-XPMQEFQI.js → chunk-RCXC4YGL.js} +1 -1
  129. package/dist/cli/chunks/{chunk-756OZOSH.js → chunk-RQTXQ6C7.js} +2 -2
  130. package/dist/cli/chunks/{chunk-EO3RV7QV.js → chunk-RYHOV4E3.js} +2 -2
  131. package/dist/cli/chunks/{chunk-FSKEQ625.js → chunk-SWZUMHIQ.js} +2 -2
  132. package/dist/cli/chunks/{chunk-WMRLLJDW.js → chunk-T7OS4CB4.js} +2 -2
  133. package/dist/cli/chunks/{chunk-OZSYL2CL.js → chunk-TIGBPVPZ.js} +1 -1
  134. package/dist/cli/chunks/chunk-TL5FMEKW.js +2 -0
  135. package/dist/cli/chunks/{chunk-SZYHPGZD.js → chunk-U562TIMO.js} +2 -2
  136. package/dist/cli/chunks/{chunk-N7ITWNQP.js → chunk-U5NKLMF4.js} +2 -2
  137. package/dist/cli/chunks/{chunk-QMMRUFEI.js → chunk-U5WFVIKL.js} +2 -2
  138. package/dist/cli/chunks/{chunk-3OJWLZIO.js → chunk-U6YDS37V.js} +2 -2
  139. package/dist/cli/chunks/{chunk-DPQ2IANL.js → chunk-UHHWEWDA.js} +2 -2
  140. package/dist/cli/chunks/{chunk-PLIUHFVE.js → chunk-UHSIP4DJ.js} +2 -2
  141. package/dist/cli/chunks/{chunk-E2OORKCW.js → chunk-UL6PT654.js} +2 -2
  142. package/dist/cli/chunks/{chunk-QWACAQQ4.js → chunk-UNXPBIX5.js} +2 -2
  143. package/dist/cli/chunks/{chunk-DW5F6DJM.js → chunk-VUCCPPQ6.js} +2 -2
  144. package/dist/cli/chunks/{chunk-FMTURKX4.js → chunk-VWZ743HH.js} +4 -4
  145. package/dist/cli/chunks/{chunk-NW5XQQMC.js → chunk-W3DCBOLL.js} +1 -1
  146. package/dist/cli/chunks/{chunk-HRAU4ZC3.js → chunk-WFEHOEYP.js} +1 -1
  147. package/dist/cli/chunks/{chunk-NJ7SVXE6.js → chunk-WIB6KRFJ.js} +2 -2
  148. package/dist/cli/chunks/{chunk-ZNJJLA64.js → chunk-WK5MKY45.js} +3 -3
  149. package/dist/cli/chunks/{chunk-VJDGJ6CW.js → chunk-WKE2FUCP.js} +1 -1
  150. package/dist/cli/chunks/{chunk-C37IK75J.js → chunk-WSPEAYPG.js} +2 -2
  151. package/dist/cli/chunks/{chunk-2CJ5V2DT.js → chunk-XPUPST5T.js} +1 -1
  152. package/dist/cli/chunks/{chunk-GPRPGL5N.js → chunk-YALYPHSG.js} +2 -2
  153. package/dist/cli/chunks/{chunk-YHV23E6J.js → chunk-YC5UJVV3.js} +1 -1
  154. package/dist/cli/chunks/{chunk-3UENFJEV.js → chunk-YHAUBZ4H.js} +3 -3
  155. package/dist/cli/chunks/{chunk-55UQC4BO.js → chunk-YO63NTJV.js} +1 -1
  156. package/dist/cli/chunks/{chunk-W4CW6TKP.js → chunk-ZAEUW3Q4.js} +1 -1
  157. package/dist/cli/chunks/{chunk-P6PRMORM.js → chunk-ZH3MVVXO.js} +2 -2
  158. package/dist/cli/chunks/{ci-3Z3OSULB.js → ci-7QW7234M.js} +2 -2
  159. package/dist/cli/chunks/{ci-output-ETGFFPKJ.js → ci-output-WGP4YKPQ.js} +2 -2
  160. package/dist/cli/chunks/{circuit-breaker-G7ABL353.js → circuit-breaker-AOHSCJYO.js} +2 -2
  161. package/dist/cli/chunks/{claude-flow-setup-EKBBG7HG.js → claude-flow-setup-CIZ3TWR7.js} +2 -2
  162. package/dist/cli/chunks/client-NEGGUFEM.js +2 -0
  163. package/dist/cli/chunks/{cline-installer-TRNHEMDA.js → cline-installer-J2QVGPJY.js} +2 -2
  164. package/dist/cli/chunks/{code-JMENIVDM.js → code-WH26MFMB.js} +2 -2
  165. package/dist/cli/chunks/{code-index-extractor-JIYCGDUF.js → code-index-extractor-DBOYEFZ4.js} +2 -2
  166. package/dist/cli/chunks/{codex-installer-XBHDOIN7.js → codex-installer-MWYVGZC4.js} +2 -2
  167. package/dist/cli/chunks/{completions-HF6I7WD3.js → completions-LNBHGWUS.js} +2 -2
  168. package/dist/cli/chunks/{complexity-analyzer-MWV6KUSW.js → complexity-analyzer-AMYCTQG2.js} +2 -2
  169. package/dist/cli/chunks/{continuedev-installer-YWTPGW7K.js → continuedev-installer-73EQPP37.js} +2 -2
  170. package/dist/cli/chunks/{copilot-installer-V2SX7GBX.js → copilot-installer-JWSY2272.js} +2 -2
  171. package/dist/cli/chunks/core-handlers-Q2XPFYQ5.js +2 -0
  172. package/dist/cli/chunks/{cost-tracker-RQJRRISN.js → cost-tracker-XQVIORRZ.js} +2 -2
  173. package/dist/cli/chunks/{coverage-IZ43CIOL.js → coverage-HYGJIQ25.js} +3 -3
  174. package/dist/cli/chunks/cross-domain-router-WNZMUQ3G.js +2 -0
  175. package/dist/cli/chunks/{cursor-installer-K3VUWVE3.js → cursor-installer-DNPNJGZM.js} +2 -2
  176. package/dist/cli/chunks/{daemon-HFAAQUIJ.js → daemon-6JNNBU33.js} +4 -4
  177. package/dist/cli/chunks/{daemon-N6AICOXE.js → daemon-GSOGO6L3.js} +3 -3
  178. package/dist/cli/chunks/{dag-attention-scheduler-7TFE4MSB.js → dag-attention-scheduler-7SGPLKGI.js} +2 -2
  179. package/dist/cli/chunks/{detect-VFGXI7AL.js → detect-IXD77HG4.js} +2 -2
  180. package/dist/cli/chunks/{dist-node-P2JPEBHL.js → dist-node-ARTYK2HL.js} +2 -2
  181. package/dist/cli/chunks/{domain-handler-CIMGA5Z3.js → domain-handler-X4BOFLMY.js} +2 -2
  182. package/dist/cli/chunks/{domain-transfer-UHNJ2JW4.js → domain-transfer-7JBEXLFL.js} +2 -2
  183. package/dist/cli/chunks/dream-OL5XLAYS.js +2 -0
  184. package/dist/cli/chunks/{embed-and-insert-pattern-UWK2RRN4.js → embed-and-insert-pattern-VSOLKM3Y.js} +2 -2
  185. package/dist/cli/chunks/{eval-NXHZ7BQE.js → eval-HS2QQW42.js} +2 -2
  186. package/dist/cli/chunks/{experience-capture-middleware-RVQ7F34S.js → experience-capture-middleware-MWEPZYBT.js} +3 -3
  187. package/dist/cli/chunks/{fast-paths-DRXANKX2.js → fast-paths-RONNJ6AC.js} +2 -2
  188. package/dist/cli/chunks/{feature-flags-V45DD537.js → feature-flags-4YE5A6XG.js} +2 -2
  189. package/dist/cli/chunks/{feature-flags-NW6VEQMN.js → feature-flags-CLW4K2HN.js} +2 -2
  190. package/dist/cli/chunks/{file-discovery-GJO7L2NH.js → file-discovery-56C2FW4V.js} +2 -2
  191. package/dist/cli/chunks/{fleet-O35WUOSC.js → fleet-KMB6RM3R.js} +3 -3
  192. package/dist/cli/chunks/{gnn-wrapper-AUVW767T.js → gnn-wrapper-R2OMDND4.js} +2 -2
  193. package/dist/cli/chunks/{heartbeat-handler-5YXDBHH4.js → heartbeat-handler-FP3CIA2V.js} +4 -4
  194. package/dist/cli/chunks/heartbeat-scheduler-XUAW3I3Q.js +2 -0
  195. package/dist/cli/chunks/hnsw-adapter-EDK2YUZJ.js +2 -0
  196. package/dist/cli/chunks/hnsw-index-RDMT66NM.js +2 -0
  197. package/dist/cli/chunks/{hnsw-legacy-bridge-BYJY6BS3.js → hnsw-legacy-bridge-EQKXBLRX.js} +2 -2
  198. package/dist/cli/chunks/{hnswlib-node-DOAKQHTK.js → hnswlib-node-JG3WOXKM.js} +2 -2
  199. package/dist/cli/chunks/{hooks-AXI33SEK.js → hooks-6QZYELUZ.js} +51 -50
  200. package/dist/cli/chunks/hybrid-router-BALMPXND.js +2 -0
  201. package/dist/cli/chunks/{hypergraph-engine-SMYLLI4Z.js → hypergraph-engine-5HGNZFDH.js} +2 -2
  202. package/dist/cli/chunks/{hypergraph-handler-GYPRTMRE.js → hypergraph-handler-LO2ODOYD.js} +3 -3
  203. package/dist/cli/chunks/impact-analyzer-P6XLP3QX.js +2 -0
  204. package/dist/cli/chunks/{init-handler-DO5NFTZT.js → init-handler-E346YK6H.js} +6 -6
  205. package/dist/cli/chunks/init-wizard-HMU5OPKQ.js +2 -0
  206. package/dist/cli/chunks/kernel-HMSENQ6R.js +2 -0
  207. package/dist/cli/chunks/{kilocode-installer-CVWXBLG6.js → kilocode-installer-ZBJNB6N4.js} +2 -2
  208. package/dist/cli/chunks/{kiro-installer-DK7J7XL7.js → kiro-installer-3TWFO4QZ.js} +2 -2
  209. package/dist/cli/chunks/knowledge-graph-G7W72UC5.js +2 -0
  210. package/dist/cli/chunks/{learning-QHDQFBN4.js → learning-3MLFLTM2.js} +44 -44
  211. package/dist/cli/chunks/{llm-router-AMNXDGQ2.js → llm-router-XCBGZRKA.js} +4 -4
  212. package/dist/cli/chunks/llm-router-service-VCM7LAGO.js +2 -0
  213. package/dist/cli/chunks/{load-2NZHFE5D.js → load-P6XC2P74.js} +2 -2
  214. package/dist/cli/chunks/load-test-H5FATYS2.js +2 -0
  215. package/dist/cli/chunks/{mcp-MX4GB3MU.js → mcp-XEND7FPN.js} +2 -2
  216. package/dist/cli/chunks/{memory-NZACDD2C.js → memory-HZ2WSMWW.js} +5 -5
  217. package/dist/cli/chunks/memory-backend-OPHD5UCR.js +2 -0
  218. package/dist/cli/chunks/{memory-handlers-KV7IJ2XA.js → memory-handlers-EA5UFT4G.js} +2 -2
  219. package/dist/cli/chunks/{multi-model-executor-ABZUIP3S.js → multi-model-executor-IYEHZP73.js} +2 -2
  220. package/dist/cli/chunks/{opencode-installer-V3IFSJQT.js → opencode-installer-GH3VVBM2.js} +2 -2
  221. package/dist/cli/chunks/{orchestrator-GCK47DTJ.js → orchestrator-GOKIBTQG.js} +8 -8
  222. package/dist/cli/chunks/pattern-null-store-XJOXEDQO.js +2 -0
  223. package/dist/cli/chunks/pattern-usage-recorder-J2X4DD5S.js +2 -0
  224. package/dist/cli/chunks/{pipeline-ZIXBDYN5.js → pipeline-ELINTMVF.js} +2 -2
  225. package/dist/cli/chunks/{platform-4B7OOTAM.js → platform-PIPUB3LU.js} +2 -2
  226. package/dist/cli/chunks/{plugin-QQ3SOXY2.js → plugin-DXDNI6ZV.js} +2 -2
  227. package/dist/cli/chunks/{prime-radiant-advanced-wasm-4BYJTTZX.js → prime-radiant-advanced-wasm-K6WWURGX.js} +2 -2
  228. package/dist/cli/chunks/protocol-executor-XVN7GTLL.js +2 -0
  229. package/dist/cli/chunks/{protocol-handler-VNRDG3KY.js → protocol-handler-NMO7VI64.js} +2 -2
  230. package/dist/cli/chunks/{prove-WVPJXN6K.js → prove-4BLOE4SC.js} +2 -2
  231. package/dist/cli/chunks/provider-manager-NQICCJZZ.js +2 -0
  232. package/dist/cli/chunks/qe-reasoning-bank-SVCH233Z.js +2 -0
  233. package/dist/cli/chunks/{quality-E3VPSE2L.js → quality-MYXBP3GX.js} +2 -2
  234. package/dist/cli/chunks/{quality-gate-2ZPH7H7Z.js → quality-gate-AXPBK3MT.js} +3 -3
  235. package/dist/cli/chunks/queen-coordinator-Z3PBE4EH.js +2 -0
  236. package/dist/cli/chunks/{real-embeddings-CYHZLS5U.js → real-embeddings-4AKAVZIY.js} +2 -2
  237. package/dist/cli/chunks/{roocode-installer-A2PJDZ6G.js → roocode-installer-JE36LP4T.js} +2 -2
  238. package/dist/cli/chunks/router-HMWZW2SF.js +2 -0
  239. package/dist/cli/chunks/routing-feedback-ZZYHE2CL.js +2 -0
  240. package/dist/cli/chunks/{routing-handler-WASZ7YUM.js → routing-handler-LOJUJCVV.js} +2 -2
  241. package/dist/cli/chunks/ruvector-commands-6PNDYF32.js +8 -0
  242. package/dist/cli/chunks/{rvf-dual-writer-GC2SZLOS.js → rvf-dual-writer-GSTQPRNA.js} +2 -2
  243. package/dist/cli/chunks/{rvf-migration-adapter-RMXAP7UZ.js → rvf-migration-adapter-Z2DSEG3E.js} +2 -2
  244. package/dist/cli/chunks/{rvf-migration-coordinator-22D6BTI5.js → rvf-migration-coordinator-XRNODDH4.js} +2 -2
  245. package/dist/cli/chunks/rvf-native-adapter-ZPT4RLBE.js +2 -0
  246. package/dist/cli/chunks/{rvf-store-integrity-B5676PI2.js → rvf-store-integrity-LVEFIUUW.js} +2 -2
  247. package/dist/cli/chunks/safe-db-VMYUKPV6.js +2 -0
  248. package/dist/cli/chunks/schedule-DOQ4X4MH.js +2 -0
  249. package/dist/cli/chunks/scheduler-FE2DH224.js +2 -0
  250. package/dist/cli/chunks/{security-GYR2YU72.js → security-A2FK2DER.js} +3 -3
  251. package/dist/cli/chunks/{shared-rvf-adapter-RTWRMMCR.js → shared-rvf-adapter-V7IBEGQQ.js} +2 -2
  252. package/dist/cli/chunks/{shared-rvf-dual-writer-4YKFV67E.js → shared-rvf-dual-writer-SMGECN2K.js} +2 -2
  253. package/dist/cli/chunks/sqlite-persistence-TKCACSFQ.js +2 -0
  254. package/dist/cli/chunks/{status-handler-CBPWW3QD.js → status-handler-UHY36LOR.js} +2 -2
  255. package/dist/cli/chunks/{structural-health-CATUHO2L.js → structural-health-6BRP74EW.js} +2 -2
  256. package/dist/cli/chunks/{sync-ADHPFKN6.js → sync-4PDTGP34.js} +2 -2
  257. package/dist/cli/chunks/{sync-YFHOSBNL.js → sync-KI573HOR.js} +2 -2
  258. package/dist/cli/chunks/{task-handler-R2KZIXXF.js → task-handler-QQGSAK6T.js} +2 -2
  259. package/dist/cli/chunks/{task-handlers-HLXWXRC4.js → task-handlers-VUPCDYTI.js} +3 -3
  260. package/dist/cli/chunks/{test-A5SJ4CSH.js → test-CJLXBSRH.js} +4 -4
  261. package/dist/cli/chunks/{test-scheduling-NWAUSA6A.js → test-scheduling-IKPQPQUB.js} +3 -3
  262. package/dist/cli/chunks/{token-bootstrap-KOZLR5KD.js → token-bootstrap-FHLC3SHC.js} +2 -2
  263. package/dist/cli/chunks/{token-usage-7EDWF7XZ.js → token-usage-NCXAK7TB.js} +2 -2
  264. package/dist/cli/chunks/{transformers-OJGVAPSE.js → transformers-SZFBEILB.js} +2 -2
  265. package/dist/cli/chunks/{tree-sitter-wasm-parser-A2BLMPCC.js → tree-sitter-wasm-parser-LFGJRML7.js} +2 -2
  266. package/dist/cli/chunks/{types-AU2VADM6.js → types-NKXH7VTP.js} +2 -2
  267. package/dist/cli/chunks/unified-memory-2PA3CIQT.js +2 -0
  268. package/dist/cli/chunks/unified-memory-hnsw-W43H4ZKY.js +2 -0
  269. package/dist/cli/chunks/unified-persistence-SOW7AAZL.js +2 -0
  270. package/dist/cli/chunks/upgrade-PFCFH6M5.js +5 -0
  271. package/dist/cli/chunks/{validate-AMJG6AVL.js → validate-YEBJRWQM.js} +2 -2
  272. package/dist/cli/chunks/{validate-swarm-6J4VKCBH.js → validate-swarm-TD2NA6QF.js} +2 -2
  273. package/dist/cli/chunks/{vibium-YATMPDAF.js → vibium-ACC4GIOT.js} +2 -2
  274. package/dist/cli/chunks/visual-security-R6BVIOYU.js +2 -0
  275. package/dist/cli/chunks/{web-tree-sitter-UCDN3H4X.js → web-tree-sitter-IWVW5FIE.js} +2 -2
  276. package/dist/cli/chunks/{windsurf-installer-WHKYYVAM.js → windsurf-installer-5PVGLJ3T.js} +2 -2
  277. package/dist/cli/chunks/witness-chain-GSJW7VDF.js +2 -0
  278. package/dist/cli/chunks/{witness-chain-NDBGA7TH.js → witness-chain-VZB4LJOJ.js} +2 -2
  279. package/dist/cli/chunks/{witness-key-manager-2PQHTQVG.js → witness-key-manager-X632AZTN.js} +2 -2
  280. package/dist/cli/chunks/{workflow-F5HE4FGG.js → workflow-VNAYFUVY.js} +4 -4
  281. package/dist/cli/chunks/workflow-orchestrator-TXEMI5DD.js +2 -0
  282. package/dist/cli/chunks/{wrappers-UHG2KXGO.js → wrappers-KO3QXNZP.js} +2 -2
  283. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +18 -8
  284. package/dist/cli/commands/learning.js +55 -17
  285. package/dist/cli/commands/ruvector-commands.js +1 -1
  286. package/dist/cli/commands/upgrade.d.ts +5 -1
  287. package/dist/cli/commands/upgrade.js +34 -6
  288. package/dist/init/phases/12-verification.js +8 -2
  289. package/dist/integrations/ruvector/feature-flags.d.ts +2 -2
  290. package/dist/integrations/ruvector/index.d.ts +1 -1
  291. package/dist/integrations/ruvector/page-rank-backends.d.ts +41 -0
  292. package/dist/integrations/ruvector/page-rank-backends.js +154 -0
  293. package/dist/integrations/ruvector/solver-adapter.d.ts +26 -29
  294. package/dist/integrations/ruvector/solver-adapter.js +56 -163
  295. package/dist/learning/pattern-promotion.d.ts +11 -1
  296. package/dist/learning/pattern-promotion.js +27 -0
  297. package/dist/learning/pattern-usage-recorder.d.ts +10 -0
  298. package/dist/learning/pattern-usage-recorder.js +47 -0
  299. package/dist/learning/qe-reasoning-bank-types.d.ts +2 -0
  300. package/dist/learning/qe-reasoning-bank.d.ts +6 -0
  301. package/dist/learning/qe-reasoning-bank.js +14 -0
  302. package/dist/mcp/bundle.js +311 -303
  303. package/package.json +1 -1
  304. package/dist/cli/chunks/adapter-DM2E2X4Q.js +0 -2
  305. package/dist/cli/chunks/aqe-learning-engine-STMX2LM7.js +0 -2
  306. package/dist/cli/chunks/base-EPDGZB2X.js +0 -2
  307. package/dist/cli/chunks/browser-workflow-CRZ6635H.js +0 -2
  308. package/dist/cli/chunks/chunk-5P2K6VVS.js +0 -14
  309. package/dist/cli/chunks/chunk-K6XYLMXO.js +0 -2
  310. package/dist/cli/chunks/client-IAOK3VSF.js +0 -2
  311. package/dist/cli/chunks/core-handlers-624KK362.js +0 -2
  312. package/dist/cli/chunks/cross-domain-router-2DAGKVTZ.js +0 -2
  313. package/dist/cli/chunks/dream-EYG2RXNJ.js +0 -2
  314. package/dist/cli/chunks/heartbeat-scheduler-43Q5PRW7.js +0 -2
  315. package/dist/cli/chunks/hnsw-adapter-XN2M6KGB.js +0 -2
  316. package/dist/cli/chunks/hnsw-index-4TEELZ7L.js +0 -2
  317. package/dist/cli/chunks/hybrid-router-L4IMWRLC.js +0 -2
  318. package/dist/cli/chunks/impact-analyzer-GNCMGV2E.js +0 -2
  319. package/dist/cli/chunks/init-wizard-6XY76PR6.js +0 -2
  320. package/dist/cli/chunks/kernel-KSJDDMZX.js +0 -2
  321. package/dist/cli/chunks/knowledge-graph-MDPRHCAD.js +0 -2
  322. package/dist/cli/chunks/llm-router-service-Y5Q7C6J5.js +0 -2
  323. package/dist/cli/chunks/load-test-NZZNYHOR.js +0 -2
  324. package/dist/cli/chunks/memory-backend-H3JXCBSZ.js +0 -2
  325. package/dist/cli/chunks/pattern-null-store-DXW5PB5E.js +0 -2
  326. package/dist/cli/chunks/pattern-usage-recorder-TAD2TRNY.js +0 -2
  327. package/dist/cli/chunks/protocol-executor-RRLH6VOX.js +0 -2
  328. package/dist/cli/chunks/provider-manager-S7QOPTRO.js +0 -2
  329. package/dist/cli/chunks/qe-reasoning-bank-SPKHDTEL.js +0 -2
  330. package/dist/cli/chunks/queen-coordinator-T7LEO2QL.js +0 -2
  331. package/dist/cli/chunks/router-LMBUXWVM.js +0 -2
  332. package/dist/cli/chunks/routing-feedback-A5JZ2HTV.js +0 -2
  333. package/dist/cli/chunks/ruvector-commands-USEIUYOT.js +0 -8
  334. package/dist/cli/chunks/rvf-native-adapter-IVKAJC5C.js +0 -2
  335. package/dist/cli/chunks/safe-db-MREVE34L.js +0 -2
  336. package/dist/cli/chunks/schedule-QUQSORLA.js +0 -2
  337. package/dist/cli/chunks/scheduler-POQUTUKP.js +0 -2
  338. package/dist/cli/chunks/sqlite-persistence-K4TX4WXV.js +0 -2
  339. package/dist/cli/chunks/unified-memory-EWCB3EHN.js +0 -2
  340. package/dist/cli/chunks/unified-memory-hnsw-PH2ECVGQ.js +0 -2
  341. package/dist/cli/chunks/unified-persistence-2AM7JHBZ.js +0 -2
  342. package/dist/cli/chunks/upgrade-JLXJ6UTR.js +0 -5
  343. package/dist/cli/chunks/visual-security-B4KSJUTG.js +0 -2
  344. package/dist/cli/chunks/witness-chain-QHAHCB7E.js +0 -2
  345. package/dist/cli/chunks/workflow-orchestrator-LYU63YL7.js +0 -2
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.8");process.exit(0)}
2
- import"./chunk-QMMRUFEI.js";import{b as $}from"./chunk-Y6EFJG52.js";import{d as R}from"./chunk-QFHOF4F3.js";import{b as k,c as C,d as b}from"./chunk-BC37ZYBO.js";import{c as W}from"./chunk-HD22NMGP.js";import"./chunk-MRLPZMA3.js";import"./chunk-XKKCH24C.js";import"./chunk-NW5XQQMC.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.13.10");process.exit(0)}
2
+ import"./chunk-U5WFVIKL.js";import{b as $}from"./chunk-FBJUNJ2A.js";import{d as R}from"./chunk-H7AACUYS.js";import{b as k,c as C,d as b}from"./chunk-BM5BSYPW.js";import{c as W}from"./chunk-GQ6H37RN.js";import"./chunk-54RIPGMC.js";import"./chunk-OLETDPH2.js";import"./chunk-W3DCBOLL.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-CRZ6635H.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-EBSNGTSH.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-CRZ6635H.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-ETGFFPKJ.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-EBSNGTSH.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-WGP4YKPQ.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.13.10");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-KBJYXZI7.js";import"./chunk-OZLMIEJC.js";import"./chunk-37GWETSW.js";import"./chunk-F3AHUNWH.js";import"./chunk-WSPEAYPG.js";import"./chunk-TL5FMEKW.js";import"./chunk-DR4V75BF.js";import"./chunk-KQVTTP2S.js";import"./chunk-GQ6H37RN.js";import"./chunk-54RIPGMC.js";import"./chunk-OLETDPH2.js";import"./chunk-4TSLLWE7.js";import"./chunk-G427QR5W.js";import"./chunk-NRD76M7A.js";import"./chunk-GRTU5QOT.js";import"./chunk-PUN3KZ6N.js";import"./chunk-WIB6KRFJ.js";import"./chunk-Q7QKJY6Y.js";import"./chunk-JWV5ZM2S.js";import"./chunk-EJRDL5W5.js";import"./chunk-VUCCPPQ6.js";import"./chunk-W3DCBOLL.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.13.8");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-3KSB2PDF.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-XUB5UG7C.js";import"./chunk-426SRHIW.js";import"./chunk-SSIOQDWN.js";import"./chunk-C37IK75J.js";import"./chunk-K6XYLMXO.js";import"./chunk-PVUQMV6P.js";import"./chunk-ZO6QWQ2G.js";import"./chunk-HD22NMGP.js";import"./chunk-XKKCH24C.js";import"./chunk-QYZLZ6P3.js";import"./chunk-YLFM5AZ4.js";import"./chunk-CDBTYQ4N.js";import"./chunk-7TK24XF7.js";import"./chunk-NJ7SVXE6.js";import"./chunk-7VWAKVRE.js";import"./chunk-XJT6TR5E.js";import"./chunk-SECJ2IQE.js";import"./chunk-DW5F6DJM.js";import"./chunk-NW5XQQMC.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.13.10");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-J6H2LUBM.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-IYLSML27.js";import"./chunk-37GWETSW.js";import"./chunk-F3AHUNWH.js";import"./chunk-WSPEAYPG.js";import"./chunk-TL5FMEKW.js";import"./chunk-DR4V75BF.js";import"./chunk-KQVTTP2S.js";import"./chunk-GQ6H37RN.js";import"./chunk-OLETDPH2.js";import"./chunk-G427QR5W.js";import"./chunk-NRD76M7A.js";import"./chunk-GRTU5QOT.js";import"./chunk-PUN3KZ6N.js";import"./chunk-WIB6KRFJ.js";import"./chunk-Q7QKJY6Y.js";import"./chunk-JWV5ZM2S.js";import"./chunk-EJRDL5W5.js";import"./chunk-VUCCPPQ6.js";import"./chunk-W3DCBOLL.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};
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { randomUUID } from 'crypto';
8
8
  import chalk from 'chalk';
9
- import { recordPatternUsage } from '../../../learning/pattern-usage-recorder.js';
9
+ import { recordPatternUsage, recordPatternUsageBatch, } from '../../../learning/pattern-usage-recorder.js';
10
10
  // ============================================================================
11
11
  // Dream Scheduler State (persisted in kv_store between hook invocations)
12
12
  // ============================================================================
@@ -739,16 +739,26 @@ export async function consolidateExperiencesToPatterns() {
739
739
  LIMIT 1
740
740
  `).get(agg.domain, patternName);
741
741
  if (existing) {
742
- // Reinforce existing monthly pattern
742
+ // Issue #618: the aggregate writer must use the same audited write
743
+ // path as individual usage. The former inline UPDATE skipped every
744
+ // qe_pattern_usage row and never evaluated promotion.
745
+ recordPatternUsageBatch(db, {
746
+ patternId: existing.id,
747
+ usageCount: agg.cnt,
748
+ successfulUses: agg.successes,
749
+ metrics: { source: 'session-consolidation', domain: agg.domain, agent: agg.agent },
750
+ });
743
751
  db.prepare(`
744
752
  UPDATE qe_patterns
745
- SET usage_count = usage_count + ?,
746
- successful_uses = successful_uses + ?,
747
- confidence = MIN(0.99, confidence + 0.01),
748
- quality_score = MIN(0.99, quality_score + 0.005),
749
- updated_at = datetime('now')
753
+ SET confidence = MIN(0.99, confidence + 0.01), updated_at = datetime('now')
750
754
  WHERE id = ?
751
- `).run(agg.cnt, agg.successes, existing.id);
755
+ `).run(existing.id);
756
+ db.prepare(`
757
+ UPDATE qe_patterns
758
+ SET tier = 'long-term', updated_at = datetime('now')
759
+ WHERE id = ? AND tier = 'short-term'
760
+ AND successful_uses >= 3 AND success_rate >= 0.7 AND confidence >= 0.6
761
+ `).run(existing.id);
752
762
  }
753
763
  else {
754
764
  const patternId = uuidv4();
@@ -219,28 +219,60 @@ function registerConsolidateCommand(learning) {
219
219
  .action(async (options) => {
220
220
  try {
221
221
  const reasoningBank = await initializeLearningSystem();
222
- const threshold = parseInt(options.threshold, 10);
223
- const successRateMin = parseFloat(options.successRate);
222
+ const threshold = Number(options.threshold);
223
+ const successRateMin = Number(options.successRate);
224
+ const confidenceMin = 0.6;
225
+ if (!Number.isInteger(threshold) || threshold < 1) {
226
+ throw new Error('threshold must be a positive integer');
227
+ }
228
+ if (!Number.isFinite(successRateMin) || successRateMin < 0 || successRateMin > 1) {
229
+ throw new Error('success rate must be between 0 and 1');
230
+ }
224
231
  const eligiblePatterns = [];
225
- const searchResult = await reasoningBank.searchPatterns('*', { limit: 1000 });
226
- if (searchResult.success) {
227
- for (const match of searchResult.value) {
228
- const pattern = match.pattern;
229
- if (pattern.tier === 'short-term' && pattern.successfulUses >= threshold && pattern.successRate >= successRateMin) {
230
- eligiblePatterns.push({
231
- id: pattern.id, name: pattern.name, domain: pattern.qeDomain,
232
- successfulUses: pattern.successfulUses, successRate: pattern.successRate, currentTier: pattern.tier,
233
- });
234
- }
232
+ const searchResult = await reasoningBank.searchPatterns('', { limit: 1000 });
233
+ if (!searchResult.success)
234
+ throw new Error(searchResult.error.message);
235
+ for (const match of searchResult.value) {
236
+ const pattern = match.pattern;
237
+ if (pattern.tier === 'short-term' &&
238
+ pattern.successfulUses >= threshold &&
239
+ pattern.successRate >= successRateMin &&
240
+ pattern.confidence >= confidenceMin) {
241
+ eligiblePatterns.push({
242
+ id: pattern.id, name: pattern.name, domain: pattern.qeDomain,
243
+ successfulUses: pattern.successfulUses, successRate: pattern.successRate, currentTier: pattern.tier,
244
+ });
245
+ }
246
+ }
247
+ let promotedCount = 0;
248
+ const failures = [];
249
+ if (!options.dryRun) {
250
+ for (const pattern of eligiblePatterns) {
251
+ const result = await reasoningBank.promotePattern(pattern.id);
252
+ if (result.success)
253
+ promotedCount++;
254
+ else
255
+ failures.push({ id: pattern.id, error: result.error.message });
235
256
  }
236
257
  }
237
258
  if (options.json) {
238
- printJson({ dryRun: options.dryRun || false, eligibleCount: eligiblePatterns.length, threshold, successRateMin, patterns: eligiblePatterns });
259
+ printJson({
260
+ dryRun: options.dryRun || false,
261
+ eligibleCount: eligiblePatterns.length,
262
+ promotedCount,
263
+ failedCount: failures.length,
264
+ threshold,
265
+ successRateMin,
266
+ confidenceMin,
267
+ patterns: eligiblePatterns,
268
+ failures,
269
+ });
239
270
  }
240
271
  else {
241
272
  console.log(chalk.bold('\n🔄 Pattern Consolidation\n'));
242
273
  console.log(` Promotion threshold: ${threshold} successful uses`);
243
274
  console.log(` Minimum success rate: ${(successRateMin * 100).toFixed(0)}%`);
275
+ console.log(` Minimum confidence: ${(confidenceMin * 100).toFixed(0)}%`);
244
276
  console.log(` Eligible patterns: ${eligiblePatterns.length}\n`);
245
277
  if (eligiblePatterns.length === 0) {
246
278
  console.log(chalk.dim(' No patterns eligible for promotion yet.'));
@@ -252,7 +284,13 @@ function registerConsolidateCommand(learning) {
252
284
  console.log(chalk.dim(` Domain: ${p.domain}, Uses: ${p.successfulUses}, Rate: ${(p.successRate * 100).toFixed(0)}%`));
253
285
  }
254
286
  if (!options.dryRun) {
255
- console.log(chalk.yellow('\n Promotion would happen here (not yet implemented)'));
287
+ console.log(chalk.green(`\n Promoted: ${promotedCount}`));
288
+ if (failures.length > 0) {
289
+ console.log(chalk.red(` Failed: ${failures.length}`));
290
+ for (const failure of failures) {
291
+ console.log(chalk.dim(` ${failure.id}: ${failure.error}`));
292
+ }
293
+ }
256
294
  }
257
295
  else {
258
296
  console.log(chalk.yellow('\n Dry run - no changes made'));
@@ -282,7 +320,7 @@ function registerExportCommand(learning) {
282
320
  .action(async (options) => {
283
321
  try {
284
322
  const reasoningBank = await initializeLearningSystem();
285
- const searchResult = await reasoningBank.searchPatterns('*', { limit: 10000, domain: options.domain });
323
+ const searchResult = await reasoningBank.searchPatterns('', { limit: 10000, domain: options.domain });
286
324
  if (!searchResult.success)
287
325
  throw new Error(searchResult.error.message);
288
326
  const patterns = searchResult.value.map(m => m.pattern).filter(p => !options.longTermOnly || p.tier === 'long-term');
@@ -817,7 +855,7 @@ function registerExportFullCommand(learning) {
817
855
  throw new Error('No learning database found. Run "aqe init --auto" first.');
818
856
  const reasoningBank = await initializeLearningSystem();
819
857
  const schemaVersion = await getSchemaVersion(dbPath);
820
- const searchResult = await reasoningBank.searchPatterns('*', { limit: 10000 });
858
+ const searchResult = await reasoningBank.searchPatterns('', { limit: 10000 });
821
859
  if (!searchResult.success)
822
860
  throw new Error(searchResult.error.message);
823
861
  const patterns = searchResult.value.map(m => ({
@@ -912,7 +950,7 @@ function registerImportMergeCommand(learning) {
912
950
  if (!importData.patterns || !Array.isArray(importData.patterns))
913
951
  throw new Error('Invalid import file format: missing patterns array');
914
952
  const reasoningBank = await initializeLearningSystem();
915
- const existingResult = await reasoningBank.searchPatterns('*', { limit: 10000 });
953
+ const existingResult = await reasoningBank.searchPatterns('', { limit: 10000 });
916
954
  const existingNames = new Set();
917
955
  if (existingResult.success)
918
956
  for (const m of existingResult.value)
@@ -69,7 +69,7 @@ const FLAG_DESCRIPTIONS = {
69
69
  useColdTierGNN: 'Cold-tier GNN training (R6, ADR-087)',
70
70
  // Phase 5 Milestone 3 (ADR-087)
71
71
  useMetaLearningEnhancements: 'Meta-learning enhancements (R7, ADR-087)',
72
- useSublinearSolver: 'Sublinear PageRank solver (R8, ADR-087)',
72
+ useSublinearSolver: 'Weighted PageRank solver (R8, ADR-087)',
73
73
  useSpectralSparsification: 'Spectral graph sparsification (R9, ADR-087)',
74
74
  useReservoirReplay: 'Reservoir replay with coherence gating (R10, ADR-087)',
75
75
  // Phase 5 Milestone 4 (ADR-087)
@@ -9,7 +9,8 @@
9
9
  * Related: issue #383 item 2.
10
10
  */
11
11
  import { Command } from 'commander';
12
- export type LoadStatus = 'loaded' | 'missing' | 'required-missing';
12
+ export type LoadStatus = 'loaded' | 'missing' | 'unavailable' | 'required-missing';
13
+ export type PackageAvailability = 'published' | 'unpublished';
13
14
  export interface NativeCheck {
14
15
  /** npm package name as it appears in package.json */
15
16
  readonly packageName: string;
@@ -21,6 +22,8 @@ export interface NativeCheck {
21
22
  readonly affectsFlags: readonly string[];
22
23
  /** Whether missing is fatal or just degrades performance */
23
24
  readonly required: boolean;
25
+ /** Whether users can currently install the package from npm. */
26
+ readonly availability?: PackageAvailability;
24
27
  }
25
28
  export interface NativeResult extends NativeCheck {
26
29
  readonly status: LoadStatus;
@@ -59,6 +62,7 @@ export interface UpgradeReport {
59
62
  readonly requiredOk: boolean;
60
63
  readonly optionalMissingCount: number;
61
64
  readonly optionalLoadedCount: number;
65
+ readonly optionalUnavailableCount: number;
62
66
  };
63
67
  }
64
68
  /**
@@ -50,11 +50,12 @@ export const NATIVE_CATALOG = [
50
50
  required: false,
51
51
  },
52
52
  {
53
- packageName: '@ruvector/solver-node',
54
- role: 'Sublinear PageRank on the pattern citation graph',
55
- fallback: 'TypeScript power iteration — O(n·m) (practical cap 50K nodes)',
53
+ packageName: '@ruvector/solver',
54
+ role: 'Async native weighted PageRank on the pattern citation graph',
55
+ fallback: 'TypeScript power iteration — O(iterations × (nodes + edges)); no hard size limit',
56
56
  affectsFlags: ['useSublinearSolver'],
57
57
  required: false,
58
+ availability: 'unpublished',
58
59
  },
59
60
  {
60
61
  packageName: '@ruvector/attention',
@@ -90,6 +91,9 @@ export function detectNatives(catalog, probe) {
90
91
  if (result.ok) {
91
92
  return { ...check, status: 'loaded' };
92
93
  }
94
+ if (check.availability === 'unpublished') {
95
+ return { ...check, status: 'unavailable', loadError: result.error.message };
96
+ }
93
97
  const missingModule = isModuleNotFound(result.error);
94
98
  const status = check.required
95
99
  ? 'required-missing'
@@ -150,11 +154,23 @@ export function buildRecommendations(input) {
150
154
  });
151
155
  }
152
156
  }
157
+ // Known unpublished packages are informational: keep the fallback visible,
158
+ // but never offer an install command that is guaranteed to fail.
159
+ for (const n of input.natives) {
160
+ if (n.status === 'unavailable') {
161
+ recs.push({
162
+ severity: 'info',
163
+ message: `Optional native unavailable on npm: ${n.packageName} — ` +
164
+ `using ${n.fallback}. No install action is currently available.`,
165
+ });
166
+ }
167
+ }
153
168
  // Env override conflicts: user forced a flag ON but the native isn't loadable.
154
169
  const flagByName = { ...input.flags };
155
170
  for (const override of input.envOverrides) {
156
171
  const natives = input.natives.filter((n) => n.affectsFlags.includes(override.flagName));
157
172
  const anyLoaded = natives.some((n) => n.status === 'loaded');
173
+ const installableMissing = natives.find((n) => n.status === 'missing');
158
174
  const wantsOn = override.value === 'true' || override.value === '1';
159
175
  if (wantsOn && natives.length > 0 && !anyLoaded) {
160
176
  const missing = natives.map((n) => n.packageName).join(', ');
@@ -162,7 +178,9 @@ export function buildRecommendations(input) {
162
178
  severity: 'warn',
163
179
  message: `${override.envVar}=${override.value} requests flag ${override.flagName}=true, ` +
164
180
  `but required native(s) not loaded: ${missing}. The flag will silently fall back.`,
165
- action: natives[0] ? `npm install ${natives[0].packageName}` : undefined,
181
+ action: installableMissing
182
+ ? `npm install ${installableMissing.packageName}`
183
+ : undefined,
166
184
  });
167
185
  }
168
186
  }
@@ -170,7 +188,10 @@ export function buildRecommendations(input) {
170
188
  void nativeByName;
171
189
  // All optionals loaded → positive-confirmation info line.
172
190
  const optionalMissing = input.natives.filter((n) => !n.required && n.status === 'missing');
173
- if (optionalMissing.length === 0 && input.natives.every((n) => n.status !== 'required-missing')) {
191
+ const optionalUnavailable = input.natives.filter((n) => !n.required && n.status === 'unavailable');
192
+ if (optionalMissing.length === 0 &&
193
+ optionalUnavailable.length === 0 &&
194
+ input.natives.every((n) => n.status !== 'required-missing')) {
174
195
  recs.push({
175
196
  severity: 'info',
176
197
  message: 'All recommended native bindings are loaded — no action required.',
@@ -188,6 +209,7 @@ export function buildReport(input) {
188
209
  });
189
210
  const optionalLoadedCount = natives.filter((n) => !n.required && n.status === 'loaded').length;
190
211
  const optionalMissingCount = natives.filter((n) => !n.required && n.status === 'missing').length;
212
+ const optionalUnavailableCount = natives.filter((n) => !n.required && n.status === 'unavailable').length;
191
213
  const requiredOk = natives.filter((n) => n.required).every((n) => n.status === 'loaded');
192
214
  return {
193
215
  aqeVersion: input.aqeVersion,
@@ -204,6 +226,7 @@ export function buildReport(input) {
204
226
  requiredOk,
205
227
  optionalMissingCount,
206
228
  optionalLoadedCount,
229
+ optionalUnavailableCount,
207
230
  },
208
231
  };
209
232
  }
@@ -272,7 +295,10 @@ export function renderReportHuman(report) {
272
295
  const okBadge = report.summary.requiredOk ? chalk.green('OK') : chalk.red('FAIL');
273
296
  push(` Summary: required ${okBadge} ` +
274
297
  `optional loaded ${chalk.cyan(report.summary.optionalLoadedCount)} / ` +
275
- `${chalk.cyan(report.summary.optionalLoadedCount + report.summary.optionalMissingCount)}`);
298
+ `${chalk.cyan(report.summary.optionalLoadedCount +
299
+ report.summary.optionalMissingCount +
300
+ report.summary.optionalUnavailableCount)} ` +
301
+ `(${chalk.cyan(report.summary.optionalUnavailableCount)} unavailable)`);
276
302
  push('');
277
303
  return lines.join('\n');
278
304
  }
@@ -282,6 +308,8 @@ function statusBadge(status) {
282
308
  return chalk.green('✓');
283
309
  case 'missing':
284
310
  return chalk.yellow('…');
311
+ case 'unavailable':
312
+ return chalk.gray('–');
285
313
  case 'required-missing':
286
314
  return chalk.red('✗');
287
315
  }
@@ -108,7 +108,7 @@ export class VerificationPhase extends BasePhase {
108
108
  db.close();
109
109
  return true;
110
110
  }
111
- catch (err) {
111
+ catch {
112
112
  db.close();
113
113
  return false;
114
114
  }
@@ -286,6 +286,12 @@ export class VerificationPhase extends BasePhase {
286
286
  if (existing.learning?.enabled !== undefined) {
287
287
  newConfig.learning.enabled = existing.learning.enabled;
288
288
  }
289
+ if (existing.learning?.qualityThreshold !== undefined) {
290
+ newConfig.learning.qualityThreshold = existing.learning.qualityThreshold;
291
+ }
292
+ if (existing.learning?.promotionThreshold !== undefined) {
293
+ newConfig.learning.promotionThreshold = existing.learning.promotionThreshold;
294
+ }
289
295
  // Preserve user's hook preferences
290
296
  if (existing.hooks?.claudeCode !== undefined) {
291
297
  newConfig.hooks.claudeCode = existing.hooks.claudeCode;
@@ -326,7 +332,7 @@ export class VerificationPhase extends BasePhase {
326
332
  '# take effect immediately. The following settings are merged on reinstall:',
327
333
  '# - domains.enabled (custom domains like visual-accessibility)',
328
334
  '# - domains.disabled',
329
- '# - learning.enabled',
335
+ '# - learning.enabled, qualityThreshold, and promotionThreshold',
330
336
  '# - hooks.* preferences',
331
337
  '# - workers.enabled',
332
338
  '# - agents.maxConcurrent and defaultTimeout',
@@ -305,8 +305,8 @@ export interface RuVectorFeatureFlags {
305
305
  useMetaLearningEnhancements: boolean;
306
306
  /**
307
307
  * Enable Sublinear Solver (R8, ADR-087)
308
- * O(log n) PageRank for graph-based pattern importance scoring.
309
- * TypeScript power-iteration fallback; native @ruvector/solver-node optional.
308
+ * Sparse weighted PageRank for graph-based pattern importance scoring.
309
+ * TypeScript power-iteration fallback; native @ruvector/solver optional.
310
310
  * Consumer: pattern-promotion.ts (future integration)
311
311
  * Activation: enable after bootstrapping a pattern citation graph
312
312
  * @default false
@@ -108,7 +108,7 @@ export { VectorDeltaTracker, createVectorDeltaTracker, type PatternDelta, type S
108
108
  export { GraphMAEEncoder, createGraphMAEEncoder, type GraphMAEConfig, type QEGraph, type GraphMAEResult, } from './graphmae-encoder';
109
109
  export { HopfieldMemory, createHopfieldMemory, type HopfieldConfig, type StoredPattern, type RecallResult, } from './hopfield-memory';
110
110
  export { ColdTierTrainer, InMemoryGraph, FileBackedGraph, createColdTierTrainer, type ColdTierConfig, type ColdTierGraph, type TrainingResult, type CacheStats, } from './cold-tier-trainer';
111
- export { PageRankSolver, createPageRankSolver, type PatternGraph, type ImportanceScore, type SolverConfig, } from './solver-adapter';
111
+ export { PageRankSolver, createPageRankSolver, type PatternGraph, type ImportanceScore, type SolverConfig, type PageRankRuntimeOptions, } from './solver-adapter';
112
112
  export { SpectralSparsifier, createSpectralSparsifier, type SparsifierGraph, type SpectralValidation, type SparsifierConfig, } from './spectral-sparsifier';
113
113
  export { ReservoirReplayBuffer, createReservoirReplayBuffer, type ReservoirEntry, type ReservoirConfig, type ReservoirStats, type CoherenceTier, } from './reservoir-replay';
114
114
  export { EpropNetwork, createEpropNetwork, type EpropConfig, type EpropStats, } from './eprop-learner';
@@ -0,0 +1,41 @@
1
+ export interface PatternGraph {
2
+ nodes: string[];
3
+ edges: Array<[number, number, number]>;
4
+ }
5
+ export interface SolverConfig {
6
+ dampingFactor: number;
7
+ tolerance: number;
8
+ maxIterations: number;
9
+ }
10
+ export interface NativePageRankResult {
11
+ scores: number[] | Float64Array;
12
+ converged: boolean;
13
+ iterations: number;
14
+ residual: number;
15
+ }
16
+ export interface NativePageRankSolver {
17
+ pagerank(input: {
18
+ values: number[];
19
+ colIndices: number[];
20
+ rowPtrs: number[];
21
+ numNodes: number;
22
+ damping: number;
23
+ tolerance: number;
24
+ maxIterations: number;
25
+ }): Promise<NativePageRankResult>;
26
+ }
27
+ export interface NativeSolverModule {
28
+ NapiSolver: new () => NativePageRankSolver;
29
+ }
30
+ export type AsyncPageRankRunner = (graph: PatternGraph, config: SolverConfig, timeoutMs?: number) => Promise<Float64Array>;
31
+ /** Standard weighted PageRank with uniform dangling-node redistribution. */
32
+ export declare function computeTypeScriptPageRank(graph: PatternGraph, config: SolverConfig): Float64Array;
33
+ export declare function edgeListToCsr(graph: PatternGraph): {
34
+ values: number[];
35
+ colIndices: number[];
36
+ rowPtrs: number[];
37
+ };
38
+ export declare function loadNativeSolverModule(): NativeSolverModule | null;
39
+ export declare function runNativePageRank(module: NativeSolverModule, graph: PatternGraph, config: SolverConfig): Promise<Float64Array>;
40
+ export declare function runPageRankWorker(graph: PatternGraph, config: SolverConfig, timeoutMs?: number): Promise<Float64Array>;
41
+ //# sourceMappingURL=page-rank-backends.d.ts.map
@@ -0,0 +1,154 @@
1
+ import { createRequire } from 'node:module';
2
+ import { Worker } from 'node:worker_threads';
3
+ /** Standard weighted PageRank with uniform dangling-node redistribution. */
4
+ export function computeTypeScriptPageRank(graph, config) {
5
+ const n = graph.nodes.length;
6
+ if (n === 0)
7
+ return new Float64Array();
8
+ const { dampingFactor: d, tolerance, maxIterations } = config;
9
+ const weightedOutDegree = new Float64Array(n);
10
+ const inEdges = new Array(n);
11
+ for (let i = 0; i < n; i++)
12
+ inEdges[i] = [];
13
+ for (const [from, to, weight] of graph.edges) {
14
+ weightedOutDegree[from] += weight;
15
+ inEdges[to].push([from, weight]);
16
+ }
17
+ const danglingNodes = [];
18
+ for (let i = 0; i < n; i++) {
19
+ if (weightedOutDegree[i] === 0)
20
+ danglingNodes.push(i);
21
+ }
22
+ let scores = new Float64Array(n);
23
+ scores.fill(1 / n);
24
+ const base = (1 - d) / n;
25
+ for (let iter = 0; iter < maxIterations; iter++) {
26
+ let danglingSum = 0;
27
+ for (const index of danglingNodes)
28
+ danglingSum += scores[index];
29
+ const danglingContribution = d * danglingSum / n;
30
+ const next = new Float64Array(n);
31
+ for (let i = 0; i < n; i++) {
32
+ let incoming = 0;
33
+ for (const [from, weight] of inEdges[i]) {
34
+ incoming += scores[from] * weight / weightedOutDegree[from];
35
+ }
36
+ next[i] = base + d * incoming + danglingContribution;
37
+ }
38
+ let maxDelta = 0;
39
+ for (let i = 0; i < n; i++) {
40
+ maxDelta = Math.max(maxDelta, Math.abs(next[i] - scores[i]));
41
+ }
42
+ scores = next;
43
+ if (maxDelta < tolerance)
44
+ break;
45
+ }
46
+ return scores;
47
+ }
48
+ export function edgeListToCsr(graph) {
49
+ const rows = Array.from({ length: graph.nodes.length }, () => []);
50
+ for (const [from, to, weight] of graph.edges)
51
+ rows[from].push([to, weight]);
52
+ const values = [];
53
+ const colIndices = [];
54
+ const rowPtrs = [0];
55
+ for (const row of rows) {
56
+ row.sort((left, right) => left[0] - right[0]);
57
+ for (const [column, value] of row) {
58
+ colIndices.push(column);
59
+ values.push(value);
60
+ }
61
+ rowPtrs.push(values.length);
62
+ }
63
+ return { values, colIndices, rowPtrs };
64
+ }
65
+ export function loadNativeSolverModule() {
66
+ try {
67
+ const req = createRequire(import.meta.url);
68
+ const candidate = req('@ruvector/solver');
69
+ return typeof candidate.NapiSolver === 'function'
70
+ ? candidate
71
+ : null;
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ export async function runNativePageRank(module, graph, config) {
78
+ const csr = edgeListToCsr(graph);
79
+ const result = await new module.NapiSolver().pagerank({
80
+ ...csr,
81
+ numNodes: graph.nodes.length,
82
+ damping: config.dampingFactor,
83
+ tolerance: config.tolerance,
84
+ maxIterations: config.maxIterations,
85
+ });
86
+ if (!result.converged)
87
+ throw new Error('Native PageRank did not converge');
88
+ return validatePageRankScores(result.scores, graph.nodes.length);
89
+ }
90
+ export function runPageRankWorker(graph, config, timeoutMs = 30_000) {
91
+ const workerSource = `
92
+ const { parentPort, workerData } = require('node:worker_threads');
93
+ const compute = ${computeTypeScriptPageRank.toString()};
94
+ try {
95
+ const graph = {
96
+ nodes: new Array(workerData.nodeCount),
97
+ edges: workerData.edges,
98
+ };
99
+ const scores = compute(graph, workerData.config);
100
+ parentPort.postMessage(scores, [scores.buffer]);
101
+ } catch (error) {
102
+ throw error;
103
+ }
104
+ `;
105
+ return new Promise((resolve, reject) => {
106
+ const worker = new Worker(workerSource, {
107
+ eval: true,
108
+ workerData: {
109
+ nodeCount: graph.nodes.length,
110
+ edges: graph.edges,
111
+ config,
112
+ },
113
+ });
114
+ const timeout = setTimeout(() => {
115
+ void worker.terminate();
116
+ reject(new Error(`PageRank worker timed out after ${timeoutMs}ms`));
117
+ }, timeoutMs);
118
+ worker.once('message', (scores) => {
119
+ clearTimeout(timeout);
120
+ resolve(validatePageRankScores(scores, graph.nodes.length));
121
+ });
122
+ worker.once('error', (error) => {
123
+ clearTimeout(timeout);
124
+ reject(error);
125
+ });
126
+ worker.once('exit', (code) => {
127
+ if (code !== 0) {
128
+ clearTimeout(timeout);
129
+ reject(new Error(`PageRank worker exited with code ${code}`));
130
+ }
131
+ });
132
+ });
133
+ }
134
+ function validatePageRankScores(input, expectedLength) {
135
+ const scores = input instanceof Float64Array ? input : Float64Array.from(input);
136
+ if (scores.length !== expectedLength) {
137
+ throw new Error(`PageRank returned ${scores.length} scores for ${expectedLength} nodes`);
138
+ }
139
+ let total = 0;
140
+ for (const score of scores) {
141
+ if (!Number.isFinite(score) || score < 0) {
142
+ throw new Error('PageRank returned an invalid score');
143
+ }
144
+ total += score;
145
+ }
146
+ if (!(total > 0))
147
+ throw new Error('PageRank returned a zero score total');
148
+ if (Math.abs(total - 1) > 1e-12) {
149
+ for (let i = 0; i < scores.length; i++)
150
+ scores[i] /= total;
151
+ }
152
+ return scores;
153
+ }
154
+ //# sourceMappingURL=page-rank-backends.js.map