agentic-qe 3.9.11 → 3.9.13
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.
- package/.claude/agents/v3/qe-coverage-specialist.md +1 -1
- package/.claude/agents/v3/qe-fleet-commander.md +1 -1
- package/.claude/agents/v3/qe-pentest-validator.md +4 -2
- package/.claude/agents/v3/qe-queen-coordinator.md +1 -1
- package/.claude/agents/v3/qe-risk-assessor.md +1 -1
- package/.claude/agents/v3/qe-root-cause-analyzer.md +1 -1
- package/.claude/agents/v3/qe-security-auditor.md +4 -2
- package/.claude/agents/v3/qe-security-scanner.md +3 -1
- package/.claude/agents/v3/qe-test-architect.md +1 -1
- package/.claude/commands/aqe-costs.md +6 -6
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +3 -0
- package/.claude/skills/.validation/test-data/sample-output.json +1 -1
- package/.claude/skills/a11y-ally/SKILL.md +1 -1
- package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
- package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +2 -2
- package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/.claude/skills/contract-testing/evals/contract-testing.yaml +2 -2
- package/.claude/skills/database-testing/evals/database-testing.yaml +2 -2
- package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
- package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +2 -2
- package/CHANGELOG.md +29 -0
- package/assets/agents/v3/qe-coverage-specialist.md +1 -1
- package/assets/agents/v3/qe-fleet-commander.md +1 -1
- package/assets/agents/v3/qe-pentest-validator.md +4 -2
- package/assets/agents/v3/qe-queen-coordinator.md +1 -1
- package/assets/agents/v3/qe-risk-assessor.md +1 -1
- package/assets/agents/v3/qe-root-cause-analyzer.md +1 -1
- package/assets/agents/v3/qe-security-auditor.md +4 -2
- package/assets/agents/v3/qe-security-scanner.md +3 -1
- package/assets/agents/v3/qe-test-architect.md +1 -1
- package/assets/skills/.validation/schemas/skill-eval.schema.json +3 -0
- package/assets/skills/.validation/test-data/sample-output.json +1 -1
- package/assets/skills/a11y-ally/SKILL.md +1 -1
- package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
- package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +2 -2
- package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/assets/skills/contract-testing/evals/contract-testing.yaml +2 -2
- package/assets/skills/database-testing/evals/database-testing.yaml +2 -2
- package/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
- package/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/assets/skills/skills-manifest.json +1 -1
- package/assets/skills/testability-scoring/evals/testability-scoring.yaml +2 -2
- package/dist/adapters/claude-flow/detect.js +13 -0
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-VP3WBXE5.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-ERBGW3L7.js → agent-booster-wasm-3RBPTJAU.js} +2 -2
- package/dist/cli/chunks/{agent-handler-G5WC5V6J.js → agent-handler-XV45GCWC.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-XAM3NPTO.js → agent-memory-branch-V6EXWWMY.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-ASPPEOKQ.js +2 -0
- package/dist/cli/chunks/{audit-QW4RPP6W.js → audit-WXFI4AC4.js} +2 -2
- package/dist/cli/chunks/base-SIAOYPTD.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-JNLN3EQY.js → better-sqlite3-23MIVVHF.js} +2 -2
- package/dist/cli/chunks/{brain-handler-YXCEHA2J.js → brain-handler-LQUMAACV.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-ZJUGC2OB.js → branch-enumerator-HE37VX7G.js} +2 -2
- package/dist/cli/chunks/{browser-RLRS7JBO.js → browser-3VG5M7WM.js} +2 -2
- package/dist/cli/chunks/browser-workflow-BG3M3RZU.js +2 -0
- package/dist/cli/chunks/{chunk-E5XSCY5J.js → chunk-2RTGP76Y.js} +2 -2
- package/dist/cli/chunks/{chunk-YSNVBAUR.js → chunk-3AOWTHLS.js} +2 -2
- package/dist/cli/chunks/{chunk-W2CIYDNQ.js → chunk-3I6KWFJT.js} +2 -2
- package/dist/cli/chunks/{chunk-PX2LQIS3.js → chunk-3IJ4NRJF.js} +2 -2
- package/dist/cli/chunks/{chunk-KUU5KPBS.js → chunk-3RM2VNYG.js} +2 -2
- package/dist/cli/chunks/{chunk-C6EG74P6.js → chunk-4MZZMWF6.js} +1 -1
- package/dist/cli/chunks/{chunk-KNG3K26M.js → chunk-4PCHU2X7.js} +1 -1
- package/dist/cli/chunks/{chunk-GF6KRBPQ.js → chunk-4VETZICF.js} +1 -1
- package/dist/cli/chunks/{chunk-TSXTP4MO.js → chunk-4WJ3BHCN.js} +3 -3
- package/dist/cli/chunks/{chunk-ZWGFOQOS.js → chunk-54A2LVKM.js} +2 -2
- package/dist/cli/chunks/{chunk-2PM3SD63.js → chunk-5TDHUYYF.js} +2 -2
- package/dist/cli/chunks/{chunk-TRCNODAD.js → chunk-67TMNSO3.js} +1 -1
- package/dist/cli/chunks/{chunk-7H46NSQI.js → chunk-6GYMFSPA.js} +2 -2
- package/dist/cli/chunks/{chunk-UMRNJLCT.js → chunk-6HSHLSGU.js} +2 -2
- package/dist/cli/chunks/{chunk-MFHKKNVZ.js → chunk-6LDRSG7C.js} +2 -2
- package/dist/cli/chunks/{chunk-2SPDBBGB.js → chunk-77GZ7LXL.js} +2 -2
- package/dist/cli/chunks/{chunk-7WTKRSJW.js → chunk-7HX2PMBB.js} +2 -2
- package/dist/cli/chunks/{chunk-LPTSNKCM.js → chunk-AEKTVLLF.js} +2 -2
- package/dist/cli/chunks/{chunk-L7LOSW5T.js → chunk-AOTEEGQA.js} +24 -24
- package/dist/cli/chunks/{chunk-QEBXLE7N.js → chunk-APQYMAKG.js} +4 -4
- package/dist/cli/chunks/{chunk-OUCFT3RT.js → chunk-AV23XNRL.js} +2 -2
- package/dist/cli/chunks/{chunk-JJS3OOFV.js → chunk-AXDGBI4Y.js} +1 -1
- package/dist/cli/chunks/{chunk-RRCFW2M3.js → chunk-AZPDX4KS.js} +2 -2
- package/dist/cli/chunks/{chunk-I3V5VPNQ.js → chunk-BE2DYHUB.js} +2 -2
- package/dist/cli/chunks/{chunk-CL6NRSRJ.js → chunk-BSTCXDVH.js} +1 -1
- package/dist/cli/chunks/{chunk-TI4B6LPH.js → chunk-BUIMIUJA.js} +1 -1
- package/dist/cli/chunks/{chunk-44P37G45.js → chunk-CF5EJGOV.js} +2 -2
- package/dist/cli/chunks/{chunk-2NQ37ZD2.js → chunk-CPRYUCPC.js} +1 -1
- package/dist/cli/chunks/{chunk-5BOJ7G3B.js → chunk-D22MEX2U.js} +2 -2
- package/dist/cli/chunks/{chunk-KK6MUW7H.js → chunk-DHYJMGKC.js} +1 -1
- package/dist/cli/chunks/{chunk-NEI3CUGT.js → chunk-DY5JRJXV.js} +3 -3
- package/dist/cli/chunks/{chunk-Y5YE6LVE.js → chunk-E7P6GAD7.js} +2 -2
- package/dist/cli/chunks/{chunk-NMJFMH4E.js → chunk-EBQUXPIG.js} +2 -2
- package/dist/cli/chunks/{chunk-VMBRYYYH.js → chunk-EC2CI3ZC.js} +2 -2
- package/dist/cli/chunks/{chunk-IFVGKXD2.js → chunk-ERGY45RL.js} +1 -1
- package/dist/cli/chunks/{chunk-KE5INK6G.js → chunk-ES6CEZG2.js} +1 -1
- package/dist/cli/chunks/{chunk-XBG6EFDT.js → chunk-F74IVEON.js} +2 -2
- package/dist/cli/chunks/{chunk-MQTFPGGG.js → chunk-FEGITTAE.js} +1 -1
- package/dist/cli/chunks/{chunk-YZNN62EM.js → chunk-FHWDVN65.js} +2 -2
- package/dist/cli/chunks/{chunk-TIKBMCDQ.js → chunk-FLML5IT7.js} +2 -2
- package/dist/cli/chunks/{chunk-7CSQKBZM.js → chunk-FS4TPAAA.js} +1 -1
- package/dist/cli/chunks/{chunk-V45UPEEM.js → chunk-GHAEDZDE.js} +2 -2
- package/dist/cli/chunks/{chunk-KXNVYDJF.js → chunk-GKRKCJ6D.js} +2 -2
- package/dist/cli/chunks/{chunk-4DHHTDMU.js → chunk-H53V7GI3.js} +1 -1
- package/dist/cli/chunks/{chunk-Y5WIREMP.js → chunk-HEHGQM2H.js} +23 -23
- package/dist/cli/chunks/{chunk-5QQVR2PJ.js → chunk-HHRUXDLT.js} +2 -2
- package/dist/cli/chunks/{chunk-BMDH76Z5.js → chunk-HJHFGPGP.js} +2 -2
- package/dist/cli/chunks/{chunk-NU5DOYGG.js → chunk-HRD7LL7Q.js} +2 -2
- package/dist/cli/chunks/{chunk-FOONOTJJ.js → chunk-HXLAXSEM.js} +2 -2
- package/dist/cli/chunks/{chunk-YIZNQK5R.js → chunk-I6O4MVEY.js} +4 -4
- package/dist/cli/chunks/{chunk-L4TU4IIE.js → chunk-IQGVQBVS.js} +1 -1
- package/dist/cli/chunks/{chunk-NWUOACDR.js → chunk-JOCR5TWI.js} +2 -2
- package/dist/cli/chunks/chunk-JV7HKHQS.js +2 -0
- package/dist/cli/chunks/{chunk-P5GOHOPL.js → chunk-KULWZMVC.js} +3 -3
- package/dist/cli/chunks/{chunk-WUDYOEEV.js → chunk-LHZLH6I4.js} +2 -2
- package/dist/cli/chunks/{chunk-I2HIQGZ2.js → chunk-LRHJOYKY.js} +3 -3
- package/dist/cli/chunks/{chunk-P6O43I72.js → chunk-MXT7YUOZ.js} +2 -2
- package/dist/cli/chunks/{chunk-JG6GFIR4.js → chunk-OBDM6OJL.js} +1 -1
- package/dist/cli/chunks/{chunk-O374BYD4.js → chunk-OGHIQCJU.js} +2 -2
- package/dist/cli/chunks/{chunk-WGKNSWGX.js → chunk-OHG6SNIA.js} +2 -2
- package/dist/cli/chunks/{chunk-TFK7FDC4.js → chunk-OJGR56BP.js} +2 -2
- package/dist/cli/chunks/{chunk-PRUG76TG.js → chunk-OKCI6BNZ.js} +2 -2
- package/dist/cli/chunks/{chunk-XS7YNHNG.js → chunk-OM7A3YC3.js} +2 -2
- package/dist/cli/chunks/{chunk-QL5O27ES.js → chunk-OP54A7C6.js} +2 -2
- package/dist/cli/chunks/{chunk-C4BDVGMS.js → chunk-OUNZPHTA.js} +1 -1
- package/dist/cli/chunks/{chunk-N3LKRXKM.js → chunk-Q3MQYATA.js} +2 -2
- package/dist/cli/chunks/{chunk-HGPK3IIX.js → chunk-Q7TWE55T.js} +3 -3
- package/dist/cli/chunks/{chunk-GOWDJPOX.js → chunk-QHCOAG7D.js} +1 -1
- package/dist/cli/chunks/{chunk-G3XXEPHS.js → chunk-QIE76ERL.js} +1 -1
- package/dist/cli/chunks/{chunk-F2OCIVD2.js → chunk-QKTB5FZP.js} +2 -2
- package/dist/cli/chunks/{chunk-NKUPM5KQ.js → chunk-QNUVC6OX.js} +1 -1
- package/dist/cli/chunks/{chunk-XIJ6LU5G.js → chunk-R4B2B6MZ.js} +2 -2
- package/dist/cli/chunks/{chunk-22OWZHSK.js → chunk-RMNZSGTE.js} +2 -2
- package/dist/cli/chunks/{chunk-ZM7WJNQY.js → chunk-RURYOWWU.js} +1 -1
- package/dist/cli/chunks/{chunk-5RDXUTEB.js → chunk-RYPUA6E2.js} +2 -2
- package/dist/cli/chunks/{chunk-TEHFGVQG.js → chunk-SI7AQK7I.js} +2 -2
- package/dist/cli/chunks/{chunk-RI5IUJ2E.js → chunk-SL66MHDM.js} +1 -1
- package/dist/cli/chunks/{chunk-5XQLA5PW.js → chunk-SSZMISGC.js} +2 -2
- package/dist/cli/chunks/{chunk-LKYO7SZ7.js → chunk-TNQBHQFH.js} +2 -2
- package/dist/cli/chunks/{chunk-7BYZSHCI.js → chunk-TOS3PI5Q.js} +1 -1
- package/dist/cli/chunks/{chunk-QRQV2KJ3.js → chunk-TPTKR5ZO.js} +1 -1
- package/dist/cli/chunks/{chunk-VQIBPHLI.js → chunk-TRJRRJV3.js} +1 -1
- package/dist/cli/chunks/{chunk-ZGWNU6V6.js → chunk-TU3JIH3U.js} +5 -5
- package/dist/cli/chunks/{chunk-CV3KHYEY.js → chunk-TVASP2E6.js} +2 -2
- package/dist/cli/chunks/{chunk-2DSXKIGI.js → chunk-TWRGM5TY.js} +2 -2
- package/dist/cli/chunks/chunk-UCCNB75R.js +3 -0
- package/dist/cli/chunks/{chunk-DZZKBPOK.js → chunk-UDIRBCZW.js} +1 -1
- package/dist/cli/chunks/{chunk-6RU5DG36.js → chunk-V2CV6J2A.js} +2 -2
- package/dist/cli/chunks/{chunk-AIHD3V62.js → chunk-V6UODTBP.js} +1 -1
- package/dist/cli/chunks/{chunk-LLC3GJXO.js → chunk-VCJP7HQG.js} +2 -2
- package/dist/cli/chunks/chunk-VHSDZEYF.js +2 -0
- package/dist/cli/chunks/{chunk-YGZOCUJM.js → chunk-VJN7NQGI.js} +9 -9
- package/dist/cli/chunks/{chunk-F6ADG6BA.js → chunk-VLZBQ3XN.js} +2 -2
- package/dist/cli/chunks/{chunk-C5QJV576.js → chunk-VU7ENCSU.js} +2 -2
- package/dist/cli/chunks/{chunk-KFNPCKTB.js → chunk-VVVIRGO7.js} +2 -2
- package/dist/cli/chunks/chunk-VWEGO7BY.js +2 -0
- package/dist/cli/chunks/{chunk-K6S2C76B.js → chunk-W2YCNX4O.js} +2 -2
- package/dist/cli/chunks/{chunk-Z5CFWIET.js → chunk-W6LEOFA4.js} +2 -2
- package/dist/cli/chunks/{chunk-YBVFSBYN.js → chunk-WQGP5ULD.js} +2 -2
- package/dist/cli/chunks/{chunk-S37G7A6J.js → chunk-WQIB5ERQ.js} +2 -2
- package/dist/cli/chunks/{chunk-NDLYVPON.js → chunk-WVWB7K6H.js} +1 -1
- package/dist/cli/chunks/{chunk-7D352FKW.js → chunk-X3UVXJIK.js} +2 -2
- package/dist/cli/chunks/{chunk-K33CP3M4.js → chunk-XV42SKJD.js} +2 -2
- package/dist/cli/chunks/{chunk-C3W4M7UY.js → chunk-XXQYSDLV.js} +2 -2
- package/dist/cli/chunks/chunk-Y2ONHWXI.js +2 -0
- package/dist/cli/chunks/{chunk-WY4RNWWV.js → chunk-Y7YSJD4I.js} +2 -2
- package/dist/cli/chunks/{chunk-DKJZW6KO.js → chunk-YBKSENTJ.js} +3 -3
- package/dist/cli/chunks/{chunk-N5EQ3Q63.js → chunk-YCQ2GHFH.js} +2 -2
- package/dist/cli/chunks/{chunk-R5FOT2GW.js → chunk-YCTGWMCP.js} +3 -3
- package/dist/cli/chunks/{chunk-F57L5LEP.js → chunk-YYQVSVBO.js} +2 -2
- package/dist/cli/chunks/{chunk-STVZ2TBG.js → chunk-Z6F4GRXY.js} +1 -1
- package/dist/cli/chunks/chunk-ZN7KPIJW.js +2 -0
- package/dist/cli/chunks/{chunk-QWWYIHND.js → chunk-ZS5BM2EE.js} +2 -2
- package/dist/cli/chunks/{chunk-6V7446OP.js → chunk-ZUW3KVML.js} +2 -2
- package/dist/cli/chunks/chunk-ZXJNX5D2.js +2 -0
- package/dist/cli/chunks/{ci-3W7NMONI.js → ci-FEEIAOQN.js} +2 -2
- package/dist/cli/chunks/{ci-output-S3L4ODFZ.js → ci-output-2WMUTORB.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-2KWBO7XA.js → circuit-breaker-MFEE23XA.js} +2 -2
- package/dist/cli/chunks/claude-flow-setup-6D655INK.js +2 -0
- package/dist/cli/chunks/client-LMOHUGOA.js +2 -0
- package/dist/cli/chunks/{cline-installer-EJZWTH4O.js → cline-installer-5PIYMPAG.js} +2 -2
- package/dist/cli/chunks/{code-M5S5TNSV.js → code-ACS453WG.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-YKAU2SIV.js → code-index-extractor-5SERI6TM.js} +2 -2
- package/dist/cli/chunks/{codex-installer-2RO7UPOC.js → codex-installer-WCUUWHP5.js} +2 -2
- package/dist/cli/chunks/{completions-6X4AQ43R.js → completions-6WFG3FPJ.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-TVSEUC4O.js → complexity-analyzer-IFZEFCB6.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-OPFGF74I.js → continuedev-installer-RW6FEEND.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-RRL4SCGA.js → copilot-installer-UZPE65RL.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-XBNJ7WKR.js → cost-tracker-2R4FT6TY.js} +2 -2
- package/dist/cli/chunks/{coverage-FPJJTRAR.js → coverage-ZUC5U47P.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-IZB5ZMXO.js +2 -0
- package/dist/cli/chunks/{cursor-installer-OPY7SFFC.js → cursor-installer-7JBZT7JZ.js} +2 -2
- package/dist/cli/chunks/{daemon-S3ZA7RT3.js → daemon-YNF54UYB.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-AOAJOWRN.js → dag-attention-scheduler-MS7D2NFM.js} +2 -2
- package/dist/cli/chunks/{detect-3F2HT32S.js → detect-UHOSHYVB.js} +2 -2
- package/dist/cli/chunks/{domain-handler-SCWOCRON.js → domain-handler-BVW4AX7O.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-4I3QTX44.js → domain-transfer-PA2ENF3D.js} +2 -2
- package/dist/cli/chunks/dream-SAPSS25B.js +2 -0
- package/dist/cli/chunks/esm-node-FTBUMV4L.js +2 -0
- package/dist/cli/chunks/{eval-M46NFR6V.js → eval-Y3ODM7JU.js} +2 -2
- package/dist/cli/chunks/{fast-paths-I2NAO6KL.js → fast-paths-DYQ5NC4Y.js} +2 -2
- package/dist/cli/chunks/{feature-flags-NQHRPIUT.js → feature-flags-V34UZPHG.js} +2 -2
- package/dist/cli/chunks/{feature-flags-PPFEWUVO.js → feature-flags-YMMGYWT3.js} +2 -2
- package/dist/cli/chunks/{file-discovery-WHHTABIG.js → file-discovery-75ZHSK4G.js} +2 -2
- package/dist/cli/chunks/{fleet-O5C6B37V.js → fleet-DD2CFGJL.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-RYIYJINN.js → gnn-wrapper-UXM3L5LV.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-NUE27AHM.js → heartbeat-handler-ANHRYXNS.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-COBJE65L.js → heartbeat-scheduler-HYVMXCXT.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-CBDRZLXX.js +2 -0
- package/dist/cli/chunks/hnsw-index-EOJG4VF4.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-4YLY2WU2.js → hnsw-legacy-bridge-IFUEUOVF.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-GCYY3MVY.js → hnswlib-node-GYVDPTWU.js} +2 -2
- package/dist/cli/chunks/{hooks-F3ZDOXBU.js → hooks-R3DQNG2F.js} +6 -6
- package/dist/cli/chunks/hybrid-router-MSCQ2XGU.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-7P7HDFAU.js → hypergraph-engine-3TKB5O7T.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-L2PIBHKZ.js → hypergraph-handler-4APYID2S.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-C2TXXYPC.js +2 -0
- package/dist/cli/chunks/{init-handler-6FQSEU3G.js → init-handler-E7B2GKH3.js} +6 -6
- package/dist/cli/chunks/init-wizard-IQV7SBMW.js +2 -0
- package/dist/cli/chunks/kernel-NJOPFGK7.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-F2OCU37B.js → kilocode-installer-WY6VTFSA.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-NXSCDS3D.js → kiro-installer-SCNF3JXD.js} +4 -4
- package/dist/cli/chunks/knowledge-graph-EUMGCQPH.js +2 -0
- package/dist/cli/chunks/{learning-X2WZCNO2.js → learning-Y4OZJFBV.js} +3 -3
- package/dist/cli/chunks/{llm-router-LG3AFXW4.js → llm-router-RBKYYHBJ.js} +5 -5
- package/dist/cli/chunks/{load-N4TOWO47.js → load-FY64UGHV.js} +2 -2
- package/dist/cli/chunks/load-test-LBYVVG35.js +2 -0
- package/dist/cli/chunks/{mcp-L6GELR4I.js → mcp-6VMQOWMX.js} +2 -2
- package/dist/cli/chunks/{memory-XWVTSHTR.js → memory-Y5RO4PGM.js} +5 -5
- package/dist/cli/chunks/memory-backend-NQMJKHCQ.js +2 -0
- package/dist/cli/chunks/{memory-handlers-N4HCIXM6.js → memory-handlers-CMMVHHPG.js} +2 -2
- package/dist/cli/chunks/multi-model-executor-JO3MNMPZ.js +14 -0
- package/dist/cli/chunks/{opencode-installer-MID5ZQNA.js → opencode-installer-WQBTY6JT.js} +2 -2
- package/dist/cli/chunks/{orchestrator-HIOP5K2H.js → orchestrator-4J7OSNSG.js} +6 -6
- package/dist/cli/chunks/{pipeline-DXEZV7FN.js → pipeline-63T6HN72.js} +2 -2
- package/dist/cli/chunks/{platform-LDZ6HBEA.js → platform-UJMD4EPZ.js} +2 -2
- package/dist/cli/chunks/{plugin-XPQBUDKJ.js → plugin-NDOZ63JW.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-OVJE7LH7.js → prime-radiant-advanced-wasm-ELGHVIFI.js} +2 -2
- package/dist/cli/chunks/protocol-executor-ZSWPG5SU.js +2 -0
- package/dist/cli/chunks/{protocol-handler-BI37HYPC.js → protocol-handler-KYERIMVF.js} +2 -2
- package/dist/cli/chunks/{prove-4A65UZVW.js → prove-ATSSBP4Z.js} +2 -2
- package/dist/cli/chunks/provider-manager-YYMIF23V.js +24 -0
- package/dist/cli/chunks/qe-reasoning-bank-4RLPRCGF.js +2 -0
- package/dist/cli/chunks/{quality-4RQ3D3JL.js → quality-2AGJSJW6.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-KQ673NYE.js +2 -0
- package/dist/cli/chunks/{real-embeddings-GT7AC5MU.js → real-embeddings-H36GVXMI.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-L77GZ3ZK.js → roocode-installer-PMRBAY7O.js} +2 -2
- package/dist/cli/chunks/router-UBNV4H5S.js +2 -0
- package/dist/cli/chunks/routing-feedback-BMMGZ346.js +2 -0
- package/dist/cli/chunks/{routing-handler-3GKAOO3V.js → routing-handler-Z7VZSDXW.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-JG4JJJIE.js → ruvector-commands-N3FZ3ZEE.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-HSJJLGC7.js → rvf-dual-writer-L5DQHUF3.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-YKJNIXE6.js → rvf-migration-adapter-NPGFA3SL.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-ROE2JI6M.js → rvf-migration-coordinator-MCJDNKXG.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-LXBCTTVF.js +2 -0
- package/dist/cli/chunks/safe-db-FFSPBUAK.js +2 -0
- package/dist/cli/chunks/schedule-2MOMNZ6B.js +2 -0
- package/dist/cli/chunks/scheduler-5VGVANFG.js +2 -0
- package/dist/cli/chunks/{security-Q46N26CF.js → security-TX7TXUGI.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-6JWYF7WV.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-3HAS2G2C.js → shared-rvf-dual-writer-6K3ZAG7P.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-LCOAORK7.js +2 -0
- package/dist/cli/chunks/{status-handler-LMQZIGFN.js → status-handler-MIRLQRNN.js} +2 -2
- package/dist/cli/chunks/{structural-health-DTU6QRF5.js → structural-health-CIHASLUE.js} +2 -2
- package/dist/cli/chunks/{sync-QIUCA4J6.js → sync-FGLAP7EK.js} +2 -2
- package/dist/cli/chunks/{task-handler-PVZ5GTKK.js → task-handler-7HMPRCHY.js} +2 -2
- package/dist/cli/chunks/{task-handlers-W34B2327.js → task-handlers-DQLQCLCT.js} +2 -2
- package/dist/cli/chunks/{test-JQJAOFZO.js → test-JKDO5ZHU.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-4ZE5MPNY.js → test-scheduling-2YKZ7PVZ.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-GL5WJ5SI.js → token-bootstrap-C7UUPMQN.js} +2 -2
- package/dist/cli/chunks/{token-usage-BUSEAXEB.js → token-usage-2RVIPCY4.js} +2 -2
- package/dist/cli/chunks/{transformers-FLJ4PR2F.js → transformers-UEMAGHQ5.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-VHFVZOVZ.js → tree-sitter-wasm-parser-MELABICK.js} +2 -2
- package/dist/cli/chunks/{types-DD6ZWJZW.js → types-5B4RD7ZV.js} +2 -2
- package/dist/cli/chunks/unified-memory-CZCWZUFP.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-QEOXVSOZ.js +2 -0
- package/dist/cli/chunks/unified-persistence-HGZAYZGP.js +2 -0
- package/dist/cli/chunks/{validate-RAX2MQKU.js → validate-CHDG7SC3.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-7FDYRKAC.js → validate-swarm-LB7GORKE.js} +2 -2
- package/dist/cli/chunks/{vibium-FUESVL6F.js → vibium-ZMC4G2YA.js} +2 -2
- package/dist/cli/chunks/visual-security-ITKF4E4Z.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-DNSKYDCS.js → web-tree-sitter-THNO6S2V.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-YA244VF3.js → windsurf-installer-LRB43BPX.js} +2 -2
- package/dist/cli/chunks/{witness-chain-SGGPG6VR.js → witness-chain-JC5UBXPM.js} +2 -2
- package/dist/cli/chunks/witness-chain-SYFYXQD3.js +2 -0
- package/dist/cli/chunks/{workflow-TCQSFBBE.js → workflow-Q4IYQ6F2.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-GZS2O3KW.js +2 -0
- package/dist/cli/chunks/{wrappers-44R4HXVW.js → wrappers-WSSLMFSE.js} +2 -2
- package/dist/cli/commands/claude-flow-setup.js +1 -29
- package/dist/cli/commands/llm-router.js +3 -3
- package/dist/coordination/consensus/providers/claude-provider.d.ts +3 -3
- package/dist/coordination/consensus/providers/claude-provider.js +6 -3
- package/dist/coordination/task-executor.js +5 -5
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +3 -3
- package/dist/domains/code-intelligence/services/knowledge-graph.js +5 -5
- package/dist/domains/constants.d.ts +3 -3
- package/dist/domains/constants.js +3 -3
- package/dist/domains/contract-testing/services/contract-validator.js +3 -3
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +5 -5
- package/dist/domains/coverage-analysis/services/gap-detector.js +5 -5
- package/dist/domains/defect-intelligence/services/defect-predictor.js +5 -5
- package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +5 -5
- package/dist/domains/learning-optimization/services/learning-coordinator.js +3 -3
- package/dist/domains/quality-assessment/services/deployment-advisor.js +5 -5
- package/dist/domains/quality-assessment/services/quality-analyzer.js +5 -5
- package/dist/domains/requirements-validation/services/requirements-validator.js +5 -5
- package/dist/domains/security-compliance/services/scanners/sast-scanner.js +5 -5
- package/dist/domains/test-execution/services/test-executor.js +3 -3
- package/dist/domains/test-generation/services/test-generator.js +5 -5
- package/dist/domains/visual-accessibility/services/visual-tester.js +3 -3
- package/dist/init/init-wizard-steps.js +1 -1
- package/dist/init/kiro-installer.js +8 -8
- package/dist/init/phases/12-verification.js +1 -1
- package/dist/init/settings-merge.js +2 -0
- package/dist/integrations/agentic-flow/model-router/types.js +8 -8
- package/dist/mcp/bundle.js +204 -204
- package/dist/mcp/security/sampling-server.js +1 -1
- package/dist/routing/advisor/multi-model-executor.d.ts +6 -2
- package/dist/routing/advisor/multi-model-executor.js +19 -3
- package/dist/routing/security/cyber-pin.d.ts +58 -0
- package/dist/routing/security/cyber-pin.js +75 -0
- package/dist/shared/llm/cost-tracker.js +5 -0
- package/dist/shared/llm/effort-resolver.d.ts +79 -0
- package/dist/shared/llm/effort-resolver.js +128 -0
- package/dist/shared/llm/interfaces.d.ts +11 -1
- package/dist/shared/llm/metrics/cost-metrics.js +1 -1
- package/dist/shared/llm/model-mapping.js +31 -0
- package/dist/shared/llm/model-registry.d.ts +40 -0
- package/dist/shared/llm/model-registry.js +126 -2
- package/dist/shared/llm/provider-manager.js +1 -1
- package/dist/shared/llm/providers/bedrock.js +9 -7
- package/dist/shared/llm/providers/claude.js +31 -4
- package/dist/shared/llm/router/agent-router-config.js +16 -16
- package/dist/shared/llm/router/hybrid-router.js +18 -1
- package/dist/shared/llm/router/routing-rules.js +9 -9
- package/dist/shared/llm/router/types.js +29 -29
- package/dist/shared/llm/translation/message-formatter.js +3 -3
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-LDF6QG2T.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-4BL4TKWF.js +0 -2
- package/dist/cli/chunks/base-KJWQLVQN.js +0 -2
- package/dist/cli/chunks/browser-workflow-CWRD6MPO.js +0 -2
- package/dist/cli/chunks/chunk-5Z3K47TT.js +0 -2
- package/dist/cli/chunks/chunk-7J3CK3UY.js +0 -2
- package/dist/cli/chunks/chunk-C2HPZ65V.js +0 -2
- package/dist/cli/chunks/chunk-GEXHAKJ3.js +0 -2
- package/dist/cli/chunks/chunk-IURQ4SKQ.js +0 -3
- package/dist/cli/chunks/chunk-JDJRCINX.js +0 -2
- package/dist/cli/chunks/claude-flow-setup-NXRU3CZJ.js +0 -2
- package/dist/cli/chunks/client-6QLRJHON.js +0 -2
- package/dist/cli/chunks/cross-domain-router-Z4NI2VT3.js +0 -2
- package/dist/cli/chunks/dream-ICDONOKV.js +0 -2
- package/dist/cli/chunks/esm-node-PH6TIFQ6.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-5BSHU4UF.js +0 -2
- package/dist/cli/chunks/hnsw-index-KX6DATRE.js +0 -2
- package/dist/cli/chunks/hybrid-router-ZKOXVYVB.js +0 -2
- package/dist/cli/chunks/impact-analyzer-KNWIKJVU.js +0 -2
- package/dist/cli/chunks/init-wizard-VKUUCD2T.js +0 -2
- package/dist/cli/chunks/kernel-LRGVOUOH.js +0 -2
- package/dist/cli/chunks/knowledge-graph-7O4ACKK7.js +0 -2
- package/dist/cli/chunks/load-test-MWJ46OOI.js +0 -2
- package/dist/cli/chunks/memory-backend-XNNH47PJ.js +0 -2
- package/dist/cli/chunks/multi-model-executor-QVV6JZYD.js +0 -14
- package/dist/cli/chunks/protocol-executor-C4VLLOXH.js +0 -2
- package/dist/cli/chunks/provider-manager-MAP3LEV2.js +0 -24
- package/dist/cli/chunks/qe-reasoning-bank-ALMRMCX6.js +0 -2
- package/dist/cli/chunks/queen-coordinator-PJMDHNCR.js +0 -2
- package/dist/cli/chunks/router-5EMK2VI4.js +0 -2
- package/dist/cli/chunks/routing-feedback-GM474EAA.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-L6TVMXZG.js +0 -2
- package/dist/cli/chunks/safe-db-D2JVWU7V.js +0 -2
- package/dist/cli/chunks/schedule-ATMJHEWX.js +0 -2
- package/dist/cli/chunks/scheduler-FFU5HTXP.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-KBGYVHKT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-CDUAJ4WV.js +0 -2
- package/dist/cli/chunks/unified-memory-H55OLMCH.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-EL4ZOWLV.js +0 -2
- package/dist/cli/chunks/unified-persistence-SW3GZQOI.js +0 -2
- package/dist/cli/chunks/visual-security-7RHKMS2T.js +0 -2
- package/dist/cli/chunks/witness-chain-PBFNSR2Z.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-KQP277ZB.js +0 -2
|
@@ -129,7 +129,7 @@ export class SamplingServer {
|
|
|
129
129
|
cleanupTimer = null;
|
|
130
130
|
constructor(config = {}) {
|
|
131
131
|
this.config = {
|
|
132
|
-
defaultModel: config.defaultModel || 'claude-
|
|
132
|
+
defaultModel: config.defaultModel || 'claude-sonnet-4-6',
|
|
133
133
|
defaultMaxTokens: config.defaultMaxTokens || 4096,
|
|
134
134
|
defaultTemperature: config.defaultTemperature || 0.7,
|
|
135
135
|
enableCaching: config.enableCaching ?? true,
|
|
@@ -19,12 +19,16 @@ import type { ExtendedProviderType } from '../../shared/llm/router/types.js';
|
|
|
19
19
|
import type { AdvisorResult, AdvisorTranscript, ConsultOptions, IMultiModelExecutor } from './types.js';
|
|
20
20
|
import { type CircuitBreakerState } from './circuit-breaker.js';
|
|
21
21
|
/**
|
|
22
|
-
* Default advisor model per ADR-092 Phase 0.
|
|
22
|
+
* Default advisor model per ADR-092 Phase 0 and ADR-093.
|
|
23
23
|
* OpenRouter exposes Anthropic Opus — chosen for vendor-independence as the
|
|
24
24
|
* default while direct Anthropic remains available for security-sensitive agents.
|
|
25
|
+
*
|
|
26
|
+
* ADR-093 (2026-04-17): default advisor model upgraded from Opus 4 to Opus 4.7.
|
|
27
|
+
* SWE-bench Verified 87.6% (vs 80.8% on 4.6), new `xhigh` effort level,
|
|
28
|
+
* 1M context at standard pricing, adaptive thinking.
|
|
25
29
|
*/
|
|
26
30
|
export declare const DEFAULT_ADVISOR_PROVIDER: ExtendedProviderType;
|
|
27
|
-
export declare const DEFAULT_ADVISOR_MODEL = "anthropic/claude-opus-4";
|
|
31
|
+
export declare const DEFAULT_ADVISOR_MODEL = "anthropic/claude-opus-4.7";
|
|
28
32
|
export declare const DEFAULT_MAX_WORDS = 100;
|
|
29
33
|
/**
|
|
30
34
|
* Phase 0 MultiModelExecutor implementation.
|
|
@@ -17,14 +17,22 @@
|
|
|
17
17
|
import { createHash } from 'crypto';
|
|
18
18
|
import { redact, validateProviderForAgent, isSelfHosted, } from './redaction.js';
|
|
19
19
|
import { AdvisorCircuitBreaker } from './circuit-breaker.js';
|
|
20
|
+
import { applyCyberPin, CYBER_PIN_ADVISOR_FALLBACK } from '../security/cyber-pin.js';
|
|
20
21
|
/**
|
|
21
|
-
* Default advisor model per ADR-092 Phase 0.
|
|
22
|
+
* Default advisor model per ADR-092 Phase 0 and ADR-093.
|
|
22
23
|
* OpenRouter exposes Anthropic Opus — chosen for vendor-independence as the
|
|
23
24
|
* default while direct Anthropic remains available for security-sensitive agents.
|
|
25
|
+
*
|
|
26
|
+
* ADR-093 (2026-04-17): default advisor model upgraded from Opus 4 to Opus 4.7.
|
|
27
|
+
* SWE-bench Verified 87.6% (vs 80.8% on 4.6), new `xhigh` effort level,
|
|
28
|
+
* 1M context at standard pricing, adaptive thinking.
|
|
24
29
|
*/
|
|
25
30
|
export const DEFAULT_ADVISOR_PROVIDER = 'openrouter';
|
|
26
|
-
export const DEFAULT_ADVISOR_MODEL = 'anthropic/claude-opus-4';
|
|
31
|
+
export const DEFAULT_ADVISOR_MODEL = 'anthropic/claude-opus-4.7';
|
|
27
32
|
export const DEFAULT_MAX_WORDS = 100;
|
|
33
|
+
// ADR-093: cyber-pin helpers moved to src/routing/security/cyber-pin.ts
|
|
34
|
+
// so HybridRouter.chat() can also apply the pin — direct chat calls must
|
|
35
|
+
// not bypass the pin like they did before.
|
|
28
36
|
/**
|
|
29
37
|
* System prompt prepended to every advisor consultation.
|
|
30
38
|
*
|
|
@@ -62,9 +70,17 @@ export class MultiModelExecutor {
|
|
|
62
70
|
}
|
|
63
71
|
async consult(transcript, opts = {}) {
|
|
64
72
|
const provider = opts.provider ?? DEFAULT_ADVISOR_PROVIDER;
|
|
65
|
-
const
|
|
73
|
+
const requestedModel = opts.model ?? DEFAULT_ADVISOR_MODEL;
|
|
66
74
|
const maxWords = opts.maxWords ?? DEFAULT_MAX_WORDS;
|
|
67
75
|
const agentName = opts.agentName ?? 'unknown';
|
|
76
|
+
// ADR-093: pin cyber-sensitive agents to fallback model until
|
|
77
|
+
// AQE_CYBER_VERIFIED=true (Cyber Verification Program approval).
|
|
78
|
+
const model = applyCyberPin(agentName, requestedModel, CYBER_PIN_ADVISOR_FALLBACK);
|
|
79
|
+
if (model !== requestedModel) {
|
|
80
|
+
// eslint-disable-next-line no-console
|
|
81
|
+
console.warn(`[aqe] ADR-093: ${agentName} pinned to ${model} (was ${requestedModel}); ` +
|
|
82
|
+
`set AQE_CYBER_VERIFIED=true after Cyber Verification Program approval`);
|
|
83
|
+
}
|
|
68
84
|
const triggerReason = opts.triggerReason ?? 'manual';
|
|
69
85
|
const sessionId = opts.sessionId ?? 'default';
|
|
70
86
|
const redactionMode = opts.redact ?? 'strict';
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Cyber Verification Pin
|
|
3
|
+
* ADR-093: Opus 4.7 Migration
|
|
4
|
+
*
|
|
5
|
+
* Security and pentest agents may trip Opus 4.7's real-time cybersecurity
|
|
6
|
+
* safeguards until the organization is enrolled in Anthropic's Cyber
|
|
7
|
+
* Verification Program. This module pins those agents to a fallback model
|
|
8
|
+
* until `AQE_CYBER_VERIFIED=true`.
|
|
9
|
+
*
|
|
10
|
+
* Applied in BOTH:
|
|
11
|
+
* - HybridRouter.chat() — catches direct routing calls
|
|
12
|
+
* - MultiModelExecutor.consult() — catches advisor escalations
|
|
13
|
+
*
|
|
14
|
+
* so security agents cannot reach 4.7 by any code path until verified.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Agent names subject to the cyber pin. These are the agents covered by
|
|
18
|
+
* the Cyber Verification Program application at
|
|
19
|
+
* docs/security/cyber-verification-application.md §3.
|
|
20
|
+
*
|
|
21
|
+
* KEEP IN SYNC with the application file. A cross-check test in
|
|
22
|
+
* tests/routing/security/cyber-pin.test.ts enforces the match.
|
|
23
|
+
*/
|
|
24
|
+
export declare const CYBER_PINNED_AGENTS: readonly string[];
|
|
25
|
+
/**
|
|
26
|
+
* Fallback advisor model for cyber-pinned agents. Sonnet 4.6 on OpenRouter.
|
|
27
|
+
* Used by MultiModelExecutor.consult.
|
|
28
|
+
*/
|
|
29
|
+
export declare const CYBER_PIN_ADVISOR_FALLBACK = "anthropic/claude-sonnet-4.6";
|
|
30
|
+
/**
|
|
31
|
+
* Fallback chat model for cyber-pinned agents when targeting the Anthropic
|
|
32
|
+
* provider directly. Used by HybridRouter.chat.
|
|
33
|
+
*/
|
|
34
|
+
export declare const CYBER_PIN_CHAT_FALLBACK = "claude-sonnet-4-6";
|
|
35
|
+
/**
|
|
36
|
+
* Returns true if the model ID targets Opus 4.7 in any known form:
|
|
37
|
+
* canonical (claude-opus-4-7), OpenRouter (anthropic/claude-opus-4.7),
|
|
38
|
+
* or Bedrock (anthropic.claude-opus-4-7-v1:0).
|
|
39
|
+
*/
|
|
40
|
+
export declare function isOpus47(modelId: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Returns true if the agent is cyber-pinned and env does not grant
|
|
43
|
+
* Cyber Verification bypass. Case-sensitive "true" only — '1', 'yes',
|
|
44
|
+
* etc. do not lift the pin.
|
|
45
|
+
*/
|
|
46
|
+
export declare function shouldCyberPin(agentName: string, env?: NodeJS.ProcessEnv): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Resolve the model to actually use after applying the cyber pin.
|
|
49
|
+
*
|
|
50
|
+
* @param agentName - Agent identifier (e.g. 'qe-security-auditor').
|
|
51
|
+
* @param requestedModel - The model the caller wanted.
|
|
52
|
+
* @param fallback - Model to use if pin fires.
|
|
53
|
+
* @param env - Process env (injectable for tests).
|
|
54
|
+
* @returns `requestedModel` unchanged if pin does not apply,
|
|
55
|
+
* or `fallback` if pin fires.
|
|
56
|
+
*/
|
|
57
|
+
export declare function applyCyberPin(agentName: string, requestedModel: string, fallback: string, env?: NodeJS.ProcessEnv): string;
|
|
58
|
+
//# sourceMappingURL=cyber-pin.d.ts.map
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Cyber Verification Pin
|
|
3
|
+
* ADR-093: Opus 4.7 Migration
|
|
4
|
+
*
|
|
5
|
+
* Security and pentest agents may trip Opus 4.7's real-time cybersecurity
|
|
6
|
+
* safeguards until the organization is enrolled in Anthropic's Cyber
|
|
7
|
+
* Verification Program. This module pins those agents to a fallback model
|
|
8
|
+
* until `AQE_CYBER_VERIFIED=true`.
|
|
9
|
+
*
|
|
10
|
+
* Applied in BOTH:
|
|
11
|
+
* - HybridRouter.chat() — catches direct routing calls
|
|
12
|
+
* - MultiModelExecutor.consult() — catches advisor escalations
|
|
13
|
+
*
|
|
14
|
+
* so security agents cannot reach 4.7 by any code path until verified.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Agent names subject to the cyber pin. These are the agents covered by
|
|
18
|
+
* the Cyber Verification Program application at
|
|
19
|
+
* docs/security/cyber-verification-application.md §3.
|
|
20
|
+
*
|
|
21
|
+
* KEEP IN SYNC with the application file. A cross-check test in
|
|
22
|
+
* tests/routing/security/cyber-pin.test.ts enforces the match.
|
|
23
|
+
*/
|
|
24
|
+
export const CYBER_PINNED_AGENTS = [
|
|
25
|
+
'qe-pentest-validator',
|
|
26
|
+
'qe-security-auditor',
|
|
27
|
+
'qe-security-scanner',
|
|
28
|
+
'qe-security-reviewer',
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Fallback advisor model for cyber-pinned agents. Sonnet 4.6 on OpenRouter.
|
|
32
|
+
* Used by MultiModelExecutor.consult.
|
|
33
|
+
*/
|
|
34
|
+
export const CYBER_PIN_ADVISOR_FALLBACK = 'anthropic/claude-sonnet-4.6';
|
|
35
|
+
/**
|
|
36
|
+
* Fallback chat model for cyber-pinned agents when targeting the Anthropic
|
|
37
|
+
* provider directly. Used by HybridRouter.chat.
|
|
38
|
+
*/
|
|
39
|
+
export const CYBER_PIN_CHAT_FALLBACK = 'claude-sonnet-4-6';
|
|
40
|
+
/**
|
|
41
|
+
* Returns true if the model ID targets Opus 4.7 in any known form:
|
|
42
|
+
* canonical (claude-opus-4-7), OpenRouter (anthropic/claude-opus-4.7),
|
|
43
|
+
* or Bedrock (anthropic.claude-opus-4-7-v1:0).
|
|
44
|
+
*/
|
|
45
|
+
export function isOpus47(modelId) {
|
|
46
|
+
return (modelId.includes('claude-opus-4-7') || modelId.includes('claude-opus-4.7'));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Returns true if the agent is cyber-pinned and env does not grant
|
|
50
|
+
* Cyber Verification bypass. Case-sensitive "true" only — '1', 'yes',
|
|
51
|
+
* etc. do not lift the pin.
|
|
52
|
+
*/
|
|
53
|
+
export function shouldCyberPin(agentName, env = process.env) {
|
|
54
|
+
if (env.AQE_CYBER_VERIFIED === 'true')
|
|
55
|
+
return false;
|
|
56
|
+
return CYBER_PINNED_AGENTS.includes(agentName);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Resolve the model to actually use after applying the cyber pin.
|
|
60
|
+
*
|
|
61
|
+
* @param agentName - Agent identifier (e.g. 'qe-security-auditor').
|
|
62
|
+
* @param requestedModel - The model the caller wanted.
|
|
63
|
+
* @param fallback - Model to use if pin fires.
|
|
64
|
+
* @param env - Process env (injectable for tests).
|
|
65
|
+
* @returns `requestedModel` unchanged if pin does not apply,
|
|
66
|
+
* or `fallback` if pin fires.
|
|
67
|
+
*/
|
|
68
|
+
export function applyCyberPin(agentName, requestedModel, fallback, env = process.env) {
|
|
69
|
+
if (!shouldCyberPin(agentName, env))
|
|
70
|
+
return requestedModel;
|
|
71
|
+
if (!isOpus47(requestedModel))
|
|
72
|
+
return requestedModel;
|
|
73
|
+
return fallback;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=cyber-pin.js.map
|
|
@@ -12,6 +12,11 @@ import { randomUUID } from 'crypto';
|
|
|
12
12
|
*/
|
|
13
13
|
export const MODEL_PRICING = {
|
|
14
14
|
// Claude models
|
|
15
|
+
// ADR-093: Opus 4.7 (2026-04-16), Sonnet 4.6, Haiku 4.5 (Apr 2026 cluster)
|
|
16
|
+
'claude-opus-4-7': { input: 5.0, output: 25.0, provider: 'claude' },
|
|
17
|
+
'claude-sonnet-4-6': { input: 3.0, output: 15.0, provider: 'claude' },
|
|
18
|
+
'claude-haiku-4-5-20251001': { input: 1.0, output: 5.0, provider: 'claude' },
|
|
19
|
+
// Retiring 2026-06-15 — kept for existing traffic during transition
|
|
15
20
|
'claude-opus-4-5-20251101': { input: 15.0, output: 75.0, provider: 'claude' },
|
|
16
21
|
'claude-sonnet-4-20250514': { input: 3.0, output: 15.0, provider: 'claude' },
|
|
17
22
|
'claude-3-5-haiku-20241022': { input: 1.0, output: 5.0, provider: 'claude' },
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Effort Level Resolver
|
|
3
|
+
* ADR-093: Opus 4.7 Migration + Claude Code 2026-04 Feature Adoption
|
|
4
|
+
*
|
|
5
|
+
* Resolves the effort level for a given LLM request. Implements the
|
|
6
|
+
* priority chain:
|
|
7
|
+
*
|
|
8
|
+
* runtime call-site override
|
|
9
|
+
* > per-agent frontmatter `effort:`
|
|
10
|
+
* > QE_EFFORT_LEVEL env var
|
|
11
|
+
* > config/fleet-defaults.yaml `effort_level`
|
|
12
|
+
* > DEFAULT_EFFORT_LEVEL (xhigh)
|
|
13
|
+
*
|
|
14
|
+
* Only levels that the target model's capabilities support are applied
|
|
15
|
+
* downstream; claude.ts silently downgrades unsupported levels.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Anthropic effort levels for agentic reasoning.
|
|
19
|
+
* Ordered low-to-high: low < medium < high < xhigh < max.
|
|
20
|
+
* `xhigh` was introduced with Opus 4.7 (2026-04-16) and is Anthropic's
|
|
21
|
+
* recommended starting point for agentic coding per ADR-093.
|
|
22
|
+
*/
|
|
23
|
+
export type EffortLevel = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
24
|
+
/**
|
|
25
|
+
* Ordered list of effort levels for comparison and downgrade logic.
|
|
26
|
+
*/
|
|
27
|
+
export declare const EFFORT_LEVELS: readonly EffortLevel[];
|
|
28
|
+
/**
|
|
29
|
+
* ADR-093 fleet-wide default effort level. `xhigh` is Anthropic's
|
|
30
|
+
* recommended starting point for agentic coding on Opus 4.7+.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEFAULT_EFFORT_LEVEL: EffortLevel;
|
|
33
|
+
/**
|
|
34
|
+
* Options for the effort resolver.
|
|
35
|
+
*/
|
|
36
|
+
export interface ResolveEffortOptions {
|
|
37
|
+
/** Explicit runtime override (highest priority). */
|
|
38
|
+
override?: EffortLevel;
|
|
39
|
+
/** Per-agent effort from frontmatter (second priority). */
|
|
40
|
+
agentEffort?: EffortLevel;
|
|
41
|
+
/** Path to the fleet defaults YAML (mainly for testing). */
|
|
42
|
+
fleetDefaultsPath?: string;
|
|
43
|
+
/** Injected env for testing. Defaults to process.env. */
|
|
44
|
+
env?: NodeJS.ProcessEnv;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Reset the fleet-defaults cache. Call between tests that mutate the YAML.
|
|
48
|
+
*/
|
|
49
|
+
export declare function resetFleetDefaultsCache(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Resolve the effort level for a request following ADR-093's priority chain.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* // Default: returns 'xhigh' in a fresh environment
|
|
56
|
+
* resolveEffortLevel();
|
|
57
|
+
*
|
|
58
|
+
* // Env override
|
|
59
|
+
* resolveEffortLevel({ env: { QE_EFFORT_LEVEL: 'medium' } }); // 'medium'
|
|
60
|
+
*
|
|
61
|
+
* // Per-agent override
|
|
62
|
+
* resolveEffortLevel({ agentEffort: 'max' }); // 'max'
|
|
63
|
+
*
|
|
64
|
+
* // Runtime override wins over everything
|
|
65
|
+
* resolveEffortLevel({ override: 'low', agentEffort: 'max' }); // 'low'
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolveEffortLevel(options?: ResolveEffortOptions): EffortLevel;
|
|
69
|
+
/**
|
|
70
|
+
* Downgrade an effort level to a target maximum. Used by provider code
|
|
71
|
+
* when the target model does not support the requested level
|
|
72
|
+
* (e.g., Sonnet 4.6 does not support `xhigh`).
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* downgradeEffort('xhigh', 'high'); // 'high'
|
|
76
|
+
* downgradeEffort('low', 'high'); // 'low' (no upgrade)
|
|
77
|
+
*/
|
|
78
|
+
export declare function downgradeEffort(requested: EffortLevel, cap: EffortLevel): EffortLevel;
|
|
79
|
+
//# sourceMappingURL=effort-resolver.d.ts.map
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Effort Level Resolver
|
|
3
|
+
* ADR-093: Opus 4.7 Migration + Claude Code 2026-04 Feature Adoption
|
|
4
|
+
*
|
|
5
|
+
* Resolves the effort level for a given LLM request. Implements the
|
|
6
|
+
* priority chain:
|
|
7
|
+
*
|
|
8
|
+
* runtime call-site override
|
|
9
|
+
* > per-agent frontmatter `effort:`
|
|
10
|
+
* > QE_EFFORT_LEVEL env var
|
|
11
|
+
* > config/fleet-defaults.yaml `effort_level`
|
|
12
|
+
* > DEFAULT_EFFORT_LEVEL (xhigh)
|
|
13
|
+
*
|
|
14
|
+
* Only levels that the target model's capabilities support are applied
|
|
15
|
+
* downstream; claude.ts silently downgrades unsupported levels.
|
|
16
|
+
*/
|
|
17
|
+
import { readFileSync } from 'fs';
|
|
18
|
+
import * as path from 'path';
|
|
19
|
+
/**
|
|
20
|
+
* Ordered list of effort levels for comparison and downgrade logic.
|
|
21
|
+
*/
|
|
22
|
+
export const EFFORT_LEVELS = [
|
|
23
|
+
'low',
|
|
24
|
+
'medium',
|
|
25
|
+
'high',
|
|
26
|
+
'xhigh',
|
|
27
|
+
'max',
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* ADR-093 fleet-wide default effort level. `xhigh` is Anthropic's
|
|
31
|
+
* recommended starting point for agentic coding on Opus 4.7+.
|
|
32
|
+
*/
|
|
33
|
+
export const DEFAULT_EFFORT_LEVEL = 'xhigh';
|
|
34
|
+
/**
|
|
35
|
+
* Valid effort level strings. Used to validate env/YAML input.
|
|
36
|
+
*/
|
|
37
|
+
function isEffortLevel(value) {
|
|
38
|
+
return typeof value === 'string' && EFFORT_LEVELS.includes(value);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Cache the YAML-parsed fleet default to avoid re-reading on every call.
|
|
42
|
+
* Reset via `resetFleetDefaultsCache()` for tests.
|
|
43
|
+
*/
|
|
44
|
+
let fleetDefaultCache;
|
|
45
|
+
/**
|
|
46
|
+
* Reset the fleet-defaults cache. Call between tests that mutate the YAML.
|
|
47
|
+
*/
|
|
48
|
+
export function resetFleetDefaultsCache() {
|
|
49
|
+
fleetDefaultCache = undefined;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Read `effort_level` from config/fleet-defaults.yaml.
|
|
53
|
+
* Returns null if the file is missing, unreadable, or malformed.
|
|
54
|
+
* Uses a minimal regex parser to avoid adding a YAML dependency.
|
|
55
|
+
*/
|
|
56
|
+
function loadFleetDefaultSync(fleetDefaultsPath) {
|
|
57
|
+
try {
|
|
58
|
+
const raw = readFileSync(fleetDefaultsPath, 'utf8');
|
|
59
|
+
const match = raw.match(/^\s*effort_level\s*:\s*['"]?([a-z]+)['"]?\s*$/m);
|
|
60
|
+
if (match && isEffortLevel(match[1])) {
|
|
61
|
+
return match[1];
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolve the effort level for a request following ADR-093's priority chain.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* // Default: returns 'xhigh' in a fresh environment
|
|
75
|
+
* resolveEffortLevel();
|
|
76
|
+
*
|
|
77
|
+
* // Env override
|
|
78
|
+
* resolveEffortLevel({ env: { QE_EFFORT_LEVEL: 'medium' } }); // 'medium'
|
|
79
|
+
*
|
|
80
|
+
* // Per-agent override
|
|
81
|
+
* resolveEffortLevel({ agentEffort: 'max' }); // 'max'
|
|
82
|
+
*
|
|
83
|
+
* // Runtime override wins over everything
|
|
84
|
+
* resolveEffortLevel({ override: 'low', agentEffort: 'max' }); // 'low'
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export function resolveEffortLevel(options = {}) {
|
|
88
|
+
// 1. Runtime override
|
|
89
|
+
if (options.override && isEffortLevel(options.override)) {
|
|
90
|
+
return options.override;
|
|
91
|
+
}
|
|
92
|
+
// 2. Per-agent frontmatter
|
|
93
|
+
if (options.agentEffort && isEffortLevel(options.agentEffort)) {
|
|
94
|
+
return options.agentEffort;
|
|
95
|
+
}
|
|
96
|
+
// 3. Env var
|
|
97
|
+
const env = options.env ?? process.env;
|
|
98
|
+
const envLevel = env.QE_EFFORT_LEVEL;
|
|
99
|
+
if (envLevel && isEffortLevel(envLevel)) {
|
|
100
|
+
return envLevel;
|
|
101
|
+
}
|
|
102
|
+
// 4. Fleet defaults YAML
|
|
103
|
+
const yamlPath = options.fleetDefaultsPath ??
|
|
104
|
+
path.join(process.cwd(), 'config', 'fleet-defaults.yaml');
|
|
105
|
+
if (fleetDefaultCache === undefined) {
|
|
106
|
+
fleetDefaultCache = loadFleetDefaultSync(yamlPath);
|
|
107
|
+
}
|
|
108
|
+
if (fleetDefaultCache) {
|
|
109
|
+
return fleetDefaultCache;
|
|
110
|
+
}
|
|
111
|
+
// 5. Hardcoded default
|
|
112
|
+
return DEFAULT_EFFORT_LEVEL;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Downgrade an effort level to a target maximum. Used by provider code
|
|
116
|
+
* when the target model does not support the requested level
|
|
117
|
+
* (e.g., Sonnet 4.6 does not support `xhigh`).
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* downgradeEffort('xhigh', 'high'); // 'high'
|
|
121
|
+
* downgradeEffort('low', 'high'); // 'low' (no upgrade)
|
|
122
|
+
*/
|
|
123
|
+
export function downgradeEffort(requested, cap) {
|
|
124
|
+
const requestedIdx = EFFORT_LEVELS.indexOf(requested);
|
|
125
|
+
const capIdx = EFFORT_LEVELS.indexOf(cap);
|
|
126
|
+
return requestedIdx > capIdx ? cap : requested;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=effort-resolver.js.map
|
|
@@ -127,7 +127,7 @@ export interface LLMConfig {
|
|
|
127
127
|
*/
|
|
128
128
|
export interface ClaudeConfig extends LLMConfig {
|
|
129
129
|
/** Claude model version */
|
|
130
|
-
model: 'claude-opus-4-
|
|
130
|
+
model: 'claude-opus-4-7' | 'claude-sonnet-4-6' | 'claude-haiku-4-5-20251001' | string;
|
|
131
131
|
/** Anthropic API version */
|
|
132
132
|
anthropicVersion?: string;
|
|
133
133
|
/** Maximum thinking tokens for extended thinking */
|
|
@@ -289,6 +289,16 @@ export interface GenerateOptions {
|
|
|
289
289
|
userId?: string;
|
|
290
290
|
/** Request metadata */
|
|
291
291
|
metadata?: Record<string, unknown>;
|
|
292
|
+
/**
|
|
293
|
+
* ADR-093: Effort level for agentic reasoning. When unset, the resolver
|
|
294
|
+
* picks the fleet default (`xhigh`). Silently downgraded to `high` if
|
|
295
|
+
* the target model does not support `xhigh`.
|
|
296
|
+
*/
|
|
297
|
+
effort?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
298
|
+
/**
|
|
299
|
+
* ADR-093: Optional agent identifier for per-agent effort frontmatter lookup.
|
|
300
|
+
*/
|
|
301
|
+
agentName?: string;
|
|
292
302
|
}
|
|
293
303
|
/**
|
|
294
304
|
* Embedding request options
|
|
@@ -253,7 +253,7 @@ export class CostMetricsCollector {
|
|
|
253
253
|
description: `Consider using Sonnet instead of Opus for non-critical tasks`,
|
|
254
254
|
estimatedSavings: breakdown.totalCost * 0.5,
|
|
255
255
|
currentCost: breakdown.totalCost,
|
|
256
|
-
suggestedModel: 'claude-sonnet-4-
|
|
256
|
+
suggestedModel: 'claude-sonnet-4-6',
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
if (model === 'gpt-4o') {
|
|
@@ -83,6 +83,37 @@ export const MODEL_MAPPINGS = {
|
|
|
83
83
|
bedrock: 'anthropic.claude-sonnet-4-v1:0',
|
|
84
84
|
},
|
|
85
85
|
},
|
|
86
|
+
// ADR-093: Opus 4.7 (2026-04-16), Sonnet 4.6, Haiku 4.5
|
|
87
|
+
'claude-opus-4-7': {
|
|
88
|
+
canonical: 'Claude Opus 4.7',
|
|
89
|
+
family: 'claude',
|
|
90
|
+
tier: 'flagship',
|
|
91
|
+
providers: {
|
|
92
|
+
anthropic: 'claude-opus-4-7',
|
|
93
|
+
openrouter: 'anthropic/claude-opus-4.7',
|
|
94
|
+
bedrock: 'anthropic.claude-opus-4-7-v1:0',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
'claude-sonnet-4-6': {
|
|
98
|
+
canonical: 'Claude Sonnet 4.6',
|
|
99
|
+
family: 'claude',
|
|
100
|
+
tier: 'standard',
|
|
101
|
+
providers: {
|
|
102
|
+
anthropic: 'claude-sonnet-4-6',
|
|
103
|
+
openrouter: 'anthropic/claude-sonnet-4.6',
|
|
104
|
+
bedrock: 'anthropic.claude-sonnet-4-6-v1:0',
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
'claude-haiku-4-5': {
|
|
108
|
+
canonical: 'Claude Haiku 4.5',
|
|
109
|
+
family: 'claude',
|
|
110
|
+
tier: 'economy',
|
|
111
|
+
providers: {
|
|
112
|
+
anthropic: 'claude-haiku-4-5-20251001',
|
|
113
|
+
openrouter: 'anthropic/claude-haiku-4.5',
|
|
114
|
+
bedrock: 'anthropic.claude-haiku-4-5-v1:0',
|
|
115
|
+
},
|
|
116
|
+
},
|
|
86
117
|
// ==========================================================================
|
|
87
118
|
// OpenAI Models
|
|
88
119
|
// ==========================================================================
|
|
@@ -49,6 +49,21 @@ export interface ModelCapabilities {
|
|
|
49
49
|
supportsEmbeddings: boolean;
|
|
50
50
|
/** Supports code execution */
|
|
51
51
|
supportsCodeExecution: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* ADR-093: Supports adaptive thinking (`{type: "adaptive"}`) instead of legacy
|
|
54
|
+
* `{type: "enabled", budget_tokens: N}`. Required for Opus 4.7+.
|
|
55
|
+
*/
|
|
56
|
+
supportsAdaptiveThinking?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* ADR-093: Supports the `xhigh` effort level between `high` and `max`.
|
|
59
|
+
* Anthropic's recommended starting point for agentic coding on Opus 4.7+.
|
|
60
|
+
*/
|
|
61
|
+
supportsEffortXHigh?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* ADR-093: Tokenizer version. Opus 4.7 uses a new tokenizer emitting
|
|
64
|
+
* 1.0–1.35× more tokens per input at the same rate card.
|
|
65
|
+
*/
|
|
66
|
+
tokenizerVersion?: 'legacy' | 'opus-4-7';
|
|
52
67
|
}
|
|
53
68
|
/**
|
|
54
69
|
* Cost information per million tokens
|
|
@@ -224,4 +239,29 @@ export declare function compareModels(modelA: string, modelB: string): {
|
|
|
224
239
|
costDiff: number;
|
|
225
240
|
capabilityDiff: string[];
|
|
226
241
|
};
|
|
242
|
+
/**
|
|
243
|
+
* ADR-093 Tier 3 default Sonnet for the AQE fleet.
|
|
244
|
+
* Standard 200k context (not 1M). Used as the workhorse model across routing,
|
|
245
|
+
* advisor fallback, and provider defaults. Replaces hardcoded 'claude-sonnet-4-20250514'
|
|
246
|
+
* in 25+ call sites.
|
|
247
|
+
*/
|
|
248
|
+
export declare const DEFAULT_SONNET_MODEL = "claude-sonnet-4-6";
|
|
249
|
+
/**
|
|
250
|
+
* ADR-093 Opus escalation target. Reserved for the ADR-092 MultiModelExecutor
|
|
251
|
+
* when TinyDancer sets `triggerMultiModel=true` and the task warrants maximum
|
|
252
|
+
* capability. Not the Tier 3 default — that remains Sonnet 4.6 per user
|
|
253
|
+
* direction 2026-04-17.
|
|
254
|
+
*/
|
|
255
|
+
export declare const DEFAULT_OPUS_MODEL = "claude-opus-4-7";
|
|
256
|
+
/**
|
|
257
|
+
* ADR-093 economy model. Replaces retired `claude-3-5-haiku-20241022`.
|
|
258
|
+
*/
|
|
259
|
+
export declare const DEFAULT_HAIKU_MODEL = "claude-haiku-4-5";
|
|
260
|
+
/**
|
|
261
|
+
* ADR-093 registry of retiring/retired model IDs with their retirement dates.
|
|
262
|
+
* Used by lints and ops tooling to prevent re-introduction of deprecated IDs.
|
|
263
|
+
*
|
|
264
|
+
* Format: canonical-or-provider-id → ISO date of retirement.
|
|
265
|
+
*/
|
|
266
|
+
export declare const RETIRING_MODELS: Readonly<Record<string, string>>;
|
|
227
267
|
//# sourceMappingURL=model-registry.d.ts.map
|