agentic-qe 3.9.12 → 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.
Files changed (378) 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 +21 -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-VP3WBXE5.js +2 -0
  51. package/dist/cli/chunks/{agent-booster-wasm-LB7XIYUI.js → agent-booster-wasm-3RBPTJAU.js} +2 -2
  52. package/dist/cli/chunks/{agent-handler-VVLNITPB.js → agent-handler-XV45GCWC.js} +2 -2
  53. package/dist/cli/chunks/{agent-memory-branch-QAJOHQYI.js → agent-memory-branch-V6EXWWMY.js} +2 -2
  54. package/dist/cli/chunks/aqe-learning-engine-ASPPEOKQ.js +2 -0
  55. package/dist/cli/chunks/{audit-BJIGY6LA.js → audit-WXFI4AC4.js} +2 -2
  56. package/dist/cli/chunks/base-SIAOYPTD.js +2 -0
  57. package/dist/cli/chunks/{better-sqlite3-X6P6KJS6.js → better-sqlite3-23MIVVHF.js} +2 -2
  58. package/dist/cli/chunks/{brain-handler-7FGHAVL5.js → brain-handler-LQUMAACV.js} +3 -3
  59. package/dist/cli/chunks/{branch-enumerator-YXYZMQ4P.js → branch-enumerator-HE37VX7G.js} +2 -2
  60. package/dist/cli/chunks/{browser-WC2JTT32.js → browser-3VG5M7WM.js} +2 -2
  61. package/dist/cli/chunks/browser-workflow-BG3M3RZU.js +2 -0
  62. package/dist/cli/chunks/{chunk-NXZDG2ED.js → chunk-2RTGP76Y.js} +2 -2
  63. package/dist/cli/chunks/{chunk-LJTRN6ZE.js → chunk-3AOWTHLS.js} +2 -2
  64. package/dist/cli/chunks/{chunk-HBQRFR7Q.js → chunk-3I6KWFJT.js} +2 -2
  65. package/dist/cli/chunks/{chunk-4LEYR7AH.js → chunk-3IJ4NRJF.js} +2 -2
  66. package/dist/cli/chunks/{chunk-MBISKOYR.js → chunk-3RM2VNYG.js} +2 -2
  67. package/dist/cli/chunks/{chunk-PBZLLYB3.js → chunk-4MZZMWF6.js} +1 -1
  68. package/dist/cli/chunks/{chunk-XZYW2RNI.js → chunk-4PCHU2X7.js} +1 -1
  69. package/dist/cli/chunks/{chunk-W26THOMZ.js → chunk-4VETZICF.js} +1 -1
  70. package/dist/cli/chunks/{chunk-XEHMWICD.js → chunk-4WJ3BHCN.js} +3 -3
  71. package/dist/cli/chunks/{chunk-OOV2W3PM.js → chunk-54A2LVKM.js} +2 -2
  72. package/dist/cli/chunks/{chunk-7WP5HEJQ.js → chunk-5TDHUYYF.js} +2 -2
  73. package/dist/cli/chunks/{chunk-HJL4CRV6.js → chunk-67TMNSO3.js} +1 -1
  74. package/dist/cli/chunks/{chunk-IQAEANMY.js → chunk-6GYMFSPA.js} +2 -2
  75. package/dist/cli/chunks/{chunk-PVYTP7CC.js → chunk-6HSHLSGU.js} +2 -2
  76. package/dist/cli/chunks/{chunk-PJENW5A2.js → chunk-6LDRSG7C.js} +2 -2
  77. package/dist/cli/chunks/{chunk-PGKGFKSS.js → chunk-77GZ7LXL.js} +2 -2
  78. package/dist/cli/chunks/{chunk-AUWWCPVO.js → chunk-7HX2PMBB.js} +2 -2
  79. package/dist/cli/chunks/{chunk-OAWDBVKN.js → chunk-AEKTVLLF.js} +2 -2
  80. package/dist/cli/chunks/{chunk-ZLDOPUZY.js → chunk-AOTEEGQA.js} +2 -2
  81. package/dist/cli/chunks/{chunk-2FW56URL.js → chunk-APQYMAKG.js} +4 -4
  82. package/dist/cli/chunks/{chunk-OSGQFRT2.js → chunk-AV23XNRL.js} +2 -2
  83. package/dist/cli/chunks/{chunk-AZCTNUUN.js → chunk-AXDGBI4Y.js} +1 -1
  84. package/dist/cli/chunks/{chunk-WKORFEXG.js → chunk-AZPDX4KS.js} +2 -2
  85. package/dist/cli/chunks/{chunk-RUD4F7IT.js → chunk-BE2DYHUB.js} +2 -2
  86. package/dist/cli/chunks/{chunk-K5TK4HNR.js → chunk-BSTCXDVH.js} +1 -1
  87. package/dist/cli/chunks/{chunk-LURKOKOG.js → chunk-BUIMIUJA.js} +1 -1
  88. package/dist/cli/chunks/{chunk-V7LIKEGA.js → chunk-CF5EJGOV.js} +2 -2
  89. package/dist/cli/chunks/{chunk-FZY2AFLS.js → chunk-CPRYUCPC.js} +1 -1
  90. package/dist/cli/chunks/{chunk-WJGATF2P.js → chunk-D22MEX2U.js} +2 -2
  91. package/dist/cli/chunks/{chunk-STRHCEUL.js → chunk-DHYJMGKC.js} +1 -1
  92. package/dist/cli/chunks/{chunk-JTE3QBBI.js → chunk-DY5JRJXV.js} +3 -3
  93. package/dist/cli/chunks/{chunk-FCUJTBDG.js → chunk-E7P6GAD7.js} +2 -2
  94. package/dist/cli/chunks/{chunk-I4JO4LD3.js → chunk-EBQUXPIG.js} +2 -2
  95. package/dist/cli/chunks/{chunk-ZXLAY3BL.js → chunk-EC2CI3ZC.js} +2 -2
  96. package/dist/cli/chunks/{chunk-FT3BXL44.js → chunk-ERGY45RL.js} +1 -1
  97. package/dist/cli/chunks/{chunk-C2ICHYJH.js → chunk-ES6CEZG2.js} +1 -1
  98. package/dist/cli/chunks/{chunk-AAHBVTUJ.js → chunk-F74IVEON.js} +2 -2
  99. package/dist/cli/chunks/{chunk-MJY6FD6N.js → chunk-FEGITTAE.js} +1 -1
  100. package/dist/cli/chunks/{chunk-A3YIGC75.js → chunk-FHWDVN65.js} +2 -2
  101. package/dist/cli/chunks/{chunk-OZNBJZTT.js → chunk-FLML5IT7.js} +2 -2
  102. package/dist/cli/chunks/{chunk-ZZ2E6WS6.js → chunk-FS4TPAAA.js} +1 -1
  103. package/dist/cli/chunks/{chunk-ONF657XE.js → chunk-GHAEDZDE.js} +2 -2
  104. package/dist/cli/chunks/{chunk-4UIACR5V.js → chunk-GKRKCJ6D.js} +2 -2
  105. package/dist/cli/chunks/{chunk-PMRJHQIW.js → chunk-H53V7GI3.js} +1 -1
  106. package/dist/cli/chunks/{chunk-5F2CEYZG.js → chunk-HEHGQM2H.js} +23 -23
  107. package/dist/cli/chunks/{chunk-XTGVTVLN.js → chunk-HHRUXDLT.js} +2 -2
  108. package/dist/cli/chunks/{chunk-FE2R7DOJ.js → chunk-HJHFGPGP.js} +2 -2
  109. package/dist/cli/chunks/{chunk-UGCPQGQV.js → chunk-HRD7LL7Q.js} +2 -2
  110. package/dist/cli/chunks/{chunk-R2E73QTH.js → chunk-HXLAXSEM.js} +2 -2
  111. package/dist/cli/chunks/{chunk-4HTPZ67G.js → chunk-I6O4MVEY.js} +4 -4
  112. package/dist/cli/chunks/{chunk-CX5TTKTB.js → chunk-IQGVQBVS.js} +1 -1
  113. package/dist/cli/chunks/{chunk-AXJTWYCF.js → chunk-JOCR5TWI.js} +2 -2
  114. package/dist/cli/chunks/chunk-JV7HKHQS.js +2 -0
  115. package/dist/cli/chunks/{chunk-QRP7WPSO.js → chunk-KULWZMVC.js} +3 -3
  116. package/dist/cli/chunks/{chunk-B5OL6C4A.js → chunk-LHZLH6I4.js} +2 -2
  117. package/dist/cli/chunks/{chunk-FHNDCWXZ.js → chunk-LRHJOYKY.js} +3 -3
  118. package/dist/cli/chunks/{chunk-E7WWAJK5.js → chunk-MXT7YUOZ.js} +2 -2
  119. package/dist/cli/chunks/{chunk-DQ3ZEAMM.js → chunk-OBDM6OJL.js} +1 -1
  120. package/dist/cli/chunks/{chunk-E6MBYXCI.js → chunk-OGHIQCJU.js} +2 -2
  121. package/dist/cli/chunks/{chunk-VC4X36JJ.js → chunk-OHG6SNIA.js} +2 -2
  122. package/dist/cli/chunks/{chunk-YNHB6NGD.js → chunk-OJGR56BP.js} +2 -2
  123. package/dist/cli/chunks/{chunk-FYVNVHMI.js → chunk-OKCI6BNZ.js} +2 -2
  124. package/dist/cli/chunks/{chunk-T5WF5HBA.js → chunk-OM7A3YC3.js} +2 -2
  125. package/dist/cli/chunks/{chunk-JDUJCNS5.js → chunk-OP54A7C6.js} +2 -2
  126. package/dist/cli/chunks/{chunk-MT4ZZUPF.js → chunk-OUNZPHTA.js} +1 -1
  127. package/dist/cli/chunks/{chunk-SILMLIWR.js → chunk-Q3MQYATA.js} +2 -2
  128. package/dist/cli/chunks/{chunk-6ZTKAP4X.js → chunk-Q7TWE55T.js} +3 -3
  129. package/dist/cli/chunks/{chunk-XD7W2BE6.js → chunk-QHCOAG7D.js} +1 -1
  130. package/dist/cli/chunks/{chunk-M7QYRRRS.js → chunk-QIE76ERL.js} +1 -1
  131. package/dist/cli/chunks/{chunk-E6HTC3I2.js → chunk-QKTB5FZP.js} +2 -2
  132. package/dist/cli/chunks/{chunk-QANDN6CW.js → chunk-QNUVC6OX.js} +1 -1
  133. package/dist/cli/chunks/{chunk-7IJIOZHW.js → chunk-R4B2B6MZ.js} +2 -2
  134. package/dist/cli/chunks/{chunk-K2UQR3NX.js → chunk-RMNZSGTE.js} +2 -2
  135. package/dist/cli/chunks/{chunk-WNM64IA6.js → chunk-RURYOWWU.js} +1 -1
  136. package/dist/cli/chunks/{chunk-XQHTGKXD.js → chunk-RYPUA6E2.js} +2 -2
  137. package/dist/cli/chunks/{chunk-4GGDA6PF.js → chunk-SI7AQK7I.js} +2 -2
  138. package/dist/cli/chunks/{chunk-DDNFBXJJ.js → chunk-SL66MHDM.js} +1 -1
  139. package/dist/cli/chunks/{chunk-BC6LRNKU.js → chunk-SSZMISGC.js} +2 -2
  140. package/dist/cli/chunks/{chunk-JAVMUPY3.js → chunk-TNQBHQFH.js} +2 -2
  141. package/dist/cli/chunks/{chunk-CGXLVTVK.js → chunk-TOS3PI5Q.js} +1 -1
  142. package/dist/cli/chunks/{chunk-I6J7AYIL.js → chunk-TPTKR5ZO.js} +1 -1
  143. package/dist/cli/chunks/{chunk-UOD76Y2C.js → chunk-TRJRRJV3.js} +1 -1
  144. package/dist/cli/chunks/{chunk-WZYG4SKQ.js → chunk-TU3JIH3U.js} +5 -5
  145. package/dist/cli/chunks/{chunk-NVMJS347.js → chunk-TVASP2E6.js} +2 -2
  146. package/dist/cli/chunks/{chunk-45SNY726.js → chunk-TWRGM5TY.js} +2 -2
  147. package/dist/cli/chunks/{chunk-FYJSJLTP.js → chunk-UCCNB75R.js} +2 -2
  148. package/dist/cli/chunks/{chunk-ESYALM4A.js → chunk-UDIRBCZW.js} +1 -1
  149. package/dist/cli/chunks/{chunk-Q3BVPPHB.js → chunk-V2CV6J2A.js} +2 -2
  150. package/dist/cli/chunks/{chunk-6DDT5OHC.js → chunk-V6UODTBP.js} +1 -1
  151. package/dist/cli/chunks/{chunk-WEMOVPQS.js → chunk-VCJP7HQG.js} +2 -2
  152. package/dist/cli/chunks/chunk-VHSDZEYF.js +2 -0
  153. package/dist/cli/chunks/{chunk-SVEC7C63.js → chunk-VJN7NQGI.js} +9 -9
  154. package/dist/cli/chunks/{chunk-X7IRGKAM.js → chunk-VLZBQ3XN.js} +2 -2
  155. package/dist/cli/chunks/{chunk-ALW3NHF2.js → chunk-VU7ENCSU.js} +2 -2
  156. package/dist/cli/chunks/{chunk-FGE33JCO.js → chunk-VVVIRGO7.js} +2 -2
  157. package/dist/cli/chunks/chunk-VWEGO7BY.js +2 -0
  158. package/dist/cli/chunks/{chunk-LNHOWUSG.js → chunk-W2YCNX4O.js} +2 -2
  159. package/dist/cli/chunks/{chunk-TKV2X6EP.js → chunk-W6LEOFA4.js} +2 -2
  160. package/dist/cli/chunks/{chunk-RLVQDFZ2.js → chunk-WQGP5ULD.js} +2 -2
  161. package/dist/cli/chunks/{chunk-Q2JAC625.js → chunk-WQIB5ERQ.js} +2 -2
  162. package/dist/cli/chunks/{chunk-KYO7ME7T.js → chunk-WVWB7K6H.js} +1 -1
  163. package/dist/cli/chunks/{chunk-GK4QGLN6.js → chunk-X3UVXJIK.js} +2 -2
  164. package/dist/cli/chunks/{chunk-2BDTKGEH.js → chunk-XV42SKJD.js} +2 -2
  165. package/dist/cli/chunks/{chunk-NWL7UQPY.js → chunk-XXQYSDLV.js} +2 -2
  166. package/dist/cli/chunks/chunk-Y2ONHWXI.js +2 -0
  167. package/dist/cli/chunks/{chunk-52GDG6LU.js → chunk-Y7YSJD4I.js} +2 -2
  168. package/dist/cli/chunks/{chunk-CBD772DQ.js → chunk-YBKSENTJ.js} +3 -3
  169. package/dist/cli/chunks/{chunk-ZYAIIW3U.js → chunk-YCQ2GHFH.js} +2 -2
  170. package/dist/cli/chunks/{chunk-6Q7F4HBV.js → chunk-YCTGWMCP.js} +3 -3
  171. package/dist/cli/chunks/{chunk-R7RGOZ3H.js → chunk-YYQVSVBO.js} +2 -2
  172. package/dist/cli/chunks/{chunk-H6T57HMP.js → chunk-Z6F4GRXY.js} +1 -1
  173. package/dist/cli/chunks/chunk-ZN7KPIJW.js +2 -0
  174. package/dist/cli/chunks/{chunk-GB4LEEYS.js → chunk-ZS5BM2EE.js} +2 -2
  175. package/dist/cli/chunks/{chunk-WMVMFBMH.js → chunk-ZUW3KVML.js} +2 -2
  176. package/dist/cli/chunks/chunk-ZXJNX5D2.js +2 -0
  177. package/dist/cli/chunks/{ci-44MZEXKJ.js → ci-FEEIAOQN.js} +2 -2
  178. package/dist/cli/chunks/{ci-output-GZOZ3VUQ.js → ci-output-2WMUTORB.js} +2 -2
  179. package/dist/cli/chunks/{circuit-breaker-5BOXU65J.js → circuit-breaker-MFEE23XA.js} +2 -2
  180. package/dist/cli/chunks/{claude-flow-setup-T5R4BHVO.js → claude-flow-setup-6D655INK.js} +2 -2
  181. package/dist/cli/chunks/client-LMOHUGOA.js +2 -0
  182. package/dist/cli/chunks/{cline-installer-LLROFJKC.js → cline-installer-5PIYMPAG.js} +2 -2
  183. package/dist/cli/chunks/{code-ATTTFE44.js → code-ACS453WG.js} +2 -2
  184. package/dist/cli/chunks/{code-index-extractor-S4DRQYVK.js → code-index-extractor-5SERI6TM.js} +2 -2
  185. package/dist/cli/chunks/{codex-installer-WRPU4ITG.js → codex-installer-WCUUWHP5.js} +2 -2
  186. package/dist/cli/chunks/{completions-EVEFMAIP.js → completions-6WFG3FPJ.js} +2 -2
  187. package/dist/cli/chunks/{complexity-analyzer-3RXGDVMX.js → complexity-analyzer-IFZEFCB6.js} +2 -2
  188. package/dist/cli/chunks/{continuedev-installer-TLMVH7VM.js → continuedev-installer-RW6FEEND.js} +2 -2
  189. package/dist/cli/chunks/{copilot-installer-JOYO6JND.js → copilot-installer-UZPE65RL.js} +2 -2
  190. package/dist/cli/chunks/{cost-tracker-FJJO7V73.js → cost-tracker-2R4FT6TY.js} +2 -2
  191. package/dist/cli/chunks/{coverage-MBFLUTS3.js → coverage-ZUC5U47P.js} +3 -3
  192. package/dist/cli/chunks/cross-domain-router-IZB5ZMXO.js +2 -0
  193. package/dist/cli/chunks/{cursor-installer-RUUOVPGH.js → cursor-installer-7JBZT7JZ.js} +2 -2
  194. package/dist/cli/chunks/{daemon-LGFCMQVV.js → daemon-YNF54UYB.js} +3 -3
  195. package/dist/cli/chunks/{dag-attention-scheduler-AFCFHXDN.js → dag-attention-scheduler-MS7D2NFM.js} +2 -2
  196. package/dist/cli/chunks/{detect-CUWUBG5C.js → detect-UHOSHYVB.js} +2 -2
  197. package/dist/cli/chunks/{domain-handler-WHXJUWWW.js → domain-handler-BVW4AX7O.js} +2 -2
  198. package/dist/cli/chunks/{domain-transfer-K6EVN3AJ.js → domain-transfer-PA2ENF3D.js} +2 -2
  199. package/dist/cli/chunks/dream-SAPSS25B.js +2 -0
  200. package/dist/cli/chunks/esm-node-FTBUMV4L.js +2 -0
  201. package/dist/cli/chunks/{eval-YZDW7GLA.js → eval-Y3ODM7JU.js} +2 -2
  202. package/dist/cli/chunks/{fast-paths-M4MXWH5P.js → fast-paths-DYQ5NC4Y.js} +2 -2
  203. package/dist/cli/chunks/{feature-flags-3YMEIR7B.js → feature-flags-V34UZPHG.js} +2 -2
  204. package/dist/cli/chunks/{feature-flags-5CRUDVES.js → feature-flags-YMMGYWT3.js} +2 -2
  205. package/dist/cli/chunks/{file-discovery-YBAUSWQ6.js → file-discovery-75ZHSK4G.js} +2 -2
  206. package/dist/cli/chunks/{fleet-KZ7U5HH5.js → fleet-DD2CFGJL.js} +3 -3
  207. package/dist/cli/chunks/{gnn-wrapper-YPOKBUR3.js → gnn-wrapper-UXM3L5LV.js} +2 -2
  208. package/dist/cli/chunks/{heartbeat-handler-47WVNCNY.js → heartbeat-handler-ANHRYXNS.js} +4 -4
  209. package/dist/cli/chunks/{heartbeat-scheduler-4CKQSIHQ.js → heartbeat-scheduler-HYVMXCXT.js} +2 -2
  210. package/dist/cli/chunks/hnsw-adapter-CBDRZLXX.js +2 -0
  211. package/dist/cli/chunks/hnsw-index-EOJG4VF4.js +2 -0
  212. package/dist/cli/chunks/{hnsw-legacy-bridge-SZ6SXZ7G.js → hnsw-legacy-bridge-IFUEUOVF.js} +2 -2
  213. package/dist/cli/chunks/{hnswlib-node-XVNGLWIG.js → hnswlib-node-GYVDPTWU.js} +2 -2
  214. package/dist/cli/chunks/{hooks-WVVVJ2CC.js → hooks-R3DQNG2F.js} +6 -6
  215. package/dist/cli/chunks/hybrid-router-MSCQ2XGU.js +2 -0
  216. package/dist/cli/chunks/{hypergraph-engine-EYTJMSNY.js → hypergraph-engine-3TKB5O7T.js} +2 -2
  217. package/dist/cli/chunks/{hypergraph-handler-JUCJMSBU.js → hypergraph-handler-4APYID2S.js} +3 -3
  218. package/dist/cli/chunks/impact-analyzer-C2TXXYPC.js +2 -0
  219. package/dist/cli/chunks/{init-handler-5COQTBSZ.js → init-handler-E7B2GKH3.js} +6 -6
  220. package/dist/cli/chunks/init-wizard-IQV7SBMW.js +2 -0
  221. package/dist/cli/chunks/kernel-NJOPFGK7.js +2 -0
  222. package/dist/cli/chunks/{kilocode-installer-G54YKSIL.js → kilocode-installer-WY6VTFSA.js} +2 -2
  223. package/dist/cli/chunks/{kiro-installer-ZEKZVKTM.js → kiro-installer-SCNF3JXD.js} +4 -4
  224. package/dist/cli/chunks/knowledge-graph-EUMGCQPH.js +2 -0
  225. package/dist/cli/chunks/{learning-JE7PDBQV.js → learning-Y4OZJFBV.js} +3 -3
  226. package/dist/cli/chunks/{llm-router-RCOTEVVC.js → llm-router-RBKYYHBJ.js} +5 -5
  227. package/dist/cli/chunks/{load-3Y35Y6FL.js → load-FY64UGHV.js} +2 -2
  228. package/dist/cli/chunks/load-test-LBYVVG35.js +2 -0
  229. package/dist/cli/chunks/{mcp-NOHRCC4E.js → mcp-6VMQOWMX.js} +2 -2
  230. package/dist/cli/chunks/{memory-GC5OPOO6.js → memory-Y5RO4PGM.js} +5 -5
  231. package/dist/cli/chunks/memory-backend-NQMJKHCQ.js +2 -0
  232. package/dist/cli/chunks/{memory-handlers-MLQAERRE.js → memory-handlers-CMMVHHPG.js} +2 -2
  233. package/dist/cli/chunks/multi-model-executor-JO3MNMPZ.js +14 -0
  234. package/dist/cli/chunks/{opencode-installer-POKAOPXI.js → opencode-installer-WQBTY6JT.js} +2 -2
  235. package/dist/cli/chunks/{orchestrator-N2T3CYEB.js → orchestrator-4J7OSNSG.js} +6 -6
  236. package/dist/cli/chunks/{pipeline-KAVKGC5V.js → pipeline-63T6HN72.js} +2 -2
  237. package/dist/cli/chunks/{platform-DJPEA24D.js → platform-UJMD4EPZ.js} +2 -2
  238. package/dist/cli/chunks/{plugin-RHZZP3OH.js → plugin-NDOZ63JW.js} +2 -2
  239. package/dist/cli/chunks/{prime-radiant-advanced-wasm-6A57VDNI.js → prime-radiant-advanced-wasm-ELGHVIFI.js} +2 -2
  240. package/dist/cli/chunks/protocol-executor-ZSWPG5SU.js +2 -0
  241. package/dist/cli/chunks/{protocol-handler-FBR254XL.js → protocol-handler-KYERIMVF.js} +2 -2
  242. package/dist/cli/chunks/{prove-YZXY34P6.js → prove-ATSSBP4Z.js} +2 -2
  243. package/dist/cli/chunks/provider-manager-YYMIF23V.js +24 -0
  244. package/dist/cli/chunks/qe-reasoning-bank-4RLPRCGF.js +2 -0
  245. package/dist/cli/chunks/{quality-MICFT3VU.js → quality-2AGJSJW6.js} +2 -2
  246. package/dist/cli/chunks/queen-coordinator-KQ673NYE.js +2 -0
  247. package/dist/cli/chunks/{real-embeddings-HJCRBDOM.js → real-embeddings-H36GVXMI.js} +2 -2
  248. package/dist/cli/chunks/{roocode-installer-K5LIUYDR.js → roocode-installer-PMRBAY7O.js} +2 -2
  249. package/dist/cli/chunks/router-UBNV4H5S.js +2 -0
  250. package/dist/cli/chunks/routing-feedback-BMMGZ346.js +2 -0
  251. package/dist/cli/chunks/{routing-handler-2KIQHWUQ.js → routing-handler-Z7VZSDXW.js} +2 -2
  252. package/dist/cli/chunks/{ruvector-commands-DYGX7PI6.js → ruvector-commands-N3FZ3ZEE.js} +2 -2
  253. package/dist/cli/chunks/{rvf-dual-writer-UTKSIJBG.js → rvf-dual-writer-L5DQHUF3.js} +2 -2
  254. package/dist/cli/chunks/{rvf-migration-adapter-KVJLHJO7.js → rvf-migration-adapter-NPGFA3SL.js} +2 -2
  255. package/dist/cli/chunks/{rvf-migration-coordinator-CRIV4YVR.js → rvf-migration-coordinator-MCJDNKXG.js} +2 -2
  256. package/dist/cli/chunks/rvf-native-adapter-LXBCTTVF.js +2 -0
  257. package/dist/cli/chunks/safe-db-FFSPBUAK.js +2 -0
  258. package/dist/cli/chunks/schedule-2MOMNZ6B.js +2 -0
  259. package/dist/cli/chunks/scheduler-5VGVANFG.js +2 -0
  260. package/dist/cli/chunks/{security-KSEP56UL.js → security-TX7TXUGI.js} +3 -3
  261. package/dist/cli/chunks/shared-rvf-adapter-6JWYF7WV.js +2 -0
  262. package/dist/cli/chunks/{shared-rvf-dual-writer-HD5QOOJD.js → shared-rvf-dual-writer-6K3ZAG7P.js} +2 -2
  263. package/dist/cli/chunks/sqlite-persistence-LCOAORK7.js +2 -0
  264. package/dist/cli/chunks/{status-handler-AMKMMUNW.js → status-handler-MIRLQRNN.js} +2 -2
  265. package/dist/cli/chunks/{structural-health-GUTWSPBY.js → structural-health-CIHASLUE.js} +2 -2
  266. package/dist/cli/chunks/{sync-OSJF3J4K.js → sync-FGLAP7EK.js} +2 -2
  267. package/dist/cli/chunks/{task-handler-4V4WMTJE.js → task-handler-7HMPRCHY.js} +2 -2
  268. package/dist/cli/chunks/{task-handlers-EAORRI7E.js → task-handlers-DQLQCLCT.js} +2 -2
  269. package/dist/cli/chunks/{test-EGW6L6ZI.js → test-JKDO5ZHU.js} +4 -4
  270. package/dist/cli/chunks/{test-scheduling-UK2GVD67.js → test-scheduling-2YKZ7PVZ.js} +3 -3
  271. package/dist/cli/chunks/{token-bootstrap-DT2FQWIK.js → token-bootstrap-C7UUPMQN.js} +2 -2
  272. package/dist/cli/chunks/{token-usage-HQVOD3I3.js → token-usage-2RVIPCY4.js} +2 -2
  273. package/dist/cli/chunks/{transformers-TDZOMLEQ.js → transformers-UEMAGHQ5.js} +2 -2
  274. package/dist/cli/chunks/{tree-sitter-wasm-parser-XT3A32J7.js → tree-sitter-wasm-parser-MELABICK.js} +2 -2
  275. package/dist/cli/chunks/{types-QOT5P6RH.js → types-5B4RD7ZV.js} +2 -2
  276. package/dist/cli/chunks/unified-memory-CZCWZUFP.js +2 -0
  277. package/dist/cli/chunks/unified-memory-hnsw-QEOXVSOZ.js +2 -0
  278. package/dist/cli/chunks/unified-persistence-HGZAYZGP.js +2 -0
  279. package/dist/cli/chunks/{validate-SXCT3APL.js → validate-CHDG7SC3.js} +2 -2
  280. package/dist/cli/chunks/{validate-swarm-WGJUWWJ6.js → validate-swarm-LB7GORKE.js} +2 -2
  281. package/dist/cli/chunks/{vibium-ONK73HYI.js → vibium-ZMC4G2YA.js} +2 -2
  282. package/dist/cli/chunks/visual-security-ITKF4E4Z.js +2 -0
  283. package/dist/cli/chunks/{web-tree-sitter-Q5TXI2BE.js → web-tree-sitter-THNO6S2V.js} +2 -2
  284. package/dist/cli/chunks/{windsurf-installer-HTJT3VIM.js → windsurf-installer-LRB43BPX.js} +2 -2
  285. package/dist/cli/chunks/{witness-chain-7TPWQZ2P.js → witness-chain-JC5UBXPM.js} +2 -2
  286. package/dist/cli/chunks/witness-chain-SYFYXQD3.js +2 -0
  287. package/dist/cli/chunks/{workflow-LTC4J62A.js → workflow-Q4IYQ6F2.js} +4 -4
  288. package/dist/cli/chunks/workflow-orchestrator-GZS2O3KW.js +2 -0
  289. package/dist/cli/chunks/{wrappers-TWCCXU2M.js → wrappers-WSSLMFSE.js} +2 -2
  290. package/dist/cli/commands/llm-router.js +3 -3
  291. package/dist/coordination/consensus/providers/claude-provider.d.ts +3 -3
  292. package/dist/coordination/consensus/providers/claude-provider.js +6 -3
  293. package/dist/coordination/task-executor.js +5 -5
  294. package/dist/domains/chaos-resilience/services/chaos-engineer.js +3 -3
  295. package/dist/domains/code-intelligence/services/knowledge-graph.js +5 -5
  296. package/dist/domains/constants.d.ts +3 -3
  297. package/dist/domains/constants.js +3 -3
  298. package/dist/domains/contract-testing/services/contract-validator.js +3 -3
  299. package/dist/domains/coverage-analysis/services/coverage-analyzer.js +5 -5
  300. package/dist/domains/coverage-analysis/services/gap-detector.js +5 -5
  301. package/dist/domains/defect-intelligence/services/defect-predictor.js +5 -5
  302. package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +5 -5
  303. package/dist/domains/learning-optimization/services/learning-coordinator.js +3 -3
  304. package/dist/domains/quality-assessment/services/deployment-advisor.js +5 -5
  305. package/dist/domains/quality-assessment/services/quality-analyzer.js +5 -5
  306. package/dist/domains/requirements-validation/services/requirements-validator.js +5 -5
  307. package/dist/domains/security-compliance/services/scanners/sast-scanner.js +5 -5
  308. package/dist/domains/test-execution/services/test-executor.js +3 -3
  309. package/dist/domains/test-generation/services/test-generator.js +5 -5
  310. package/dist/domains/visual-accessibility/services/visual-tester.js +3 -3
  311. package/dist/init/init-wizard-steps.js +1 -1
  312. package/dist/init/kiro-installer.js +8 -8
  313. package/dist/init/phases/12-verification.js +1 -1
  314. package/dist/integrations/agentic-flow/model-router/types.js +8 -8
  315. package/dist/mcp/bundle.js +82 -82
  316. package/dist/mcp/security/sampling-server.js +1 -1
  317. package/dist/routing/advisor/multi-model-executor.d.ts +6 -2
  318. package/dist/routing/advisor/multi-model-executor.js +19 -3
  319. package/dist/routing/security/cyber-pin.d.ts +58 -0
  320. package/dist/routing/security/cyber-pin.js +75 -0
  321. package/dist/shared/llm/cost-tracker.js +5 -0
  322. package/dist/shared/llm/effort-resolver.d.ts +79 -0
  323. package/dist/shared/llm/effort-resolver.js +128 -0
  324. package/dist/shared/llm/interfaces.d.ts +11 -1
  325. package/dist/shared/llm/metrics/cost-metrics.js +1 -1
  326. package/dist/shared/llm/model-mapping.js +31 -0
  327. package/dist/shared/llm/model-registry.d.ts +40 -0
  328. package/dist/shared/llm/model-registry.js +126 -2
  329. package/dist/shared/llm/provider-manager.js +1 -1
  330. package/dist/shared/llm/providers/bedrock.js +9 -7
  331. package/dist/shared/llm/providers/claude.js +31 -4
  332. package/dist/shared/llm/router/agent-router-config.js +16 -16
  333. package/dist/shared/llm/router/hybrid-router.js +18 -1
  334. package/dist/shared/llm/router/routing-rules.js +9 -9
  335. package/dist/shared/llm/router/types.js +29 -29
  336. package/dist/shared/llm/translation/message-formatter.js +3 -3
  337. package/package.json +1 -1
  338. package/dist/cli/chunks/adapter-EOD4AG2T.js +0 -2
  339. package/dist/cli/chunks/aqe-learning-engine-6REY3BZB.js +0 -2
  340. package/dist/cli/chunks/base-HFVYEJKR.js +0 -2
  341. package/dist/cli/chunks/browser-workflow-GPR3IS36.js +0 -2
  342. package/dist/cli/chunks/chunk-FJZQH4JB.js +0 -2
  343. package/dist/cli/chunks/chunk-GIWDEW4K.js +0 -2
  344. package/dist/cli/chunks/chunk-LVCBXFHT.js +0 -2
  345. package/dist/cli/chunks/chunk-UZX62Z2K.js +0 -2
  346. package/dist/cli/chunks/chunk-Z7E27V5F.js +0 -2
  347. package/dist/cli/chunks/client-NGAZ5BMU.js +0 -2
  348. package/dist/cli/chunks/cross-domain-router-ORAWSROD.js +0 -2
  349. package/dist/cli/chunks/dream-N72NDTWM.js +0 -2
  350. package/dist/cli/chunks/esm-node-OUE76NVS.js +0 -2
  351. package/dist/cli/chunks/hnsw-adapter-DO7CQXCP.js +0 -2
  352. package/dist/cli/chunks/hnsw-index-B6FEXSZX.js +0 -2
  353. package/dist/cli/chunks/hybrid-router-236O2EMV.js +0 -2
  354. package/dist/cli/chunks/impact-analyzer-E2DVJTE7.js +0 -2
  355. package/dist/cli/chunks/init-wizard-KQCWXEDA.js +0 -2
  356. package/dist/cli/chunks/kernel-KBING4CP.js +0 -2
  357. package/dist/cli/chunks/knowledge-graph-AF6OAAJ5.js +0 -2
  358. package/dist/cli/chunks/load-test-LKIZ376E.js +0 -2
  359. package/dist/cli/chunks/memory-backend-HHGGHQYM.js +0 -2
  360. package/dist/cli/chunks/multi-model-executor-YE4JOCN5.js +0 -14
  361. package/dist/cli/chunks/protocol-executor-RNXGXAZC.js +0 -2
  362. package/dist/cli/chunks/provider-manager-H7QVBYXM.js +0 -24
  363. package/dist/cli/chunks/qe-reasoning-bank-ZMDU5MUW.js +0 -2
  364. package/dist/cli/chunks/queen-coordinator-4XWCCVIY.js +0 -2
  365. package/dist/cli/chunks/router-JYGSCGGM.js +0 -2
  366. package/dist/cli/chunks/routing-feedback-DO5FLA62.js +0 -2
  367. package/dist/cli/chunks/rvf-native-adapter-SS6KKXJM.js +0 -2
  368. package/dist/cli/chunks/safe-db-A66XXHI7.js +0 -2
  369. package/dist/cli/chunks/schedule-DQRJD5H5.js +0 -2
  370. package/dist/cli/chunks/scheduler-PLSXEVV7.js +0 -2
  371. package/dist/cli/chunks/shared-rvf-adapter-DE2OVTUI.js +0 -2
  372. package/dist/cli/chunks/sqlite-persistence-R4IDAV5X.js +0 -2
  373. package/dist/cli/chunks/unified-memory-3MDWRNDW.js +0 -2
  374. package/dist/cli/chunks/unified-memory-hnsw-TEJXRLAS.js +0 -2
  375. package/dist/cli/chunks/unified-persistence-ALHQN2LG.js +0 -2
  376. package/dist/cli/chunks/visual-security-WFWC5N2E.js +0 -2
  377. package/dist/cli/chunks/witness-chain-T34QYEFI.js +0 -2
  378. package/dist/cli/chunks/workflow-orchestrator-UIVPDA7M.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-3-sonnet-20240229',
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 model = opts.model ?? DEFAULT_ADVISOR_MODEL;
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-5-20251101' | 'claude-sonnet-4-20250514' | 'claude-3-5-haiku-20241022' | string;
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-20250514',
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