agentic-qe 3.13.10 → 3.13.12

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 (746) hide show
  1. package/.claude/helpers/.helpers-version +1 -1
  2. package/.claude/helpers/auto-memory-hook.mjs +1 -1
  3. package/.claude/helpers/helpers.manifest.json +6 -6
  4. package/.claude/helpers/hook-handler.cjs +30 -0
  5. package/.claude/helpers/intelligence.cjs +121 -10
  6. package/.claude/helpers/statusline.cjs +786 -8
  7. package/.claude/skills/skills-manifest.json +1 -1
  8. package/CHANGELOG.md +78 -0
  9. package/README.md +1 -0
  10. package/assets/skills/skills-manifest.json +1 -1
  11. package/dist/agents/claim-verifier/claim-verifier-service.js +4 -4
  12. package/dist/agents/claim-verifier/index.js +6 -6
  13. package/dist/agents/claim-verifier/verifiers/file-verifier.js +1 -1
  14. package/dist/agents/claim-verifier/verifiers/index.js +3 -3
  15. package/dist/agents/claim-verifier/verifiers/output-verifier.js +1 -1
  16. package/dist/causal-discovery/causal-graph.js +2 -2
  17. package/dist/causal-discovery/discovery-engine.js +2 -2
  18. package/dist/causal-discovery/weight-matrix.js +2 -2
  19. package/dist/cli/bundle.js +5 -5
  20. package/dist/cli/chunks/adapter-FUV6LBJT.js +2 -0
  21. package/dist/cli/chunks/{agent-booster-wasm-AWNQ6KB3.js → agent-booster-wasm-7I7LZFNC.js} +2 -2
  22. package/dist/cli/chunks/{agent-handler-RSHQZHPS.js → agent-handler-QZZT52BH.js} +2 -2
  23. package/dist/cli/chunks/{agent-memory-branch-FU7Y3TQ3.js → agent-memory-branch-MLQS5Y26.js} +2 -2
  24. package/dist/cli/chunks/aqe-learning-engine-QNFNA3J4.js +2 -0
  25. package/dist/cli/chunks/{arena-LOK2WYHC.js → arena-IM4CP6LP.js} +2 -2
  26. package/dist/cli/chunks/{arena-XQOCNKB6.js → arena-WRIY37EJ.js} +4 -4
  27. package/dist/cli/chunks/{audit-6ZS4EAD2.js → audit-BSAQ4EFN.js} +3 -3
  28. package/dist/cli/chunks/base-37W2XIXC.js +2 -0
  29. package/dist/cli/chunks/{better-sqlite3-IMBCIZK3.js → better-sqlite3-X2XZUXWZ.js} +2 -2
  30. package/dist/cli/chunks/{brain-handler-3U6BH4EO.js → brain-handler-TVTTWZGP.js} +3 -3
  31. package/dist/cli/chunks/{branch-enumerator-CJBPVBXM.js → branch-enumerator-NI4Q7DSJ.js} +2 -2
  32. package/dist/cli/chunks/{browser-M4VW3KJY.js → browser-PXBLORUZ.js} +2 -2
  33. package/dist/cli/chunks/browser-workflow-PDIUEK7B.js +2 -0
  34. package/dist/cli/chunks/{chunk-PVGOOKBF.js → chunk-2JAC57JE.js} +1 -1
  35. package/dist/cli/chunks/{chunk-JWV5ZM2S.js → chunk-2VTX4SYW.js} +2 -2
  36. package/dist/cli/chunks/{chunk-IYLSML27.js → chunk-2VY7FL6A.js} +2 -2
  37. package/dist/cli/chunks/{chunk-7QNN4GQU.js → chunk-2W3D5A4R.js} +2 -2
  38. package/dist/cli/chunks/{chunk-OZLMIEJC.js → chunk-33YZGOT6.js} +2 -2
  39. package/dist/cli/chunks/{chunk-WSPEAYPG.js → chunk-3ASVQILY.js} +2 -2
  40. package/dist/cli/chunks/{chunk-YO63NTJV.js → chunk-3XVZHJQT.js} +1 -1
  41. package/dist/cli/chunks/{chunk-H7AACUYS.js → chunk-42AS3HPO.js} +2 -2
  42. package/dist/cli/chunks/{chunk-HEY2ZRL7.js → chunk-44NPKZGI.js} +2 -2
  43. package/dist/cli/chunks/{chunk-PIV3QHGJ.js → chunk-4AITMWFZ.js} +2 -2
  44. package/dist/cli/chunks/{chunk-2SS2SSNZ.js → chunk-4ANJV6I4.js} +3 -3
  45. package/dist/cli/chunks/{chunk-CCAY7Q56.js → chunk-4FVOJBEU.js} +1 -1
  46. package/dist/cli/chunks/{chunk-EZY3DAIX.js → chunk-4M7YZ2X7.js} +4 -4
  47. package/dist/cli/chunks/{chunk-HZIT42TM.js → chunk-4THFPRFM.js} +2 -2
  48. package/dist/cli/chunks/chunk-4YFXF5AQ.js +21 -0
  49. package/dist/cli/chunks/{chunk-PUN3KZ6N.js → chunk-4Z4X2ND4.js} +2 -2
  50. package/dist/cli/chunks/{chunk-4TSLLWE7.js → chunk-52VGZJSD.js} +1 -1
  51. package/dist/cli/chunks/{chunk-NRD76M7A.js → chunk-5E76HULA.js} +2 -2
  52. package/dist/cli/chunks/{chunk-RQTXQ6C7.js → chunk-5PI75QYP.js} +2 -2
  53. package/dist/cli/chunks/{chunk-7BZUNNWC.js → chunk-5PNQNBDZ.js} +1 -1
  54. package/dist/cli/chunks/{chunk-KBJYXZI7.js → chunk-5VSS2RBD.js} +2 -2
  55. package/dist/cli/chunks/{chunk-7QSGUJE2.js → chunk-66OQ7AB3.js} +1 -1
  56. package/dist/cli/chunks/{chunk-WFEHOEYP.js → chunk-6BSZHNOC.js} +1 -1
  57. package/dist/cli/chunks/{chunk-KQVTTP2S.js → chunk-6KI6LAAZ.js} +2 -2
  58. package/dist/cli/chunks/{chunk-NZRKWUBM.js → chunk-6KKVMPPR.js} +2 -2
  59. package/dist/cli/chunks/{chunk-KITVDY4T.js → chunk-7A4WTRWI.js} +1 -1
  60. package/dist/cli/chunks/{chunk-GRTU5QOT.js → chunk-7LATB5IR.js} +2 -2
  61. package/dist/cli/chunks/{chunk-J6H2LUBM.js → chunk-7PCIN7UN.js} +2 -2
  62. package/dist/cli/chunks/{chunk-FBJUNJ2A.js → chunk-7RVLVIAI.js} +1 -1
  63. package/dist/cli/chunks/{chunk-7NDJW2DU.js → chunk-7ZVO7I4Q.js} +1 -1
  64. package/dist/cli/chunks/{chunk-EE55ALFK.js → chunk-A5RWLPVT.js} +2 -2
  65. package/dist/cli/chunks/{chunk-U6YDS37V.js → chunk-AKUDUB3O.js} +2 -2
  66. package/dist/cli/chunks/{chunk-6SM74KJI.js → chunk-AM42ROKZ.js} +1 -1
  67. package/dist/cli/chunks/{chunk-VUCCPPQ6.js → chunk-AN5CGTTJ.js} +2 -2
  68. package/dist/cli/chunks/{chunk-QZOAU2N5.js → chunk-AOOCV56W.js} +1 -1
  69. package/dist/cli/chunks/{chunk-U562TIMO.js → chunk-ASWWBNX2.js} +2 -2
  70. package/dist/cli/chunks/{chunk-C5CP66K5.js → chunk-AYH3DMW2.js} +1 -1
  71. package/dist/cli/chunks/{chunk-U5NKLMF4.js → chunk-BODFJ3DC.js} +2 -2
  72. package/dist/cli/chunks/{chunk-YHAUBZ4H.js → chunk-BZIPYXSW.js} +3 -3
  73. package/dist/cli/chunks/{chunk-JMF3FMAO.js → chunk-DCVFHVPR.js} +2 -2
  74. package/dist/cli/chunks/{chunk-H633BGA7.js → chunk-DFLASG3B.js} +1 -1
  75. package/dist/cli/chunks/{chunk-CPXZC7LF.js → chunk-DGFINXUE.js} +1 -1
  76. package/dist/cli/chunks/{chunk-54RIPGMC.js → chunk-E67ZXRG6.js} +1 -1
  77. package/dist/cli/chunks/{chunk-A233TTUX.js → chunk-EDRPTLAX.js} +1 -1
  78. package/dist/cli/chunks/{chunk-UHSIP4DJ.js → chunk-EG73WYAW.js} +2 -2
  79. package/dist/cli/chunks/{chunk-EKZNA6HW.js → chunk-FI6J3UHJ.js} +1 -1
  80. package/dist/cli/chunks/{chunk-6FIWTBR5.js → chunk-G45AOQDZ.js} +1 -1
  81. package/dist/cli/chunks/{chunk-IR7FZYPO.js → chunk-G6FJHDUG.js} +1 -1
  82. package/dist/cli/chunks/chunk-GEQWCK4F.js +2 -0
  83. package/dist/cli/chunks/{chunk-6L36EHM2.js → chunk-GJJWXRAD.js} +2 -2
  84. package/dist/cli/chunks/{chunk-MMRORLMM.js → chunk-GJUGG6UR.js} +2 -2
  85. package/dist/cli/chunks/{chunk-YC5UJVV3.js → chunk-GMLRIZ4E.js} +1 -1
  86. package/dist/cli/chunks/{chunk-UNXPBIX5.js → chunk-GQLJYTXN.js} +2 -2
  87. package/dist/cli/chunks/{chunk-IJ3HHUSD.js → chunk-H3GAR4SV.js} +2 -2
  88. package/dist/cli/chunks/{chunk-OSWAQX4G.js → chunk-HAJG44BD.js} +2 -2
  89. package/dist/cli/chunks/{chunk-GSN4QIDI.js → chunk-HQWFZQMJ.js} +2 -2
  90. package/dist/cli/chunks/{chunk-JUVW4DOU.js → chunk-HRTSYT4N.js} +2 -2
  91. package/dist/cli/chunks/{chunk-2HMBDTSI.js → chunk-I5SXLV7D.js} +2 -2
  92. package/dist/cli/chunks/{chunk-DR4V75BF.js → chunk-IOJ34SXJ.js} +2 -2
  93. package/dist/cli/chunks/{chunk-JALFKAAD.js → chunk-IPDM3CAK.js} +1 -1
  94. package/dist/cli/chunks/{chunk-NL3KX4NE.js → chunk-IPZEBALY.js} +34 -29
  95. package/dist/cli/chunks/{chunk-PSBQRTNF.js → chunk-IQH2RDN3.js} +5 -5
  96. package/dist/cli/chunks/{chunk-SWZUMHIQ.js → chunk-IT5QIUUA.js} +2 -2
  97. package/dist/cli/chunks/{chunk-2LGQNT6Q.js → chunk-JTYCOFTD.js} +1 -1
  98. package/dist/cli/chunks/{chunk-Q7QKJY6Y.js → chunk-JVFZAJ5N.js} +2 -2
  99. package/dist/cli/chunks/{chunk-F3AHUNWH.js → chunk-KRZYWVS3.js} +2 -2
  100. package/dist/cli/chunks/{chunk-7JK57AI2.js → chunk-KXSUDN46.js} +1 -1
  101. package/dist/cli/chunks/{chunk-EP2HOAEB.js → chunk-KYJBJ56M.js} +2 -2
  102. package/dist/cli/chunks/{chunk-OLETDPH2.js → chunk-L3GBNX7B.js} +2 -2
  103. package/dist/cli/chunks/{chunk-VWZ743HH.js → chunk-LRO74LPA.js} +4 -4
  104. package/dist/cli/chunks/{chunk-FC47FRFI.js → chunk-LXVT6JXO.js} +4 -4
  105. package/dist/cli/chunks/{chunk-7XWFAPPI.js → chunk-M3354CE4.js} +2 -2
  106. package/dist/cli/chunks/{chunk-37GWETSW.js → chunk-M73KM3AZ.js} +2 -2
  107. package/dist/cli/chunks/{chunk-BM5BSYPW.js → chunk-M7CPJW53.js} +2 -2
  108. package/dist/cli/chunks/{chunk-ZAEUW3Q4.js → chunk-MB2KLJ6Q.js} +1 -1
  109. package/dist/cli/chunks/{chunk-QHRMZP6J.js → chunk-MGKH4LCM.js} +1 -1
  110. package/dist/cli/chunks/{chunk-AJQGNQ3W.js → chunk-MLFELTJX.js} +2 -2
  111. package/dist/cli/chunks/{chunk-I3SBXWF2.js → chunk-MLXLGBQZ.js} +1 -1
  112. package/dist/cli/chunks/{chunk-6C5WRBGZ.js → chunk-MYVKTG55.js} +3 -3
  113. package/dist/cli/chunks/{chunk-EJRDL5W5.js → chunk-N4OQ4D4V.js} +2 -2
  114. package/dist/cli/chunks/{chunk-MMA6Q6NF.js → chunk-NDRZZSD5.js} +2 -2
  115. package/dist/cli/chunks/{chunk-HL5RC5YB.js → chunk-NG6A7LCG.js} +1 -1
  116. package/dist/cli/chunks/{chunk-JPDJARGR.js → chunk-NJ3QXJ54.js} +2 -2
  117. package/dist/cli/chunks/{chunk-DZNK4EM7.js → chunk-NJ4YVAG7.js} +3 -3
  118. package/dist/cli/chunks/chunk-NL2SCAGJ.js +12 -0
  119. package/dist/cli/chunks/chunk-NLZUGANH.js +11 -0
  120. package/dist/cli/chunks/{chunk-TIGBPVPZ.js → chunk-NNLZAVFH.js} +1 -1
  121. package/dist/cli/chunks/{chunk-7XCRPSSU.js → chunk-NTALX2YC.js} +2 -2
  122. package/dist/cli/chunks/{chunk-YALYPHSG.js → chunk-O4BWESH5.js} +2 -2
  123. package/dist/cli/chunks/{chunk-C656WHED.js → chunk-OG3DBHIV.js} +2 -2
  124. package/dist/cli/chunks/{chunk-BFX3N7KU.js → chunk-OZ53BIY5.js} +1 -1
  125. package/dist/cli/chunks/{chunk-BB4LWAAH.js → chunk-P6EFKHNI.js} +2 -2
  126. package/dist/cli/chunks/{chunk-2FFCL4BK.js → chunk-PGFCKE4G.js} +3 -3
  127. package/dist/cli/chunks/{chunk-66BUC3JG.js → chunk-PVINNJ4P.js} +2 -2
  128. package/dist/cli/chunks/{chunk-FOWBKCRK.js → chunk-QG5L2JM5.js} +10 -10
  129. package/dist/cli/chunks/{chunk-ATSVI6T4.js → chunk-QM4Z7TQH.js} +1 -1
  130. package/dist/cli/chunks/{chunk-Q26QKZYI.js → chunk-QXO35J6F.js} +2 -2
  131. package/dist/cli/chunks/{chunk-FOPLJRWL.js → chunk-R7LGVJMZ.js} +2 -2
  132. package/dist/cli/chunks/{chunk-PLJ72A3I.js → chunk-RACWX2ZX.js} +2 -2
  133. package/dist/cli/chunks/{chunk-ZH3MVVXO.js → chunk-RP2BRRLX.js} +2 -2
  134. package/dist/cli/chunks/{chunk-T7OS4CB4.js → chunk-RP5VFZJO.js} +2 -2
  135. package/dist/cli/chunks/{chunk-7GZJMPTD.js → chunk-S6WHYOWV.js} +2 -2
  136. package/dist/cli/chunks/{chunk-C5HYQTD7.js → chunk-SCQNISGS.js} +1 -1
  137. package/dist/cli/chunks/chunk-SNC73DWF.js +2 -0
  138. package/dist/cli/chunks/{chunk-WKE2FUCP.js → chunk-SOS37ECY.js} +1 -1
  139. package/dist/cli/chunks/{chunk-BTG5UFMA.js → chunk-SXFSJJZF.js} +2 -2
  140. package/dist/cli/chunks/{chunk-IHNPXNFG.js → chunk-TB2N3CAK.js} +2 -2
  141. package/dist/cli/chunks/chunk-TDVMILKO.js +2 -0
  142. package/dist/cli/chunks/{chunk-RYHOV4E3.js → chunk-TJVTV3HP.js} +2 -2
  143. package/dist/cli/chunks/{chunk-2E35LWYJ.js → chunk-TK5XLF3Z.js} +4 -4
  144. package/dist/cli/chunks/{chunk-NCX4W65B.js → chunk-TWUWLSGQ.js} +6 -6
  145. package/dist/cli/chunks/{chunk-WIB6KRFJ.js → chunk-U5G6OC2C.js} +2 -2
  146. package/dist/cli/chunks/{chunk-OZO2JUEK.js → chunk-UBOGJHWC.js} +1 -1
  147. package/dist/cli/chunks/{chunk-WK5MKY45.js → chunk-UC4EIULB.js} +13 -13
  148. package/dist/cli/chunks/{chunk-KBOGA4GA.js → chunk-UJUK6T4V.js} +2 -2
  149. package/dist/cli/chunks/chunk-UQ4UCHO7.js +2 -0
  150. package/dist/cli/chunks/{chunk-4PRQMFVO.js → chunk-UWZYXI3R.js} +2 -2
  151. package/dist/cli/chunks/{chunk-GQ6H37RN.js → chunk-VA2ORJB5.js} +2 -2
  152. package/dist/cli/chunks/{chunk-U5WFVIKL.js → chunk-VBHA4SDU.js} +2 -2
  153. package/dist/cli/chunks/{chunk-PGJHCCR6.js → chunk-VD53LBF7.js} +3 -3
  154. package/dist/cli/chunks/{chunk-UHHWEWDA.js → chunk-VNODKACB.js} +2 -2
  155. package/dist/cli/chunks/{chunk-3E3YLEHB.js → chunk-VQCLSX7T.js} +1 -1
  156. package/dist/cli/chunks/{chunk-G7YD3BR3.js → chunk-VQD2ELNL.js} +2 -2
  157. package/dist/cli/chunks/{chunk-RCXC4YGL.js → chunk-VZGP77YU.js} +1 -1
  158. package/dist/cli/chunks/chunk-WA6CSEOX.js +2 -0
  159. package/dist/cli/chunks/{chunk-JGXU5FUZ.js → chunk-WE3VKDMK.js} +3 -3
  160. package/dist/cli/chunks/{chunk-MGJPS2YV.js → chunk-WXU7FAEB.js} +2 -2
  161. package/dist/cli/chunks/{chunk-O5QZB2AP.js → chunk-WYFAPA2G.js} +2 -2
  162. package/dist/cli/chunks/{chunk-MFGKSD44.js → chunk-WYIXNHPF.js} +2 -2
  163. package/dist/cli/chunks/{chunk-2HEHM2KV.js → chunk-X2SZCVDA.js} +2 -2
  164. package/dist/cli/chunks/{chunk-2CLM53W2.js → chunk-X3JNFQW2.js} +2 -2
  165. package/dist/cli/chunks/{chunk-NBUBGYLE.js → chunk-XIKYUBIV.js} +2 -2
  166. package/dist/cli/chunks/{chunk-2FPHM356.js → chunk-XM5I7J5S.js} +2 -2
  167. package/dist/cli/chunks/{chunk-35CHBX6K.js → chunk-XT473WPO.js} +2 -2
  168. package/dist/cli/chunks/{chunk-74QKFILD.js → chunk-YL2GOJF6.js} +2 -2
  169. package/dist/cli/chunks/{chunk-K6SXDKWV.js → chunk-YQOQVSYU.js} +1 -1
  170. package/dist/cli/chunks/{chunk-G427QR5W.js → chunk-Z56BBX77.js} +2 -2
  171. package/dist/cli/chunks/{chunk-LPVHYZAE.js → chunk-Z6DSYLAG.js} +1 -1
  172. package/dist/cli/chunks/{chunk-W3DCBOLL.js → chunk-ZMYV4R32.js} +1 -1
  173. package/dist/cli/chunks/{chunk-UL6PT654.js → chunk-ZSAGRDXA.js} +2 -2
  174. package/dist/cli/chunks/{ci-7QW7234M.js → ci-QAUD62WH.js} +2 -2
  175. package/dist/cli/chunks/{ci-output-WGP4YKPQ.js → ci-output-TZDVTNE7.js} +2 -2
  176. package/dist/cli/chunks/{circuit-breaker-AOHSCJYO.js → circuit-breaker-ZWPHJ7YJ.js} +2 -2
  177. package/dist/cli/chunks/{claude-flow-setup-CIZ3TWR7.js → claude-flow-setup-SCB4EURN.js} +2 -2
  178. package/dist/cli/chunks/client-4W3KWTAU.js +2 -0
  179. package/dist/cli/chunks/{cline-installer-J2QVGPJY.js → cline-installer-EHZLMLXF.js} +2 -2
  180. package/dist/cli/chunks/{code-WH26MFMB.js → code-3N6PBJMK.js} +2 -2
  181. package/dist/cli/chunks/{code-index-extractor-DBOYEFZ4.js → code-index-extractor-6DIKHNRI.js} +2 -2
  182. package/dist/cli/chunks/{codex-installer-MWYVGZC4.js → codex-installer-P7DPQMYL.js} +2 -2
  183. package/dist/cli/chunks/{completions-LNBHGWUS.js → completions-5MKWWCCE.js} +2 -2
  184. package/dist/cli/chunks/{complexity-analyzer-AMYCTQG2.js → complexity-analyzer-TPM4IPEK.js} +2 -2
  185. package/dist/cli/chunks/{continuedev-installer-73EQPP37.js → continuedev-installer-VXODKGVX.js} +2 -2
  186. package/dist/cli/chunks/{copilot-installer-JWSY2272.js → copilot-installer-PVD5O56P.js} +2 -2
  187. package/dist/cli/chunks/core-handlers-BDU2XBLO.js +2 -0
  188. package/dist/cli/chunks/{cost-tracker-XQVIORRZ.js → cost-tracker-JOMZEQF3.js} +2 -2
  189. package/dist/cli/chunks/{coverage-HYGJIQ25.js → coverage-HTXLEV3B.js} +3 -3
  190. package/dist/cli/chunks/cross-domain-router-BPB6IHN4.js +2 -0
  191. package/dist/cli/chunks/{cursor-installer-DNPNJGZM.js → cursor-installer-SHKDTDDZ.js} +2 -2
  192. package/dist/cli/chunks/{daemon-GSOGO6L3.js → daemon-FCFEWVVJ.js} +3 -3
  193. package/dist/cli/chunks/{daemon-6JNNBU33.js → daemon-PN4FEPLE.js} +6 -6
  194. package/dist/cli/chunks/{dag-attention-scheduler-7SGPLKGI.js → dag-attention-scheduler-PLOHU5SR.js} +2 -2
  195. package/dist/cli/chunks/{detect-IXD77HG4.js → detect-F3H4ZEZY.js} +2 -2
  196. package/dist/cli/chunks/{dist-node-ARTYK2HL.js → dist-node-5TC665N6.js} +2 -2
  197. package/dist/cli/chunks/{domain-handler-X4BOFLMY.js → domain-handler-ZIWVFXCU.js} +2 -2
  198. package/dist/cli/chunks/{domain-transfer-7JBEXLFL.js → domain-transfer-7Q5JYMYR.js} +2 -2
  199. package/dist/cli/chunks/dream-WFCZGFDY.js +2 -0
  200. package/dist/cli/chunks/{embed-and-insert-pattern-VSOLKM3Y.js → embed-and-insert-pattern-VESJQSYD.js} +2 -2
  201. package/dist/cli/chunks/{eval-HS2QQW42.js → eval-E2K2T75A.js} +2 -2
  202. package/dist/cli/chunks/{experience-capture-middleware-MWEPZYBT.js → experience-capture-middleware-Z5SE2O53.js} +3 -3
  203. package/dist/cli/chunks/{fast-paths-RONNJ6AC.js → fast-paths-3H52RSUK.js} +2 -2
  204. package/dist/cli/chunks/{feature-flags-4YE5A6XG.js → feature-flags-LUHSMHPS.js} +2 -2
  205. package/dist/cli/chunks/{feature-flags-CLW4K2HN.js → feature-flags-ONIKUZVK.js} +2 -2
  206. package/dist/cli/chunks/{file-discovery-56C2FW4V.js → file-discovery-FLYSYSS4.js} +2 -2
  207. package/dist/cli/chunks/{fleet-KMB6RM3R.js → fleet-6OJUAAKV.js} +3 -3
  208. package/dist/cli/chunks/{gnn-wrapper-R2OMDND4.js → gnn-wrapper-PUL6B7KZ.js} +2 -2
  209. package/dist/cli/chunks/{heartbeat-handler-FP3CIA2V.js → heartbeat-handler-HGHHDUDY.js} +4 -4
  210. package/dist/cli/chunks/heartbeat-scheduler-HWS4SHRM.js +2 -0
  211. package/dist/cli/chunks/hnsw-adapter-7QOBHKRB.js +2 -0
  212. package/dist/cli/chunks/hnsw-index-6WUKYJH7.js +2 -0
  213. package/dist/cli/chunks/{hnsw-legacy-bridge-EQKXBLRX.js → hnsw-legacy-bridge-NDZSNMYX.js} +2 -2
  214. package/dist/cli/chunks/{hnswlib-node-JG3WOXKM.js → hnswlib-node-PISLKSO2.js} +2 -2
  215. package/dist/cli/chunks/{hooks-6QZYELUZ.js → hooks-WYG54MRI.js} +40 -40
  216. package/dist/cli/chunks/hybrid-router-525JTRA5.js +2 -0
  217. package/dist/cli/chunks/{hypergraph-engine-5HGNZFDH.js → hypergraph-engine-EDHKHZZ2.js} +2 -2
  218. package/dist/cli/chunks/{hypergraph-handler-LO2ODOYD.js → hypergraph-handler-OCHZAPPL.js} +3 -3
  219. package/dist/cli/chunks/impact-analyzer-GG6CJEOK.js +2 -0
  220. package/dist/cli/chunks/{init-handler-E346YK6H.js → init-handler-5TCJ672H.js} +6 -6
  221. package/dist/cli/chunks/init-wizard-4VFAOK4Y.js +2 -0
  222. package/dist/cli/chunks/kernel-N3FQGOST.js +2 -0
  223. package/dist/cli/chunks/{kilocode-installer-ZBJNB6N4.js → kilocode-installer-SWUQRCTZ.js} +2 -2
  224. package/dist/cli/chunks/{kiro-installer-3TWFO4QZ.js → kiro-installer-L22EBAM5.js} +2 -2
  225. package/dist/cli/chunks/knowledge-graph-I5QIHB4G.js +2 -0
  226. package/dist/cli/chunks/{learning-3MLFLTM2.js → learning-TQOGG3CR.js} +3 -3
  227. package/dist/cli/chunks/llm-router-F2L4LFT2.js +37 -0
  228. package/dist/cli/chunks/llm-router-service-NCJZYJLG.js +2 -0
  229. package/dist/cli/chunks/{load-P6XC2P74.js → load-A4ZF2KHC.js} +2 -2
  230. package/dist/cli/chunks/load-test-DCJEYIXD.js +2 -0
  231. package/dist/cli/chunks/{mcp-XEND7FPN.js → mcp-T2Z46NNK.js} +2 -2
  232. package/dist/cli/chunks/{memory-HZ2WSMWW.js → memory-PUC3J6XC.js} +5 -5
  233. package/dist/cli/chunks/memory-backend-O6KO2KTX.js +2 -0
  234. package/dist/cli/chunks/memory-handlers-4Z43WEKD.js +2 -0
  235. package/dist/cli/chunks/{multi-model-executor-IYEHZP73.js → multi-model-executor-U5L4FI4O.js} +2 -2
  236. package/dist/cli/chunks/{opencode-installer-GH3VVBM2.js → opencode-installer-UWI6KHYH.js} +2 -2
  237. package/dist/cli/chunks/{orchestrator-GOKIBTQG.js → orchestrator-3BEI7R5D.js} +5 -5
  238. package/dist/cli/chunks/pattern-null-store-5WIJKX2K.js +2 -0
  239. package/dist/cli/chunks/{pattern-usage-recorder-J2X4DD5S.js → pattern-usage-recorder-EGWUI5LU.js} +2 -2
  240. package/dist/cli/chunks/{pipeline-ELINTMVF.js → pipeline-JG6M4RHD.js} +2 -2
  241. package/dist/cli/chunks/{platform-PIPUB3LU.js → platform-F76G6RUI.js} +2 -2
  242. package/dist/cli/chunks/{plugin-DXDNI6ZV.js → plugin-EEGN3PMK.js} +2 -2
  243. package/dist/cli/chunks/{prime-radiant-advanced-wasm-K6WWURGX.js → prime-radiant-advanced-wasm-7KZAINFT.js} +2 -2
  244. package/dist/cli/chunks/protocol-executor-5TPNAZTB.js +2 -0
  245. package/dist/cli/chunks/{protocol-handler-NMO7VI64.js → protocol-handler-UCEHYK2R.js} +2 -2
  246. package/dist/cli/chunks/{prove-4BLOE4SC.js → prove-JSNG75VD.js} +2 -2
  247. package/dist/cli/chunks/provider-manager-3VMOZ6HV.js +2 -0
  248. package/dist/cli/chunks/qe-reasoning-bank-BATV4NTT.js +2 -0
  249. package/dist/cli/chunks/{quality-MYXBP3GX.js → quality-7SRM2HBM.js} +2 -2
  250. package/dist/cli/chunks/{quality-gate-AXPBK3MT.js → quality-gate-A5MPWHST.js} +3 -3
  251. package/dist/cli/chunks/queen-coordinator-EIHGYBUO.js +2 -0
  252. package/dist/cli/chunks/{real-embeddings-4AKAVZIY.js → real-embeddings-ZBF5EQOG.js} +2 -2
  253. package/dist/cli/chunks/{roocode-installer-JE36LP4T.js → roocode-installer-UYQK64BZ.js} +2 -2
  254. package/dist/cli/chunks/router-EMVGY4HU.js +2 -0
  255. package/dist/cli/chunks/routing-feedback-JUP4OFB2.js +2 -0
  256. package/dist/cli/chunks/{routing-handler-LOJUJCVV.js → routing-handler-PY3KPDTH.js} +2 -2
  257. package/dist/cli/chunks/{ruvector-commands-6PNDYF32.js → ruvector-commands-GCAOUTYS.js} +2 -2
  258. package/dist/cli/chunks/{rvf-dual-writer-GSTQPRNA.js → rvf-dual-writer-BUNP4SKD.js} +2 -2
  259. package/dist/cli/chunks/{rvf-migration-adapter-Z2DSEG3E.js → rvf-migration-adapter-VSOAPLMB.js} +2 -2
  260. package/dist/cli/chunks/{rvf-migration-coordinator-XRNODDH4.js → rvf-migration-coordinator-LSWEHAWX.js} +2 -2
  261. package/dist/cli/chunks/rvf-native-adapter-LOC42TQ6.js +2 -0
  262. package/dist/cli/chunks/{rvf-store-integrity-LVEFIUUW.js → rvf-store-integrity-HNDKOM4L.js} +2 -2
  263. package/dist/cli/chunks/safe-db-WQ62IQKV.js +2 -0
  264. package/dist/cli/chunks/schedule-XJRP57TE.js +2 -0
  265. package/dist/cli/chunks/scheduler-EZH5SDIM.js +2 -0
  266. package/dist/cli/chunks/{security-A2FK2DER.js → security-MQ2VB7PY.js} +3 -3
  267. package/dist/cli/chunks/{shared-rvf-adapter-V7IBEGQQ.js → shared-rvf-adapter-TAZEU6QK.js} +2 -2
  268. package/dist/cli/chunks/{shared-rvf-dual-writer-SMGECN2K.js → shared-rvf-dual-writer-B7N6AOCY.js} +2 -2
  269. package/dist/cli/chunks/sqlite-persistence-HPEVCTIB.js +2 -0
  270. package/dist/cli/chunks/status-handler-NZP7DFHE.js +47 -0
  271. package/dist/cli/chunks/{structural-health-6BRP74EW.js → structural-health-ALLUQ4X6.js} +2 -2
  272. package/dist/cli/chunks/{sync-4PDTGP34.js → sync-MM7OCUYD.js} +2 -2
  273. package/dist/cli/chunks/{sync-KI573HOR.js → sync-WJJG5J6V.js} +2 -2
  274. package/dist/cli/chunks/{task-handler-QQGSAK6T.js → task-handler-CAQUEEB4.js} +2 -2
  275. package/dist/cli/chunks/{task-handlers-VUPCDYTI.js → task-handlers-25BJ7D3W.js} +3 -3
  276. package/dist/cli/chunks/{test-CJLXBSRH.js → test-HW7GVGVN.js} +4 -4
  277. package/dist/cli/chunks/{test-scheduling-IKPQPQUB.js → test-scheduling-HTMFJMSP.js} +3 -3
  278. package/dist/cli/chunks/{token-bootstrap-FHLC3SHC.js → token-bootstrap-F2DCLWGW.js} +2 -2
  279. package/dist/cli/chunks/{token-usage-NCXAK7TB.js → token-usage-RJZDMBDP.js} +2 -2
  280. package/dist/cli/chunks/{transformers-SZFBEILB.js → transformers-3YFW3EUO.js} +2 -2
  281. package/dist/cli/chunks/{tree-sitter-wasm-parser-LFGJRML7.js → tree-sitter-wasm-parser-U3PQPIK7.js} +2 -2
  282. package/dist/cli/chunks/{types-NKXH7VTP.js → types-7Q762WDO.js} +2 -2
  283. package/dist/cli/chunks/unified-memory-ATILROKR.js +2 -0
  284. package/dist/cli/chunks/unified-memory-hnsw-XJXAX7DW.js +2 -0
  285. package/dist/cli/chunks/unified-persistence-3TN5PBWE.js +2 -0
  286. package/dist/cli/chunks/{upgrade-PFCFH6M5.js → upgrade-F7MKJWBQ.js} +2 -2
  287. package/dist/cli/chunks/{validate-YEBJRWQM.js → validate-B27AVRA6.js} +2 -2
  288. package/dist/cli/chunks/{validate-swarm-TD2NA6QF.js → validate-swarm-GYZR3GNL.js} +2 -2
  289. package/dist/cli/chunks/{vibium-ACC4GIOT.js → vibium-W4XQMPJP.js} +2 -2
  290. package/dist/cli/chunks/visual-security-VFWRBCNA.js +2 -0
  291. package/dist/cli/chunks/{web-tree-sitter-IWVW5FIE.js → web-tree-sitter-I7CDCFJU.js} +2 -2
  292. package/dist/cli/chunks/{windsurf-installer-5PVGLJ3T.js → windsurf-installer-UYLHFDHU.js} +2 -2
  293. package/dist/cli/chunks/{witness-chain-VZB4LJOJ.js → witness-chain-B66SYZKU.js} +2 -2
  294. package/dist/cli/chunks/witness-chain-JC5LEXRV.js +2 -0
  295. package/dist/cli/chunks/{witness-key-manager-X632AZTN.js → witness-key-manager-U4JPAHVW.js} +2 -2
  296. package/dist/cli/chunks/{workflow-VNAYFUVY.js → workflow-DYMO47FF.js} +4 -4
  297. package/dist/cli/chunks/workflow-orchestrator-TKQUF2KN.js +2 -0
  298. package/dist/cli/chunks/{wrappers-KO3QXNZP.js → wrappers-7S6DQTEA.js} +2 -2
  299. package/dist/cli/commands/daemon.js +3 -3
  300. package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +2 -2
  301. package/dist/cli/commands/hooks-handlers/routing-hooks.js +7 -0
  302. package/dist/cli/commands/llm-router.js +35 -6
  303. package/dist/cli/commands/plugin.js +4 -4
  304. package/dist/cli/commands/quality-gate.js +5 -1
  305. package/dist/cli/handlers/status-handler.js +18 -2
  306. package/dist/cli/index.js +1 -1
  307. package/dist/cli/utils/index.js +2 -2
  308. package/dist/context/compaction/index.js +11 -11
  309. package/dist/context/compaction/tier1-microcompact.js +1 -1
  310. package/dist/context/compaction/tier2-session-summary.js +1 -1
  311. package/dist/context/compaction/tier3-llm-compact.js +1 -1
  312. package/dist/context/compaction/tier4-reactive.js +1 -1
  313. package/dist/coordination/claims/index.js +8 -8
  314. package/dist/coordination/consensus/consensus-engine.js +4 -4
  315. package/dist/coordination/consensus/factory.js +4 -4
  316. package/dist/coordination/consensus/index.js +8 -8
  317. package/dist/coordination/consensus/providers/claude-provider.js +1 -1
  318. package/dist/coordination/consensus/providers/gemini-provider.js +1 -1
  319. package/dist/coordination/consensus/providers/index.js +7 -7
  320. package/dist/coordination/consensus/providers/native-learning-provider.js +1 -1
  321. package/dist/coordination/consensus/providers/ollama-provider.js +1 -1
  322. package/dist/coordination/consensus/providers/openai-provider.js +1 -1
  323. package/dist/coordination/consensus/providers/openrouter-provider.js +1 -1
  324. package/dist/coordination/consensus/strategies/index.js +3 -3
  325. package/dist/coordination/cross-domain-router.js +2 -2
  326. package/dist/coordination/dynamic-scaling/dynamic-scaler.js +1 -1
  327. package/dist/coordination/dynamic-scaling/index.js +2 -2
  328. package/dist/coordination/fleet-tiers/index.js +3 -3
  329. package/dist/coordination/fleet-tiers/tier-selector.js +2 -2
  330. package/dist/coordination/handlers/code-intelligence-handlers.js +2 -2
  331. package/dist/coordination/handlers/coverage-collection.js +1 -1
  332. package/dist/coordination/handlers/coverage-handlers.js +3 -3
  333. package/dist/coordination/handlers/index.js +7 -7
  334. package/dist/coordination/handlers/misc-handlers.js +1 -1
  335. package/dist/coordination/handlers/quality-handlers.js +2 -2
  336. package/dist/coordination/handlers/requirements-handlers.js +2 -2
  337. package/dist/coordination/handlers/security-handlers.js +2 -2
  338. package/dist/coordination/handlers/test-execution-handlers.js +1 -1
  339. package/dist/coordination/index.js +20 -20
  340. package/dist/coordination/mincut/dream-integration.js +1 -1
  341. package/dist/coordination/mincut/index.js +14 -14
  342. package/dist/coordination/mincut/mincut-health-monitor.js +2 -2
  343. package/dist/coordination/mincut/mincut-persistence.js +1 -1
  344. package/dist/coordination/mincut/morphogenetic-growth.js +1 -1
  345. package/dist/coordination/mincut/neural-goap.js +1 -1
  346. package/dist/coordination/mincut/queen-integration.js +5 -5
  347. package/dist/coordination/mincut/shared-singleton.js +3 -3
  348. package/dist/coordination/mincut/strange-loop.js +1 -1
  349. package/dist/coordination/mincut/time-crystal.js +8 -8
  350. package/dist/coordination/mixins/consensus-enabled-domain.js +2 -2
  351. package/dist/coordination/mixins/index.js +3 -3
  352. package/dist/coordination/protocol-executor.js +2 -2
  353. package/dist/coordination/protocols/code-intelligence-index.js +4 -4
  354. package/dist/coordination/protocols/defect-investigation.js +2 -2
  355. package/dist/coordination/protocols/morning-sync.js +1 -1
  356. package/dist/coordination/protocols/quality-gate.js +2 -2
  357. package/dist/coordination/queen-coordinator.js +4 -4
  358. package/dist/coordination/queen-task-management.js +1 -1
  359. package/dist/coordination/services/index.js +1 -1
  360. package/dist/coordination/task-executor.js +6 -6
  361. package/dist/domains/chaos-resilience/coordinator.js +6 -6
  362. package/dist/domains/chaos-resilience/index.js +5 -5
  363. package/dist/domains/chaos-resilience/plugin.js +6 -6
  364. package/dist/domains/chaos-resilience/services/chaos-engineer.js +3 -3
  365. package/dist/domains/chaos-resilience/services/index.js +3 -3
  366. package/dist/domains/chaos-resilience/services/load-tester.js +2 -2
  367. package/dist/domains/chaos-resilience/services/performance-profiler.js +2 -2
  368. package/dist/domains/code-intelligence/coordinator-consensus.js +1 -1
  369. package/dist/domains/code-intelligence/coordinator-gnn.js +1 -1
  370. package/dist/domains/code-intelligence/coordinator-hypergraph.js +2 -2
  371. package/dist/domains/code-intelligence/coordinator.js +9 -9
  372. package/dist/domains/code-intelligence/index.js +7 -7
  373. package/dist/domains/code-intelligence/plugin.js +6 -6
  374. package/dist/domains/code-intelligence/services/c4-model/index.js +3 -3
  375. package/dist/domains/code-intelligence/services/impact-analyzer.js +2 -2
  376. package/dist/domains/code-intelligence/services/index.js +6 -6
  377. package/dist/domains/code-intelligence/services/knowledge-graph.js +4 -4
  378. package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +1 -1
  379. package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +1 -1
  380. package/dist/domains/code-intelligence/services/product-factors-bridge.js +5 -5
  381. package/dist/domains/code-intelligence/services/semantic-analyzer.js +2 -2
  382. package/dist/domains/coverage-analysis/coordinator.js +9 -9
  383. package/dist/domains/coverage-analysis/index.js +10 -10
  384. package/dist/domains/coverage-analysis/plugin.js +4 -4
  385. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +1 -1
  386. package/dist/domains/coverage-analysis/services/gap-detector.js +1 -1
  387. package/dist/domains/coverage-analysis/services/ghost-coverage-analyzer.js +1 -1
  388. package/dist/domains/coverage-analysis/services/index.js +7 -7
  389. package/dist/domains/coverage-analysis/services/risk-scorer.js +1 -1
  390. package/dist/domains/coverage-analysis/services/sublinear-analyzer.js +3 -3
  391. package/dist/domains/defect-intelligence/coordinator.js +5 -5
  392. package/dist/domains/defect-intelligence/index.js +5 -5
  393. package/dist/domains/defect-intelligence/plugin.js +6 -6
  394. package/dist/domains/defect-intelligence/services/causal-root-cause-analyzer.js +2 -2
  395. package/dist/domains/defect-intelligence/services/defect-predictor.js +4 -4
  396. package/dist/domains/defect-intelligence/services/index.js +4 -4
  397. package/dist/domains/defect-intelligence/services/pattern-learner.js +2 -2
  398. package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +1 -1
  399. package/dist/domains/domain-interface.js +1 -1
  400. package/dist/domains/index.js +14 -14
  401. package/dist/domains/learning-optimization/coordinator.d.ts +3 -0
  402. package/dist/domains/learning-optimization/coordinator.js +6 -0
  403. package/dist/domains/learning-optimization/interfaces.d.ts +2 -0
  404. package/dist/domains/learning-optimization/plugin.d.ts +3 -0
  405. package/dist/domains/learning-optimization/plugin.js +5 -0
  406. package/dist/domains/quality-assessment/coherence/gate-controller.js +2 -2
  407. package/dist/domains/quality-assessment/coherence/lambda-calculator.js +1 -1
  408. package/dist/domains/quality-assessment/coherence/partition-detector.js +1 -1
  409. package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +1 -1
  410. package/dist/domains/quality-assessment/coordinator-reports.js +1 -1
  411. package/dist/domains/quality-assessment/coordinator-rl-integration.js +2 -2
  412. package/dist/domains/quality-assessment/coordinator.js +5 -5
  413. package/dist/domains/quality-assessment/index.js +9 -9
  414. package/dist/domains/quality-assessment/plugin.js +6 -6
  415. package/dist/domains/quality-assessment/services/coherence-gate.js +6 -6
  416. package/dist/domains/quality-assessment/services/deployment-advisor.js +1 -1
  417. package/dist/domains/quality-assessment/services/index.js +4 -4
  418. package/dist/domains/quality-assessment/services/quality-analyzer.js +2 -2
  419. package/dist/domains/quality-assessment/services/quality-gate.js +1 -1
  420. package/dist/domains/requirements-validation/services/product-factors-assessment/analyzers/brutal-honesty-analyzer.js +2 -2
  421. package/dist/domains/requirements-validation/services/product-factors-assessment/analyzers/sfdipot-analyzer.js +2 -2
  422. package/dist/domains/requirements-validation/services/product-factors-assessment/code-intelligence/codebase-analyzer.js +1 -1
  423. package/dist/domains/requirements-validation/services/product-factors-assessment/formatters/gherkin-formatter.js +1 -1
  424. package/dist/domains/requirements-validation/services/product-factors-assessment/formatters/html-formatter.js +2 -2
  425. package/dist/domains/requirements-validation/services/product-factors-assessment/formatters/markdown-formatter.js +1 -1
  426. package/dist/domains/requirements-validation/services/product-factors-assessment/generators/question-generator.js +3 -3
  427. package/dist/domains/requirements-validation/services/product-factors-assessment/generators/test-idea-generator.js +3 -3
  428. package/dist/domains/requirements-validation/services/product-factors-assessment/patterns/domain-registry.js +1 -1
  429. package/dist/domains/requirements-validation/services/product-factors-assessment/patterns/index.js +1 -1
  430. package/dist/domains/requirements-validation/services/product-factors-assessment/skills/skill-integration.js +1 -1
  431. package/dist/domains/security-compliance/coordinator.js +1 -1
  432. package/dist/domains/security-compliance/index.js +1 -1
  433. package/dist/domains/security-compliance/services/compliance-validator.js +1 -1
  434. package/dist/domains/security-compliance/services/scanners/dast-helpers.js +1 -1
  435. package/dist/domains/security-compliance/services/scanners/dast-scanner.js +2 -2
  436. package/dist/domains/security-compliance/services/scanners/dependency-scanner.js +4 -4
  437. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +3 -3
  438. package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +2 -2
  439. package/dist/domains/test-execution/coordinator.js +8 -8
  440. package/dist/domains/test-execution/index.js +9 -9
  441. package/dist/domains/test-execution/interfaces.js +1 -1
  442. package/dist/domains/test-execution/plugin.js +3 -3
  443. package/dist/domains/test-execution/services/e2e/adaptive-locator-service.js +1 -1
  444. package/dist/domains/test-execution/services/e2e/assertion-handlers.js +2 -2
  445. package/dist/domains/test-execution/services/e2e/browser-orchestrator.js +3 -3
  446. package/dist/domains/test-execution/services/e2e/e2e-coordinator.js +7 -7
  447. package/dist/domains/test-execution/services/e2e/index.js +10 -10
  448. package/dist/domains/test-execution/services/e2e/step-executors.js +6 -6
  449. package/dist/domains/test-execution/services/e2e/step-retry-handler.js +3 -3
  450. package/dist/domains/test-execution/services/e2e/wait-condition-handler.js +1 -1
  451. package/dist/domains/test-execution/services/e2e-runner.js +6 -6
  452. package/dist/domains/test-execution/services/flaky-detector.js +1 -1
  453. package/dist/domains/test-execution/services/index.js +9 -9
  454. package/dist/domains/test-execution/services/retry-handler.js +1 -1
  455. package/dist/domains/test-execution/services/test-executor.js +1 -1
  456. package/dist/domains/test-execution/services/test-prioritizer.js +3 -3
  457. package/dist/domains/test-execution/services/user-flow-generator.js +3 -3
  458. package/dist/domains/test-execution/test-prioritization-types.js +1 -1
  459. package/dist/domains/test-execution/types/index.js +3 -3
  460. package/dist/domains/test-generation/coordinator.js +5 -5
  461. package/dist/domains/test-generation/factories/index.js +1 -1
  462. package/dist/domains/test-generation/factories/test-generator-factory.js +1 -1
  463. package/dist/domains/test-generation/generators/base-test-generator.js +1 -1
  464. package/dist/domains/test-generation/generators/go-test-generator.js +2 -2
  465. package/dist/domains/test-generation/generators/index.js +13 -13
  466. package/dist/domains/test-generation/generators/jest-vitest-generator.js +1 -1
  467. package/dist/domains/test-generation/generators/junit5-generator.js +2 -2
  468. package/dist/domains/test-generation/generators/kotlin-junit-generator.js +2 -2
  469. package/dist/domains/test-generation/generators/mocha-generator.js +1 -1
  470. package/dist/domains/test-generation/generators/node-test-generator.js +1 -1
  471. package/dist/domains/test-generation/generators/pytest-generator.js +2 -2
  472. package/dist/domains/test-generation/generators/rust-test-generator.js +3 -3
  473. package/dist/domains/test-generation/generators/swift-testing-generator.js +2 -2
  474. package/dist/domains/test-generation/generators/xunit-generator.js +2 -2
  475. package/dist/domains/test-generation/index.js +7 -7
  476. package/dist/domains/test-generation/interfaces/index.js +1 -1
  477. package/dist/domains/test-generation/plugin.js +5 -5
  478. package/dist/domains/test-generation/services/code-transform-integration.js +1 -1
  479. package/dist/domains/test-generation/services/index.js +10 -10
  480. package/dist/domains/test-generation/services/pattern-matcher.js +2 -2
  481. package/dist/domains/test-generation/services/test-generator.js +5 -5
  482. package/dist/domains/visual-accessibility/coordinator.js +1 -1
  483. package/dist/early-exit/early-exit-controller.js +4 -4
  484. package/dist/early-exit/early-exit-decision.js +2 -2
  485. package/dist/early-exit/index.js +5 -5
  486. package/dist/early-exit/quality-signal.js +1 -1
  487. package/dist/early-exit/speculative-executor.js +1 -1
  488. package/dist/index.js +18 -18
  489. package/dist/integrations/agentic-flow/agent-booster/adapter.js +4 -4
  490. package/dist/integrations/agentic-flow/agent-booster/index.js +10 -10
  491. package/dist/integrations/agentic-flow/index.js +6 -6
  492. package/dist/integrations/agentic-flow/metrics/index.js +3 -3
  493. package/dist/integrations/agentic-flow/metrics/metrics-tracker.js +2 -2
  494. package/dist/integrations/agentic-flow/metrics/pattern-updater.js +1 -1
  495. package/dist/integrations/agentic-flow/model-router/budget-enforcer.js +1 -1
  496. package/dist/integrations/agentic-flow/model-router/complexity-analyzer.js +7 -7
  497. package/dist/integrations/agentic-flow/model-router/example.js +1 -1
  498. package/dist/integrations/agentic-flow/model-router/index.js +16 -16
  499. package/dist/integrations/agentic-flow/model-router/router.js +6 -6
  500. package/dist/integrations/agentic-flow/model-router/signal-collector.js +1 -1
  501. package/dist/integrations/agentic-flow/model-router/tier-recommender.js +1 -1
  502. package/dist/integrations/agentic-flow/reasoning-bank/pattern-evolution.js +11 -6
  503. package/dist/integrations/browser/agent-browser/client.js +4 -4
  504. package/dist/integrations/browser/agent-browser/index.js +4 -4
  505. package/dist/integrations/browser/agent-browser/session-manager.js +1 -1
  506. package/dist/integrations/browser/client-factory.js +3 -3
  507. package/dist/integrations/browser/index.js +8 -8
  508. package/dist/integrations/browser/page-pool.js +1 -1
  509. package/dist/integrations/browser/stealth/index.js +2 -2
  510. package/dist/integrations/browser/stealth/stealth-client.js +3 -3
  511. package/dist/integrations/browser/web-content-fetcher.js +1 -1
  512. package/dist/integrations/coherence/coherence-service.js +2 -2
  513. package/dist/integrations/coherence/engines/category-adapter.js +1 -1
  514. package/dist/integrations/coherence/engines/causal-adapter.js +1 -1
  515. package/dist/integrations/coherence/engines/cohomology-adapter.js +1 -1
  516. package/dist/integrations/coherence/engines/homotopy-adapter.js +1 -1
  517. package/dist/integrations/coherence/engines/index.js +6 -6
  518. package/dist/integrations/coherence/engines/spectral-adapter.js +1 -1
  519. package/dist/integrations/coherence/engines/witness-adapter.js +1 -1
  520. package/dist/integrations/coherence/index.js +7 -7
  521. package/dist/integrations/coherence/threshold-tuner.js +1 -1
  522. package/dist/integrations/coherence/wasm-loader.js +2 -2
  523. package/dist/integrations/rl-suite/algorithms/a2c.js +2 -2
  524. package/dist/integrations/rl-suite/algorithms/actor-critic.js +2 -2
  525. package/dist/integrations/rl-suite/algorithms/ddpg.js +1 -1
  526. package/dist/integrations/rl-suite/algorithms/decision-transformer.js +1 -1
  527. package/dist/integrations/rl-suite/algorithms/dqn.js +2 -2
  528. package/dist/integrations/rl-suite/algorithms/eprop.js +2 -2
  529. package/dist/integrations/rl-suite/algorithms/index.js +10 -10
  530. package/dist/integrations/rl-suite/algorithms/policy-gradient.js +2 -2
  531. package/dist/integrations/rl-suite/algorithms/ppo.js +2 -2
  532. package/dist/integrations/rl-suite/algorithms/q-learning.js +3 -3
  533. package/dist/integrations/rl-suite/algorithms/sarsa.js +2 -2
  534. package/dist/integrations/rl-suite/base-algorithm.js +1 -1
  535. package/dist/integrations/rl-suite/index.js +6 -6
  536. package/dist/integrations/rl-suite/neural/index.js +2 -2
  537. package/dist/integrations/rl-suite/orchestrator.js +11 -11
  538. package/dist/integrations/ruvector/ast-complexity.js +1 -1
  539. package/dist/integrations/ruvector/coverage-router.js +1 -1
  540. package/dist/integrations/ruvector/diff-risk-classifier.js +1 -1
  541. package/dist/integrations/ruvector/graph-boundaries.js +1 -1
  542. package/dist/integrations/ruvector/hypergraph-engine.js +1 -1
  543. package/dist/integrations/ruvector/hypergraph-schema.js +1 -1
  544. package/dist/integrations/ruvector/index.js +52 -52
  545. package/dist/integrations/ruvector/persistent-q-router.js +2 -2
  546. package/dist/integrations/ruvector/q-learning-router.js +1 -1
  547. package/dist/integrations/ruvector/solver-adapter.js +1 -1
  548. package/dist/integrations/ruvector/sona-persistence.d.ts +13 -11
  549. package/dist/integrations/ruvector/sona-persistence.js +1 -1
  550. package/dist/integrations/vibium/client.js +3 -3
  551. package/dist/integrations/vibium/fallback.js +2 -2
  552. package/dist/integrations/vibium/index.js +9 -9
  553. package/dist/kernel/agent-coordinator.js +1 -1
  554. package/dist/kernel/event-bus.js +1 -1
  555. package/dist/kernel/hybrid-backend.js +1 -1
  556. package/dist/kernel/index.js +11 -11
  557. package/dist/kernel/kernel.js +27 -27
  558. package/dist/kernel/memory-factory.js +2 -2
  559. package/dist/kernel/unified-persistence.js +1 -1
  560. package/dist/learning/aqe-learning-engine.d.ts +0 -1
  561. package/dist/learning/aqe-learning-engine.js +2 -36
  562. package/dist/learning/pattern-lifecycle.js +1 -1
  563. package/dist/learning/pattern-routing-guidance.d.ts +16 -0
  564. package/dist/learning/pattern-routing-guidance.js +34 -0
  565. package/dist/learning/qe-reasoning-bank-types.d.ts +2 -0
  566. package/dist/learning/qe-reasoning-bank.js +2 -1
  567. package/dist/learning/real-qe-reasoning-bank.d.ts +2 -0
  568. package/dist/learning/real-qe-reasoning-bank.js +4 -2
  569. package/dist/learning/token-tracker.js +1 -1
  570. package/dist/logging/index.js +1 -1
  571. package/dist/logging/logger-factory.js +1 -1
  572. package/dist/mcp/bundle.js +445 -432
  573. package/dist/mcp/entry.js +1 -1
  574. package/dist/mcp/handlers/agent-handlers.js +2 -2
  575. package/dist/mcp/handlers/core-handlers.js +9 -9
  576. package/dist/mcp/handlers/domain-handler-configs.js +2 -2
  577. package/dist/mcp/handlers/domain-handlers.js +2 -2
  578. package/dist/mcp/handlers/handler-factory.js +3 -3
  579. package/dist/mcp/handlers/index.js +7 -7
  580. package/dist/mcp/handlers/memory-handlers.js +1 -1
  581. package/dist/mcp/handlers/task-handlers.js +3 -3
  582. package/dist/mcp/handlers/team-handlers.js +1 -1
  583. package/dist/mcp/index.js +11 -11
  584. package/dist/mcp/metrics/index.js +1 -1
  585. package/dist/mcp/protocol-server.js +13 -13
  586. package/dist/mcp/security/cve-prevention.js +23 -23
  587. package/dist/mcp/security/index.js +9 -9
  588. package/dist/mcp/security/validators/index.js +6 -6
  589. package/dist/mcp/services/index.js +1 -1
  590. package/dist/mcp/services/task-router.js +1 -1
  591. package/dist/mcp/tool-registry.js +4 -4
  592. package/dist/mcp/tools/base.js +1 -1
  593. package/dist/mcp/tools/code-intelligence/analyze.js +4 -4
  594. package/dist/mcp/tools/code-intelligence/c4.js +6 -6
  595. package/dist/mcp/tools/coverage-analysis/index.js +4 -4
  596. package/dist/mcp/tools/defect-intelligence/predict.js +2 -2
  597. package/dist/mcp/tools/embeddings/embedding.js +2 -2
  598. package/dist/mcp/tools/embeddings/index.js +1 -1
  599. package/dist/mcp/tools/index.js +20 -20
  600. package/dist/mcp/tools/learning-optimization/optimize.d.ts +11 -0
  601. package/dist/mcp/tools/learning-optimization/optimize.js +21 -0
  602. package/dist/mcp/tools/mincut/index.js +2 -2
  603. package/dist/mcp/tools/quality-assessment/evaluate.js +1 -1
  604. package/dist/mcp/tools/quality-assessment/gate.js +5 -2
  605. package/dist/mcp/tools/qx-analysis/analyze.js +5 -5
  606. package/dist/mcp/tools/qx-analysis/heuristics-engine.js +1 -1
  607. package/dist/mcp/tools/qx-analysis/index.js +6 -6
  608. package/dist/mcp/tools/registry.js +25 -25
  609. package/dist/mcp/tools/requirements-validation/quality-criteria.js +1 -1
  610. package/dist/mcp/tools/requirements-validation/validate.js +1 -1
  611. package/dist/mcp/tools/security-compliance/scan.js +1 -1
  612. package/dist/mcp/tools/test-execution/e2e-execute.js +3 -3
  613. package/dist/mcp/tools/test-execution/execute.js +1 -1
  614. package/dist/mcp/tools/test-execution/index.js +2 -2
  615. package/dist/mcp/tools/test-generation/generate.js +3 -3
  616. package/dist/mcp/tools/visual-accessibility/index.js +3 -3
  617. package/dist/plugins/index.js +8 -8
  618. package/dist/plugins/lifecycle.js +5 -5
  619. package/dist/plugins/sources/github.js +1 -1
  620. package/dist/plugins/sources/local.js +1 -1
  621. package/dist/plugins/sources/npm.js +1 -1
  622. package/dist/shared/base-domain-plugin.js +1 -1
  623. package/dist/shared/c4-model/index.js +1 -1
  624. package/dist/shared/embeddings/index.js +4 -4
  625. package/dist/shared/embeddings/nomic-embedder.js +3 -3
  626. package/dist/shared/embeddings/ollama-client.js +1 -1
  627. package/dist/shared/entities/agent.js +1 -1
  628. package/dist/shared/entities/index.js +2 -2
  629. package/dist/shared/events/index.js +1 -1
  630. package/dist/shared/git/index.js +1 -1
  631. package/dist/shared/http/http-client.js +1 -1
  632. package/dist/shared/http/index.js +1 -1
  633. package/dist/shared/index.js +15 -15
  634. package/dist/shared/io/file-reader.js +1 -1
  635. package/dist/shared/io/index.js +1 -1
  636. package/dist/shared/llm/billing-modes.d.ts +5 -0
  637. package/dist/shared/llm/billing-modes.js +42 -3
  638. package/dist/shared/llm/circuit-breaker.js +1 -1
  639. package/dist/shared/llm/index.d.ts +4 -1
  640. package/dist/shared/llm/index.js +15 -11
  641. package/dist/shared/llm/interfaces.d.ts +34 -3
  642. package/dist/shared/llm/interfaces.js +17 -0
  643. package/dist/shared/llm/metrics/cost-metrics.js +2 -2
  644. package/dist/shared/llm/metrics/index.js +2 -2
  645. package/dist/shared/llm/metrics/router-metrics.js +1 -1
  646. package/dist/shared/llm/model-registry.js +1 -1
  647. package/dist/shared/llm/provider-manager.js +24 -17
  648. package/dist/shared/llm/provider-registry.d.ts +135 -0
  649. package/dist/shared/llm/provider-registry.js +227 -0
  650. package/dist/shared/llm/providers/azure-openai.js +2 -2
  651. package/dist/shared/llm/providers/bedrock.js +2 -2
  652. package/dist/shared/llm/providers/claude-code.js +1 -1
  653. package/dist/shared/llm/providers/claude.js +4 -4
  654. package/dist/shared/llm/providers/codex.js +1 -1
  655. package/dist/shared/llm/providers/cognitum.js +1 -1
  656. package/dist/shared/llm/providers/external-cli.d.ts +129 -0
  657. package/dist/shared/llm/providers/external-cli.js +385 -0
  658. package/dist/shared/llm/providers/gemini.js +1 -1
  659. package/dist/shared/llm/providers/index.js +10 -10
  660. package/dist/shared/llm/providers/ollama.js +2 -2
  661. package/dist/shared/llm/providers/openai.js +2 -2
  662. package/dist/shared/llm/providers/openrouter.js +1 -1
  663. package/dist/shared/llm/router/config-store.d.ts +14 -0
  664. package/dist/shared/llm/router/config-store.js +102 -14
  665. package/dist/shared/llm/router/external-provider-config.d.ts +47 -0
  666. package/dist/shared/llm/router/external-provider-config.js +105 -0
  667. package/dist/shared/llm/router/hybrid-router.js +7 -7
  668. package/dist/shared/llm/router/index.js +4 -4
  669. package/dist/shared/llm/router/routing-rules.js +1 -1
  670. package/dist/shared/llm/router/types.d.ts +50 -4
  671. package/dist/shared/llm/router/types.js +10 -0
  672. package/dist/shared/llm/translation/index.js +3 -3
  673. package/dist/shared/llm/translation/message-formatter.js +7 -1
  674. package/dist/shared/llm/translation/prompt-translator.js +2 -2
  675. package/dist/shared/metrics/code-metrics.js +2 -2
  676. package/dist/shared/metrics/index.js +2 -2
  677. package/dist/shared/parsers/index.js +3 -3
  678. package/dist/shared/security/compliance-patterns.js +1 -1
  679. package/dist/shared/security/index.js +8 -8
  680. package/dist/shared/security/osv-client.js +1 -1
  681. package/dist/test-scheduling/index.js +9 -9
  682. package/dist/test-scheduling/phase-scheduler.js +1 -1
  683. package/dist/test-scheduling/pipeline.js +9 -9
  684. package/dist/validation/provider-llm-executor.js +5 -5
  685. package/dist/workers/daemon.js +3 -3
  686. package/dist/workers/index.js +5 -5
  687. package/dist/workers/quality-daemon/index.js +15 -15
  688. package/dist/workers/workers/compliance-checker.js +2 -2
  689. package/dist/workers/workers/coverage-tracker.js +1 -1
  690. package/dist/workers/workers/defect-predictor.js +1 -1
  691. package/dist/workers/workers/flaky-detector.js +1 -1
  692. package/dist/workers/workers/learning-consolidation.js +4 -4
  693. package/dist/workers/workers/performance-baseline.js +1 -1
  694. package/dist/workers/workers/quality-gate.js +1 -1
  695. package/dist/workers/workers/regression-monitor.js +1 -1
  696. package/dist/workers/workers/security-scan.js +1 -1
  697. package/dist/workers/workers/test-health.js +1 -1
  698. package/dist/workflows/browser/index.js +1 -1
  699. package/package.json +8 -3
  700. package/dist/cli/chunks/adapter-6CNMDJVJ.js +0 -2
  701. package/dist/cli/chunks/aqe-learning-engine-JGHHNSFX.js +0 -2
  702. package/dist/cli/chunks/base-ND3KAA2L.js +0 -2
  703. package/dist/cli/chunks/browser-workflow-EBSNGTSH.js +0 -2
  704. package/dist/cli/chunks/chunk-3I5ZTLFY.js +0 -2
  705. package/dist/cli/chunks/chunk-4EWKERKV.js +0 -3
  706. package/dist/cli/chunks/chunk-4NXABNLF.js +0 -2
  707. package/dist/cli/chunks/chunk-A6V5NZCV.js +0 -21
  708. package/dist/cli/chunks/chunk-QR6NVCRT.js +0 -12
  709. package/dist/cli/chunks/chunk-TL5FMEKW.js +0 -2
  710. package/dist/cli/chunks/chunk-XPUPST5T.js +0 -2
  711. package/dist/cli/chunks/client-NEGGUFEM.js +0 -2
  712. package/dist/cli/chunks/core-handlers-Q2XPFYQ5.js +0 -2
  713. package/dist/cli/chunks/cross-domain-router-WNZMUQ3G.js +0 -2
  714. package/dist/cli/chunks/dream-OL5XLAYS.js +0 -2
  715. package/dist/cli/chunks/heartbeat-scheduler-XUAW3I3Q.js +0 -2
  716. package/dist/cli/chunks/hnsw-adapter-EDK2YUZJ.js +0 -2
  717. package/dist/cli/chunks/hnsw-index-RDMT66NM.js +0 -2
  718. package/dist/cli/chunks/hybrid-router-BALMPXND.js +0 -2
  719. package/dist/cli/chunks/impact-analyzer-P6XLP3QX.js +0 -2
  720. package/dist/cli/chunks/init-wizard-HMU5OPKQ.js +0 -2
  721. package/dist/cli/chunks/kernel-HMSENQ6R.js +0 -2
  722. package/dist/cli/chunks/knowledge-graph-G7W72UC5.js +0 -2
  723. package/dist/cli/chunks/llm-router-XCBGZRKA.js +0 -36
  724. package/dist/cli/chunks/llm-router-service-VCM7LAGO.js +0 -2
  725. package/dist/cli/chunks/load-test-H5FATYS2.js +0 -2
  726. package/dist/cli/chunks/memory-backend-OPHD5UCR.js +0 -2
  727. package/dist/cli/chunks/memory-handlers-EA5UFT4G.js +0 -2
  728. package/dist/cli/chunks/pattern-null-store-XJOXEDQO.js +0 -2
  729. package/dist/cli/chunks/protocol-executor-XVN7GTLL.js +0 -2
  730. package/dist/cli/chunks/provider-manager-NQICCJZZ.js +0 -2
  731. package/dist/cli/chunks/qe-reasoning-bank-SVCH233Z.js +0 -2
  732. package/dist/cli/chunks/queen-coordinator-Z3PBE4EH.js +0 -2
  733. package/dist/cli/chunks/router-HMWZW2SF.js +0 -2
  734. package/dist/cli/chunks/routing-feedback-ZZYHE2CL.js +0 -2
  735. package/dist/cli/chunks/rvf-native-adapter-ZPT4RLBE.js +0 -2
  736. package/dist/cli/chunks/safe-db-VMYUKPV6.js +0 -2
  737. package/dist/cli/chunks/schedule-DOQ4X4MH.js +0 -2
  738. package/dist/cli/chunks/scheduler-FE2DH224.js +0 -2
  739. package/dist/cli/chunks/sqlite-persistence-TKCACSFQ.js +0 -2
  740. package/dist/cli/chunks/status-handler-UHY36LOR.js +0 -47
  741. package/dist/cli/chunks/unified-memory-2PA3CIQT.js +0 -2
  742. package/dist/cli/chunks/unified-memory-hnsw-W43H4ZKY.js +0 -2
  743. package/dist/cli/chunks/unified-persistence-SOW7AAZL.js +0 -2
  744. package/dist/cli/chunks/visual-security-R6BVIOYU.js +0 -2
  745. package/dist/cli/chunks/witness-chain-GSJW7VDF.js +0 -2
  746. package/dist/cli/chunks/workflow-orchestrator-TXEMI5DD.js +0 -2
@@ -0,0 +1,385 @@
1
+ /**
2
+ * Agentic QE v3 — Generic external CLI provider (ADR-127 / issue #628)
3
+ *
4
+ * A provider built from a *declaration* rather than from code. It generalizes
5
+ * the shape AQE has already shipped twice — `providers/codex.ts` and
6
+ * `providers/claude-code.ts` — into something a downstream integrator can
7
+ * obtain by writing JSON:
8
+ *
9
+ * spawn a host CLI → feed it a prompt on stdin → read the completion from
10
+ * stdout → attribute the usage honestly.
11
+ *
12
+ * WHY DECLARATIVE: the requester (agentic-kit) drives AQE as spawned
13
+ * subprocesses — the `aqe` CLI bundle and the MCP server bundle are separate
14
+ * esbuild artifacts — so an in-process `registerProvider()` call cannot reach
15
+ * them. A declaration in `.agentic-qe/llm-config.json` reaches both, and does
16
+ * so without AQE ever importing third-party code. See ADR-127 for why the
17
+ * dynamic-`import()` plugin design was rejected.
18
+ *
19
+ * LOAD-BEARING: `stripEnv` removes named variables from the child environment.
20
+ * A host that bills against a subscription must be able to guarantee an API
21
+ * key is not silently present to flip it back to metered billing — the same
22
+ * discipline `codex.ts` enforces for OPENAI_API_KEY / CODEX_API_KEY.
23
+ */
24
+ import { spawn } from 'node:child_process';
25
+ import { accessSync, constants as fsConstants, statSync } from 'node:fs';
26
+ import { delimiter, join } from 'node:path';
27
+ import { createLLMError, } from '../interfaces.js';
28
+ export const DEFAULT_EXTERNAL_CLI_TIMEOUT_MS = 180_000;
29
+ export const DEFAULT_EXTERNAL_CLI_CONCURRENCY = 2;
30
+ export const EXTERNAL_CLI_DEFAULT_MODEL = 'default';
31
+ /**
32
+ * Validate a declaration. Returns an error message, or `undefined` when the
33
+ * declaration is usable.
34
+ *
35
+ * Deliberately does NOT check that the binary exists — that is a runtime
36
+ * availability question answered by `isAvailable()`. A declaration for a host
37
+ * that is not installed yet is valid-but-unavailable, not malformed, so a
38
+ * config file stays portable across machines.
39
+ */
40
+ export function validateExternalCliConfig(type, config) {
41
+ if (!config || typeof config !== 'object') {
42
+ return `externalProviders["${type}"] must be an object`;
43
+ }
44
+ const c = config;
45
+ if (c.kind !== 'cli') {
46
+ return `externalProviders["${type}"].kind must be "cli" (got ${JSON.stringify(c.kind)})`;
47
+ }
48
+ if (!Array.isArray(c.command) || c.command.length === 0) {
49
+ return `externalProviders["${type}"].command must be a non-empty string array`;
50
+ }
51
+ if (!c.command.every((part) => typeof part === 'string' && part.length > 0)) {
52
+ return `externalProviders["${type}"].command must contain only non-empty strings`;
53
+ }
54
+ if (c.billingMode !== undefined &&
55
+ !['subscription', 'metered-api', 'metered-capped', 'local'].includes(c.billingMode)) {
56
+ return `externalProviders["${type}"].billingMode "${String(c.billingMode)}" is not a valid billing mode`;
57
+ }
58
+ if (c.models !== undefined && (!Array.isArray(c.models) || c.models.some((m) => typeof m !== 'string'))) {
59
+ return `externalProviders["${type}"].models must be a string array`;
60
+ }
61
+ if (c.timeoutMs !== undefined && (typeof c.timeoutMs !== 'number' || c.timeoutMs <= 0)) {
62
+ return `externalProviders["${type}"].timeoutMs must be a positive number`;
63
+ }
64
+ if (c.maxConcurrency !== undefined &&
65
+ (typeof c.maxConcurrency !== 'number' || c.maxConcurrency < 1)) {
66
+ return `externalProviders["${type}"].maxConcurrency must be >= 1`;
67
+ }
68
+ if (c.stripEnv !== undefined &&
69
+ (!Array.isArray(c.stripEnv) || c.stripEnv.some((k) => typeof k !== 'string'))) {
70
+ return `externalProviders["${type}"].stripEnv must be a string array`;
71
+ }
72
+ if ('apiKey' in c) {
73
+ // Matches saveRouterConfigFile's never-persist-keys discipline. Reported
74
+ // as an error so the key is noticed and removed rather than silently kept
75
+ // in a file that gets committed.
76
+ return `externalProviders["${type}"] must not contain an apiKey — keys belong in the environment, not in llm-config.json`;
77
+ }
78
+ return undefined;
79
+ }
80
+ // ============================================================================
81
+ // Provider
82
+ // ============================================================================
83
+ export class ExternalCliProvider {
84
+ type;
85
+ name;
86
+ billingMode;
87
+ config;
88
+ requestCounter = 0;
89
+ availabilityCache;
90
+ active = 0;
91
+ queue = [];
92
+ constructor(type, config) {
93
+ const problem = validateExternalCliConfig(type, config);
94
+ if (problem) {
95
+ throw createLLMError(problem, 'INVALID_REGISTRATION', { retryable: false });
96
+ }
97
+ this.type = type;
98
+ this.config = config;
99
+ this.name = config.displayName ?? type;
100
+ // Undeclared => metered-api: assume it costs money and requires a cap.
101
+ this.billingMode = config.billingMode ?? 'metered-api';
102
+ }
103
+ /**
104
+ * Is the host's binary present and executable?
105
+ *
106
+ * Deliberately does NOT run it. AQE cannot know what invoking an arbitrary
107
+ * host costs — a declared host has no `--version` contract it agreed to, and
108
+ * spawning it with an empty prompt could burn a real request against the
109
+ * user's plan just to answer "are you installed?". Resolving the binary on
110
+ * PATH answers the question for free.
111
+ */
112
+ async isAvailable() {
113
+ const now = Date.now();
114
+ if (this.availabilityCache && now - this.availabilityCache.at < 60_000) {
115
+ return this.availabilityCache.available;
116
+ }
117
+ const available = resolvesOnPath(this.config.command[0]);
118
+ this.availabilityCache = { at: now, available };
119
+ return available;
120
+ }
121
+ async healthCheck() {
122
+ const start = Date.now();
123
+ const available = await this.isAvailable();
124
+ const latencyMs = Date.now() - start;
125
+ if (!available) {
126
+ return {
127
+ healthy: false,
128
+ latencyMs,
129
+ error: `External provider "${this.type}" could not run "${this.config.command[0]}". ` +
130
+ `Check that the host is installed and on PATH.`,
131
+ };
132
+ }
133
+ return {
134
+ healthy: true,
135
+ latencyMs,
136
+ models: this.getSupportedModels(),
137
+ details: {
138
+ command: this.config.command[0],
139
+ billing: this.billingMode,
140
+ external: true,
141
+ },
142
+ };
143
+ }
144
+ async generate(input, options) {
145
+ const model = options?.model ?? this.defaultModel();
146
+ const requestId = `${this.type}-${++this.requestCounter}-${Date.now()}`;
147
+ const prompt = flattenPrompt(input, options?.systemPrompt);
148
+ const timeoutMs = options?.timeoutMs ?? this.config.timeoutMs ?? DEFAULT_EXTERNAL_CLI_TIMEOUT_MS;
149
+ const extraArgs = [];
150
+ if (this.config.modelFlag && model && model !== EXTERNAL_CLI_DEFAULT_MODEL) {
151
+ extraArgs.push(this.config.modelFlag, model);
152
+ }
153
+ const start = Date.now();
154
+ const { code, stdout, stderr } = await this.withConcurrency(() => this.spawnHost(extraArgs, prompt, timeoutMs));
155
+ const latencyMs = Date.now() - start;
156
+ const content = stdout.trim();
157
+ if (code !== 0 && !content) {
158
+ throw this.classifyError(stderr || `${this.type} exited with code ${code}`, model);
159
+ }
160
+ // No per-token receipt from a generic CLI. Estimate for visibility only
161
+ // (~4 chars/token) and mark the cost `local-estimate` so ADR-126's
162
+ // provenance rule holds: an estimate is never reported as a measurement.
163
+ const promptTokens = Math.ceil(prompt.length / 4);
164
+ const completionTokens = Math.ceil(content.length / 4);
165
+ const usage = {
166
+ promptTokens,
167
+ completionTokens,
168
+ totalTokens: promptTokens + completionTokens,
169
+ };
170
+ return {
171
+ content,
172
+ model,
173
+ provider: this.type,
174
+ usage,
175
+ cost: {
176
+ inputCost: 0,
177
+ outputCost: 0,
178
+ totalCost: 0,
179
+ currency: 'USD',
180
+ // Even for a subscription host this is an estimate, not a receipt:
181
+ // AQE did not observe the billing event and cannot verify the mode
182
+ // the declaration claimed.
183
+ source: 'local-estimate',
184
+ },
185
+ latencyMs,
186
+ finishReason: 'stop',
187
+ cached: false,
188
+ requestId,
189
+ };
190
+ }
191
+ /**
192
+ * ADR-127: a generic CLI contract cannot promise an embeddings endpoint.
193
+ * Throws `EMBEDDING_UNSUPPORTED` — a distinct, non-retryable signal so the
194
+ * caller falls back to a provider that has one, and never receives a
195
+ * fabricated vector.
196
+ */
197
+ async embed(_text, _options) {
198
+ throw createLLMError(`External provider "${this.type}" does not support embeddings. ` +
199
+ `Use a provider with an embeddings endpoint (openai, ollama, cognitum).`, 'EMBEDDING_UNSUPPORTED', { provider: this.type, retryable: false });
200
+ }
201
+ async complete(prompt, options) {
202
+ const response = await this.generate(prompt, {
203
+ model: options?.model,
204
+ temperature: options?.temperature,
205
+ maxTokens: options?.maxTokens,
206
+ });
207
+ return {
208
+ completion: response.content,
209
+ model: response.model,
210
+ provider: this.type,
211
+ usage: response.usage,
212
+ latencyMs: response.latencyMs,
213
+ cached: response.cached,
214
+ };
215
+ }
216
+ getConfig() {
217
+ return { ...this.config };
218
+ }
219
+ getSupportedModels() {
220
+ return [...(this.config.models ?? [EXTERNAL_CLI_DEFAULT_MODEL])];
221
+ }
222
+ /**
223
+ * Unknown. A declared host does not tell AQE its per-token price, and
224
+ * inventing one would feed fabricated numbers into cost reporting.
225
+ */
226
+ getCostPerToken() {
227
+ return { input: 0, output: 0 };
228
+ }
229
+ async dispose() {
230
+ // No persistent resources — each request is its own subprocess.
231
+ }
232
+ // -- internals -------------------------------------------------------------
233
+ defaultModel() {
234
+ return this.config.defaultModel ?? this.config.models?.[0] ?? EXTERNAL_CLI_DEFAULT_MODEL;
235
+ }
236
+ /**
237
+ * Child env with the declared keys removed (LOAD-BEARING — see file header).
238
+ * Static so tests can assert the strip without spawning anything.
239
+ */
240
+ static childEnv(stripEnv = [], base = process.env) {
241
+ const env = { ...base };
242
+ for (const key of stripEnv) {
243
+ delete env[key];
244
+ }
245
+ return env;
246
+ }
247
+ classifyError(message, model) {
248
+ const lower = message.toLowerCase();
249
+ if (lower.includes('rate limit') ||
250
+ lower.includes('usage limit') ||
251
+ lower.includes('429') ||
252
+ lower.includes('quota')) {
253
+ return createLLMError(message, 'RATE_LIMITED', {
254
+ provider: this.type,
255
+ model,
256
+ retryable: true,
257
+ retryAfterMs: 60_000,
258
+ });
259
+ }
260
+ return createLLMError(message, 'PROVIDER_UNAVAILABLE', {
261
+ provider: this.type,
262
+ model,
263
+ retryable: true,
264
+ });
265
+ }
266
+ spawnHost(extraArgs, stdin, timeoutMs) {
267
+ const [binary, ...baseArgs] = this.config.command;
268
+ const args = [...baseArgs, ...extraArgs];
269
+ return new Promise((resolve, reject) => {
270
+ const child = spawn(binary, args, {
271
+ env: ExternalCliProvider.childEnv(this.config.stripEnv),
272
+ stdio: ['pipe', 'pipe', 'pipe'],
273
+ });
274
+ let stdout = '';
275
+ let stderr = '';
276
+ let settled = false;
277
+ const timer = setTimeout(() => {
278
+ if (settled)
279
+ return;
280
+ settled = true;
281
+ child.kill('SIGKILL');
282
+ reject(createLLMError(`${this.type} timed out after ${timeoutMs}ms`, 'TIMEOUT', {
283
+ provider: this.type,
284
+ retryable: true,
285
+ }));
286
+ }, timeoutMs);
287
+ child.stdout.on('data', (d) => (stdout += d.toString()));
288
+ child.stderr.on('data', (d) => (stderr += d.toString()));
289
+ child.on('error', (err) => {
290
+ if (settled)
291
+ return;
292
+ settled = true;
293
+ clearTimeout(timer);
294
+ reject(createLLMError(`Failed to spawn "${binary}" for provider "${this.type}": ${err.message}`, 'PROVIDER_UNAVAILABLE', { provider: this.type, retryable: false, cause: err }));
295
+ });
296
+ child.on('close', (code) => {
297
+ if (settled)
298
+ return;
299
+ settled = true;
300
+ clearTimeout(timer);
301
+ resolve({ code: code ?? 0, stdout, stderr });
302
+ });
303
+ // EPIPE guard: a host that exits before reading stdin (e.g. not logged
304
+ // in) makes the write emit 'error' on the stdin stream. Without a
305
+ // listener Node throws an uncaught exception that kills the calling
306
+ // process. The close/error handlers above carry the real outcome.
307
+ child.stdin.on('error', () => {
308
+ /* swallow EPIPE — outcome reported via close/error */
309
+ });
310
+ try {
311
+ child.stdin.write(stdin);
312
+ child.stdin.end();
313
+ }
314
+ catch {
315
+ /* stream already torn down — process handlers report the failure */
316
+ }
317
+ });
318
+ }
319
+ /** Semaphore so we never spawn unbounded host subprocesses. */
320
+ async withConcurrency(fn) {
321
+ const limit = this.config.maxConcurrency ?? DEFAULT_EXTERNAL_CLI_CONCURRENCY;
322
+ if (this.active >= limit) {
323
+ await new Promise((resolve) => this.queue.push(resolve));
324
+ }
325
+ this.active++;
326
+ try {
327
+ return await fn();
328
+ }
329
+ finally {
330
+ this.active--;
331
+ const next = this.queue.shift();
332
+ if (next)
333
+ next();
334
+ }
335
+ }
336
+ }
337
+ // ============================================================================
338
+ // Helpers
339
+ // ============================================================================
340
+ /**
341
+ * Does this binary resolve to something executable, without running it?
342
+ * An absolute or explicitly-relative path is checked directly; a bare name is
343
+ * looked up across PATH the way the shell would.
344
+ */
345
+ export function resolvesOnPath(binary, env = process.env) {
346
+ const isExecutable = (candidate) => {
347
+ try {
348
+ accessSync(candidate, fsConstants.X_OK);
349
+ return statSync(candidate).isFile();
350
+ }
351
+ catch {
352
+ return false;
353
+ }
354
+ };
355
+ if (binary.includes('/') || binary.includes('\\')) {
356
+ return isExecutable(binary);
357
+ }
358
+ const entries = (env.PATH ?? '').split(delimiter).filter(Boolean);
359
+ // PATHEXT matters on Windows, where `my-host` is really `my-host.cmd`.
360
+ const extensions = process.platform === 'win32'
361
+ ? ['', ...(env.PATHEXT ?? '.COM;.EXE;.BAT;.CMD').split(';').filter(Boolean)]
362
+ : [''];
363
+ return entries.some((dir) => extensions.some((ext) => isExecutable(join(dir, binary + ext))));
364
+ }
365
+ /**
366
+ * Flatten messages into a single prompt. A generic CLI has no role protocol,
367
+ * so system content is hoisted into a preamble — the same strategy
368
+ * `codex.ts` uses and the reason `message-formatter` falls back to
369
+ * `'first-message'` for unknown providers.
370
+ */
371
+ export function flattenPrompt(input, systemPrompt) {
372
+ if (typeof input === 'string') {
373
+ return systemPrompt ? `${systemPrompt}\n\n${input}` : input;
374
+ }
375
+ const systemParts = input.filter((m) => m.role === 'system').map((m) => m.content);
376
+ if (systemPrompt)
377
+ systemParts.unshift(systemPrompt);
378
+ const convo = input
379
+ .filter((m) => m.role !== 'system')
380
+ .map((m) => `${m.role === 'assistant' ? 'Assistant' : 'User'}: ${m.content}`)
381
+ .join('\n\n');
382
+ const preamble = systemParts.length > 0 ? `${systemParts.join('\n\n')}\n\n` : '';
383
+ return `${preamble}${convo}`;
384
+ }
385
+ //# sourceMappingURL=external-cli.js.map
@@ -8,7 +8,7 @@
8
8
  * - Tool/function calling support
9
9
  * - Cost calculation
10
10
  */
11
- import { createLLMError, } from '../interfaces';
11
+ import { createLLMError, } from '../interfaces.js';
12
12
  import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
13
13
  import { toError } from '../../error-utils.js';
14
14
  import { backoffDelay } from '../retry.js';
@@ -2,14 +2,14 @@
2
2
  * Agentic QE v3 - LLM Providers Index
3
3
  * Export all provider implementations
4
4
  */
5
- export { ClaudeProvider, DEFAULT_CLAUDE_CONFIG } from './claude';
6
- export { ClaudeCodeProvider, DEFAULT_CLAUDE_CODE_CONFIG, API_BILLING_ENV_VARS, } from './claude-code';
7
- export { CodexProvider, DEFAULT_CODEX_CONFIG, CODEX_DEFAULT_MODEL, } from './codex';
8
- export { CognitumProvider, DEFAULT_COGNITUM_CONFIG, } from './cognitum';
9
- export { OpenAIProvider, DEFAULT_OPENAI_CONFIG } from './openai';
10
- export { OllamaProvider, DEFAULT_OLLAMA_CONFIG } from './ollama';
11
- export { OpenRouterProvider, DEFAULT_OPENROUTER_CONFIG, OPENROUTER_PRICING, } from './openrouter';
12
- export { BedrockProvider, DEFAULT_BEDROCK_CONFIG, BEDROCK_MODEL_MAPPING, BEDROCK_MODEL_REVERSE_MAPPING, } from './bedrock';
13
- export { AzureOpenAIProvider, DEFAULT_AZURE_OPENAI_CONFIG, } from './azure-openai';
14
- export { GeminiProvider, DEFAULT_GEMINI_CONFIG, GEMINI_PRICING, } from './gemini';
5
+ export { ClaudeProvider, DEFAULT_CLAUDE_CONFIG } from './claude.js';
6
+ export { ClaudeCodeProvider, DEFAULT_CLAUDE_CODE_CONFIG, API_BILLING_ENV_VARS, } from './claude-code.js';
7
+ export { CodexProvider, DEFAULT_CODEX_CONFIG, CODEX_DEFAULT_MODEL, } from './codex.js';
8
+ export { CognitumProvider, DEFAULT_COGNITUM_CONFIG, } from './cognitum.js';
9
+ export { OpenAIProvider, DEFAULT_OPENAI_CONFIG } from './openai.js';
10
+ export { OllamaProvider, DEFAULT_OLLAMA_CONFIG } from './ollama.js';
11
+ export { OpenRouterProvider, DEFAULT_OPENROUTER_CONFIG, OPENROUTER_PRICING, } from './openrouter.js';
12
+ export { BedrockProvider, DEFAULT_BEDROCK_CONFIG, BEDROCK_MODEL_MAPPING, BEDROCK_MODEL_REVERSE_MAPPING, } from './bedrock.js';
13
+ export { AzureOpenAIProvider, DEFAULT_AZURE_OPENAI_CONFIG, } from './azure-openai.js';
14
+ export { GeminiProvider, DEFAULT_GEMINI_CONFIG, GEMINI_PRICING, } from './gemini.js';
15
15
  //# sourceMappingURL=index.js.map
@@ -5,8 +5,8 @@
5
5
  * Local LLM provider using Ollama for fast iteration and zero-cost development.
6
6
  * Supports Llama, Mistral, CodeLlama, and other local models.
7
7
  */
8
- import { createLLMError, } from '../interfaces';
9
- import { CostTracker } from '../cost-tracker';
8
+ import { createLLMError, } from '../interfaces.js';
9
+ import { CostTracker } from '../cost-tracker.js';
10
10
  import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
11
11
  import { resolveOllamaBaseUrl } from '../ollama-url.js';
12
12
  import { computeAdaptiveTimeoutMs } from './ollama-timeout.js';
@@ -5,8 +5,8 @@
5
5
  * Secondary LLM provider using OpenAI's API.
6
6
  * Supports GPT-4o, GPT-4-turbo, and GPT-3.5-turbo models.
7
7
  */
8
- import { createLLMError, } from '../interfaces';
9
- import { CostTracker } from '../cost-tracker';
8
+ import { createLLMError, } from '../interfaces.js';
9
+ import { CostTracker } from '../cost-tracker.js';
10
10
  import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
11
11
  import { toError } from '../../error-utils.js';
12
12
  import { backoffDelay } from '../retry.js';
@@ -9,7 +9,7 @@
9
9
  * - Cost calculation with OpenRouter pricing
10
10
  * - Automatic model routing
11
11
  */
12
- import { createLLMError, } from '../interfaces';
12
+ import { createLLMError, } from '../interfaces.js';
13
13
  import { TokenMetricsCollector } from '../../../learning/token-tracker.js';
14
14
  import { toError } from '../../error-utils.js';
15
15
  import { backoffDelay } from '../retry.js';
@@ -20,6 +20,20 @@
20
20
  import type { RouterConfig, ExtendedProviderType, AgentProviderOverride } from './types.js';
21
21
  /** Filename under .agentic-qe/ */
22
22
  export declare const ROUTER_CONFIG_FILENAME = "llm-config.json";
23
+ /**
24
+ * Can `ProviderManager.createProvider()` build this type? True for the
25
+ * built-in constructible set, and for any provider registered per ADR-127.
26
+ */
27
+ export declare function isRuntimeConstructible(provider: ExtendedProviderType): boolean;
28
+ /**
29
+ * Every provider type the router may legitimately be pointed at: the ones AQE
30
+ * ships plus the ones a downstream integrator registered (ADR-127).
31
+ *
32
+ * `ALL_PROVIDER_TYPES` deliberately stays frozen as "what AQE ships" — it is
33
+ * exported public API that consumers read — so validation paths call this
34
+ * instead of widening that constant at runtime.
35
+ */
36
+ export declare function allSelectableProviderTypes(): readonly ExtendedProviderType[];
23
37
  /**
24
38
  * Return the resolved config-file path for a project.
25
39
  * Caller may override projectRoot for tests; defaults to findProjectRoot().