agentic-qe 3.10.0 → 3.10.1

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 (371) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +72 -0
  3. package/README.md +35 -8
  4. package/dist/cli/bundle.js +5 -5
  5. package/dist/cli/chunks/adapter-3JS2CN7C.js +2 -0
  6. package/dist/cli/chunks/{agent-booster-wasm-5UDM2PWG.js → agent-booster-wasm-FZLWOPSX.js} +2 -2
  7. package/dist/cli/chunks/{agent-handler-JSYER5YC.js → agent-handler-KAGRVCKS.js} +2 -2
  8. package/dist/cli/chunks/{agent-memory-branch-T2SAHI4F.js → agent-memory-branch-JJKFEXQW.js} +2 -2
  9. package/dist/cli/chunks/aqe-learning-engine-Q4GFNGU6.js +2 -0
  10. package/dist/cli/chunks/{audit-HIBRVGXG.js → audit-DN5SY4JJ.js} +2 -2
  11. package/dist/cli/chunks/base-Q3MAL22Y.js +2 -0
  12. package/dist/cli/chunks/{hnswlib-node-TA4DZV62.js → better-sqlite3-XGPW4HK5.js} +2 -2
  13. package/dist/cli/chunks/{brain-handler-N6AWIMXG.js → brain-handler-O7MP5BGY.js} +3 -3
  14. package/dist/cli/chunks/{branch-enumerator-VYQGBVEJ.js → branch-enumerator-ZPTN5J6V.js} +2 -2
  15. package/dist/cli/chunks/{browser-2X4WKZPT.js → browser-PAZE2JSD.js} +2 -2
  16. package/dist/cli/chunks/browser-workflow-JX3M2UWG.js +2 -0
  17. package/dist/cli/chunks/{chunk-SGONA5GS.js → chunk-25QGPRWN.js} +2 -2
  18. package/dist/cli/chunks/{chunk-NT4PI5HI.js → chunk-2ETDES5W.js} +2 -2
  19. package/dist/cli/chunks/{chunk-UGX4EHT5.js → chunk-2KTRRSKD.js} +2 -2
  20. package/dist/cli/chunks/{chunk-UCIJCRPB.js → chunk-2S4XHK26.js} +2 -2
  21. package/dist/cli/chunks/{chunk-KNL3QWVA.js → chunk-2TDWCXZ6.js} +2 -2
  22. package/dist/cli/chunks/{chunk-HZPXOAFW.js → chunk-2UN4DOBJ.js} +2 -2
  23. package/dist/cli/chunks/{chunk-T7DLX3LS.js → chunk-32R7EA7B.js} +3 -3
  24. package/dist/cli/chunks/{chunk-CU4IUJ2K.js → chunk-3YOPJ7DY.js} +2 -2
  25. package/dist/cli/chunks/{chunk-55JPAF56.js → chunk-4AWJ5PE4.js} +1 -1
  26. package/dist/cli/chunks/{chunk-GPKZ4MMH.js → chunk-57NJQV57.js} +1 -1
  27. package/dist/cli/chunks/{chunk-G2HA2O3R.js → chunk-5EU2VQK3.js} +2 -2
  28. package/dist/cli/chunks/{chunk-BXCS55GB.js → chunk-5KFCH7RH.js} +1 -1
  29. package/dist/cli/chunks/{chunk-WC6KZDPM.js → chunk-5OTYBWRL.js} +2 -2
  30. package/dist/cli/chunks/{chunk-ALCQRJDY.js → chunk-5ZCVMR5E.js} +2 -2
  31. package/dist/cli/chunks/{chunk-FX4SYT6Y.js → chunk-622MIAOR.js} +3 -3
  32. package/dist/cli/chunks/{chunk-J5RJYFRM.js → chunk-6A2NIR2E.js} +2 -2
  33. package/dist/cli/chunks/{chunk-6F3WJOU2.js → chunk-6D57DWQ6.js} +2 -2
  34. package/dist/cli/chunks/{chunk-Z6JLPPAY.js → chunk-6E7GI2UB.js} +1 -1
  35. package/dist/cli/chunks/{chunk-M73IL7FA.js → chunk-6LRCMFLV.js} +2 -2
  36. package/dist/cli/chunks/{chunk-L4N6PTIC.js → chunk-6QFONVEE.js} +2 -2
  37. package/dist/cli/chunks/{chunk-6H5MRVJS.js → chunk-6VQ5MFJ6.js} +3 -3
  38. package/dist/cli/chunks/{chunk-JUICZG3T.js → chunk-6ZRMQXVL.js} +2 -2
  39. package/dist/cli/chunks/{chunk-RARSTEUO.js → chunk-7CKVAYP3.js} +1 -1
  40. package/dist/cli/chunks/{chunk-KDFW7MVM.js → chunk-7MSYTHZM.js} +2 -2
  41. package/dist/cli/chunks/{chunk-DY7IRNE2.js → chunk-7SQD2TTQ.js} +1 -1
  42. package/dist/cli/chunks/{chunk-IQNR662U.js → chunk-AABKTWXC.js} +2 -2
  43. package/dist/cli/chunks/{chunk-LYVFC7C7.js → chunk-AUVC3DDB.js} +2 -2
  44. package/dist/cli/chunks/{chunk-OWMGD7FO.js → chunk-BECU52UY.js} +3 -3
  45. package/dist/cli/chunks/chunk-BF7MUYWC.js +2 -0
  46. package/dist/cli/chunks/{chunk-BQT4J3BD.js → chunk-BGBSYF3K.js} +2 -2
  47. package/dist/cli/chunks/{chunk-TR7BZLB6.js → chunk-BN7ERYXI.js} +1 -1
  48. package/dist/cli/chunks/{chunk-DQJJS4AX.js → chunk-CKECJH2A.js} +2 -2
  49. package/dist/cli/chunks/{chunk-I4T4JPR2.js → chunk-COZDJLIL.js} +1 -1
  50. package/dist/cli/chunks/{chunk-URVDWF2Y.js → chunk-CR4ERDS2.js} +2 -2
  51. package/dist/cli/chunks/chunk-DMIYWPQQ.js +2 -0
  52. package/dist/cli/chunks/{chunk-Y4I5JBOL.js → chunk-DQIS6J77.js} +2 -2
  53. package/dist/cli/chunks/{chunk-7ZIRDBXH.js → chunk-DVOH75S4.js} +1 -1
  54. package/dist/cli/chunks/{chunk-Z2SCTEZD.js → chunk-EBQ6YKP2.js} +2 -2
  55. package/dist/cli/chunks/{chunk-2GL4GH52.js → chunk-ECPB7IAH.js} +4 -4
  56. package/dist/cli/chunks/{chunk-LQ3TA22E.js → chunk-EIROAH6N.js} +2 -2
  57. package/dist/cli/chunks/{chunk-UCXQQCIP.js → chunk-ELUERFGA.js} +2 -2
  58. package/dist/cli/chunks/{chunk-KOSKGZK4.js → chunk-ELZ67OHQ.js} +2 -2
  59. package/dist/cli/chunks/{chunk-WVCIZIKH.js → chunk-EO4B5GS4.js} +1 -1
  60. package/dist/cli/chunks/{chunk-HD6CZBZV.js → chunk-EUJHHXE6.js} +2 -2
  61. package/dist/cli/chunks/{chunk-KCHFF4IE.js → chunk-F3OVFA6W.js} +2 -2
  62. package/dist/cli/chunks/{chunk-7Y54QZKF.js → chunk-FJSR2U65.js} +2 -2
  63. package/dist/cli/chunks/{chunk-5QJDH4Z5.js → chunk-G3BQU3Q6.js} +2 -2
  64. package/dist/cli/chunks/{chunk-LDMG4372.js → chunk-G5DTENO3.js} +2 -2
  65. package/dist/cli/chunks/{chunk-JKVNZASH.js → chunk-GMKGLZJU.js} +2 -2
  66. package/dist/cli/chunks/{chunk-O3NAUNFC.js → chunk-GRG3OP34.js} +2 -2
  67. package/dist/cli/chunks/{chunk-3U77XX6J.js → chunk-GRYXNWPF.js} +4 -4
  68. package/dist/cli/chunks/{chunk-3QULDB7K.js → chunk-GTGONWGX.js} +1 -1
  69. package/dist/cli/chunks/{chunk-OGT45MZN.js → chunk-GTRXZJNX.js} +2 -2
  70. package/dist/cli/chunks/{chunk-TEJPHJMW.js → chunk-GXJ4BCGC.js} +2 -2
  71. package/dist/cli/chunks/{chunk-4NQ6KANC.js → chunk-H22MMMYY.js} +2 -2
  72. package/dist/cli/chunks/{chunk-VTIXFHZR.js → chunk-H44WD7QX.js} +2 -2
  73. package/dist/cli/chunks/{chunk-X4U5NYB6.js → chunk-HPNEZ7YN.js} +1 -1
  74. package/dist/cli/chunks/{chunk-FQ5FT7IE.js → chunk-HRDGN3OK.js} +1 -1
  75. package/dist/cli/chunks/{chunk-6HCHW5TS.js → chunk-IHDUWPFY.js} +2 -2
  76. package/dist/cli/chunks/{chunk-DQLEZBWV.js → chunk-IITKJCPK.js} +2 -2
  77. package/dist/cli/chunks/{chunk-VMJXNTJT.js → chunk-IJ4BUSJN.js} +4 -4
  78. package/dist/cli/chunks/{chunk-MJBXQXSX.js → chunk-IK6AJX3C.js} +1 -1
  79. package/dist/cli/chunks/{chunk-NLCUQMUR.js → chunk-IPRDHKSI.js} +2 -2
  80. package/dist/cli/chunks/{chunk-ZYZWBNKT.js → chunk-JLKHPIQF.js} +1 -1
  81. package/dist/cli/chunks/chunk-K22TPWOJ.js +3 -0
  82. package/dist/cli/chunks/{chunk-L3IFZ4IX.js → chunk-K4T3RDCB.js} +2 -2
  83. package/dist/cli/chunks/{chunk-XFUU2RCA.js → chunk-KCTH5MHE.js} +2 -2
  84. package/dist/cli/chunks/{chunk-L2AIES7X.js → chunk-KEC5FBAW.js} +1 -1
  85. package/dist/cli/chunks/{chunk-M4HDBRVJ.js → chunk-KKNBYXYA.js} +1 -1
  86. package/dist/cli/chunks/{chunk-5UOV7T36.js → chunk-KRXKU54J.js} +2 -2
  87. package/dist/cli/chunks/{provider-manager-HV55NIIO.js → chunk-KZJXVIAW.js} +13 -13
  88. package/dist/cli/chunks/{chunk-YHNEBCYQ.js → chunk-LF7URN2X.js} +2 -2
  89. package/dist/cli/chunks/{chunk-HD5NQDOL.js → chunk-MQYTW2IN.js} +2 -2
  90. package/dist/cli/chunks/{chunk-66GIKUI2.js → chunk-MVGVD6LS.js} +2 -2
  91. package/dist/cli/chunks/{chunk-M3M7HXDH.js → chunk-NDCPEXDN.js} +2 -2
  92. package/dist/cli/chunks/{chunk-RF6QKV7M.js → chunk-NOCYYXK4.js} +2 -2
  93. package/dist/cli/chunks/{chunk-U56TIYGP.js → chunk-NPSBMDVU.js} +2 -2
  94. package/dist/cli/chunks/{chunk-OUJJ34JH.js → chunk-NQZYUH6S.js} +1 -1
  95. package/dist/cli/chunks/{chunk-F363JJUI.js → chunk-NRLT44YB.js} +1 -1
  96. package/dist/cli/chunks/{chunk-27ACATRH.js → chunk-OC3OJWLB.js} +2 -2
  97. package/dist/cli/chunks/{chunk-XFMSHTXG.js → chunk-OQP5OFRR.js} +1 -1
  98. package/dist/cli/chunks/{chunk-RGONSQ44.js → chunk-OVENSL64.js} +210 -210
  99. package/dist/cli/chunks/{chunk-DXV6NRG3.js → chunk-P7T5Y735.js} +2 -2
  100. package/dist/cli/chunks/{chunk-QU54GUEA.js → chunk-PLRSKAFZ.js} +2 -2
  101. package/dist/cli/chunks/{chunk-NWHSEXHA.js → chunk-PUXDXIUE.js} +1 -1
  102. package/dist/cli/chunks/{chunk-RH3PHCJT.js → chunk-PW6MOFXG.js} +2 -2
  103. package/dist/cli/chunks/{chunk-3BO7EKGO.js → chunk-PXFQSVA2.js} +3 -3
  104. package/dist/cli/chunks/{chunk-UE3XXKLN.js → chunk-Q24OJX44.js} +2 -2
  105. package/dist/cli/chunks/{chunk-LXHA55EB.js → chunk-Q5VHBI4U.js} +1 -1
  106. package/dist/cli/chunks/{chunk-OKGK7DBT.js → chunk-QNW335PD.js} +2 -2
  107. package/dist/cli/chunks/{chunk-S4CNA6Z5.js → chunk-RPL6K623.js} +3 -3
  108. package/dist/cli/chunks/{chunk-FCSJ7GIZ.js → chunk-RRLQFFCO.js} +4 -4
  109. package/dist/cli/chunks/{chunk-W6U7SIIK.js → chunk-RWYW573C.js} +3 -3
  110. package/dist/cli/chunks/{chunk-BTIVIWIG.js → chunk-SLNGJW4G.js} +1 -1
  111. package/dist/cli/chunks/{chunk-P6XYFDXN.js → chunk-SQBB2DC6.js} +1 -1
  112. package/dist/cli/chunks/{chunk-SCYF5CQA.js → chunk-T3UXMPXX.js} +1 -1
  113. package/dist/cli/chunks/{chunk-C5QESAYA.js → chunk-TFNLXAK5.js} +1 -1
  114. package/dist/cli/chunks/{chunk-ZFBMBCKN.js → chunk-TL5F2S3Z.js} +2 -2
  115. package/dist/cli/chunks/{chunk-HIWBW4IQ.js → chunk-TNGGVMPQ.js} +1 -1
  116. package/dist/cli/chunks/{chunk-5RQT7EJP.js → chunk-TNVYKYTO.js} +3 -3
  117. package/dist/cli/chunks/{chunk-4WYGUTSF.js → chunk-TP77PNN6.js} +2 -2
  118. package/dist/cli/chunks/{chunk-WG6I7YF3.js → chunk-TX7SNQKL.js} +1 -1
  119. package/dist/cli/chunks/{chunk-WLLE54TA.js → chunk-UDFLR7GR.js} +1 -1
  120. package/dist/cli/chunks/{chunk-KYLJERZ3.js → chunk-UDVX34ZG.js} +2 -2
  121. package/dist/cli/chunks/{chunk-YYDHTBHE.js → chunk-UU2Q6XWF.js} +1 -1
  122. package/dist/cli/chunks/{chunk-JCKX2LEJ.js → chunk-VKRMVTWU.js} +49 -49
  123. package/dist/cli/chunks/{chunk-AFFYJSW2.js → chunk-VOIWDPIU.js} +2 -2
  124. package/dist/cli/chunks/chunk-VPCE5CIT.js +2 -0
  125. package/dist/cli/chunks/{chunk-4UUDFWOP.js → chunk-W2DT3CDE.js} +2 -2
  126. package/dist/cli/chunks/{chunk-VTO5O7DA.js → chunk-W6ZF2CPN.js} +1 -1
  127. package/dist/cli/chunks/{chunk-BQX5QDU5.js → chunk-WDTCCPK4.js} +1 -1
  128. package/dist/cli/chunks/{chunk-PNDO4W4L.js → chunk-WL2J6ECN.js} +2 -2
  129. package/dist/cli/chunks/chunk-WMG5F6R6.js +2 -0
  130. package/dist/cli/chunks/{chunk-QL3U5VSM.js → chunk-WO7KYT3X.js} +2 -2
  131. package/dist/cli/chunks/{chunk-S33246T4.js → chunk-WPNZSL4S.js} +1 -1
  132. package/dist/cli/chunks/{chunk-IBXNBLGM.js → chunk-WQEZKAUR.js} +2 -2
  133. package/dist/cli/chunks/{chunk-3OSCWD7Z.js → chunk-WS4XVJHI.js} +1 -1
  134. package/dist/cli/chunks/{chunk-GXCD7GNH.js → chunk-XGUQYVJR.js} +2 -2
  135. package/dist/cli/chunks/{chunk-I4E6CLC4.js → chunk-XKOKMS5A.js} +2 -2
  136. package/dist/cli/chunks/{chunk-ZCNVFULO.js → chunk-XRK7FBTY.js} +2 -2
  137. package/dist/cli/chunks/{chunk-FEBXP74Y.js → chunk-Y2DPXMOR.js} +1 -1
  138. package/dist/cli/chunks/{chunk-MF3XRML3.js → chunk-Y357YFLF.js} +2 -2
  139. package/dist/cli/chunks/{chunk-LRISVDVO.js → chunk-YGRTMAWB.js} +1 -1
  140. package/dist/cli/chunks/{chunk-VEOQH4W6.js → chunk-YPOTBXPU.js} +2 -2
  141. package/dist/cli/chunks/{chunk-2POXDKUB.js → chunk-YYWIA5FX.js} +1 -1
  142. package/dist/cli/chunks/{chunk-QWBO76AU.js → chunk-ZEMXMDD3.js} +2 -2
  143. package/dist/cli/chunks/{chunk-V5TRAL57.js → chunk-ZTMWJQTZ.js} +2 -2
  144. package/dist/cli/chunks/{ci-7TR4NQ5I.js → ci-EHRUN7O6.js} +2 -2
  145. package/dist/cli/chunks/{ci-output-SLTICF3O.js → ci-output-EXDXVXKB.js} +2 -2
  146. package/dist/cli/chunks/{circuit-breaker-7GVVTMBY.js → circuit-breaker-LM4QRAAL.js} +2 -2
  147. package/dist/cli/chunks/{claude-flow-setup-TYCWYEMM.js → claude-flow-setup-ZHUCZVW7.js} +2 -2
  148. package/dist/cli/chunks/client-PA3UJIHH.js +2 -0
  149. package/dist/cli/chunks/{cline-installer-ESIAJOLK.js → cline-installer-WMFLQOW2.js} +2 -2
  150. package/dist/cli/chunks/{code-I42JGOVI.js → code-L7KRLU5E.js} +2 -2
  151. package/dist/cli/chunks/{code-index-extractor-2CCXPCQW.js → code-index-extractor-FTMUYQC6.js} +2 -2
  152. package/dist/cli/chunks/{codex-installer-HEZRDNUT.js → codex-installer-B3F6WI3Z.js} +2 -2
  153. package/dist/cli/chunks/{completions-44HLIZGI.js → completions-3JZQRNB6.js} +2 -2
  154. package/dist/cli/chunks/{complexity-analyzer-SOCSFDVO.js → complexity-analyzer-LB2FFEKX.js} +2 -2
  155. package/dist/cli/chunks/{continuedev-installer-Q7O4HLIM.js → continuedev-installer-WH6IMV7R.js} +2 -2
  156. package/dist/cli/chunks/{copilot-installer-GIWCVLCS.js → copilot-installer-NOIEOFJM.js} +2 -2
  157. package/dist/cli/chunks/{cost-tracker-G7BONKEV.js → cost-tracker-IKX2VYSA.js} +2 -2
  158. package/dist/cli/chunks/{coverage-5TWVP7KY.js → coverage-TD37CYSY.js} +3 -3
  159. package/dist/cli/chunks/cross-domain-router-BVJRP2ZX.js +2 -0
  160. package/dist/cli/chunks/{cursor-installer-43EQZSB5.js → cursor-installer-4NSVGRM5.js} +2 -2
  161. package/dist/cli/chunks/{daemon-ZXHFRDKG.js → daemon-LYDV7NRW.js} +3 -3
  162. package/dist/cli/chunks/{daemon-QQZE4BU2.js → daemon-UWEBUIDT.js} +4 -4
  163. package/dist/cli/chunks/{dag-attention-scheduler-GOZAVAZQ.js → dag-attention-scheduler-NECJGCHC.js} +2 -2
  164. package/dist/cli/chunks/{detect-X777GVJ4.js → detect-4XGC7ILO.js} +2 -2
  165. package/dist/cli/chunks/{dist-node-EZZK46TB.js → dist-node-GGJDXRKJ.js} +2 -2
  166. package/dist/cli/chunks/{domain-handler-ZT32DKYY.js → domain-handler-UOFONAUT.js} +2 -2
  167. package/dist/cli/chunks/{domain-transfer-LHQVSLJW.js → domain-transfer-6JLNOYPA.js} +2 -2
  168. package/dist/cli/chunks/dream-BXZUEIW2.js +2 -0
  169. package/dist/cli/chunks/{embed-and-insert-pattern-XFYPPWG7.js → embed-and-insert-pattern-ZM75DQ4J.js} +2 -2
  170. package/dist/cli/chunks/{eval-V4NYJZUZ.js → eval-CYZJTHEB.js} +2 -2
  171. package/dist/cli/chunks/{experience-capture-middleware-HXX2W4GL.js → experience-capture-middleware-RBOJLDUB.js} +3 -3
  172. package/dist/cli/chunks/{fast-paths-RBPWQSFJ.js → fast-paths-S5BWZR3L.js} +2 -2
  173. package/dist/cli/chunks/{feature-flags-NX5EXRO3.js → feature-flags-6E7H3NYP.js} +2 -2
  174. package/dist/cli/chunks/{feature-flags-INJJZBMN.js → feature-flags-DUNQPDU3.js} +2 -2
  175. package/dist/cli/chunks/{file-discovery-SNFSG6NK.js → file-discovery-PFFKDGYG.js} +2 -2
  176. package/dist/cli/chunks/{fleet-6SDN4UWE.js → fleet-RCDZZFXN.js} +3 -3
  177. package/dist/cli/chunks/{gnn-wrapper-2JDRTDDK.js → gnn-wrapper-5AG3WDWF.js} +2 -2
  178. package/dist/cli/chunks/{heartbeat-handler-QLK6E7KA.js → heartbeat-handler-O2KAEX4Y.js} +4 -4
  179. package/dist/cli/chunks/heartbeat-scheduler-LEKAWFJF.js +2 -0
  180. package/dist/cli/chunks/hnsw-adapter-2TCEG5M2.js +2 -0
  181. package/dist/cli/chunks/hnsw-index-VDPUTEES.js +2 -0
  182. package/dist/cli/chunks/{hnsw-legacy-bridge-Q2ZEZQKB.js → hnsw-legacy-bridge-C7FG6YGW.js} +2 -2
  183. package/dist/cli/chunks/{better-sqlite3-Y6GX6CGB.js → hnswlib-node-YX6OOBN6.js} +2 -2
  184. package/dist/cli/chunks/{hooks-D4YENHO2.js → hooks-FUHNE2P7.js} +10 -10
  185. package/dist/cli/chunks/hybrid-router-2EMDIYIG.js +2 -0
  186. package/dist/cli/chunks/{hypergraph-engine-G72U446M.js → hypergraph-engine-LQRYBNPV.js} +2 -2
  187. package/dist/cli/chunks/{hypergraph-handler-TRZ5FDRH.js → hypergraph-handler-AFFNLZVD.js} +3 -3
  188. package/dist/cli/chunks/impact-analyzer-HFD6CPWC.js +2 -0
  189. package/dist/cli/chunks/{init-handler-3ZD4GCT4.js → init-handler-BQ6IDBX4.js} +6 -6
  190. package/dist/cli/chunks/init-wizard-552QIVRC.js +2 -0
  191. package/dist/cli/chunks/kernel-5DN6O6EE.js +2 -0
  192. package/dist/cli/chunks/{kilocode-installer-AXSIW3XW.js → kilocode-installer-KS72HUSG.js} +2 -2
  193. package/dist/cli/chunks/{kiro-installer-JQGIFWBK.js → kiro-installer-2ZEFLGRX.js} +2 -2
  194. package/dist/cli/chunks/knowledge-graph-76Y77MB6.js +2 -0
  195. package/dist/cli/chunks/{learning-SPO7TGWX.js → learning-GGHGJ6B6.js} +3 -3
  196. package/dist/cli/chunks/llm-router-LP6K5BJF.js +36 -0
  197. package/dist/cli/chunks/llm-router-service-4O6GCEFH.js +2 -0
  198. package/dist/cli/chunks/{load-XIDDK64U.js → load-2MLKXOT2.js} +2 -2
  199. package/dist/cli/chunks/load-test-FCI2IWRJ.js +2 -0
  200. package/dist/cli/chunks/{mcp-3JXRGXO4.js → mcp-CDJBJG5H.js} +2 -2
  201. package/dist/cli/chunks/{memory-A66KRS2P.js → memory-4LAX7JZS.js} +5 -5
  202. package/dist/cli/chunks/memory-backend-MKNCBNDE.js +2 -0
  203. package/dist/cli/chunks/memory-handlers-OBAFR4WV.js +2 -0
  204. package/dist/cli/chunks/{multi-model-executor-XCDGUVCE.js → multi-model-executor-SLJV73HE.js} +2 -2
  205. package/dist/cli/chunks/{opencode-installer-GELXWLF2.js → opencode-installer-M76SONWV.js} +2 -2
  206. package/dist/cli/chunks/{orchestrator-CCS3K6NH.js → orchestrator-TJPUDJMP.js} +5 -5
  207. package/dist/cli/chunks/{pipeline-Z5C72H5S.js → pipeline-2PVNFT6J.js} +2 -2
  208. package/dist/cli/chunks/{platform-4AK7XJ3Y.js → platform-KCSEDKEE.js} +2 -2
  209. package/dist/cli/chunks/{plugin-7RYBIZI7.js → plugin-QX47QF5U.js} +2 -2
  210. package/dist/cli/chunks/{prime-radiant-advanced-wasm-E5PARKRX.js → prime-radiant-advanced-wasm-L6VWL7VR.js} +2 -2
  211. package/dist/cli/chunks/protocol-executor-IA7WNT23.js +2 -0
  212. package/dist/cli/chunks/{protocol-handler-R6QJQFNL.js → protocol-handler-WDNJDEUE.js} +2 -2
  213. package/dist/cli/chunks/{prove-7ESQ2YAL.js → prove-3B75DA3S.js} +2 -2
  214. package/dist/cli/chunks/provider-manager-3K5KB5A6.js +2 -0
  215. package/dist/cli/chunks/qe-reasoning-bank-V5Z3BBYY.js +2 -0
  216. package/dist/cli/chunks/{quality-4UE345QA.js → quality-UGASS5WM.js} +2 -2
  217. package/dist/cli/chunks/queen-coordinator-QOMPA27Z.js +2 -0
  218. package/dist/cli/chunks/{real-embeddings-TYIVN3N5.js → real-embeddings-COBP2LHS.js} +2 -2
  219. package/dist/cli/chunks/{roocode-installer-2KOANC47.js → roocode-installer-TOZ4VLFT.js} +2 -2
  220. package/dist/cli/chunks/router-P5RZUPC4.js +2 -0
  221. package/dist/cli/chunks/routing-feedback-3PS3OZQC.js +2 -0
  222. package/dist/cli/chunks/{routing-handler-JFEYTN7T.js → routing-handler-5TDVSILX.js} +2 -2
  223. package/dist/cli/chunks/{ruvector-commands-KSLSZRJX.js → ruvector-commands-AM63KWQN.js} +2 -2
  224. package/dist/cli/chunks/{rvf-dual-writer-EPBL226J.js → rvf-dual-writer-UANIFE2M.js} +2 -2
  225. package/dist/cli/chunks/{rvf-migration-adapter-25KSI6SF.js → rvf-migration-adapter-LNPYWAPI.js} +2 -2
  226. package/dist/cli/chunks/{rvf-migration-coordinator-2XBYHPZP.js → rvf-migration-coordinator-U47L63DQ.js} +2 -2
  227. package/dist/cli/chunks/rvf-native-adapter-TT7OJPKM.js +2 -0
  228. package/dist/cli/chunks/safe-db-PEW7VBAE.js +2 -0
  229. package/dist/cli/chunks/schedule-QHOTHBQE.js +2 -0
  230. package/dist/cli/chunks/scheduler-KXJBYTRT.js +2 -0
  231. package/dist/cli/chunks/{security-4XWYKI4O.js → security-KDQ2AH7G.js} +3 -3
  232. package/dist/cli/chunks/{shared-rvf-adapter-WRZ3HGDQ.js → shared-rvf-adapter-5MAGLLYJ.js} +2 -2
  233. package/dist/cli/chunks/{shared-rvf-dual-writer-DX2N5STR.js → shared-rvf-dual-writer-GF2OPPM5.js} +2 -2
  234. package/dist/cli/chunks/sqlite-persistence-TPXJK34J.js +2 -0
  235. package/dist/cli/chunks/{status-handler-V75OSXMQ.js → status-handler-XZKEL7LO.js} +2 -2
  236. package/dist/cli/chunks/{structural-health-TLX3JHZ6.js → structural-health-27QKWW25.js} +2 -2
  237. package/dist/cli/chunks/{sync-DXZFMVZQ.js → sync-INNKS6UK.js} +2 -2
  238. package/dist/cli/chunks/{sync-KGBEXUF7.js → sync-V3HGPEJT.js} +2 -2
  239. package/dist/cli/chunks/{task-handler-T3OJ6R7H.js → task-handler-LDUVOM6G.js} +2 -2
  240. package/dist/cli/chunks/{task-handlers-NJYR54AS.js → task-handlers-HTCPV7OO.js} +3 -3
  241. package/dist/cli/chunks/{test-KMVDNNQA.js → test-PCUVGVJL.js} +4 -4
  242. package/dist/cli/chunks/{test-scheduling-R5EQ2XGV.js → test-scheduling-GYVXWCAA.js} +3 -3
  243. package/dist/cli/chunks/{token-bootstrap-PFKVV3RO.js → token-bootstrap-MJ2ANC4P.js} +2 -2
  244. package/dist/cli/chunks/{token-usage-ZLOGA6LR.js → token-usage-ZREHROTF.js} +2 -2
  245. package/dist/cli/chunks/{transformers-TNPSPQI3.js → transformers-6B3FWFYL.js} +2 -2
  246. package/dist/cli/chunks/{tree-sitter-wasm-parser-A2EEB5BF.js → tree-sitter-wasm-parser-JVV234MN.js} +2 -2
  247. package/dist/cli/chunks/{types-DIXPI4NR.js → types-MVZTJI2F.js} +2 -2
  248. package/dist/cli/chunks/unified-memory-ROS2NKR5.js +2 -0
  249. package/dist/cli/chunks/unified-memory-hnsw-FLEUF3XO.js +2 -0
  250. package/dist/cli/chunks/unified-persistence-QC5L7UNQ.js +2 -0
  251. package/dist/cli/chunks/{upgrade-LX5KP6VO.js → upgrade-MKTFEILD.js} +2 -2
  252. package/dist/cli/chunks/{validate-3L6F7M36.js → validate-IABGALSW.js} +2 -2
  253. package/dist/cli/chunks/{validate-swarm-FD42ZKAQ.js → validate-swarm-RHF53RF6.js} +2 -2
  254. package/dist/cli/chunks/{vibium-GSBSJR53.js → vibium-RAKW6FMF.js} +2 -2
  255. package/dist/cli/chunks/visual-security-NLIOUQCR.js +2 -0
  256. package/dist/cli/chunks/{web-tree-sitter-TXHMO4BW.js → web-tree-sitter-PYK7F4JZ.js} +2 -2
  257. package/dist/cli/chunks/{windsurf-installer-3EUZ6RD3.js → windsurf-installer-S3U2HWZ4.js} +2 -2
  258. package/dist/cli/chunks/{witness-chain-ONAUEJ4M.js → witness-chain-435NKQLB.js} +2 -2
  259. package/dist/cli/chunks/witness-chain-U7X6JX5J.js +2 -0
  260. package/dist/cli/chunks/{workflow-E7A6BV4C.js → workflow-5UHJCZ6J.js} +4 -4
  261. package/dist/cli/chunks/workflow-orchestrator-APE6BAXH.js +2 -0
  262. package/dist/cli/chunks/{wrappers-AHHAQJM3.js → wrappers-RD3NCMLK.js} +2 -2
  263. package/dist/cli/commands/llm-router.js +83 -26
  264. package/dist/domains/chaos-resilience/coordinator.d.ts +2 -1
  265. package/dist/domains/chaos-resilience/coordinator.js +3 -2
  266. package/dist/domains/chaos-resilience/plugin.d.ts +4 -2
  267. package/dist/domains/chaos-resilience/plugin.js +8 -5
  268. package/dist/domains/code-intelligence/coordinator.d.ts +2 -1
  269. package/dist/domains/code-intelligence/coordinator.js +3 -2
  270. package/dist/domains/code-intelligence/plugin.d.ts +4 -2
  271. package/dist/domains/code-intelligence/plugin.js +8 -5
  272. package/dist/domains/contract-testing/coordinator.d.ts +2 -1
  273. package/dist/domains/contract-testing/coordinator.js +3 -2
  274. package/dist/domains/contract-testing/plugin.d.ts +4 -2
  275. package/dist/domains/contract-testing/plugin.js +8 -5
  276. package/dist/domains/coverage-analysis/coordinator.d.ts +2 -1
  277. package/dist/domains/coverage-analysis/coordinator.js +4 -3
  278. package/dist/domains/coverage-analysis/plugin.d.ts +3 -2
  279. package/dist/domains/coverage-analysis/plugin.js +4 -4
  280. package/dist/domains/defect-intelligence/coordinator.d.ts +2 -1
  281. package/dist/domains/defect-intelligence/coordinator.js +4 -3
  282. package/dist/domains/defect-intelligence/plugin.d.ts +4 -2
  283. package/dist/domains/defect-intelligence/plugin.js +9 -6
  284. package/dist/domains/learning-optimization/coordinator.d.ts +2 -1
  285. package/dist/domains/learning-optimization/coordinator.js +3 -2
  286. package/dist/domains/learning-optimization/plugin.d.ts +4 -2
  287. package/dist/domains/learning-optimization/plugin.js +8 -5
  288. package/dist/domains/quality-assessment/coordinator.d.ts +2 -1
  289. package/dist/domains/quality-assessment/coordinator.js +4 -3
  290. package/dist/domains/quality-assessment/plugin.d.ts +4 -2
  291. package/dist/domains/quality-assessment/plugin.js +10 -6
  292. package/dist/domains/requirements-validation/coordinator.d.ts +2 -1
  293. package/dist/domains/requirements-validation/coordinator.js +3 -2
  294. package/dist/domains/requirements-validation/plugin.d.ts +4 -2
  295. package/dist/domains/requirements-validation/plugin.js +8 -5
  296. package/dist/domains/security-compliance/coordinator.d.ts +2 -1
  297. package/dist/domains/security-compliance/coordinator.js +4 -2
  298. package/dist/domains/security-compliance/plugin.d.ts +4 -2
  299. package/dist/domains/security-compliance/plugin.js +11 -6
  300. package/dist/domains/test-execution/coordinator.d.ts +3 -2
  301. package/dist/domains/test-execution/coordinator.js +6 -5
  302. package/dist/domains/test-execution/plugin.d.ts +4 -2
  303. package/dist/domains/test-execution/plugin.js +6 -4
  304. package/dist/domains/test-generation/coordinator.d.ts +2 -1
  305. package/dist/domains/test-generation/coordinator.js +4 -3
  306. package/dist/domains/test-generation/plugin.d.ts +4 -2
  307. package/dist/domains/test-generation/plugin.js +12 -7
  308. package/dist/domains/visual-accessibility/coordinator.d.ts +2 -1
  309. package/dist/domains/visual-accessibility/coordinator.js +4 -3
  310. package/dist/domains/visual-accessibility/plugin.d.ts +4 -2
  311. package/dist/domains/visual-accessibility/plugin.js +9 -6
  312. package/dist/kernel/interfaces.d.ts +37 -0
  313. package/dist/kernel/kernel.d.ts +39 -0
  314. package/dist/kernel/kernel.js +157 -17
  315. package/dist/mcp/bundle.js +417 -395
  316. package/dist/mcp/qe-tool-bridge.js +8 -1
  317. package/dist/mcp/tools/base.d.ts +56 -0
  318. package/dist/mcp/tools/base.js +104 -1
  319. package/dist/mcp/tools/chaos-resilience/inject.js +4 -2
  320. package/dist/mcp/tools/code-intelligence/analyze.js +5 -3
  321. package/dist/mcp/tools/contract-testing/validate.js +4 -2
  322. package/dist/mcp/tools/coverage-analysis/index.js +11 -5
  323. package/dist/mcp/tools/defect-intelligence/predict.js +5 -10
  324. package/dist/mcp/tools/learning-optimization/optimize.js +4 -2
  325. package/dist/mcp/tools/registry.js +8 -1
  326. package/dist/mcp/tools/test-generation/generate.js +10 -6
  327. package/dist/mcp/tools/visual-accessibility/index.js +7 -4
  328. package/dist/shared/llm/llm-router-service.d.ts +77 -0
  329. package/dist/shared/llm/llm-router-service.js +166 -0
  330. package/dist/shared/llm/providers/gemini.js +5 -2
  331. package/dist/shared/llm/router/config-store.d.ts +89 -0
  332. package/dist/shared/llm/router/config-store.js +261 -0
  333. package/dist/shared/llm/router/hybrid-router.js +33 -11
  334. package/package.json +1 -1
  335. package/dist/cli/chunks/adapter-WTE6UVGP.js +0 -2
  336. package/dist/cli/chunks/aqe-learning-engine-LCLEBU7D.js +0 -2
  337. package/dist/cli/chunks/base-73I73HBF.js +0 -2
  338. package/dist/cli/chunks/browser-workflow-2NSV5O6W.js +0 -2
  339. package/dist/cli/chunks/chunk-6MONUYQ5.js +0 -2
  340. package/dist/cli/chunks/chunk-X73CRYF4.js +0 -2
  341. package/dist/cli/chunks/client-7GB4WWUD.js +0 -2
  342. package/dist/cli/chunks/cross-domain-router-7HQ74TLE.js +0 -2
  343. package/dist/cli/chunks/dream-G5SEFHI4.js +0 -2
  344. package/dist/cli/chunks/heartbeat-scheduler-NG7BY3FR.js +0 -2
  345. package/dist/cli/chunks/hnsw-adapter-TDSLUI7K.js +0 -2
  346. package/dist/cli/chunks/hnsw-index-OWLQSOQH.js +0 -2
  347. package/dist/cli/chunks/hybrid-router-URU2XLBD.js +0 -2
  348. package/dist/cli/chunks/impact-analyzer-NMTN75KA.js +0 -2
  349. package/dist/cli/chunks/init-wizard-SHBFYGBV.js +0 -2
  350. package/dist/cli/chunks/kernel-7KVY2JGO.js +0 -2
  351. package/dist/cli/chunks/knowledge-graph-V4G5J5B7.js +0 -2
  352. package/dist/cli/chunks/llm-router-G6N2OKDA.js +0 -36
  353. package/dist/cli/chunks/load-test-N4RNPLG4.js +0 -2
  354. package/dist/cli/chunks/memory-backend-HPGJ5YDQ.js +0 -2
  355. package/dist/cli/chunks/memory-handlers-K33YVCVQ.js +0 -2
  356. package/dist/cli/chunks/protocol-executor-GNVWUJUP.js +0 -2
  357. package/dist/cli/chunks/qe-reasoning-bank-DDSBHO6D.js +0 -2
  358. package/dist/cli/chunks/queen-coordinator-BQJ5O63C.js +0 -2
  359. package/dist/cli/chunks/router-C2RKWB7J.js +0 -2
  360. package/dist/cli/chunks/routing-feedback-RHATTSJ6.js +0 -2
  361. package/dist/cli/chunks/rvf-native-adapter-QG4CXHLL.js +0 -2
  362. package/dist/cli/chunks/safe-db-A4KQ2IDB.js +0 -2
  363. package/dist/cli/chunks/schedule-O7MLASQT.js +0 -2
  364. package/dist/cli/chunks/scheduler-HT7RNYQ2.js +0 -2
  365. package/dist/cli/chunks/sqlite-persistence-4NNKJ6CQ.js +0 -2
  366. package/dist/cli/chunks/unified-memory-CMNJVHOJ.js +0 -2
  367. package/dist/cli/chunks/unified-memory-hnsw-JQLU2KI6.js +0 -2
  368. package/dist/cli/chunks/unified-persistence-I25TEDIU.js +0 -2
  369. package/dist/cli/chunks/visual-security-AJJIEV5V.js +0 -2
  370. package/dist/cli/chunks/witness-chain-762QQBTN.js +0 -2
  371. package/dist/cli/chunks/workflow-orchestrator-ZGPYISKY.js +0 -2
@@ -14,14 +14,16 @@ import { ComplianceValidatorService, } from './services/compliance-validator.js'
14
14
  // ============================================================================
15
15
  export class SecurityCompliancePlugin extends BaseDomainPlugin {
16
16
  agentCoordinator;
17
+ llmRouter;
17
18
  coordinator = null;
18
19
  securityScanner = null;
19
20
  securityAuditor = null;
20
21
  complianceValidator = null;
21
22
  pluginConfig;
22
- constructor(eventBus, memory, agentCoordinator, config = {}) {
23
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
23
24
  super(eventBus, memory);
24
25
  this.agentCoordinator = agentCoordinator;
26
+ this.llmRouter = llmRouter;
25
27
  this.pluginConfig = config;
26
28
  }
27
29
  // ==========================================================================
@@ -126,12 +128,15 @@ export class SecurityCompliancePlugin extends BaseDomainPlugin {
126
128
  // Lifecycle Methods
127
129
  // ==========================================================================
128
130
  async onInitialize() {
129
- // Create services
130
- this.securityScanner = new SecurityScannerService(this.memory, this.pluginConfig.securityScanner);
131
+ // Create services.
132
+ // ADR-043 wiring: SecurityScannerService accepts a dependency bag
133
+ // form that includes llmRouter — this is what makes
134
+ // SASTScanner.isLLMAnalysisAvailable() return true in production.
135
+ this.securityScanner = new SecurityScannerService({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.securityScanner);
131
136
  this.securityAuditor = new SecurityAuditorService(this.memory, this.pluginConfig.securityAuditor);
132
137
  this.complianceValidator = new ComplianceValidatorService(this.memory, this.pluginConfig.complianceValidator);
133
138
  // Create coordinator
134
- this.coordinator = new SecurityComplianceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator);
139
+ this.coordinator = new SecurityComplianceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.llmRouter);
135
140
  // Initialize coordinator
136
141
  await this.coordinator.initialize();
137
142
  // Issue #205 fix: Start with 'idle' status (0 agents)
@@ -361,7 +366,7 @@ export class SecurityCompliancePlugin extends BaseDomainPlugin {
361
366
  // ============================================================================
362
367
  // Factory Function
363
368
  // ============================================================================
364
- export function createSecurityCompliancePlugin(eventBus, memory, agentCoordinator, config) {
365
- return new SecurityCompliancePlugin(eventBus, memory, agentCoordinator, config);
369
+ export function createSecurityCompliancePlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
370
+ return new SecurityCompliancePlugin(eventBus, memory, agentCoordinator, config, llmRouter);
366
371
  }
367
372
  //# sourceMappingURL=plugin.js.map
@@ -5,6 +5,7 @@
5
5
  import { Result } from '../../shared/types';
6
6
  import { TestExecutionAPI, SimpleTestRequest, ExecuteTestsRequest, ParallelExecutionRequest, TestRunResult, FlakyDetectionRequest, FlakyTestReport, RetryRequest, RetryResult, ExecutionStats } from './interfaces';
7
7
  import { EventBus, MemoryBackend } from '../../kernel/interfaces';
8
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
8
9
  import { TestExecutorConfig } from './services/test-executor';
9
10
  import { FlakyDetectorConfig } from './services/flaky-detector';
10
11
  import { RetryHandlerConfig } from './services/retry-handler';
@@ -105,7 +106,7 @@ export declare class TestExecutionCoordinator extends BaseDomainCoordinator<Test
105
106
  private readonly prioritizer;
106
107
  private readonly e2eRunner?;
107
108
  private readonly activeRuns;
108
- constructor(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig>);
109
+ constructor(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig>, llmRouter?: HybridRouter);
109
110
  protected onInitialize(): Promise<void>;
110
111
  protected onDispose(): Promise<void>;
111
112
  /**
@@ -254,5 +255,5 @@ export declare class TestExecutionCoordinator extends BaseDomainCoordinator<Test
254
255
  */
255
256
  private verifyTestFailureAnalysis;
256
257
  }
257
- export declare function createTestExecutionCoordinator(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig>): ITestExecutionCoordinator;
258
+ export declare function createTestExecutionCoordinator(eventBus: EventBus, memory: MemoryBackend, config?: Partial<TestExecutionCoordinatorConfig>, llmRouter?: HybridRouter): ITestExecutionCoordinator;
258
259
  //# sourceMappingURL=coordinator.d.ts.map
@@ -44,7 +44,7 @@ export class TestExecutionCoordinator extends BaseDomainCoordinator {
44
44
  prioritizer;
45
45
  e2eRunner;
46
46
  activeRuns = new Set();
47
- constructor(eventBus, memory, config = {}) {
47
+ constructor(eventBus, memory, config = {}, llmRouter) {
48
48
  const fullConfig = {
49
49
  ...DEFAULT_COORDINATOR_CONFIG,
50
50
  ...config,
@@ -54,8 +54,9 @@ export class TestExecutionCoordinator extends BaseDomainCoordinator {
54
54
  ...fullConfig.consensusConfig,
55
55
  });
56
56
  this.memory = memory;
57
- // Create services with appropriate configuration
58
- this.executor = new TestExecutorService({ memory }, {
57
+ // ADR-043 wiring: pass llmRouter into TestExecutorService so its
58
+ // ADR-051 analyzeFailuresWithLLM branch becomes reachable.
59
+ this.executor = new TestExecutorService({ memory, llmRouter }, {
59
60
  simulateForTesting: fullConfig.simulateForTesting,
60
61
  ...fullConfig.executorConfig,
61
62
  });
@@ -945,7 +946,7 @@ export class TestExecutionCoordinator extends BaseDomainCoordinator {
945
946
  // ============================================================================
946
947
  // Factory Function
947
948
  // ============================================================================
948
- export function createTestExecutionCoordinator(eventBus, memory, config) {
949
- return new TestExecutionCoordinator(eventBus, memory, config);
949
+ export function createTestExecutionCoordinator(eventBus, memory, config, llmRouter) {
950
+ return new TestExecutionCoordinator(eventBus, memory, config, llmRouter);
950
951
  }
951
952
  //# sourceMappingURL=coordinator.js.map
@@ -5,9 +5,11 @@
5
5
  import { DomainName, DomainEvent } from '../../shared/types';
6
6
  import { BaseDomainPlugin, TaskHandler } from '../domain-interface';
7
7
  import { EventBus, MemoryBackend } from '../../kernel/interfaces';
8
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
8
9
  export declare class TestExecutionPlugin extends BaseDomainPlugin {
10
+ private readonly llmRouter?;
9
11
  private coordinator;
10
- constructor(eventBus: EventBus, memory: MemoryBackend);
12
+ constructor(eventBus: EventBus, memory: MemoryBackend, llmRouter?: HybridRouter | undefined);
11
13
  get name(): DomainName;
12
14
  get version(): string;
13
15
  get dependencies(): DomainName[];
@@ -28,5 +30,5 @@ export declare class TestExecutionPlugin extends BaseDomainPlugin {
28
30
  private handleQualityGateEvaluated;
29
31
  private handleCoverageGapDetected;
30
32
  }
31
- export declare function createTestExecutionPlugin(eventBus: EventBus, memory: MemoryBackend): TestExecutionPlugin;
33
+ export declare function createTestExecutionPlugin(eventBus: EventBus, memory: MemoryBackend, llmRouter?: HybridRouter): TestExecutionPlugin;
32
34
  //# sourceMappingURL=plugin.d.ts.map
@@ -10,9 +10,11 @@ import { getGlobalInfraHealing } from '../../strange-loop/infra-healing/global-i
10
10
  // Plugin Implementation
11
11
  // ============================================================================
12
12
  export class TestExecutionPlugin extends BaseDomainPlugin {
13
+ llmRouter;
13
14
  coordinator = null;
14
- constructor(eventBus, memory) {
15
+ constructor(eventBus, memory, llmRouter) {
15
16
  super(eventBus, memory);
17
+ this.llmRouter = llmRouter;
16
18
  }
17
19
  get name() {
18
20
  return 'test-execution';
@@ -125,7 +127,7 @@ export class TestExecutionPlugin extends BaseDomainPlugin {
125
127
  async onInitialize() {
126
128
  // ADR-057: Inject infra-healing orchestrator if available
127
129
  const infraHealing = getGlobalInfraHealing() ?? undefined;
128
- this.coordinator = createTestExecutionCoordinator(this.eventBus, this.memory, { infraHealing });
130
+ this.coordinator = createTestExecutionCoordinator(this.eventBus, this.memory, { infraHealing }, this.llmRouter);
129
131
  await this.coordinator.initialize();
130
132
  // Issue #205 fix: Start with 'idle' status (0 agents)
131
133
  this.updateHealth({
@@ -215,7 +217,7 @@ export class TestExecutionPlugin extends BaseDomainPlugin {
215
217
  // ============================================================================
216
218
  // Factory Function
217
219
  // ============================================================================
218
- export function createTestExecutionPlugin(eventBus, memory) {
219
- return new TestExecutionPlugin(eventBus, memory);
220
+ export function createTestExecutionPlugin(eventBus, memory, llmRouter) {
221
+ return new TestExecutionPlugin(eventBus, memory, llmRouter);
220
222
  }
221
223
  //# sourceMappingURL=plugin.js.map
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { Result } from '../../shared/types';
11
11
  import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces';
12
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
12
13
  import { GenerateTestsRequest, GeneratedTests, TDDRequest, TDDResult, PropertyTestRequest, PropertyTests, TestDataRequest, TestData, LearnPatternsRequest, LearnedPatterns, TestGenerationAPI } from './interfaces';
13
14
  import type { QEHookRegistry } from '../../learning/qe-hooks.js';
14
15
  import { type ConsensusEnabledConfig } from '../../coordination/mixins/consensus-enabled-domain';
@@ -75,7 +76,7 @@ export declare class TestGenerationCoordinator extends BaseDomainCoordinator<Coo
75
76
  private testEmbeddings;
76
77
  private recentDreamInsights;
77
78
  private coherenceGate;
78
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, coherenceService?: (ICoherenceService | null) | undefined, hookRegistry?: (QEHookRegistry | null) | undefined);
79
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, llmRouter?: HybridRouter, coherenceService?: (ICoherenceService | null) | undefined, hookRegistry?: (QEHookRegistry | null) | undefined);
79
80
  protected onInitialize(): Promise<void>;
80
81
  protected onDispose(): Promise<void>;
81
82
  /**
@@ -12,7 +12,7 @@ import { v4 as uuidv4 } from 'uuid';
12
12
  import { err, } from '../../shared/types';
13
13
  import { toError } from '../../shared/error-utils.js';
14
14
  import { TestGenerationEvents, LearningOptimizationEvents, createEvent, } from '../../shared/events/domain-events';
15
- import { createTestGeneratorService, } from './services/test-generator';
15
+ import { createTestGeneratorServiceWithDependencies, } from './services/test-generator';
16
16
  import { PatternMatcherService, } from './services/pattern-matcher';
17
17
  import { QE_HOOK_EVENTS } from '../../learning/qe-hooks.js';
18
18
  // CQ-002: Base domain coordinator
@@ -87,7 +87,7 @@ export class TestGenerationCoordinator extends BaseDomainCoordinator {
87
87
  recentDreamInsights = [];
88
88
  // Coherence gate (ADR-052)
89
89
  coherenceGate = null;
90
- constructor(eventBus, memory, agentCoordinator, config = {}, coherenceService, hookRegistry) {
90
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter, coherenceService, hookRegistry) {
91
91
  const fullConfig = { ...DEFAULT_CONFIG, ...config };
92
92
  super(eventBus, 'test-generation', fullConfig, {
93
93
  verifyFindingTypes: [
@@ -102,7 +102,8 @@ export class TestGenerationCoordinator extends BaseDomainCoordinator {
102
102
  this.agentCoordinator = agentCoordinator;
103
103
  this.coherenceService = coherenceService;
104
104
  this.hookRegistry = hookRegistry;
105
- this.testGenerator = createTestGeneratorService(memory);
105
+ // ADR-043 wiring: dependencies factory accepts llmRouter.
106
+ this.testGenerator = createTestGeneratorServiceWithDependencies({ memory, llmRouter });
106
107
  this.patternMatcher = new PatternMatcherService(memory);
107
108
  // Initialize coherence gate if service is provided (ADR-052)
108
109
  if (this.config.enableCoherenceGate && coherenceService) {
@@ -7,6 +7,7 @@ import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfac
7
7
  import { BaseDomainPlugin, TaskHandler } from '../domain-interface';
8
8
  import { TestGenerationAPI } from './interfaces';
9
9
  import { ITestGenerationCoordinator, CoordinatorConfig } from './coordinator';
10
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
10
11
  import { ITestGenerationService, TestGeneratorConfig } from './services/test-generator';
11
12
  import { IPatternMatchingService, PatternMatcherConfig } from './services/pattern-matcher';
12
13
  /**
@@ -34,11 +35,12 @@ export interface TestGenerationExtendedAPI extends TestGenerationAPI {
34
35
  */
35
36
  export declare class TestGenerationPlugin extends BaseDomainPlugin {
36
37
  private readonly agentCoordinator;
38
+ private readonly llmRouter?;
37
39
  private coordinator;
38
40
  private testGenerator;
39
41
  private patternMatcher;
40
42
  private readonly pluginConfig;
41
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig);
43
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig, llmRouter?: HybridRouter | undefined);
42
44
  get name(): DomainName;
43
45
  get version(): string;
44
46
  get dependencies(): DomainName[];
@@ -71,5 +73,5 @@ export declare class TestGenerationPlugin extends BaseDomainPlugin {
71
73
  /**
72
74
  * Factory function to create a TestGenerationPlugin
73
75
  */
74
- export declare function createTestGenerationPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig): TestGenerationPlugin;
76
+ export declare function createTestGenerationPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: TestGenerationPluginConfig, llmRouter?: HybridRouter): TestGenerationPlugin;
75
77
  //# sourceMappingURL=plugin.d.ts.map
@@ -5,7 +5,7 @@
5
5
  import { err } from '../../shared/types';
6
6
  import { BaseDomainPlugin } from '../domain-interface';
7
7
  import { TestGenerationCoordinator, } from './coordinator';
8
- import { createTestGeneratorService, } from './services/test-generator';
8
+ import { createTestGeneratorServiceWithDependencies, } from './services/test-generator';
9
9
  import { toError } from '../../shared/error-utils.js';
10
10
  import { PatternMatcherService, } from './services/pattern-matcher';
11
11
  /**
@@ -14,13 +14,15 @@ import { PatternMatcherService, } from './services/pattern-matcher';
14
14
  */
15
15
  export class TestGenerationPlugin extends BaseDomainPlugin {
16
16
  agentCoordinator;
17
+ llmRouter;
17
18
  coordinator = null;
18
19
  testGenerator = null;
19
20
  patternMatcher = null;
20
21
  pluginConfig;
21
- constructor(eventBus, memory, agentCoordinator, config = {}) {
22
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
22
23
  super(eventBus, memory);
23
24
  this.agentCoordinator = agentCoordinator;
25
+ this.llmRouter = llmRouter;
24
26
  this.pluginConfig = config;
25
27
  }
26
28
  // ============================================================================
@@ -141,11 +143,14 @@ export class TestGenerationPlugin extends BaseDomainPlugin {
141
143
  // Lifecycle Methods
142
144
  // ============================================================================
143
145
  async onInitialize() {
144
- // Create services using factory function for proper DI
145
- this.testGenerator = createTestGeneratorService(this.memory, this.pluginConfig.testGenerator);
146
+ // Create services using factory function for proper DI.
147
+ // ADR-043 wiring: pass llmRouter into TestGeneratorService via the
148
+ // dependencies factory (createTestGeneratorServiceWithDependencies)
149
+ // so analyzeXxxWithLLM branches become reachable.
150
+ this.testGenerator = createTestGeneratorServiceWithDependencies({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.testGenerator);
146
151
  this.patternMatcher = new PatternMatcherService(this.memory, this.pluginConfig.patternMatcher);
147
152
  // Create coordinator
148
- this.coordinator = new TestGenerationCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator);
153
+ this.coordinator = new TestGenerationCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.llmRouter);
149
154
  // Initialize coordinator
150
155
  await this.coordinator.initialize();
151
156
  // Issue #205 fix: Start with 'idle' status (0 agents)
@@ -320,7 +325,7 @@ export class TestGenerationPlugin extends BaseDomainPlugin {
320
325
  /**
321
326
  * Factory function to create a TestGenerationPlugin
322
327
  */
323
- export function createTestGenerationPlugin(eventBus, memory, agentCoordinator, config) {
324
- return new TestGenerationPlugin(eventBus, memory, agentCoordinator, config);
328
+ export function createTestGenerationPlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
329
+ return new TestGenerationPlugin(eventBus, memory, agentCoordinator, config, llmRouter);
325
330
  }
326
331
  //# sourceMappingURL=plugin.js.map
@@ -3,6 +3,7 @@
3
3
  * Orchestrates the visual and accessibility testing workflows
4
4
  */
5
5
  import { Result } from '../../shared/types/index.js';
6
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
6
7
  import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces.js';
7
8
  import { IVisualAccessibilityCoordinator, Viewport, VisualTestReport, AccessibilityAuditReport, AccessibilityViolation, RemediationPlan, VisualTestingStatus, VisualTestItem, VisualTestPrioritizationContext, VisualTestPrioritizationResult } from './interfaces.js';
8
9
  import { VisualTesterConfig } from './services/visual-tester.js';
@@ -59,7 +60,7 @@ export declare class VisualAccessibilityCoordinator extends BaseDomainCoordinato
59
60
  readonly responsiveTester: ResponsiveTesterService;
60
61
  private a2cAlgorithm?;
61
62
  private flashAttention?;
62
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, visualConfig?: Partial<VisualTesterConfig>, accessibilityConfig?: Partial<AccessibilityTesterConfig>, responsiveConfig?: Partial<ResponsiveTestConfig>);
63
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, visualConfig?: Partial<VisualTesterConfig>, accessibilityConfig?: Partial<AccessibilityTesterConfig>, responsiveConfig?: Partial<ResponsiveTestConfig>, llmRouter?: HybridRouter);
63
64
  /**
64
65
  * Initialize the coordinator
65
66
  * CQ-002: Domain-specific initialization
@@ -8,7 +8,7 @@ import { toError, toErrorMessage } from '../../shared/error-utils.js';
8
8
  import { ok, err, } from '../../shared/types/index.js';
9
9
  import { FilePath } from '../../shared/value-objects/index.js';
10
10
  import { cosineSimilarity } from '../../shared/utils/vector-math.js';
11
- import { createVisualTesterService, } from './services/visual-tester.js';
11
+ import { createVisualTesterServiceWithDependencies, } from './services/visual-tester.js';
12
12
  import { AccessibilityTesterService, } from './services/accessibility-tester.js';
13
13
  import { ResponsiveTesterService, } from './services/responsive-tester.js';
14
14
  import { A2CAlgorithm } from '../../integrations/rl-suite/algorithms/a2c.js';
@@ -48,7 +48,7 @@ export class VisualAccessibilityCoordinator extends BaseDomainCoordinator {
48
48
  a2cAlgorithm;
49
49
  // Flash Attention Integration: QEFlashAttention for image similarity
50
50
  flashAttention;
51
- constructor(eventBus, memory, agentCoordinator, config = {}, visualConfig = {}, accessibilityConfig = {}, responsiveConfig = {}) {
51
+ constructor(eventBus, memory, agentCoordinator, config = {}, visualConfig = {}, accessibilityConfig = {}, responsiveConfig = {}, llmRouter) {
52
52
  const fullConfig = { ...DEFAULT_CONFIG, ...config };
53
53
  super(eventBus, 'visual-accessibility', fullConfig, {
54
54
  verifyFindingTypes: [
@@ -59,7 +59,8 @@ export class VisualAccessibilityCoordinator extends BaseDomainCoordinator {
59
59
  });
60
60
  this.memory = memory;
61
61
  this.agentCoordinator = agentCoordinator;
62
- this.visualTester = createVisualTesterService(memory, visualConfig);
62
+ // ADR-043 wiring: dependency-bag factory for LLM-aware visual tester.
63
+ this.visualTester = createVisualTesterServiceWithDependencies({ memory, llmRouter }, visualConfig);
63
64
  this.accessibilityTester = new AccessibilityTesterService(memory, accessibilityConfig);
64
65
  this.responsiveTester = new ResponsiveTesterService(memory, responsiveConfig);
65
66
  }
@@ -5,6 +5,7 @@
5
5
  import { DomainName, DomainEvent, Result } from '../../shared/types/index.js';
6
6
  import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces.js';
7
7
  import { BaseDomainPlugin, TaskHandler } from '../domain-interface.js';
8
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
8
9
  import type { WorkflowOrchestrator } from '../../coordination/workflow-orchestrator.js';
9
10
  import { Viewport, VisualTestReport, AccessibilityAuditReport, AccessibilityViolation, RemediationPlan, VisualTestingStatus, AccessibilityReport, ContrastAnalysis, WCAGValidationResult, KeyboardNavigationReport, Screenshot, CaptureOptions, AuditOptions } from './interfaces.js';
10
11
  import { IVisualAccessibilityCoordinatorExtended, CoordinatorConfig } from './coordinator.js';
@@ -49,12 +50,13 @@ export interface VisualAccessibilityAPI {
49
50
  */
50
51
  export declare class VisualAccessibilityPlugin extends BaseDomainPlugin {
51
52
  private readonly agentCoordinator;
53
+ private readonly llmRouter?;
52
54
  private coordinator;
53
55
  private visualTester;
54
56
  private accessibilityTester;
55
57
  private responsiveTester;
56
58
  private readonly pluginConfig;
57
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig);
59
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig, llmRouter?: HybridRouter | undefined);
58
60
  get name(): DomainName;
59
61
  get version(): string;
60
62
  get dependencies(): DomainName[];
@@ -115,5 +117,5 @@ export declare class VisualAccessibilityPlugin extends BaseDomainPlugin {
115
117
  /**
116
118
  * Factory function to create a VisualAccessibilityPlugin
117
119
  */
118
- export declare function createVisualAccessibilityPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig): VisualAccessibilityPlugin;
120
+ export declare function createVisualAccessibilityPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: VisualAccessibilityPluginConfig, llmRouter?: HybridRouter): VisualAccessibilityPlugin;
119
121
  //# sourceMappingURL=plugin.d.ts.map
@@ -5,7 +5,7 @@
5
5
  import { ok, err } from '../../shared/types/index.js';
6
6
  import { BaseDomainPlugin } from '../domain-interface.js';
7
7
  import { VisualAccessibilityCoordinator, } from './coordinator.js';
8
- import { createVisualTesterService, } from './services/visual-tester.js';
8
+ import { createVisualTesterServiceWithDependencies, } from './services/visual-tester.js';
9
9
  import { AccessibilityTesterService, } from './services/accessibility-tester.js';
10
10
  import { toError } from '../../shared/error-utils.js';
11
11
  import { ResponsiveTesterService, } from './services/responsive-tester.js';
@@ -15,14 +15,16 @@ import { ResponsiveTesterService, } from './services/responsive-tester.js';
15
15
  */
16
16
  export class VisualAccessibilityPlugin extends BaseDomainPlugin {
17
17
  agentCoordinator;
18
+ llmRouter;
18
19
  coordinator = null;
19
20
  visualTester = null;
20
21
  accessibilityTester = null;
21
22
  responsiveTester = null;
22
23
  pluginConfig;
23
- constructor(eventBus, memory, agentCoordinator, config = {}) {
24
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
24
25
  super(eventBus, memory);
25
26
  this.agentCoordinator = agentCoordinator;
27
+ this.llmRouter = llmRouter;
26
28
  this.pluginConfig = config;
27
29
  }
28
30
  // ============================================================================
@@ -135,11 +137,12 @@ export class VisualAccessibilityPlugin extends BaseDomainPlugin {
135
137
  // ============================================================================
136
138
  async onInitialize() {
137
139
  // Create services using factory function for proper DI
138
- this.visualTester = createVisualTesterService(this.memory, this.pluginConfig.visualTester);
140
+ // ADR-043 wiring: dependencies factory accepts llmRouter.
141
+ this.visualTester = createVisualTesterServiceWithDependencies({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.visualTester);
139
142
  this.accessibilityTester = new AccessibilityTesterService(this.memory, this.pluginConfig.accessibilityTester);
140
143
  this.responsiveTester = new ResponsiveTesterService(this.memory, this.pluginConfig.responsiveTester);
141
144
  // Create coordinator
142
- this.coordinator = new VisualAccessibilityCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.pluginConfig.visualTester, this.pluginConfig.accessibilityTester, this.pluginConfig.responsiveTester);
145
+ this.coordinator = new VisualAccessibilityCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.pluginConfig.visualTester, this.pluginConfig.accessibilityTester, this.pluginConfig.responsiveTester, this.llmRouter);
143
146
  // Initialize coordinator
144
147
  await this.coordinator.initialize();
145
148
  // Issue #205 fix: Start with 'idle' status (0 agents)
@@ -552,7 +555,7 @@ export class VisualAccessibilityPlugin extends BaseDomainPlugin {
552
555
  /**
553
556
  * Factory function to create a VisualAccessibilityPlugin
554
557
  */
555
- export function createVisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config) {
556
- return new VisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config);
558
+ export function createVisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
559
+ return new VisualAccessibilityPlugin(eventBus, memory, agentCoordinator, config, llmRouter);
557
560
  }
558
561
  //# sourceMappingURL=plugin.js.map
@@ -259,6 +259,17 @@ export interface QEKernel extends Initializable, Disposable {
259
259
  readonly plugins: PluginLoader;
260
260
  /** Get the memory backend */
261
261
  readonly memory: MemoryBackend;
262
+ /**
263
+ * Get the LLM router (ADR-043). Returns undefined when no provider
264
+ * keys are present in env and the project has no router config — the
265
+ * kernel boots fine without a router; the LLM-enhancement branches
266
+ * in domain services simply stay dark.
267
+ *
268
+ * Type intentionally returned as `unknown` here to avoid a hard
269
+ * dependency from kernel/interfaces.ts on shared/llm/router/. Callers
270
+ * who need the typed HybridRouter import it directly.
271
+ */
272
+ readonly llmRouter?: unknown;
262
273
  /** Get a domain's API (synchronous, returns undefined if not loaded) */
263
274
  getDomainAPI<T>(domain: DomainName): T | undefined;
264
275
  /** Get a domain's API with lazy loading support */
@@ -324,6 +335,32 @@ export interface KernelConfig {
324
335
  * DreamEngine init cost.
325
336
  */
326
337
  enableDreamScheduler?: boolean;
338
+ /**
339
+ * LLM router configuration (ADR-043). Controls whether the kernel
340
+ * boots a HybridRouter and injects it into domain plugins so the
341
+ * isLLMAnalysisAvailable() branches in 14 services actually fire.
342
+ *
343
+ * - `enabled: 'auto'` (default): build a router iff at least one
344
+ * provider API key is present in env, OR the project's
345
+ * .agentic-qe/llm-config.json explicitly enables a provider.
346
+ * - `enabled: true`: always try to build a router; if no provider is
347
+ * available, log a warning and continue without one.
348
+ * - `enabled: false`: skip the router entirely. Use this to revert to
349
+ * the pre-wiring behavior (deterministic-only scanners).
350
+ *
351
+ * `configOverride` is merged on top of the disk + env config (highest
352
+ * precedence) — useful for tests.
353
+ */
354
+ llmRouter?: {
355
+ enabled?: 'auto' | true | false;
356
+ configOverride?: Partial<import('../shared/llm/router/types').RouterConfig>;
357
+ /**
358
+ * Inject a pre-built ProviderManager (for tests). When supplied,
359
+ * config-store loading is skipped and the provided manager is used
360
+ * directly. Typed as unknown to avoid the dependency.
361
+ */
362
+ providerManager?: unknown;
363
+ };
327
364
  }
328
365
  /**
329
366
  * Event middleware interface for anti-drift and other event processing (ADR-060)
@@ -6,6 +6,7 @@ import { DomainName } from '../shared/types';
6
6
  import { QEKernel, EventBus, AgentCoordinator, PluginLoader, MemoryBackend, KernelHealth, KernelConfig } from './interfaces';
7
7
  import { ToolCallSignatureTracker } from './anti-drift-middleware.js';
8
8
  import type { LoopDetectionResult } from './anti-drift-middleware.js';
9
+ import type { HybridRouter } from '../shared/llm/router/hybrid-router.js';
9
10
  import '../domains/test-generation';
10
11
  import '../domains/coverage-analysis';
11
12
  import '../domains/security-compliance';
@@ -22,12 +23,50 @@ export declare class QEKernelImpl implements QEKernel {
22
23
  private _loopTracker;
23
24
  private _experienceBridge?;
24
25
  private _dreamScheduler?;
26
+ private _llmRouter?;
27
+ private _llmRouterBuild?;
25
28
  constructor(config?: Partial<KernelConfig>);
26
29
  get eventBus(): EventBus;
27
30
  get coordinator(): AgentCoordinator;
28
31
  get plugins(): PluginLoader;
29
32
  get memory(): MemoryBackend;
33
+ /**
34
+ * ADR-043: Get the LLM router built during initialize(). Returns
35
+ * undefined when llmRouter.enabled is false or no provider was
36
+ * available. Domain plugins receive this as their factory's 4th arg
37
+ * via DOMAIN_FACTORIES.
38
+ */
39
+ get llmRouter(): HybridRouter | undefined;
30
40
  initialize(): Promise<void>;
41
+ /**
42
+ * ADR-043: Build the kernel-singleton HybridRouter.
43
+ *
44
+ * Behavior is gated, in order:
45
+ * 1. AQE_LLM_ROUTER_DISABLED env var (kill-switch): if set to a truthy
46
+ * value, ALWAYS skip — even when config.llmRouter.enabled === true.
47
+ * This is the env-only opt-out for users who upgrade with a
48
+ * provider key already in env and don't want billing surprises.
49
+ * 2. config.llmRouter.enabled:
50
+ * 'auto' (default): build iff at least one provider key is in env,
51
+ * or the project's llm-config.json enables a provider
52
+ * true: attempt to build; emit error event if no provider
53
+ * false: skip entirely (sets _llmRouter to undefined)
54
+ *
55
+ * On any error we publish a structured kernel.llm-router.init-failed
56
+ * event so monitoring catches misconfiguration. We also keep the
57
+ * console.warn for direct visibility in dev. The kernel still boots —
58
+ * a kernel that boots without LLMs is strictly better than a kernel
59
+ * that won't boot — but the failure is now observable.
60
+ */
61
+ private _initializeLLMRouter;
62
+ /**
63
+ * ADR-043: emit a structured event on the kernel event bus when the
64
+ * LLM router can't be built. Observability hook for monitoring and
65
+ * alerting — a silent warn is not enough for production systems where
66
+ * "tests run without LLM analysis" is a quality regression worth
67
+ * paging on.
68
+ */
69
+ private _publishLLMRouterEvent;
31
70
  dispose(): Promise<void>;
32
71
  getDomainAPI<T>(domain: DomainName): T | undefined;
33
72
  /**