agentic-qe 3.11.2 → 3.11.3

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 (332) hide show
  1. package/.claude/skills/.validation/templates/eval.template.yaml +36 -0
  2. package/.claude/skills/qe-quality-assessment/SKILL.md +25 -0
  3. package/.claude/skills/qe-test-generation/SKILL.md +58 -20
  4. package/.claude/skills/qe-test-generation/evals/qe-test-generation.yaml +37 -0
  5. package/.claude/skills/skills-manifest.json +1 -1
  6. package/CHANGELOG.md +36 -0
  7. package/assets/skills/.validation/templates/eval.template.yaml +36 -0
  8. package/assets/skills/enterprise-integration-testing/SKILL.md +1 -1
  9. package/assets/skills/pentest-validation/SKILL.md +1 -1
  10. package/assets/skills/qcsd-development-swarm/SKILL.md +27 -6
  11. package/assets/skills/qe-quality-assessment/SKILL.md +25 -0
  12. package/assets/skills/qe-test-generation/SKILL.md +58 -20
  13. package/assets/skills/qe-test-generation/evals/qe-test-generation.yaml +37 -0
  14. package/dist/cli/bundle.js +5 -5
  15. package/dist/cli/chunks/adapter-IU3H3MD7.js +2 -0
  16. package/dist/cli/chunks/{agent-booster-wasm-FNCVODUJ.js → agent-booster-wasm-BFRW7HEU.js} +2 -2
  17. package/dist/cli/chunks/{agent-handler-JK7VK37B.js → agent-handler-ZVC3VFPC.js} +2 -2
  18. package/dist/cli/chunks/{agent-memory-branch-EPVVJNNA.js → agent-memory-branch-3WU3CVSX.js} +2 -2
  19. package/dist/cli/chunks/aqe-learning-engine-BGOC63IN.js +2 -0
  20. package/dist/cli/chunks/{arena-NTHVDZTJ.js → arena-JMVTWWG5.js} +2 -2
  21. package/dist/cli/chunks/{arena-EH2IMSRW.js → arena-QMRLNQUC.js} +4 -4
  22. package/dist/cli/chunks/{audit-ODZV2T2B.js → audit-TTWAAV7P.js} +2 -2
  23. package/dist/cli/chunks/base-DVPRE3WO.js +2 -0
  24. package/dist/cli/chunks/{hnswlib-node-2KL54YUA.js → better-sqlite3-QNZJOJAB.js} +2 -2
  25. package/dist/cli/chunks/{brain-handler-NVB6OJ25.js → brain-handler-FXPLJCPV.js} +3 -3
  26. package/dist/cli/chunks/{branch-enumerator-BIXSELMY.js → branch-enumerator-CJJG6X3I.js} +2 -2
  27. package/dist/cli/chunks/{browser-S2Y2W33Z.js → browser-LI2CDWVR.js} +2 -2
  28. package/dist/cli/chunks/browser-workflow-MP5P7KZF.js +2 -0
  29. package/dist/cli/chunks/{chunk-OFUF3APC.js → chunk-22CUJA33.js} +2 -2
  30. package/dist/cli/chunks/{chunk-CUDGKSFX.js → chunk-242B625Q.js} +2 -2
  31. package/dist/cli/chunks/{chunk-X36TZXDK.js → chunk-26KHL4VO.js} +1 -1
  32. package/dist/cli/chunks/{chunk-SE4S23C7.js → chunk-27MMZQ7X.js} +1 -1
  33. package/dist/cli/chunks/{chunk-Z2QNTRUX.js → chunk-2OUXYSQV.js} +2 -2
  34. package/dist/cli/chunks/{chunk-K3YM2Z3E.js → chunk-2SZQDTI5.js} +1 -1
  35. package/dist/cli/chunks/{chunk-AINAWVGD.js → chunk-36HTS4EP.js} +2 -2
  36. package/dist/cli/chunks/{chunk-ZBJMVWQR.js → chunk-3BREKEL5.js} +2 -2
  37. package/dist/cli/chunks/{chunk-YGR54EAA.js → chunk-3CBYKKRW.js} +2 -2
  38. package/dist/cli/chunks/{chunk-XRDPGJNW.js → chunk-3E3PSEC5.js} +2 -2
  39. package/dist/cli/chunks/{chunk-6VAFRS5N.js → chunk-3FOFPGHH.js} +2 -2
  40. package/dist/cli/chunks/{chunk-O3IIAIXB.js → chunk-3XLGXCSX.js} +1 -1
  41. package/dist/cli/chunks/{chunk-HDBJORV7.js → chunk-4ITHKHR5.js} +2 -2
  42. package/dist/cli/chunks/{chunk-P2RR4SW5.js → chunk-54TDOQAH.js} +3 -3
  43. package/dist/cli/chunks/{chunk-EDH4H55B.js → chunk-5746QYRF.js} +2 -2
  44. package/dist/cli/chunks/{chunk-CAUTOCLZ.js → chunk-5EW36WTI.js} +2 -2
  45. package/dist/cli/chunks/{chunk-ZH6HYT7C.js → chunk-6F43POT6.js} +1 -1
  46. package/dist/cli/chunks/{chunk-75C5GX7D.js → chunk-6GVRP64A.js} +2 -2
  47. package/dist/cli/chunks/{chunk-KFE6LB4I.js → chunk-6IHB3T6M.js} +2 -2
  48. package/dist/cli/chunks/{chunk-BGVEBYV4.js → chunk-6JR2RSY2.js} +2 -2
  49. package/dist/cli/chunks/{chunk-PFDILSVO.js → chunk-6KKKPVOF.js} +1 -1
  50. package/dist/cli/chunks/{chunk-KEJEZY2R.js → chunk-6WWNK67C.js} +8 -8
  51. package/dist/cli/chunks/{chunk-XY2B2BEJ.js → chunk-77QJQRL2.js} +2 -2
  52. package/dist/cli/chunks/{chunk-Y4M2HMPR.js → chunk-7FVWETN4.js} +2 -2
  53. package/dist/cli/chunks/{chunk-CZYSCUJ4.js → chunk-7PDUD7FF.js} +2 -2
  54. package/dist/cli/chunks/{chunk-XNREA3FG.js → chunk-7QIYYYUE.js} +1 -1
  55. package/dist/cli/chunks/{chunk-NZNXEEZR.js → chunk-7S7QF4HJ.js} +1 -1
  56. package/dist/cli/chunks/{chunk-IO7ZUP2G.js → chunk-7SBMTSGY.js} +3 -3
  57. package/dist/cli/chunks/{chunk-5BDVFFYF.js → chunk-7UOH55UT.js} +2 -2
  58. package/dist/cli/chunks/{chunk-TOGZ37RL.js → chunk-A43MKBSX.js} +2 -2
  59. package/dist/cli/chunks/{chunk-S6BWEZKK.js → chunk-A4NYOH7P.js} +2 -2
  60. package/dist/cli/chunks/{chunk-A4ZDKF5F.js → chunk-ABD6JBNO.js} +1 -1
  61. package/dist/cli/chunks/{chunk-PPD5ZLNA.js → chunk-AC6OZTY4.js} +2 -2
  62. package/dist/cli/chunks/{chunk-6LQIVIZB.js → chunk-AKOGQT3A.js} +2 -2
  63. package/dist/cli/chunks/{chunk-WEBHFIWS.js → chunk-ATFADWGD.js} +2 -2
  64. package/dist/cli/chunks/{chunk-VNFL2TPU.js → chunk-B65CRJN6.js} +1 -1
  65. package/dist/cli/chunks/{chunk-AYXRT2ND.js → chunk-B6USJW5E.js} +1 -1
  66. package/dist/cli/chunks/{chunk-3J3QXLWP.js → chunk-B7XPSXK6.js} +2 -2
  67. package/dist/cli/chunks/{chunk-JCH2FHJ7.js → chunk-BA7PJS3Y.js} +2 -2
  68. package/dist/cli/chunks/{chunk-42DCMEUM.js → chunk-BFBZFUBP.js} +1 -1
  69. package/dist/cli/chunks/{chunk-P5SGBQLY.js → chunk-BHZI6PDR.js} +1 -1
  70. package/dist/cli/chunks/{chunk-JELN5XTK.js → chunk-BQ5EJPK3.js} +1 -1
  71. package/dist/cli/chunks/{chunk-WZC4HKGZ.js → chunk-CCDGNJZX.js} +2 -2
  72. package/dist/cli/chunks/{chunk-3ATEYGVD.js → chunk-CGKHG46K.js} +2 -2
  73. package/dist/cli/chunks/{chunk-RHSUXQNF.js → chunk-CLZ5RQVA.js} +2 -2
  74. package/dist/cli/chunks/{chunk-YJUJCLXV.js → chunk-CYJ6O5VZ.js} +2 -2
  75. package/dist/cli/chunks/{chunk-AZQ6HDPM.js → chunk-DNOBN3IR.js} +2 -2
  76. package/dist/cli/chunks/{chunk-YDPBCN7H.js → chunk-DPYNXEBC.js} +2 -2
  77. package/dist/cli/chunks/{chunk-LRJWKFGY.js → chunk-DS7AZD26.js} +2 -2
  78. package/dist/cli/chunks/{chunk-QZ2GQGJX.js → chunk-DZ7PWB6E.js} +2 -2
  79. package/dist/cli/chunks/{chunk-KO3WB4SU.js → chunk-DZZ4AJQI.js} +2 -2
  80. package/dist/cli/chunks/{chunk-H5TM4KIB.js → chunk-EBCUWMLX.js} +2 -2
  81. package/dist/cli/chunks/{chunk-7VM4ZUHT.js → chunk-ECGASTG7.js} +2 -2
  82. package/dist/cli/chunks/{chunk-LAY35POY.js → chunk-ED7MD6OI.js} +3 -3
  83. package/dist/cli/chunks/{chunk-CEMROADY.js → chunk-EHEFI6LR.js} +1 -1
  84. package/dist/cli/chunks/{chunk-XXCSJMSR.js → chunk-EXCU4J7T.js} +1 -1
  85. package/dist/cli/chunks/{chunk-27KNLVOY.js → chunk-EZ4GKHSI.js} +2 -2
  86. package/dist/cli/chunks/{chunk-G6LIQFT2.js → chunk-FJRRXCIS.js} +1 -1
  87. package/dist/cli/chunks/{chunk-ZP2GE6DM.js → chunk-FPKKKUWF.js} +1 -1
  88. package/dist/cli/chunks/{chunk-XY4JS3IZ.js → chunk-FZLCKIPP.js} +2 -2
  89. package/dist/cli/chunks/{chunk-LY6PTRVL.js → chunk-G6MPXBCD.js} +2 -2
  90. package/dist/cli/chunks/{chunk-YWG4LHFU.js → chunk-GBCDJJWH.js} +2 -2
  91. package/dist/cli/chunks/{chunk-DMUQV2YU.js → chunk-GCIL7PK7.js} +2 -2
  92. package/dist/cli/chunks/{chunk-H6MBRYA7.js → chunk-H2YOWAEB.js} +2 -2
  93. package/dist/cli/chunks/{chunk-I7UWFV6N.js → chunk-H6YFMUFG.js} +1 -1
  94. package/dist/cli/chunks/{chunk-WARFZ626.js → chunk-H7Y43HBQ.js} +1 -1
  95. package/dist/cli/chunks/{chunk-FV53RMVB.js → chunk-HRD5I7ES.js} +1 -1
  96. package/dist/cli/chunks/{chunk-C6UTRG66.js → chunk-IJHPZMEQ.js} +2 -2
  97. package/dist/cli/chunks/{chunk-4PYJCIRO.js → chunk-JVXPKHND.js} +2 -2
  98. package/dist/cli/chunks/{chunk-ZQYEBLTL.js → chunk-JWTMVC6E.js} +2 -2
  99. package/dist/cli/chunks/{chunk-NPT7BYGF.js → chunk-KHUN65Q3.js} +1 -1
  100. package/dist/cli/chunks/{chunk-CMVNYVKL.js → chunk-KTYESESI.js} +2 -2
  101. package/dist/cli/chunks/{chunk-AKZK46TQ.js → chunk-KULBMV6K.js} +2 -2
  102. package/dist/cli/chunks/{chunk-DU4GQKTH.js → chunk-KXRI4MR3.js} +2 -2
  103. package/dist/cli/chunks/{chunk-7XIQR6VU.js → chunk-L44XXD3X.js} +2 -2
  104. package/dist/cli/chunks/{chunk-WKIYYF3G.js → chunk-L6PH7JIE.js} +2 -2
  105. package/dist/cli/chunks/{chunk-FYY7OJ6Y.js → chunk-LGEZ3ZJX.js} +2 -2
  106. package/dist/cli/chunks/{chunk-I3AD523O.js → chunk-LKLWIP4Z.js} +1 -1
  107. package/dist/cli/chunks/{chunk-JDFF2QMZ.js → chunk-LMA6KEZH.js} +1 -1
  108. package/dist/cli/chunks/{chunk-QFJDR4HC.js → chunk-LW5TUN5F.js} +2 -2
  109. package/dist/cli/chunks/{chunk-FPZLOVEF.js → chunk-MU36VPXV.js} +1 -1
  110. package/dist/cli/chunks/{chunk-JSZNI3AO.js → chunk-MX5FMAY5.js} +1 -1
  111. package/dist/cli/chunks/{chunk-UQ6WB4N2.js → chunk-N2K2EQFH.js} +2 -2
  112. package/dist/cli/chunks/{chunk-P7MIOTVP.js → chunk-NBOEXSV2.js} +1 -1
  113. package/dist/cli/chunks/{chunk-2Q65LTJN.js → chunk-NJ2RY4OL.js} +2 -2
  114. package/dist/cli/chunks/{chunk-7KHZZVF2.js → chunk-NWUVXLBB.js} +4 -4
  115. package/dist/cli/chunks/{chunk-P3VRXQ3H.js → chunk-O7ZDQ5FF.js} +3 -3
  116. package/dist/cli/chunks/{chunk-7HYO76F2.js → chunk-OCACCUFO.js} +2 -2
  117. package/dist/cli/chunks/{chunk-MAXOIEUG.js → chunk-OFMVC6P3.js} +1 -1
  118. package/dist/cli/chunks/{chunk-NGE5YNKC.js → chunk-OQGELUM2.js} +2 -2
  119. package/dist/cli/chunks/{chunk-NIW4CLN2.js → chunk-OVEG5MEL.js} +2 -2
  120. package/dist/cli/chunks/{chunk-H3LGBH4Y.js → chunk-P4UGVVVX.js} +1 -1
  121. package/dist/cli/chunks/{chunk-UCXW24HY.js → chunk-PLQADRA6.js} +2 -2
  122. package/dist/cli/chunks/{chunk-5AFO7ZZG.js → chunk-PMHSTMHV.js} +3 -3
  123. package/dist/cli/chunks/{chunk-K426HTEQ.js → chunk-PSL53AQ4.js} +10 -10
  124. package/dist/cli/chunks/{chunk-LIEA5EON.js → chunk-PUK5NE47.js} +1 -1
  125. package/dist/cli/chunks/{chunk-K6IQBVD7.js → chunk-PUUGIBFF.js} +2 -2
  126. package/dist/cli/chunks/{chunk-G4CQBQBV.js → chunk-PW4GGJMP.js} +1 -1
  127. package/dist/cli/chunks/{chunk-527U4AHC.js → chunk-PY2Q6MN3.js} +6 -6
  128. package/dist/cli/chunks/{chunk-YGRY2TVI.js → chunk-Q2A2XQGF.js} +2 -2
  129. package/dist/cli/chunks/{chunk-OU52V67H.js → chunk-QCCXH5DK.js} +4 -4
  130. package/dist/cli/chunks/{chunk-UQBGA4UA.js → chunk-QPMISAWB.js} +1 -1
  131. package/dist/cli/chunks/{chunk-QZLTIGLB.js → chunk-REZ2GZQ3.js} +1 -1
  132. package/dist/cli/chunks/{chunk-3NCVUFAL.js → chunk-RRSUW2TK.js} +2 -2
  133. package/dist/cli/chunks/{chunk-LI3T5YNC.js → chunk-RWUGXU2K.js} +3 -3
  134. package/dist/cli/chunks/{chunk-H4ZPPHOI.js → chunk-RXN5DWVM.js} +2 -2
  135. package/dist/cli/chunks/{chunk-26ZMIYSK.js → chunk-S2T2BXUL.js} +2 -2
  136. package/dist/cli/chunks/{chunk-5KMGG3QW.js → chunk-S7KDHA6P.js} +4 -4
  137. package/dist/cli/chunks/{chunk-CAVBEZV4.js → chunk-SFDBIO64.js} +2 -2
  138. package/dist/cli/chunks/{chunk-ZWMXF6AX.js → chunk-SFGBC5RP.js} +2 -2
  139. package/dist/cli/chunks/{chunk-AK5Q2WCJ.js → chunk-SIAJP3YA.js} +2 -2
  140. package/dist/cli/chunks/{chunk-IQOCTGA2.js → chunk-SLU35IDJ.js} +2 -2
  141. package/dist/cli/chunks/{chunk-ZU3V4CJ4.js → chunk-SMHYPPO6.js} +2 -2
  142. package/dist/cli/chunks/{chunk-DPFLJMEI.js → chunk-SWRGPCZ2.js} +3 -3
  143. package/dist/cli/chunks/{chunk-76RO2RHG.js → chunk-UFZCHVLH.js} +1 -1
  144. package/dist/cli/chunks/{chunk-3KTOM7NN.js → chunk-UMWYL37S.js} +2 -2
  145. package/dist/cli/chunks/chunk-UNH2DE2G.js +2 -0
  146. package/dist/cli/chunks/{chunk-IXYF5BZY.js → chunk-UTGW75AZ.js} +2 -2
  147. package/dist/cli/chunks/{chunk-OC2W7KIW.js → chunk-VFEU4JM4.js} +2 -2
  148. package/dist/cli/chunks/{chunk-AAVUZVM6.js → chunk-VTDWQ7WI.js} +2 -2
  149. package/dist/cli/chunks/{chunk-XN4G3SRU.js → chunk-VUEYLW5P.js} +2 -2
  150. package/dist/cli/chunks/{chunk-JC4Z2ADP.js → chunk-WCVZHXWL.js} +2 -2
  151. package/dist/cli/chunks/{chunk-MN6W7ZNL.js → chunk-WLLGPGQY.js} +1 -1
  152. package/dist/cli/chunks/{chunk-7MKF52GT.js → chunk-WTKT2AD3.js} +2 -2
  153. package/dist/cli/chunks/{chunk-6SOGYNJG.js → chunk-WV66MXJI.js} +2 -2
  154. package/dist/cli/chunks/{chunk-4FTVTAMN.js → chunk-WYJFVSEB.js} +2 -2
  155. package/dist/cli/chunks/{chunk-ZRU3OZEU.js → chunk-XCSEJQXR.js} +2 -2
  156. package/dist/cli/chunks/{chunk-EIWZDVMT.js → chunk-XKUN5PDH.js} +3 -3
  157. package/dist/cli/chunks/{chunk-IMPSB5WW.js → chunk-YPRM6ZFL.js} +2 -2
  158. package/dist/cli/chunks/{chunk-ARUXFZDY.js → chunk-ZDPQB67L.js} +1 -1
  159. package/dist/cli/chunks/{chunk-LFXXA325.js → chunk-ZM7WOA3K.js} +1 -1
  160. package/dist/cli/chunks/{ci-SM3EVLZ4.js → ci-JW4O2J3W.js} +2 -2
  161. package/dist/cli/chunks/{ci-output-YYXICZBC.js → ci-output-JNXJV4B2.js} +2 -2
  162. package/dist/cli/chunks/{circuit-breaker-CV5UGKXT.js → circuit-breaker-XDD4KUGR.js} +2 -2
  163. package/dist/cli/chunks/{claude-flow-setup-BSBUZ4B7.js → claude-flow-setup-L6IZOGYZ.js} +2 -2
  164. package/dist/cli/chunks/client-ADCDBTEE.js +2 -0
  165. package/dist/cli/chunks/{cline-installer-P2O6STIC.js → cline-installer-PK5SMN2B.js} +2 -2
  166. package/dist/cli/chunks/{code-M7DDLBGS.js → code-ZDVX3SQH.js} +2 -2
  167. package/dist/cli/chunks/{code-index-extractor-3QZIUYOG.js → code-index-extractor-VXZNKEU5.js} +2 -2
  168. package/dist/cli/chunks/{codex-installer-5JVZCCTC.js → codex-installer-OXKSIX7H.js} +2 -2
  169. package/dist/cli/chunks/{completions-EM7IL2BJ.js → completions-VRFFK223.js} +2 -2
  170. package/dist/cli/chunks/{complexity-analyzer-VJXVB2CV.js → complexity-analyzer-FTIMV74J.js} +2 -2
  171. package/dist/cli/chunks/{continuedev-installer-RCKJIAEC.js → continuedev-installer-KTYBBPN4.js} +2 -2
  172. package/dist/cli/chunks/{copilot-installer-DZ7LTDOZ.js → copilot-installer-WDC3YNUR.js} +2 -2
  173. package/dist/cli/chunks/core-handlers-HCACMLUW.js +2 -0
  174. package/dist/cli/chunks/{cost-tracker-QLOLXVAM.js → cost-tracker-6MH4H33B.js} +2 -2
  175. package/dist/cli/chunks/{coverage-LYHTLWRV.js → coverage-NHATLNS4.js} +3 -3
  176. package/dist/cli/chunks/cross-domain-router-HXFQAU4M.js +2 -0
  177. package/dist/cli/chunks/{cursor-installer-PSIZ3Y53.js → cursor-installer-VQSUJDFB.js} +2 -2
  178. package/dist/cli/chunks/{daemon-YLOAXM4X.js → daemon-3VAOEKQW.js} +3 -3
  179. package/dist/cli/chunks/{daemon-IYDTMA5M.js → daemon-ZSK6CLQR.js} +4 -4
  180. package/dist/cli/chunks/{dag-attention-scheduler-I2UIO3Z7.js → dag-attention-scheduler-HZ6OGYIH.js} +2 -2
  181. package/dist/cli/chunks/{detect-ZXQ7X7GZ.js → detect-CGU3SC63.js} +2 -2
  182. package/dist/cli/chunks/{dist-node-GK6OZX4H.js → dist-node-DIBQ7PTA.js} +2 -2
  183. package/dist/cli/chunks/{domain-handler-NS3IBLRQ.js → domain-handler-DCMGAYXS.js} +2 -2
  184. package/dist/cli/chunks/{domain-transfer-5G4RZEWF.js → domain-transfer-UWFKBZTJ.js} +2 -2
  185. package/dist/cli/chunks/dream-SVWQH62A.js +2 -0
  186. package/dist/cli/chunks/{embed-and-insert-pattern-V4JJUFR6.js → embed-and-insert-pattern-7247LAU3.js} +2 -2
  187. package/dist/cli/chunks/{eval-7Q6PPYKR.js → eval-6KR7TFOK.js} +2 -2
  188. package/dist/cli/chunks/{experience-capture-middleware-DUBKSYFM.js → experience-capture-middleware-IIOR6RVV.js} +3 -3
  189. package/dist/cli/chunks/{fast-paths-IDPPMBUW.js → fast-paths-M7OGD4ZI.js} +2 -2
  190. package/dist/cli/chunks/{feature-flags-EPTMAAKA.js → feature-flags-GGUXHRJI.js} +2 -2
  191. package/dist/cli/chunks/{feature-flags-KXI6FDY7.js → feature-flags-U75KFIGH.js} +2 -2
  192. package/dist/cli/chunks/{file-discovery-EDX2OJO7.js → file-discovery-V52AYEB7.js} +2 -2
  193. package/dist/cli/chunks/{fleet-67BO3LJ4.js → fleet-2UH72CK4.js} +3 -3
  194. package/dist/cli/chunks/{gnn-wrapper-YARORYT7.js → gnn-wrapper-J2GDLT3P.js} +2 -2
  195. package/dist/cli/chunks/{heartbeat-handler-K3JGPBYR.js → heartbeat-handler-QIDQHRXT.js} +4 -4
  196. package/dist/cli/chunks/heartbeat-scheduler-QW5TW5QS.js +2 -0
  197. package/dist/cli/chunks/hnsw-adapter-D6EJWYAL.js +2 -0
  198. package/dist/cli/chunks/hnsw-index-4MWR4U5W.js +2 -0
  199. package/dist/cli/chunks/{hnsw-legacy-bridge-CDDRSV5E.js → hnsw-legacy-bridge-IU62PIY5.js} +2 -2
  200. package/dist/cli/chunks/{better-sqlite3-5JTP47LA.js → hnswlib-node-EBRXKEX5.js} +2 -2
  201. package/dist/cli/chunks/{hooks-6SCAE6LC.js → hooks-ZI4D3ATS.js} +10 -10
  202. package/dist/cli/chunks/hybrid-router-BYVUBHER.js +2 -0
  203. package/dist/cli/chunks/{hypergraph-engine-I3LUMO7I.js → hypergraph-engine-6JEERAGA.js} +2 -2
  204. package/dist/cli/chunks/{hypergraph-handler-YAKAIVCN.js → hypergraph-handler-YMDGYCB6.js} +3 -3
  205. package/dist/cli/chunks/impact-analyzer-OK2UIMSG.js +2 -0
  206. package/dist/cli/chunks/{init-handler-NBKCZD7Q.js → init-handler-N57NW3QI.js} +6 -6
  207. package/dist/cli/chunks/init-wizard-6NNPNS6J.js +2 -0
  208. package/dist/cli/chunks/kernel-F4A4GRNO.js +2 -0
  209. package/dist/cli/chunks/{kilocode-installer-YGPJCPU3.js → kilocode-installer-7ABTGXJ5.js} +2 -2
  210. package/dist/cli/chunks/{kiro-installer-JV3ONVMN.js → kiro-installer-2JFOHLVI.js} +2 -2
  211. package/dist/cli/chunks/knowledge-graph-MSJDEZCF.js +2 -0
  212. package/dist/cli/chunks/{learning-2FEZJ5CX.js → learning-3P3ZXRGD.js} +3 -3
  213. package/dist/cli/chunks/{llm-router-SILI4KLU.js → llm-router-AWB2KHDW.js} +4 -4
  214. package/dist/cli/chunks/llm-router-service-27IQAO7G.js +2 -0
  215. package/dist/cli/chunks/{load-EGXLQVR3.js → load-GGVBCBGX.js} +2 -2
  216. package/dist/cli/chunks/load-test-TT5VLAN7.js +2 -0
  217. package/dist/cli/chunks/{mcp-OJH775TL.js → mcp-33NHIBN3.js} +2 -2
  218. package/dist/cli/chunks/{memory-FNEOK4FW.js → memory-IVAQS4OW.js} +5 -5
  219. package/dist/cli/chunks/memory-backend-FVSK53IM.js +2 -0
  220. package/dist/cli/chunks/{memory-handlers-6LDUH3JZ.js → memory-handlers-OPUDOZNT.js} +2 -2
  221. package/dist/cli/chunks/{multi-model-executor-ORTFWLLE.js → multi-model-executor-NWQY6IN2.js} +2 -2
  222. package/dist/cli/chunks/{opencode-installer-UAQLW6XX.js → opencode-installer-FBB4JOEV.js} +2 -2
  223. package/dist/cli/chunks/{orchestrator-VE5KJ2V4.js → orchestrator-GDAXR7DH.js} +5 -5
  224. package/dist/cli/chunks/pattern-null-store-7MVEDWCY.js +2 -0
  225. package/dist/cli/chunks/{pipeline-FNMDRWTU.js → pipeline-VIKAOIBE.js} +2 -2
  226. package/dist/cli/chunks/{platform-MGAKRUQN.js → platform-FFVP36LH.js} +2 -2
  227. package/dist/cli/chunks/{plugin-YX7THX3I.js → plugin-TI6QOLXH.js} +2 -2
  228. package/dist/cli/chunks/{prime-radiant-advanced-wasm-XJV4RLMK.js → prime-radiant-advanced-wasm-AZRNI2OL.js} +2 -2
  229. package/dist/cli/chunks/protocol-executor-BLDDYEJ4.js +2 -0
  230. package/dist/cli/chunks/{protocol-handler-QFET442Y.js → protocol-handler-J4EA34B3.js} +2 -2
  231. package/dist/cli/chunks/{prove-QBAESCOC.js → prove-ADVRMAWS.js} +2 -2
  232. package/dist/cli/chunks/provider-manager-ZYCFRYZQ.js +2 -0
  233. package/dist/cli/chunks/qe-reasoning-bank-P66CCPHM.js +2 -0
  234. package/dist/cli/chunks/{quality-ZTNRL6EG.js → quality-GB5SJFSD.js} +2 -2
  235. package/dist/cli/chunks/queen-coordinator-LPHT3SX5.js +2 -0
  236. package/dist/cli/chunks/{real-embeddings-ZFFDV6HC.js → real-embeddings-GDRJ4XSH.js} +2 -2
  237. package/dist/cli/chunks/{roocode-installer-J4LFL4AE.js → roocode-installer-Q6EISUDV.js} +2 -2
  238. package/dist/cli/chunks/router-XQ2TERUT.js +2 -0
  239. package/dist/cli/chunks/routing-feedback-K52O752B.js +2 -0
  240. package/dist/cli/chunks/{routing-handler-A5QG2TP2.js → routing-handler-RO4RTRAG.js} +2 -2
  241. package/dist/cli/chunks/{ruvector-commands-J5JL5WX5.js → ruvector-commands-FFIHCGVQ.js} +2 -2
  242. package/dist/cli/chunks/{rvf-dual-writer-H7442GMO.js → rvf-dual-writer-JGEK3A5Y.js} +2 -2
  243. package/dist/cli/chunks/{rvf-migration-adapter-PTFQUYKC.js → rvf-migration-adapter-OVYC4QM6.js} +2 -2
  244. package/dist/cli/chunks/{rvf-migration-coordinator-RSNROYRX.js → rvf-migration-coordinator-U6L77QTS.js} +2 -2
  245. package/dist/cli/chunks/rvf-native-adapter-G4DV7FK3.js +2 -0
  246. package/dist/cli/chunks/safe-db-TMSEITES.js +2 -0
  247. package/dist/cli/chunks/schedule-RWFLA43O.js +2 -0
  248. package/dist/cli/chunks/scheduler-2V55MJJR.js +2 -0
  249. package/dist/cli/chunks/{security-LHHLMCBA.js → security-QPQIDAIL.js} +3 -3
  250. package/dist/cli/chunks/{shared-rvf-adapter-NPSHVUTM.js → shared-rvf-adapter-JRJTI4UD.js} +2 -2
  251. package/dist/cli/chunks/{shared-rvf-dual-writer-INQDY5WE.js → shared-rvf-dual-writer-DSHGURDA.js} +2 -2
  252. package/dist/cli/chunks/sqlite-persistence-L7QM6IWF.js +2 -0
  253. package/dist/cli/chunks/{status-handler-R2KIAMAE.js → status-handler-SBT3MZTX.js} +2 -2
  254. package/dist/cli/chunks/{structural-health-2VPPIOZX.js → structural-health-UVECCN7U.js} +2 -2
  255. package/dist/cli/chunks/{sync-ASZ3T5GT.js → sync-XXIGTGCG.js} +2 -2
  256. package/dist/cli/chunks/{sync-NLASP7AK.js → sync-ZLZ4CZFJ.js} +2 -2
  257. package/dist/cli/chunks/{task-handler-UV5R6LJG.js → task-handler-73YAVOKJ.js} +2 -2
  258. package/dist/cli/chunks/{task-handlers-I6YJXPYP.js → task-handlers-PKECV27D.js} +3 -3
  259. package/dist/cli/chunks/{test-TE43TNTI.js → test-U3SXW4SV.js} +4 -4
  260. package/dist/cli/chunks/{test-scheduling-WWWWF2TZ.js → test-scheduling-POJND3GV.js} +3 -3
  261. package/dist/cli/chunks/{token-bootstrap-HEWP7KKS.js → token-bootstrap-ICX6SIXJ.js} +2 -2
  262. package/dist/cli/chunks/{token-usage-3FVHUAW6.js → token-usage-WCHJUVGT.js} +2 -2
  263. package/dist/cli/chunks/{transformers-O5OFM4XM.js → transformers-L77UIHIY.js} +2 -2
  264. package/dist/cli/chunks/{tree-sitter-wasm-parser-YOYWFW63.js → tree-sitter-wasm-parser-CVAXURQP.js} +2 -2
  265. package/dist/cli/chunks/{types-42GR6PLO.js → types-LNVJBDM2.js} +2 -2
  266. package/dist/cli/chunks/unified-memory-ZSULA46X.js +2 -0
  267. package/dist/cli/chunks/unified-memory-hnsw-SQEWFUBN.js +2 -0
  268. package/dist/cli/chunks/unified-persistence-EDCTT6SE.js +2 -0
  269. package/dist/cli/chunks/{upgrade-BU6DJ4LT.js → upgrade-4ND5RQFY.js} +2 -2
  270. package/dist/cli/chunks/{validate-MPTBARGN.js → validate-ZA4XT6K2.js} +2 -2
  271. package/dist/cli/chunks/{validate-swarm-5LUQYHPP.js → validate-swarm-FNK3GCJ4.js} +2 -2
  272. package/dist/cli/chunks/{vibium-MJJDANDL.js → vibium-E2CK2GBQ.js} +2 -2
  273. package/dist/cli/chunks/visual-security-SOGAETFP.js +2 -0
  274. package/dist/cli/chunks/{web-tree-sitter-5TF4UGB3.js → web-tree-sitter-63VRNKZV.js} +2 -2
  275. package/dist/cli/chunks/{windsurf-installer-NQAOSVCN.js → windsurf-installer-5BTCVOLH.js} +2 -2
  276. package/dist/cli/chunks/{witness-chain-23UWK2JT.js → witness-chain-6CUUGISD.js} +2 -2
  277. package/dist/cli/chunks/witness-chain-AJCECBH5.js +2 -0
  278. package/dist/cli/chunks/{workflow-3QOLXRJC.js → workflow-V7ED22XT.js} +4 -4
  279. package/dist/cli/chunks/workflow-orchestrator-UXRUCOZR.js +2 -0
  280. package/dist/cli/chunks/{wrappers-S6EUZBCX.js → wrappers-7S3NTTLW.js} +2 -2
  281. package/dist/feedback/regenerability-gate.d.ts +70 -0
  282. package/dist/feedback/regenerability-gate.js +91 -0
  283. package/dist/mcp/bundle.js +5 -5
  284. package/dist/shared/llm/providers/gemini.js +16 -10
  285. package/dist/shared/llm/providers/openrouter.js +20 -20
  286. package/dist/validation/conservation-guard.d.ts +39 -0
  287. package/dist/validation/conservation-guard.js +54 -0
  288. package/dist/validation/oracle-eval.d.ts +46 -0
  289. package/dist/validation/oracle-eval.js +108 -0
  290. package/dist/validation/skill-parity.d.ts +58 -0
  291. package/dist/validation/skill-parity.js +94 -0
  292. package/dist/validation/test-gen-prompt.d.ts +10 -0
  293. package/dist/validation/test-gen-prompt.js +26 -0
  294. package/package.json +8 -1
  295. package/dist/cli/chunks/adapter-LDNYC4GH.js +0 -2
  296. package/dist/cli/chunks/aqe-learning-engine-CA4CT5Q7.js +0 -2
  297. package/dist/cli/chunks/base-TSDAEMT4.js +0 -2
  298. package/dist/cli/chunks/browser-workflow-3HCTJBLR.js +0 -2
  299. package/dist/cli/chunks/chunk-72VVTMEL.js +0 -2
  300. package/dist/cli/chunks/client-WRDYZGM2.js +0 -2
  301. package/dist/cli/chunks/core-handlers-O6E5DNHT.js +0 -2
  302. package/dist/cli/chunks/cross-domain-router-EV7LQMDO.js +0 -2
  303. package/dist/cli/chunks/dream-E4C236UL.js +0 -2
  304. package/dist/cli/chunks/heartbeat-scheduler-WMADLDKT.js +0 -2
  305. package/dist/cli/chunks/hnsw-adapter-STRDGJ65.js +0 -2
  306. package/dist/cli/chunks/hnsw-index-DBHX3TSC.js +0 -2
  307. package/dist/cli/chunks/hybrid-router-L2K55I4T.js +0 -2
  308. package/dist/cli/chunks/impact-analyzer-WMO7ZGS7.js +0 -2
  309. package/dist/cli/chunks/init-wizard-ZAB7UZZS.js +0 -2
  310. package/dist/cli/chunks/kernel-4MUFDEQI.js +0 -2
  311. package/dist/cli/chunks/knowledge-graph-GZRFGXLX.js +0 -2
  312. package/dist/cli/chunks/llm-router-service-5ODLU5U5.js +0 -2
  313. package/dist/cli/chunks/load-test-ZDQFS5XS.js +0 -2
  314. package/dist/cli/chunks/memory-backend-UK7SQ6ZM.js +0 -2
  315. package/dist/cli/chunks/pattern-null-store-LO2QTIBU.js +0 -2
  316. package/dist/cli/chunks/protocol-executor-JWMYQEOI.js +0 -2
  317. package/dist/cli/chunks/provider-manager-PEXOHGNB.js +0 -2
  318. package/dist/cli/chunks/qe-reasoning-bank-7B2G4UGQ.js +0 -2
  319. package/dist/cli/chunks/queen-coordinator-6OF4HT3S.js +0 -2
  320. package/dist/cli/chunks/router-GMWRF6DU.js +0 -2
  321. package/dist/cli/chunks/routing-feedback-XKJSQK3I.js +0 -2
  322. package/dist/cli/chunks/rvf-native-adapter-YEA6TMXB.js +0 -2
  323. package/dist/cli/chunks/safe-db-5DOP2J3V.js +0 -2
  324. package/dist/cli/chunks/schedule-SUWTOBHP.js +0 -2
  325. package/dist/cli/chunks/scheduler-P4VTC5SQ.js +0 -2
  326. package/dist/cli/chunks/sqlite-persistence-5Z2RAXH7.js +0 -2
  327. package/dist/cli/chunks/unified-memory-HCKOPFAY.js +0 -2
  328. package/dist/cli/chunks/unified-memory-hnsw-6NQPYA5C.js +0 -2
  329. package/dist/cli/chunks/unified-persistence-NIMKNAFR.js +0 -2
  330. package/dist/cli/chunks/visual-security-HFGHA57Z.js +0 -2
  331. package/dist/cli/chunks/witness-chain-VZGGJ7TJ.js +0 -2
  332. package/dist/cli/chunks/workflow-orchestrator-45L7D4SN.js +0 -2
@@ -61,7 +61,7 @@ export const OPENROUTER_PRICING = {
61
61
  * OpenRouter LLM provider implementation
62
62
  */
63
63
  export class OpenRouterProvider {
64
- type = 'openai'; // Compatible with OpenAI interface
64
+ type = 'openrouter';
65
65
  name = 'OpenRouter';
66
66
  config;
67
67
  requestId = 0;
@@ -138,7 +138,7 @@ export class OpenRouterProvider {
138
138
  async generate(input, options) {
139
139
  const apiKey = this.getApiKey();
140
140
  if (!apiKey) {
141
- throw createLLMError('OpenRouter API key not configured', 'API_KEY_MISSING', { provider: 'openai', retryable: false });
141
+ throw createLLMError('OpenRouter API key not configured', 'API_KEY_MISSING', { provider: 'openrouter', retryable: false });
142
142
  }
143
143
  const messages = this.formatMessages(input, options?.systemPrompt);
144
144
  const model = options?.model ?? this.config.model;
@@ -193,7 +193,7 @@ export class OpenRouterProvider {
193
193
  return {
194
194
  content,
195
195
  model: data.model,
196
- provider: 'openai', // Report as openai for compatibility
196
+ provider: 'openrouter',
197
197
  usage,
198
198
  cost,
199
199
  latencyMs,
@@ -206,7 +206,7 @@ export class OpenRouterProvider {
206
206
  if (error instanceof Error && 'code' in error) {
207
207
  throw error; // Re-throw LLM errors
208
208
  }
209
- throw createLLMError(error instanceof Error ? error.message : 'Request failed', 'NETWORK_ERROR', { provider: 'openai', model, retryable: true, cause: error });
209
+ throw createLLMError(error instanceof Error ? error.message : 'Request failed', 'NETWORK_ERROR', { provider: 'openrouter', model, retryable: true, cause: error });
210
210
  }
211
211
  }
212
212
  /**
@@ -216,7 +216,7 @@ export class OpenRouterProvider {
216
216
  async *generateStream(input, options) {
217
217
  const apiKey = this.getApiKey();
218
218
  if (!apiKey) {
219
- throw createLLMError('OpenRouter API key not configured', 'API_KEY_MISSING', { provider: 'openai', retryable: false });
219
+ throw createLLMError('OpenRouter API key not configured', 'API_KEY_MISSING', { provider: 'openrouter', retryable: false });
220
220
  }
221
221
  const messages = this.formatMessages(input, options?.systemPrompt);
222
222
  const model = options?.model ?? this.config.model;
@@ -246,7 +246,7 @@ export class OpenRouterProvider {
246
246
  throw this.handleApiError(response.status, errorData, model);
247
247
  }
248
248
  if (!response.body) {
249
- throw createLLMError('No response body for streaming', 'NETWORK_ERROR', { provider: 'openai', model, retryable: true });
249
+ throw createLLMError('No response body for streaming', 'NETWORK_ERROR', { provider: 'openrouter', model, retryable: true });
250
250
  }
251
251
  let fullContent = '';
252
252
  let finishReason = 'stop';
@@ -311,7 +311,7 @@ export class OpenRouterProvider {
311
311
  return {
312
312
  content: fullContent,
313
313
  model: responseModel,
314
- provider: 'openai',
314
+ provider: 'openrouter',
315
315
  usage,
316
316
  cost,
317
317
  latencyMs,
@@ -327,7 +327,7 @@ export class OpenRouterProvider {
327
327
  async embed(text, options) {
328
328
  const apiKey = this.getApiKey();
329
329
  if (!apiKey) {
330
- throw createLLMError('OpenRouter API key not configured', 'API_KEY_MISSING', { provider: 'openai', retryable: false });
330
+ throw createLLMError('OpenRouter API key not configured', 'API_KEY_MISSING', { provider: 'openrouter', retryable: false });
331
331
  }
332
332
  const model = options?.model ?? 'openai/text-embedding-3-small';
333
333
  const start = Date.now();
@@ -351,7 +351,7 @@ export class OpenRouterProvider {
351
351
  return {
352
352
  embedding: data.data[0].embedding,
353
353
  model: data.model,
354
- provider: 'openai',
354
+ provider: 'openrouter',
355
355
  tokenCount: data.usage.total_tokens,
356
356
  latencyMs,
357
357
  cached: false,
@@ -361,7 +361,7 @@ export class OpenRouterProvider {
361
361
  if (error instanceof Error && 'code' in error) {
362
362
  throw error;
363
363
  }
364
- throw createLLMError(error instanceof Error ? error.message : 'Embedding request failed', 'NETWORK_ERROR', { provider: 'openai', model, retryable: true, cause: error });
364
+ throw createLLMError(error instanceof Error ? error.message : 'Embedding request failed', 'NETWORK_ERROR', { provider: 'openrouter', model, retryable: true, cause: error });
365
365
  }
366
366
  }
367
367
  /**
@@ -378,7 +378,7 @@ export class OpenRouterProvider {
378
378
  return {
379
379
  completion: response.content,
380
380
  model: response.model,
381
- provider: 'openai',
381
+ provider: 'openrouter',
382
382
  usage: response.usage,
383
383
  latencyMs: response.latencyMs,
384
384
  cached: response.cached,
@@ -525,19 +525,19 @@ export class OpenRouterProvider {
525
525
  switch (status) {
526
526
  case 401:
527
527
  throw createLLMError(message, 'API_KEY_INVALID', {
528
- provider: 'openai',
528
+ provider: 'openrouter',
529
529
  model,
530
530
  retryable: false,
531
531
  });
532
532
  case 402:
533
533
  throw createLLMError(message, 'COST_LIMIT_EXCEEDED', {
534
- provider: 'openai',
534
+ provider: 'openrouter',
535
535
  model,
536
536
  retryable: false,
537
537
  });
538
538
  case 429:
539
539
  throw createLLMError(message, 'RATE_LIMITED', {
540
- provider: 'openai',
540
+ provider: 'openrouter',
541
541
  model,
542
542
  retryable: true,
543
543
  retryAfterMs: 60000,
@@ -545,19 +545,19 @@ export class OpenRouterProvider {
545
545
  case 400:
546
546
  if (errorCode === 'context_length_exceeded' || errorType === 'invalid_request_error') {
547
547
  throw createLLMError(message, 'CONTEXT_LENGTH_EXCEEDED', {
548
- provider: 'openai',
548
+ provider: 'openrouter',
549
549
  model,
550
550
  retryable: false,
551
551
  });
552
552
  }
553
553
  throw createLLMError(message, 'UNKNOWN', {
554
- provider: 'openai',
554
+ provider: 'openrouter',
555
555
  model,
556
556
  retryable: false,
557
557
  });
558
558
  case 404:
559
559
  throw createLLMError(message, 'MODEL_NOT_FOUND', {
560
- provider: 'openai',
560
+ provider: 'openrouter',
561
561
  model,
562
562
  retryable: false,
563
563
  });
@@ -565,14 +565,14 @@ export class OpenRouterProvider {
565
565
  case 502:
566
566
  case 503:
567
567
  throw createLLMError(message, 'PROVIDER_UNAVAILABLE', {
568
- provider: 'openai',
568
+ provider: 'openrouter',
569
569
  model,
570
570
  retryable: true,
571
571
  retryAfterMs: 5000,
572
572
  });
573
573
  default:
574
574
  throw createLLMError(message, 'UNKNOWN', {
575
- provider: 'openai',
575
+ provider: 'openrouter',
576
576
  model,
577
577
  retryable: false,
578
578
  });
@@ -594,7 +594,7 @@ export class OpenRouterProvider {
594
594
  catch (error) {
595
595
  if (error instanceof Error && error.name === 'AbortError') {
596
596
  throw createLLMError('Request timed out', 'TIMEOUT', {
597
- provider: 'openai',
597
+ provider: 'openrouter',
598
598
  retryable: true,
599
599
  });
600
600
  }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Conservation Guard (Phoenix essay 14 "UI Is a Conservation Layer", ADR-114)
3
+ *
4
+ * AQE's human/agent-facing surfaces — CLI commands, output schemas, MCP tools,
5
+ * the dashboard — are its conservation layer: users and CI pipelines build muscle
6
+ * memory and scripts around them. Internals may regenerate freely; these surfaces
7
+ * must change slowly and ADDITIVELY. This module diffs a captured baseline against
8
+ * the current surface and flags breaking removals/renames that are not in the
9
+ * deprecation registry.
10
+ *
11
+ * Pure functions only — extraction + I/O live in scripts/conservation-guard.ts.
12
+ */
13
+ export interface SurfaceDiff {
14
+ surface: string;
15
+ /** Entries present now but not in the baseline — additive, always allowed. */
16
+ added: string[];
17
+ /** Entries removed from the baseline and NOT in the deprecation registry — breaking. */
18
+ removedBreaking: string[];
19
+ /** Entries removed but listed as deprecated — an allowed, deliberate removal. */
20
+ removedDeprecated: string[];
21
+ /** True when there are no breaking removals. */
22
+ clean: boolean;
23
+ }
24
+ /**
25
+ * Diff one surface. Additive changes pass; a removal/rename is breaking unless the
26
+ * removed entry appears in `deprecated` (the deprecation window has been honored).
27
+ */
28
+ export declare function diffSurface(surface: string, baseline: string[], current: string[], deprecated?: string[]): SurfaceDiff;
29
+ export interface ConservationReport {
30
+ diffs: SurfaceDiff[];
31
+ clean: boolean;
32
+ /** Total breaking removals across all surfaces. */
33
+ breakingCount: number;
34
+ }
35
+ /** Aggregate per-surface diffs into an overall verdict. */
36
+ export declare function aggregate(diffs: SurfaceDiff[]): ConservationReport;
37
+ /** Human-readable report (used by the CLI guard and CI logs). */
38
+ export declare function formatReport(report: ConservationReport): string;
39
+ //# sourceMappingURL=conservation-guard.d.ts.map
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Conservation Guard (Phoenix essay 14 "UI Is a Conservation Layer", ADR-114)
3
+ *
4
+ * AQE's human/agent-facing surfaces — CLI commands, output schemas, MCP tools,
5
+ * the dashboard — are its conservation layer: users and CI pipelines build muscle
6
+ * memory and scripts around them. Internals may regenerate freely; these surfaces
7
+ * must change slowly and ADDITIVELY. This module diffs a captured baseline against
8
+ * the current surface and flags breaking removals/renames that are not in the
9
+ * deprecation registry.
10
+ *
11
+ * Pure functions only — extraction + I/O live in scripts/conservation-guard.ts.
12
+ */
13
+ /**
14
+ * Diff one surface. Additive changes pass; a removal/rename is breaking unless the
15
+ * removed entry appears in `deprecated` (the deprecation window has been honored).
16
+ */
17
+ export function diffSurface(surface, baseline, current, deprecated = []) {
18
+ const cur = new Set(current);
19
+ const dep = new Set(deprecated);
20
+ const added = current.filter((e) => !baseline.includes(e)).sort();
21
+ const removed = baseline.filter((e) => !cur.has(e));
22
+ const removedBreaking = removed.filter((e) => !dep.has(e)).sort();
23
+ const removedDeprecated = removed.filter((e) => dep.has(e)).sort();
24
+ return {
25
+ surface,
26
+ added,
27
+ removedBreaking,
28
+ removedDeprecated,
29
+ clean: removedBreaking.length === 0,
30
+ };
31
+ }
32
+ /** Aggregate per-surface diffs into an overall verdict. */
33
+ export function aggregate(diffs) {
34
+ const breakingCount = diffs.reduce((n, d) => n + d.removedBreaking.length, 0);
35
+ return { diffs, clean: breakingCount === 0, breakingCount };
36
+ }
37
+ /** Human-readable report (used by the CLI guard and CI logs). */
38
+ export function formatReport(report) {
39
+ const lines = [];
40
+ for (const d of report.diffs) {
41
+ const status = d.clean ? '✓' : '✗ BREAKING';
42
+ lines.push(`${status} ${d.surface}: +${d.added.length} added, -${d.removedBreaking.length} breaking, -${d.removedDeprecated.length} deprecated`);
43
+ for (const r of d.removedBreaking)
44
+ lines.push(` REMOVED (breaking): ${r}`);
45
+ for (const r of d.removedDeprecated)
46
+ lines.push(` removed (deprecated, ok): ${r}`);
47
+ }
48
+ lines.push('');
49
+ lines.push(report.clean
50
+ ? '✓ conservation guard: no breaking surface changes'
51
+ : `✗ conservation guard: ${report.breakingCount} breaking surface change(s) — add to the deprecation registry (with a deprecation window) or restore them. To intentionally rebaseline: --update.`);
52
+ return lines.join('\n');
53
+ }
54
+ //# sourceMappingURL=conservation-guard.js.map
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Agentic QE v3 - Oracle Evaluator for skill evals (Oracle-Evals plan, Phase 0/1)
3
+ *
4
+ * Turns a skill eval from a keyword grep into a real ORACLE: it RUNS a
5
+ * generated test against a reference implementation (must pass) and against
6
+ * first-order operator mutants of that implementation (each surviving mutant
7
+ * is a bug the test failed to catch). The mutation kill rate is the eval's
8
+ * pass signal — a test that asserts nothing scores 0 and fails.
9
+ *
10
+ * Reuses the proven qe-arena primitives (ADR-104): the deterministic operator
11
+ * mutator and the real `node --test` fixture runner. Nothing is simulated.
12
+ */
13
+ export interface OracleSpec {
14
+ /** Base name (no extension) for the module under test, e.g. "inRange". */
15
+ moduleName: string;
16
+ /** ESM source of the correct implementation, e.g. `export function inRange(...) {...}`. */
17
+ referenceImpl: string;
18
+ /** Generated test source. Imports the impl as `../src/<moduleName>.mjs`. */
19
+ generatedTest: string;
20
+ /** Cap on mutants evaluated (deterministic prefix of the position-sorted list). */
21
+ maxMutants?: number;
22
+ /** Minimum mutation kill rate required to pass. Default 0.5. */
23
+ threshold?: number;
24
+ /** Per-`node --test` timeout in ms. Default 30s (evals run many subprocesses). */
25
+ timeoutMs?: number;
26
+ }
27
+ export interface OracleResult {
28
+ /** Did the generated test pass against the unmutated reference implementation? */
29
+ baselinePassed: boolean;
30
+ mutantsTotal: number;
31
+ mutantsKilled: number;
32
+ /** killed / total, rounded to 4dp (0 when there are no mutants). */
33
+ mutationScore: number;
34
+ /** Mutant ids the test failed to catch (bugs it would let through). */
35
+ survivedMutantIds: string[];
36
+ /** baselinePassed AND mutationScore >= threshold AND at least one mutant existed. */
37
+ passed: boolean;
38
+ /** Human-readable explanation of the verdict. */
39
+ reason: string;
40
+ }
41
+ /**
42
+ * Evaluate a generated test as an oracle against a reference implementation.
43
+ * Real `node --test` runs; deterministic mutant enumeration.
44
+ */
45
+ export declare function evaluateOracle(spec: OracleSpec): OracleResult;
46
+ //# sourceMappingURL=oracle-eval.d.ts.map
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Agentic QE v3 - Oracle Evaluator for skill evals (Oracle-Evals plan, Phase 0/1)
3
+ *
4
+ * Turns a skill eval from a keyword grep into a real ORACLE: it RUNS a
5
+ * generated test against a reference implementation (must pass) and against
6
+ * first-order operator mutants of that implementation (each surviving mutant
7
+ * is a bug the test failed to catch). The mutation kill rate is the eval's
8
+ * pass signal — a test that asserts nothing scores 0 and fails.
9
+ *
10
+ * Reuses the proven qe-arena primitives (ADR-104): the deterministic operator
11
+ * mutator and the real `node --test` fixture runner. Nothing is simulated.
12
+ */
13
+ import * as fs from 'fs';
14
+ import * as path from 'path';
15
+ import { enumerateMutants, applyMutant } from '../arena/mutator.js';
16
+ import { runNodeTest, makeTmpRoot, cleanupTmpRoot } from '../arena/runner.js';
17
+ /** Write a throwaway { src/<m>.mjs, tests/<m>.test.mjs } workspace and return its dir. */
18
+ function materialize(tmpRoot, moduleName, impl, test) {
19
+ const dir = fs.mkdtempSync(path.join(tmpRoot, 'oracle-ws-'));
20
+ fs.mkdirSync(path.join(dir, 'src'), { recursive: true });
21
+ fs.mkdirSync(path.join(dir, 'tests'), { recursive: true });
22
+ fs.writeFileSync(path.join(dir, 'src', `${moduleName}.mjs`), impl);
23
+ fs.writeFileSync(path.join(dir, 'tests', `${moduleName}.test.mjs`), test);
24
+ return dir;
25
+ }
26
+ /**
27
+ * Evaluate a generated test as an oracle against a reference implementation.
28
+ * Real `node --test` runs; deterministic mutant enumeration.
29
+ */
30
+ export function evaluateOracle(spec) {
31
+ const threshold = spec.threshold ?? 0.5;
32
+ const timeoutMs = spec.timeoutMs ?? 30_000;
33
+ const tmpRoot = makeTmpRoot();
34
+ try {
35
+ // 0. Sanity: reject output that is not a runnable, asserting test. An empty
36
+ // or assertion-less file passes `node --test` (exit 0) but proves nothing —
37
+ // catch it here so the verdict is honest rather than relying on a 0 kill rate.
38
+ if (!/assert\s*[.(]|expect\s*\(|\.(toBe|toEqual|toThrow|toMatch)\b/.test(spec.generatedTest)) {
39
+ return {
40
+ baselinePassed: false,
41
+ mutantsTotal: 0,
42
+ mutantsKilled: 0,
43
+ mutationScore: 0,
44
+ survivedMutantIds: [],
45
+ passed: false,
46
+ reason: 'generated output contains no assertions — not a runnable test',
47
+ };
48
+ }
49
+ // 1. Baseline: the test must pass against the correct implementation.
50
+ const baselineDir = materialize(tmpRoot, spec.moduleName, spec.referenceImpl, spec.generatedTest);
51
+ const baseline = runNodeTest(baselineDir, { timeoutMs });
52
+ if (!baseline.ok) {
53
+ return {
54
+ baselinePassed: false,
55
+ mutantsTotal: 0,
56
+ mutantsKilled: 0,
57
+ mutationScore: 0,
58
+ survivedMutantIds: [],
59
+ passed: false,
60
+ reason: 'generated test does not pass against the reference implementation',
61
+ };
62
+ }
63
+ // 2. Mutants: each one the test fails to fail-on is a missed bug.
64
+ let mutants = enumerateMutants(spec.referenceImpl, spec.moduleName);
65
+ if (spec.maxMutants !== undefined && mutants.length > spec.maxMutants) {
66
+ mutants = mutants.slice(0, spec.maxMutants);
67
+ }
68
+ if (mutants.length === 0) {
69
+ return {
70
+ baselinePassed: true,
71
+ mutantsTotal: 0,
72
+ mutantsKilled: 0,
73
+ mutationScore: 0,
74
+ survivedMutantIds: [],
75
+ passed: false,
76
+ reason: 'no operator mutants could be generated for the reference implementation (cannot prove the test catches anything)',
77
+ };
78
+ }
79
+ let killed = 0;
80
+ const survived = [];
81
+ for (const mutant of mutants) {
82
+ const dir = materialize(tmpRoot, spec.moduleName, applyMutant(spec.referenceImpl, mutant), spec.generatedTest);
83
+ const run = runNodeTest(dir, { timeoutMs });
84
+ if (!run.ok)
85
+ killed++;
86
+ else
87
+ survived.push(mutant.id);
88
+ }
89
+ const total = mutants.length;
90
+ const score = Math.round((killed / total) * 10000) / 10000;
91
+ const passed = score >= threshold;
92
+ return {
93
+ baselinePassed: true,
94
+ mutantsTotal: total,
95
+ mutantsKilled: killed,
96
+ mutationScore: score,
97
+ survivedMutantIds: survived,
98
+ passed,
99
+ reason: passed
100
+ ? `killed ${killed}/${total} mutants (score ${(score * 100).toFixed(0)}%)`
101
+ : `mutation score ${(score * 100).toFixed(0)}% < threshold ${(threshold * 100).toFixed(0)}% — ${survived.length} mutant(s) survived`,
102
+ };
103
+ }
104
+ finally {
105
+ cleanupTmpRoot(tmpRoot);
106
+ }
107
+ }
108
+ //# sourceMappingURL=oracle-eval.js.map
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Skill Tree Parity (ADR-113, P4)
3
+ *
4
+ * AQE skills are duplicated across trees (.claude/skills is canonical; assets/skills
5
+ * is the npm-distributed mirror; plugins/ and .kiro/ are independent distributions
6
+ * with their own frontmatter conventions). The mirror has silently drifted from
7
+ * canonical before — this module detects that drift so CI can fail loud.
8
+ *
9
+ * Comparison is frontmatter-AGNOSTIC: only the markdown body (after the YAML block)
10
+ * is compared, because legitimate per-tree frontmatter (allowed-tools, inclusion)
11
+ * differs by design. Pure functions — fs walking lives in scripts/check-skill-parity.ts.
12
+ */
13
+ export type ParityStatus = 'match' | 'drift' | 'absent';
14
+ export interface ParityEntry {
15
+ skill: string;
16
+ status: ParityStatus;
17
+ }
18
+ export interface ParityReport {
19
+ /** Mirror tree compared against canonical, e.g. "assets/skills". */
20
+ mirror: string;
21
+ total: number;
22
+ match: number;
23
+ drift: number;
24
+ absent: number;
25
+ entries: ParityEntry[];
26
+ /** True when no skill in the mirror has drifted (absent is allowed). */
27
+ clean: boolean;
28
+ }
29
+ /**
30
+ * Remove a leading YAML frontmatter block (between the first two `---` lines)
31
+ * and normalize trailing whitespace. Body-only so frontmatter may differ per tree.
32
+ */
33
+ export declare function stripFrontmatter(markdown: string): string;
34
+ /** True when two skill docs share the same body (ignoring frontmatter + edge whitespace). */
35
+ export declare function bodiesMatch(canonical: string, copy: string): boolean;
36
+ /**
37
+ * Split a skill doc into its leading YAML frontmatter block (including the `---`
38
+ * delimiters) and the markdown body. When there is no frontmatter, `frontmatter`
39
+ * is empty and `body` is the whole document.
40
+ */
41
+ export declare function splitFrontmatter(markdown: string): {
42
+ frontmatter: string;
43
+ body: string;
44
+ };
45
+ /**
46
+ * Reconcile a mirror copy to canonical: keep the MIRROR's frontmatter (per-tree
47
+ * conventions like allowed-tools / inclusion) but replace its body with canonical's.
48
+ * This is how a faithful mirror is resynced without losing its frontmatter.
49
+ */
50
+ export declare function reconcileBody(mirrorContent: string, canonicalContent: string): string;
51
+ /**
52
+ * Build a parity report from already-read file contents.
53
+ * `canonical` maps skill name → SKILL.md content (the source of truth).
54
+ * `mirror` maps skill name → SKILL.md content (undefined when absent in the mirror).
55
+ * Only skills present in canonical are evaluated.
56
+ */
57
+ export declare function buildParityReport(mirror: string, canonical: Record<string, string>, mirrorContents: Record<string, string | undefined>): ParityReport;
58
+ //# sourceMappingURL=skill-parity.d.ts.map
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Skill Tree Parity (ADR-113, P4)
3
+ *
4
+ * AQE skills are duplicated across trees (.claude/skills is canonical; assets/skills
5
+ * is the npm-distributed mirror; plugins/ and .kiro/ are independent distributions
6
+ * with their own frontmatter conventions). The mirror has silently drifted from
7
+ * canonical before — this module detects that drift so CI can fail loud.
8
+ *
9
+ * Comparison is frontmatter-AGNOSTIC: only the markdown body (after the YAML block)
10
+ * is compared, because legitimate per-tree frontmatter (allowed-tools, inclusion)
11
+ * differs by design. Pure functions — fs walking lives in scripts/check-skill-parity.ts.
12
+ */
13
+ /**
14
+ * Remove a leading YAML frontmatter block (between the first two `---` lines)
15
+ * and normalize trailing whitespace. Body-only so frontmatter may differ per tree.
16
+ */
17
+ export function stripFrontmatter(markdown) {
18
+ const lines = markdown.split('\n');
19
+ if (lines[0]?.trim() === '---') {
20
+ for (let i = 1; i < lines.length; i++) {
21
+ if (lines[i].trim() === '---') {
22
+ return lines.slice(i + 1).join('\n').trim();
23
+ }
24
+ }
25
+ }
26
+ return markdown.trim();
27
+ }
28
+ /** True when two skill docs share the same body (ignoring frontmatter + edge whitespace). */
29
+ export function bodiesMatch(canonical, copy) {
30
+ return stripFrontmatter(canonical) === stripFrontmatter(copy);
31
+ }
32
+ /**
33
+ * Split a skill doc into its leading YAML frontmatter block (including the `---`
34
+ * delimiters) and the markdown body. When there is no frontmatter, `frontmatter`
35
+ * is empty and `body` is the whole document.
36
+ */
37
+ export function splitFrontmatter(markdown) {
38
+ const lines = markdown.split('\n');
39
+ if (lines[0]?.trim() === '---') {
40
+ for (let i = 1; i < lines.length; i++) {
41
+ if (lines[i].trim() === '---') {
42
+ return {
43
+ frontmatter: lines.slice(0, i + 1).join('\n'),
44
+ body: lines.slice(i + 1).join('\n'),
45
+ };
46
+ }
47
+ }
48
+ }
49
+ return { frontmatter: '', body: markdown };
50
+ }
51
+ /**
52
+ * Reconcile a mirror copy to canonical: keep the MIRROR's frontmatter (per-tree
53
+ * conventions like allowed-tools / inclusion) but replace its body with canonical's.
54
+ * This is how a faithful mirror is resynced without losing its frontmatter.
55
+ */
56
+ export function reconcileBody(mirrorContent, canonicalContent) {
57
+ const mirror = splitFrontmatter(mirrorContent);
58
+ const canon = splitFrontmatter(canonicalContent);
59
+ if (!mirror.frontmatter)
60
+ return canonicalContent; // no frontmatter to preserve
61
+ return `${mirror.frontmatter}\n${canon.body.replace(/^\n+/, '')}`;
62
+ }
63
+ /**
64
+ * Build a parity report from already-read file contents.
65
+ * `canonical` maps skill name → SKILL.md content (the source of truth).
66
+ * `mirror` maps skill name → SKILL.md content (undefined when absent in the mirror).
67
+ * Only skills present in canonical are evaluated.
68
+ */
69
+ export function buildParityReport(mirror, canonical, mirrorContents) {
70
+ const entries = [];
71
+ for (const skill of Object.keys(canonical).sort()) {
72
+ const copy = mirrorContents[skill];
73
+ if (copy === undefined) {
74
+ entries.push({ skill, status: 'absent' });
75
+ }
76
+ else if (bodiesMatch(canonical[skill], copy)) {
77
+ entries.push({ skill, status: 'match' });
78
+ }
79
+ else {
80
+ entries.push({ skill, status: 'drift' });
81
+ }
82
+ }
83
+ const drift = entries.filter((e) => e.status === 'drift').length;
84
+ return {
85
+ mirror,
86
+ total: entries.length,
87
+ match: entries.filter((e) => e.status === 'match').length,
88
+ drift,
89
+ absent: entries.filter((e) => e.status === 'absent').length,
90
+ entries,
91
+ clean: drift === 0,
92
+ };
93
+ }
94
+ //# sourceMappingURL=skill-parity.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Durable-first test-generation prompt (ADR-113).
3
+ *
4
+ * Builds the instruction sent to a model when generating a test for oracle
5
+ * grading: the test must import the module under test from `../src/<name>.mjs`
6
+ * and assert boundaries/branches (durable), not a single happy path — so the
7
+ * mutation oracle can actually measure fault detection. Pure + testable.
8
+ */
9
+ export declare function buildTestGenPrompt(codeUnderTest: string, moduleName: string): string;
10
+ //# sourceMappingURL=test-gen-prompt.d.ts.map
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Durable-first test-generation prompt (ADR-113).
3
+ *
4
+ * Builds the instruction sent to a model when generating a test for oracle
5
+ * grading: the test must import the module under test from `../src/<name>.mjs`
6
+ * and assert boundaries/branches (durable), not a single happy path — so the
7
+ * mutation oracle can actually measure fault detection. Pure + testable.
8
+ */
9
+ export function buildTestGenPrompt(codeUnderTest, moduleName) {
10
+ return `You are AQE's test generator. Write JavaScript tests for the function below using Node's built-in test runner.
11
+
12
+ Strict requirements:
13
+ - Use: import test from 'node:test';
14
+ - Use: import assert from 'node:assert/strict';
15
+ - Import the function under test EXACTLY as: import { ${moduleName} } from '../src/${moduleName}.mjs';
16
+ - Write DURABLE tests: assert boundary values and every branch/decision of the logic, not just one happy path. The tests should still pass if the function were reimplemented in another language.
17
+ - Every test must contain at least one assert.* call.
18
+ - Output ONLY the test code inside a single \`\`\`js code block. No prose, no explanation.
19
+
20
+ Function under test:
21
+ \`\`\`js
22
+ ${codeUnderTest}
23
+ \`\`\`
24
+ `;
25
+ }
26
+ //# sourceMappingURL=test-gen-prompt.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.11.2",
3
+ "version": "3.11.3",
4
4
  "description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -85,6 +85,13 @@
85
85
  "mcp:report": "echo 'MCP Report: uses vitest for test reporting' && exit 0",
86
86
  "test:code-intelligence": "npm test -- --run tests/unit/domains/code-intelligence/ tests/unit/coordination/mincut/",
87
87
  "verify:invariants": "tsx scripts/verify-shipped-invariants.ts",
88
+ "verify:skill-parity": "tsx scripts/check-skill-parity.ts",
89
+ "eval:live:claude": "EVAL_PROVIDER=claude tsx scripts/validate-live-oracle.ts",
90
+ "eval:live:ollama": "EVAL_PROVIDER=ollama tsx scripts/validate-live-oracle.ts",
91
+ "eval:models": "tsx scripts/oracle-model-bench.ts",
92
+ "eval:models:list": "tsx scripts/openrouter-models.ts",
93
+ "providers:health": "tsx scripts/provider-health.ts",
94
+ "verify:conservation": "tsx scripts/conservation-guard.ts --ci",
88
95
  "verify:counts": "node -e \"const fs=require('fs'),g=require('glob'),p=require('path');const src=g.globSync('src/**/*.ts',{ignore:'src/**/*.test.ts'});const tests=g.globSync('tests/**/*.test.ts');const agents=g.globSync('.claude/agents/v3/qe-*.md');const skills=g.globSync('.claude/skills/**/*.md');const ok=src.length>500&&tests.length>300;const r={status:ok?'pass':'fail',srcFiles:src.length,testFiles:tests.length,agents:agents.length,skills:skills.length};fs.mkdirSync('reports',{recursive:true});fs.writeFileSync(p.join('reports','verification-counts.json'),JSON.stringify(r,null,2));console.log('Counts:',JSON.stringify(r));if(!ok)process.exit(1)\"",
89
96
  "verify:agent-skills": "node -e \"const fs=require('fs'),g=require('glob'),p=require('path');const agents=g.globSync('.claude/agents/v3/qe-*.md');const skills=g.globSync('.claude/skills/**/*.md');const missing=[];for(const a of agents){const name=p.basename(a,'.md');const hasSkill=skills.some(s=>s.includes(name.replace('qe-','')));if(!hasSkill)missing.push(name)}const ok=missing.length<agents.length/2;const r={status:ok?'pass':'fail',agents:agents.length,skills:skills.length,unmatchedAgents:missing.length,missing:missing.slice(0,10)};fs.mkdirSync('reports',{recursive:true});fs.writeFileSync(p.join('reports','verification-agent-skills.json'),JSON.stringify(r,null,2));console.log('Agent-Skills:',JSON.stringify(r));if(!ok)process.exit(1)\"",
90
97
  "verify:features": "node -e \"const fs=require('fs'),p=require('path');const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const hasBin=!!pkg.bin&&Object.keys(pkg.bin).length>=2;const hasExports=!!pkg.exports&&Object.keys(pkg.exports).length>=3;const cliBundleExists=fs.existsSync('dist/cli/bundle.js');const mcpBundleExists=fs.existsSync('dist/mcp/bundle.js');const ok=hasBin&&hasExports&&cliBundleExists&&mcpBundleExists;const r={status:ok?'pass':'fail',binCount:Object.keys(pkg.bin||{}).length,exportsCount:Object.keys(pkg.exports||{}).length,cliBundleExists,mcpBundleExists};fs.mkdirSync('reports',{recursive:true});fs.writeFileSync(p.join('reports','verification-features.json'),JSON.stringify(r,null,2));console.log('Features:',JSON.stringify(r));if(!ok)process.exit(1)\"",
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.11.2");process.exit(0)}
2
- import{a,b,c}from"./chunk-EIWZDVMT.js";import"./chunk-OC2W7KIW.js";import"./chunk-X36TZXDK.js";import"./chunk-LY6PTRVL.js";import"./chunk-FYY7OJ6Y.js";import"./chunk-LIEA5EON.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.11.2");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-LAY35POY.js";import"./chunk-2Q65LTJN.js";import"./chunk-IO7ZUP2G.js";import"./chunk-H3LGBH4Y.js";import"./chunk-7KHZZVF2.js";import"./chunk-K6IQBVD7.js";import"./chunk-I7UWFV6N.js";import"./chunk-P7MIOTVP.js";import"./chunk-VNFL2TPU.js";import"./chunk-AK5Q2WCJ.js";import"./chunk-H5TM4KIB.js";import"./chunk-IMPSB5WW.js";import"./chunk-ZWMXF6AX.js";import"./chunk-P3VRXQ3H.js";import"./chunk-4PYJCIRO.js";import"./chunk-Y4M2HMPR.js";import"./chunk-72VVTMEL.js";import"./chunk-5BDVFFYF.js";import"./chunk-JCH2FHJ7.js";import"./chunk-LY6PTRVL.js";import"./chunk-AKZK46TQ.js";import"./chunk-CUDGKSFX.js";import"./chunk-IXYF5BZY.js";import"./chunk-QZLTIGLB.js";import"./chunk-FYY7OJ6Y.js";import"./chunk-76RO2RHG.js";import"./chunk-AZQ6HDPM.js";import"./chunk-Z2QNTRUX.js";import"./chunk-6SOGYNJG.js";import"./chunk-7MKF52GT.js";import"./chunk-XY2B2BEJ.js";import"./chunk-AINAWVGD.js";import"./chunk-NIW4CLN2.js";import"./chunk-UCXW24HY.js";import"./chunk-WKIYYF3G.js";import"./chunk-LIEA5EON.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.11.2");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-CZYSCUJ4.js";import"./chunk-DU4GQKTH.js";import"./chunk-4PYJCIRO.js";import"./chunk-Y4M2HMPR.js";import"./chunk-72VVTMEL.js";import"./chunk-5BDVFFYF.js";import"./chunk-JCH2FHJ7.js";import"./chunk-LY6PTRVL.js";import"./chunk-IXYF5BZY.js";import"./chunk-FYY7OJ6Y.js";import"./chunk-76RO2RHG.js";import"./chunk-EDH4H55B.js";import"./chunk-AZQ6HDPM.js";import"./chunk-Z2QNTRUX.js";import"./chunk-6SOGYNJG.js";import"./chunk-7MKF52GT.js";import"./chunk-XY2B2BEJ.js";import"./chunk-AINAWVGD.js";import"./chunk-NIW4CLN2.js";import"./chunk-UCXW24HY.js";import"./chunk-WKIYYF3G.js";import"./chunk-LIEA5EON.js";export{k as MCPToolBase,j as defaultToolLogger,i as getLLMRouter,e as getMemoryBackend,g as getSharedLLMRouter,c as getSharedMemoryBackend,a as isMemoryOnlyMode,b as registerRvfResetFn,h as resetSharedLLMRouter,d as resetSharedMemoryBackend,f as setSharedLLMRouter};