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
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - task_orchestrate inference
|
|
3
|
+
* Infers the task type and QE domain from a free-text task description, and
|
|
4
|
+
* the workflow (if any) that runs a task type (Issue #206).
|
|
5
|
+
*/
|
|
6
|
+
import type { TaskType } from '../../coordination/queen-coordinator';
|
|
7
|
+
export declare const TASK_WORKFLOW_MAP: Partial<Record<TaskType, string>>;
|
|
8
|
+
/**
|
|
9
|
+
* Infer domain from task description for routing enrichment
|
|
10
|
+
* Maps task descriptions to QE domains so the complexity analyzer
|
|
11
|
+
* can apply domain-specific scoring (e.g., security → complex domain)
|
|
12
|
+
*/
|
|
13
|
+
export declare function inferDomainFromDescription(description: string): string;
|
|
14
|
+
/** #1146: a code search that is not also an indexing request. */
|
|
15
|
+
export declare function isCodeSearch(description: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* #1225: the description asks for test generation ("generate unit tests"),
|
|
18
|
+
* rather than reaching generate-tests as the fallback. Used for the refusal
|
|
19
|
+
* message only; inference keeps its own rules.
|
|
20
|
+
*/
|
|
21
|
+
export declare function namesTestGeneration(description: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Infer task type from description
|
|
24
|
+
*/
|
|
25
|
+
export declare function inferTaskType(description: string): TaskType;
|
|
26
|
+
//# sourceMappingURL=task-inference.d.ts.map
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - task_orchestrate inference
|
|
3
|
+
* Infers the task type and QE domain from a free-text task description, and
|
|
4
|
+
* the workflow (if any) that runs a task type (Issue #206).
|
|
5
|
+
*/
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Task Type to Workflow Mapping (Issue #206)
|
|
8
|
+
// Maps TaskTypes to their associated workflow IDs for auto-execution
|
|
9
|
+
// ============================================================================
|
|
10
|
+
export const TASK_WORKFLOW_MAP = {
|
|
11
|
+
'ideation-assessment': 'qcsd-ideation-swarm',
|
|
12
|
+
// Add more mappings as workflows are created:
|
|
13
|
+
// 'generate-tests': 'comprehensive-testing',
|
|
14
|
+
// 'test-accessibility': 'visual-accessibility-workflow',
|
|
15
|
+
};
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Helper Functions
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Infer domain from task description for routing enrichment
|
|
21
|
+
* Maps task descriptions to QE domains so the complexity analyzer
|
|
22
|
+
* can apply domain-specific scoring (e.g., security → complex domain)
|
|
23
|
+
*/
|
|
24
|
+
export function inferDomainFromDescription(description) {
|
|
25
|
+
const lower = description.toLowerCase();
|
|
26
|
+
if (/\b(security|vulnerabilit|cve|owasp|secret|credential|injection|xss|csrf)\b/.test(lower)) {
|
|
27
|
+
return 'security-compliance';
|
|
28
|
+
}
|
|
29
|
+
if (/\b(chaos|resilience|fault.?inject|disaster|failover)\b/.test(lower)) {
|
|
30
|
+
return 'chaos-resilience';
|
|
31
|
+
}
|
|
32
|
+
if (/\b(defect|bug.?predict|risk.?assess|mutation)\b/.test(lower)) {
|
|
33
|
+
return 'defect-intelligence';
|
|
34
|
+
}
|
|
35
|
+
if (/\b(coverage|uncovered|gap.?analy)\b/.test(lower)) {
|
|
36
|
+
return 'coverage-analysis';
|
|
37
|
+
}
|
|
38
|
+
if (/\b(quality|code.?review|maintain|tech.?debt)\b/.test(lower)) {
|
|
39
|
+
return 'quality-assessment';
|
|
40
|
+
}
|
|
41
|
+
if (/\b(contract|api.?compat|breaking.?change|pact)\b/.test(lower)) {
|
|
42
|
+
return 'contract-testing';
|
|
43
|
+
}
|
|
44
|
+
if (/\b(index|knowledge.?graph|semantic|code.?intel)\b/.test(lower)) {
|
|
45
|
+
return 'code-intelligence';
|
|
46
|
+
}
|
|
47
|
+
if (/\b(accessib|a11y|wcag|screen.?read)\b/.test(lower)) {
|
|
48
|
+
return 'visual-accessibility';
|
|
49
|
+
}
|
|
50
|
+
if (/\b(requirement|bdd|acceptance|user.?stor)\b/.test(lower)) {
|
|
51
|
+
return 'requirements-validation';
|
|
52
|
+
}
|
|
53
|
+
if (/\b(generat.*test|test.*generat|write.*test|create.*test)\b/.test(lower)) {
|
|
54
|
+
return 'test-generation';
|
|
55
|
+
}
|
|
56
|
+
if (/\b(run.*test|execut.*test)\b/.test(lower)) {
|
|
57
|
+
return 'test-execution';
|
|
58
|
+
}
|
|
59
|
+
return 'test-generation'; // Default
|
|
60
|
+
}
|
|
61
|
+
// #1130: chaos named as the activity of a test run. The lookaheads keep a
|
|
62
|
+
// path segment or file name (resilience tests/unit/…, src/fault-injection/…,
|
|
63
|
+
// fault-injection.ts) from counting, and "fault injector" names a component.
|
|
64
|
+
const CHAOS_ACTIVITY = new RegExp([
|
|
65
|
+
String.raw `\b(?:chaos|resilience)\s+(?:\w+\s+)?(?:tests?|testing|experiments?)\b(?![./\w])`,
|
|
66
|
+
String.raw `\bfault[\s-]?inject(?:ion|ing)\b(?![./\w])`,
|
|
67
|
+
String.raw `\binject(?:s|ing)?\s+(?:\w+\s+)?faults?\b(?![./\w])`,
|
|
68
|
+
].join('|'));
|
|
69
|
+
// #1146: learning named as the subject ("optimize learning", "learned
|
|
70
|
+
// patterns", "learn from failures"), not any use of "learn/optimize/improve".
|
|
71
|
+
const LEARNING_ACTIVITY = /\b(?:learning|learned|learnt)\b|\blearn\s+from\b/;
|
|
72
|
+
/** #1146: a request to search code ("semantic search for auth code", "search the codebase for X"). */
|
|
73
|
+
const CODE_SEARCH = /\b(?:semantic|code)\s+search\b|\bsearch\s+(?:the\s+)?(?:code(?:base)?|repo(?:sitory)?|source(?:\s+code)?)\b|\bsearch\s+for\b/;
|
|
74
|
+
/** #1146: a code search that is not also an indexing request. */
|
|
75
|
+
export function isCodeSearch(description) {
|
|
76
|
+
const lower = description.toLowerCase();
|
|
77
|
+
return CODE_SEARCH.test(lower) && !/\bindex|knowledge\s+graph/.test(lower);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* #1225: the description asks for test generation ("generate unit tests"),
|
|
81
|
+
* rather than reaching generate-tests as the fallback. Used for the refusal
|
|
82
|
+
* message only; inference keeps its own rules.
|
|
83
|
+
*/
|
|
84
|
+
export function namesTestGeneration(description) {
|
|
85
|
+
return /\b(?:generat\w*|create|write|add)\s+(?:\w+\s+){0,2}tests?\b/i.test(description);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Infer task type from description
|
|
89
|
+
*/
|
|
90
|
+
export function inferTaskType(description) {
|
|
91
|
+
const lower = description.toLowerCase();
|
|
92
|
+
// Check execution first (more specific patterns)
|
|
93
|
+
if (/run\s+(?:\w+\s+)*tests?/.test(lower) ||
|
|
94
|
+
/execute\s+(?:\w+\s+)*tests?/.test(lower) ||
|
|
95
|
+
lower.includes('run tests') ||
|
|
96
|
+
lower.includes('execute tests')) {
|
|
97
|
+
// #1130: "run chaos resilience testing" names a chaos run, not a test run.
|
|
98
|
+
// Only a run whose activity is chaos counts; every other description keeps
|
|
99
|
+
// the order below, where chaos wording is the last resort.
|
|
100
|
+
return CHAOS_ACTIVITY.test(lower) ? 'run-chaos' : 'execute-tests';
|
|
101
|
+
}
|
|
102
|
+
// Then check generation
|
|
103
|
+
if (lower.includes('generate test') || lower.includes('create test') || lower.includes('write test')) {
|
|
104
|
+
return 'generate-tests';
|
|
105
|
+
}
|
|
106
|
+
if (lower.includes('coverage') || lower.includes('uncovered')) {
|
|
107
|
+
return 'analyze-coverage';
|
|
108
|
+
}
|
|
109
|
+
if (lower.includes('quality') || lower.includes('code quality')) {
|
|
110
|
+
return 'assess-quality';
|
|
111
|
+
}
|
|
112
|
+
if (lower.includes('defect') || lower.includes('bug') || lower.includes('predict')) {
|
|
113
|
+
return 'predict-defects';
|
|
114
|
+
}
|
|
115
|
+
if (lower.includes('requirement') || lower.includes('bdd') || lower.includes('acceptance')) {
|
|
116
|
+
return 'validate-requirements';
|
|
117
|
+
}
|
|
118
|
+
if (lower.includes('index') || lower.includes('knowledge graph') || lower.includes('semantic')) {
|
|
119
|
+
return 'index-code';
|
|
120
|
+
}
|
|
121
|
+
if (lower.includes('security') || lower.includes('vulnerability') || lower.includes('owasp')) {
|
|
122
|
+
return 'scan-security';
|
|
123
|
+
}
|
|
124
|
+
if (lower.includes('contract') || lower.includes('api contract') || lower.includes('pact')) {
|
|
125
|
+
return 'validate-contracts';
|
|
126
|
+
}
|
|
127
|
+
if (lower.includes('accessibility') || lower.includes('a11y') || lower.includes('wcag')) {
|
|
128
|
+
return 'test-accessibility';
|
|
129
|
+
}
|
|
130
|
+
if (lower.includes('chaos') || lower.includes('resilience') || lower.includes('fault')) {
|
|
131
|
+
return 'run-chaos';
|
|
132
|
+
}
|
|
133
|
+
// #1146: a code search is code-intelligence work; routeInferredTask refuses
|
|
134
|
+
// it with a search-specific reason rather than "no files to index".
|
|
135
|
+
if (CODE_SEARCH.test(lower)) {
|
|
136
|
+
return 'index-code';
|
|
137
|
+
}
|
|
138
|
+
// #1146: only wording about learning itself. "improve" or "optimize" alone
|
|
139
|
+
// ("improve test coverage", "optimize the login page") names no learning task.
|
|
140
|
+
if (LEARNING_ACTIVITY.test(lower)) {
|
|
141
|
+
return 'optimize-learning';
|
|
142
|
+
}
|
|
143
|
+
// QCSD Ideation phase - quality criteria, testability, risk assessment
|
|
144
|
+
if (lower.includes('ideation') ||
|
|
145
|
+
lower.includes('quality criteria') ||
|
|
146
|
+
lower.includes('htsm') ||
|
|
147
|
+
lower.includes('qcsd') ||
|
|
148
|
+
lower.includes('testability') ||
|
|
149
|
+
lower.includes('pi planning') ||
|
|
150
|
+
lower.includes('sprint planning')) {
|
|
151
|
+
return 'ideation-assessment';
|
|
152
|
+
}
|
|
153
|
+
// Default to test generation
|
|
154
|
+
return 'generate-tests';
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=task-inference.js.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Task learning MCP handlers (ADR-051)
|
|
3
|
+
* Task outcome recording, ReasoningBank stats, task status with learning and
|
|
4
|
+
* the trajectory event subscriptions.
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolResult, TaskStatusParams, TaskStatusResult } from '../types';
|
|
7
|
+
export interface TaskOutcomeRecordParams {
|
|
8
|
+
/** Task ID */
|
|
9
|
+
taskId: string;
|
|
10
|
+
/** Task description */
|
|
11
|
+
task: string;
|
|
12
|
+
/** Task type */
|
|
13
|
+
taskType: string;
|
|
14
|
+
/** Whether the task succeeded */
|
|
15
|
+
success: boolean;
|
|
16
|
+
/** Execution time in ms */
|
|
17
|
+
executionTimeMs: number;
|
|
18
|
+
/** Agent that executed the task */
|
|
19
|
+
agentId?: string;
|
|
20
|
+
/** Domain */
|
|
21
|
+
domain?: string;
|
|
22
|
+
/** Model tier used */
|
|
23
|
+
modelTier?: number;
|
|
24
|
+
/** Quality score (0-1) */
|
|
25
|
+
qualityScore?: number;
|
|
26
|
+
/** Error message if failed */
|
|
27
|
+
error?: string;
|
|
28
|
+
/** Additional metrics */
|
|
29
|
+
metrics?: {
|
|
30
|
+
tokensUsed?: number;
|
|
31
|
+
testsGenerated?: number;
|
|
32
|
+
testsPassed?: number;
|
|
33
|
+
coverageImprovement?: number;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface TaskOutcomeRecordResult {
|
|
37
|
+
recorded: boolean;
|
|
38
|
+
patternStored: boolean;
|
|
39
|
+
message: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Record a task outcome for ReasoningBank learning
|
|
43
|
+
* ADR-051: Enables cross-session learning from task execution
|
|
44
|
+
*/
|
|
45
|
+
export declare function handleTaskOutcomeRecord(params: TaskOutcomeRecordParams): Promise<ToolResult<TaskOutcomeRecordResult>>;
|
|
46
|
+
export interface ReasoningBankStatsResult {
|
|
47
|
+
service: {
|
|
48
|
+
tasksRecorded: number;
|
|
49
|
+
successfulTasks: number;
|
|
50
|
+
failedTasks: number;
|
|
51
|
+
successRate: number;
|
|
52
|
+
patternsStored: number;
|
|
53
|
+
routingRequests: number;
|
|
54
|
+
};
|
|
55
|
+
patterns: {
|
|
56
|
+
totalPatterns: number;
|
|
57
|
+
byDomain: Record<string, number>;
|
|
58
|
+
byTier: Record<string, number>;
|
|
59
|
+
learningOutcomes: number;
|
|
60
|
+
patternSuccessRate: number;
|
|
61
|
+
};
|
|
62
|
+
embeddings: {
|
|
63
|
+
cacheSize: number;
|
|
64
|
+
dimension: number;
|
|
65
|
+
transformerAvailable: boolean;
|
|
66
|
+
};
|
|
67
|
+
performance: {
|
|
68
|
+
avgRoutingLatencyMs: number;
|
|
69
|
+
p95RoutingLatencyMs: number;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get ReasoningBank statistics
|
|
74
|
+
* ADR-051: Provides visibility into learning system
|
|
75
|
+
*/
|
|
76
|
+
export declare function handleReasoningBankStats(): Promise<ToolResult<ReasoningBankStatsResult>>;
|
|
77
|
+
/**
|
|
78
|
+
* Enhanced task status that records outcomes for learning
|
|
79
|
+
* ADR-051: Automatically records completed task outcomes
|
|
80
|
+
* INTEGRATION FIX: Now synchronous to ensure learning occurs
|
|
81
|
+
*/
|
|
82
|
+
export declare function handleTaskStatusWithLearning(params: TaskStatusParams): Promise<ToolResult<TaskStatusResult>>;
|
|
83
|
+
/**
|
|
84
|
+
* Subscribe to task lifecycle events to auto-close trajectories.
|
|
85
|
+
* Must be called after the CrossDomainEventRouter is initialized.
|
|
86
|
+
*/
|
|
87
|
+
export declare function subscribeTrajectoryEvents(router: import('../../coordination/cross-domain-router').CrossDomainEventRouter): void;
|
|
88
|
+
/**
|
|
89
|
+
* Unsubscribe trajectory event listeners. Called during fleet dispose.
|
|
90
|
+
*/
|
|
91
|
+
export declare function unsubscribeTrajectoryEvents(router: import('../../coordination/cross-domain-router').CrossDomainEventRouter): void;
|
|
92
|
+
//# sourceMappingURL=task-learning-handlers.d.ts.map
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - Task learning MCP handlers (ADR-051)
|
|
3
|
+
* Task outcome recording, ReasoningBank stats, task status with learning and
|
|
4
|
+
* the trajectory event subscriptions.
|
|
5
|
+
*/
|
|
6
|
+
import { getFleetState, isFleetInitialized } from './core-handlers.js';
|
|
7
|
+
import { getReasoningBankService, endTaskTrajectory, } from '../services/reasoning-bank-service.js';
|
|
8
|
+
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
9
|
+
/**
|
|
10
|
+
* Record a task outcome for ReasoningBank learning
|
|
11
|
+
* ADR-051: Enables cross-session learning from task execution
|
|
12
|
+
*/
|
|
13
|
+
export async function handleTaskOutcomeRecord(params) {
|
|
14
|
+
try {
|
|
15
|
+
const service = await getReasoningBankService();
|
|
16
|
+
const outcome = {
|
|
17
|
+
taskId: params.taskId,
|
|
18
|
+
task: params.task,
|
|
19
|
+
taskType: params.taskType,
|
|
20
|
+
success: params.success,
|
|
21
|
+
executionTimeMs: params.executionTimeMs,
|
|
22
|
+
agentId: params.agentId,
|
|
23
|
+
domain: params.domain,
|
|
24
|
+
modelTier: params.modelTier,
|
|
25
|
+
qualityScore: params.qualityScore,
|
|
26
|
+
error: params.error,
|
|
27
|
+
metrics: params.metrics,
|
|
28
|
+
};
|
|
29
|
+
await service.recordTaskOutcome(outcome);
|
|
30
|
+
const patternStored = params.success && (params.qualityScore || 0.5) >= 0.6;
|
|
31
|
+
return {
|
|
32
|
+
success: true,
|
|
33
|
+
data: {
|
|
34
|
+
recorded: true,
|
|
35
|
+
patternStored,
|
|
36
|
+
message: patternStored
|
|
37
|
+
? `Outcome recorded and pattern stored for task ${params.taskId}`
|
|
38
|
+
: `Outcome recorded for task ${params.taskId}`,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return {
|
|
44
|
+
success: false,
|
|
45
|
+
error: `Failed to record task outcome: ${toErrorMessage(error)}`,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get ReasoningBank statistics
|
|
51
|
+
* ADR-051: Provides visibility into learning system
|
|
52
|
+
*/
|
|
53
|
+
export async function handleReasoningBankStats() {
|
|
54
|
+
try {
|
|
55
|
+
const service = await getReasoningBankService();
|
|
56
|
+
const stats = await service.getStats();
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
data: {
|
|
60
|
+
service: stats.service,
|
|
61
|
+
patterns: {
|
|
62
|
+
totalPatterns: stats.reasoningBank.totalPatterns,
|
|
63
|
+
byDomain: stats.reasoningBank.byDomain,
|
|
64
|
+
byTier: stats.reasoningBank.byTier,
|
|
65
|
+
learningOutcomes: stats.reasoningBank.learningOutcomes,
|
|
66
|
+
patternSuccessRate: stats.reasoningBank.patternSuccessRate,
|
|
67
|
+
},
|
|
68
|
+
embeddings: {
|
|
69
|
+
cacheSize: stats.reasoningBank.embeddingCacheSize,
|
|
70
|
+
dimension: stats.reasoningBank.embeddingDimension,
|
|
71
|
+
transformerAvailable: stats.reasoningBank.transformerAvailable,
|
|
72
|
+
},
|
|
73
|
+
performance: {
|
|
74
|
+
avgRoutingLatencyMs: stats.reasoningBank.avgRoutingLatencyMs,
|
|
75
|
+
p95RoutingLatencyMs: stats.reasoningBank.p95RoutingLatencyMs,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return {
|
|
82
|
+
success: false,
|
|
83
|
+
error: `Failed to get ReasoningBank stats: ${toErrorMessage(error)}`,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// ============================================================================
|
|
88
|
+
// Task Complete Handler with Learning
|
|
89
|
+
// Records outcome when task status is queried and complete
|
|
90
|
+
// ============================================================================
|
|
91
|
+
// Track tasks we've already recorded to avoid duplicates
|
|
92
|
+
const recordedTasks = new Set();
|
|
93
|
+
/**
|
|
94
|
+
* Enhanced task status that records outcomes for learning
|
|
95
|
+
* ADR-051: Automatically records completed task outcomes
|
|
96
|
+
* INTEGRATION FIX: Now synchronous to ensure learning occurs
|
|
97
|
+
*/
|
|
98
|
+
export async function handleTaskStatusWithLearning(params) {
|
|
99
|
+
if (!isFleetInitialized()) {
|
|
100
|
+
return {
|
|
101
|
+
success: false,
|
|
102
|
+
error: 'Fleet not initialized. Call fleet_init first.',
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const { queen } = getFleetState();
|
|
106
|
+
try {
|
|
107
|
+
const execution = queen.getTaskStatus(params.taskId);
|
|
108
|
+
if (!execution) {
|
|
109
|
+
return {
|
|
110
|
+
success: false,
|
|
111
|
+
error: `Task not found: ${params.taskId}`,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const result = {
|
|
115
|
+
taskId: execution.taskId,
|
|
116
|
+
type: execution.task.type,
|
|
117
|
+
status: execution.status,
|
|
118
|
+
cancellationResultPending: execution.cancellationResultPending,
|
|
119
|
+
priority: execution.task.priority,
|
|
120
|
+
assignedDomain: execution.assignedDomain,
|
|
121
|
+
assignedAgents: execution.assignedAgents,
|
|
122
|
+
result: params.detailed ? execution.result : undefined,
|
|
123
|
+
error: execution.error,
|
|
124
|
+
createdAt: execution.task.createdAt.toISOString(),
|
|
125
|
+
startedAt: execution.startedAt?.toISOString(),
|
|
126
|
+
completedAt: execution.completedAt?.toISOString(),
|
|
127
|
+
duration: execution.completedAt && execution.startedAt
|
|
128
|
+
? execution.completedAt.getTime() - execution.startedAt.getTime()
|
|
129
|
+
: undefined,
|
|
130
|
+
};
|
|
131
|
+
// INTEGRATION FIX: Record outcome for completed tasks synchronously (only once)
|
|
132
|
+
if ((execution.status === 'completed' || execution.status === 'failed') &&
|
|
133
|
+
!recordedTasks.has(params.taskId)) {
|
|
134
|
+
recordedTasks.add(params.taskId);
|
|
135
|
+
try {
|
|
136
|
+
const service = await getReasoningBankService();
|
|
137
|
+
const duration = result.duration || 0;
|
|
138
|
+
const success = execution.status === 'completed';
|
|
139
|
+
// Safely extract payload properties (typed as Record<string, unknown>)
|
|
140
|
+
const payload = execution.task.payload || {};
|
|
141
|
+
const taskDescription = typeof payload.description === 'string'
|
|
142
|
+
? payload.description
|
|
143
|
+
: execution.task.type;
|
|
144
|
+
const routing = payload.routing;
|
|
145
|
+
// INTEGRATION FIX: End trajectory tracking first
|
|
146
|
+
const trajectory = await endTaskTrajectory(params.taskId, success, execution.error);
|
|
147
|
+
// Calculate quality score from trajectory if available
|
|
148
|
+
const qualityScore = trajectory?.metrics.averageQuality ?? (success ? 0.7 : 0.3);
|
|
149
|
+
// INTEGRATION FIX: Record outcome synchronously (await to ensure learning)
|
|
150
|
+
await service.recordTaskOutcome({
|
|
151
|
+
taskId: params.taskId,
|
|
152
|
+
task: taskDescription,
|
|
153
|
+
taskType: execution.task.type,
|
|
154
|
+
success,
|
|
155
|
+
executionTimeMs: duration,
|
|
156
|
+
agentId: execution.assignedAgents?.[0],
|
|
157
|
+
domain: execution.assignedDomain,
|
|
158
|
+
modelTier: routing?.tier,
|
|
159
|
+
qualityScore,
|
|
160
|
+
error: execution.error,
|
|
161
|
+
metrics: {
|
|
162
|
+
// Extract any metrics from result if available
|
|
163
|
+
testsGenerated: typeof execution.result === 'object' && execution.result
|
|
164
|
+
? execution.result.testsGenerated
|
|
165
|
+
: undefined,
|
|
166
|
+
testsPassed: typeof execution.result === 'object' && execution.result
|
|
167
|
+
? execution.result.testsPassed
|
|
168
|
+
: undefined,
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
console.error(`[TaskHandler] Recorded learning outcome: task=${params.taskId} ` +
|
|
172
|
+
`success=${success} quality=${qualityScore.toFixed(2)} ` +
|
|
173
|
+
`trajectorySteps=${trajectory?.steps.length ?? 0}`);
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
// Log but don't fail the response - learning is important but not blocking
|
|
177
|
+
console.error('[TaskHandler] Failed to record outcome:', err);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return {
|
|
181
|
+
success: true,
|
|
182
|
+
data: result,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
return {
|
|
187
|
+
success: false,
|
|
188
|
+
error: `Failed to get task status: ${toErrorMessage(error)}`,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// ============================================================================
|
|
193
|
+
// Issue N1: Event-driven trajectory auto-close
|
|
194
|
+
// Subscribe to TaskCompleted/TaskFailed events so trajectories are closed
|
|
195
|
+
// by the event system, not by per-task polling loops.
|
|
196
|
+
// Called once during fleet init.
|
|
197
|
+
// ============================================================================
|
|
198
|
+
/** Subscription IDs for cleanup on fleet dispose */
|
|
199
|
+
let trajectorySubscriptionIds = [];
|
|
200
|
+
/**
|
|
201
|
+
* Subscribe to task lifecycle events to auto-close trajectories.
|
|
202
|
+
* Must be called after the CrossDomainEventRouter is initialized.
|
|
203
|
+
*/
|
|
204
|
+
export function subscribeTrajectoryEvents(router) {
|
|
205
|
+
// Unsubscribe any previous subscriptions (idempotent)
|
|
206
|
+
unsubscribeTrajectoryEvents(router);
|
|
207
|
+
const completedId = router.subscribeToEventType('TaskCompleted', async (event) => {
|
|
208
|
+
const { taskId } = event.payload;
|
|
209
|
+
if (taskId && getFleetState().queen?.getTaskStatus(taskId)?.status !== 'cancelled') {
|
|
210
|
+
await endTaskTrajectory(taskId, true).catch(() => { });
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
const failedId = router.subscribeToEventType('TaskFailed', async (event) => {
|
|
214
|
+
const { taskId, error: errorMsg } = event.payload;
|
|
215
|
+
if (taskId && getFleetState().queen?.getTaskStatus(taskId)?.status !== 'cancelled') {
|
|
216
|
+
await endTaskTrajectory(taskId, false, errorMsg).catch(() => { });
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
trajectorySubscriptionIds = [completedId, failedId];
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Unsubscribe trajectory event listeners. Called during fleet dispose.
|
|
223
|
+
*/
|
|
224
|
+
export function unsubscribeTrajectoryEvents(router) {
|
|
225
|
+
for (const id of trajectorySubscriptionIds) {
|
|
226
|
+
router.unsubscribe(id);
|
|
227
|
+
}
|
|
228
|
+
trajectorySubscriptionIds = [];
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=task-learning-handlers.js.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agentic QE v3 - task_orchestrate MCP handler
|
|
3
|
+
* ADR-051: Integrated with Model Router for intelligent tier selection
|
|
4
|
+
* Issue #206: Workflow auto-execution for task types with associated workflows
|
|
5
|
+
*/
|
|
6
|
+
import type { ToolResult } from '../types';
|
|
7
|
+
import type { TaskType } from '../../coordination/queen-coordinator';
|
|
8
|
+
import type { ExperienceGuidanceStatus } from '../../integrations/agentic-flow/reasoning-bank/index.js';
|
|
9
|
+
import type { ModelTier } from '../../integrations/agentic-flow';
|
|
10
|
+
import { type Priority } from '../../shared/types/index.js';
|
|
11
|
+
export interface TaskOrchestrateParams {
|
|
12
|
+
task: string;
|
|
13
|
+
strategy?: 'parallel' | 'sequential' | 'adaptive';
|
|
14
|
+
/** Named levels, or a canonical p0-p3 priority (p0 stays p0). */
|
|
15
|
+
priority?: 'low' | 'medium' | 'high' | 'critical' | Priority;
|
|
16
|
+
maxAgents?: number;
|
|
17
|
+
/** Manual tier override (0-4) */
|
|
18
|
+
manualTier?: ModelTier;
|
|
19
|
+
/** Code context for complexity analysis */
|
|
20
|
+
codeContext?: string;
|
|
21
|
+
/** File paths involved */
|
|
22
|
+
filePaths?: string[];
|
|
23
|
+
context?: {
|
|
24
|
+
project?: string;
|
|
25
|
+
branch?: string;
|
|
26
|
+
environment?: string;
|
|
27
|
+
requirements?: string[];
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* #1022: how learned patterns informed task_orchestrate.
|
|
32
|
+
* - 'vector': embedding similarity plus text matching
|
|
33
|
+
* - 'lexical-only': no working embedder (absent, or failed at runtime, #1187);
|
|
34
|
+
* text matching only, no similarity
|
|
35
|
+
* scores, and experience guidance unavailable
|
|
36
|
+
* - 'unavailable': the ReasoningBank could not start; no learned guidance
|
|
37
|
+
*
|
|
38
|
+
* #1204: `experienceGuidance` says the same for similar-experience guidance:
|
|
39
|
+
* 'unavailable' (with the reason) when its embedder failed or is absent.
|
|
40
|
+
* Omitted when experience replay is disabled or the ReasoningBank is down.
|
|
41
|
+
*/
|
|
42
|
+
export interface OrchestrateLearningStatus {
|
|
43
|
+
patternSearch: 'vector' | 'lexical-only' | 'unavailable';
|
|
44
|
+
reason?: string;
|
|
45
|
+
experienceGuidance?: ExperienceGuidanceStatus;
|
|
46
|
+
}
|
|
47
|
+
export interface TaskOrchestrateResult {
|
|
48
|
+
taskId: string;
|
|
49
|
+
/** The task type submitted to the domain. */
|
|
50
|
+
type: TaskType;
|
|
51
|
+
/** #1125: the type inferred from the description, when another handler type runs it. */
|
|
52
|
+
inferredType?: TaskType;
|
|
53
|
+
priority: 'p0' | 'p1' | 'p2' | 'p3';
|
|
54
|
+
strategy: string;
|
|
55
|
+
status: string;
|
|
56
|
+
message: string;
|
|
57
|
+
/** ADR-051: Model routing decision */
|
|
58
|
+
routing: {
|
|
59
|
+
tier: ModelTier;
|
|
60
|
+
tierName: string;
|
|
61
|
+
modelId: string;
|
|
62
|
+
executionStrategy: string;
|
|
63
|
+
complexity: number;
|
|
64
|
+
confidence: number;
|
|
65
|
+
useAgentBooster: boolean;
|
|
66
|
+
rationale: string;
|
|
67
|
+
decisionTimeMs: number;
|
|
68
|
+
};
|
|
69
|
+
/** #1022: how learned patterns informed this orchestration */
|
|
70
|
+
learning: OrchestrateLearningStatus;
|
|
71
|
+
}
|
|
72
|
+
export declare function handleTaskOrchestrate(params: TaskOrchestrateParams): Promise<ToolResult<TaskOrchestrateResult>>;
|
|
73
|
+
//# sourceMappingURL=task-orchestrate-handler.d.ts.map
|