agentic-qe 3.9.12 → 3.9.14

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 (400) hide show
  1. package/.claude/agents/v3/qe-coverage-specialist.md +1 -1
  2. package/.claude/agents/v3/qe-fleet-commander.md +1 -1
  3. package/.claude/agents/v3/qe-pentest-validator.md +4 -2
  4. package/.claude/agents/v3/qe-queen-coordinator.md +1 -1
  5. package/.claude/agents/v3/qe-risk-assessor.md +1 -1
  6. package/.claude/agents/v3/qe-root-cause-analyzer.md +1 -1
  7. package/.claude/agents/v3/qe-security-auditor.md +4 -2
  8. package/.claude/agents/v3/qe-security-scanner.md +3 -1
  9. package/.claude/agents/v3/qe-test-architect.md +1 -1
  10. package/.claude/commands/aqe-costs.md +6 -6
  11. package/.claude/skills/.validation/schemas/skill-eval.schema.json +3 -0
  12. package/.claude/skills/.validation/test-data/sample-output.json +1 -1
  13. package/.claude/skills/a11y-ally/SKILL.md +1 -1
  14. package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
  15. package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +2 -2
  16. package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  17. package/.claude/skills/contract-testing/evals/contract-testing.yaml +2 -2
  18. package/.claude/skills/database-testing/evals/database-testing.yaml +2 -2
  19. package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
  20. package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
  21. package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
  22. package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  23. package/.claude/skills/skills-manifest.json +1 -1
  24. package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +2 -2
  25. package/CHANGELOG.md +45 -0
  26. package/assets/agents/v3/qe-coverage-specialist.md +1 -1
  27. package/assets/agents/v3/qe-fleet-commander.md +1 -1
  28. package/assets/agents/v3/qe-pentest-validator.md +4 -2
  29. package/assets/agents/v3/qe-queen-coordinator.md +1 -1
  30. package/assets/agents/v3/qe-risk-assessor.md +1 -1
  31. package/assets/agents/v3/qe-root-cause-analyzer.md +1 -1
  32. package/assets/agents/v3/qe-security-auditor.md +4 -2
  33. package/assets/agents/v3/qe-security-scanner.md +3 -1
  34. package/assets/agents/v3/qe-test-architect.md +1 -1
  35. package/assets/skills/.validation/schemas/skill-eval.schema.json +3 -0
  36. package/assets/skills/.validation/test-data/sample-output.json +1 -1
  37. package/assets/skills/a11y-ally/SKILL.md +1 -1
  38. package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
  39. package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +2 -2
  40. package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
  41. package/assets/skills/contract-testing/evals/contract-testing.yaml +2 -2
  42. package/assets/skills/database-testing/evals/database-testing.yaml +2 -2
  43. package/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
  44. package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
  45. package/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
  46. package/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
  47. package/assets/skills/skills-manifest.json +1 -1
  48. package/assets/skills/testability-scoring/evals/testability-scoring.yaml +2 -2
  49. package/dist/cli/bundle.js +5 -5
  50. package/dist/cli/chunks/adapter-W2EM7ZQ7.js +2 -0
  51. package/dist/cli/chunks/{agent-booster-wasm-LB7XIYUI.js → agent-booster-wasm-O6EXMPMF.js} +2 -2
  52. package/dist/cli/chunks/{agent-handler-VVLNITPB.js → agent-handler-4LPJVTJU.js} +2 -2
  53. package/dist/cli/chunks/{agent-memory-branch-QAJOHQYI.js → agent-memory-branch-PRR323JZ.js} +2 -2
  54. package/dist/cli/chunks/aqe-learning-engine-JQMPNHQU.js +2 -0
  55. package/dist/cli/chunks/{audit-BJIGY6LA.js → audit-YCKXQOXD.js} +2 -2
  56. package/dist/cli/chunks/base-EOPYE6JR.js +2 -0
  57. package/dist/cli/chunks/{better-sqlite3-X6P6KJS6.js → better-sqlite3-44RIH62G.js} +2 -2
  58. package/dist/cli/chunks/{brain-handler-7FGHAVL5.js → brain-handler-IAYJBAFL.js} +3 -3
  59. package/dist/cli/chunks/{branch-enumerator-YXYZMQ4P.js → branch-enumerator-RVVS2UYR.js} +2 -2
  60. package/dist/cli/chunks/{browser-WC2JTT32.js → browser-L6IKC4PR.js} +2 -2
  61. package/dist/cli/chunks/browser-workflow-CSARLAJD.js +2 -0
  62. package/dist/cli/chunks/chunk-2L3BCZ2F.js +2 -0
  63. package/dist/cli/chunks/{chunk-RLVQDFZ2.js → chunk-36YZ2UF7.js} +2 -2
  64. package/dist/cli/chunks/{chunk-B5OL6C4A.js → chunk-3GIZRGX6.js} +2 -2
  65. package/dist/cli/chunks/{chunk-SVEC7C63.js → chunk-3NUMJB3U.js} +10 -10
  66. package/dist/cli/chunks/{chunk-6ZTKAP4X.js → chunk-3PZ2QLLR.js} +4 -4
  67. package/dist/cli/chunks/{chunk-W26THOMZ.js → chunk-3ZKTPPIC.js} +1 -1
  68. package/dist/cli/chunks/{chunk-XQHTGKXD.js → chunk-4EQWK6P6.js} +2 -2
  69. package/dist/cli/chunks/{chunk-WNM64IA6.js → chunk-4JYLXYAH.js} +1 -1
  70. package/dist/cli/chunks/{chunk-Q2JAC625.js → chunk-4RDTR2OF.js} +2 -2
  71. package/dist/cli/chunks/chunk-53KLVMAT.js +18 -0
  72. package/dist/cli/chunks/{chunk-I6J7AYIL.js → chunk-5DWTU2PN.js} +1 -1
  73. package/dist/cli/chunks/{chunk-LNHOWUSG.js → chunk-5HUAD4UU.js} +2 -2
  74. package/dist/cli/chunks/{chunk-SILMLIWR.js → chunk-5MWNXDQW.js} +2 -2
  75. package/dist/cli/chunks/{chunk-FHNDCWXZ.js → chunk-5U6M4XCP.js} +3 -3
  76. package/dist/cli/chunks/{chunk-FYVNVHMI.js → chunk-6BK2S2WE.js} +2 -2
  77. package/dist/cli/chunks/chunk-6EZY2QVM.js +3021 -0
  78. package/dist/cli/chunks/{chunk-YNHB6NGD.js → chunk-6GKXC6DE.js} +2 -2
  79. package/dist/cli/chunks/{chunk-CBD772DQ.js → chunk-6J6GXRHX.js} +5 -5
  80. package/dist/cli/chunks/chunk-7732TLNA.js +5 -0
  81. package/dist/cli/chunks/{chunk-AZCTNUUN.js → chunk-7IJBZGZY.js} +1 -1
  82. package/dist/cli/chunks/{chunk-52GDG6LU.js → chunk-A2TK52B2.js} +2 -2
  83. package/dist/cli/chunks/chunk-AEQMQVDJ.js +2 -0
  84. package/dist/cli/chunks/chunk-AHVUILGE.js +2 -0
  85. package/dist/cli/chunks/{chunk-PBZLLYB3.js → chunk-AOYN6XYJ.js} +1 -1
  86. package/dist/cli/chunks/{chunk-MJY6FD6N.js → chunk-BFCMOMOF.js} +1 -1
  87. package/dist/cli/chunks/{chunk-WJGATF2P.js → chunk-BNPJMPM3.js} +2 -2
  88. package/dist/cli/chunks/{chunk-4LEYR7AH.js → chunk-BOMJHE4I.js} +2 -2
  89. package/dist/cli/chunks/{chunk-WZYG4SKQ.js → chunk-CGC63MGF.js} +5 -5
  90. package/dist/cli/chunks/{chunk-ZZ2E6WS6.js → chunk-D6APBW66.js} +1 -1
  91. package/dist/cli/chunks/chunk-DD4T7ZUM.js +3 -0
  92. package/dist/cli/chunks/{chunk-FT3BXL44.js → chunk-DGUAAG3T.js} +1 -1
  93. package/dist/cli/chunks/{chunk-AXJTWYCF.js → chunk-DJLRRCR6.js} +2 -2
  94. package/dist/cli/chunks/{chunk-WEMOVPQS.js → chunk-DMZ2XOEW.js} +2 -2
  95. package/dist/cli/chunks/{chunk-IQAEANMY.js → chunk-DNFDSDKE.js} +2 -2
  96. package/dist/cli/chunks/{chunk-PMRJHQIW.js → chunk-ERMIIRYN.js} +1 -1
  97. package/dist/cli/chunks/{chunk-K2UQR3NX.js → chunk-FFACJODG.js} +2 -2
  98. package/dist/cli/chunks/{chunk-OSGQFRT2.js → chunk-FNKKENLS.js} +2 -2
  99. package/dist/cli/chunks/{chunk-ESYALM4A.js → chunk-FWI7PK4X.js} +1 -1
  100. package/dist/cli/chunks/{chunk-QANDN6CW.js → chunk-FYBTGEOV.js} +1 -1
  101. package/dist/cli/chunks/{chunk-WMVMFBMH.js → chunk-G2KQUEGY.js} +2 -2
  102. package/dist/cli/chunks/{chunk-CX5TTKTB.js → chunk-G7L5Y47C.js} +1 -1
  103. package/dist/cli/chunks/{chunk-VC4X36JJ.js → chunk-GALNZTYE.js} +2 -2
  104. package/dist/cli/chunks/chunk-GIUAY4KY.js +12 -0
  105. package/dist/cli/chunks/chunk-GM5LIYLQ.js +2 -0
  106. package/dist/cli/chunks/{chunk-JTE3QBBI.js → chunk-GOTVYSX5.js} +3 -3
  107. package/dist/cli/chunks/{chunk-XTGVTVLN.js → chunk-GUEK5DOK.js} +2 -2
  108. package/dist/cli/chunks/{chunk-ZLDOPUZY.js → chunk-HEQ23HBE.js} +2 -2
  109. package/dist/cli/chunks/{chunk-E7WWAJK5.js → chunk-HJJTLOWZ.js} +2 -2
  110. package/dist/cli/chunks/{chunk-QRP7WPSO.js → chunk-I3P5RZX7.js} +4 -4
  111. package/dist/cli/chunks/{chunk-FE2R7DOJ.js → chunk-I5U64MHU.js} +2 -2
  112. package/dist/cli/chunks/chunk-IH4OOAEP.js +2 -0
  113. package/dist/cli/chunks/{chunk-BC6LRNKU.js → chunk-IL3ESNHA.js} +2 -2
  114. package/dist/cli/chunks/{chunk-PVYTP7CC.js → chunk-IOHDE27P.js} +2 -2
  115. package/dist/cli/chunks/{chunk-T5WF5HBA.js → chunk-J3XLOHWB.js} +2 -2
  116. package/dist/cli/chunks/{chunk-MT4ZZUPF.js → chunk-J5YOXLBD.js} +1 -1
  117. package/dist/cli/chunks/{chunk-Q3BVPPHB.js → chunk-JLBUS4PR.js} +2 -2
  118. package/dist/cli/chunks/{chunk-PGKGFKSS.js → chunk-JN7MSUGK.js} +2 -2
  119. package/dist/cli/chunks/{chunk-R7RGOZ3H.js → chunk-JNLKLC7G.js} +2 -2
  120. package/dist/cli/chunks/chunk-JOGKQTCU.js +24 -0
  121. package/dist/cli/chunks/{chunk-LURKOKOG.js → chunk-JWR3NNFA.js} +1 -1
  122. package/dist/cli/chunks/chunk-KFAN5FZM.js +2 -0
  123. package/dist/cli/chunks/{chunk-PJENW5A2.js → chunk-KHUFPJE4.js} +3 -3
  124. package/dist/cli/chunks/{chunk-UOD76Y2C.js → chunk-KJB6JJXT.js} +1 -1
  125. package/dist/cli/chunks/{chunk-TKV2X6EP.js → chunk-KVN4FTPT.js} +2 -2
  126. package/dist/cli/chunks/{chunk-6DDT5OHC.js → chunk-L4IWZXSC.js} +1 -1
  127. package/dist/cli/chunks/chunk-LJ3WQIBN.js +2 -0
  128. package/dist/cli/chunks/{chunk-OAWDBVKN.js → chunk-LKGLKX2A.js} +2 -2
  129. package/dist/cli/chunks/{chunk-V7LIKEGA.js → chunk-LWHM5BWD.js} +2 -2
  130. package/dist/cli/chunks/{chunk-4HTPZ67G.js → chunk-M2RO34V7.js} +4 -4
  131. package/dist/cli/chunks/{chunk-2BDTKGEH.js → chunk-ME4LVBTT.js} +2 -2
  132. package/dist/cli/chunks/chunk-MFGYMNNY.js +2 -0
  133. package/dist/cli/chunks/{chunk-OOV2W3PM.js → chunk-MXIFVOYA.js} +2 -2
  134. package/dist/cli/chunks/{chunk-CGXLVTVK.js → chunk-NWGIQCCO.js} +1 -1
  135. package/dist/cli/chunks/chunk-NWZYULZE.js +65 -0
  136. package/dist/cli/chunks/{chunk-XZYW2RNI.js → chunk-OGLS6HB4.js} +1 -1
  137. package/dist/cli/chunks/{chunk-FCUJTBDG.js → chunk-ORHCO2I7.js} +2 -2
  138. package/dist/cli/chunks/{chunk-GK4QGLN6.js → chunk-OZBTC26R.js} +2 -2
  139. package/dist/cli/chunks/chunk-P5YSBYZV.js +2 -0
  140. package/dist/cli/chunks/{chunk-ONF657XE.js → chunk-PFSSI3YR.js} +2 -2
  141. package/dist/cli/chunks/{chunk-M7QYRRRS.js → chunk-PZF5ISGS.js} +1 -1
  142. package/dist/cli/chunks/{chunk-MBISKOYR.js → chunk-Q4DAYLH4.js} +2 -2
  143. package/dist/cli/chunks/{chunk-E6MBYXCI.js → chunk-QLWP7ZIT.js} +2 -2
  144. package/dist/cli/chunks/{chunk-H6T57HMP.js → chunk-QUK34CSU.js} +2 -2
  145. package/dist/cli/chunks/chunk-RQFC7Q33.js +2 -0
  146. package/dist/cli/chunks/{chunk-DQ3ZEAMM.js → chunk-S2KGZJHS.js} +1 -1
  147. package/dist/cli/chunks/{chunk-JAVMUPY3.js → chunk-S6SM7LJK.js} +2 -2
  148. package/dist/cli/chunks/chunk-STYNOKOM.js +2 -0
  149. package/dist/cli/chunks/{chunk-NXZDG2ED.js → chunk-SUXUCW5I.js} +2 -2
  150. package/dist/cli/chunks/chunk-SY74WSBN.js +2 -0
  151. package/dist/cli/chunks/{chunk-OZNBJZTT.js → chunk-TJOZPPZR.js} +2 -2
  152. package/dist/cli/chunks/chunk-TOSFK4VG.js +2 -0
  153. package/dist/cli/chunks/{chunk-FGE33JCO.js → chunk-UAAJ3BSW.js} +2 -2
  154. package/dist/cli/chunks/{chunk-XD7W2BE6.js → chunk-UG2J5MTY.js} +1 -1
  155. package/dist/cli/chunks/{chunk-LJTRN6ZE.js → chunk-UIYK4Y7K.js} +2 -2
  156. package/dist/cli/chunks/{chunk-NWL7UQPY.js → chunk-UUVTLYUK.js} +2 -2
  157. package/dist/cli/chunks/{chunk-R2E73QTH.js → chunk-VDGWDDBC.js} +2 -2
  158. package/dist/cli/chunks/{chunk-4UIACR5V.js → chunk-VEAVDXXT.js} +2 -2
  159. package/dist/cli/chunks/{chunk-ZYAIIW3U.js → chunk-VQB5SLXZ.js} +2 -2
  160. package/dist/cli/chunks/{chunk-ZXLAY3BL.js → chunk-VU4QET3C.js} +2 -2
  161. package/dist/cli/chunks/{chunk-JDUJCNS5.js → chunk-VUS4VRPQ.js} +2 -2
  162. package/dist/cli/chunks/{chunk-STRHCEUL.js → chunk-VVKENR4I.js} +1 -1
  163. package/dist/cli/chunks/{chunk-GB4LEEYS.js → chunk-WE7KIXR6.js} +2 -2
  164. package/dist/cli/chunks/{chunk-C2ICHYJH.js → chunk-WELNFHDN.js} +1 -1
  165. package/dist/cli/chunks/{chunk-45SNY726.js → chunk-WSZVSDD5.js} +2 -2
  166. package/dist/cli/chunks/{chunk-DDNFBXJJ.js → chunk-WUYJYRBY.js} +1 -1
  167. package/dist/cli/chunks/{chunk-KYO7ME7T.js → chunk-WVN4YJSF.js} +2 -2
  168. package/dist/cli/chunks/{chunk-FZY2AFLS.js → chunk-XH774Q6Z.js} +1 -1
  169. package/dist/cli/chunks/{chunk-WKORFEXG.js → chunk-XNXOW7BQ.js} +2 -2
  170. package/dist/cli/chunks/{chunk-AUWWCPVO.js → chunk-Y3X5OS5F.js} +2 -2
  171. package/dist/cli/chunks/chunk-YPMBD44A.js +2 -0
  172. package/dist/cli/chunks/{chunk-RUD4F7IT.js → chunk-YZBY4ZRF.js} +2 -2
  173. package/dist/cli/chunks/{chunk-ALW3NHF2.js → chunk-Z3PSKGBO.js} +2 -2
  174. package/dist/cli/chunks/{chunk-FYJSJLTP.js → chunk-ZCRLZINE.js} +2 -2
  175. package/dist/cli/chunks/{chunk-I4JO4LD3.js → chunk-ZFZX2NA3.js} +2 -2
  176. package/dist/cli/chunks/{chunk-7WP5HEJQ.js → chunk-ZU5VHW6P.js} +2 -2
  177. package/dist/cli/chunks/{ci-44MZEXKJ.js → ci-QQ4F5TYO.js} +2 -2
  178. package/dist/cli/chunks/{ci-output-GZOZ3VUQ.js → ci-output-QC4WRENA.js} +2 -2
  179. package/dist/cli/chunks/{circuit-breaker-5BOXU65J.js → circuit-breaker-HFQUNYTK.js} +2 -2
  180. package/dist/cli/chunks/{claude-flow-setup-T5R4BHVO.js → claude-flow-setup-XNSCWIUN.js} +2 -2
  181. package/dist/cli/chunks/client-3GECKJWB.js +2 -0
  182. package/dist/cli/chunks/{cline-installer-LLROFJKC.js → cline-installer-S3CECBYL.js} +2 -2
  183. package/dist/cli/chunks/{code-ATTTFE44.js → code-QHUELDUH.js} +2 -2
  184. package/dist/cli/chunks/{code-index-extractor-S4DRQYVK.js → code-index-extractor-QLA5EQTE.js} +2 -2
  185. package/dist/cli/chunks/{codex-installer-WRPU4ITG.js → codex-installer-CQ7JNNOA.js} +2 -2
  186. package/dist/cli/chunks/{completions-EVEFMAIP.js → completions-S33U3KIT.js} +2 -2
  187. package/dist/cli/chunks/{complexity-analyzer-3RXGDVMX.js → complexity-analyzer-J7IEW3EM.js} +2 -2
  188. package/dist/cli/chunks/{continuedev-installer-TLMVH7VM.js → continuedev-installer-DVU24D37.js} +2 -2
  189. package/dist/cli/chunks/{copilot-installer-JOYO6JND.js → copilot-installer-DYISOPBC.js} +2 -2
  190. package/dist/cli/chunks/{cost-tracker-FJJO7V73.js → cost-tracker-URJADKKS.js} +2 -2
  191. package/dist/cli/chunks/{coverage-MBFLUTS3.js → coverage-NGMKJNW6.js} +3 -3
  192. package/dist/cli/chunks/cross-domain-router-UYONX76U.js +2 -0
  193. package/dist/cli/chunks/{cursor-installer-RUUOVPGH.js → cursor-installer-DFBJRDSY.js} +2 -2
  194. package/dist/cli/chunks/daemon-JSKKVVCV.js +19 -0
  195. package/dist/cli/chunks/{dag-attention-scheduler-AFCFHXDN.js → dag-attention-scheduler-YITFS6MR.js} +2 -2
  196. package/dist/cli/chunks/{detect-CUWUBG5C.js → detect-5APZP2D3.js} +2 -2
  197. package/dist/cli/chunks/{domain-handler-WHXJUWWW.js → domain-handler-WHH6XPSZ.js} +2 -2
  198. package/dist/cli/chunks/{domain-transfer-K6EVN3AJ.js → domain-transfer-SERX53SS.js} +2 -2
  199. package/dist/cli/chunks/dream-Z5QDQJSM.js +2 -0
  200. package/dist/cli/chunks/esm-node-FOI5Y3O2.js +2 -0
  201. package/dist/cli/chunks/{eval-YZDW7GLA.js → eval-FM3BLVFO.js} +2 -2
  202. package/dist/cli/chunks/{fast-paths-M4MXWH5P.js → fast-paths-4MSOOJVK.js} +2 -2
  203. package/dist/cli/chunks/{feature-flags-5CRUDVES.js → feature-flags-564YFR65.js} +2 -2
  204. package/dist/cli/chunks/{feature-flags-3YMEIR7B.js → feature-flags-WJT57IEJ.js} +2 -2
  205. package/dist/cli/chunks/{file-discovery-YBAUSWQ6.js → file-discovery-5QVG65WF.js} +2 -2
  206. package/dist/cli/chunks/{fleet-KZ7U5HH5.js → fleet-CF5JRK5B.js} +3 -3
  207. package/dist/cli/chunks/{gnn-wrapper-YPOKBUR3.js → gnn-wrapper-NYQ77563.js} +2 -2
  208. package/dist/cli/chunks/{heartbeat-handler-47WVNCNY.js → heartbeat-handler-42QJPKHE.js} +4 -4
  209. package/dist/cli/chunks/heartbeat-scheduler-7XEAV74Y.js +2 -0
  210. package/dist/cli/chunks/hnsw-adapter-NOAQ76QF.js +2 -0
  211. package/dist/cli/chunks/hnsw-index-KDIZQRSB.js +2 -0
  212. package/dist/cli/chunks/{hnsw-legacy-bridge-SZ6SXZ7G.js → hnsw-legacy-bridge-ZRR6PGWN.js} +2 -2
  213. package/dist/cli/chunks/{hnswlib-node-XVNGLWIG.js → hnswlib-node-DY7NOW76.js} +2 -2
  214. package/dist/cli/chunks/{hooks-WVVVJ2CC.js → hooks-IRRHEJLR.js} +6 -6
  215. package/dist/cli/chunks/hybrid-router-S4JXJLUY.js +2 -0
  216. package/dist/cli/chunks/{hypergraph-engine-EYTJMSNY.js → hypergraph-engine-WFHZJMP2.js} +2 -2
  217. package/dist/cli/chunks/{hypergraph-handler-JUCJMSBU.js → hypergraph-handler-LHUKR7PT.js} +3 -3
  218. package/dist/cli/chunks/impact-analyzer-VDXJBWFG.js +2 -0
  219. package/dist/cli/chunks/{init-handler-5COQTBSZ.js → init-handler-ZBIW7PSB.js} +6 -6
  220. package/dist/cli/chunks/init-wizard-Q6DEACKX.js +2 -0
  221. package/dist/cli/chunks/kernel-YNQOGTM5.js +2 -0
  222. package/dist/cli/chunks/{kilocode-installer-G54YKSIL.js → kilocode-installer-JYHA4NW7.js} +2 -2
  223. package/dist/cli/chunks/{kiro-installer-ZEKZVKTM.js → kiro-installer-OBXTRK77.js} +4 -4
  224. package/dist/cli/chunks/knowledge-graph-GOZG3YOM.js +2 -0
  225. package/dist/cli/chunks/learning-OAEJHEJD.js +107 -0
  226. package/dist/cli/chunks/{llm-router-RCOTEVVC.js → llm-router-NNEOZAVB.js} +5 -5
  227. package/dist/cli/chunks/{load-3Y35Y6FL.js → load-WIKLBESW.js} +2 -2
  228. package/dist/cli/chunks/load-test-UJLTMPXW.js +2 -0
  229. package/dist/cli/chunks/{mcp-NOHRCC4E.js → mcp-KR43GFGP.js} +2 -2
  230. package/dist/cli/chunks/{memory-GC5OPOO6.js → memory-KQIYKAYU.js} +5 -5
  231. package/dist/cli/chunks/memory-backend-WJH6XER3.js +2 -0
  232. package/dist/cli/chunks/{memory-handlers-MLQAERRE.js → memory-handlers-LAI4AO4O.js} +2 -2
  233. package/dist/cli/chunks/multi-model-executor-NPS3VOAR.js +14 -0
  234. package/dist/cli/chunks/{opencode-installer-POKAOPXI.js → opencode-installer-FE475WME.js} +2 -2
  235. package/dist/cli/chunks/{orchestrator-N2T3CYEB.js → orchestrator-MW4MZ3RW.js} +6 -6
  236. package/dist/cli/chunks/{pipeline-KAVKGC5V.js → pipeline-R2TGZSUA.js} +2 -2
  237. package/dist/cli/chunks/{platform-DJPEA24D.js → platform-N2GZBCBP.js} +2 -2
  238. package/dist/cli/chunks/{plugin-RHZZP3OH.js → plugin-V2AQF23V.js} +2 -2
  239. package/dist/cli/chunks/{prime-radiant-advanced-wasm-6A57VDNI.js → prime-radiant-advanced-wasm-ZQSYRLRS.js} +2 -2
  240. package/dist/cli/chunks/protocol-executor-LYYYHXAX.js +2 -0
  241. package/dist/cli/chunks/{protocol-handler-FBR254XL.js → protocol-handler-V3U724F2.js} +2 -2
  242. package/dist/cli/chunks/{prove-YZXY34P6.js → prove-NCH56HZB.js} +2 -2
  243. package/dist/cli/chunks/provider-manager-7NUHS3T5.js +24 -0
  244. package/dist/cli/chunks/qe-reasoning-bank-JK4UKLYY.js +2 -0
  245. package/dist/cli/chunks/{quality-MICFT3VU.js → quality-J3IVPPPW.js} +2 -2
  246. package/dist/cli/chunks/queen-coordinator-6OKLSCHV.js +2 -0
  247. package/dist/cli/chunks/{real-embeddings-HJCRBDOM.js → real-embeddings-VURZXAEY.js} +2 -2
  248. package/dist/cli/chunks/{roocode-installer-K5LIUYDR.js → roocode-installer-STWFJGMR.js} +2 -2
  249. package/dist/cli/chunks/router-DDZHCGUD.js +2 -0
  250. package/dist/cli/chunks/routing-feedback-BA66F37P.js +2 -0
  251. package/dist/cli/chunks/{routing-handler-2KIQHWUQ.js → routing-handler-6GZT7EXM.js} +2 -2
  252. package/dist/cli/chunks/{ruvector-commands-DYGX7PI6.js → ruvector-commands-LCPAH6WH.js} +2 -2
  253. package/dist/cli/chunks/{rvf-dual-writer-UTKSIJBG.js → rvf-dual-writer-76LWFT5X.js} +2 -2
  254. package/dist/cli/chunks/{rvf-migration-adapter-KVJLHJO7.js → rvf-migration-adapter-G7KFWJKY.js} +2 -2
  255. package/dist/cli/chunks/{rvf-migration-coordinator-CRIV4YVR.js → rvf-migration-coordinator-3DXOUPWF.js} +2 -2
  256. package/dist/cli/chunks/rvf-native-adapter-TXTRJNPW.js +2 -0
  257. package/dist/cli/chunks/safe-db-IFBVWIGF.js +2 -0
  258. package/dist/cli/chunks/schedule-WMZLOPCW.js +2 -0
  259. package/dist/cli/chunks/scheduler-WBORWJD5.js +2 -0
  260. package/dist/cli/chunks/{security-KSEP56UL.js → security-XDBPYA5T.js} +3 -3
  261. package/dist/cli/chunks/shared-rvf-adapter-SQQ27EEI.js +2 -0
  262. package/dist/cli/chunks/{shared-rvf-dual-writer-HD5QOOJD.js → shared-rvf-dual-writer-UGXTS2XI.js} +2 -2
  263. package/dist/cli/chunks/sqlite-persistence-XH47B3BG.js +2 -0
  264. package/dist/cli/chunks/{status-handler-AMKMMUNW.js → status-handler-ZLXES3QL.js} +2 -2
  265. package/dist/cli/chunks/{structural-health-GUTWSPBY.js → structural-health-4PFCOQ7T.js} +2 -2
  266. package/dist/cli/chunks/{sync-OSJF3J4K.js → sync-3DROIEZN.js} +2 -2
  267. package/dist/cli/chunks/{task-handler-4V4WMTJE.js → task-handler-4UGZ5VIE.js} +2 -2
  268. package/dist/cli/chunks/{task-handlers-EAORRI7E.js → task-handlers-I5VVBTWI.js} +2 -2
  269. package/dist/cli/chunks/{test-EGW6L6ZI.js → test-Z2MM7O5A.js} +4 -4
  270. package/dist/cli/chunks/{test-scheduling-UK2GVD67.js → test-scheduling-AP76GKN5.js} +4 -4
  271. package/dist/cli/chunks/{token-bootstrap-DT2FQWIK.js → token-bootstrap-P54N6PZV.js} +2 -2
  272. package/dist/cli/chunks/{token-usage-HQVOD3I3.js → token-usage-AXAZTPA6.js} +2 -2
  273. package/dist/cli/chunks/{transformers-TDZOMLEQ.js → transformers-VOZ2Z7FS.js} +2 -2
  274. package/dist/cli/chunks/{tree-sitter-wasm-parser-XT3A32J7.js → tree-sitter-wasm-parser-IYKLBTXB.js} +2 -2
  275. package/dist/cli/chunks/{types-QOT5P6RH.js → types-TKDH5EBW.js} +2 -2
  276. package/dist/cli/chunks/unified-memory-NHJHPLIC.js +2 -0
  277. package/dist/cli/chunks/unified-memory-hnsw-IMMCI2XK.js +2 -0
  278. package/dist/cli/chunks/unified-persistence-JS6CEV35.js +2 -0
  279. package/dist/cli/chunks/{validate-SXCT3APL.js → validate-ZGF5FVZE.js} +2 -2
  280. package/dist/cli/chunks/{validate-swarm-WGJUWWJ6.js → validate-swarm-OPWWUWYA.js} +2 -2
  281. package/dist/cli/chunks/{vibium-ONK73HYI.js → vibium-HEQUGRKJ.js} +2 -2
  282. package/dist/cli/chunks/visual-security-XLO5JBVP.js +2 -0
  283. package/dist/cli/chunks/{web-tree-sitter-Q5TXI2BE.js → web-tree-sitter-JZ7JCJJR.js} +2 -2
  284. package/dist/cli/chunks/{windsurf-installer-HTJT3VIM.js → windsurf-installer-2SGRCS6C.js} +2 -2
  285. package/dist/cli/chunks/{witness-chain-7TPWQZ2P.js → witness-chain-LJUYOCB5.js} +2 -2
  286. package/dist/cli/chunks/witness-chain-PPWPHYTY.js +2 -0
  287. package/dist/cli/chunks/{workflow-LTC4J62A.js → workflow-QORI3KO7.js} +4 -4
  288. package/dist/cli/chunks/workflow-orchestrator-H4DKRHVP.js +2 -0
  289. package/dist/cli/chunks/{wrappers-TWCCXU2M.js → wrappers-3NR7LNB5.js} +2 -2
  290. package/dist/cli/commands/learning.js +28 -8
  291. package/dist/cli/commands/llm-router.js +3 -3
  292. package/dist/coordination/consensus/providers/claude-provider.d.ts +3 -3
  293. package/dist/coordination/consensus/providers/claude-provider.js +6 -3
  294. package/dist/coordination/task-executor.js +5 -5
  295. package/dist/domains/chaos-resilience/services/chaos-engineer.js +4 -4
  296. package/dist/domains/code-intelligence/services/knowledge-graph.js +5 -5
  297. package/dist/domains/constants.d.ts +4 -4
  298. package/dist/domains/constants.js +4 -4
  299. package/dist/domains/contract-testing/services/contract-validator.js +4 -4
  300. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +5 -5
  301. package/dist/domains/coverage-analysis/services/gap-detector.js +5 -5
  302. package/dist/domains/defect-intelligence/services/defect-predictor.js +5 -5
  303. package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +5 -5
  304. package/dist/domains/learning-optimization/services/learning-coordinator.js +4 -4
  305. package/dist/domains/quality-assessment/services/deployment-advisor.js +5 -5
  306. package/dist/domains/quality-assessment/services/quality-analyzer.js +5 -5
  307. package/dist/domains/requirements-validation/services/requirements-validator.js +5 -5
  308. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +5 -5
  309. package/dist/domains/test-execution/services/test-executor.js +4 -4
  310. package/dist/domains/test-generation/services/test-data-generator.d.ts +1 -0
  311. package/dist/domains/test-generation/services/test-data-generator.js +17 -3
  312. package/dist/domains/test-generation/services/test-generator.js +5 -5
  313. package/dist/domains/visual-accessibility/services/visual-tester.js +4 -4
  314. package/dist/init/init-wizard-steps.js +1 -1
  315. package/dist/init/kiro-installer.js +8 -8
  316. package/dist/init/phases/12-verification.js +1 -1
  317. package/dist/integrations/agentic-flow/model-router/types.js +8 -8
  318. package/dist/mcp/bundle.js +1782 -1790
  319. package/dist/mcp/protocol-server.js +20 -10
  320. package/dist/mcp/security/sampling-server.js +1 -1
  321. package/dist/routing/advisor/multi-model-executor.d.ts +6 -2
  322. package/dist/routing/advisor/multi-model-executor.js +19 -3
  323. package/dist/routing/security/cyber-pin.d.ts +58 -0
  324. package/dist/routing/security/cyber-pin.js +75 -0
  325. package/dist/shared/llm/cost-tracker.js +5 -0
  326. package/dist/shared/llm/effort-resolver.d.ts +79 -0
  327. package/dist/shared/llm/effort-resolver.js +128 -0
  328. package/dist/shared/llm/interfaces.d.ts +11 -1
  329. package/dist/shared/llm/metrics/cost-metrics.js +1 -1
  330. package/dist/shared/llm/model-mapping.js +31 -0
  331. package/dist/shared/llm/model-registry.d.ts +40 -0
  332. package/dist/shared/llm/model-registry.js +126 -2
  333. package/dist/shared/llm/provider-manager.js +1 -1
  334. package/dist/shared/llm/providers/bedrock.js +9 -7
  335. package/dist/shared/llm/providers/claude.js +31 -4
  336. package/dist/shared/llm/router/agent-router-config.js +16 -16
  337. package/dist/shared/llm/router/hybrid-router.js +18 -1
  338. package/dist/shared/llm/router/routing-rules.js +9 -9
  339. package/dist/shared/llm/router/types.js +29 -29
  340. package/dist/shared/llm/translation/message-formatter.js +3 -3
  341. package/package.json +7 -5
  342. package/dist/cli/chunks/adapter-EOD4AG2T.js +0 -2
  343. package/dist/cli/chunks/aqe-learning-engine-6REY3BZB.js +0 -2
  344. package/dist/cli/chunks/base-HFVYEJKR.js +0 -2
  345. package/dist/cli/chunks/browser-workflow-GPR3IS36.js +0 -2
  346. package/dist/cli/chunks/chunk-2FW56URL.js +0 -65
  347. package/dist/cli/chunks/chunk-4GGDA6PF.js +0 -2
  348. package/dist/cli/chunks/chunk-5F2CEYZG.js +0 -3029
  349. package/dist/cli/chunks/chunk-6Q7F4HBV.js +0 -12
  350. package/dist/cli/chunks/chunk-7IJIOZHW.js +0 -5
  351. package/dist/cli/chunks/chunk-A3YIGC75.js +0 -18
  352. package/dist/cli/chunks/chunk-AAHBVTUJ.js +0 -2
  353. package/dist/cli/chunks/chunk-E6HTC3I2.js +0 -2
  354. package/dist/cli/chunks/chunk-FJZQH4JB.js +0 -2
  355. package/dist/cli/chunks/chunk-GIWDEW4K.js +0 -2
  356. package/dist/cli/chunks/chunk-HBQRFR7Q.js +0 -2
  357. package/dist/cli/chunks/chunk-HJL4CRV6.js +0 -3
  358. package/dist/cli/chunks/chunk-K5TK4HNR.js +0 -2
  359. package/dist/cli/chunks/chunk-LVCBXFHT.js +0 -2
  360. package/dist/cli/chunks/chunk-NVMJS347.js +0 -2
  361. package/dist/cli/chunks/chunk-UGCPQGQV.js +0 -2
  362. package/dist/cli/chunks/chunk-UZX62Z2K.js +0 -2
  363. package/dist/cli/chunks/chunk-X7IRGKAM.js +0 -2
  364. package/dist/cli/chunks/chunk-XEHMWICD.js +0 -24
  365. package/dist/cli/chunks/chunk-Z7E27V5F.js +0 -2
  366. package/dist/cli/chunks/client-NGAZ5BMU.js +0 -2
  367. package/dist/cli/chunks/cross-domain-router-ORAWSROD.js +0 -2
  368. package/dist/cli/chunks/daemon-LGFCMQVV.js +0 -19
  369. package/dist/cli/chunks/dream-N72NDTWM.js +0 -2
  370. package/dist/cli/chunks/esm-node-OUE76NVS.js +0 -2
  371. package/dist/cli/chunks/heartbeat-scheduler-4CKQSIHQ.js +0 -2
  372. package/dist/cli/chunks/hnsw-adapter-DO7CQXCP.js +0 -2
  373. package/dist/cli/chunks/hnsw-index-B6FEXSZX.js +0 -2
  374. package/dist/cli/chunks/hybrid-router-236O2EMV.js +0 -2
  375. package/dist/cli/chunks/impact-analyzer-E2DVJTE7.js +0 -2
  376. package/dist/cli/chunks/init-wizard-KQCWXEDA.js +0 -2
  377. package/dist/cli/chunks/kernel-KBING4CP.js +0 -2
  378. package/dist/cli/chunks/knowledge-graph-AF6OAAJ5.js +0 -2
  379. package/dist/cli/chunks/learning-JE7PDBQV.js +0 -107
  380. package/dist/cli/chunks/load-test-LKIZ376E.js +0 -2
  381. package/dist/cli/chunks/memory-backend-HHGGHQYM.js +0 -2
  382. package/dist/cli/chunks/multi-model-executor-YE4JOCN5.js +0 -14
  383. package/dist/cli/chunks/protocol-executor-RNXGXAZC.js +0 -2
  384. package/dist/cli/chunks/provider-manager-H7QVBYXM.js +0 -24
  385. package/dist/cli/chunks/qe-reasoning-bank-ZMDU5MUW.js +0 -2
  386. package/dist/cli/chunks/queen-coordinator-4XWCCVIY.js +0 -2
  387. package/dist/cli/chunks/router-JYGSCGGM.js +0 -2
  388. package/dist/cli/chunks/routing-feedback-DO5FLA62.js +0 -2
  389. package/dist/cli/chunks/rvf-native-adapter-SS6KKXJM.js +0 -2
  390. package/dist/cli/chunks/safe-db-A66XXHI7.js +0 -2
  391. package/dist/cli/chunks/schedule-DQRJD5H5.js +0 -2
  392. package/dist/cli/chunks/scheduler-PLSXEVV7.js +0 -2
  393. package/dist/cli/chunks/shared-rvf-adapter-DE2OVTUI.js +0 -2
  394. package/dist/cli/chunks/sqlite-persistence-R4IDAV5X.js +0 -2
  395. package/dist/cli/chunks/unified-memory-3MDWRNDW.js +0 -2
  396. package/dist/cli/chunks/unified-memory-hnsw-TEJXRLAS.js +0 -2
  397. package/dist/cli/chunks/unified-persistence-ALHQN2LG.js +0 -2
  398. package/dist/cli/chunks/visual-security-WFWC5N2E.js +0 -2
  399. package/dist/cli/chunks/witness-chain-T34QYEFI.js +0 -2
  400. package/dist/cli/chunks/workflow-orchestrator-UIVPDA7M.js +0 -2
@@ -1,24 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{b as T}from"./chunk-JAVMUPY3.js";import{a}from"./chunk-UZX62Z2K.js";import{b as E,c as te}from"./chunk-GIWDEW4K.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import{b as N,d as Q}from"./chunk-WEMOVPQS.js";import{b as v,c as L}from"./chunk-LJTRN6ZE.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import{b as ee,d as oe}from"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";oe();L();var re={failureThreshold:5,resetTimeoutMs:3e4,halfOpenSuccessThreshold:2,failureWindowMs:6e4,includeTimeouts:!0},J=class{state="closed";failures=[];successCount=0;totalRequests=0;totalSuccesses=0;totalFailures=0;rejectedCount=0;lastFailureTime;lastSuccessTime;openedAt;halfOpenSuccesses=0;config;providerType;constructor(t,e={}){this.providerType=t,this.config={...re,...e}}getState(){return this.state==="open"&&this.openedAt&&Date.now()-this.openedAt.getTime()>=this.config.resetTimeoutMs&&this.transitionTo("half-open"),this.state}canExecute(){let t=this.getState();return t==="closed"?!0:t!=="open"}async execute(t){if(this.totalRequests++,this.getState()==="open")throw this.rejectedCount++,a(`Circuit breaker is open for provider ${this.providerType}`,"CIRCUIT_OPEN",{provider:this.providerType,retryable:!0,retryAfterMs:this.getTimeUntilTransition()});try{let r=await t();return this.recordSuccess(),r}catch(r){throw this.recordFailure(v(r)),r}}recordSuccess(){this.successCount++,this.totalSuccesses++,this.lastSuccessTime=new Date,this.getState()==="half-open"&&(this.halfOpenSuccesses++,this.halfOpenSuccesses>=this.config.halfOpenSuccessThreshold&&this.transitionTo("closed"))}recordFailure(t){if(this.totalFailures++,this.lastFailureTime=new Date,(t.message.toLowerCase().includes("timeout")||t.name==="TimeoutError"||t.name==="AbortError")&&!this.config.includeTimeouts)return;this.failures.push({timestamp:new Date,error:t}),this.cleanOldFailures();let r=this.getState();if(r==="half-open"){this.transitionTo("open");return}r==="closed"&&this.failures.length>=this.config.failureThreshold&&this.transitionTo("open")}getStats(){return{state:this.getState(),totalRequests:this.totalRequests,successCount:this.totalSuccesses,failureCount:this.totalFailures,rejectedCount:this.rejectedCount,lastFailureTime:this.lastFailureTime,lastSuccessTime:this.lastSuccessTime,timeUntilTransitionMs:this.getTimeUntilTransition()}}reset(){this.state="closed",this.failures=[],this.successCount=0,this.halfOpenSuccesses=0,this.openedAt=void 0}forceOpen(){this.transitionTo("open")}forceHalfOpen(){this.transitionTo("half-open")}getRecentFailures(t=5){return this.failures.slice(-t).map(e=>`[${e.timestamp.toISOString()}] ${e.error.message}`)}transitionTo(t){if(this.state!==t)switch(this.state=t,t){case"open":this.openedAt=new Date,this.halfOpenSuccesses=0;break;case"half-open":this.halfOpenSuccesses=0;break;case"closed":this.failures=[],this.openedAt=void 0,this.halfOpenSuccesses=0;break}}cleanOldFailures(){let t=Date.now()-this.config.failureWindowMs;this.failures=this.failures.filter(e=>e.timestamp.getTime()>t)}getTimeUntilTransition(){if(this.state==="open"&&this.openedAt){let t=Date.now()-this.openedAt.getTime(),e=this.config.resetTimeoutMs-t;return Math.max(0,e)}}},U=class{breakers=new Map;defaultConfig;constructor(t={}){this.defaultConfig={...re,...t}}getBreaker(t,e){let r=this.breakers.get(t);return r||(r=new J(t,{...this.defaultConfig,...e}),this.breakers.set(t,r)),r}getAllStats(){let t={};for(let[e,r]of this.breakers)t[e]=r.getStats();return t}getAvailableProviders(){let t=[];for(let[e,r]of this.breakers)r.canExecute()&&t.push(e);return t}resetAll(){for(let t of this.breakers.values())t.reset()}reset(t){let e=this.breakers.get(t);e&&e.reset()}};var se={maxSize:1e3,defaultTtlMs:36e5,enableLRU:!0,cacheGenerations:!0,cacheEmbeddings:!0,cacheCompletions:!0},A=class{cache=new Map;accessOrder=[];config;hits=0;misses=0;evictions=0;constructor(t={}){this.config={...se,...t}}static generateKey(t,e,r){let n=[t,r?.model??"default",String(r?.temperature??.7),String(r?.maxTokens??0),r?.systemPrompt??"",e].join("|"),o=0;for(let i=0;i<n.length;i++){let l=n.charCodeAt(i);o=(o<<5)-o+l,o=o&o}return`${t}:${Math.abs(o).toString(36)}`}get(t){let e=this.cache.get(t);if(!e){this.misses++;return}if(e.ttlMs>0&&Date.now()-e.createdAt.getTime()>e.ttlMs){this.delete(t),this.misses++;return}return this.hits++,e.lastAccessedAt=new Date,e.accessCount++,this.config.enableLRU&&this.updateAccessOrder(t),e.value}set(t,e,r){this.cache.size>=this.config.maxSize&&!this.cache.has(t)&&this.evictLRU();let s={value:e,createdAt:new Date,lastAccessedAt:new Date,accessCount:1,ttlMs:r??this.config.defaultTtlMs,keyHash:t};this.cache.set(t,s),this.config.enableLRU&&this.updateAccessOrder(t)}has(t){let e=this.cache.get(t);return e?e.ttlMs>0&&Date.now()-e.createdAt.getTime()>e.ttlMs?(this.delete(t),!1):!0:!1}delete(t){let e=this.cache.delete(t);if(e){let r=this.accessOrder.indexOf(t);r!==-1&&this.accessOrder.splice(r,1)}return e}clear(){this.cache.clear(),this.accessOrder=[],this.hits=0,this.misses=0,this.evictions=0}getStats(){let t=this.hits+this.misses,e=t>0?this.hits/t:0,r=0;for(let s of this.cache.values())r+=this.estimateSize(s.value);return{size:this.cache.size,maxSize:this.config.maxSize,hits:this.hits,misses:this.misses,hitRate:e,evictions:this.evictions,memoryUsageBytes:r}}keys(){return Array.from(this.cache.keys())}entries(){return Array.from(this.cache.entries())}import(t){for(let[e,r]of t)r.createdAt=new Date(r.createdAt),r.lastAccessedAt=new Date(r.lastAccessedAt),this.cache.set(e,r),this.accessOrder.push(e);for(;this.cache.size>this.config.maxSize;)this.evictLRU()}pruneExpired(){let t=Date.now(),e=0;for(let[r,s]of this.cache.entries())s.ttlMs>0&&t-s.createdAt.getTime()>s.ttlMs&&(this.delete(r),e++);return e}updateAccessOrder(t){let e=this.accessOrder.indexOf(t);e!==-1&&this.accessOrder.splice(e,1),this.accessOrder.push(t)}evictLRU(){if(this.accessOrder.length===0){let e=this.cache.keys().next().value;e&&(this.cache.delete(e),this.evictions++);return}let t=this.accessOrder.shift();t&&(this.cache.delete(t),this.evictions++)}estimateSize(t){return t==null?0:JSON.stringify(t).length*2}},D=class{generationCache;embeddingCache;completionCache;config;constructor(t={}){this.config={...se,...t},this.generationCache=new A(t),this.embeddingCache=new A(t),this.completionCache=new A(t)}getGeneration(t,e){if(!this.config.cacheGenerations)return;let r=A.generateKey("generation",t,e);return this.generationCache.get(r)}setGeneration(t,e,r,s){if(!this.config.cacheGenerations)return;let n=A.generateKey("generation",t,r);this.generationCache.set(n,e,s)}getEmbedding(t,e){if(!this.config.cacheEmbeddings)return;let r=A.generateKey("embedding",t,e);return this.embeddingCache.get(r)}setEmbedding(t,e,r,s){if(!this.config.cacheEmbeddings)return;let n=A.generateKey("embedding",t,r);this.embeddingCache.set(n,e,s)}getCompletion(t,e){if(!this.config.cacheCompletions)return;let r=A.generateKey("completion",t,e);return this.completionCache.get(r)}setCompletion(t,e,r,s){if(!this.config.cacheCompletions)return;let n=A.generateKey("completion",t,r);this.completionCache.set(n,e,s)}getStats(){let t=this.generationCache.getStats(),e=this.embeddingCache.getStats(),r=this.completionCache.getStats(),s=t.hits+e.hits+r.hits,n=t.misses+e.misses+r.misses,o=s+n;return{generation:t,embedding:e,completion:r,total:{size:t.size+e.size+r.size,maxSize:this.config.maxSize*3,hits:s,misses:n,hitRate:o>0?s/o:0,evictions:t.evictions+e.evictions+r.evictions,memoryUsageBytes:t.memoryUsageBytes+e.memoryUsageBytes+r.memoryUsageBytes}}}clear(){this.generationCache.clear(),this.embeddingCache.clear(),this.completionCache.clear()}pruneExpired(){return this.generationCache.pruneExpired()+this.embeddingCache.pruneExpired()+this.completionCache.pruneExpired()}};L();function X(b,t,e,r){let s=Math.min(t*Math.pow(2,b),e),n=Math.random()*r*s;return s+n}var ne=1e3,ie=3e4;function k(b,t=ne,e=ie){return X(b,t,e,0)}var ae={model:"claude-sonnet-4-20250514",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,anthropicVersion:"2023-06-01",enableCache:!0,enableCircuitBreaker:!0},K=class{type="claude";name="Anthropic Claude";config;requestId=0;constructor(t={}){this.config={...ae,...t}}async isAvailable(){if(!this.getApiKey())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){if(!this.getApiKey())return{healthy:!1,error:"API key not configured. Set ANTHROPIC_API_KEY environment variable."};let e=Date.now();try{let r=await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/messages`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:this.config.model,max_tokens:1,messages:[{role:"user",content:"Hi"}]})},5e3),s=Date.now()-e;if(!r.ok){let n=await r.text();return{healthy:!1,latencyMs:s,error:`API error: ${r.status} - ${n}`}}return{healthy:!0,latencyMs:s,models:this.getSupportedModels(),details:{apiVersion:this.config.anthropicVersion,defaultModel:this.config.model}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){if(!this.getApiKey())throw a("Anthropic API key not configured","API_KEY_MISSING",{provider:"claude",retryable:!1});let s=this.formatMessages(t),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??4096,i=e?.temperature??this.config.temperature??.7,l=`claude-${++this.requestId}-${Date.now()}`,m=Date.now(),h={model:n,max_tokens:o,temperature:i,messages:s};e?.systemPrompt&&(h.system=e.systemPrompt),e?.stopSequences&&e.stopSequences.length>0&&(h.stop_sequences=e.stopSequences);try{let c=await this.fetchWithRetry(`${this.getBaseUrl()}/v1/messages`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),u=Date.now()-m;if(!c.ok){let g=await c.json().catch(()=>({error:{message:"Unknown error"}}));throw this.handleApiError(c.status,g,n)}let p=await c.json(),d={promptTokens:p.usage.input_tokens,completionTokens:p.usage.output_tokens,totalTokens:p.usage.input_tokens+p.usage.output_tokens},f=E.calculateCost(n,d);return T.recordTokenUsage(l,"claude-provider","llm","generate",{inputTokens:p.usage.input_tokens,outputTokens:p.usage.output_tokens,totalTokens:p.usage.input_tokens+p.usage.output_tokens,estimatedCostUsd:f.totalCost}),{content:p.content.filter(g=>g.type==="text").map(g=>g.text).join(""),model:p.model,provider:"claude",usage:d,cost:f,latencyMs:u,finishReason:this.mapFinishReason(p.stop_reason),cached:!1,requestId:l}}catch(c){throw c instanceof Error&&"code"in c?c:a(c instanceof Error?c.message:"Request failed","NETWORK_ERROR",{provider:"claude",model:n,retryable:!0,cause:c})}}async embed(t,e){throw a("Claude does not support native embeddings. Use OpenAI or Ollama for embeddings.","MODEL_NOT_FOUND",{provider:"claude",retryable:!1})}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
3
-
4
- `,"```"]});return{completion:r.content,model:r.model,provider:"claude",usage:r.usage,latencyMs:r.latencyMs,cached:r.cached}}getConfig(){return{...this.config}}getSupportedModels(){return["claude-opus-4-5-20251101","claude-sonnet-4-20250514","claude-3-5-haiku-20241022","claude-3-opus-20240229","claude-3-sonnet-20240229","claude-3-haiku-20240307"]}getCostPerToken(){return E.getCostPerToken(this.config.model)}async dispose(){}getApiKey(){return this.config.apiKey??process.env.ANTHROPIC_API_KEY}getBaseUrl(){return(this.config.baseUrl??"https://api.anthropic.com").replace(/\/$/,"")}getHeaders(){return{"Content-Type":"application/json","x-api-key":this.getApiKey(),"anthropic-version":this.config.anthropicVersion??"2023-06-01"}}formatMessages(t){return typeof t=="string"?[{role:"user",content:t}]:t.filter(e=>e.role!=="system").map(e=>({role:e.role,content:e.content}))}mapFinishReason(t){switch(t){case"end_turn":return"stop";case"max_tokens":return"length";case"stop_sequence":return"stop";default:return"stop"}}handleApiError(t,e,r){let s="error"in e?e.error?.message??"Unknown API error":"Unknown API error",n="error"in e&&"type"in e.error?e.error.type:"";switch(t){case 401:throw a(s,"API_KEY_INVALID",{provider:"claude",model:r,retryable:!1});case 429:throw a(s,"RATE_LIMITED",{provider:"claude",model:r,retryable:!0,retryAfterMs:6e4});case 400:throw n==="invalid_request_error"&&s.includes("context")?a(s,"CONTEXT_LENGTH_EXCEEDED",{provider:"claude",model:r,retryable:!1}):a(s,"UNKNOWN",{provider:"claude",model:r,retryable:!1});case 500:case 502:case 503:throw a(s,"PROVIDER_UNAVAILABLE",{provider:"claude",model:r,retryable:!0,retryAfterMs:5e3});default:throw a(s,"UNKNOWN",{provider:"claude",model:r,retryable:!1})}}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"claude",retryable:!0}):o}finally{clearTimeout(n)}}async fetchWithRetry(t,e,r,s){let n;for(let o=0;o<s;o++)try{let i=await this.fetchWithTimeout(t,e,r);if(i.status>=400&&i.status<500&&i.status!==429)return i;if((i.status>=500||i.status===429)&&o<s-1){let l=k(o);await this.sleep(l);continue}return i}catch(i){if(n=v(i),o<s-1){let l=k(o);await this.sleep(l)}}throw n??new Error("Request failed after retries")}sleep(t){return new Promise(e=>setTimeout(e,t))}};L();var ce={model:"gpt-4o",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,enableCache:!0,enableCircuitBreaker:!0},q=class{type="openai";name="OpenAI";config;requestId=0;constructor(t={}){this.config={...ce,...t}}async isAvailable(){if(!this.getApiKey())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){if(!this.getApiKey())return{healthy:!1,error:"API key not configured. Set OPENAI_API_KEY environment variable."};let e=Date.now();try{let r=await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/chat/completions`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:this.config.model,max_tokens:1,messages:[{role:"user",content:"Hi"}]})},5e3),s=Date.now()-e;if(!r.ok){let n=await r.text();return{healthy:!1,latencyMs:s,error:`API error: ${r.status} - ${n}`}}return{healthy:!0,latencyMs:s,models:this.getSupportedModels(),details:{defaultModel:this.config.model,organization:this.config.organization}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){if(!this.getApiKey())throw a("OpenAI API key not configured","API_KEY_MISSING",{provider:"openai",retryable:!1});let s=this.formatMessages(t,e?.systemPrompt),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??4096,i=e?.temperature??this.config.temperature??.7,l=`openai-${++this.requestId}-${Date.now()}`,m=Date.now(),h={model:n,max_tokens:o,temperature:i,messages:s};e?.stopSequences&&e.stopSequences.length>0&&(h.stop=e.stopSequences),this.config.presencePenalty!==void 0&&(h.presence_penalty=this.config.presencePenalty),this.config.frequencyPenalty!==void 0&&(h.frequency_penalty=this.config.frequencyPenalty);try{let c=await this.fetchWithRetry(`${this.getBaseUrl()}/v1/chat/completions`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),u=Date.now()-m;if(!c.ok){let g=await c.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(c.status,g,n)}let p=await c.json(),d={promptTokens:p.usage.prompt_tokens,completionTokens:p.usage.completion_tokens,totalTokens:p.usage.total_tokens},f=E.calculateCost(n,d);return T.recordTokenUsage(l,"openai-provider","llm","generate",{inputTokens:p.usage.prompt_tokens,outputTokens:p.usage.completion_tokens,totalTokens:p.usage.total_tokens,estimatedCostUsd:f.totalCost}),{content:p.choices[0]?.message?.content??"",model:p.model,provider:"openai",usage:d,cost:f,latencyMs:u,finishReason:this.mapFinishReason(p.choices[0]?.finish_reason),cached:!1,requestId:l}}catch(c){throw c instanceof Error&&"code"in c?c:a(c instanceof Error?c.message:"Request failed","NETWORK_ERROR",{provider:"openai",model:n,retryable:!0,cause:c})}}async embed(t,e){if(!this.getApiKey())throw a("OpenAI API key not configured","API_KEY_MISSING",{provider:"openai",retryable:!1});let s=e?.model??"text-embedding-3-small",n=Date.now();try{let o=await this.fetchWithTimeout(`${this.getBaseUrl()}/v1/embeddings`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:s,input:t})},e?.timeoutMs??this.config.timeoutMs??3e4),i=Date.now()-n;if(!o.ok){let m=await o.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(o.status,m,s)}let l=await o.json();return{embedding:l.data[0].embedding,model:l.model,provider:"openai",tokenCount:l.usage.total_tokens,latencyMs:i,cached:!1}}catch(o){throw o instanceof Error&&"code"in o?o:a(o instanceof Error?o.message:"Embedding request failed","NETWORK_ERROR",{provider:"openai",model:s,retryable:!0,cause:o})}}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
5
-
6
- `]});return{completion:r.content,model:r.model,provider:"openai",usage:r.usage,latencyMs:r.latencyMs,cached:r.cached}}getConfig(){return{...this.config}}getSupportedModels(){return["gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4","gpt-3.5-turbo"]}getCostPerToken(){return E.getCostPerToken(this.config.model)}async dispose(){}getApiKey(){return this.config.apiKey??process.env.OPENAI_API_KEY}getBaseUrl(){return(this.config.baseUrl??"https://api.openai.com").replace(/\/$/,"")}getHeaders(){let t={"Content-Type":"application/json",Authorization:`Bearer ${this.getApiKey()}`};return this.config.organization&&(t["OpenAI-Organization"]=this.config.organization),t}formatMessages(t,e){let r=[];if(typeof t=="string")e&&r.push({role:"system",content:e}),r.push({role:"user",content:t});else{let s=t.some(n=>n.role==="system");e&&!s&&r.push({role:"system",content:e});for(let n of t)r.push({role:n.role,content:n.content})}return r}mapFinishReason(t){switch(t){case"stop":return"stop";case"length":return"length";case"content_filter":return"content_filter";default:return"stop"}}handleApiError(t,e,r){let s=e.error?.message??"Unknown API error",n=e.error?.type??"",o=e.error?.code??"";switch(t){case 401:throw a(s,"API_KEY_INVALID",{provider:"openai",model:r,retryable:!1});case 429:throw a(s,"RATE_LIMITED",{provider:"openai",model:r,retryable:!0,retryAfterMs:6e4});case 400:throw o==="context_length_exceeded"||n==="invalid_request_error"?a(s,"CONTEXT_LENGTH_EXCEEDED",{provider:"openai",model:r,retryable:!1}):a(s,"UNKNOWN",{provider:"openai",model:r,retryable:!1});case 500:case 502:case 503:throw a(s,"PROVIDER_UNAVAILABLE",{provider:"openai",model:r,retryable:!0,retryAfterMs:5e3});default:throw a(s,"UNKNOWN",{provider:"openai",model:r,retryable:!1})}}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"openai",retryable:!0}):o}finally{clearTimeout(n)}}async fetchWithRetry(t,e,r,s){let n;for(let o=0;o<s;o++)try{let i=await this.fetchWithTimeout(t,e,r);if(i.status>=400&&i.status<500&&i.status!==429)return i;if((i.status>=500||i.status===429)&&o<s-1){let l=k(o);await this.sleep(l);continue}return i}catch(i){if(n=v(i),o<s-1){let l=k(o);await this.sleep(l)}}throw n??new Error("Request failed after retries")}sleep(t){return new Promise(e=>setTimeout(e,t))}};var le={model:"llama3.1",baseUrl:"http://localhost:11434",maxTokens:4096,temperature:.7,timeoutMs:12e4,maxRetries:2,contextLength:4096,keepAlive:"5m",enableCache:!0,enableCircuitBreaker:!0},B=class{type="ollama";name="Ollama (Local)";config;requestId=0;availableModels=[];constructor(t={}){this.config={...le,...t}}async isAvailable(){try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){let t=Date.now();try{let e=await this.fetchWithTimeout(`${this.getBaseUrl()}/api/tags`,{method:"GET",headers:{"Content-Type":"application/json"}},5e3),r=Date.now()-t;if(!e.ok)return{healthy:!1,latencyMs:r,error:`Ollama server returned ${e.status}`};let s=await e.json();return this.availableModels=s.models?.map(o=>o.name.split(":")[0])??[],!this.availableModels.some(o=>o===this.config.model||o.startsWith(this.config.model)||this.config.model.startsWith(o))&&this.availableModels.length>0?{healthy:!0,latencyMs:r,models:this.availableModels,details:{warning:`Configured model '${this.config.model}' not found. Available: ${this.availableModels.join(", ")}`,defaultModel:this.config.model}}:{healthy:!0,latencyMs:r,models:this.availableModels,details:{defaultModel:this.config.model,modelCount:this.availableModels.length}}}catch(e){return{healthy:!1,error:`Ollama not running. Start with: ollama serve. Error: ${e instanceof Error?e.message:"Unknown"}`}}}async generate(t,e){let r=e?.model??this.config.model,s=e?.maxTokens??this.config.maxTokens??4096,n=e?.temperature??this.config.temperature??.7,o=`ollama-${++this.requestId}-${Date.now()}`,i=Date.now(),l=Array.isArray(t);try{let m,h,c,u;if(l){let y=this.formatMessages(t,e?.systemPrompt);if(m=await this.fetchWithTimeout(`${this.getBaseUrl()}/api/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:r,messages:y,stream:!1,options:{temperature:n,num_predict:s,stop:e?.stopSequences}})},e?.timeoutMs??this.config.timeoutMs??12e4),!m.ok)throw await this.handleApiError(m,r);let g=await m.json();h=g.message.content,c=g.prompt_eval_count??this.estimateTokens(JSON.stringify(y)),u=g.eval_count??this.estimateTokens(h)}else{let y=e?.systemPrompt?`${e.systemPrompt}
7
-
8
- ${t}`:t;if(m=await this.fetchWithTimeout(`${this.getBaseUrl()}/api/generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:r,prompt:y,stream:!1,options:{temperature:n,num_predict:s,stop:e?.stopSequences}})},e?.timeoutMs??this.config.timeoutMs??12e4),!m.ok)throw await this.handleApiError(m,r);let g=await m.json();h=g.response,c=g.prompt_eval_count??this.estimateTokens(y),u=g.eval_count??this.estimateTokens(h)}let p=Date.now()-i,d={promptTokens:c,completionTokens:u,totalTokens:c+u},f=E.calculateCost(r,d);return T.recordTokenUsage(o,"ollama-provider","llm","generate",{inputTokens:c,outputTokens:u,totalTokens:c+u,estimatedCostUsd:f.totalCost}),{content:h,model:r,provider:"ollama",usage:d,cost:f,latencyMs:p,finishReason:"stop",cached:!1,requestId:o}}catch(m){throw m instanceof Error&&"code"in m?m:a(m instanceof Error?m.message:"Request failed","NETWORK_ERROR",{provider:"ollama",model:r,retryable:!0,cause:m})}}async embed(t,e){let r=e?.model??"all-MiniLM-L6-v2",s=Date.now();try{let n=await this.fetchWithTimeout(`${this.getBaseUrl()}/api/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:r,prompt:t})},e?.timeoutMs??3e4),o=Date.now()-s;if(!n.ok)throw await this.handleApiError(n,r);return{embedding:(await n.json()).embedding,model:r,provider:"ollama",tokenCount:this.estimateTokens(t),latencyMs:o,cached:!1}}catch(n){throw n instanceof Error&&"code"in n?n:a(n instanceof Error?n.message:"Embedding request failed","NETWORK_ERROR",{provider:"ollama",model:r,retryable:!0,cause:n})}}async complete(t,e){let r=e?.model??this.selectCodeModel(),s=await this.generate(t,{model:r,temperature:e?.temperature??.1,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
9
-
10
- `,"```","// ","# "]});return{completion:s.content,model:s.model,provider:"ollama",usage:s.usage,latencyMs:s.latencyMs,cached:s.cached}}getConfig(){return{...this.config}}getSupportedModels(){let t=["llama3","llama3.1","llama3.2","codellama","mistral","mixtral","phi3","qwen2","gemma","nomic-embed-text"],e=new Set([...t,...this.availableModels]);return Array.from(e)}getCostPerToken(){return{input:0,output:0}}async dispose(){}async pullModel(t){try{let e=await this.fetchWithTimeout(`${this.getBaseUrl()}/api/pull`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,stream:!1})},6e5);if(!e.ok){let r=await e.text();throw new Error(`Failed to pull model: ${r}`)}}catch(e){throw a(`Failed to pull model ${t}: ${e instanceof Error?e.message:"Unknown"}`,"MODEL_NOT_FOUND",{provider:"ollama",model:t,retryable:!0})}}getBaseUrl(){return(this.config.baseUrl??"http://localhost:11434").replace(/\/$/,"")}formatMessages(t,e){let r=[];e&&r.push({role:"system",content:e});for(let s of t)r.push({role:s.role,content:s.content});return r}selectCodeModel(){let t=["codellama","llama3.1","llama3","mistral"];for(let e of t)if(this.availableModels.some(r=>r===e||r.startsWith(e)))return e;return this.config.model}estimateTokens(t){return Math.ceil(t.length/4)}async handleApiError(t,e){let r=await t.text().catch(()=>"Unknown error");throw t.status===404?a(`Model '${e}' not found. Pull it with: ollama pull ${e}`,"MODEL_NOT_FOUND",{provider:"ollama",model:e,retryable:!1}):t.status===500?a(`Ollama server error: ${r}`,"PROVIDER_UNAVAILABLE",{provider:"ollama",model:e,retryable:!0,retryAfterMs:1e3}):a(`Ollama API error (${t.status}): ${r}`,"UNKNOWN",{provider:"ollama",model:e,retryable:!1})}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"ollama",retryable:!0}):o}finally{clearTimeout(n)}}};L();Q();var ue={model:"anthropic/claude-3.5-sonnet",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,enableCache:!0,enableCircuitBreaker:!0,baseUrl:"https://openrouter.ai/api/v1",allowFallback:!1},z={"anthropic/claude-3.5-sonnet":{input:3,output:15},"anthropic/claude-3.5-sonnet:beta":{input:3,output:15},"anthropic/claude-3-opus":{input:15,output:75},"anthropic/claude-3-sonnet":{input:3,output:15},"anthropic/claude-3-haiku":{input:.25,output:1.25},"openai/gpt-4o":{input:5,output:15},"openai/gpt-4o-mini":{input:.15,output:.6},"openai/gpt-4-turbo":{input:10,output:30},"openai/gpt-3.5-turbo":{input:.5,output:1.5},"google/gemini-pro":{input:.125,output:.375},"google/gemini-pro-1.5":{input:3.5,output:10.5},"meta-llama/llama-3.1-70b-instruct":{input:.59,output:.79},"meta-llama/llama-3.1-8b-instruct":{input:.06,output:.06},"mistralai/mistral-large":{input:2,output:6},"mistralai/mixtral-8x7b-instruct":{input:.24,output:.24},"mistralai/mistral-7b-instruct":{input:.06,output:.06},default:{input:1,output:3}},G=class{type="openai";name="OpenRouter";config;requestId=0;cachedModels=null;constructor(t={}){this.config={...ue,...t}}async isAvailable(){if(!this.getApiKey())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){if(!this.getApiKey())return{healthy:!1,error:"API key not configured. Set OPENROUTER_API_KEY environment variable."};let e=Date.now();try{let r=await this.fetchWithTimeout(`${this.getBaseUrl()}/models`,{method:"GET",headers:this.getHeaders()},5e3),s=Date.now()-e;if(!r.ok){let i=await r.text();return{healthy:!1,latencyMs:s,error:`API error: ${r.status} - ${i}`}}let o=(await r.json()).data?.map(i=>i.id)||[];return this.cachedModels=o,{healthy:!0,latencyMs:s,models:o.slice(0,20),details:{totalModels:o.length,defaultModel:this.config.model}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){if(!this.getApiKey())throw a("OpenRouter API key not configured","API_KEY_MISSING",{provider:"openai",retryable:!1});let s=this.formatMessages(t,e?.systemPrompt),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??4096,i=e?.temperature??this.config.temperature??.7,l=`openrouter-${++this.requestId}-${Date.now()}`,m=Date.now(),h={model:n,max_tokens:o,temperature:i,messages:s};e?.stopSequences&&e.stopSequences.length>0&&(h.stop=e.stopSequences),this.config.allowFallback!==void 0&&(h.route=this.config.allowFallback?"fallback":void 0),this.config.forceProvider&&(h.provider={order:[this.config.forceProvider]});try{let c=await this.fetchWithRetry(`${this.getBaseUrl()}/chat/completions`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),u=Date.now()-m;if(!c.ok){let g=await c.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(c.status,g,n)}let p=await c.json(),d={promptTokens:p.usage?.prompt_tokens??0,completionTokens:p.usage?.completion_tokens??0,totalTokens:p.usage?.total_tokens??0},f=this.calculateCost(n,d);return T.recordTokenUsage(l,"openrouter-provider","llm","generate",{inputTokens:d.promptTokens,outputTokens:d.completionTokens,totalTokens:d.totalTokens,estimatedCostUsd:f.totalCost}),{content:p.choices[0]?.message?.content??"",model:p.model,provider:"openai",usage:d,cost:f,latencyMs:u,finishReason:this.mapFinishReason(p.choices[0]?.finish_reason),cached:!1,requestId:l}}catch(c){throw c instanceof Error&&"code"in c?c:a(c instanceof Error?c.message:"Request failed","NETWORK_ERROR",{provider:"openai",model:n,retryable:!0,cause:c})}}async*generateStream(t,e){if(!this.getApiKey())throw a("OpenRouter API key not configured","API_KEY_MISSING",{provider:"openai",retryable:!1});let s=this.formatMessages(t,e?.systemPrompt),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??4096,i=e?.temperature??this.config.temperature??.7,l=`openrouter-stream-${++this.requestId}-${Date.now()}`,m=Date.now(),h={model:n,max_tokens:o,temperature:i,messages:s,stream:!0};e?.stopSequences&&e.stopSequences.length>0&&(h.stop=e.stopSequences);let c=await this.fetchWithTimeout(`${this.getBaseUrl()}/chat/completions`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4);if(!c.ok){let M=await c.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(c.status,M,n)}if(!c.body)throw a("No response body for streaming","NETWORK_ERROR",{provider:"openai",model:n,retryable:!0});let u="",p="stop",d=n,f=c.body.getReader(),y=new TextDecoder,g="";try{for(;;){let{done:M,value:V}=await f.read();if(M)break;g+=y.decode(V,{stream:!0});let x=g.split(`
11
- `);g=x.pop()||"";for(let _ of x){let P=_.trim();if(!(!P||P==="data: [DONE]")&&P.startsWith("data: "))try{let I=N(P.slice(6)),Y=I.choices[0]?.delta;Y?.content&&(u+=Y.content,yield Y.content),I.choices[0]?.finish_reason&&(p=this.mapFinishReason(I.choices[0].finish_reason)),I.model&&(d=I.model)}catch{}}}}finally{f.releaseLock()}let C=Date.now()-m,R=Math.ceil(JSON.stringify(s).length/4),O=Math.ceil(u.length/4),w={promptTokens:R,completionTokens:O,totalTokens:R+O},S=this.calculateCost(n,w);return T.recordTokenUsage(l,"openrouter-provider","llm","generate-stream",{inputTokens:w.promptTokens,outputTokens:w.completionTokens,totalTokens:w.totalTokens,estimatedCostUsd:S.totalCost}),{content:u,model:d,provider:"openai",usage:w,cost:S,latencyMs:C,finishReason:p,cached:!1,requestId:l}}async embed(t,e){if(!this.getApiKey())throw a("OpenRouter API key not configured","API_KEY_MISSING",{provider:"openai",retryable:!1});let s=e?.model??"openai/text-embedding-3-small",n=Date.now();try{let o=await this.fetchWithTimeout(`${this.getBaseUrl()}/embeddings`,{method:"POST",headers:this.getHeaders(),body:JSON.stringify({model:s,input:t})},e?.timeoutMs??this.config.timeoutMs??3e4),i=Date.now()-n;if(!o.ok){let m=await o.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(o.status,m,s)}let l=await o.json();return{embedding:l.data[0].embedding,model:l.model,provider:"openai",tokenCount:l.usage.total_tokens,latencyMs:i,cached:!1}}catch(o){throw o instanceof Error&&"code"in o?o:a(o instanceof Error?o.message:"Embedding request failed","NETWORK_ERROR",{provider:"openai",model:s,retryable:!0,cause:o})}}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
12
-
13
- `]});return{completion:r.content,model:r.model,provider:"openai",usage:r.usage,latencyMs:r.latencyMs,cached:r.cached}}getConfig(){return{...this.config}}getSupportedModels(){return this.cachedModels?this.cachedModels:["anthropic/claude-3.5-sonnet","anthropic/claude-3-opus","anthropic/claude-3-sonnet","anthropic/claude-3-haiku","openai/gpt-4o","openai/gpt-4o-mini","openai/gpt-4-turbo","openai/gpt-3.5-turbo","google/gemini-pro","google/gemini-pro-1.5","meta-llama/llama-3.1-70b-instruct","meta-llama/llama-3.1-8b-instruct","mistralai/mistral-large","mistralai/mixtral-8x7b-instruct"]}getCostPerToken(){let t=z[this.config.model]||z.default;return{input:t.input/1e6,output:t.output/1e6}}async dispose(){this.cachedModels=null}calculateCost(t,e){let r=z[t]||z.default,s=e.promptTokens/1e6*r.input,n=e.completionTokens/1e6*r.output;return{inputCost:s,outputCost:n,totalCost:s+n,currency:"USD"}}getApiKey(){return this.config.apiKey??process.env.OPENROUTER_API_KEY}getBaseUrl(){return(this.config.baseUrl??"https://openrouter.ai/api/v1").replace(/\/$/,"")}getHeaders(){let t={"Content-Type":"application/json",Authorization:`Bearer ${this.getApiKey()}`};return this.config.siteUrl&&(t["HTTP-Referer"]=this.config.siteUrl),this.config.siteName&&(t["X-Title"]=this.config.siteName),t}formatMessages(t,e){let r=[];if(typeof t=="string")e&&r.push({role:"system",content:e}),r.push({role:"user",content:t});else{let s=t.some(n=>n.role==="system");e&&!s&&r.push({role:"system",content:e});for(let n of t)r.push({role:n.role,content:n.content})}return r}mapFinishReason(t){switch(t){case"stop":return"stop";case"length":return"length";case"content_filter":return"content_filter";case"tool_calls":return"stop";default:return"stop"}}handleApiError(t,e,r){let s=e.error?.message??"Unknown API error",n=e.error?.type??"",o=e.error?.code;switch(t){case 401:throw a(s,"API_KEY_INVALID",{provider:"openai",model:r,retryable:!1});case 402:throw a(s,"COST_LIMIT_EXCEEDED",{provider:"openai",model:r,retryable:!1});case 429:throw a(s,"RATE_LIMITED",{provider:"openai",model:r,retryable:!0,retryAfterMs:6e4});case 400:throw o==="context_length_exceeded"||n==="invalid_request_error"?a(s,"CONTEXT_LENGTH_EXCEEDED",{provider:"openai",model:r,retryable:!1}):a(s,"UNKNOWN",{provider:"openai",model:r,retryable:!1});case 404:throw a(s,"MODEL_NOT_FOUND",{provider:"openai",model:r,retryable:!1});case 500:case 502:case 503:throw a(s,"PROVIDER_UNAVAILABLE",{provider:"openai",model:r,retryable:!0,retryAfterMs:5e3});default:throw a(s,"UNKNOWN",{provider:"openai",model:r,retryable:!1})}}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"openai",retryable:!0}):o}finally{clearTimeout(n)}}async fetchWithRetry(t,e,r,s){let n;for(let o=0;o<s;o++)try{let i=await this.fetchWithTimeout(t,e,r);if(i.status>=400&&i.status<500&&i.status!==429)return i;if((i.status>=500||i.status===429)&&o<s-1){let l=k(o);await this.sleep(l);continue}return i}catch(i){if(n=v(i),o<s-1){let l=k(o);await this.sleep(l)}}throw n??new Error("Request failed after retries")}sleep(t){return new Promise(e=>setTimeout(e,t))}};L();Q();var pe={model:"gemini-1.5-pro",maxTokens:8192,temperature:.7,timeoutMs:6e4,maxRetries:3,enableCache:!0,enableCircuitBreaker:!0,baseUrl:"https://generativelanguage.googleapis.com/v1beta",safetyThreshold:"BLOCK_MEDIUM_AND_ABOVE"},$={"gemini-pro":{input:.5,output:1.5},"gemini-1.0-pro":{input:.5,output:1.5},"gemini-1.5-pro":{input:3.5,output:10.5},"gemini-1.5-pro-latest":{input:3.5,output:10.5},"gemini-1.5-flash":{input:.075,output:.3},"gemini-1.5-flash-latest":{input:.075,output:.3},"gemini-2.0-flash-exp":{input:.075,output:.3},"gemini-ultra":{input:7,output:21},"gemini-1.0-ultra":{input:7,output:21},default:{input:1,output:3}},W=class{type="gemini";name="Google Gemini";config;requestId=0;cachedModels=null;constructor(t={}){this.config={...pe,...t}}async isAvailable(){if(!this.getApiKey())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){let t=this.getApiKey();if(!t)return{healthy:!1,error:"API key not configured. Set GOOGLE_AI_API_KEY or GEMINI_API_KEY environment variable."};let e=Date.now();try{let r=await this.fetchWithTimeout(`${this.getBaseUrl()}/models?key=${t}`,{method:"GET",headers:{"Content-Type":"application/json"}},5e3),s=Date.now()-e;if(!r.ok){let i=await r.text();return{healthy:!1,latencyMs:s,error:`API error: ${r.status} - ${i}`}}let o=(await r.json()).models?.filter(i=>i.supportedGenerationMethods?.includes("generateContent")).map(i=>i.name.replace("models/",""))||[];return this.cachedModels=o,{healthy:!0,latencyMs:s,models:o.slice(0,20),details:{totalModels:o.length,defaultModel:this.config.model}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){let r=this.getApiKey();if(!r)throw a("Gemini API key not configured","API_KEY_MISSING",{provider:"gemini",retryable:!1});let s=this.formatContents(t),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??8192,i=e?.temperature??this.config.temperature??.7,l=`gemini-${++this.requestId}-${Date.now()}`,m=Date.now(),h={contents:s,generationConfig:{maxOutputTokens:o,temperature:i,topP:this.config.topP}};e?.systemPrompt&&(h.systemInstruction={parts:[{text:e.systemPrompt}]}),e?.stopSequences&&e.stopSequences.length>0&&(h.generationConfig.stopSequences=e.stopSequences);try{let c=await this.fetchWithRetry(`${this.getBaseUrl()}/models/${n}:generateContent?key=${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),u=Date.now()-m;if(!c.ok){let g=await c.json().catch(()=>({error:{message:"Unknown error",code:0,status:"UNKNOWN"}}));throw this.handleApiError(c.status,g,n)}let p=await c.json(),d={promptTokens:p.usageMetadata?.promptTokenCount??0,completionTokens:p.usageMetadata?.candidatesTokenCount??0,totalTokens:p.usageMetadata?.totalTokenCount??0},f=this.calculateCost(n,d);return T.recordTokenUsage(l,"gemini-provider","llm","generate",{inputTokens:d.promptTokens,outputTokens:d.completionTokens,totalTokens:d.totalTokens,estimatedCostUsd:f.totalCost}),{content:p.candidates[0]?.content?.parts?.map(g=>g.text??"").join("")??"",model:p.modelVersion??n,provider:"gemini",usage:d,cost:f,latencyMs:u,finishReason:this.mapFinishReason(p.candidates[0]?.finishReason),cached:!1,requestId:l}}catch(c){throw c instanceof Error&&"code"in c?c:a(c instanceof Error?c.message:"Request failed","NETWORK_ERROR",{provider:"gemini",model:n,retryable:!0,cause:c})}}async*generateStream(t,e){let r=this.getApiKey();if(!r)throw a("Gemini API key not configured","API_KEY_MISSING",{provider:"gemini",retryable:!1});let s=this.formatContents(t),n=e?.model??this.config.model,o=e?.maxTokens??this.config.maxTokens??8192,i=e?.temperature??this.config.temperature??.7,l=`gemini-stream-${++this.requestId}-${Date.now()}`,m=Date.now(),h={contents:s,generationConfig:{maxOutputTokens:o,temperature:i}};e?.systemPrompt&&(h.systemInstruction={parts:[{text:e.systemPrompt}]});let c=await this.fetchWithTimeout(`${this.getBaseUrl()}/models/${n}:streamGenerateContent?key=${r}&alt=sse`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)},e?.timeoutMs??this.config.timeoutMs??6e4);if(!c.ok){let w=await c.json().catch(()=>({error:{message:"Unknown error",code:0,status:"UNKNOWN"}}));throw this.handleApiError(c.status,w,n)}if(!c.body)throw a("No response body for streaming","NETWORK_ERROR",{provider:"gemini",model:n,retryable:!0});let u="",p="stop",d={promptTokens:0,completionTokens:0,totalTokens:0},f=c.body.getReader(),y=new TextDecoder,g="";try{for(;;){let{done:w,value:S}=await f.read();if(w)break;g+=y.decode(S,{stream:!0});let M=g.split(`
14
- `);g=M.pop()||"";for(let V of M){let x=V.trim();if(!(!x||!x.startsWith("data: ")))try{let _=N(x.slice(6)),P=_.candidates?.[0]?.content?.parts?.map(I=>I.text??"").join("")??"";P&&(u+=P,yield P),_.candidates?.[0]?.finishReason&&(p=this.mapFinishReason(_.candidates[0].finishReason)),_.usageMetadata&&(d={promptTokens:_.usageMetadata.promptTokenCount,completionTokens:_.usageMetadata.candidatesTokenCount,totalTokens:_.usageMetadata.totalTokenCount})}catch{}}}}finally{f.releaseLock()}let C=Date.now()-m,R=d.totalTokens>0?d:{promptTokens:Math.ceil(JSON.stringify(s).length/4),completionTokens:Math.ceil(u.length/4),totalTokens:0};R.totalTokens=R.promptTokens+R.completionTokens;let O=this.calculateCost(n,R);return T.recordTokenUsage(l,"gemini-provider","llm","generate-stream",{inputTokens:R.promptTokens,outputTokens:R.completionTokens,totalTokens:R.totalTokens,estimatedCostUsd:O.totalCost}),{content:u,model:n,provider:"gemini",usage:R,cost:O,latencyMs:C,finishReason:p,cached:!1,requestId:l}}async embed(t,e){let r=this.getApiKey();if(!r)throw a("Gemini API key not configured","API_KEY_MISSING",{provider:"gemini",retryable:!1});let s=e?.model??"text-embedding-004",n=Date.now();try{let o=await this.fetchWithTimeout(`${this.getBaseUrl()}/models/${s}:embedContent?key=${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:{parts:[{text:t}]}})},e?.timeoutMs??this.config.timeoutMs??3e4),i=Date.now()-n;if(!o.ok){let m=await o.json().catch(()=>({error:{message:"Unknown error",code:0,status:"UNKNOWN"}}));throw this.handleApiError(o.status,m,s)}return{embedding:(await o.json()).embedding.values,model:s,provider:"gemini",tokenCount:Math.ceil(t.length/4),latencyMs:i,cached:!1}}catch(o){throw o instanceof Error&&"code"in o?o:a(o instanceof Error?o.message:"Embedding request failed","NETWORK_ERROR",{provider:"gemini",model:s,retryable:!0,cause:o})}}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
15
-
16
- `]});return{completion:r.content,model:r.model,provider:"gemini",usage:r.usage,latencyMs:r.latencyMs,cached:r.cached}}getConfig(){return{...this.config}}getSupportedModels(){return this.cachedModels?this.cachedModels:["gemini-pro","gemini-1.0-pro","gemini-1.5-pro","gemini-1.5-pro-latest","gemini-1.5-flash","gemini-1.5-flash-latest","gemini-2.0-flash-exp","gemini-ultra"]}getCostPerToken(){let t=$[this.config.model]||$.default;return{input:t.input/1e6,output:t.output/1e6}}async dispose(){this.cachedModels=null}calculateCost(t,e){let r=$[t]||$.default,s=e.promptTokens/1e6*r.input,n=e.completionTokens/1e6*r.output;return{inputCost:s,outputCost:n,totalCost:s+n,currency:"USD"}}getApiKey(){return this.config.apiKey??process.env.GOOGLE_AI_API_KEY??process.env.GEMINI_API_KEY}getBaseUrl(){return(this.config.baseUrl??"https://generativelanguage.googleapis.com/v1beta").replace(/\/$/,"")}formatContents(t){return typeof t=="string"?[{role:"user",parts:[{text:t}]}]:t.filter(e=>e.role!=="system").map(e=>({role:e.role==="assistant"?"model":"user",parts:[{text:e.content}]}))}mapFinishReason(t){switch(t){case"STOP":return"stop";case"MAX_TOKENS":return"length";case"SAFETY":return"content_filter";case"RECITATION":return"content_filter";default:return"stop"}}handleApiError(t,e,r){let s=e.error?.message??"Unknown API error",n=e.error?.status??"";switch(t){case 400:throw s.includes("token")||s.includes("length")||s.includes("exceeds")?a(s,"CONTEXT_LENGTH_EXCEEDED",{provider:"gemini",model:r,retryable:!1}):s.includes("API key")?a(s,"API_KEY_INVALID",{provider:"gemini",model:r,retryable:!1}):a(s,"UNKNOWN",{provider:"gemini",model:r,retryable:!1});case 401:case 403:throw a(s,"API_KEY_INVALID",{provider:"gemini",model:r,retryable:!1});case 404:throw a(s,"MODEL_NOT_FOUND",{provider:"gemini",model:r,retryable:!1});case 429:throw a(s,"RATE_LIMITED",{provider:"gemini",model:r,retryable:!0,retryAfterMs:6e4});case 500:case 502:case 503:throw a(s,"PROVIDER_UNAVAILABLE",{provider:"gemini",model:r,retryable:!0,retryAfterMs:5e3});default:throw a(s,"UNKNOWN",{provider:"gemini",model:r,retryable:!1})}}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"gemini",retryable:!0}):o}finally{clearTimeout(n)}}async fetchWithRetry(t,e,r,s){let n;for(let o=0;o<s;o++)try{let i=await this.fetchWithTimeout(t,e,r);if(i.status>=400&&i.status<500&&i.status!==429)return i;if((i.status>=500||i.status===429)&&o<s-1){let l=k(o);await this.sleep(l);continue}return i}catch(i){if(n=v(i),o<s-1){let l=k(o);await this.sleep(l)}}throw n??new Error("Request failed after retries")}sleep(t){return new Promise(e=>setTimeout(e,t))}};L();var de={model:"gpt-4o",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,enableCache:!0,enableCircuitBreaker:!0,apiVersion:"2024-02-15-preview"},j=class{type="azure-openai";name="Azure OpenAI";config;requestId=0;constructor(t){this.config={...de,...t}}async isAvailable(){let t=this.getEndpoint(),e=this.getApiKey()||this.getAzureAdToken();if(!t||!e||!this.config.deploymentId)return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){let t=this.getEndpoint(),e=this.getApiKey()||this.getAzureAdToken();if(!t)return{healthy:!1,error:"Azure endpoint not configured. Set AZURE_OPENAI_ENDPOINT environment variable."};if(!e)return{healthy:!1,error:"Azure authentication not configured. Set AZURE_OPENAI_API_KEY or provide azureAdToken."};if(!this.config.deploymentId)return{healthy:!1,error:"Deployment ID not configured. Set AZURE_OPENAI_DEPLOYMENT or provide deploymentId."};let r=Date.now();try{let s=await this.fetchWithTimeout(this.buildUrl("chat/completions"),{method:"POST",headers:this.getHeaders(),body:JSON.stringify({max_tokens:1,messages:[{role:"user",content:"Hi"}]})},5e3),n=Date.now()-r;if(!s.ok){let o=await s.text();return{healthy:!1,latencyMs:n,error:`API error: ${s.status} - ${o}`}}return{healthy:!0,latencyMs:n,models:this.getSupportedModels(),details:{endpoint:this.getEndpoint(),deploymentId:this.config.deploymentId,apiVersion:this.config.apiVersion,authType:this.getAzureAdToken()?"Azure AD":"API Key"}}}catch(s){return{healthy:!1,error:s instanceof Error?s.message:"Unknown error"}}}async generate(t,e){let r=this.getEndpoint(),s=this.getApiKey()||this.getAzureAdToken();if(!r||!s)throw a("Azure OpenAI not configured","API_KEY_MISSING",{provider:"azure-openai",retryable:!1});let n=this.formatMessages(t,e?.systemPrompt),o=e?.model??this.config.model??"gpt-4o",i=e?.maxTokens??this.config.maxTokens??4096,l=e?.temperature??this.config.temperature??.7,m=`azure-openai-${++this.requestId}-${Date.now()}`,h=Date.now(),c={max_tokens:i,temperature:l,messages:n};e?.stopSequences&&e.stopSequences.length>0&&(c.stop=e.stopSequences),this.config.presencePenalty!==void 0&&(c.presence_penalty=this.config.presencePenalty),this.config.frequencyPenalty!==void 0&&(c.frequency_penalty=this.config.frequencyPenalty);try{let u=await this.fetchWithRetry(this.buildUrl("chat/completions"),{method:"POST",headers:this.getHeaders(),body:JSON.stringify(c)},e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),p=Date.now()-h;if(!u.ok){let C=await u.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(u.status,C,o)}let d=await u.json(),f={promptTokens:d.usage.prompt_tokens,completionTokens:d.usage.completion_tokens,totalTokens:d.usage.total_tokens},y=E.calculateCost(o,f);return T.recordTokenUsage(m,"azure-openai-provider","llm","generate",{inputTokens:d.usage.prompt_tokens,outputTokens:d.usage.completion_tokens,totalTokens:d.usage.total_tokens,estimatedCostUsd:y.totalCost}),{content:d.choices[0]?.message?.content??"",model:d.model,provider:"azure-openai",usage:f,cost:y,latencyMs:p,finishReason:this.mapFinishReason(d.choices[0]?.finish_reason),cached:!1,requestId:m}}catch(u){throw u instanceof Error&&"code"in u?u:a(u instanceof Error?u.message:"Request failed","NETWORK_ERROR",{provider:"azure-openai",model:o,retryable:!0,cause:u})}}async embed(t,e){let r=this.getEndpoint(),s=this.getApiKey()||this.getAzureAdToken();if(!r||!s)throw a("Azure OpenAI not configured","API_KEY_MISSING",{provider:"azure-openai",retryable:!1});let n=e?.model??this.config.deploymentId,o=Date.now();try{let i=await this.fetchWithTimeout(this.buildUrl("embeddings",n),{method:"POST",headers:this.getHeaders(),body:JSON.stringify({input:t})},e?.timeoutMs??this.config.timeoutMs??3e4),l=Date.now()-o;if(!i.ok){let h=await i.json().catch(()=>({error:{message:"Unknown error",type:"unknown",code:null}}));throw this.handleApiError(i.status,h,n)}let m=await i.json();return{embedding:m.data[0].embedding,model:m.model,provider:"azure-openai",tokenCount:m.usage.total_tokens,latencyMs:l,cached:!1}}catch(i){throw i instanceof Error&&"code"in i?i:a(i instanceof Error?i.message:"Embedding request failed","NETWORK_ERROR",{provider:"azure-openai",model:n,retryable:!0,cause:i})}}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
17
-
18
- `]});return{completion:r.content,model:r.model,provider:"azure-openai",usage:r.usage,latencyMs:r.latencyMs,cached:r.cached}}getConfig(){return{...this.config}}getSupportedModels(){return["gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4","gpt-35-turbo","text-embedding-ada-002","text-embedding-3-small","text-embedding-3-large"]}getCostPerToken(){return E.getCostPerToken(this.config.model??"gpt-4o")}async dispose(){}getApiKey(){return this.config.apiKey??process.env.AZURE_OPENAI_API_KEY}getAzureAdToken(){return this.config.azureAdToken}getEndpoint(){return(this.config.endpoint??process.env.AZURE_OPENAI_ENDPOINT)?.replace(/\/$/,"")}getApiVersion(){return this.config.apiVersion??process.env.AZURE_OPENAI_API_VERSION??"2024-02-15-preview"}buildUrl(t,e){let r=this.getEndpoint(),s=e??this.config.deploymentId,n=this.getApiVersion();return`${r}/openai/deployments/${s}/${t}?api-version=${n}`}getHeaders(){let t={"Content-Type":"application/json"},e=this.getAzureAdToken();if(e)t.Authorization=`Bearer ${e}`;else{let r=this.getApiKey();r&&(t["api-key"]=r)}return t}formatMessages(t,e){let r=[];if(typeof t=="string")e&&r.push({role:"system",content:e}),r.push({role:"user",content:t});else{let s=t.some(n=>n.role==="system");e&&!s&&r.push({role:"system",content:e});for(let n of t)r.push({role:n.role,content:n.content})}return r}mapFinishReason(t){switch(t){case"stop":return"stop";case"length":return"length";case"content_filter":return"content_filter";default:return"stop"}}handleApiError(t,e,r){let s=e.error?.message??"Unknown API error",n=e.error?.code??"",o=e.error?.innererror?.code??"";switch(t){case 401:throw a(s,"API_KEY_INVALID",{provider:"azure-openai",model:r,retryable:!1});case 403:throw a(s,"API_KEY_INVALID",{provider:"azure-openai",model:r,retryable:!1});case 429:throw a(s,"RATE_LIMITED",{provider:"azure-openai",model:r,retryable:!0,retryAfterMs:6e4});case 400:throw n==="context_length_exceeded"||o==="context_length_exceeded"?a(s,"CONTEXT_LENGTH_EXCEEDED",{provider:"azure-openai",model:r,retryable:!1}):o==="content_filter"?a(s,"CONTENT_FILTERED",{provider:"azure-openai",model:r,retryable:!1}):a(s,"UNKNOWN",{provider:"azure-openai",model:r,retryable:!1});case 404:throw a(`Deployment not found: ${r}`,"MODEL_NOT_FOUND",{provider:"azure-openai",model:r,retryable:!1});case 500:case 502:case 503:throw a(s,"PROVIDER_UNAVAILABLE",{provider:"azure-openai",model:r,retryable:!0,retryAfterMs:5e3});default:throw a(s,"UNKNOWN",{provider:"azure-openai",model:r,retryable:!1})}}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"azure-openai",retryable:!0}):o}finally{clearTimeout(n)}}async fetchWithRetry(t,e,r,s){let n;for(let o=0;o<s;o++)try{let i=await this.fetchWithTimeout(t,e,r);if(i.status>=400&&i.status<500&&i.status!==429)return i;if((i.status>=500||i.status===429)&&o<s-1){let l=k(o);await this.sleep(l);continue}return i}catch(i){if(n=v(i),o<s-1){let l=k(o);await this.sleep(l)}}throw n??new Error("Request failed after retries")}sleep(t){return new Promise(e=>setTimeout(e,t))}};L();var me={model:"anthropic.claude-3-5-sonnet-20241022-v2:0",region:"us-east-1",maxTokens:4096,temperature:.7,timeoutMs:6e4,maxRetries:3,enableCache:!0,enableCircuitBreaker:!0},Z={"claude-opus-4-5-20251101":"anthropic.claude-opus-4-5-v1:0","claude-opus-4-5":"anthropic.claude-opus-4-5-v1:0","claude-opus-4-20250514":"anthropic.claude-opus-4-v1:0","claude-opus-4":"anthropic.claude-opus-4-v1:0","claude-sonnet-4-5-20250929":"anthropic.claude-sonnet-4-5-v2:0","claude-sonnet-4-5":"anthropic.claude-sonnet-4-5-v2:0","claude-sonnet-4-20250514":"anthropic.claude-sonnet-4-v1:0","claude-sonnet-4":"anthropic.claude-sonnet-4-v1:0","claude-3-5-haiku-20241022":"anthropic.claude-3-5-haiku-v1:0","claude-haiku-3-5":"anthropic.claude-3-5-haiku-v1:0","claude-3-opus-20240229":"anthropic.claude-3-opus-20240229-v1:0","claude-3-sonnet-20240229":"anthropic.claude-3-sonnet-20240229-v1:0","claude-3-haiku-20240307":"anthropic.claude-3-haiku-20240307-v1:0","claude-3-5-sonnet-20241022":"anthropic.claude-3-5-sonnet-20241022-v2:0"},Hr=Object.fromEntries(Object.entries(Z).map(([b,t])=>[t,b])),F=class{type="bedrock";name="AWS Bedrock";config;requestId=0;constructor(t={}){this.config={...me,...t}}async isAvailable(){if(!this.getCredentials())return!1;try{return(await this.healthCheck()).healthy}catch{return!1}}async healthCheck(){if(!this.getCredentials())return{healthy:!1,error:"AWS credentials not configured. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables, or use IAM role."};let e=Date.now();try{let r=this.mapToBedrockModel(this.config.model),s=await this.invokeModel(r,{anthropic_version:"bedrock-2023-05-31",max_tokens:1,messages:[{role:"user",content:"Hi"}]},5e3),n=Date.now()-e;if(!s.ok){let o=await s.text();return{healthy:!1,latencyMs:n,error:`API error: ${s.status} - ${o}`}}return{healthy:!0,latencyMs:n,models:this.getSupportedModels(),details:{region:this.getRegion(),defaultModel:this.config.model}}}catch(r){return{healthy:!1,error:r instanceof Error?r.message:"Unknown error"}}}async generate(t,e){if(!this.getCredentials())throw a("AWS credentials not configured","API_KEY_MISSING",{provider:"bedrock",retryable:!1});let s=this.formatMessages(t),n=e?.model??this.config.model,o=this.mapToBedrockModel(n),i=e?.maxTokens??this.config.maxTokens??4096,l=e?.temperature??this.config.temperature??.7,m=`bedrock-${++this.requestId}-${Date.now()}`,h=Date.now(),c={anthropic_version:"bedrock-2023-05-31",max_tokens:i,messages:s};l!==void 0&&(c.temperature=Math.min(Math.max(l,0),1)),e?.systemPrompt&&(c.system=e.systemPrompt),e?.stopSequences&&e.stopSequences.length>0&&(c.stop_sequences=e.stopSequences);try{let u=await this.invokeModelWithRetry(o,c,e?.timeoutMs??this.config.timeoutMs??6e4,this.config.maxRetries??3),p=Date.now()-h;if(!u.ok){let C=await u.json().catch(()=>({message:"Unknown error"}));throw this.handleApiError(u.status,C,n)}let d=await u.json(),f={promptTokens:d.usage.input_tokens,completionTokens:d.usage.output_tokens,totalTokens:d.usage.input_tokens+d.usage.output_tokens},y=E.calculateCost(o,f);return T.recordTokenUsage(m,"bedrock-provider","llm","generate",{inputTokens:d.usage.input_tokens,outputTokens:d.usage.output_tokens,totalTokens:d.usage.input_tokens+d.usage.output_tokens,estimatedCostUsd:y.totalCost}),{content:d.content.filter(C=>C.type==="text").map(C=>C.text).join(""),model:o,provider:"bedrock",usage:f,cost:y,latencyMs:p,finishReason:this.mapFinishReason(d.stop_reason),cached:!1,requestId:m}}catch(u){throw u instanceof Error&&"code"in u?u:a(u instanceof Error?u.message:"Request failed","NETWORK_ERROR",{provider:"bedrock",model:n,retryable:!0,cause:u})}}async embed(t,e){throw a("Bedrock Claude models do not support native embeddings. Use Bedrock Titan or Cohere for embeddings.","MODEL_NOT_FOUND",{provider:"bedrock",retryable:!1})}async complete(t,e){let r=await this.generate(t,{model:e?.model,temperature:e?.temperature??.2,maxTokens:e?.maxTokens??256,stopSequences:e?.stopSequences??[`
19
-
20
- `,"```"]});return{completion:r.content,model:r.model,provider:"bedrock",usage:r.usage,latencyMs:r.latencyMs,cached:r.cached}}getConfig(){return{...this.config}}getSupportedModels(){return Object.keys(Z)}getCostPerToken(){let t=this.mapToBedrockModel(this.config.model);return E.getCostPerToken(t)}async dispose(){}getCredentials(){let t=this.config.accessKeyId??process.env.AWS_ACCESS_KEY_ID,e=this.config.secretAccessKey??process.env.AWS_SECRET_ACCESS_KEY,r=this.config.sessionToken??process.env.AWS_SESSION_TOKEN;return!t||!e?null:{region:this.getRegion(),service:"bedrock",accessKeyId:t,secretAccessKey:e,sessionToken:r}}getRegion(){return this.config.region??process.env.AWS_REGION??process.env.AWS_DEFAULT_REGION??"us-east-1"}mapToBedrockModel(t){if(t.startsWith("anthropic."))return t;let e=Z[t];return e||t}getEndpointUrl(t){let e=this.getRegion();return`${this.config.baseUrl??`https://bedrock-runtime.${e}.amazonaws.com`}/model/${t}/invoke`}async invokeModel(t,e,r){let s=this.getCredentials();if(!s)throw a("AWS credentials not configured","API_KEY_MISSING",{provider:"bedrock",retryable:!1});let n=this.getEndpointUrl(t),o=JSON.stringify(e),i=await this.signRequest(n,o,s);return this.fetchWithTimeout(n,{method:"POST",headers:i,body:o},r)}async invokeModelWithRetry(t,e,r,s){let n;for(let o=0;o<s;o++)try{let i=await this.invokeModel(t,e,r);if(i.status>=400&&i.status<500&&i.status!==429)return i;if((i.status>=500||i.status===429)&&o<s-1){let l=k(o);await this.sleep(l);continue}return i}catch(i){if(n=v(i),o<s-1){let l=k(o);await this.sleep(l)}}throw n??new Error("Request failed after retries")}async signRequest(t,e,r){let s=new URL(t),o=new Date().toISOString().replace(/[:-]|\.\d{3}/g,""),i=o.substring(0,8),l={"Content-Type":"application/json",Host:s.host,"X-Amz-Date":o};r.sessionToken&&(l["X-Amz-Security-Token"]=r.sessionToken);let m="POST",h=s.pathname,c="",u=Object.keys(l).map(M=>M.toLowerCase()).sort().join(";"),p=Object.keys(l).map(M=>`${M.toLowerCase()}:${l[M].trim()}`).sort().join(`
21
- `)+`
22
- `,d=await this.sha256(e),f=[m,h,c,p,u,d].join(`
23
- `),y="AWS4-HMAC-SHA256",g=`${i}/${r.region}/${r.service}/aws4_request`,C=await this.sha256(f),R=[y,o,g,C].join(`
24
- `),O=await this.getSignatureKey(r.secretAccessKey,i,r.region,r.service),w=await this.hmacHex(O,R),S=`${y} Credential=${r.accessKeyId}/${g}, SignedHeaders=${u}, Signature=${w}`;return{...l,Authorization:S}}async sha256(t){let r=new TextEncoder().encode(t),s=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(s)).map(n=>n.toString(16).padStart(2,"0")).join("")}async hmac(t,e){let r=new TextEncoder,s=t instanceof Uint8Array?t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength):t,n=await crypto.subtle.importKey("raw",s,{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return crypto.subtle.sign("HMAC",n,r.encode(e))}async hmacHex(t,e){let r=await this.hmac(t,e);return Array.from(new Uint8Array(r)).map(s=>s.toString(16).padStart(2,"0")).join("")}async getSignatureKey(t,e,r,s){let n=new TextEncoder,o=await this.hmac(n.encode(`AWS4${t}`),e),i=await this.hmac(o,r),l=await this.hmac(i,s);return this.hmac(l,"aws4_request")}formatMessages(t){return typeof t=="string"?[{role:"user",content:t}]:t.filter(e=>e.role!=="system").map(e=>({role:e.role,content:e.content}))}mapFinishReason(t){switch(t){case"end_turn":return"stop";case"max_tokens":return"length";case"stop_sequence":return"stop";default:return"stop"}}handleApiError(t,e,r){let s=e.message??"Unknown API error",n=e.__type??"";switch(t){case 401:case 403:throw a(s,"API_KEY_INVALID",{provider:"bedrock",model:r,retryable:!1});case 429:throw a(s,"RATE_LIMITED",{provider:"bedrock",model:r,retryable:!0,retryAfterMs:6e4});case 400:throw n.includes("ValidationException")&&s.includes("token")?a(s,"CONTEXT_LENGTH_EXCEEDED",{provider:"bedrock",model:r,retryable:!1}):a(s,"UNKNOWN",{provider:"bedrock",model:r,retryable:!1});case 500:case 502:case 503:throw a(s,"PROVIDER_UNAVAILABLE",{provider:"bedrock",model:r,retryable:!0,retryAfterMs:5e3});default:throw a(s,"UNKNOWN",{provider:"bedrock",model:r,retryable:!1})}}async fetchWithTimeout(t,e,r){let s=new AbortController,n=setTimeout(()=>s.abort(),r);try{return await fetch(t,{...e,signal:s.signal})}catch(o){throw o instanceof Error&&o.name==="AbortError"?a("Request timed out","TIMEOUT",{provider:"bedrock",retryable:!0}):o}finally{clearTimeout(n)}}sleep(t){return new Promise(e=>setTimeout(e,t))}};L();var he={primary:"claude",fallbacks:["openai","ollama"],loadBalancing:"round-robin",providers:{},global:{enableCostTracking:!0,enableMetrics:!0}},H=class{providers=new Map;circuitBreakers;cache;costTracker;config;metrics=new Map;roundRobinIndex=0;initialized=!1;constructor(t={},e){this.config={...he,...t},this.circuitBreakers=new U(e?.circuitBreakerConfig),this.cache=new D(e?.cacheConfig),this.costTracker=e?.costTracker??te()}async initialize(){if(!this.initialized){await this.createProviders();for(let t of this.providers.keys())this.initializeMetrics(t);this.initialized=!0}}async generate(t,e){if(await this.ensureInitialized(),!e?.skipCache){let s=typeof t=="string"?t:JSON.stringify(t),n=this.cache.getGeneration(s,{model:e?.model,temperature:e?.temperature,maxTokens:e?.maxTokens,systemPrompt:e?.systemPrompt});if(n)return{...n,cached:!0}}let r=await this.executeWithFailover("generate",async s=>s.generate(t,e),e?.preferredProvider);if(!e?.skipCache){let s=typeof t=="string"?t:JSON.stringify(t);this.cache.setGeneration(s,r,{model:e?.model,temperature:e?.temperature,maxTokens:e?.maxTokens,systemPrompt:e?.systemPrompt})}return this.costTracker.recordUsage(r.provider,r.model,r.usage,r.requestId),r}async embed(t,e){if(await this.ensureInitialized(),!e?.skipCache){let n=this.cache.getEmbedding(t,{model:e?.model});if(n)return{...n,cached:!0}}let r=["openai","ollama"],s=await this.executeWithFailover("embed",async n=>n.embed(t,e),r.find(n=>this.providers.has(n)));return e?.skipCache||this.cache.setEmbedding(t,s,{model:e?.model}),s}async complete(t,e){if(await this.ensureInitialized(),!e?.skipCache){let s=this.cache.getCompletion(t,{model:e?.model,temperature:e?.temperature,maxTokens:e?.maxTokens});if(s)return{...s,cached:!0}}let r=await this.executeWithFailover("complete",async s=>s.complete(t,e));return e?.skipCache||this.cache.setCompletion(t,r,{model:e?.model,temperature:e?.temperature,maxTokens:e?.maxTokens}),r}async healthCheck(){await this.ensureInitialized();let t={};for(let[e,r]of this.providers)t[e]=await r.healthCheck();return t}getProvider(t){return this.providers.get(t)}getAvailableProviders(){let t=[];for(let[e,r]of this.providers)this.circuitBreakers.getBreaker(e).canExecute()&&t.push(e);return t}getMetrics(){let t={};for(let[e,r]of this.metrics){let s=this.circuitBreakers.getBreaker(e),n=r.latencies.slice(-100);t[e]={provider:e,totalRequests:r.totalRequests,successCount:r.successCount,failureCount:r.failureCount,avgLatencyMs:this.calculateAverage(n),p95LatencyMs:this.calculatePercentile(n,95),p99LatencyMs:this.calculatePercentile(n,99),totalCost:r.totalCost,totalTokens:r.totalTokens,circuitState:s.getState()}}return t}getCacheStats(){return this.cache.getStats()}getCostSummary(t="day"){return this.costTracker.getSummary(t)}clearCache(){this.cache.clear()}resetCircuitBreakers(){this.circuitBreakers.resetAll()}async dispose(){for(let t of this.providers.values())await t.dispose();this.providers.clear(),this.metrics.clear(),this.cache.clear(),this.initialized=!1}async createProviders(){let t=new Set([this.config.primary,...this.config.fallbacks]);for(let e of t)try{let r=this.createProvider(e);this.providers.set(e,r)}catch(r){console.warn(`Failed to create ${e} provider: ${r instanceof Error?r.message:"Unknown"}`)}if(this.providers.size===0)throw a("No LLM providers could be initialized","PROVIDER_UNAVAILABLE",{retryable:!1})}createProvider(t){switch(t){case"claude":return new K(this.config.providers.claude);case"openai":return new q(this.config.providers.openai);case"ollama":return new B(this.config.providers.ollama);case"openrouter":return new G(this.config.providers.openrouter);case"gemini":return new W(this.config.providers.gemini);case"azure-openai":{let e=this.config.providers["azure-openai"];if(!e)throw new Error("Azure OpenAI provider requires configuration with deploymentId");return new j(e)}case"bedrock":return new F(this.config.providers.bedrock);default:throw new Error(`Unknown provider type: ${t}`)}}initializeMetrics(t){this.metrics.set(t,{totalRequests:0,successCount:0,failureCount:0,latencies:[],totalCost:0,totalTokens:0})}async executeWithFailover(t,e,r){let s=this.selectProvider(r),n=new Set,o,i=[s.provider.type,...this.config.fallbacks.filter(l=>l!==s.provider.type)];for(let l of i){if(n.has(l))continue;n.add(l);let m=this.providers.get(l);if(!m)continue;let h=this.circuitBreakers.getBreaker(l);if(h.canExecute())try{let c=Date.now(),u=await h.execute(()=>e(m)),p=Date.now()-c;return this.recordSuccess(l,p,u),u}catch(c){if(o=v(c),this.recordFailure(l,o),"retryable"in o&&!o.retryable)throw o}}throw a(`All providers failed for ${t}: ${o?.message??"Unknown error"}`,"PROVIDER_UNAVAILABLE",{retryable:!1,cause:o})}selectProvider(t){if(t){let r=this.providers.get(t),s=this.circuitBreakers.getBreaker(t);if(r&&s.canExecute())return{provider:r,reason:"primary"}}let e=this.getAvailableProviders();if(e.length===0){let r=this.providers.get(this.config.primary);if(r)return{provider:r,reason:"fallback"};throw a("No providers available","PROVIDER_UNAVAILABLE",{retryable:!1})}switch(this.config.loadBalancing){case"round-robin":return this.selectRoundRobin(e);case"least-cost":return this.selectLeastCost(e);case"least-latency":return this.selectLeastLatency(e);case"random":return this.selectRandom(e);default:return this.selectRoundRobin(e)}}selectRoundRobin(t){this.roundRobinIndex=(this.roundRobinIndex+1)%t.length;let e=t[this.roundRobinIndex];return{provider:this.providers.get(e),reason:"load-balance"}}selectLeastCost(t){let e=1/0,r=t[0];for(let s of t){let n=this.providers.get(s),{input:o,output:i}=n.getCostPerToken(),l=o+i;l<e&&(e=l,r=s)}return{provider:this.providers.get(r),reason:"cost-optimization",metadata:{estimatedCost:e}}}selectLeastLatency(t){let e=1/0,r=t[0];for(let s of t){let n=this.metrics.get(s);if(n&&n.latencies.length>0){let o=this.calculateAverage(n.latencies);o<e&&(e=o,r=s)}}return{provider:this.providers.get(r),reason:"latency-optimization",metadata:{avgLatency:e}}}selectRandom(t){let e=ee(0,t.length),r=t[e];return{provider:this.providers.get(r),reason:"load-balance"}}recordSuccess(t,e,r){let s=this.metrics.get(t);if(s&&(s.totalRequests++,s.successCount++,s.latencies.push(e),s.latencies.length>1e3&&(s.latencies=s.latencies.slice(-1e3)),r&&typeof r=="object")){let n=r;n.cost?.totalCost&&(s.totalCost+=n.cost.totalCost),n.usage?.totalTokens&&(s.totalTokens+=n.usage.totalTokens)}}recordFailure(t,e){let r=this.metrics.get(t);r&&(r.totalRequests++,r.failureCount++)}async ensureInitialized(){this.initialized||await this.initialize()}calculateAverage(t){return t.length===0?0:t.reduce((e,r)=>e+r,0)/t.length}calculatePercentile(t,e){if(t.length===0)return 0;let r=[...t].sort((n,o)=>n-o),s=Math.ceil(e/100*r.length)-1;return r[Math.max(0,s)]}};function ws(b){return new H(b)}function Ms(){return new H({primary:"claude",fallbacks:["openai","ollama"],loadBalancing:"least-cost",providers:{claude:{model:"claude-sonnet-4-20250514",maxTokens:8192,temperature:.3},openai:{model:"gpt-4o",maxTokens:8192,temperature:.3},ollama:{model:"llama3.1",maxTokens:4096,temperature:.3}},global:{enableCostTracking:!0,enableMetrics:!0,maxCostPerDay:100}})}export{he as DEFAULT_PROVIDER_MANAGER_CONFIG,H as ProviderManager,ws as createProviderManager,Ms as createQEProviderManager};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a as h,b as i,c as j,d as k,e as l,f as m,g as n}from"./chunk-6ZTKAP4X.js";import"./chunk-2FW56URL.js";import{a as e,b as f,d as g}from"./chunk-UOD76Y2C.js";import"./chunk-DQ3ZEAMM.js";import{a,b,c,h as d}from"./chunk-CGXLVTVK.js";import"./chunk-FGE33JCO.js";import"./chunk-OZNBJZTT.js";import"./chunk-XQHTGKXD.js";import"./chunk-AUWWCPVO.js";import"./chunk-45SNY726.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-M7QYRRRS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-CX5TTKTB.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{j as AGENT_CAPABILITIES,h as DEFAULT_QE_REASONING_BANK_CONFIG,i as PRETRAINED_PATTERNS,m as QEReasoningBank,l as RELATED_DOMAINS,d as applyPatternTemplate,k as calculateAgentScores,n as createQEReasoningBank,a as detectQEDomain,b as detectQEDomains,g as generateGuidanceContext,f as getCombinedGuidance,e as getGuidance,c as mapQEDomainToAQE};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{c as a,d as b,e as c,f as d}from"./chunk-CBD772DQ.js";import"./chunk-ESYALM4A.js";import"./chunk-B5OL6C4A.js";import"./chunk-6DDT5OHC.js";import"./chunk-R2E73QTH.js";import"./chunk-ZZ2E6WS6.js";import"./chunk-OSGQFRT2.js";import"./chunk-K5TK4HNR.js";import"./chunk-DQ3ZEAMM.js";import"./chunk-CGXLVTVK.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Q2JAC625.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-M7QYRRRS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-CX5TTKTB.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{a as DOMAIN_GROUPS,c as QueenCoordinator,b as TASK_DOMAIN_MAP,d as createQueenCoordinator};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c}from"./chunk-MBISKOYR.js";import"./chunk-AAHBVTUJ.js";import"./chunk-OOV2W3PM.js";import"./chunk-H6T57HMP.js";import"./chunk-FJZQH4JB.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-FT3BXL44.js";export{a as ModelRouter,b as createModelRouter,c as createModelRouterWithAgentBooster};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b}from"./chunk-4LEYR7AH.js";import"./chunk-GIWDEW4K.js";import"./chunk-ALW3NHF2.js";import"./chunk-MJY6FD6N.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{a as RoutingFeedbackCollector,b as createRoutingFeedbackCollector};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c,d,f as e}from"./chunk-AUWWCPVO.js";import"./chunk-FT3BXL44.js";e();export{a as createRvfStore,d as isRvfNativeAvailable,b as openRvfStore,c as openRvfStoreReadonly};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b}from"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-FT3BXL44.js";b();export{a as openDatabase};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a}from"./chunk-YNHB6NGD.js";import"./chunk-WJGATF2P.js";import"./chunk-ZYAIIW3U.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-CX5TTKTB.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{a as TestScheduleTool};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c,d}from"./chunk-4UIACR5V.js";import"./chunk-GK4QGLN6.js";import"./chunk-WEMOVPQS.js";import"./chunk-M7QYRRRS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-FT3BXL44.js";export{a as PersistentScheduler,b as createPersistentScheduler,d as createScheduleEntry,c as generateScheduleId};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,d as c}from"./chunk-OZNBJZTT.js";import"./chunk-AUWWCPVO.js";import"./chunk-FT3BXL44.js";c();export{a as getSharedRvfAdapter,b as resetSharedRvfAdapter};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c,d}from"./chunk-FGE33JCO.js";import"./chunk-45SNY726.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-CX5TTKTB.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{a as DEFAULT_SQLITE_CONFIG,c as SQLitePatternStore,d as createSQLitePatternStore,b as hashEmbedding};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,o}from"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import{a as c,d,e}from"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";o();export{a as ALLOWED_TABLE_NAMES,c as BinaryHeap,i as DEFAULT_UNIFIED_MEMORY_CONFIG,d as UnifiedHnswIndex,k as UnifiedMemoryManager,f as clearProjectRootCache,e as createHnswIndex,g as findProjectRoot,h as getDefaultDbPath,j as getResolvedDefaultConfig,l as getUnifiedMemory,m as initializeUnifiedMemory,n as resetUnifiedMemory,b as validateTableName};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c,d,e,f}from"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";f();export{a as BinaryHeap,b as InMemoryHNSWIndex,c as RuvectorFlatIndex,d as UnifiedHnswIndex,e as createHnswIndex};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c,d,e}from"./chunk-TKV2X6EP.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{a as DEFAULT_UNIFIED_CONFIG,b as UnifiedPersistenceManager,c as getUnifiedPersistence,d as initializeUnifiedPersistence,e as resetUnifiedPersistence};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a}from"./chunk-E6MBYXCI.js";import"./chunk-WJGATF2P.js";import"./chunk-ZYAIIW3U.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-CX5TTKTB.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{a as VisualSecurityTool};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c,d,e,f,g,h}from"./chunk-XQHTGKXD.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
@@ -1,2 +0,0 @@
1
- import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.9.12");process.exit(0)}
2
- import{a,b,c,d}from"./chunk-PJENW5A2.js";import"./chunk-RLVQDFZ2.js";import"./chunk-I4JO4LD3.js";import"./chunk-NWL7UQPY.js";import"./chunk-Z7E27V5F.js";import"./chunk-XTGVTVLN.js";import"./chunk-WEMOVPQS.js";import"./chunk-M7QYRRRS.js";import"./chunk-LJTRN6ZE.js";import"./chunk-CX5TTKTB.js";import"./chunk-V7LIKEGA.js";import"./chunk-T5WF5HBA.js";import"./chunk-PGKGFKSS.js";import"./chunk-R7RGOZ3H.js";import"./chunk-GB4LEEYS.js";import"./chunk-WKORFEXG.js";import"./chunk-Q3BVPPHB.js";import"./chunk-AXJTWYCF.js";import"./chunk-LNHOWUSG.js";import"./chunk-FT3BXL44.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};