agentic-qe 3.15.12 → 3.15.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/helpers/brain-checkpoint.cjs +124 -5
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +196 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-23KA2YW7.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-5VZCKTIJ.js → agent-booster-wasm-2DLAEZK6.js} +2 -2
- package/dist/cli/chunks/{agent-handler-K3C6CQCD.js → agent-handler-P3IY7XEE.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-NVFQ25WS.js → agent-memory-branch-WWKC2H3G.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-MUICAXW5.js +2 -0
- package/dist/cli/chunks/{arena-TSZVDSXS.js → arena-4BMFF6BS.js} +4 -4
- package/dist/cli/chunks/{arena-QGWIJADQ.js → arena-EIV5OALF.js} +2 -2
- package/dist/cli/chunks/{audit-KIEE2SHJ.js → audit-DNTI453H.js} +3 -3
- package/dist/cli/chunks/base-XPWGYDKD.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-BNB32NW3.js → better-sqlite3-TQBQGNC6.js} +2 -2
- package/dist/cli/chunks/brain-handler-HY57CNAO.js +95 -0
- package/dist/cli/chunks/{branch-enumerator-LZ7UXKAY.js → branch-enumerator-THPMZPHQ.js} +2 -2
- package/dist/cli/chunks/{browser-VDHAW4RK.js → browser-O6JJOZCK.js} +2 -2
- package/dist/cli/chunks/browser-workflow-UMQVBVGK.js +2 -0
- package/dist/cli/chunks/{chunk-4PU5GTZW.js → chunk-2HPNGK7A.js} +2 -2
- package/dist/cli/chunks/{chunk-MCPXNUDK.js → chunk-2IJO3657.js} +2 -2
- package/dist/cli/chunks/{chunk-4Y6OEBJZ.js → chunk-2QLE6NDW.js} +1 -1
- package/dist/cli/chunks/{chunk-DZGPUGUG.js → chunk-2UZBLC5H.js} +2 -2
- package/dist/cli/chunks/{chunk-5A66EGEW.js → chunk-2W5MQDHM.js} +2 -2
- package/dist/cli/chunks/{chunk-JRYWLOBD.js → chunk-3FITMWWJ.js} +2 -2
- package/dist/cli/chunks/{chunk-RCOLPF3B.js → chunk-3TF27MG5.js} +2 -2
- package/dist/cli/chunks/{chunk-KGA7VAI4.js → chunk-3XACRXBY.js} +2 -2
- package/dist/cli/chunks/{chunk-SQVZ3TRU.js → chunk-43XHGWYH.js} +2 -2
- package/dist/cli/chunks/{chunk-JR6CUKAI.js → chunk-4RPBODN5.js} +2 -2
- package/dist/cli/chunks/{chunk-C3YOVASQ.js → chunk-4T7XV5KQ.js} +1 -1
- package/dist/cli/chunks/{chunk-N7O3PF6Y.js → chunk-4WLIOPHX.js} +2 -2
- package/dist/cli/chunks/{chunk-PGSJBXTD.js → chunk-52KOPIMI.js} +2 -2
- package/dist/cli/chunks/{chunk-4KUOYDY2.js → chunk-56NSE3LJ.js} +2 -2
- package/dist/cli/chunks/{chunk-3IU4LDZR.js → chunk-57DRT6UA.js} +2 -2
- package/dist/cli/chunks/{chunk-2JYUA27M.js → chunk-57FX3GP6.js} +1 -1
- package/dist/cli/chunks/{chunk-7QEUHNKO.js → chunk-5PLBQZ5J.js} +1 -1
- package/dist/cli/chunks/{chunk-VF7FTD64.js → chunk-5Y7UFHJD.js} +1 -1
- package/dist/cli/chunks/{chunk-7JFDLL2F.js → chunk-5Z4MO2F3.js} +1 -1
- package/dist/cli/chunks/chunk-65EE2EST.js +8 -0
- package/dist/cli/chunks/{chunk-66PXR3NI.js → chunk-6NIGSY5L.js} +2 -2
- package/dist/cli/chunks/chunk-6O63ZTVX.js +3 -0
- package/dist/cli/chunks/{chunk-ZYOYR3UR.js → chunk-6OI5SK7M.js} +1 -1
- package/dist/cli/chunks/{chunk-5TAEW5OV.js → chunk-6P4Q4RTC.js} +1 -1
- package/dist/cli/chunks/{chunk-W5HQIYQU.js → chunk-7724KXM2.js} +3 -3
- package/dist/cli/chunks/{chunk-A2JCRXTK.js → chunk-7MISCSL5.js} +2 -2
- package/dist/cli/chunks/{chunk-OHVYINGM.js → chunk-7MUO4DEH.js} +3 -3
- package/dist/cli/chunks/{chunk-QCPVUNN3.js → chunk-7QUSNBAA.js} +2 -2
- package/dist/cli/chunks/{chunk-YUA6ZKKY.js → chunk-7SQTLUEN.js} +2 -2
- package/dist/cli/chunks/{chunk-CA5UNWQF.js → chunk-7T6L3LFN.js} +2 -2
- package/dist/cli/chunks/{chunk-UREDS662.js → chunk-7TH4PJSU.js} +2 -2
- package/dist/cli/chunks/{chunk-TVA5GRIU.js → chunk-7Y3LXH57.js} +2 -2
- package/dist/cli/chunks/{chunk-A5Y7DAVQ.js → chunk-A2T56XVL.js} +2 -2
- package/dist/cli/chunks/{chunk-ZROAMFX2.js → chunk-AJVLVF7V.js} +2 -2
- package/dist/cli/chunks/{chunk-26672ISV.js → chunk-ARRBXCII.js} +2 -2
- package/dist/cli/chunks/{chunk-5S4UIDFK.js → chunk-AYLEH2UF.js} +1 -1
- package/dist/cli/chunks/{chunk-DRCBRUGN.js → chunk-BBYJBZHG.js} +2 -2
- package/dist/cli/chunks/{chunk-BMG2JLSQ.js → chunk-BM3EJLMV.js} +2 -2
- package/dist/cli/chunks/{chunk-6QRI3JVE.js → chunk-BNG4J3CE.js} +2 -2
- package/dist/cli/chunks/{chunk-EN7GRVEQ.js → chunk-BPDAQB3F.js} +2 -2
- package/dist/cli/chunks/{chunk-J7Y7ZBIT.js → chunk-BQJ7CV53.js} +9 -9
- package/dist/cli/chunks/{chunk-ADUAJIAU.js → chunk-C3OIBFAA.js} +2 -2
- package/dist/cli/chunks/{chunk-4LWMAAWK.js → chunk-CAZM63TP.js} +2 -2
- package/dist/cli/chunks/{chunk-UZED4YZ5.js → chunk-CIINJHOX.js} +1 -1
- package/dist/cli/chunks/{chunk-C74M4WUI.js → chunk-CPPYZYXC.js} +2 -2
- package/dist/cli/chunks/chunk-D3ZZ2NLL.js +62 -0
- package/dist/cli/chunks/{chunk-U7ZHDGXG.js → chunk-D5GB5PUU.js} +1 -1
- package/dist/cli/chunks/{chunk-HZBXJFGN.js → chunk-DLTB5KCR.js} +2 -2
- package/dist/cli/chunks/{chunk-NNBQZR73.js → chunk-DRLSJJIC.js} +2 -2
- package/dist/cli/chunks/{chunk-HLGFHHWV.js → chunk-DSQESXL4.js} +2 -2
- package/dist/cli/chunks/{chunk-LFBA735S.js → chunk-E2JLAW3U.js} +3 -3
- package/dist/cli/chunks/{chunk-PT2NXS43.js → chunk-E3QIQMMN.js} +1 -1
- package/dist/cli/chunks/{chunk-35MIUSXQ.js → chunk-E7OR6V3V.js} +2 -2
- package/dist/cli/chunks/{chunk-G24SWTAX.js → chunk-E7QTWGPI.js} +413 -413
- package/dist/cli/chunks/{chunk-PX5OPXY6.js → chunk-EC65UZ77.js} +1 -1
- package/dist/cli/chunks/{chunk-JNXK47OL.js → chunk-EIEEST4T.js} +2 -2
- package/dist/cli/chunks/{chunk-2PPSS4JD.js → chunk-FHPNWHY7.js} +2 -2
- package/dist/cli/chunks/{chunk-PTBOLBM4.js → chunk-FJOIBZUB.js} +2 -2
- package/dist/cli/chunks/{chunk-TXEUVUMO.js → chunk-FTYRPEJS.js} +1 -1
- package/dist/cli/chunks/{chunk-ZPVGX4DI.js → chunk-G7HGUQAE.js} +2 -2
- package/dist/cli/chunks/{chunk-EF6OERRR.js → chunk-GY4P7KAI.js} +1 -1
- package/dist/cli/chunks/{chunk-UUZZXHUF.js → chunk-H3C5FJRH.js} +2 -2
- package/dist/cli/chunks/{chunk-L3PV7VXK.js → chunk-H4LYXLAT.js} +1 -1
- package/dist/cli/chunks/{chunk-5Z23ZMXZ.js → chunk-HAYKLXCT.js} +63 -61
- package/dist/cli/chunks/{chunk-IPA7K556.js → chunk-HEDGFKC5.js} +2 -2
- package/dist/cli/chunks/{chunk-BC4T6SCV.js → chunk-HHBF2BZC.js} +4 -4
- package/dist/cli/chunks/{chunk-IVTQF55W.js → chunk-HSDWPQQY.js} +3 -3
- package/dist/cli/chunks/{chunk-SG2TX72G.js → chunk-HTVGHHX2.js} +2 -2
- package/dist/cli/chunks/{chunk-FZJCBSN4.js → chunk-HV43NX4A.js} +2 -2
- package/dist/cli/chunks/{chunk-MMEALJ4D.js → chunk-IDBA5GK2.js} +2 -2
- package/dist/cli/chunks/{chunk-IA55PFLG.js → chunk-INGXD5IX.js} +2 -2
- package/dist/cli/chunks/{chunk-RYHG3I7J.js → chunk-IQRPR4KB.js} +2 -2
- package/dist/cli/chunks/{chunk-7OEFBWAG.js → chunk-IRPNEXOU.js} +2 -2
- package/dist/cli/chunks/{chunk-P7UFJ6DO.js → chunk-J35JWDJE.js} +1 -1
- package/dist/cli/chunks/chunk-J6ASX536.js +2 -0
- package/dist/cli/chunks/{chunk-2ASQRBK2.js → chunk-JAOCHPYX.js} +2 -2
- package/dist/cli/chunks/{chunk-G3AABG4Q.js → chunk-JB7R77SH.js} +2 -2
- package/dist/cli/chunks/{chunk-HSA5IGGW.js → chunk-JI67T6Q2.js} +2 -2
- package/dist/cli/chunks/{chunk-ZGROHCOW.js → chunk-JJHLGGPP.js} +1 -1
- package/dist/cli/chunks/{chunk-L7NGKANW.js → chunk-JK6PMLQQ.js} +2 -2
- package/dist/cli/chunks/{chunk-IL7GQNNE.js → chunk-JO26SG47.js} +2 -2
- package/dist/cli/chunks/{chunk-3EWQN37E.js → chunk-JSSU4RIK.js} +2 -2
- package/dist/cli/chunks/{chunk-TOWOJGEI.js → chunk-K2SMP4OD.js} +1 -1
- package/dist/cli/chunks/{chunk-YVJEUX3I.js → chunk-K7GFYFBO.js} +2 -2
- package/dist/cli/chunks/{chunk-DAUEK66C.js → chunk-K7RT6ITZ.js} +1 -1
- package/dist/cli/chunks/{chunk-33I2ZP6E.js → chunk-KJ5A54ZH.js} +2 -2
- package/dist/cli/chunks/{chunk-W4II6SIH.js → chunk-L5VSLPMW.js} +2 -2
- package/dist/cli/chunks/{chunk-NVRYELCY.js → chunk-L752CNG3.js} +3 -3
- package/dist/cli/chunks/{chunk-MAJXZYGK.js → chunk-L7PC675Y.js} +1 -1
- package/dist/cli/chunks/{chunk-YWWMNTBF.js → chunk-LTGQJYYO.js} +2 -2
- package/dist/cli/chunks/{chunk-7DNR4KKR.js → chunk-M2TG7VDK.js} +1 -1
- package/dist/cli/chunks/{chunk-2E2QO44T.js → chunk-M5JEA6ZY.js} +2 -2
- package/dist/cli/chunks/{chunk-IETBWYHW.js → chunk-MB4UKUBV.js} +2 -2
- package/dist/cli/chunks/{chunk-W7H55PY4.js → chunk-MKYOE7NE.js} +1 -1
- package/dist/cli/chunks/{chunk-FNUFTWEO.js → chunk-MQXWG55U.js} +3 -3
- package/dist/cli/chunks/{chunk-O4QJMANM.js → chunk-MR2OPUSA.js} +1 -1
- package/dist/cli/chunks/{chunk-KA5SHLMW.js → chunk-N736GLWZ.js} +2 -2
- package/dist/cli/chunks/{chunk-NV74SICL.js → chunk-NHEG2DLN.js} +2 -2
- package/dist/cli/chunks/chunk-NKOLILT7.js +86 -0
- package/dist/cli/chunks/{chunk-KJDI5CHX.js → chunk-NPCXGX7N.js} +2 -2
- package/dist/cli/chunks/{chunk-2IVE5AR3.js → chunk-NZQYJCO6.js} +1 -1
- package/dist/cli/chunks/{chunk-4SA7M34P.js → chunk-O2AAYJUV.js} +1 -1
- package/dist/cli/chunks/{chunk-ULCW6IVQ.js → chunk-O32BFQV4.js} +2 -2
- package/dist/cli/chunks/{chunk-JOWUS2X5.js → chunk-O3ERGUXH.js} +1 -1
- package/dist/cli/chunks/{chunk-BYRCB5JT.js → chunk-O5CEL447.js} +2 -2
- package/dist/cli/chunks/{chunk-CPIBIR3X.js → chunk-O756AOUX.js} +2 -2
- package/dist/cli/chunks/{chunk-TSOQ2QLT.js → chunk-OCN53CCK.js} +2 -2
- package/dist/cli/chunks/{chunk-YLKIXEPP.js → chunk-OGEIHS76.js} +1 -1
- package/dist/cli/chunks/{chunk-ICKUINKD.js → chunk-OLUOVNUF.js} +2 -2
- package/dist/cli/chunks/{chunk-5ADXFUMO.js → chunk-P2TPH3TC.js} +2 -2
- package/dist/cli/chunks/{chunk-SBHM5X2S.js → chunk-PCQZIAXB.js} +2 -2
- package/dist/cli/chunks/{chunk-CDA5Z74H.js → chunk-PGN4TARY.js} +2 -2
- package/dist/cli/chunks/{chunk-P5E26N2X.js → chunk-PNRPVQGI.js} +2 -2
- package/dist/cli/chunks/{chunk-23PQF7NN.js → chunk-PWQWKYBG.js} +1 -1
- package/dist/cli/chunks/{chunk-T4EN5VVK.js → chunk-QNQE3EOH.js} +2 -2
- package/dist/cli/chunks/chunk-QP2HLKTS.js +2 -0
- package/dist/cli/chunks/{chunk-7TA5MUPW.js → chunk-QP6GL3O5.js} +1 -1
- package/dist/cli/chunks/{chunk-GKFV6CUD.js → chunk-QUZ745UQ.js} +2 -2
- package/dist/cli/chunks/{chunk-INZARYUD.js → chunk-R5RRWLRI.js} +2 -2
- package/dist/cli/chunks/{chunk-VZBC6DP7.js → chunk-RE6JTSDM.js} +1 -1
- package/dist/cli/chunks/{chunk-JGIJPDGD.js → chunk-TOJF3ZG4.js} +2 -2
- package/dist/cli/chunks/{chunk-WLRU6ESI.js → chunk-TSP6SU5V.js} +2 -2
- package/dist/cli/chunks/{chunk-6E6HB4N4.js → chunk-TW6Z6W4X.js} +4 -4
- package/dist/cli/chunks/{chunk-ENGL7FIJ.js → chunk-TWOV3I3A.js} +1 -1
- package/dist/cli/chunks/chunk-U4TML2VD.js +3 -0
- package/dist/cli/chunks/{chunk-O3IM4WRZ.js → chunk-U6IOQKCT.js} +2 -2
- package/dist/cli/chunks/{chunk-SPC4RBLF.js → chunk-UDSB3XCG.js} +2 -2
- package/dist/cli/chunks/{chunk-URSTP3WI.js → chunk-UFP7SN5V.js} +2 -2
- package/dist/cli/chunks/{chunk-MYF5CNGV.js → chunk-UMHFTQTR.js} +2 -2
- package/dist/cli/chunks/{chunk-65TH6RPD.js → chunk-UNYTHZDZ.js} +1 -1
- package/dist/cli/chunks/{chunk-FAGKBOX2.js → chunk-UPWLMIDY.js} +2 -2
- package/dist/cli/chunks/{chunk-4CB3QPZM.js → chunk-USAKCGHC.js} +2 -2
- package/dist/cli/chunks/{chunk-QUJJYTJH.js → chunk-V3MGY76S.js} +2 -2
- package/dist/cli/chunks/{chunk-WDEXOLK2.js → chunk-V6SE2ZU2.js} +1 -1
- package/dist/cli/chunks/{chunk-JW5PDJ5O.js → chunk-VCVRZD4Y.js} +3 -3
- package/dist/cli/chunks/{chunk-TGMXUZZC.js → chunk-VG32EEUG.js} +2 -2
- package/dist/cli/chunks/{chunk-MYUMJ2ZI.js → chunk-VGZOPQQY.js} +1 -1
- package/dist/cli/chunks/{chunk-BOSMELJX.js → chunk-VJBJRFUO.js} +2 -2
- package/dist/cli/chunks/{chunk-K3A3NWT3.js → chunk-WBC6WB32.js} +2 -2
- package/dist/cli/chunks/{chunk-QWG3SILX.js → chunk-WCM6WE7G.js} +5 -5
- package/dist/cli/chunks/{chunk-GJKZ7UQO.js → chunk-WCPSR4MJ.js} +2 -2
- package/dist/cli/chunks/{chunk-U6IXYQO4.js → chunk-WKI46WWN.js} +2 -2
- package/dist/cli/chunks/{chunk-NX4BCSOZ.js → chunk-WM2QRIRD.js} +2 -2
- package/dist/cli/chunks/{chunk-32UTHIY5.js → chunk-WRC3HLUY.js} +3 -3
- package/dist/cli/chunks/{chunk-AJEXPFAB.js → chunk-WUGXXNK4.js} +1 -1
- package/dist/cli/chunks/{chunk-NA3F6FEO.js → chunk-WZQADC5R.js} +2 -2
- package/dist/cli/chunks/{chunk-SDRJJUPO.js → chunk-X6NJOT3V.js} +1 -1
- package/dist/cli/chunks/{chunk-CU36D7TN.js → chunk-X6Q2N5S5.js} +2 -2
- package/dist/cli/chunks/{chunk-UIKQPO4Y.js → chunk-X7CUI7KH.js} +2 -2
- package/dist/cli/chunks/{chunk-MCPEC6OO.js → chunk-XMCSKYDE.js} +1 -1
- package/dist/cli/chunks/{chunk-WTAUF6O4.js → chunk-XN3KCKAM.js} +2 -2
- package/dist/cli/chunks/{chunk-TLRHAMX5.js → chunk-XSPMLJCQ.js} +1 -1
- package/dist/cli/chunks/{chunk-VUR5THML.js → chunk-XTZGAG6P.js} +2 -2
- package/dist/cli/chunks/{chunk-47RMGDG4.js → chunk-YE54T2NQ.js} +2 -2
- package/dist/cli/chunks/{chunk-HM3LSFTY.js → chunk-YEFTK4HD.js} +2 -2
- package/dist/cli/chunks/{chunk-4HWUECVD.js → chunk-YGC5QKQ4.js} +2 -2
- package/dist/cli/chunks/{chunk-SUX5XB2Z.js → chunk-YGOSSVY5.js} +2 -2
- package/dist/cli/chunks/{chunk-UJNGGFGX.js → chunk-YKQWIXUY.js} +2 -2
- package/dist/cli/chunks/{chunk-SITL5YZV.js → chunk-Z2S7DNFP.js} +2 -2
- package/dist/cli/chunks/{chunk-WGTEZT7G.js → chunk-Z54G2YOL.js} +2 -2
- package/dist/cli/chunks/{chunk-YNVEDFPQ.js → chunk-ZJGFQK27.js} +1 -1
- package/dist/cli/chunks/{chunk-35NW676P.js → chunk-ZUE524JL.js} +2 -2
- package/dist/cli/chunks/{ci-BZNWW3I3.js → ci-UMA2SMNW.js} +2 -2
- package/dist/cli/chunks/{ci-config-LOHNXOKV.js → ci-config-UQSILJFQ.js} +2 -2
- package/dist/cli/chunks/{ci-output-LCOQBSJL.js → ci-output-U6YZLLKH.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-7LRXTLFE.js → circuit-breaker-ATYQP6X2.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-HBU4VWC3.js → claude-flow-setup-6YHFD7AN.js} +2 -2
- package/dist/cli/chunks/client-E43GWLQH.js +2 -0
- package/dist/cli/chunks/{cline-installer-CO6MLH6X.js → cline-installer-EPE7IOZE.js} +2 -2
- package/dist/cli/chunks/{code-SIXBS6JM.js → code-NUEJ4XYO.js} +19 -18
- package/dist/cli/chunks/{code-index-extractor-GWJKZ2IQ.js → code-index-extractor-D4DBT6OL.js} +2 -2
- package/dist/cli/chunks/{codex-installer-6NINVWXJ.js → codex-installer-633SM4LR.js} +2 -2
- package/dist/cli/chunks/{completions-7VIX3GML.js → completions-WUKVIW3L.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-FBQR6ZP2.js → complexity-analyzer-F73ACR5H.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-VA7RIXW5.js → continuedev-installer-QH42TKMS.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-4QEBC4MU.js → copilot-installer-Y3XC7BTT.js} +2 -2
- package/dist/cli/chunks/core-handlers-R5A3SQDY.js +2 -0
- package/dist/cli/chunks/{cost-tracker-GRYKHPWL.js → cost-tracker-57QPV7E3.js} +2 -2
- package/dist/cli/chunks/coverage-IBCHMBCR.js +51 -0
- package/dist/cli/chunks/cross-domain-router-LLYVPZF6.js +2 -0
- package/dist/cli/chunks/{cursor-installer-ZXIPSZVH.js → cursor-installer-F4UYQHIN.js} +2 -2
- package/dist/cli/chunks/{daemon-N2VRHPSJ.js → daemon-BYYPIJ7G.js} +4 -4
- package/dist/cli/chunks/{daemon-D7F3RGI5.js → daemon-XR4Q6YZF.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-NL6BA7BY.js → dag-attention-scheduler-ZR5ZD3TW.js} +2 -2
- package/dist/cli/chunks/{detect-XC2HCIIT.js → detect-GEGYURLL.js} +2 -2
- package/dist/cli/chunks/{dist-node-A3Y26MEI.js → dist-node-JU3KT2JO.js} +2 -2
- package/dist/cli/chunks/{domain-handler-WV6SFXRB.js → domain-handler-7QI3FJGE.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-KJIF6Z2B.js → domain-plugins-O2YRM2PD.js} +2 -2
- package/dist/cli/chunks/domain-transfer-7J3S2OS6.js +2 -0
- package/dist/cli/chunks/dream-6C4NURSE.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-PA3Y4KGO.js → embed-and-insert-pattern-URES5Q6J.js} +2 -2
- package/dist/cli/chunks/{eval-YGEZNUVE.js → eval-RVMCIUOR.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-D4T7NW6B.js → experience-capture-middleware-SYJQSBKE.js} +3 -3
- package/dist/cli/chunks/{fast-paths-6JYK7RYQ.js → fast-paths-QUKPKWKZ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DKXMDVPE.js → feature-flags-5JCSKL2P.js} +2 -2
- package/dist/cli/chunks/{feature-flags-RBH2GDSR.js → feature-flags-K7JXNKJI.js} +2 -2
- package/dist/cli/chunks/file-discovery-J5IE5KP7.js +2 -0
- package/dist/cli/chunks/fleet-II4Q6HXK.js +44 -0
- package/dist/cli/chunks/{gnn-wrapper-MV54UC4C.js → gnn-wrapper-M7VO2EMS.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-7DKMVQQH.js → heartbeat-handler-ND5CY26N.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-FC5PBTMN.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-47UIVOBG.js +2 -0
- package/dist/cli/chunks/hnsw-index-3AKVLOZQ.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-6IWREDQC.js → hnsw-legacy-bridge-N3AUUUU7.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-5BIESSCK.js → hnswlib-node-NZY3E5EN.js} +2 -2
- package/dist/cli/chunks/{hooks-3EETRM62.js → hooks-QVJDTII5.js} +10 -10
- package/dist/cli/chunks/hybrid-backend-YAOSNX47.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-RSWCB2D3.js → hypergraph-engine-ZRY6MTDV.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-552LXKL3.js → hypergraph-handler-56DO4XZQ.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-4FMJXM4M.js +2 -0
- package/dist/cli/chunks/{init-guard-OTDBJ5HD.js → init-guard-DTF4EVUY.js} +2 -2
- package/dist/cli/chunks/{init-handler-3FK3TKEA.js → init-handler-M6CNQHMX.js} +6 -6
- package/dist/cli/chunks/init-wizard-RTLCRWDT.js +2 -0
- package/dist/cli/chunks/kernel-2OWIGGGT.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-KZ2O4LF3.js → kilocode-installer-IJN7XKBH.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-MLCCXRF7.js → kiro-installer-UKKPGPDC.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-25XXKDJN.js +2 -0
- package/dist/cli/chunks/learning-W2HETWQ4.js +131 -0
- package/dist/cli/chunks/{llm-router-PDEV3UP2.js → llm-router-Y546K4VX.js} +4 -4
- package/dist/cli/chunks/llm-router-service-G3EIN4UB.js +2 -0
- package/dist/cli/chunks/{load-XFVVLO7E.js → load-MKAB2AXE.js} +2 -2
- package/dist/cli/chunks/load-test-D6QYNIVT.js +2 -0
- package/dist/cli/chunks/{mcp-74G3CL2S.js → mcp-AZKUS6K3.js} +2 -2
- package/dist/cli/chunks/{memory-XIFM6JNX.js → memory-ZDOQN2KU.js} +5 -5
- package/dist/cli/chunks/memory-backend-LDFFZMEQ.js +2 -0
- package/dist/cli/chunks/{memory-handlers-ZCKURV6S.js → memory-handlers-3SQVY7FE.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-7L4W3O2Q.js → multi-model-executor-WWVXDHG4.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-BPG422LF.js → opencode-installer-YUJNXXWS.js} +2 -2
- package/dist/cli/chunks/{orchestrator-OEAFLAEV.js → orchestrator-Z6PWPLRE.js} +109 -25
- package/dist/cli/chunks/pattern-null-store-KDVRM7PW.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-LOPNCULT.js → pattern-usage-recorder-TPWPX32U.js} +2 -2
- package/dist/cli/chunks/{pipeline-VWTYUZB7.js → pipeline-4BBGTE4M.js} +2 -2
- package/dist/cli/chunks/{platform-WFJJ3X2E.js → platform-5GSHXCV5.js} +2 -2
- package/dist/cli/chunks/{plugin-744TPUSG.js → plugin-OFDVF5HS.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-BD5BLNDR.js → prime-radiant-advanced-wasm-NC6MUYGJ.js} +2 -2
- package/dist/cli/chunks/project-root-DDGBWDP6.js +2 -0
- package/dist/cli/chunks/protocol-executor-KBOLLCWA.js +2 -0
- package/dist/cli/chunks/{protocol-handler-JIBILI74.js → protocol-handler-MPOAAEPA.js} +2 -2
- package/dist/cli/chunks/{prove-MNOL5FYW.js → prove-CDKMAIVM.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-GRXBT7FC.js +2 -0
- package/dist/cli/chunks/{quality-JEGBDGGX.js → quality-ZH4F7R7R.js} +2 -2
- package/dist/cli/chunks/{quality-gate-SYJ6ROMI.js → quality-gate-IDRMW6OE.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-L2QWMJ5Q.js +2 -0
- package/dist/cli/chunks/{real-embeddings-ZWXS5ZFV.js → real-embeddings-I2UVNNB3.js} +2 -2
- package/dist/cli/chunks/{ref-validation-RRHUFW2N.js → ref-validation-Z5GCGVXK.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-XFO6JSVN.js → roocode-installer-IZ2S7PH2.js} +2 -2
- package/dist/cli/chunks/router-FT5WJPUH.js +2 -0
- package/dist/cli/chunks/routing-feedback-EO2MKOUX.js +2 -0
- package/dist/cli/chunks/{routing-handler-L2K3JASE.js → routing-handler-NAX35VUW.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-A6CINHGM.js → ruvector-commands-5YW2SOFF.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-WHBFQJVU.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-YT3APF2I.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-T4RY7L53.js → rvf-migration-coordinator-VUIZHTVG.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-37PUFKQD.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-IR33TGQS.js → rvf-store-integrity-IPGCAT6C.js} +2 -2
- package/dist/cli/chunks/safe-db-TDZKUOZJ.js +2 -0
- package/dist/cli/chunks/schedule-CRKTRY2A.js +2 -0
- package/dist/cli/chunks/scheduler-6ZBDVQWN.js +2 -0
- package/dist/cli/chunks/{security-Z5GDE2IH.js → security-3IH4BO5Z.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-SIZMEHPM.js → shared-rvf-adapter-ABY7PAY2.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-HLM65RDS.js → shared-rvf-dual-writer-6KENLN2W.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-FFJQAIKW.js +2 -0
- package/dist/cli/chunks/{standalone-memory-SKSZG7P5.js → standalone-memory-RLFAUGOW.js} +2 -2
- package/dist/cli/chunks/{status-handler-766YOOMJ.js → status-handler-FCOZBPE5.js} +2 -2
- package/dist/cli/chunks/{structural-health-M45FNOLT.js → structural-health-4RDA5UUM.js} +2 -2
- package/dist/cli/chunks/{sync-B2U366I3.js → sync-54LUAUTK.js} +2 -2
- package/dist/cli/chunks/{sync-6CJ24B5T.js → sync-KGEEXXCC.js} +2 -2
- package/dist/cli/chunks/task-handler-K3OXHYKU.js +62 -0
- package/dist/cli/chunks/task-handlers-6H7L2UT4.js +9 -0
- package/dist/cli/chunks/{test-TODH7KRF.js → test-S7IG6EIX.js} +4 -4
- package/dist/cli/chunks/test-runner-process-OTQDAJLN.js +2 -0
- package/dist/cli/chunks/{test-scheduling-VMVMVRHT.js → test-scheduling-7XYXI4L2.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-XQW7BMCK.js → token-bootstrap-3QMABE45.js} +2 -2
- package/dist/cli/chunks/{token-usage-JCZEIRKO.js → token-usage-Y2YTPOFE.js} +2 -2
- package/dist/cli/chunks/{transformers-U2ML3OHE.js → transformers-UCJ3HHHC.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-D6JTTHTP.js +2 -0
- package/dist/cli/chunks/{types-GGEPCHP6.js → types-6CMFPETH.js} +2 -2
- package/dist/cli/chunks/unified-memory-QARWQKJ2.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-LHY3DXCP.js +2 -0
- package/dist/cli/chunks/unified-persistence-WEYYGLHM.js +2 -0
- package/dist/cli/chunks/{upgrade-T5GRM7HS.js → upgrade-K25DN6WU.js} +2 -2
- package/dist/cli/chunks/{validate-XMUJPLP3.js → validate-T4V3TBY3.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-KJLF7JEH.js → validate-swarm-XSRC576T.js} +2 -2
- package/dist/cli/chunks/visual-security-O4ALMCXQ.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-LOHVZ7G5.js → web-tree-sitter-YOZXHRTN.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-33FBTXJU.js → windsurf-installer-ITPU2IYL.js} +2 -2
- package/dist/cli/chunks/witness-chain-B3YW5NMS.js +2 -0
- package/dist/cli/chunks/witness-chain-PIYR72HJ.js +2 -0
- package/dist/cli/chunks/{witness-chain-repair-VWBO4NXE.js → witness-chain-repair-YUG7E3UX.js} +2 -2
- package/dist/cli/chunks/{witness-chain-verifier-BHJ3ZAEK.js → witness-chain-verifier-DTDSVKOG.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-WNVPH2Z3.js → witness-key-manager-EWACWGAW.js} +2 -2
- package/dist/cli/chunks/{workflow-6QR5MQTO.js → workflow-ZIQ4FV42.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-3ZN2BCGY.js +2 -0
- package/dist/cli/chunks/{wrappers-EHOL62TS.js → wrappers-PW2O27LL.js} +2 -2
- package/dist/cli/commands/code.js +6 -0
- package/dist/cli/commands/coverage.js +6 -0
- package/dist/cli/commands/fleet-run.d.ts +12 -0
- package/dist/cli/commands/fleet-run.js +175 -0
- package/dist/cli/commands/fleet.js +2 -117
- package/dist/cli/commands/learning-prune.d.ts +14 -0
- package/dist/cli/commands/learning-prune.js +105 -0
- package/dist/cli/commands/learning.js +9 -0
- package/dist/cli/handlers/brain-handler.js +12 -1
- package/dist/cli/handlers/task-handler.d.ts +5 -0
- package/dist/cli/handlers/task-handler.js +20 -0
- package/dist/cli/utils/coverage-verdict.js +14 -3
- package/dist/cli/utils/fleet-operation.d.ts +5 -2
- package/dist/cli/utils/fleet-operation.js +13 -2
- package/dist/cli/utils/fleet-result.d.ts +16 -2
- package/dist/cli/utils/fleet-result.js +26 -21
- package/dist/cli/utils/fleet-shard.d.ts +36 -0
- package/dist/cli/utils/fleet-shard.js +110 -0
- package/dist/context/compaction/index.d.ts +7 -0
- package/dist/context/compaction/index.js +30 -6
- package/dist/coordination/handlers/code-intelligence-handlers.js +21 -1
- package/dist/coordination/handlers/coverage-evidence.d.ts +19 -0
- package/dist/coordination/handlers/coverage-evidence.js +31 -2
- package/dist/coordination/handlers/coverage-handlers.js +5 -1
- package/dist/coordination/handlers/coverage-target.js +8 -1
- package/dist/coordination/handlers/handler-types.d.ts +2 -2
- package/dist/coordination/handlers/handler-utils.d.ts +6 -0
- package/dist/coordination/handlers/handler-utils.js +14 -4
- package/dist/coordination/handlers/misc-handlers.js +5 -2
- package/dist/coordination/handlers/quality-handlers.js +11 -3
- package/dist/coordination/handlers/security-handlers.js +12 -2
- package/dist/coordination/protocols/security-audit.js +11 -1
- package/dist/coordination/result-saver-adapters.js +1 -0
- package/dist/coordination/result-saver.js +9 -5
- package/dist/coordination/task-executor.js +7 -2
- package/dist/domains/chaos-resilience/services/chaos-engineer.d.ts +1 -0
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +23 -45
- package/dist/domains/code-intelligence/coordinator-gnn.d.ts +2 -16
- package/dist/domains/code-intelligence/coordinator-gnn.js +1 -62
- package/dist/domains/code-intelligence/coordinator.d.ts +12 -6
- package/dist/domains/code-intelligence/coordinator.js +24 -27
- package/dist/domains/code-intelligence/interfaces.d.ts +9 -0
- package/dist/domains/code-intelligence/services/semantic-analyzer.d.ts +43 -5
- package/dist/domains/code-intelligence/services/semantic-analyzer.js +134 -71
- package/dist/domains/coverage-analysis/collected-metrics.d.ts +26 -0
- package/dist/domains/coverage-analysis/collected-metrics.js +54 -0
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +13 -3
- package/dist/domains/coverage-analysis/services/coverage-parser.d.ts +2 -0
- package/dist/domains/coverage-analysis/services/coverage-parser.js +18 -2
- package/dist/domains/defect-intelligence/services/defect-predictor.js +3 -6
- package/dist/domains/quality-assessment/coherence/gate-controller.js +16 -4
- package/dist/domains/quality-assessment/coherence/lambda-calculator.d.ts +8 -0
- package/dist/domains/quality-assessment/coherence/lambda-calculator.js +57 -14
- package/dist/domains/quality-assessment/coherence/types.d.ts +12 -7
- package/dist/domains/quality-assessment/coordinator-gate-evaluation.js +3 -1
- package/dist/domains/quality-assessment/coordinator-reports.d.ts +30 -10
- package/dist/domains/quality-assessment/coordinator-reports.js +93 -57
- package/dist/domains/quality-assessment/coordinator.d.ts +14 -40
- package/dist/domains/quality-assessment/coordinator.js +10 -4
- package/dist/domains/quality-assessment/coverage-report-event.d.ts +8 -0
- package/dist/domains/quality-assessment/coverage-report-event.js +22 -1
- package/dist/domains/quality-assessment/interfaces.d.ts +8 -0
- package/dist/domains/quality-assessment/services/coherence-gate.js +15 -2
- package/dist/domains/quality-assessment/services/quality-analyzer.d.ts +4 -0
- package/dist/domains/quality-assessment/services/quality-analyzer.js +63 -17
- package/dist/domains/quality-assessment/services/quality-gate.js +6 -4
- package/dist/domains/security-compliance/index.d.ts +1 -1
- package/dist/domains/security-compliance/interfaces.d.ts +46 -5
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.d.ts +3 -3
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +15 -14
- package/dist/domains/security-compliance/services/scanners/dast-helpers.d.ts +8 -9
- package/dist/domains/security-compliance/services/scanners/dast-helpers.js +19 -44
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.d.ts +3 -3
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +13 -9
- package/dist/domains/security-compliance/services/scanners/dast-requests.d.ts +54 -0
- package/dist/domains/security-compliance/services/scanners/dast-requests.js +125 -0
- package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +5 -1
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +125 -155
- package/dist/domains/security-compliance/services/scanners/index.d.ts +1 -1
- package/dist/domains/security-compliance/services/scanners/index.js +1 -1
- package/dist/domains/security-compliance/services/scanners/scanner-types.d.ts +2 -2
- package/dist/domains/security-compliance/services/security-auditor-dast.js +183 -212
- package/dist/domains/security-compliance/services/security-auditor-reports.js +5 -1
- package/dist/domains/security-compliance/services/security-auditor.d.ts +11 -3
- package/dist/domains/security-compliance/services/security-auditor.js +106 -65
- package/dist/domains/test-execution/coordinator.d.ts +2 -1
- package/dist/domains/test-execution/coordinator.js +33 -27
- package/dist/domains/test-execution/interfaces.d.ts +10 -0
- package/dist/domains/test-execution/services/test-executor.d.ts +6 -0
- package/dist/domains/test-execution/services/test-executor.js +22 -4
- package/dist/domains/visual-accessibility/coordinator.js +34 -9
- package/dist/domains/visual-accessibility/interfaces.d.ts +27 -0
- package/dist/domains/visual-accessibility/plugin.js +5 -0
- package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.d.ts +13 -21
- package/dist/domains/visual-accessibility/services/accessibility-tester-heuristics.js +13 -297
- package/dist/domains/visual-accessibility/services/accessibility-tester.d.ts +13 -5
- package/dist/domains/visual-accessibility/services/accessibility-tester.js +96 -73
- package/dist/init/phases/07-hooks.js +90 -6
- package/dist/integrations/embeddings/index/HNSWIndex.js +8 -4
- package/dist/integrations/ruvector/brain-rvf-exporter.d.ts +25 -0
- package/dist/integrations/ruvector/brain-rvf-exporter.js +154 -61
- package/dist/integrations/ruvector/transfer-coherence-stub.js +5 -10
- package/dist/learning/dream/dream-engine.d.ts +24 -1
- package/dist/learning/dream/dream-engine.js +57 -6
- package/dist/learning/learning-retention.d.ts +103 -0
- package/dist/learning/learning-retention.js +213 -0
- package/dist/mcp/bundle.js +508 -503
- package/dist/mcp/handlers/domain-handler-configs.d.ts +17 -1
- package/dist/mcp/handlers/domain-handler-configs.js +33 -16
- package/dist/mcp/handlers/handler-factory.js +3 -0
- package/dist/mcp/handlers/model-route-handlers.d.ts +107 -0
- package/dist/mcp/handlers/model-route-handlers.js +139 -0
- package/dist/mcp/handlers/orchestrate-routes.js +41 -3
- package/dist/mcp/handlers/task-handlers.d.ts +3 -251
- package/dist/mcp/handlers/task-handlers.js +6 -828
- package/dist/mcp/handlers/task-inference.d.ts +26 -0
- package/dist/mcp/handlers/task-inference.js +156 -0
- package/dist/mcp/handlers/task-learning-handlers.d.ts +92 -0
- package/dist/mcp/handlers/task-learning-handlers.js +230 -0
- package/dist/mcp/handlers/task-orchestrate-handler.d.ts +73 -0
- package/dist/mcp/handlers/task-orchestrate-handler.js +361 -0
- package/dist/mcp/protocol-server.js +13 -3
- package/dist/mcp/tools/chaos-resilience/inject.d.ts +3 -4
- package/dist/mcp/tools/chaos-resilience/inject.js +11 -81
- package/dist/mcp/tools/code-intelligence/analyze.js +3 -6
- package/dist/mcp/tools/coverage-analysis/index.d.ts +4 -0
- package/dist/mcp/tools/coverage-analysis/index.js +8 -2
- package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -0
- package/dist/mcp/tools/learning-optimization/dream.js +4 -0
- package/dist/mcp/tools/visual-accessibility/index.d.ts +7 -0
- package/dist/mcp/tools/visual-accessibility/index.js +29 -13
- package/dist/shared/events/domain-events.d.ts +2 -0
- package/dist/shared/metrics/code-metrics.js +21 -3
- package/dist/shared/parsers/typescript-parser.d.ts +6 -0
- package/dist/shared/parsers/typescript-parser.js +13 -1
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-HL7MOCQN.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-OZ2DXB4G.js +0 -2
- package/dist/cli/chunks/base-WIM7G3HC.js +0 -2
- package/dist/cli/chunks/brain-handler-MPC5SPYI.js +0 -94
- package/dist/cli/chunks/browser-workflow-QRKCFVR3.js +0 -2
- package/dist/cli/chunks/chunk-4A76VPU4.js +0 -3
- package/dist/cli/chunks/chunk-QSGEBCDB.js +0 -62
- package/dist/cli/chunks/chunk-UCSK2RMI.js +0 -2
- package/dist/cli/chunks/chunk-VXVTFKRA.js +0 -2
- package/dist/cli/chunks/chunk-XCNSGSKV.js +0 -3
- package/dist/cli/chunks/chunk-XZOYKB22.js +0 -79
- package/dist/cli/chunks/chunk-YIDAXOUX.js +0 -8
- package/dist/cli/chunks/client-4PNYDFYS.js +0 -2
- package/dist/cli/chunks/core-handlers-ODO6LUWQ.js +0 -2
- package/dist/cli/chunks/coverage-USPMNKOU.js +0 -50
- package/dist/cli/chunks/cross-domain-router-DT4MHJKK.js +0 -2
- package/dist/cli/chunks/domain-transfer-L3F6AES2.js +0 -2
- package/dist/cli/chunks/dream-QOB3JCOM.js +0 -2
- package/dist/cli/chunks/file-discovery-BN76S2PR.js +0 -2
- package/dist/cli/chunks/fleet-43YMXACN.js +0 -46
- package/dist/cli/chunks/heartbeat-scheduler-3NNP4WCP.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-MZR7Y4WF.js +0 -2
- package/dist/cli/chunks/hnsw-index-HE4AX22U.js +0 -2
- package/dist/cli/chunks/hybrid-backend-IHUHB3Y2.js +0 -2
- package/dist/cli/chunks/impact-analyzer-FI6GI6PD.js +0 -2
- package/dist/cli/chunks/init-wizard-WLQKH5Y5.js +0 -2
- package/dist/cli/chunks/kernel-2WZOQEZS.js +0 -2
- package/dist/cli/chunks/knowledge-graph-G3LVKK6P.js +0 -2
- package/dist/cli/chunks/learning-QUCMBD77.js +0 -122
- package/dist/cli/chunks/llm-router-service-MM75HKWJ.js +0 -2
- package/dist/cli/chunks/load-test-BEWEE44J.js +0 -2
- package/dist/cli/chunks/memory-backend-NYKBBKZR.js +0 -2
- package/dist/cli/chunks/pattern-null-store-QGPUIV6M.js +0 -2
- package/dist/cli/chunks/project-root-C7ELXZRK.js +0 -2
- package/dist/cli/chunks/protocol-executor-SUVE33BM.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-YWZMMGJB.js +0 -2
- package/dist/cli/chunks/queen-coordinator-ZFAKXRN7.js +0 -2
- package/dist/cli/chunks/router-4FTAVYLJ.js +0 -2
- package/dist/cli/chunks/routing-feedback-IO2KOWMJ.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-KCIRNE7C.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-MFC5WTJU.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-I3KWHE7X.js +0 -2
- package/dist/cli/chunks/safe-db-QXDZ6QY3.js +0 -2
- package/dist/cli/chunks/schedule-CZKD6RIY.js +0 -2
- package/dist/cli/chunks/scheduler-BLA3Q4CH.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-XIUYDJC4.js +0 -2
- package/dist/cli/chunks/task-handler-P6IFLCKP.js +0 -62
- package/dist/cli/chunks/task-handlers-DPWMUKFC.js +0 -9
- package/dist/cli/chunks/test-runner-process-46IPK3GH.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-MOI2WWNJ.js +0 -2
- package/dist/cli/chunks/unified-memory-FL26RTV3.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-E2BPTH3U.js +0 -2
- package/dist/cli/chunks/unified-persistence-5ZOUPKHF.js +0 -2
- package/dist/cli/chunks/visual-security-IJVPO5FA.js +0 -2
- package/dist/cli/chunks/witness-chain-5FAFCQKP.js +0 -2
- package/dist/cli/chunks/witness-chain-V2M32W5D.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-3JLF3IX7.js +0 -2
|
@@ -84,6 +84,10 @@ export interface QualityAssessResult {
|
|
|
84
84
|
* files (partial metrics). Such a score is not a verdict.
|
|
85
85
|
*/
|
|
86
86
|
scoreBasis?: string[];
|
|
87
|
+
/** Why `qualityScore` is -1: the requested metrics that were unmeasured. */
|
|
88
|
+
qualityScoreReason?: string;
|
|
89
|
+
/** The score over the measured metrics (`scoreBasis`) when `qualityScore` is -1. Not a verdict. */
|
|
90
|
+
subsetScore?: number;
|
|
87
91
|
/** #996: measured metrics that fail their own limit; any entry blocks. */
|
|
88
92
|
measuredFailures?: MeasuredFailure[];
|
|
89
93
|
/** #996: false for static analysis (runGate omitted/false) — no quality gate ran. */
|
|
@@ -148,6 +152,9 @@ export interface AccessibilityTestResult {
|
|
|
148
152
|
score: number;
|
|
149
153
|
violations: unknown[];
|
|
150
154
|
warnings: unknown[];
|
|
155
|
+
/** #1145: false when no page was audited; `passed` is then not a verdict and `score` is -1. */
|
|
156
|
+
measured?: boolean;
|
|
157
|
+
note?: string;
|
|
151
158
|
duration: number;
|
|
152
159
|
savedFiles?: string[];
|
|
153
160
|
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
@@ -157,13 +164,17 @@ export interface AccessibilityTestResult {
|
|
|
157
164
|
}
|
|
158
165
|
export interface ChaosTestResult {
|
|
159
166
|
taskId: string;
|
|
167
|
+
/** #1258: 'not-executed' when no fault was injected, so nothing was observed. */
|
|
160
168
|
status: string;
|
|
161
169
|
faultType: string;
|
|
170
|
+
/** #1258: null when not measured; never a default recovered/dataLoss verdict. */
|
|
162
171
|
resilience: {
|
|
163
172
|
recovered: boolean;
|
|
164
173
|
recoveryTime: number;
|
|
165
174
|
dataLoss: boolean;
|
|
166
|
-
};
|
|
175
|
+
} | null;
|
|
176
|
+
/** Why the fault was not executed, when status is 'not-executed'. */
|
|
177
|
+
note?: string;
|
|
167
178
|
duration: number;
|
|
168
179
|
savedFiles?: string[];
|
|
169
180
|
/** #933: true when result files were written; see savedFiles for their paths. */
|
|
@@ -247,6 +258,11 @@ export interface CodeIndexResult {
|
|
|
247
258
|
tests: number;
|
|
248
259
|
toolsUsed: string[];
|
|
249
260
|
};
|
|
261
|
+
/**
|
|
262
|
+
* #1224: non-fatal indexing warnings, e.g. that code search does not cover
|
|
263
|
+
* every indexed file. Absent when there are none.
|
|
264
|
+
*/
|
|
265
|
+
warnings?: string[];
|
|
250
266
|
/**
|
|
251
267
|
* #1096: discovered paths that were not indexed (missing, not a regular
|
|
252
268
|
* file, outside the project root, filtered out), with the reason. Absent
|
|
@@ -535,7 +535,7 @@ export const qualityAssessConfig = {
|
|
|
535
535
|
passed: insufficient || failedMetrics.length > 0
|
|
536
536
|
? false
|
|
537
537
|
: typeof data.passed === 'boolean' ? data.passed : undefined,
|
|
538
|
-
qualityScore: measuredScore,
|
|
538
|
+
qualityScore: insufficient ? undefined : measuredScore,
|
|
539
539
|
recommendations: data.recommendations || [],
|
|
540
540
|
unmeasured: insufficient ? (unmeasured?.length ? unmeasured : ['unknown']) : [],
|
|
541
541
|
failedMetrics,
|
|
@@ -545,7 +545,13 @@ export const qualityAssessConfig = {
|
|
|
545
545
|
return {
|
|
546
546
|
taskId,
|
|
547
547
|
status: insufficient ? INSUFFICIENT_EVIDENCE : 'completed',
|
|
548
|
-
|
|
548
|
+
// An insufficient-evidence result has no overall score (-1); a number
|
|
549
|
+
// from a producer that did not apply that rule is kept only as a subset.
|
|
550
|
+
...(typeof data.qualityScore === 'number'
|
|
551
|
+
? { qualityScore: insufficient && !Array.isArray(data.checks) ? -1 : data.qualityScore } : {}),
|
|
552
|
+
...(typeof data.qualityScoreReason === 'string' ? { qualityScoreReason: data.qualityScoreReason } : {}),
|
|
553
|
+
...(typeof data.subsetScore === 'number' ? { subsetScore: data.subsetScore }
|
|
554
|
+
: insufficient && measuredScore !== undefined && !Array.isArray(data.checks) ? { subsetScore: measuredScore } : {}),
|
|
549
555
|
...(Array.isArray(data.checks) ? { checks: data.checks } : {}),
|
|
550
556
|
passed,
|
|
551
557
|
metrics: data.metrics || {},
|
|
@@ -687,11 +693,15 @@ export const accessibilityTestConfig = {
|
|
|
687
693
|
}),
|
|
688
694
|
mapToResult: (taskId, data, duration, savedFiles) => ({
|
|
689
695
|
taskId,
|
|
690
|
-
status: 'completed',
|
|
696
|
+
status: data.measured === true ? 'completed' : 'not-measured',
|
|
691
697
|
passed: data.passed || false,
|
|
692
|
-
|
|
698
|
+
// #1145: an unmeasured score is -1, never a 0/100 grade
|
|
699
|
+
score: data.measured === true && typeof data.score === 'number' ? data.score : -1,
|
|
693
700
|
violations: data.violations || [],
|
|
694
701
|
warnings: data.warnings || [],
|
|
702
|
+
// #1145: fail closed; only an explicit measurement counts as one
|
|
703
|
+
measured: data.measured === true,
|
|
704
|
+
...(typeof data.note === 'string' ? { note: data.note } : {}),
|
|
695
705
|
duration,
|
|
696
706
|
savedFiles,
|
|
697
707
|
}),
|
|
@@ -716,18 +726,22 @@ export const chaosTestConfig = {
|
|
|
716
726
|
compiledContext: routingResult?.compiledContext,
|
|
717
727
|
}),
|
|
718
728
|
calculateTimeout: (params) => (params.duration || 30000) + 60000,
|
|
719
|
-
mapToResult: (taskId, data, duration, savedFiles) =>
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
resilience
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
729
|
+
mapToResult: (taskId, data, duration, savedFiles) => {
|
|
730
|
+
// #1258: the run-chaos handler injects nothing and says so (systemBehavior
|
|
731
|
+
// 'not-executed', resilience null). Report that instead of 'completed' with
|
|
732
|
+
// a made-up recovered/dataLoss result.
|
|
733
|
+
const resilience = data.resilience ?? null;
|
|
734
|
+
const executed = data.systemBehavior !== 'not-executed' && resilience !== null;
|
|
735
|
+
return {
|
|
736
|
+
taskId,
|
|
737
|
+
status: executed ? 'completed' : 'not-executed',
|
|
738
|
+
faultType: data.faultType || 'latency',
|
|
739
|
+
resilience: executed ? resilience : null,
|
|
740
|
+
...(typeof data.note === 'string' ? { note: data.note } : {}),
|
|
741
|
+
duration,
|
|
742
|
+
savedFiles,
|
|
743
|
+
};
|
|
744
|
+
},
|
|
731
745
|
};
|
|
732
746
|
// ============================================================================
|
|
733
747
|
// Defect Prediction Configuration
|
|
@@ -813,6 +827,9 @@ export const codeIndexConfig = {
|
|
|
813
827
|
symbolsExtracted: data.symbolsExtracted || 0,
|
|
814
828
|
relationsFound: data.relationsFound || 0,
|
|
815
829
|
...(data.projectMetrics ? { projectMetrics: data.projectMetrics } : {}),
|
|
830
|
+
...(Array.isArray(data.warnings) && data.warnings.length > 0
|
|
831
|
+
? { warnings: data.warnings }
|
|
832
|
+
: {}),
|
|
816
833
|
...(Array.isArray(data.skipped) && data.skipped.length > 0
|
|
817
834
|
? { skipped: data.skipped }
|
|
818
835
|
: {}),
|
|
@@ -224,6 +224,9 @@ async function recordDomainFeedback(domain, data, durationMs, params) {
|
|
|
224
224
|
coverageMethod: data.coverageMethod ?? 'instrumented-report',
|
|
225
225
|
branchDataCollected: data.branchCoverage !== null && data.branchCoverage !== undefined,
|
|
226
226
|
functionDataCollected: data.functionCoverage !== null && data.functionCoverage !== undefined,
|
|
227
|
+
// #1030: coverage from a run whose tests failed says so, as
|
|
228
|
+
// coverage:latest and the per-file records already do (#1027 N4).
|
|
229
|
+
...(data.runStatus === 'passed' || data.runStatus === 'failed' ? { runStatus: data.runStatus } : {}),
|
|
227
230
|
},
|
|
228
231
|
};
|
|
229
232
|
await loop.recordCoverageSession(session);
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Model routing MCP handlers (ADR-051)
|
|
3
|
+
* Routing decisions, routing metrics and routing economics.
|
|
4
|
+
*/
|
|
5
|
+
import type { ToolResult } from '../types';
|
|
6
|
+
import { type RoutingLogEntry, type RoutingStats } from '../services/task-router';
|
|
7
|
+
import type { ModelTier } from '../../integrations/agentic-flow';
|
|
8
|
+
export interface ModelRouteParams {
|
|
9
|
+
/** Task description to analyze */
|
|
10
|
+
task: string;
|
|
11
|
+
/** Optional code context for complexity analysis */
|
|
12
|
+
codeContext?: string;
|
|
13
|
+
/** Optional file paths */
|
|
14
|
+
filePaths?: string[];
|
|
15
|
+
/** Manual tier override */
|
|
16
|
+
manualTier?: ModelTier;
|
|
17
|
+
/** Mark as critical task */
|
|
18
|
+
isCritical?: boolean;
|
|
19
|
+
/** Agent type making the request */
|
|
20
|
+
agentType?: string;
|
|
21
|
+
/** Domain context */
|
|
22
|
+
domain?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface ModelRouteResult {
|
|
25
|
+
tier: ModelTier;
|
|
26
|
+
tierName: string;
|
|
27
|
+
modelId: string;
|
|
28
|
+
executionStrategy: string;
|
|
29
|
+
useAgentBooster: boolean;
|
|
30
|
+
agentBoosterTransform?: string;
|
|
31
|
+
complexity: {
|
|
32
|
+
overall: number;
|
|
33
|
+
code: number;
|
|
34
|
+
reasoning: number;
|
|
35
|
+
scope: number;
|
|
36
|
+
};
|
|
37
|
+
confidence: number;
|
|
38
|
+
rationale: string;
|
|
39
|
+
warnings: string[];
|
|
40
|
+
budget: {
|
|
41
|
+
allowed: boolean;
|
|
42
|
+
wasDowngraded: boolean;
|
|
43
|
+
estimatedCostUsd: number;
|
|
44
|
+
};
|
|
45
|
+
decisionTimeMs: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Handle model routing query - returns routing decision without submitting task
|
|
49
|
+
*/
|
|
50
|
+
export declare function handleModelRoute(params: ModelRouteParams): Promise<ToolResult<ModelRouteResult>>;
|
|
51
|
+
export interface RoutingMetricsParams {
|
|
52
|
+
/** Include routing log entries */
|
|
53
|
+
includeLog?: boolean;
|
|
54
|
+
/** Max log entries to return */
|
|
55
|
+
logLimit?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface RoutingMetricsResult {
|
|
58
|
+
stats: RoutingStats;
|
|
59
|
+
log?: RoutingLogEntry[];
|
|
60
|
+
modelRouterMetrics: {
|
|
61
|
+
totalDecisions: number;
|
|
62
|
+
avgDecisionTimeMs: number;
|
|
63
|
+
agentBoosterStats: {
|
|
64
|
+
eligible: number;
|
|
65
|
+
used: number;
|
|
66
|
+
successRate: number;
|
|
67
|
+
};
|
|
68
|
+
budgetStats: {
|
|
69
|
+
totalSpentUsd: number;
|
|
70
|
+
budgetUtilization: number;
|
|
71
|
+
downgradeCount: number;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Handle routing metrics query
|
|
77
|
+
*/
|
|
78
|
+
export declare function handleRoutingMetrics(params: RoutingMetricsParams): Promise<ToolResult<RoutingMetricsResult>>;
|
|
79
|
+
export interface RoutingEconomicsParams {
|
|
80
|
+
/** Task complexity score 0-1 for tier scoring (default: 0.5) */
|
|
81
|
+
taskComplexity?: number;
|
|
82
|
+
}
|
|
83
|
+
export interface RoutingEconomicsResult {
|
|
84
|
+
tierEfficiency: Array<{
|
|
85
|
+
tier: string;
|
|
86
|
+
qualityScore: number;
|
|
87
|
+
estimatedCostUsd: number;
|
|
88
|
+
qualityPerDollar: number | string;
|
|
89
|
+
economicScore: number;
|
|
90
|
+
}>;
|
|
91
|
+
currentHourlyCostUsd: number;
|
|
92
|
+
currentDailyCostUsd: number;
|
|
93
|
+
budgetRemaining: {
|
|
94
|
+
hourly: number | null;
|
|
95
|
+
daily: number | null;
|
|
96
|
+
};
|
|
97
|
+
recommendation: string;
|
|
98
|
+
savingsOpportunity: {
|
|
99
|
+
usd: number;
|
|
100
|
+
description: string;
|
|
101
|
+
} | null;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Handle economic routing report query
|
|
105
|
+
*/
|
|
106
|
+
export declare function handleRoutingEconomics(params: RoutingEconomicsParams): Promise<ToolResult<RoutingEconomicsResult>>;
|
|
107
|
+
//# sourceMappingURL=model-route-handlers.d.ts.map
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Model routing MCP handlers (ADR-051)
|
|
3
|
+
* Routing decisions, routing metrics and routing economics.
|
|
4
|
+
*/
|
|
5
|
+
import { getTaskRouter, } from '../services/task-router.js';
|
|
6
|
+
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
7
|
+
import { inferDomainFromDescription } from './task-inference.js';
|
|
8
|
+
/**
|
|
9
|
+
* Handle model routing query - returns routing decision without submitting task
|
|
10
|
+
*/
|
|
11
|
+
export async function handleModelRoute(params) {
|
|
12
|
+
try {
|
|
13
|
+
const router = await getTaskRouter();
|
|
14
|
+
// Enrich routing input: infer domain and metadata from task description
|
|
15
|
+
// when the caller doesn't provide them explicitly
|
|
16
|
+
const inferredDomain = params.domain || inferDomainFromDescription(params.task);
|
|
17
|
+
const inferredIsCritical = params.isCritical ??
|
|
18
|
+
/\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(params.task);
|
|
19
|
+
const result = await router.routeTask({
|
|
20
|
+
task: params.task,
|
|
21
|
+
codeContext: params.codeContext,
|
|
22
|
+
filePaths: params.filePaths,
|
|
23
|
+
manualTier: params.manualTier,
|
|
24
|
+
isCritical: inferredIsCritical,
|
|
25
|
+
agentType: params.agentType || `qe-${inferredDomain}`,
|
|
26
|
+
domain: inferredDomain,
|
|
27
|
+
// Pass metadata to help the complexity analyzer
|
|
28
|
+
metadata: {
|
|
29
|
+
inferredDomain,
|
|
30
|
+
hasCodeContext: !!params.codeContext,
|
|
31
|
+
fileCount: params.filePaths?.length,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
success: true,
|
|
36
|
+
data: {
|
|
37
|
+
tier: result.decision.tier,
|
|
38
|
+
tierName: result.tierInfo.name,
|
|
39
|
+
modelId: result.modelId,
|
|
40
|
+
executionStrategy: result.executionStrategy,
|
|
41
|
+
useAgentBooster: result.useAgentBooster,
|
|
42
|
+
agentBoosterTransform: result.decision.agentBoosterTransform,
|
|
43
|
+
complexity: {
|
|
44
|
+
overall: result.decision.complexityAnalysis.overall,
|
|
45
|
+
code: result.decision.complexityAnalysis.codeComplexity,
|
|
46
|
+
reasoning: result.decision.complexityAnalysis.reasoningComplexity,
|
|
47
|
+
scope: result.decision.complexityAnalysis.scopeComplexity,
|
|
48
|
+
},
|
|
49
|
+
confidence: result.decision.confidence,
|
|
50
|
+
rationale: result.decision.rationale,
|
|
51
|
+
warnings: result.decision.warnings,
|
|
52
|
+
budget: {
|
|
53
|
+
allowed: result.decision.budgetDecision.allowed,
|
|
54
|
+
wasDowngraded: result.decision.budgetDecision.wasDowngraded,
|
|
55
|
+
estimatedCostUsd: result.decision.budgetDecision.estimatedCostUsd,
|
|
56
|
+
},
|
|
57
|
+
decisionTimeMs: result.decision.metadata.decisionTimeMs,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
error: `Failed to route task: ${toErrorMessage(error)}`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Handle routing metrics query
|
|
70
|
+
*/
|
|
71
|
+
export async function handleRoutingMetrics(params) {
|
|
72
|
+
try {
|
|
73
|
+
const router = await getTaskRouter();
|
|
74
|
+
const stats = router.getRoutingStats();
|
|
75
|
+
const metrics = router.getMetrics();
|
|
76
|
+
const result = {
|
|
77
|
+
stats,
|
|
78
|
+
modelRouterMetrics: {
|
|
79
|
+
totalDecisions: metrics.totalDecisions,
|
|
80
|
+
avgDecisionTimeMs: metrics.avgDecisionTimeMs,
|
|
81
|
+
agentBoosterStats: metrics.agentBoosterStats,
|
|
82
|
+
budgetStats: metrics.budgetStats,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
if (params.includeLog) {
|
|
86
|
+
result.log = router.getRoutingLog(params.logLimit || 100);
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
success: true,
|
|
90
|
+
data: result,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
return {
|
|
95
|
+
success: false,
|
|
96
|
+
error: `Failed to get routing metrics: ${toErrorMessage(error)}`,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Handle economic routing report query
|
|
102
|
+
*/
|
|
103
|
+
export async function handleRoutingEconomics(params) {
|
|
104
|
+
try {
|
|
105
|
+
const { createRoutingFeedbackCollector } = await import('../../routing/routing-feedback.js');
|
|
106
|
+
const { getGlobalCostTracker } = await import('../../shared/llm/cost-tracker.js');
|
|
107
|
+
// Create collector, initialize to load persisted state from DB, then enable economic routing
|
|
108
|
+
const collector = createRoutingFeedbackCollector(100);
|
|
109
|
+
await collector.initialize();
|
|
110
|
+
collector.enableEconomicRouting({ ...(params.taskComplexity != null ? {} : {}) }, getGlobalCostTracker());
|
|
111
|
+
const report = collector.getEconomicReport();
|
|
112
|
+
if (!report) {
|
|
113
|
+
return { success: false, error: 'Economic routing is not available' };
|
|
114
|
+
}
|
|
115
|
+
// Convert Infinity to string for JSON serialization
|
|
116
|
+
const tierEfficiency = report.tierEfficiency.map(t => ({
|
|
117
|
+
...t,
|
|
118
|
+
qualityPerDollar: isFinite(t.qualityPerDollar) ? t.qualityPerDollar : 'Infinity',
|
|
119
|
+
}));
|
|
120
|
+
return {
|
|
121
|
+
success: true,
|
|
122
|
+
data: {
|
|
123
|
+
tierEfficiency,
|
|
124
|
+
currentHourlyCostUsd: report.currentHourlyCostUsd,
|
|
125
|
+
currentDailyCostUsd: report.currentDailyCostUsd,
|
|
126
|
+
budgetRemaining: report.budgetRemaining,
|
|
127
|
+
recommendation: report.recommendation,
|
|
128
|
+
savingsOpportunity: report.savingsOpportunity,
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
return {
|
|
134
|
+
success: false,
|
|
135
|
+
error: `Failed to get economic routing report: ${toErrorMessage(error)}`,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=model-route-handlers.js.map
|
|
@@ -13,6 +13,7 @@ import { resolve } from 'node:path';
|
|
|
13
13
|
import { findProjectRoot } from '../../kernel/project-root.js';
|
|
14
14
|
import { confineIndexPaths } from '../../domains/code-intelligence/index-path-guard.js';
|
|
15
15
|
import { requirePayloadPath } from '../../shared/io/payload-path-guard.js';
|
|
16
|
+
import { isCodeSearch, namesTestGeneration } from './task-inference.js';
|
|
16
17
|
const needs = (type, what) => ({
|
|
17
18
|
kind: 'needs-input',
|
|
18
19
|
error: `task_orchestrate inferred '${type}' from the description, but ${what}`,
|
|
@@ -75,6 +76,31 @@ async function coverageRoute(request) {
|
|
|
75
76
|
payload: { target, detectGaps: true },
|
|
76
77
|
};
|
|
77
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* #1225: test generation reads source files. Without filePaths, the files the
|
|
81
|
+
* description names are used; with none, the task is refused up front instead
|
|
82
|
+
* of being accepted and failing with "missing sourceFiles". `generate-tests`
|
|
83
|
+
* is also the fallback for a description that names no task, which the
|
|
84
|
+
* refusal says.
|
|
85
|
+
*/
|
|
86
|
+
async function testGenerationRoute(request) {
|
|
87
|
+
const type = 'generate-tests';
|
|
88
|
+
if ((request.filePaths ?? []).length > 0)
|
|
89
|
+
return { kind: 'as-inferred' };
|
|
90
|
+
const named = pathsInDescription(request.task);
|
|
91
|
+
if (named.length === 0) {
|
|
92
|
+
const why = namesTestGeneration(request.task)
|
|
93
|
+
? 'no source files were given and the description names none.'
|
|
94
|
+
: 'no task type could be inferred from the description, and test generation (the fallback) needs ' +
|
|
95
|
+
'source files: none were given and the description names none.';
|
|
96
|
+
return needs(type, `${why} Pass filePaths with the source files to generate tests for, or use ` +
|
|
97
|
+
'test_generate_enhanced, or task_submit with a task type and its payload.');
|
|
98
|
+
}
|
|
99
|
+
const confined = await projectFiles(type, named);
|
|
100
|
+
if ('kind' in confined)
|
|
101
|
+
return confined;
|
|
102
|
+
return { kind: 'route', type, domain: 'test-generation', payload: { sourceFiles: confined.files } };
|
|
103
|
+
}
|
|
78
104
|
/** Decide how task_orchestrate runs an inferred task type. */
|
|
79
105
|
export async function routeInferredTask(type, request) {
|
|
80
106
|
const filePaths = request.filePaths ?? [];
|
|
@@ -89,7 +115,16 @@ export async function routeInferredTask(type, request) {
|
|
|
89
115
|
return confined;
|
|
90
116
|
return { kind: 'route', type: 'sast-scan', domain: 'security-compliance', payload: { files: confined.files } };
|
|
91
117
|
}
|
|
92
|
-
case 'index-code':
|
|
118
|
+
case 'index-code': {
|
|
119
|
+
// #1146: a search description ("semantic search for auth code") is not
|
|
120
|
+
// an index request. Running the domain's search could answer "no
|
|
121
|
+
// results" for code that exists (#1224), so it is refused with what to
|
|
122
|
+
// use instead of the misleading "no files to index".
|
|
123
|
+
if (isCodeSearch(request.task)) {
|
|
124
|
+
return needs(type, 'the description asks for a code search, which task_orchestrate does not run: the ' +
|
|
125
|
+
'code-intelligence search can report no results for code that exists (#1224). Search the source ' +
|
|
126
|
+
'directly (e.g. grep), or use code_index with a target for dependency and impact analysis.');
|
|
127
|
+
}
|
|
93
128
|
// #1134: indexing reads exactly the files it is given; without them the
|
|
94
129
|
// task could only fail after it was accepted. The indexer confines the
|
|
95
130
|
// paths to the project itself (#1096).
|
|
@@ -98,6 +133,7 @@ export async function routeInferredTask(type, request) {
|
|
|
98
133
|
'or use code_index with a target.');
|
|
99
134
|
}
|
|
100
135
|
return { kind: 'as-inferred' };
|
|
136
|
+
}
|
|
101
137
|
case 'assess-quality': {
|
|
102
138
|
if (filePaths.length === 0) {
|
|
103
139
|
return needs(type, 'no source files were given. Pass filePaths with the source files to assess, ' +
|
|
@@ -119,8 +155,8 @@ export async function routeInferredTask(type, request) {
|
|
|
119
155
|
'Lighthouse), and the domain task handler cannot guarantee one. Use accessibility_test with the page URL.');
|
|
120
156
|
case 'optimize-learning':
|
|
121
157
|
// optimize-strategies overwrites the stored learned strategies
|
|
122
|
-
// (persist: true)
|
|
123
|
-
//
|
|
158
|
+
// (persist: true), so learning wording alone does not run it (#1146:
|
|
159
|
+
// "improve"/"optimize" alone no longer infer it at all).
|
|
124
160
|
return needs(type, 'learning optimization overwrites the stored learned strategies, so it is not run from ' +
|
|
125
161
|
'a description. Use task_submit with type optimize-strategies in domain learning-optimization.');
|
|
126
162
|
case 'run-chaos':
|
|
@@ -134,6 +170,8 @@ export async function routeInferredTask(type, request) {
|
|
|
134
170
|
return needs(type, 'requirement validation needs a structured requirement (title, description, ' +
|
|
135
171
|
'acceptance criteria). Use requirements_validate, or task_submit with type validate and ' +
|
|
136
172
|
'payload.requirement in domain requirements-validation.');
|
|
173
|
+
case 'generate-tests':
|
|
174
|
+
return testGenerationRoute(request);
|
|
137
175
|
default:
|
|
138
176
|
return { kind: 'as-inferred' };
|
|
139
177
|
}
|