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
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.0");process.exit(0)}
2
- import"./chunk-55JPAF56.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
+ import"./chunk-4AWJ5PE4.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.0");process.exit(0)}
2
- import{b as u}from"./chunk-VTO5O7DA.js";import{a as f,c as h}from"./chunk-KNL3QWVA.js";import"./chunk-55JPAF56.js";h();import{existsSync as i,mkdirSync as d,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf"),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||d(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let n=this.generator.generateBehavioralRules("windsurf"),s=p(this.projectRoot,n.path);if(e.rulesPath=s,!i(s)||this.overwrite){if(i(s)&&this.overwrite){let o=this.mergeExistingRules(s,n.content);a(s,o)}else a(s,n.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),n=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,n.mcpServers),JSON.stringify(r,null,2)+`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
+ import{b as u}from"./chunk-W6ZF2CPN.js";import{a as f,c as h}from"./chunk-2TDWCXZ6.js";import"./chunk-4AWJ5PE4.js";h();import{existsSync as i,mkdirSync as d,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf"),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||d(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let n=this.generator.generateBehavioralRules("windsurf"),s=p(this.projectRoot,n.path);if(e.rulesPath=s,!i(s)||this.overwrite){if(i(s)&&this.overwrite){let o=this.mergeExistingRules(s,n.content);a(s,o)}else a(s,n.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),n=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,n.mcpServers),JSON.stringify(r,null,2)+`
3
3
  `}catch{return t}}mergeExistingRules(e,t){try{let r=g(e,"utf-8");return r.includes("Agentic QE")||r.includes("fleet_init")?r:r.trimEnd()+`
4
4
 
5
5
  ---
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.0");process.exit(0)}
2
- import{a,b,c,d,e,f,g}from"./chunk-CU4IUJ2K.js";import"./chunk-X73CRYF4.js";import"./chunk-BQT4J3BD.js";import"./chunk-KOSKGZK4.js";import"./chunk-55JPAF56.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
+ import{a,b,c,d,e,f,g}from"./chunk-3YOPJ7DY.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h,i}from"./chunk-AUVC3DDB.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-2TDWCXZ6.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,i as _resetWitnessChainForTests,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
@@ -1,5 +1,5 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.0");process.exit(0)}
2
- import"./chunk-M73IL7FA.js";import{b as $}from"./chunk-WVCIZIKH.js";import{d as R}from"./chunk-VTIXFHZR.js";import{b as k,c as C,d as b}from"./chunk-DQLEZBWV.js";import{c as W}from"./chunk-OKGK7DBT.js";import"./chunk-FEBXP74Y.js";import"./chunk-KNL3QWVA.js";import"./chunk-55JPAF56.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
+ import{b as $}from"./chunk-EO4B5GS4.js";import"./chunk-6LRCMFLV.js";import{d as R}from"./chunk-H44WD7QX.js";import{b as k,c as C,d as b}from"./chunk-IITKJCPK.js";import{c as W}from"./chunk-QNW335PD.js";import"./chunk-Y2DPXMOR.js";import"./chunk-2TDWCXZ6.js";import"./chunk-4AWJ5PE4.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
3
3
  Running workflow from: ${t}
4
4
  `));let s=k(c);if(!s.success||!s.workflow){console.log(o.red("Failed to parse pipeline:"));for(let w of s.errors)console.log(o.red(` ${w}`));await a(1)}let r={...W(l.params,"params")};if(s.pipeline){for(let w of s.pipeline.stages)if(w.params)for(let[S,h]of Object.entries(w.params))r[S]=h}if(!d.workflowOrchestrator.getWorkflow(s.workflow.id)){let w=d.workflowOrchestrator.registerWorkflow(s.workflow);w.success||(console.log(o.red(`Failed to register workflow: ${w.error.message}`)),await a(1))}let n=await d.workflowOrchestrator.executeWorkflow(s.workflow.id,r);if(!n.success){console.log(o.red(`Failed to start workflow: ${n.error.message}`)),await a(1);return}let p=n.value;if(console.log(o.cyan(` Execution ID: ${p}`)),console.log(o.gray(` Workflow: ${s.workflow.name}`)),console.log(o.gray(` Stages: ${s.workflow.steps.length}`)),console.log(""),l.watch){console.log(o.blue(`Workflow Progress:
5
5
  `));let w,S=Date.now();for(;;){let g=d.workflowOrchestrator.getWorkflowStatus(p);if(!g)break;if(!w||w.progress!==g.progress||w.status!==g.status||JSON.stringify(w.currentSteps)!==JSON.stringify(g.currentSteps)){process.stdout.write("\r\x1B[K");let v="\u2588".repeat(Math.floor(g.progress/5))+"\u2591".repeat(20-Math.floor(g.progress/5)),D=g.status==="completed"?o.green:g.status==="failed"?o.red:g.status==="running"?o.yellow:o.gray;console.log(` [${v}] ${g.progress}% - ${D(g.status)}`),g.currentSteps.length>0&&l.verbose&&console.log(o.gray(` Running: ${g.currentSteps.join(", ")}`)),w=g}if(g.status==="completed"||g.status==="failed"||g.status==="cancelled")break;await new Promise(v=>setTimeout(v,500))}let h=d.workflowOrchestrator.getWorkflowStatus(p);if(h){console.log("");let g=h.duration||Date.now()-S;h.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(g)}`)),console.log(o.gray(` Completed: ${h.completedSteps.length} stages`)),h.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${h.skippedSteps.length} stages`))):h.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${h.error}`)),console.log(o.gray(` Failed stages: ${h.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${h.status}`))}}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${p}' to check progress`));console.log(""),await a(0)}catch(s){console.error(o.red(`
@@ -35,10 +35,10 @@ Workflow cancelled: ${t}
35
35
  `)):console.log(o.red(`
36
36
  Failed to cancel workflow: ${l.error.message}
37
37
  `)),await a(l.success?0:1)}catch(l){console.error(o.red(`
38
- Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-2NSV5O6W.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
38
+ Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-JX3M2UWG.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
39
39
  Browser Workflow Templates:
40
40
  `));for(let u of e.data.availableTemplates)console.log(` ${o.cyan(u)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await a(0)}catch(t){console.error(o.red(`
41
- Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-2NSV5O6W.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-SLTICF3O.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
41
+ Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-JX3M2UWG.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-EXDXVXKB.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
42
42
  File not found: ${p}
43
43
  `)),await a(1)),f.workflowYaml=i.readFileSync(p,"utf-8")}else f.templateName=t;else console.log(o.red(`
44
44
  Provide a template name or --yaml. Use "workflow browser-list" to see templates.
@@ -0,0 +1,2 @@
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
+ import{a,b,c,d}from"./chunk-EUJHHXE6.js";import"./chunk-CR4ERDS2.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-Y2DPXMOR.js";import"./chunk-2TDWCXZ6.js";import"./chunk-IK6AJX3C.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
@@ -1,2 +1,2 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.0");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-JKVNZASH.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-G2HA2O3R.js";import"./chunk-UE3XXKLN.js";import"./chunk-TEJPHJMW.js";import"./chunk-OKGK7DBT.js";import"./chunk-X73CRYF4.js";import"./chunk-BQT4J3BD.js";import"./chunk-KNL3QWVA.js";import"./chunk-ZCNVFULO.js";import"./chunk-QU54GUEA.js";import"./chunk-O3NAUNFC.js";import"./chunk-I4E6CLC4.js";import"./chunk-NT4PI5HI.js";import"./chunk-66GIKUI2.js";import"./chunk-SGONA5GS.js";import"./chunk-5UOV7T36.js";import"./chunk-KOSKGZK4.js";import"./chunk-55JPAF56.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
1
+ import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.10.1");process.exit(0)}
2
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-GMKGLZJU.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-5EU2VQK3.js";import"./chunk-Q24OJX44.js";import"./chunk-GXJ4BCGC.js";import"./chunk-QNW335PD.js";import"./chunk-VPCE5CIT.js";import"./chunk-BGBSYF3K.js";import"./chunk-2TDWCXZ6.js";import"./chunk-XRK7FBTY.js";import"./chunk-PLRSKAFZ.js";import"./chunk-GRG3OP34.js";import"./chunk-XKOKMS5A.js";import"./chunk-2ETDES5W.js";import"./chunk-MVGVD6LS.js";import"./chunk-25QGPRWN.js";import"./chunk-KRXKU54J.js";import"./chunk-ELZ67OHQ.js";import"./chunk-4AWJ5PE4.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
@@ -13,11 +13,49 @@
13
13
  import { Command } from 'commander';
14
14
  import { secureRandomInt } from '../../shared/utils/crypto-random.js';
15
15
  import chalk from 'chalk';
16
- import { ALL_PROVIDER_TYPES, DEFAULT_ROUTER_CONFIG, DEFAULT_MODEL_MAPPINGS, } from '../../shared/llm/router/types.js';
16
+ import { ALL_PROVIDER_TYPES, DEFAULT_MODEL_MAPPINGS, } from '../../shared/llm/router/types.js';
17
17
  // ============================================================================
18
- // In-memory config state (would be persisted in real implementation)
18
+ // CLI config state (lazy-loaded from .agentic-qe/llm-config.json)
19
19
  // ============================================================================
20
- let currentConfig = { ...DEFAULT_ROUTER_CONFIG };
20
+ //
21
+ // `aqe llm config --set` writes through to disk so the next process
22
+ // invocation sees the change. Reads are merged in this order:
23
+ // DEFAULT_ROUTER_CONFIG <- disk <- env-detection
24
+ // Env detection is what flips `gemini.enabled` from false to true when
25
+ // the user has `GOOGLE_API_KEY` set, without them needing to touch the
26
+ // file at all.
27
+ import { loadRouterConfig as loadPersistedRouterConfig, saveRouterConfigFile, } from '../../shared/llm/router/config-store.js';
28
+ let currentConfig = null;
29
+ /**
30
+ * Resolve the project root used for config persistence. Honors
31
+ * `AQE_CONFIG_ROOT` for test isolation — set it to a temp dir and the
32
+ * llm-config.json read/write will be confined there instead of touching
33
+ * the real `.agentic-qe/`.
34
+ */
35
+ function configProjectRoot() {
36
+ return process.env.AQE_CONFIG_ROOT;
37
+ }
38
+ function getCurrentConfig() {
39
+ if (currentConfig === null) {
40
+ currentConfig = loadPersistedRouterConfig({ projectRoot: configProjectRoot() });
41
+ }
42
+ return currentConfig;
43
+ }
44
+ /** Force a re-load on next read. Used by tests; also called after --set. */
45
+ function invalidateConfigCache() {
46
+ currentConfig = null;
47
+ }
48
+ /**
49
+ * Persist the in-memory mutation to disk and invalidate the cache so
50
+ * the next read picks up the post-merge config (which may differ from
51
+ * `currentConfig` due to env detection re-applying).
52
+ */
53
+ function persistAndReload() {
54
+ if (currentConfig === null)
55
+ return;
56
+ saveRouterConfigFile(currentConfig, configProjectRoot());
57
+ invalidateConfigCache();
58
+ }
21
59
  // ============================================================================
22
60
  // Command Implementation
23
61
  // ============================================================================
@@ -132,8 +170,9 @@ Examples:
132
170
  // Command Executors
133
171
  // ============================================================================
134
172
  async function executeProviders(options) {
173
+ const cfg = getCurrentConfig();
135
174
  const providers = ALL_PROVIDER_TYPES.map(type => {
136
- const config = currentConfig.providers?.[type];
175
+ const config = cfg.providers?.[type];
137
176
  return {
138
177
  provider: type,
139
178
  enabled: config?.enabled ?? (type === 'claude' || type === 'openai' || type === 'ollama'),
@@ -163,11 +202,11 @@ async function executeProviders(options) {
163
202
  }
164
203
  if (options.verbose) {
165
204
  console.log(chalk.bold('\nRouting Configuration:'));
166
- console.log(chalk.gray(` Mode: ${currentConfig.mode}`));
167
- console.log(chalk.gray(` Default Provider: ${currentConfig.defaultProvider}`));
168
- console.log(chalk.gray(` Default Model: ${currentConfig.defaultModel}`));
169
- console.log(chalk.gray(` Metrics Enabled: ${currentConfig.enableMetrics}`));
170
- console.log(chalk.gray(` Decision Cache: ${currentConfig.cacheDecisions}`));
205
+ console.log(chalk.gray(` Mode: ${cfg.mode}`));
206
+ console.log(chalk.gray(` Default Provider: ${cfg.defaultProvider}`));
207
+ console.log(chalk.gray(` Default Model: ${cfg.defaultModel}`));
208
+ console.log(chalk.gray(` Metrics Enabled: ${cfg.enableMetrics}`));
209
+ console.log(chalk.gray(` Decision Cache: ${cfg.cacheDecisions}`));
171
210
  }
172
211
  console.log('');
173
212
  }
@@ -209,7 +248,7 @@ async function executeModels(options) {
209
248
  console.log('');
210
249
  }
211
250
  async function executeRoute(task, options) {
212
- const mode = (options.mode || currentConfig.mode);
251
+ const mode = (options.mode || getCurrentConfig().mode);
213
252
  const complexity = options.complexity || 'medium';
214
253
  const agentType = options.agent;
215
254
  // Simulate routing decision based on task and options
@@ -253,23 +292,24 @@ async function executeConfig(options) {
253
292
  console.log(chalk.green(`Set ${key} = ${value}`));
254
293
  return;
255
294
  }
295
+ const cfg = getCurrentConfig();
256
296
  if (options.json) {
257
- console.log(JSON.stringify(currentConfig, null, 2));
297
+ console.log(JSON.stringify(cfg, null, 2));
258
298
  return;
259
299
  }
260
300
  console.log(chalk.bold.cyan('\nRouter Configuration\n'));
261
301
  console.log(chalk.bold('General:'));
262
- console.log(` mode: ${chalk.cyan(currentConfig.mode)}`);
263
- console.log(` defaultProvider: ${chalk.cyan(currentConfig.defaultProvider)}`);
264
- console.log(` defaultModel: ${chalk.cyan(currentConfig.defaultModel)}`);
265
- console.log(` enableMetrics: ${currentConfig.enableMetrics ? chalk.green('true') : chalk.gray('false')}`);
266
- console.log(` cacheDecisions: ${currentConfig.cacheDecisions ? chalk.green('true') : chalk.gray('false')}`);
267
- console.log(` decisionCacheTtlMs: ${chalk.gray(currentConfig.decisionCacheTtlMs)}`);
302
+ console.log(` mode: ${chalk.cyan(cfg.mode)}`);
303
+ console.log(` defaultProvider: ${chalk.cyan(cfg.defaultProvider)}`);
304
+ console.log(` defaultModel: ${chalk.cyan(cfg.defaultModel)}`);
305
+ console.log(` enableMetrics: ${cfg.enableMetrics ? chalk.green('true') : chalk.gray('false')}`);
306
+ console.log(` cacheDecisions: ${cfg.cacheDecisions ? chalk.green('true') : chalk.gray('false')}`);
307
+ console.log(` decisionCacheTtlMs: ${chalk.gray(cfg.decisionCacheTtlMs)}`);
268
308
  console.log(chalk.bold('\nFallback:'));
269
- console.log(` maxRetries: ${currentConfig.fallbackChain.maxRetries}`);
270
- console.log(` retryDelayMs: ${currentConfig.fallbackChain.retryDelayMs}`);
309
+ console.log(` maxRetries: ${cfg.fallbackChain.maxRetries}`);
310
+ console.log(` retryDelayMs: ${cfg.fallbackChain.retryDelayMs}`);
271
311
  console.log(chalk.bold('\nEnabled Providers:'));
272
- for (const [provider, config] of Object.entries(currentConfig.providers || {})) {
312
+ for (const [provider, config] of Object.entries(cfg.providers || {})) {
273
313
  if (config?.enabled) {
274
314
  console.log(` ${chalk.green('*')} ${provider}: ${config.defaultModel || 'default'}`);
275
315
  }
@@ -424,19 +464,35 @@ function simulateRoutingDecision(task, options) {
424
464
  };
425
465
  }
426
466
  // Default
467
+ const defaultCfg = getCurrentConfig();
427
468
  return {
428
- provider: currentConfig.defaultProvider,
429
- model: currentConfig.defaultModel,
469
+ provider: defaultCfg.defaultProvider,
470
+ model: defaultCfg.defaultModel,
430
471
  reason: 'Default provider selected',
431
472
  confidence: 0.8,
432
473
  estimatedCost: { inputTokens: 2000, outputTokens: 1000, totalCostUsd: 0.021 },
433
474
  };
434
475
  }
435
476
  function updateConfig(key, value) {
477
+ // Pull the current config into the cache (load from disk if needed),
478
+ // mutate, then persist back. persistAndReload() invalidates the cache
479
+ // so subsequent reads in this process see the merged-with-env state.
480
+ // Refuse apiKey writes loudly — config-store strips them on persist
481
+ // anyway, but a "saved successfully" message followed by silent drop
482
+ // is a UX trap. Point users at the env vars they should be using.
483
+ const normalizedKey = key.toLowerCase();
484
+ if (normalizedKey === 'apikey' || normalizedKey.endsWith('.apikey') || normalizedKey.includes('apikey=')) {
485
+ throw new Error(`API keys cannot be saved via 'aqe llm config --set'. They belong in ` +
486
+ `environment variables: ANTHROPIC_API_KEY, OPENAI_API_KEY, ` +
487
+ `OPENROUTER_API_KEY, GEMINI_API_KEY / GOOGLE_AI_API_KEY / GOOGLE_API_KEY, ` +
488
+ `AZURE_OPENAI_API_KEY. The CLI will not write secrets to ` +
489
+ `.agentic-qe/llm-config.json (which may be checked into source control).`);
490
+ }
491
+ const cfg = getCurrentConfig();
436
492
  switch (key) {
437
493
  case 'mode':
438
494
  if (['manual', 'rule-based', 'cost-optimized', 'performance-optimized'].includes(value)) {
439
- currentConfig.mode = value;
495
+ cfg.mode = value;
440
496
  }
441
497
  else {
442
498
  throw new Error(`Invalid mode: ${value}`);
@@ -444,21 +500,22 @@ function updateConfig(key, value) {
444
500
  break;
445
501
  case 'defaultProvider':
446
502
  if (ALL_PROVIDER_TYPES.includes(value)) {
447
- currentConfig.defaultProvider = value;
503
+ cfg.defaultProvider = value;
448
504
  }
449
505
  else {
450
506
  throw new Error(`Invalid provider: ${value}`);
451
507
  }
452
508
  break;
453
509
  case 'enableMetrics':
454
- currentConfig.enableMetrics = value === 'true';
510
+ cfg.enableMetrics = value === 'true';
455
511
  break;
456
512
  case 'cacheDecisions':
457
- currentConfig.cacheDecisions = value === 'true';
513
+ cfg.cacheDecisions = value === 'true';
458
514
  break;
459
515
  default:
460
516
  throw new Error(`Unknown config key: ${key}`);
461
517
  }
518
+ persistAndReload();
462
519
  }
463
520
  async function checkProviderHealth(timeout) {
464
521
  // Simulate health checks (in real implementation, would ping actual providers)
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { Result } from '../../shared/types';
6
6
  import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces';
7
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
7
8
  import { ChaosExperiment, ExperimentResult, FaultType, ChaosSuiteReport, LoadTestSuiteReport, ResilienceAssessment, ResilienceDashboard, ServiceArchitecture, ServiceDefinition, IChaosResilienceCoordinator, ChaosStrategyContext, ChaosStrategyResult } from './interfaces';
8
9
  import { type ConsensusEnabledConfig } from '../../coordination/mixins/consensus-enabled-domain';
9
10
  import type { QueenMinCutBridge } from '../../coordination/mincut/queen-integration';
@@ -51,7 +52,7 @@ export declare class ChaosResilienceCoordinator extends BaseDomainCoordinator<Co
51
52
  private policyGradient?;
52
53
  private qesona?;
53
54
  private readonly chaosGovernanceMixin;
54
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>);
55
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, llmRouter?: HybridRouter);
55
56
  protected onInitialize(): Promise<void>;
56
57
  protected onDispose(): Promise<void>;
57
58
  /**
@@ -51,7 +51,7 @@ export class ChaosResilienceCoordinator extends BaseDomainCoordinator {
51
51
  qesona;
52
52
  // ADR-058: Governance mixin for MemoryWriteGate and ConstitutionalEnforcer integration
53
53
  chaosGovernanceMixin;
54
- constructor(eventBus, memory, agentCoordinator, config = {}) {
54
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
55
55
  const fullConfig = { ...DEFAULT_CONFIG, ...config };
56
56
  super(eventBus, 'chaos-resilience', fullConfig, {
57
57
  verifyFindingTypes: [
@@ -66,7 +66,8 @@ export class ChaosResilienceCoordinator extends BaseDomainCoordinator {
66
66
  // ADR-058: Initialize governance mixin for backup-before-delete enforcement
67
67
  // Chaos resilience performs destructive operations, so use specialized mixin
68
68
  this.chaosGovernanceMixin = createDestructiveOpsGovernanceMixin(this.domainName);
69
- this.chaosEngineer = new ChaosEngineerService({ memory });
69
+ // ADR-043 wiring.
70
+ this.chaosEngineer = new ChaosEngineerService({ memory, llmRouter });
70
71
  this.loadTester = new LoadTesterService(memory);
71
72
  this.performanceProfiler = new PerformanceProfilerService(memory);
72
73
  }
@@ -9,6 +9,7 @@ import { ExperimentResult, LoadTestResult, IChaosResilienceCoordinator, IChaosEn
9
9
  import { IChaosResilienceCoordinatorExtended, CoordinatorConfig } from './coordinator';
10
10
  import { ChaosEngineerConfig } from './services/chaos-engineer';
11
11
  import { LoadTesterConfig } from './services/load-tester';
12
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
12
13
  import { PerformanceProfilerConfig } from './services/performance-profiler';
13
14
  /**
14
15
  * Plugin configuration options
@@ -51,12 +52,13 @@ export interface ChaosResilienceExtendedAPI extends ChaosResilienceAPI {
51
52
  */
52
53
  export declare class ChaosResiliencePlugin extends BaseDomainPlugin {
53
54
  private readonly agentCoordinator;
55
+ private readonly llmRouter?;
54
56
  private coordinator;
55
57
  private chaosEngineer;
56
58
  private loadTester;
57
59
  private performanceProfiler;
58
60
  private readonly pluginConfig;
59
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ChaosResiliencePluginConfig);
61
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ChaosResiliencePluginConfig, llmRouter?: HybridRouter | undefined);
60
62
  get name(): DomainName;
61
63
  get version(): string;
62
64
  get dependencies(): DomainName[];
@@ -104,5 +106,5 @@ export declare class ChaosResiliencePlugin extends BaseDomainPlugin {
104
106
  /**
105
107
  * Factory function to create a ChaosResiliencePlugin
106
108
  */
107
- export declare function createChaosResiliencePlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ChaosResiliencePluginConfig): ChaosResiliencePlugin;
109
+ export declare function createChaosResiliencePlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ChaosResiliencePluginConfig, llmRouter?: HybridRouter): ChaosResiliencePlugin;
108
110
  //# sourceMappingURL=plugin.d.ts.map
@@ -15,14 +15,16 @@ import { PerformanceProfilerService, } from './services/performance-profiler';
15
15
  */
16
16
  export class ChaosResiliencePlugin extends BaseDomainPlugin {
17
17
  agentCoordinator;
18
+ llmRouter;
18
19
  coordinator = null;
19
20
  chaosEngineer = null;
20
21
  loadTester = null;
21
22
  performanceProfiler = 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
  // ============================================================================
@@ -149,11 +151,12 @@ export class ChaosResiliencePlugin extends BaseDomainPlugin {
149
151
  // ============================================================================
150
152
  async onInitialize() {
151
153
  // Create services
152
- this.chaosEngineer = new ChaosEngineerService({ memory: this.memory }, this.pluginConfig.chaosEngineer);
154
+ // ADR-043 wiring.
155
+ this.chaosEngineer = new ChaosEngineerService({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.chaosEngineer);
153
156
  this.loadTester = new LoadTesterService(this.memory, this.pluginConfig.loadTester);
154
157
  this.performanceProfiler = new PerformanceProfilerService(this.memory, this.pluginConfig.performanceProfiler);
155
158
  // Create coordinator
156
- this.coordinator = new ChaosResilienceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator);
159
+ this.coordinator = new ChaosResilienceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.llmRouter);
157
160
  // Initialize coordinator
158
161
  await this.coordinator.initialize();
159
162
  // Issue #205 fix: Start with 'idle' status (0 agents)
@@ -560,7 +563,7 @@ export class ChaosResiliencePlugin extends BaseDomainPlugin {
560
563
  /**
561
564
  * Factory function to create a ChaosResiliencePlugin
562
565
  */
563
- export function createChaosResiliencePlugin(eventBus, memory, agentCoordinator, config) {
564
- return new ChaosResiliencePlugin(eventBus, memory, agentCoordinator, config);
566
+ export function createChaosResiliencePlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
567
+ return new ChaosResiliencePlugin(eventBus, memory, agentCoordinator, config, llmRouter);
565
568
  }
566
569
  //# sourceMappingURL=plugin.js.map
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { Result } from '../../shared/types';
10
10
  import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces';
11
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
11
12
  import { C4DiagramResult, C4DiagramRequest } from '../../shared/c4-model';
12
13
  import { IProductFactorsBridge } from './services/product-factors-bridge';
13
14
  import { CodeIntelligenceAPI, IndexRequest, IndexResult, SearchRequest, SearchResults, ImpactRequest, ImpactAnalysis, DependencyRequest, DependencyMap, KGQueryRequest, KGQueryResult } from './interfaces';
@@ -139,7 +140,7 @@ export declare class CodeIntelligenceCoordinator extends BaseDomainCoordinator<C
139
140
  private hypergraph?;
140
141
  private hypergraphDb?;
141
142
  private productFactorsBridge;
142
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>);
143
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, llmRouter?: HybridRouter);
143
144
  /**
144
145
  * Initialize the coordinator
145
146
  * CQ-002: Domain-specific initialization
@@ -73,14 +73,15 @@ export class CodeIntelligenceCoordinator extends BaseDomainCoordinator {
73
73
  hypergraphDb;
74
74
  // V3: Product Factors Bridge for cross-domain C4 access
75
75
  productFactorsBridge;
76
- constructor(eventBus, memory, agentCoordinator, config = {}) {
76
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
77
77
  const fullConfig = { ...DEFAULT_CONFIG, ...config };
78
78
  super(eventBus, 'code-intelligence', fullConfig, {
79
79
  verifyFindingTypes: ['code-pattern-detection', 'impact-analysis', 'dependency-mapping'],
80
80
  });
81
81
  this.memory = memory;
82
82
  this.agentCoordinator = agentCoordinator;
83
- this.knowledgeGraph = new KnowledgeGraphService(memory);
83
+ // ADR-043 wiring.
84
+ this.knowledgeGraph = new KnowledgeGraphService({ memory, llmRouter });
84
85
  this.semanticAnalyzer = new SemanticAnalyzerService(memory);
85
86
  this.impactAnalyzer = new ImpactAnalyzerService(memory, this.knowledgeGraph);
86
87
  this.fileReader = new FileReader();
@@ -5,6 +5,7 @@
5
5
  import { DomainName, DomainEvent, Result } from '../../shared/types';
6
6
  import { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces';
7
7
  import { BaseDomainPlugin, TaskHandler } from '../domain-interface';
8
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
8
9
  import { CodeIntelligenceAPI, DependencyRequest, DependencyMap } from './interfaces';
9
10
  import { ICodeIntelligenceCoordinator, CoordinatorConfig } from './coordinator';
10
11
  import { IKnowledgeGraphService, KnowledgeGraphConfig } from './services/knowledge-graph';
@@ -46,12 +47,13 @@ export interface CodeIntelligenceExtendedAPI extends CodeIntelligenceAPI {
46
47
  */
47
48
  export declare class CodeIntelligencePlugin extends BaseDomainPlugin {
48
49
  private readonly agentCoordinator;
50
+ private readonly llmRouter?;
49
51
  private coordinator;
50
52
  private knowledgeGraph;
51
53
  private semanticAnalyzer;
52
54
  private impactAnalyzer;
53
55
  private readonly pluginConfig;
54
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: CodeIntelligencePluginConfig);
56
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: CodeIntelligencePluginConfig, llmRouter?: HybridRouter | undefined);
55
57
  get name(): DomainName;
56
58
  get version(): string;
57
59
  get dependencies(): DomainName[];
@@ -81,5 +83,5 @@ export declare class CodeIntelligencePlugin extends BaseDomainPlugin {
81
83
  /**
82
84
  * Factory function to create a CodeIntelligencePlugin
83
85
  */
84
- export declare function createCodeIntelligencePlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: CodeIntelligencePluginConfig): CodeIntelligencePlugin;
86
+ export declare function createCodeIntelligencePlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: CodeIntelligencePluginConfig, llmRouter?: HybridRouter): CodeIntelligencePlugin;
85
87
  //# sourceMappingURL=plugin.d.ts.map
@@ -15,14 +15,16 @@ import { ImpactAnalyzerService, } from './services/impact-analyzer';
15
15
  */
16
16
  export class CodeIntelligencePlugin extends BaseDomainPlugin {
17
17
  agentCoordinator;
18
+ llmRouter;
18
19
  coordinator = null;
19
20
  knowledgeGraph = null;
20
21
  semanticAnalyzer = null;
21
22
  impactAnalyzer = 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
  // ============================================================================
@@ -129,11 +131,12 @@ export class CodeIntelligencePlugin extends BaseDomainPlugin {
129
131
  // ============================================================================
130
132
  async onInitialize() {
131
133
  // Create services
132
- this.knowledgeGraph = new KnowledgeGraphService(this.memory, this.pluginConfig.knowledgeGraph);
134
+ // ADR-043 wiring.
135
+ this.knowledgeGraph = new KnowledgeGraphService({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.knowledgeGraph);
133
136
  this.semanticAnalyzer = new SemanticAnalyzerService(this.memory, this.pluginConfig.semanticAnalyzer);
134
137
  this.impactAnalyzer = new ImpactAnalyzerService(this.memory, this.knowledgeGraph, this.pluginConfig.impactAnalyzer);
135
138
  // Create coordinator
136
- this.coordinator = new CodeIntelligenceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator);
139
+ this.coordinator = new CodeIntelligenceCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.llmRouter);
137
140
  // Initialize coordinator
138
141
  await this.coordinator.initialize();
139
142
  // Issue #205 fix: Start with 'idle' status (0 agents)
@@ -359,7 +362,7 @@ export class CodeIntelligencePlugin extends BaseDomainPlugin {
359
362
  /**
360
363
  * Factory function to create a CodeIntelligencePlugin
361
364
  */
362
- export function createCodeIntelligencePlugin(eventBus, memory, agentCoordinator, config) {
363
- return new CodeIntelligencePlugin(eventBus, memory, agentCoordinator, config);
365
+ export function createCodeIntelligencePlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
366
+ return new CodeIntelligencePlugin(eventBus, memory, agentCoordinator, config, llmRouter);
364
367
  }
365
368
  //# sourceMappingURL=plugin.js.map
@@ -7,6 +7,7 @@
7
7
  import { Result } from '../../shared/types/index.js';
8
8
  import { FilePath } from '../../shared/value-objects/index.js';
9
9
  import type { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces.js';
10
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
10
11
  import type { IContractTestingCoordinator, ApiContract, ProviderVerificationReport, PreReleaseReport, ContractPrioritizationContext, ContractPrioritizationResult } from './interfaces.js';
11
12
  import { BaseDomainCoordinator, type BaseDomainCoordinatorConfig } from '../base-domain-coordinator.js';
12
13
  /**
@@ -51,7 +52,7 @@ export declare class ContractTestingCoordinator extends BaseDomainCoordinator<Co
51
52
  private readonly contractStore;
52
53
  private sarsaAlgorithm?;
53
54
  private qesona?;
54
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>);
55
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: Partial<CoordinatorConfig>, llmRouter?: HybridRouter);
55
56
  protected onInitialize(): Promise<void>;
56
57
  protected onDispose(): Promise<void>;
57
58
  protected subscribeToEvents(): void;
@@ -69,14 +69,15 @@ export class ContractTestingCoordinator extends BaseDomainCoordinator {
69
69
  sarsaAlgorithm;
70
70
  // SONA Integration: PersistentSONAEngine for contract pattern learning (patterns survive restarts)
71
71
  qesona;
72
- constructor(eventBus, memory, agentCoordinator, config = {}) {
72
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
73
73
  const fullConfig = { ...DEFAULT_CONFIG, ...config };
74
74
  super(eventBus, 'contract-testing', fullConfig, {
75
75
  verifyFindingTypes: ['contract-violation', 'breaking-change', 'schema-incompatibility'],
76
76
  });
77
77
  this.memory = memory;
78
78
  this.agentCoordinator = agentCoordinator;
79
- this.contractValidator = new ContractValidatorService({ memory });
79
+ // ADR-043 wiring.
80
+ this.contractValidator = new ContractValidatorService({ memory, llmRouter });
80
81
  this.apiCompatibility = new ApiCompatibilityService(memory);
81
82
  this.httpClient = createHttpClient();
82
83
  this.fileReader = new FileReader();
@@ -6,6 +6,7 @@ import { DomainName, DomainEvent, Result } from '../../shared/types/index.js';
6
6
  import type { EventBus, MemoryBackend, AgentCoordinator } from '../../kernel/interfaces.js';
7
7
  import { BaseDomainPlugin, TaskHandler } from '../domain-interface.js';
8
8
  import { FilePath } from '../../shared/value-objects/index.js';
9
+ import type { HybridRouter } from '../../shared/llm/router/hybrid-router.js';
9
10
  import type { ApiContract, ProviderVerificationReport, PreReleaseReport, ValidationReport, SchemaValidationResult, OpenAPIValidationResult, CompatibilityReport, BreakingChange, MigrationGuide, SchemaDefinition, GraphQLValidationResult, SchemaComparisonResult, IContractValidationService, IApiCompatibilityService, ISchemaValidationService } from './interfaces.js';
10
11
  import { ContractTestingCoordinator, CoordinatorConfig, WorkflowStatus } from './coordinator.js';
11
12
  import { ContractValidatorConfig } from './services/contract-validator.js';
@@ -67,12 +68,13 @@ export interface ContractTestingExtendedAPI extends ContractTestingAPI {
67
68
  */
68
69
  export declare class ContractTestingPlugin extends BaseDomainPlugin {
69
70
  private readonly agentCoordinator;
71
+ private readonly llmRouter?;
70
72
  private coordinator;
71
73
  private contractValidator;
72
74
  private apiCompatibility;
73
75
  private schemaValidator;
74
76
  private readonly pluginConfig;
75
- constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ContractTestingPluginConfig);
77
+ constructor(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ContractTestingPluginConfig, llmRouter?: HybridRouter | undefined);
76
78
  get name(): DomainName;
77
79
  get version(): string;
78
80
  get dependencies(): DomainName[];
@@ -113,5 +115,5 @@ export declare class ContractTestingPlugin extends BaseDomainPlugin {
113
115
  /**
114
116
  * Factory function to create a ContractTestingPlugin
115
117
  */
116
- export declare function createContractTestingPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ContractTestingPluginConfig): ContractTestingPlugin;
118
+ export declare function createContractTestingPlugin(eventBus: EventBus, memory: MemoryBackend, agentCoordinator: AgentCoordinator, config?: ContractTestingPluginConfig, llmRouter?: HybridRouter): ContractTestingPlugin;
117
119
  //# sourceMappingURL=plugin.d.ts.map
@@ -16,14 +16,16 @@ import { SchemaValidatorService, } from './services/schema-validator.js';
16
16
  */
17
17
  export class ContractTestingPlugin extends BaseDomainPlugin {
18
18
  agentCoordinator;
19
+ llmRouter;
19
20
  coordinator = null;
20
21
  contractValidator = null;
21
22
  apiCompatibility = null;
22
23
  schemaValidator = null;
23
24
  pluginConfig;
24
- constructor(eventBus, memory, agentCoordinator, config = {}) {
25
+ constructor(eventBus, memory, agentCoordinator, config = {}, llmRouter) {
25
26
  super(eventBus, memory);
26
27
  this.agentCoordinator = agentCoordinator;
28
+ this.llmRouter = llmRouter;
27
29
  this.pluginConfig = config;
28
30
  }
29
31
  // ============================================================================
@@ -157,11 +159,12 @@ export class ContractTestingPlugin extends BaseDomainPlugin {
157
159
  // ============================================================================
158
160
  async onInitialize() {
159
161
  // Create services
160
- this.contractValidator = new ContractValidatorService({ memory: this.memory }, this.pluginConfig.contractValidator);
162
+ // ADR-043 wiring.
163
+ this.contractValidator = new ContractValidatorService({ memory: this.memory, llmRouter: this.llmRouter }, this.pluginConfig.contractValidator);
161
164
  this.apiCompatibility = new ApiCompatibilityService(this.memory, this.pluginConfig.apiCompatibility);
162
165
  this.schemaValidator = new SchemaValidatorService(this.memory, this.pluginConfig.schemaValidator);
163
166
  // Create coordinator
164
- this.coordinator = new ContractTestingCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator);
167
+ this.coordinator = new ContractTestingCoordinator(this.eventBus, this.memory, this.agentCoordinator, this.pluginConfig.coordinator, this.llmRouter);
165
168
  // Initialize coordinator
166
169
  await this.coordinator.initialize();
167
170
  // Issue #205 fix: Start with 'idle' status (0 agents)
@@ -565,7 +568,7 @@ export class ContractTestingPlugin extends BaseDomainPlugin {
565
568
  /**
566
569
  * Factory function to create a ContractTestingPlugin
567
570
  */
568
- export function createContractTestingPlugin(eventBus, memory, agentCoordinator, config) {
569
- return new ContractTestingPlugin(eventBus, memory, agentCoordinator, config);
571
+ export function createContractTestingPlugin(eventBus, memory, agentCoordinator, config, llmRouter) {
572
+ return new ContractTestingPlugin(eventBus, memory, agentCoordinator, config, llmRouter);
570
573
  }
571
574
  //# sourceMappingURL=plugin.js.map