agentic-qe 3.15.9 → 3.15.11
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/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +365 -0
- package/README.md +8 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/adapters/a2a/agent-cards/generator.js +6 -3
- package/dist/adapters/a2a/tasks/task-router.js +3 -1
- package/dist/adapters/a2ui/catalog/component-schemas.js +2 -1
- package/dist/adapters/a2ui/data/json-pointer-resolver.js +10 -5
- package/dist/adapters/a2ui/integration/agui-sync.js +10 -6
- package/dist/adapters/a2ui/integration/surface-state-bridge.js +9 -5
- package/dist/adapters/ag-ui/json-patch.js +10 -6
- package/dist/adapters/trajectory-adapter.js +1 -1
- package/dist/agents/claim-verifier/verifiers/output-verifier.d.ts +3 -1
- package/dist/agents/claim-verifier/verifiers/output-verifier.js +31 -2
- package/dist/agents/overlay-loader.js +26 -21
- package/dist/audit/witness-chain.d.ts +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-V4GSGOOK.js +2 -0
- package/dist/cli/chunks/agent-booster-wasm-TIDSQ3ZK.js +2 -0
- package/dist/cli/chunks/{agent-handler-RIYHTHVZ.js → agent-handler-G3EPBVA7.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-WSUCUHOO.js → agent-memory-branch-ARC5C7GW.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-6WQTM5YR.js +2 -0
- package/dist/cli/chunks/{arena-YAJZX6MC.js → arena-36DTATJV.js} +4 -4
- package/dist/cli/chunks/{arena-KRIBMIXX.js → arena-K4I4QDXB.js} +2 -2
- package/dist/cli/chunks/{audit-7ZNOXWP3.js → audit-WQSJSJZF.js} +3 -3
- package/dist/cli/chunks/base-AK7BXBX2.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-ZQAT4I6H.js → better-sqlite3-BB4K67MT.js} +2 -2
- package/dist/cli/chunks/{brain-handler-452WCPZC.js → brain-handler-CU3GOIU3.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-IJFXJRPN.js → branch-enumerator-NJQX7ZNB.js} +2 -2
- package/dist/cli/chunks/browser-6YJF4FQW.js +4 -0
- package/dist/cli/chunks/browser-workflow-VTDFBW7T.js +2 -0
- package/dist/cli/chunks/{chunk-LMU5DUDK.js → chunk-25P77WA5.js} +1 -1
- package/dist/cli/chunks/chunk-2CW7VRPH.js +141 -0
- package/dist/cli/chunks/chunk-2DTX7YAZ.js +6 -0
- package/dist/cli/chunks/{chunk-4JCY45KV.js → chunk-2KFFEKSI.js} +2 -2
- package/dist/cli/chunks/chunk-2VLYUF7U.js +2 -0
- package/dist/cli/chunks/{chunk-55HRSNGN.js → chunk-325QCVDI.js} +2 -2
- package/dist/cli/chunks/{chunk-2TDIS6YK.js → chunk-35M2X3C5.js} +2 -2
- package/dist/cli/chunks/{chunk-J5KNRVXR.js → chunk-3RHOPP7A.js} +1 -1
- package/dist/cli/chunks/{chunk-NTAD5UX4.js → chunk-4HJKQIX5.js} +2 -2
- package/dist/cli/chunks/chunk-4MUBW4RT.js +7 -0
- package/dist/cli/chunks/{chunk-VQHVHVSF.js → chunk-4RAQ7PJA.js} +8 -8
- package/dist/cli/chunks/{chunk-JWGRWMZP.js → chunk-4RH5I24Q.js} +2 -2
- package/dist/cli/chunks/{chunk-QQ5SZH4D.js → chunk-4UBVAJFO.js} +3 -3
- package/dist/cli/chunks/{chunk-ZBDRLF43.js → chunk-4UX35V7P.js} +2 -2
- package/dist/cli/chunks/{chunk-ZANDSVCK.js → chunk-4X4MWMHB.js} +2 -2
- package/dist/cli/chunks/{chunk-47TYABPD.js → chunk-55CH76ZO.js} +3 -3
- package/dist/cli/chunks/{chunk-LEAKYZ37.js → chunk-57LNKSW7.js} +2 -2
- package/dist/cli/chunks/chunk-5ERFHEEE.js +14 -0
- package/dist/cli/chunks/{chunk-HGTWAZWU.js → chunk-5HQP4SLM.js} +2 -2
- package/dist/cli/chunks/{chunk-XYCKHYBM.js → chunk-5MNASJOH.js} +2 -2
- package/dist/cli/chunks/{chunk-2HL3UM5P.js → chunk-5MTWCCZJ.js} +2 -2
- package/dist/cli/chunks/{chunk-4SUOVLJ6.js → chunk-5N25I53C.js} +2 -2
- package/dist/cli/chunks/{chunk-XOVNZT7F.js → chunk-5WYZHDIZ.js} +1 -1
- package/dist/cli/chunks/{chunk-J3DTDJDT.js → chunk-5YLOLACR.js} +2 -2
- package/dist/cli/chunks/{chunk-TSYQDRNK.js → chunk-672XOJDG.js} +2 -2
- package/dist/cli/chunks/{chunk-KLGYIEJK.js → chunk-6NA3KZZT.js} +10 -10
- package/dist/cli/chunks/chunk-72ZBJD2E.js +3 -0
- package/dist/cli/chunks/{chunk-2I2UPJS7.js → chunk-76SNL7GU.js} +2 -2
- package/dist/cli/chunks/{chunk-F3PQZX44.js → chunk-7HEMJHPP.js} +2 -2
- package/dist/cli/chunks/{chunk-FV7VAG74.js → chunk-7R5HC56U.js} +1 -1
- package/dist/cli/chunks/{chunk-L42JPFCC.js → chunk-AFFN6E6Q.js} +2 -2
- package/dist/cli/chunks/{chunk-NDKLQW6N.js → chunk-AMZKAJLJ.js} +2 -2
- package/dist/cli/chunks/{chunk-K5DJXMAA.js → chunk-AP3ADWDK.js} +2 -2
- package/dist/cli/chunks/{chunk-BHKXMIWX.js → chunk-APPZATXA.js} +2 -2
- package/dist/cli/chunks/{chunk-XDBD4GXO.js → chunk-AUUJBXWX.js} +25 -20
- package/dist/cli/chunks/{chunk-AJ4YDSOI.js → chunk-BTVWA35P.js} +2 -2
- package/dist/cli/chunks/{chunk-WGDR2KIR.js → chunk-BZPE3LDO.js} +2 -2
- package/dist/cli/chunks/{chunk-HZ5NC6U5.js → chunk-CFWGGRE7.js} +1 -1
- package/dist/cli/chunks/{chunk-UYLYMWV5.js → chunk-CIAL4YRY.js} +2 -2
- package/dist/cli/chunks/{chunk-D6XVGFTI.js → chunk-CO3DX2AX.js} +2 -2
- package/dist/cli/chunks/{chunk-N3KEY4XJ.js → chunk-DDEOZPWJ.js} +2 -2
- package/dist/cli/chunks/{chunk-XWIUFYM3.js → chunk-DOBZPSKE.js} +1 -1
- package/dist/cli/chunks/{chunk-PX2B5TS2.js → chunk-DOFREOPQ.js} +2 -2
- package/dist/cli/chunks/{chunk-47V7FQGX.js → chunk-E44NNCEU.js} +2 -2
- package/dist/cli/chunks/{chunk-I6S35FRO.js → chunk-E6PF35JZ.js} +2 -2
- package/dist/cli/chunks/chunk-EBPJY4DI.js +3 -0
- package/dist/cli/chunks/{chunk-4V27J6YN.js → chunk-EH2S6AOR.js} +2 -2
- package/dist/cli/chunks/{chunk-AQTVVLNP.js → chunk-EIDJNT5C.js} +1 -1
- package/dist/cli/chunks/{chunk-SVHUYVUR.js → chunk-EJPK7OTR.js} +2 -2
- package/dist/cli/chunks/{chunk-HAROIAJE.js → chunk-EK5GMOSO.js} +1 -1
- package/dist/cli/chunks/{chunk-LCJTEUDC.js → chunk-ERN43HOX.js} +430 -433
- package/dist/cli/chunks/chunk-ETVAYGCB.js +180 -0
- package/dist/cli/chunks/chunk-EWPUQCN4.js +2 -0
- package/dist/cli/chunks/{chunk-AOFO4N32.js → chunk-FL32MTKT.js} +2 -2
- package/dist/cli/chunks/chunk-FLU5FDSC.js +742 -0
- package/dist/cli/chunks/{chunk-KR3M44CF.js → chunk-FUYOOKTH.js} +5 -5
- package/dist/cli/chunks/chunk-FWSGPE3V.js +12 -0
- package/dist/cli/chunks/chunk-FZHSG75I.js +3 -0
- package/dist/cli/chunks/{chunk-5D2I7JUP.js → chunk-G2IJFNZS.js} +2 -2
- package/dist/cli/chunks/{chunk-ABFDB4X3.js → chunk-G4CKPWF6.js} +1 -1
- package/dist/cli/chunks/{chunk-ETG7O5E5.js → chunk-G4FAPO57.js} +5 -5
- package/dist/cli/chunks/{chunk-W32YU3VI.js → chunk-G77MLBDF.js} +2 -2
- package/dist/cli/chunks/{chunk-5JWGCIQW.js → chunk-GBFUANTC.js} +1 -1
- package/dist/cli/chunks/{chunk-UOWHE77F.js → chunk-GVKVJJQX.js} +2 -2
- package/dist/cli/chunks/{chunk-2YH62JCN.js → chunk-GWJWSLDA.js} +2 -2
- package/dist/cli/chunks/{chunk-FLASM2XB.js → chunk-H43AFUKL.js} +2 -2
- package/dist/cli/chunks/chunk-H7BLYMNU.js +59 -0
- package/dist/cli/chunks/{chunk-5NS3USRW.js → chunk-HDJUYAZG.js} +1 -1
- package/dist/cli/chunks/{chunk-A6YIH4C4.js → chunk-HDNWSKHA.js} +2 -2
- package/dist/cli/chunks/{chunk-763SUL4B.js → chunk-HFFPYC4G.js} +2 -2
- package/dist/cli/chunks/{chunk-DGTLJNJH.js → chunk-HJ3XNTTJ.js} +2 -2
- package/dist/cli/chunks/{chunk-GBUIG3FS.js → chunk-HYXUN7BW.js} +1 -1
- package/dist/cli/chunks/{chunk-3LYU7BLY.js → chunk-I36CRDHF.js} +2 -2
- package/dist/cli/chunks/{chunk-GII5WVAK.js → chunk-I4K2HTQU.js} +1 -1
- package/dist/cli/chunks/chunk-IENZSO3K.js +4 -0
- package/dist/cli/chunks/chunk-IO5537OM.js +2 -0
- package/dist/cli/chunks/{chunk-AVB5QY2Q.js → chunk-IOZRKXR5.js} +2 -2
- package/dist/cli/chunks/chunk-ITL3IN2E.js +3 -0
- package/dist/cli/chunks/{chunk-YRBBBUJX.js → chunk-ITPGWGQS.js} +14 -14
- package/dist/cli/chunks/{chunk-JNNZK7KH.js → chunk-IW6WDGHM.js} +1 -1
- package/dist/cli/chunks/{chunk-SNBYYO6F.js → chunk-J4JMCZVA.js} +2 -2
- package/dist/cli/chunks/{chunk-PVIA2FPD.js → chunk-JFLU7L3W.js} +2 -2
- package/dist/cli/chunks/{chunk-GCWSX2NY.js → chunk-JGJXXAS6.js} +4 -4
- package/dist/cli/chunks/{chunk-KFUUIAR4.js → chunk-JUMICXM6.js} +2 -2
- package/dist/cli/chunks/{chunk-A4RU67VX.js → chunk-K2HBNYAZ.js} +2 -2
- package/dist/cli/chunks/{chunk-CTZJUV5I.js → chunk-K7V2WZNF.js} +1 -1
- package/dist/cli/chunks/{chunk-VRGCKBF7.js → chunk-KDI5JOYZ.js} +2 -2
- package/dist/cli/chunks/{chunk-C6RTMTEH.js → chunk-KJCIMNHS.js} +1 -1
- package/dist/cli/chunks/{chunk-N3NP6PTT.js → chunk-KKYO2NKV.js} +2 -2
- package/dist/cli/chunks/{chunk-XQ3DDY7X.js → chunk-KSE5TDM5.js} +2 -2
- package/dist/cli/chunks/{chunk-YZGSJG34.js → chunk-KSLLHFVY.js} +1 -1
- package/dist/cli/chunks/{chunk-VCMINU7K.js → chunk-KXS3Y2AX.js} +2 -2
- package/dist/cli/chunks/{chunk-REUFWGMA.js → chunk-LBX7M4LW.js} +2 -2
- package/dist/cli/chunks/{chunk-HCYQHWI2.js → chunk-LCVEEII4.js} +2 -2
- package/dist/cli/chunks/{chunk-OCESWNAZ.js → chunk-LD5CFK53.js} +54 -33
- package/dist/cli/chunks/{chunk-XOLDMK23.js → chunk-LPU6PAJE.js} +2 -2
- package/dist/cli/chunks/{chunk-KVBEGOJE.js → chunk-LQ4NUC6Q.js} +2 -2
- package/dist/cli/chunks/chunk-LRL56ZYL.js +21 -0
- package/dist/cli/chunks/{chunk-FL3OYGCS.js → chunk-LXQ3B4RY.js} +2 -2
- package/dist/cli/chunks/{chunk-PMCRCEW5.js → chunk-M5RQ6U3G.js} +2 -2
- package/dist/cli/chunks/{chunk-EFBLP43U.js → chunk-M5XYIQYZ.js} +2 -2
- package/dist/cli/chunks/chunk-M7XFBSIK.js +2 -0
- package/dist/cli/chunks/{chunk-Q3JVJRVJ.js → chunk-MIK4RBEH.js} +1 -1
- package/dist/cli/chunks/{chunk-NHZIWIQZ.js → chunk-NC6K7SCQ.js} +2 -2
- package/dist/cli/chunks/{chunk-TUYJ53V4.js → chunk-NKTWKYHB.js} +2 -2
- package/dist/cli/chunks/{chunk-2URBI52G.js → chunk-NPZOBSAN.js} +2 -2
- package/dist/cli/chunks/{chunk-7KII4CQG.js → chunk-NQZNMCZU.js} +2 -2
- package/dist/cli/chunks/{chunk-7JKB3Q7O.js → chunk-NT7JRHMH.js} +1 -1
- package/dist/cli/chunks/{chunk-MZS32SYS.js → chunk-NTB342NJ.js} +1 -1
- package/dist/cli/chunks/{chunk-ZVSLCEVC.js → chunk-O4JAKWWM.js} +13 -13
- package/dist/cli/chunks/chunk-OD5D4LSZ.js +2 -0
- package/dist/cli/chunks/{chunk-HWK5L7IJ.js → chunk-OH5V5EJW.js} +2 -2
- package/dist/cli/chunks/{chunk-7QTB5VJZ.js → chunk-OHR7C777.js} +2 -2
- package/dist/cli/chunks/{chunk-JAV5WPSY.js → chunk-OURITHFV.js} +2 -2
- package/dist/cli/chunks/{chunk-3CJCROMW.js → chunk-OV5RPLKV.js} +2 -2
- package/dist/cli/chunks/{chunk-ZXBCCO2H.js → chunk-OYJC3YON.js} +2 -2
- package/dist/cli/chunks/{chunk-2BA45H64.js → chunk-QDESWOZP.js} +2 -2
- package/dist/cli/chunks/chunk-R5GRABPQ.js +2 -0
- package/dist/cli/chunks/{chunk-GKPQ2GRR.js → chunk-R5LGV6GZ.js} +2 -2
- package/dist/cli/chunks/chunk-RBZCA7SD.js +12 -0
- package/dist/cli/chunks/chunk-RQMCZQN2.js +2 -0
- package/dist/cli/chunks/chunk-RTFKTKSO.js +4 -0
- package/dist/cli/chunks/{chunk-IFEIY3NQ.js → chunk-RTY7VSZB.js} +2 -2
- package/dist/cli/chunks/{chunk-UOJBR4J3.js → chunk-S6IYEBAI.js} +2 -2
- package/dist/cli/chunks/{chunk-JP4P3P3D.js → chunk-SMVVAVN2.js} +2 -2
- package/dist/cli/chunks/{chunk-TNMQVG4A.js → chunk-T5KHJ3J7.js} +5 -5
- package/dist/cli/chunks/{chunk-7QGYJ5OY.js → chunk-TCYSBC7Y.js} +1 -1
- package/dist/cli/chunks/{chunk-WRRCQ2UE.js → chunk-TFW7CCKS.js} +1 -1
- package/dist/cli/chunks/chunk-TL6OFMXF.js +6 -0
- package/dist/cli/chunks/{chunk-UNUTC6TX.js → chunk-U3LJNNVJ.js} +5 -5
- package/dist/cli/chunks/chunk-UKKYMW3S.js +3 -0
- package/dist/cli/chunks/{chunk-HTZJSQ3C.js → chunk-UMVSWQNB.js} +2 -2
- package/dist/cli/chunks/{chunk-PBZI2ZPV.js → chunk-UTTSH4NH.js} +3 -3
- package/dist/cli/chunks/{chunk-DDPPSSHW.js → chunk-V5AADCBC.js} +1 -1
- package/dist/cli/chunks/{chunk-OXTFSIGN.js → chunk-V7DA4HAK.js} +1 -1
- package/dist/cli/chunks/{chunk-32UTLDNY.js → chunk-VBK2YAYY.js} +2 -2
- package/dist/cli/chunks/{chunk-F4JYIRW2.js → chunk-VEEYL2CZ.js} +2 -2
- package/dist/cli/chunks/{chunk-BXO536GT.js → chunk-VLD7Z2ED.js} +3 -3
- package/dist/cli/chunks/chunk-VO3DRK4P.js +3 -0
- package/dist/cli/chunks/{chunk-6EPHNJTL.js → chunk-VWUZSNVC.js} +1 -1
- package/dist/cli/chunks/{chunk-XUIA5KMS.js → chunk-VYTILW4R.js} +2 -2
- package/dist/cli/chunks/{chunk-YZYDTABJ.js → chunk-WCAVIJ64.js} +1 -1
- package/dist/cli/chunks/{chunk-KIKWJM6J.js → chunk-WCVCOT4E.js} +2 -2
- package/dist/cli/chunks/{chunk-OG2UI6A3.js → chunk-WM3SRRA6.js} +2 -2
- package/dist/cli/chunks/chunk-X3PZCXWG.js +2 -0
- package/dist/cli/chunks/{chunk-P73W2K7T.js → chunk-X4J73KP3.js} +1 -1
- package/dist/cli/chunks/{chunk-37BIGMJI.js → chunk-XDI5X3FR.js} +1 -1
- package/dist/cli/chunks/{chunk-V5PXQSFS.js → chunk-XGBU3KEM.js} +2 -2
- package/dist/cli/chunks/{chunk-ICP2ORGI.js → chunk-XGPTZUKQ.js} +2 -2
- package/dist/cli/chunks/{chunk-6OOYIO3W.js → chunk-XJKZ7FTR.js} +2 -2
- package/dist/cli/chunks/{chunk-H3KBIWTO.js → chunk-XNLIWQYE.js} +2 -2
- package/dist/cli/chunks/{chunk-4W4DYVSH.js → chunk-XS2XF3YG.js} +6 -5
- package/dist/cli/chunks/chunk-Y7B5EUIJ.js +180 -0
- package/dist/cli/chunks/{chunk-QTVWUQTB.js → chunk-YBBT3YYG.js} +1 -1
- package/dist/cli/chunks/{chunk-7X2Y727E.js → chunk-YNOCQ2SL.js} +1 -1
- package/dist/cli/chunks/{chunk-DINZR5CF.js → chunk-YOCULVHR.js} +1 -1
- package/dist/cli/chunks/{chunk-KIXYKUCI.js → chunk-YPX2TV3M.js} +1 -1
- package/dist/cli/chunks/{chunk-OXZLKP6C.js → chunk-Z2EA7A4Z.js} +1 -1
- package/dist/cli/chunks/{chunk-W5VJRDDG.js → chunk-ZMC543GI.js} +2 -2
- package/dist/cli/chunks/chunk-ZMHCMJ4J.js +2 -0
- package/dist/cli/chunks/{chunk-72AMFDC7.js → chunk-ZP75ASUU.js} +1 -1
- package/dist/cli/chunks/{chunk-JUVHZG7I.js → chunk-ZQHDA4O7.js} +1 -1
- package/dist/cli/chunks/{ci-7SGRCFPS.js → ci-6GUFAZMJ.js} +2 -2
- package/dist/cli/chunks/{ci-config-MX3URPZA.js → ci-config-J665XNOX.js} +2 -2
- package/dist/cli/chunks/{ci-output-M47NJY6D.js → ci-output-PEQQQWVD.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-5GAK45SW.js → circuit-breaker-HHB2JSKH.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-YXYSRH4Y.js → claude-flow-setup-JKUJRWPN.js} +2 -2
- package/dist/cli/chunks/client-HL2COSFM.js +2 -0
- package/dist/cli/chunks/{cline-installer-DLJ5QD5N.js → cline-installer-Y77BWTAN.js} +2 -2
- package/dist/cli/chunks/{code-ONKLMVQ2.js → code-LV2HAGJY.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-2232LGZN.js → code-index-extractor-4GKKSETB.js} +2 -2
- package/dist/cli/chunks/{codex-installer-UOWLYCMH.js → codex-installer-WMKBYE5Y.js} +2 -2
- package/dist/cli/chunks/{completions-MHX7GCC7.js → completions-SBGFAOIJ.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-43ZUJKZU.js → complexity-analyzer-AQHFIJXC.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-6Q5JR4FF.js → continuedev-installer-26AYFS2E.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-CZUMVHSI.js → copilot-installer-4UD3DK55.js} +2 -2
- package/dist/cli/chunks/core-handlers-IX7ATLM6.js +2 -0
- package/dist/cli/chunks/{cost-tracker-VS5ZW3XN.js → cost-tracker-TP4NZCG4.js} +2 -2
- package/dist/cli/chunks/{coverage-VWKTWZ6D.js → coverage-B2KIXHAI.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-YYKLAPJO.js +2 -0
- package/dist/cli/chunks/{cursor-installer-YIFEMORH.js → cursor-installer-AVZEQZ4W.js} +2 -2
- package/dist/cli/chunks/daemon-P574WWBW.js +18 -0
- package/dist/cli/chunks/{daemon-SHWJSJW5.js → daemon-XM2A7LQU.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-TCC2WM46.js → dag-attention-scheduler-MIWOZ6ET.js} +2 -2
- package/dist/cli/chunks/{detect-IGTWSQMA.js → detect-TYR7HT23.js} +2 -2
- package/dist/cli/chunks/{dist-node-TCOTJVQX.js → dist-node-2DGVQGLS.js} +2 -2
- package/dist/cli/chunks/{domain-handler-55ZVYODR.js → domain-handler-RRA4ZOMF.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-GJRWOHQP.js → domain-plugins-IVZEZ5RB.js} +2 -2
- package/dist/cli/chunks/domain-transfer-DOBI67K6.js +2 -0
- package/dist/cli/chunks/dream-T6EP7B3F.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-XAMNIKQL.js → embed-and-insert-pattern-VNIEOVPO.js} +2 -2
- package/dist/cli/chunks/{eval-GO22R4OZ.js → eval-QV4LVPUF.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-F2BRMJ3Y.js → experience-capture-middleware-DAPKT763.js} +3 -3
- package/dist/cli/chunks/{fast-paths-6RGPYALD.js → fast-paths-WVRFPHX7.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ZGS3KLPH.js → feature-flags-DEFTUIYT.js} +2 -2
- package/dist/cli/chunks/{feature-flags-MIWQIOHU.js → feature-flags-O7ZXDDCD.js} +2 -2
- package/dist/cli/chunks/file-discovery-JYMVTDMU.js +2 -0
- package/dist/cli/chunks/fleet-FVAUMKUT.js +46 -0
- package/dist/cli/chunks/{gnn-wrapper-ALBJVW6T.js → gnn-wrapper-LS4LZJDR.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-ZMM53NDY.js → heartbeat-handler-RFTERD4K.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-4N5MUJ7S.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-ZPAJDSLR.js +2 -0
- package/dist/cli/chunks/hnsw-index-4CTH6RHB.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-RYUJPA7B.js → hnsw-legacy-bridge-GPKGFFHY.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-XM6XF3YV.js → hnswlib-node-PHL3F2PR.js} +2 -2
- package/dist/cli/chunks/{hooks-X62O7TJO.js → hooks-GYJ6D4QM.js} +36 -36
- package/dist/cli/chunks/hybrid-backend-AW6UTXQS.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-ZBWUPTVD.js → hypergraph-engine-YGEQPCKJ.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-DUMF6SJV.js → hypergraph-handler-ZIMM647V.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-MZK3JMSV.js +2 -0
- package/dist/cli/chunks/{init-guard-S4I2R46S.js → init-guard-VOMBXJXG.js} +2 -2
- package/dist/cli/chunks/{init-handler-L4KJHVWS.js → init-handler-PSMUBWK5.js} +26 -25
- package/dist/cli/chunks/init-wizard-FUC7KDVX.js +2 -0
- package/dist/cli/chunks/kernel-ZCPMCVMW.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-GNNB5FCZ.js → kilocode-installer-2YNTFBWJ.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-HR6ZAH7T.js → kiro-installer-XHJDPVAZ.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-NUJKEDNF.js +2 -0
- package/dist/cli/chunks/{learning-4IEEOHJS.js → learning-GNSIDRNG.js} +24 -24
- package/dist/cli/chunks/{llm-router-ZFMORP36.js → llm-router-LQDM7IU2.js} +4 -4
- package/dist/cli/chunks/llm-router-service-B2BFBQ76.js +2 -0
- package/dist/cli/chunks/{load-ZM43WGDO.js → load-YATHI72E.js} +2 -2
- package/dist/cli/chunks/load-test-ZHQ2MUGO.js +2 -0
- package/dist/cli/chunks/mcp-4Y6GDLYK.js +2 -0
- package/dist/cli/chunks/{memory-W5FZGVAD.js → memory-OUW3L7H2.js} +5 -5
- package/dist/cli/chunks/memory-backend-AAMQG6WH.js +2 -0
- package/dist/cli/chunks/memory-handlers-G3LFF53U.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-SXXGAQ2G.js → multi-model-executor-UBZJXAD2.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-PIRBUAB5.js → opencode-installer-AMMNWVH5.js} +2 -2
- package/dist/cli/chunks/{orchestrator-H5SQCQTB.js → orchestrator-Y44WDOER.js} +69 -25
- package/dist/cli/chunks/pattern-null-store-RFNVA46O.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-XZTWDI2T.js → pattern-usage-recorder-ESR42RME.js} +2 -2
- package/dist/cli/chunks/pipeline-EDTS6OSC.js +19 -0
- package/dist/cli/chunks/{platform-KJDABL5C.js → platform-5WONJSUX.js} +2 -2
- package/dist/cli/chunks/{plugin-V4KSBVVM.js → plugin-IJXPCLD4.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-JDHTKQAT.js → prime-radiant-advanced-wasm-5ECKGZK6.js} +2 -2
- package/dist/cli/chunks/project-root-7QL4KP5C.js +2 -0
- package/dist/cli/chunks/protocol-executor-2NW5BD4R.js +2 -0
- package/dist/cli/chunks/{protocol-handler-BNRONTQV.js → protocol-handler-DRD3GVNW.js} +2 -2
- package/dist/cli/chunks/{prove-ELLL6XMX.js → prove-KTGW2HMJ.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-G2JZOGKD.js +2 -0
- package/dist/cli/chunks/{quality-NH2QA4D4.js → quality-DV2WPRRS.js} +2 -2
- package/dist/cli/chunks/{quality-gate-JTKLF7GW.js → quality-gate-HFUAFVZC.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-GRG5FT2A.js +2 -0
- package/dist/cli/chunks/{real-embeddings-J3KCKLPB.js → real-embeddings-RQRVOKVM.js} +2 -2
- package/dist/cli/chunks/{ref-validation-HNXQRP4F.js → ref-validation-QWSKS5OY.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-COJ6CX6S.js → roocode-installer-RBAYRCHX.js} +2 -2
- package/dist/cli/chunks/router-LQB5SWAF.js +2 -0
- package/dist/cli/chunks/routing-feedback-OEEXA55N.js +2 -0
- package/dist/cli/chunks/{routing-handler-WM33ZILE.js → routing-handler-FMPP3XKO.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-BBLXEA7A.js → ruvector-commands-KZZT4HWF.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-BZK4M7BO.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-EZZUJL2E.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-P7H6HCAG.js → rvf-migration-coordinator-7CHEV35N.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-6COXTQZ3.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-R5SPVRFP.js → rvf-store-integrity-Q2TH52SN.js} +2 -2
- package/dist/cli/chunks/safe-db-PE6G3L55.js +2 -0
- package/dist/cli/chunks/schedule-OLKQ6QYW.js +2 -0
- package/dist/cli/chunks/scheduler-LSGBDFAT.js +2 -0
- package/dist/cli/chunks/{security-AUDTRX3I.js → security-CUEA3UIM.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-PVDGBGI2.js → shared-rvf-adapter-DROMBRV2.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-LZ2GMSS2.js → shared-rvf-dual-writer-DBNABOP7.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-HH4DNTYH.js +2 -0
- package/dist/cli/chunks/{standalone-memory-XNOAI4G4.js → standalone-memory-IAHA3M6B.js} +2 -2
- package/dist/cli/chunks/{status-handler-K72XZE4T.js → status-handler-AFUCASTX.js} +2 -2
- package/dist/cli/chunks/{structural-health-NF3YY7U5.js → structural-health-AQRV6JJ6.js} +2 -2
- package/dist/cli/chunks/{sync-VBD5Y3E2.js → sync-GX7FMJHL.js} +2 -2
- package/dist/cli/chunks/sync-XW5TLZ7M.js +2 -0
- package/dist/cli/chunks/{task-handler-24S3WFVJ.js → task-handler-TFKVUTNF.js} +2 -2
- package/dist/cli/chunks/task-handlers-SS4ZDXNF.js +9 -0
- package/dist/cli/chunks/{test-XFSGQELD.js → test-D2XDJNDX.js} +17 -17
- package/dist/cli/chunks/test-runner-process-PSSBNNGR.js +2 -0
- package/dist/cli/chunks/{test-scheduling-VYUQ4CDE.js → test-scheduling-TS6I2PR7.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-HBBLPCZ3.js +2 -0
- package/dist/cli/chunks/{token-usage-VLQ6WO2L.js → token-usage-3MBUX4PR.js} +2 -2
- package/dist/cli/chunks/{transformers-TOFMWWNM.js → transformers-ZWMQO3L2.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-TYRQRJ2W.js +2 -0
- package/dist/cli/chunks/{types-JTWLBAZJ.js → types-5YEMGPSQ.js} +2 -2
- package/dist/cli/chunks/unified-memory-AGDZQ5XD.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-X5TJ3JDE.js +2 -0
- package/dist/cli/chunks/unified-persistence-UCV7YETW.js +2 -0
- package/dist/cli/chunks/{upgrade-4ABM72T4.js → upgrade-2TPBKIHI.js} +2 -2
- package/dist/cli/chunks/{validate-UDJCWKXI.js → validate-XRAXXFW6.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-TODOUWNN.js → validate-swarm-IYSCS3BZ.js} +2 -2
- package/dist/cli/chunks/visual-security-ZLXRIQZV.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-WBMAJPM5.js → web-tree-sitter-PZQ3ZG2P.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-BTT53TUL.js → windsurf-installer-U6XWFRVT.js} +2 -2
- package/dist/cli/chunks/witness-chain-CVIWYTD2.js +2 -0
- package/dist/cli/chunks/witness-chain-VBKORKOX.js +2 -0
- package/dist/cli/chunks/witness-chain-repair-K7YX2AO6.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-FRY3LMGH.js → witness-chain-verifier-GUTC3W7N.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-X7QHQQWL.js → witness-key-manager-YBNKMOP6.js} +2 -2
- package/dist/cli/chunks/{workflow-QMZPAWQW.js → workflow-UAJUILFQ.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-3ZN7MVCE.js +2 -0
- package/dist/cli/chunks/wrappers-AVZ3GPAL.js +2 -0
- package/dist/cli/commands/fleet.js +23 -13
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +9 -2
- package/dist/cli/commands/hooks-handlers/session-hooks.js +2 -2
- package/dist/cli/commands/hooks-handlers/stats-hooks.js +3 -2
- package/dist/cli/commands/hooks-handlers/tool-loop-guardrail.js +11 -6
- package/dist/cli/commands/learning.js +5 -3
- package/dist/cli/commands/ruvector-commands.js +2 -1
- package/dist/cli/commands/test.js +11 -2
- package/dist/cli/handlers/init-handler.d.ts +12 -0
- package/dist/cli/handlers/init-handler.js +27 -12
- package/dist/cli/utils/ci-output.d.ts +11 -0
- package/dist/cli/utils/ci-output.js +2 -0
- package/dist/cli/utils/fleet-operation.d.ts +32 -0
- package/dist/cli/utils/fleet-operation.js +71 -0
- package/dist/cli/utils/fleet-result.d.ts +31 -0
- package/dist/cli/utils/fleet-result.js +124 -0
- package/dist/cli/utils/progress.d.ts +16 -2
- package/dist/cli/utils/progress.js +31 -14
- package/dist/context/sources/git-source.js +6 -2
- package/dist/coordination/consensus/consensus-engine.js +3 -1
- package/dist/coordination/handlers/code-intelligence-handlers.js +63 -7
- package/dist/coordination/handlers/coverage-collection.js +3 -1
- package/dist/coordination/handlers/coverage-handlers.js +10 -1
- package/dist/coordination/handlers/coverage-runner.d.ts +3 -8
- package/dist/coordination/handlers/coverage-runner.js +6 -22
- package/dist/coordination/handlers/coverage-stderr.d.ts +23 -0
- package/dist/coordination/handlers/coverage-stderr.js +39 -0
- package/dist/coordination/handlers/coverage-target.js +6 -3
- package/dist/coordination/handlers/handler-utils.js +3 -1
- package/dist/coordination/handlers/requirements-handlers.js +18 -3
- package/dist/coordination/handlers/security-handlers.js +45 -21
- package/dist/coordination/handlers/test-execution-handlers.js +25 -7
- package/dist/coordination/mincut/queen-integration.d.ts +39 -1
- package/dist/coordination/mincut/queen-integration.js +83 -6
- package/dist/coordination/protocols/learning-consolidation-archive.d.ts +2 -6
- package/dist/coordination/protocols/learning-consolidation-archive.js +4 -27
- package/dist/coordination/protocols/learning-consolidation.d.ts +24 -0
- package/dist/coordination/protocols/learning-consolidation.js +71 -22
- package/dist/coordination/queen-coordinator.d.ts +1 -1
- package/dist/coordination/queen-coordinator.js +27 -10
- package/dist/coordination/queen-event-handlers.js +13 -0
- package/dist/coordination/queen-task-management.d.ts +18 -24
- package/dist/coordination/queen-task-management.js +62 -168
- package/dist/coordination/queen-task-queue.d.ts +41 -0
- package/dist/coordination/queen-task-queue.js +194 -0
- package/dist/coordination/queen-types.d.ts +1 -1
- package/dist/coordination/queen-work-stealing.d.ts +6 -1
- package/dist/coordination/queen-work-stealing.js +7 -4
- package/dist/coordination/result-saver-adapters.d.ts +15 -0
- package/dist/coordination/result-saver-adapters.js +57 -0
- package/dist/coordination/result-saver.d.ts +1 -1
- package/dist/coordination/result-saver.js +8 -5
- package/dist/coordination/task-executability.d.ts +12 -0
- package/dist/coordination/task-executability.js +27 -0
- package/dist/coordination/workflow-orchestrator.d.ts +6 -0
- package/dist/coordination/workflow-orchestrator.js +22 -8
- package/dist/coordination/yaml-pipeline-loader.js +5 -2
- package/dist/domains/code-intelligence/index-path-guard.d.ts +5 -2
- package/dist/domains/code-intelligence/index-path-guard.js +20 -50
- package/dist/domains/code-intelligence/plugin.js +5 -1
- package/dist/domains/code-intelligence/services/metric-collector/index.d.ts +2 -2
- package/dist/domains/code-intelligence/services/metric-collector/index.js +2 -3
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.d.ts +1 -1
- package/dist/domains/code-intelligence/services/metric-collector/loc-counter.js +11 -36
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.d.ts +1 -1
- package/dist/domains/code-intelligence/services/metric-collector/test-counter.js +45 -103
- package/dist/domains/code-intelligence/services/product-factors-bridge.js +7 -4
- package/dist/domains/contract-testing/services/api-compatibility.js +7 -6
- package/dist/domains/contract-testing/services/contract-validator.js +6 -4
- package/dist/domains/contract-testing/services/schema-validator.js +8 -5
- package/dist/domains/coverage-analysis/services/coverage-parser.js +19 -10
- package/dist/domains/defect-intelligence/interfaces.d.ts +2 -0
- package/dist/domains/defect-intelligence/plugin.js +11 -2
- package/dist/domains/defect-intelligence/prediction-history.d.ts +27 -0
- package/dist/domains/defect-intelligence/prediction-history.js +68 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +25 -10
- package/dist/domains/enterprise-integration/services/message-broker-service.js +3 -2
- package/dist/domains/enterprise-integration/services/odata-service.js +2 -1
- package/dist/domains/enterprise-integration/services/sap-integration-service.js +3 -2
- package/dist/domains/learning-optimization/active-patterns.d.ts +2 -2
- package/dist/domains/learning-optimization/active-patterns.js +2 -2
- package/dist/domains/learning-optimization/coordinator.js +9 -5
- package/dist/domains/learning-optimization/interfaces.d.ts +8 -2
- package/dist/domains/learning-optimization/pattern-archive.d.ts +31 -0
- package/dist/domains/learning-optimization/pattern-archive.js +56 -0
- package/dist/domains/learning-optimization/pattern-consolidation.d.ts +12 -0
- package/dist/domains/learning-optimization/pattern-consolidation.js +41 -0
- package/dist/domains/learning-optimization/reward-source.d.ts +13 -0
- package/dist/domains/learning-optimization/reward-source.js +8 -1
- package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +5 -3
- package/dist/domains/learning-optimization/services/learning-coordinator.js +47 -59
- package/dist/domains/learning-optimization/services/metrics-optimizer.js +14 -4
- package/dist/domains/learning-optimization/services/production-intel.js +3 -1
- package/dist/domains/security-compliance/generic-finding-dedup.d.ts +40 -0
- package/dist/domains/security-compliance/generic-finding-dedup.js +63 -0
- package/dist/domains/security-compliance/plugin.js +17 -3
- package/dist/domains/security-compliance/sast-path-guard.d.ts +9 -0
- package/dist/domains/security-compliance/sast-path-guard.js +17 -0
- package/dist/domains/security-compliance/services/scanners/dast-auth-testing.js +46 -56
- package/dist/domains/security-compliance/services/scanners/dast-helpers.js +76 -91
- package/dist/domains/security-compliance/services/scanners/dast-injection-testing.js +52 -62
- package/dist/domains/security-compliance/services/scanners/dast-scanner.d.ts +21 -1
- package/dist/domains/security-compliance/services/scanners/dast-scanner.js +29 -24
- package/dist/domains/security-compliance/services/scanners/dependency-resolver.js +14 -6
- package/dist/domains/security-compliance/services/scanners/sast-scanner.js +4 -2
- package/dist/domains/security-compliance/services/scanners/scanner-orchestrator.js +4 -1
- package/dist/domains/security-compliance/services/security-auditor-sast.js +2 -2
- package/dist/domains/security-compliance/services/security-auditor-secrets.js +2 -2
- package/dist/domains/security-compliance/services/security-auditor.js +3 -2
- package/dist/domains/test-execution/coordinator.d.ts +6 -0
- package/dist/domains/test-execution/coordinator.js +28 -22
- package/dist/domains/test-execution/interfaces.d.ts +36 -1
- package/dist/domains/test-execution/plugin.js +19 -4
- package/dist/domains/test-execution/services/flaky-detector.js +9 -7
- package/dist/domains/test-execution/services/retry-handler.js +46 -7
- package/dist/domains/test-execution/services/retry-outcome.d.ts +18 -0
- package/dist/domains/test-execution/services/retry-outcome.js +53 -0
- package/dist/domains/test-execution/services/runner-test-cases.d.ts +11 -0
- package/dist/domains/test-execution/services/runner-test-cases.js +20 -2
- package/dist/domains/test-execution/services/test-executor.js +8 -8
- package/dist/domains/test-generation/coordinator.js +2 -2
- package/dist/domains/test-generation/plugin.js +7 -2
- package/dist/domains/test-generation/services/pattern-matcher.js +4 -4
- package/dist/domains/test-generation/services/test-data-generator.js +3 -1
- package/dist/domains/test-generation/services/test-generator.js +2 -2
- package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
- package/dist/governance/evolution-pipeline-integration.js +3 -1
- package/dist/hooks/cross-phase-hooks.js +5 -2
- package/dist/init/init-wizard-steps.js +5 -1
- package/dist/init/phases/04-database.js +7 -0
- package/dist/init/phases/10-workers.js +50 -6
- package/dist/init/phases/12-verification.js +14 -4
- package/dist/init/settings-merge.js +7 -4
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +7 -0
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +31 -2
- package/dist/integrations/agentic-flow/reasoning-bank/index.d.ts +3 -1
- package/dist/integrations/agentic-flow/reasoning-bank/index.js +5 -0
- package/dist/integrations/browser/agent-browser/client.js +37 -52
- package/dist/integrations/browser/agent-browser/command-executor.d.ts +33 -27
- package/dist/integrations/browser/agent-browser/command-executor.js +53 -54
- package/dist/integrations/browser/agent-browser/session-manager.d.ts +1 -1
- package/dist/integrations/browser/agent-browser/session-manager.js +8 -9
- package/dist/integrations/browser/web-content-fetcher.js +9 -3
- package/dist/integrations/ruvector/filter-adapter.js +2 -1
- package/dist/integrations/vibium/client.js +2 -2
- package/dist/integrations/vibium/runtime.d.ts +1 -1
- package/dist/integrations/vibium/runtime.js +14 -11
- package/dist/kernel/unified-memory-schemas.d.ts +3 -2
- package/dist/kernel/unified-memory-schemas.js +3 -2
- package/dist/kernel/unified-memory.js +25 -6
- package/dist/learning/dream/dream-commit.d.ts +65 -0
- package/dist/learning/dream/dream-commit.js +104 -0
- package/dist/learning/dream/dream-engine.d.ts +81 -31
- package/dist/learning/dream/dream-engine.js +225 -168
- package/dist/learning/dream/dream-insights-pruner.d.ts +9 -3
- package/dist/learning/dream/dream-insights-pruner.js +16 -30
- package/dist/learning/dream/index.d.ts +3 -2
- package/dist/learning/dream/index.js +3 -1
- package/dist/learning/dream/insight-generator.js +5 -4
- package/dist/learning/dream/rvcow-branch-manager.d.ts +8 -1
- package/dist/learning/dream/rvcow-branch-manager.js +8 -1
- package/dist/learning/dream/speculative-dreamer.d.ts +50 -74
- package/dist/learning/dream/speculative-dreamer.js +64 -111
- package/dist/learning/dream/spreading-activation.d.ts +2 -1
- package/dist/learning/dream/spreading-activation.js +15 -6
- package/dist/learning/experience-capture.d.ts +9 -0
- package/dist/learning/experience-capture.js +18 -4
- package/dist/learning/memory-auditor.js +3 -1
- package/dist/learning/qe-patterns.js +2 -1
- package/dist/learning/qe-reasoning-bank-types.d.ts +17 -2
- package/dist/learning/qe-reasoning-bank.js +22 -11
- package/dist/learning/real-qe-reasoning-bank.d.ts +19 -0
- package/dist/learning/real-qe-reasoning-bank.js +70 -38
- package/dist/learning/sqlite-persistence.d.ts +6 -0
- package/dist/learning/sqlite-persistence.js +16 -2
- package/dist/learning/usage-outcome.d.ts +68 -0
- package/dist/learning/usage-outcome.js +84 -0
- package/dist/mcp/background-workers.d.ts +13 -1
- package/dist/mcp/background-workers.js +17 -3
- package/dist/mcp/bundle.js +612 -580
- package/dist/mcp/handlers/core-handlers.js +11 -0
- package/dist/mcp/handlers/domain-handler-configs.d.ts +7 -0
- package/dist/mcp/handlers/domain-handler-configs.js +19 -5
- package/dist/mcp/handlers/handler-factory.d.ts +2 -1
- package/dist/mcp/handlers/handler-factory.js +36 -15
- package/dist/mcp/handlers/orchestrate-routes.d.ts +36 -0
- package/dist/mcp/handlers/orchestrate-routes.js +88 -0
- package/dist/mcp/handlers/task-handlers.d.ts +16 -0
- package/dist/mcp/handlers/task-handlers.js +77 -24
- package/dist/mcp/handlers/validation-pipeline-handler.js +14 -10
- package/dist/mcp/protocol-server.js +10 -8
- package/dist/mcp/qe-tool-bridge.js +3 -0
- package/dist/mcp/security/schema-validator.js +3 -2
- package/dist/mcp/services/reasoning-bank-service.d.ts +3 -1
- package/dist/mcp/services/reasoning-bank-service.js +4 -0
- package/dist/mcp/tool-annotations.js +4 -1
- package/dist/mcp/tools/code-intelligence/c4.js +11 -1
- package/dist/mcp/tools/coherence/check.js +1 -0
- package/dist/mcp/tools/coherence/consensus.js +4 -2
- package/dist/mcp/tools/coverage-analysis/index.js +31 -2
- package/dist/mcp/tools/learning-optimization/dream.d.ts +8 -8
- package/dist/mcp/tools/learning-optimization/dream.js +38 -34
- package/dist/mcp/tools/learning-optimization/optimize.d.ts +18 -2
- package/dist/mcp/tools/learning-optimization/optimize.js +59 -12
- package/dist/mcp/tools/mincut/index.js +3 -0
- package/dist/mcp/tools/quality-assessment/gate.js +19 -1
- package/dist/mcp/tools/qx-analysis/analyze.js +1 -0
- package/dist/mcp/tools/requirements-validation/quality-criteria.js +17 -3
- package/dist/mcp/tools/security-compliance/scan.js +4 -2
- package/dist/mcp/tools/test-execution/e2e-execute.js +2 -2
- package/dist/mcp/tools/test-execution/execute.js +3 -2
- package/dist/memory/crdt/crdt-store.js +5 -0
- package/dist/memory/crdt/lww-register.js +12 -2
- package/dist/migration/agent-compat.js +7 -5
- package/dist/migrations/20261018_add_dream_insights_archive.d.ts +27 -0
- package/dist/migrations/20261018_add_dream_insights_archive.js +57 -0
- package/dist/optimization/early-exit-token-optimizer.js +3 -1
- package/dist/planning/goap-planner.js +5 -0
- package/dist/planning/plan-executor.js +5 -0
- package/dist/shared/git/git-analyzer.d.ts +49 -0
- package/dist/shared/git/git-analyzer.js +159 -319
- package/dist/shared/git/git-process.d.ts +22 -0
- package/dist/shared/git/git-process.js +37 -0
- package/dist/shared/git/index.d.ts +1 -0
- package/dist/shared/git/index.js +1 -0
- package/dist/shared/io/confined-read.d.ts +74 -0
- package/dist/shared/io/confined-read.js +256 -0
- package/dist/shared/io/file-reader.d.ts +6 -6
- package/dist/shared/io/file-reader.js +16 -42
- package/dist/shared/io/payload-path-guard.d.ts +75 -0
- package/dist/shared/io/payload-path-guard.js +190 -0
- package/dist/shared/llm/providers/claude-code.js +4 -1
- package/dist/shared/llm/router/agent-router-config.js +2 -1
- package/dist/shared/llm/translation/tool-translator.js +2 -1
- package/dist/shared/native-module-errors.d.ts +51 -0
- package/dist/shared/native-module-errors.js +129 -0
- package/dist/shared/safe-db.js +14 -4
- package/dist/shared/security/osv-client.js +4 -1
- package/dist/shared/test-runner-args.d.ts +5 -0
- package/dist/shared/test-runner-args.js +6 -1
- package/dist/shared/test-runner-process.d.ts +6 -0
- package/dist/shared/test-runner-process.js +14 -0
- package/dist/shared/test-runner-verdict.d.ts +9 -1
- package/dist/shared/test-runner-verdict.js +15 -4
- package/dist/shared/types/test-frameworks.js +2 -2
- package/dist/shared/utils/namespaced-search.d.ts +14 -0
- package/dist/shared/utils/namespaced-search.js +19 -1
- package/dist/shared/utils/safe-expression-evaluator.js +4 -3
- package/dist/strange-loop/infra-healing/recovery-playbook.js +13 -3
- package/dist/sync/readers/json-reader.js +2 -1
- package/dist/validation/anchor-set.d.ts +6 -0
- package/dist/validation/anchor-set.js +9 -1
- package/dist/validation/gate-reexecute.js +7 -4
- package/dist/validation/quality-gate-runner.d.ts +7 -1
- package/dist/validation/quality-gate-runner.js +3 -3
- package/dist/workers/daemon.js +13 -1
- package/dist/workers/quality-daemon/git-watcher.js +9 -9
- package/dist/workers/workers/defect-predictor.d.ts +8 -3
- package/dist/workers/workers/defect-predictor.js +48 -49
- package/dist/workers/workers/learning-consolidation.d.ts +2 -0
- package/dist/workers/workers/learning-consolidation.js +12 -1
- package/dist/workflows/browser/workflow-loader.js +8 -5
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-R2Q4QGXQ.js +0 -2
- package/dist/cli/chunks/agent-booster-wasm-427FRKWG.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-3RENLQWP.js +0 -2
- package/dist/cli/chunks/base-67DXSAYM.js +0 -2
- package/dist/cli/chunks/browser-CT3MTV6G.js +0 -4
- package/dist/cli/chunks/browser-workflow-NDXRROWZ.js +0 -2
- package/dist/cli/chunks/chunk-2XITOPYV.js +0 -6
- package/dist/cli/chunks/chunk-4URT6JO2.js +0 -2
- package/dist/cli/chunks/chunk-5LAAZLUC.js +0 -4
- package/dist/cli/chunks/chunk-6PXA2BQJ.js +0 -742
- package/dist/cli/chunks/chunk-6YL6JOQB.js +0 -4
- package/dist/cli/chunks/chunk-7DMA5NYL.js +0 -4
- package/dist/cli/chunks/chunk-AR2E4B7K.js +0 -6
- package/dist/cli/chunks/chunk-F2SQPP6U.js +0 -4
- package/dist/cli/chunks/chunk-FJ4VTLLK.js +0 -2
- package/dist/cli/chunks/chunk-FV3NHVC7.js +0 -59
- package/dist/cli/chunks/chunk-G3BKZNFL.js +0 -120
- package/dist/cli/chunks/chunk-GR3JYE5A.js +0 -2
- package/dist/cli/chunks/chunk-J3WGK22W.js +0 -2
- package/dist/cli/chunks/chunk-JEP4ULR6.js +0 -21
- package/dist/cli/chunks/chunk-JK2ME6IT.js +0 -2
- package/dist/cli/chunks/chunk-KHSRIPBP.js +0 -180
- package/dist/cli/chunks/chunk-KTSLTZSG.js +0 -2
- package/dist/cli/chunks/chunk-N5PDFGCQ.js +0 -180
- package/dist/cli/chunks/chunk-O3JLOVZX.js +0 -4
- package/dist/cli/chunks/chunk-P2CXVNKK.js +0 -4
- package/dist/cli/chunks/chunk-THAY7WHO.js +0 -12
- package/dist/cli/chunks/chunk-VU2EL424.js +0 -14
- package/dist/cli/chunks/chunk-VXZJOKOX.js +0 -2
- package/dist/cli/chunks/chunk-VYLM2YV5.js +0 -12
- package/dist/cli/chunks/chunk-XZJ2O3VC.js +0 -2
- package/dist/cli/chunks/client-ZP3CTVRF.js +0 -2
- package/dist/cli/chunks/core-handlers-JSRXQWPE.js +0 -2
- package/dist/cli/chunks/cross-domain-router-7UKODQWG.js +0 -2
- package/dist/cli/chunks/daemon-YIFT46FH.js +0 -34
- package/dist/cli/chunks/domain-transfer-6EF75EKU.js +0 -2
- package/dist/cli/chunks/dream-UDLM6M55.js +0 -2
- package/dist/cli/chunks/file-discovery-THWOUQ7Z.js +0 -2
- package/dist/cli/chunks/fleet-ADL57COA.js +0 -44
- package/dist/cli/chunks/heartbeat-scheduler-HGOC5KH3.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-EPSA6AP7.js +0 -2
- package/dist/cli/chunks/hnsw-index-RMFOPYGY.js +0 -2
- package/dist/cli/chunks/hybrid-backend-NZ3G4WBX.js +0 -2
- package/dist/cli/chunks/impact-analyzer-WZC6NHFP.js +0 -2
- package/dist/cli/chunks/init-wizard-422UZYQ5.js +0 -2
- package/dist/cli/chunks/kernel-N7PJ6FCE.js +0 -2
- package/dist/cli/chunks/knowledge-graph-SZCVQF37.js +0 -2
- package/dist/cli/chunks/llm-router-service-4DE5WDUZ.js +0 -2
- package/dist/cli/chunks/load-test-POMIF4Q4.js +0 -2
- package/dist/cli/chunks/mcp-CRZKZE37.js +0 -2
- package/dist/cli/chunks/memory-backend-4P6AHSOY.js +0 -2
- package/dist/cli/chunks/memory-handlers-NK6NV3GE.js +0 -2
- package/dist/cli/chunks/pattern-null-store-CCHQHGQG.js +0 -2
- package/dist/cli/chunks/pipeline-5LMLBIJ7.js +0 -19
- package/dist/cli/chunks/project-root-X72FSM2F.js +0 -2
- package/dist/cli/chunks/protocol-executor-QW6XN6QN.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-ZD3WF647.js +0 -2
- package/dist/cli/chunks/queen-coordinator-S4U4MKK2.js +0 -2
- package/dist/cli/chunks/router-CXZKOOTR.js +0 -2
- package/dist/cli/chunks/routing-feedback-IYFANYY5.js +0 -2
- package/dist/cli/chunks/rvf-dual-writer-HCLQ5WUQ.js +0 -2
- package/dist/cli/chunks/rvf-migration-adapter-XCLUWOO3.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-MRT5H3IP.js +0 -2
- package/dist/cli/chunks/safe-db-WFODRGVZ.js +0 -2
- package/dist/cli/chunks/schedule-RO55OQXG.js +0 -2
- package/dist/cli/chunks/scheduler-XXMJCH24.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-AWRIS4MK.js +0 -2
- package/dist/cli/chunks/sync-UVXA6CT2.js +0 -2
- package/dist/cli/chunks/task-handlers-GUYW2EPJ.js +0 -9
- package/dist/cli/chunks/token-bootstrap-EDK6FNQ3.js +0 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-MI3NZKUD.js +0 -2
- package/dist/cli/chunks/unified-memory-6JWHV6EF.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-4UANU6NU.js +0 -2
- package/dist/cli/chunks/unified-persistence-KGGNA46H.js +0 -2
- package/dist/cli/chunks/visual-security-6VZNQLH7.js +0 -2
- package/dist/cli/chunks/witness-chain-AKKHWEWU.js +0 -2
- package/dist/cli/chunks/witness-chain-TATPXQRK.js +0 -2
- package/dist/cli/chunks/witness-chain-repair-2HGJGE7O.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-4GAW7HNZ.js +0 -2
- package/dist/cli/chunks/wrappers-ZD5NBHYI.js +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,371 @@ All notable changes to the Agentic QE project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.15.11] - 2026-10-22
|
|
9
|
+
|
|
10
|
+
AQE now works on npm 12 and on a plain install without the optional
|
|
11
|
+
embedding package, and its MCP tools load in VS Code Copilot. When the
|
|
12
|
+
database cannot start, `aqe init` prints the real cause and the command that
|
|
13
|
+
fixes it. `aqe fleet run` progress output is readable, a test that passes on
|
|
14
|
+
retry counts as passed and flaky, and an `eval()` is no longer reported twice.
|
|
15
|
+
Four security fixes close the follow-ups from the 3.15.10 review: a checked
|
|
16
|
+
file is read from exactly what was checked, runner stderr is redacted before
|
|
17
|
+
it is cut, and names like `constructor` or `__proto__` are plain names in
|
|
18
|
+
every data lookup.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **`aqe init` explains a missing database driver** ([#1173], [#1175]): on
|
|
23
|
+
npm 12, `npm install -g agentic-qe` blocks the install script of
|
|
24
|
+
`better-sqlite3`, so its native binary is never built. `aqe init` then
|
|
25
|
+
failed at "Initialize persistence database" with no error printed. Now
|
|
26
|
+
`init` prints the real error, and every command that opens the database
|
|
27
|
+
(`init`, `health`, `status`, `memory`, MCP fleet init) names the cause and
|
|
28
|
+
prints the exact fix:
|
|
29
|
+
`npm install -g agentic-qe --allow-scripts=agentic-qe,better-sqlite3,hnswlib-node`.
|
|
30
|
+
The README and getting-started guide include the npm 12 install note.
|
|
31
|
+
- **MCP tools load in VS Code Copilot** ([#1185], [#1193]): Copilot refused
|
|
32
|
+
`fleet_init` and 17 other tools with "tool parameters array type must have
|
|
33
|
+
items". Every list parameter in every tool schema now declares what its
|
|
34
|
+
elements are, including the `qe/*` domain tools, whose element types were
|
|
35
|
+
dropped when they were published.
|
|
36
|
+
- **`task_orchestrate` and `aqe eval` work without an embedder** ([#1022],
|
|
37
|
+
[#1181]): on a plain install without `@huggingface/transformers`,
|
|
38
|
+
`task_orchestrate` always failed with "Transformer initialization
|
|
39
|
+
previously failed" and `aqe eval` failed to load. Both now work. Pattern
|
|
40
|
+
learning stores patterns without a vector and searches them by text; its
|
|
41
|
+
response says so in a new `learning` field (`patternSearch: "vector"`,
|
|
42
|
+
`"lexical-only"` with the reason, or `"unavailable"`). Text matches report
|
|
43
|
+
`similarity: 0` because no similarity was measured. Experience guidance is
|
|
44
|
+
not produced without an embedding of the task, instead of guidance for an
|
|
45
|
+
unrelated task with a made-up similarity.
|
|
46
|
+
- **`aqe fleet run` progress output** ([#1168], [#1177]): the progress header
|
|
47
|
+
shows `Fleet Progress` instead of a literal `{name}` and a stray `0`. When
|
|
48
|
+
the verdict is FAILED, the completion line no longer says "successfully".
|
|
49
|
+
- **A test that passes on retry counts as passed and flaky** ([#1170],
|
|
50
|
+
[#1177]): MCP `test_execute_parallel` and `aqe test execute` (text, JSON and
|
|
51
|
+
markdown) now count it as passed, report it as flaky, and agree with
|
|
52
|
+
`retryStats`. MCP and the CLI share one default retry count, 2 (MCP used 3).
|
|
53
|
+
- **`sast-scan` runs without naming a domain** ([#1170], [#1177]):
|
|
54
|
+
`task_submit` and `aqe task submit` route it to `security-compliance`. A
|
|
55
|
+
task type no loaded domain handles is still rejected, with an error that
|
|
56
|
+
says so.
|
|
57
|
+
- **One `eval()` is reported once** ([#1170], [#1177], [#1184]):
|
|
58
|
+
`security_scan_comprehensive` dropped a duplicate generic eval/exec finding
|
|
59
|
+
only when SAST reported eval injection (CWE-95) on the same file and line,
|
|
60
|
+
at the same or a higher severity, and the line has no `exec()`. Secret, CORS
|
|
61
|
+
and debug findings are always kept. The generic rule reports every matching
|
|
62
|
+
line, and its findings name the scanned path.
|
|
63
|
+
- **Learning recommendations stay in their domain and objective** ([#1091],
|
|
64
|
+
thanks @rudycelekli): a strategy tuned to maximize coverage can no longer
|
|
65
|
+
be recommended for minimizing latency or for another domain.
|
|
66
|
+
- **CRDT sync rejects non-finite timestamps** ([#1087], thanks
|
|
67
|
+
@rudycelekli): a remote register with a `NaN` or infinite timestamp is
|
|
68
|
+
skipped at merge instead of winning every later comparison; valid
|
|
69
|
+
registers, including cleared ones, keep converging.
|
|
70
|
+
|
|
71
|
+
### Security
|
|
72
|
+
|
|
73
|
+
- **A checked file is read from exactly what was checked** ([#1161],
|
|
74
|
+
[#1179]): the path guard checked a path, and the handler opened it again
|
|
75
|
+
later by name, so a file or symlink swapped in between was read
|
|
76
|
+
unchecked. Fixed-name files inside an accepted folder (coverage reports,
|
|
77
|
+
`package.json`, dependency manifests) were not checked at all, so a
|
|
78
|
+
committed symlink could pull an outside file into results or point a
|
|
79
|
+
coverage report at `/dev/zero`. One shared reader now opens the file once
|
|
80
|
+
without following a final symlink, checks the open file (regular, within the
|
|
81
|
+
size limit, inside the project) and reads from it. Code index, SAST,
|
|
82
|
+
security scans, contract and requirements validation, test generation, C4
|
|
83
|
+
and every coverage report parser use it.
|
|
84
|
+
- **Test runner stderr is redacted before it is cut** ([#1150], [#1180]):
|
|
85
|
+
when coverage tests crashed without a report, `coverage_analyze_sublinear`
|
|
86
|
+
quoted the runner's raw stderr, and a secret cut at the 2 KB boundary left a
|
|
87
|
+
fragment no redaction pattern recognizes. Stderr is now redacted first, then
|
|
88
|
+
cut. Claim-verifier command evidence and the claude-code provider's parse
|
|
89
|
+
error are redacted the same way.
|
|
90
|
+
- **`constructor`, `__proto__` and other built-in names are plain names**
|
|
91
|
+
([#1157], [#1182]): names from callers, files or stored data matched
|
|
92
|
+
built-in JavaScript members. A pipeline condition on `input.constructor`
|
|
93
|
+
ran a step that should be skipped, a dependency named `constructor` crashed
|
|
94
|
+
`qe/code/c4` and hid real findings, an agent-overlay `__proto__:` section
|
|
95
|
+
wrote onto every object, and a tool named `constructor` could claim to be
|
|
96
|
+
read-only. Every such lookup now reads own entries only.
|
|
97
|
+
|
|
98
|
+
### Changed
|
|
99
|
+
|
|
100
|
+
- `vite` (dev dependency) 8.3.0 → 8.3.4 ([#1172]).
|
|
101
|
+
|
|
102
|
+
[#1022]: https://github.com/proffesor-for-testing/agentic-qe/issues/1022
|
|
103
|
+
[#1087]: https://github.com/proffesor-for-testing/agentic-qe/pull/1087
|
|
104
|
+
[#1091]: https://github.com/proffesor-for-testing/agentic-qe/pull/1091
|
|
105
|
+
[#1150]: https://github.com/proffesor-for-testing/agentic-qe/issues/1150
|
|
106
|
+
[#1157]: https://github.com/proffesor-for-testing/agentic-qe/issues/1157
|
|
107
|
+
[#1161]: https://github.com/proffesor-for-testing/agentic-qe/issues/1161
|
|
108
|
+
[#1168]: https://github.com/proffesor-for-testing/agentic-qe/issues/1168
|
|
109
|
+
[#1170]: https://github.com/proffesor-for-testing/agentic-qe/issues/1170
|
|
110
|
+
[#1172]: https://github.com/proffesor-for-testing/agentic-qe/pull/1172
|
|
111
|
+
[#1173]: https://github.com/proffesor-for-testing/agentic-qe/issues/1173
|
|
112
|
+
[#1175]: https://github.com/proffesor-for-testing/agentic-qe/pull/1175
|
|
113
|
+
[#1177]: https://github.com/proffesor-for-testing/agentic-qe/pull/1177
|
|
114
|
+
[#1179]: https://github.com/proffesor-for-testing/agentic-qe/pull/1179
|
|
115
|
+
[#1180]: https://github.com/proffesor-for-testing/agentic-qe/pull/1180
|
|
116
|
+
[#1181]: https://github.com/proffesor-for-testing/agentic-qe/pull/1181
|
|
117
|
+
[#1182]: https://github.com/proffesor-for-testing/agentic-qe/pull/1182
|
|
118
|
+
[#1184]: https://github.com/proffesor-for-testing/agentic-qe/pull/1184
|
|
119
|
+
[#1185]: https://github.com/proffesor-for-testing/agentic-qe/issues/1185
|
|
120
|
+
[#1193]: https://github.com/proffesor-for-testing/agentic-qe/pull/1193
|
|
121
|
+
|
|
122
|
+
## [3.15.10] - 2026-10-19
|
|
123
|
+
|
|
124
|
+
Files named in a request are now read only when they are inside your
|
|
125
|
+
project, and secrets in test failures are redacted everywhere AQE returns
|
|
126
|
+
or stores them. Advertised `aqe fleet run` and `task_orchestrate` commands
|
|
127
|
+
run real handlers and judge what they returned. A dream can no longer lose
|
|
128
|
+
an acknowledged memory write, git and other slow tools no longer freeze
|
|
129
|
+
the MCP server, and the learning success rate counts measured outcomes
|
|
130
|
+
only. Every change was reviewed adversarially before merge.
|
|
131
|
+
|
|
132
|
+
### Security
|
|
133
|
+
|
|
134
|
+
- **Paths in a request are read only inside the project** ([#1126],
|
|
135
|
+
[#1162], [#1125], [#1144]): before, a caller could ask AQE over MCP to
|
|
136
|
+
read any file on the machine, and one request for `/dev/zero` crashed the
|
|
137
|
+
server. Every handler that reads a file or folder named in a request
|
|
138
|
+
(`generate-tests`, `execute-tests`, `predict-defects`, `sast-scan`,
|
|
139
|
+
`security_scan_comprehensive`, `coverage_analyze_sublinear`,
|
|
140
|
+
`code_index`, `contract_validate` and others) now applies one shared
|
|
141
|
+
check, on every entry point: MCP tools, `task_submit`,
|
|
142
|
+
`task_orchestrate` and `aqe task submit`.
|
|
143
|
+
- The real location, with every symlink followed, must be inside the
|
|
144
|
+
project root. A symlink that points out, and `src/link/../x` when
|
|
145
|
+
`src/link` points out, are refused.
|
|
146
|
+
- Only regular files are read, at most 2 MB each where a file is read
|
|
147
|
+
whole. Devices, FIFOs and (except where a folder is expected)
|
|
148
|
+
directories are refused before anything is opened.
|
|
149
|
+
- A path outside the project is refused without touching the
|
|
150
|
+
filesystem, so the error does not reveal whether the file exists.
|
|
151
|
+
- The refusal is a caller error: it is not retried and does not trip the
|
|
152
|
+
domain circuit breaker.
|
|
153
|
+
- **Secrets in test failures are redacted** ([#1122], [#1139]): a
|
|
154
|
+
connection string, AWS key or bearer token in a failing test's message
|
|
155
|
+
used to come back verbatim from `test_execute_parallel` and
|
|
156
|
+
`aqe test execute`, and was saved under `.agentic-qe/results/`, in
|
|
157
|
+
session logs and in `memory.db` (test runs, experiences, retry and flaky
|
|
158
|
+
history). All of these copies are now redacted, before any length cap,
|
|
159
|
+
so a secret cut in half cannot survive. The `error` of every MCP domain
|
|
160
|
+
tool is redacted as a backstop.
|
|
161
|
+
- **Lookups keyed by caller data read own properties only** ([#1136],
|
|
162
|
+
[#1156], [#1118], [#1132]):
|
|
163
|
+
- `${constructor}` or `{{toString}}` in a pipeline YAML, browser
|
|
164
|
+
workflow, workflow condition or cross-phase hook no longer expands to
|
|
165
|
+
native function source. It stays literal.
|
|
166
|
+
- JSON Pointer and JSON Patch paths such as `/__proto__/x` in the A2UI
|
|
167
|
+
and AG-UI adapters can no longer write to `Object.prototype`.
|
|
168
|
+
- Required-property checks in contract, enterprise-integration and MCP
|
|
169
|
+
schema validation no longer count an inherited `constructor` as
|
|
170
|
+
present.
|
|
171
|
+
- Name tables (agent names, gate rules, routing categories,
|
|
172
|
+
`aqe ruvector flags --profile`, faker paths and recovery playbook
|
|
173
|
+
services) no longer match inherited members. Thanks to @rudycelekli
|
|
174
|
+
for the recovery playbook fix.
|
|
175
|
+
- **DAST scans fail when the target cannot be reached** ([#1092]): an
|
|
176
|
+
initial 401/403 now fails with `DAST_AUTHENTICATION_FAILED` and a 5xx
|
|
177
|
+
with `DAST_TARGET_UNAVAILABLE`. Before, an unreachable target could
|
|
178
|
+
produce a completed scan. Failed follow-up probes fail the scan, and a
|
|
179
|
+
failed scan is not stored as completed. Thanks to @rudycelekli.
|
|
180
|
+
|
|
181
|
+
### Fixed
|
|
182
|
+
|
|
183
|
+
- **Dreams no longer put memory writes at risk** ([#1060], [#1160]): a
|
|
184
|
+
dream does its work in memory and writes its results in one short
|
|
185
|
+
transaction at the end. An acknowledged `memory_store` made during a
|
|
186
|
+
dream is kept however the dream ends: it finishes, is cancelled, the
|
|
187
|
+
engine closes, stdin closes or the process is killed. `cancelDream()`,
|
|
188
|
+
`close()` and shutdown stop a dream at once and record it `interrupted`.
|
|
189
|
+
A second dream request while one runs is refused instead of interrupting
|
|
190
|
+
it. A cycle left `running` by a dead process is marked `interrupted`
|
|
191
|
+
(never deleted) after 11 minutes. Thanks to @pacphi for the report and
|
|
192
|
+
reproduction in [#1060].
|
|
193
|
+
- **Slow child processes no longer freeze the MCP server** ([#1115],
|
|
194
|
+
[#1148]): git (defect prediction, task routing, the quality daemon's
|
|
195
|
+
watcher), `cloc`/`tokei` and test-runner listings for `code_index`, and
|
|
196
|
+
`npx agent-browser` for the browser tools now run asynchronously with
|
|
197
|
+
timeouts. A timeout stops the child's whole process group, so nothing is
|
|
198
|
+
left running. With a git that took 1 s per call, `fleet_status` used to
|
|
199
|
+
wait up to 12 s; now it answers in well under a second.
|
|
200
|
+
- **Learning's success rate counts measured outcomes only** ([#1129],
|
|
201
|
+
[#1121], [#1142]): `aqe learning stats` said 100% after test runs with a
|
|
202
|
+
failing test. Now only a test run is a measured outcome (it passes when
|
|
203
|
+
every test passed, and both results are recorded), and the rate counts
|
|
204
|
+
runs, not rows. Completed calls, errors, hook-reported `--success` and
|
|
205
|
+
session-consolidation aggregates count as uses, not verdicts. Existing
|
|
206
|
+
rows are classified on read; nothing is deleted or rewritten. The
|
|
207
|
+
learning dashboard no longer shows an invented `0.5` learning rate or a
|
|
208
|
+
`100%` transfer rate, and patterns stored before 3.15.9 are kept but left
|
|
209
|
+
out of stats.
|
|
210
|
+
- **Learning consolidation cannot lose patterns** ([#1106], [#1143]): a
|
|
211
|
+
merge now reads back every archived source and the merged pattern before
|
|
212
|
+
removing the sources. If any step fails, nothing is merged. A failed
|
|
213
|
+
domain or merge is reported as `status: 'partial'` with an `errors` list
|
|
214
|
+
instead of success. A dry run now predicts the same trims as a real run,
|
|
215
|
+
and a key scan that never ends stops with an error.
|
|
216
|
+
- **Advertised commands run real handlers** ([#1125], [#1144]):
|
|
217
|
+
`aqe fleet run scan` runs a SAST scan on the target's JS/TS files,
|
|
218
|
+
`analyze` uses the coverage report that already exists for the target,
|
|
219
|
+
and `test` generates tests for the target's sources. `task_orchestrate`
|
|
220
|
+
routes `scan-security` to `sast-scan` and `assess-quality` to
|
|
221
|
+
`analyze-quality` when you pass `filePaths`. Requests that lack the
|
|
222
|
+
input a handler needs are refused with the tool to use instead; nothing
|
|
223
|
+
is estimated. `task_submit` with `sast-scan` now accepts plain path
|
|
224
|
+
strings.
|
|
225
|
+
- **Index tasks run, or are refused up front** ([#1086], [#1134],
|
|
226
|
+
[#1159]): an inferred `index-code` task now runs the code-intelligence
|
|
227
|
+
handler with the paths it was given. Thanks to @rudycelekli.
|
|
228
|
+
- **Queen slots are always handed on** ([#1127], [#1138], [#1140],
|
|
229
|
+
[#1152]): a slot freed while the queue drains goes to the next queued
|
|
230
|
+
task. Work stealing moves a task only to a domain that can run it and
|
|
231
|
+
never exceeds `maxConcurrentTasks`. A failure at dispatch publishes
|
|
232
|
+
`QueenTaskFailed` once and frees its slot once; a plugin that throws no
|
|
233
|
+
longer leaves its task `running`.
|
|
234
|
+
- **Retries rerun tests inside `describe` blocks** ([#1141], [#1151]): the
|
|
235
|
+
retry filter only ever matched top-level tests. It now matches the full
|
|
236
|
+
name for Vitest, Jest and Mocha. A retry that selects no test is
|
|
237
|
+
reported as `unmatched` instead of counting as an attempt.
|
|
238
|
+
- **Retry results are reported** ([#1130], [#1163]):
|
|
239
|
+
`test_execute_parallel` returns `retryStats` (retries run, now passing,
|
|
240
|
+
still failing, per test) and `aqe test execute` prints a `Retries:` line.
|
|
241
|
+
- **`fleet_status` stays healthy during a test run** ([#1130], [#1163]):
|
|
242
|
+
the agent spawned for one task no longer marks the fleet `degraded`
|
|
243
|
+
while it runs or after it finishes. Real topology problems and failed
|
|
244
|
+
agents still degrade the status. `fleet_health({ detailed: true })`
|
|
245
|
+
shows the raw MinCut reading.
|
|
246
|
+
- **Chaos wording is not run as tests** ([#1130], [#1163]): "Run chaos
|
|
247
|
+
resilience testing with fault injection" now gets chaos guidance from
|
|
248
|
+
`task_orchestrate` instead of being submitted as `execute-tests`.
|
|
249
|
+
- **Dream archive and worker status are reported truthfully** ([#1116],
|
|
250
|
+
[#1155]): a stale insight with a NULL id no longer makes every retention
|
|
251
|
+
sweep fail. The generated `start-daemon.cjs` honours
|
|
252
|
+
`AQE_WORKERS_ENABLED` (environment or Claude settings files) and says
|
|
253
|
+
"started" only when the server is still running. MCP startup reports
|
|
254
|
+
workers as `starting` until they have started.
|
|
255
|
+
- **Concurrent startups no longer fail with "database is locked" during a
|
|
256
|
+
schema migration** ([#1116], [#1155]): a migration takes the write lock
|
|
257
|
+
up front and waits for it.
|
|
258
|
+
- **Defect predictions reach the background worker** ([#1088]): public
|
|
259
|
+
predictions are recorded in the shape the worker reads, history is
|
|
260
|
+
bounded to the newest 32 runs, and the newest result is no longer hidden
|
|
261
|
+
behind an old scan cap. Static scores are labelled as estimates. Thanks
|
|
262
|
+
to @rudycelekli.
|
|
263
|
+
|
|
264
|
+
### Changed
|
|
265
|
+
|
|
266
|
+
- **`task_orchestrate` and fleet responses:** `type` is now the handler
|
|
267
|
+
type that actually ran (for example `sast-scan`). The type inferred from
|
|
268
|
+
the description moves to the new field `inferredType`. Clients that read
|
|
269
|
+
`type` as the inferred type should read `inferredType`.
|
|
270
|
+
- **`aqe fleet run` shows results and a verdict.** It prints the findings,
|
|
271
|
+
coverage or generated tests, and exits 1 with `Verdict: FAILED (…)` on a
|
|
272
|
+
critical or high finding, incomplete scan evidence, a failed quality
|
|
273
|
+
gate, coverage below 80% or an unreadable result. The count line now
|
|
274
|
+
says `Completed: N` instead of `Successful: N`.
|
|
275
|
+
- **Payload paths are confined to the project root.** After `aqe init` in
|
|
276
|
+
a monorepo package, a sibling package such as `../b/tests/x.test.ts` is
|
|
277
|
+
refused. Set `AQE_PROJECT_ROOT=<repo root>` to let packages reach each
|
|
278
|
+
other.
|
|
279
|
+
- **Interpolation no longer resolves inherited values.** `${constructor}`,
|
|
280
|
+
`${toString}` and similar placeholders stay literal unless you define
|
|
281
|
+
them.
|
|
282
|
+
- **`enableBranching` is a deprecated no-op.** The option is still
|
|
283
|
+
accepted and logs a warning. `RVCOWBranchManager` is deprecated.
|
|
284
|
+
- **Index tasks without `paths` are refused at submit.** `task_submit` and
|
|
285
|
+
`aqe task submit` with `index` or `index-code` need a non-empty `paths`
|
|
286
|
+
list, and `task_orchestrate` needs `filePaths`. Use `code_index` or
|
|
287
|
+
`aqe code index` to index a directory.
|
|
288
|
+
- **`task_orchestrate` refuses `optimize-learning` from free text**,
|
|
289
|
+
because it overwrites the stored learned strategies. Use `task_submit`
|
|
290
|
+
with type `optimize-strategies`. `run-chaos`, `validate-contracts`,
|
|
291
|
+
`validate-requirements` and `test-accessibility` are refused with the
|
|
292
|
+
tool to use instead.
|
|
293
|
+
- **Schema v14.** The `dream_insights_archive` table moves into the
|
|
294
|
+
versioned schema with an additive, idempotent migration. 3.15.8 and
|
|
295
|
+
3.15.9 still open a migrated database.
|
|
296
|
+
- **Learning success rates count measured outcomes only.** Projects that
|
|
297
|
+
only have hook-reported outcomes now show "insufficient evidence"
|
|
298
|
+
instead of 100%. `aqe learning stats --json` reports `measuredOutcomes`
|
|
299
|
+
and `unmeasuredOutcomes`, and `patternSuccessRate` can be `null`.
|
|
300
|
+
- **Git timeouts are reported as unavailable, never as 0.** A prediction
|
|
301
|
+
whose git history timed out carries a `warnings` entry, and its metrics
|
|
302
|
+
are not cached.
|
|
303
|
+
|
|
304
|
+
### Known issues
|
|
305
|
+
|
|
306
|
+
- `task_orchestrate` still fails on an install without an embedder (the
|
|
307
|
+
optional `@huggingface/transformers` package or `AQE_EMBEDDER_ENDPOINT`),
|
|
308
|
+
so its new routing is only reachable with one configured ([#1022]).
|
|
309
|
+
- Payload path checks and the read that follows are not atomic, so a path
|
|
310
|
+
swapped between them is not caught yet ([#1161]).
|
|
311
|
+
- Some direct `map[userKey]` lookups on plain objects remain to be audited
|
|
312
|
+
([#1157]).
|
|
313
|
+
- `aqe fleet run analyze` and `aqe coverage` can pass from a report that
|
|
314
|
+
covers only part of the target ([#1154]).
|
|
315
|
+
- The daemon spawned by `start-daemon.cjs` exits on stdin EOF, so it never
|
|
316
|
+
stays up; it now says so instead of reporting "started" ([#1158]).
|
|
317
|
+
- A rare "database is locked" on concurrent first open of a non-WAL
|
|
318
|
+
database ([#1164]).
|
|
319
|
+
- Git timeout follow-ups: per-path deadlines and the watcher baseline
|
|
320
|
+
([#1165]).
|
|
321
|
+
- Queen follow-ups: a late `onComplete` can settle twice, and work stealing
|
|
322
|
+
rarely runs under the slot cap ([#1153]).
|
|
323
|
+
- Learning outcome follow-ups: failures can still mint patterns, and
|
|
324
|
+
routing still uses completion-based success ([#1147]).
|
|
325
|
+
- Pattern consolidation follow-ups: id-only read-back and no
|
|
326
|
+
compare-and-delete ([#1149]).
|
|
327
|
+
|
|
328
|
+
[#1022]: https://github.com/proffesor-for-testing/agentic-qe/issues/1022
|
|
329
|
+
[#1060]: https://github.com/proffesor-for-testing/agentic-qe/issues/1060
|
|
330
|
+
[#1086]: https://github.com/proffesor-for-testing/agentic-qe/pull/1086
|
|
331
|
+
[#1088]: https://github.com/proffesor-for-testing/agentic-qe/pull/1088
|
|
332
|
+
[#1092]: https://github.com/proffesor-for-testing/agentic-qe/pull/1092
|
|
333
|
+
[#1106]: https://github.com/proffesor-for-testing/agentic-qe/issues/1106
|
|
334
|
+
[#1115]: https://github.com/proffesor-for-testing/agentic-qe/issues/1115
|
|
335
|
+
[#1116]: https://github.com/proffesor-for-testing/agentic-qe/issues/1116
|
|
336
|
+
[#1118]: https://github.com/proffesor-for-testing/agentic-qe/issues/1118
|
|
337
|
+
[#1121]: https://github.com/proffesor-for-testing/agentic-qe/issues/1121
|
|
338
|
+
[#1122]: https://github.com/proffesor-for-testing/agentic-qe/issues/1122
|
|
339
|
+
[#1125]: https://github.com/proffesor-for-testing/agentic-qe/issues/1125
|
|
340
|
+
[#1126]: https://github.com/proffesor-for-testing/agentic-qe/issues/1126
|
|
341
|
+
[#1127]: https://github.com/proffesor-for-testing/agentic-qe/issues/1127
|
|
342
|
+
[#1129]: https://github.com/proffesor-for-testing/agentic-qe/issues/1129
|
|
343
|
+
[#1130]: https://github.com/proffesor-for-testing/agentic-qe/issues/1130
|
|
344
|
+
[#1132]: https://github.com/proffesor-for-testing/agentic-qe/pull/1132
|
|
345
|
+
[#1134]: https://github.com/proffesor-for-testing/agentic-qe/issues/1134
|
|
346
|
+
[#1136]: https://github.com/proffesor-for-testing/agentic-qe/issues/1136
|
|
347
|
+
[#1138]: https://github.com/proffesor-for-testing/agentic-qe/pull/1138
|
|
348
|
+
[#1139]: https://github.com/proffesor-for-testing/agentic-qe/pull/1139
|
|
349
|
+
[#1140]: https://github.com/proffesor-for-testing/agentic-qe/issues/1140
|
|
350
|
+
[#1141]: https://github.com/proffesor-for-testing/agentic-qe/issues/1141
|
|
351
|
+
[#1142]: https://github.com/proffesor-for-testing/agentic-qe/pull/1142
|
|
352
|
+
[#1143]: https://github.com/proffesor-for-testing/agentic-qe/pull/1143
|
|
353
|
+
[#1144]: https://github.com/proffesor-for-testing/agentic-qe/pull/1144
|
|
354
|
+
[#1147]: https://github.com/proffesor-for-testing/agentic-qe/issues/1147
|
|
355
|
+
[#1148]: https://github.com/proffesor-for-testing/agentic-qe/pull/1148
|
|
356
|
+
[#1149]: https://github.com/proffesor-for-testing/agentic-qe/issues/1149
|
|
357
|
+
[#1151]: https://github.com/proffesor-for-testing/agentic-qe/pull/1151
|
|
358
|
+
[#1152]: https://github.com/proffesor-for-testing/agentic-qe/pull/1152
|
|
359
|
+
[#1153]: https://github.com/proffesor-for-testing/agentic-qe/issues/1153
|
|
360
|
+
[#1154]: https://github.com/proffesor-for-testing/agentic-qe/issues/1154
|
|
361
|
+
[#1155]: https://github.com/proffesor-for-testing/agentic-qe/pull/1155
|
|
362
|
+
[#1156]: https://github.com/proffesor-for-testing/agentic-qe/pull/1156
|
|
363
|
+
[#1157]: https://github.com/proffesor-for-testing/agentic-qe/issues/1157
|
|
364
|
+
[#1158]: https://github.com/proffesor-for-testing/agentic-qe/issues/1158
|
|
365
|
+
[#1159]: https://github.com/proffesor-for-testing/agentic-qe/pull/1159
|
|
366
|
+
[#1160]: https://github.com/proffesor-for-testing/agentic-qe/pull/1160
|
|
367
|
+
[#1161]: https://github.com/proffesor-for-testing/agentic-qe/issues/1161
|
|
368
|
+
[#1162]: https://github.com/proffesor-for-testing/agentic-qe/pull/1162
|
|
369
|
+
[#1163]: https://github.com/proffesor-for-testing/agentic-qe/pull/1163
|
|
370
|
+
[#1164]: https://github.com/proffesor-for-testing/agentic-qe/issues/1164
|
|
371
|
+
[#1165]: https://github.com/proffesor-for-testing/agentic-qe/issues/1165
|
|
372
|
+
|
|
8
373
|
## [3.15.9] - 2026-10-17
|
|
9
374
|
|
|
10
375
|
Tasks no longer get stuck in `running` and quietly use up Queen slots.
|
package/README.md
CHANGED
|
@@ -34,6 +34,14 @@ aqe init --auto
|
|
|
34
34
|
aqe health
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
**npm 12+:** dependency install scripts are blocked unless allowed, and AQE's SQLite store (`better-sqlite3`) needs its install script to fetch its native binary. Name the packages when you install:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install -g agentic-qe --allow-scripts=agentic-qe,better-sqlite3,hnswlib-node
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Include `agentic-qe` in the command — npm's warning suggests `npm install -g --allow-scripts=...` without a package name, which installs the current directory instead. If `aqe init` reports that the `better-sqlite3` native module could not be loaded on an existing install, rebuild it with `npm rebuild -g better-sqlite3 --allow-scripts=better-sqlite3` (for a project-local install: `npm install-scripts approve better-sqlite3 && npm rebuild better-sqlite3`). `hnswlib-node` is optional; AQE runs without it.
|
|
44
|
+
|
|
37
45
|
`aqe init --auto` analyzes your project and configures the default Claude Code surface, including MCP. Review the generated project files. For another client, select its setup flag below and use its MCP connection flow.
|
|
38
46
|
|
|
39
47
|
In your coding agent, start with a narrow request:
|
|
@@ -53,15 +53,18 @@ export function parseFrontmatter(markdown) {
|
|
|
53
53
|
if (keyValueMatch) {
|
|
54
54
|
const [, indent, key, value] = keyValueMatch;
|
|
55
55
|
const currentIndent = indent.length;
|
|
56
|
+
// #1157: keys come from agent markdown; skip ones that would re-prototype
|
|
57
|
+
// the result (and, for a top-level key, the nested block under it).
|
|
58
|
+
const unsafe = key === '__proto__' || key === 'constructor' || key === 'prototype';
|
|
56
59
|
if (currentIndent === 0) {
|
|
57
60
|
// Top-level key
|
|
58
61
|
if (currentKey && indentLevel > 0) {
|
|
59
62
|
result[currentKey] = nestedObj;
|
|
60
63
|
nestedObj = {};
|
|
61
64
|
}
|
|
62
|
-
currentKey = key;
|
|
65
|
+
currentKey = unsafe ? '' : key;
|
|
63
66
|
indentLevel = 0;
|
|
64
|
-
if (value.trim()) {
|
|
67
|
+
if (value.trim() && !unsafe) {
|
|
65
68
|
// Clean up quoted values
|
|
66
69
|
result[key] = value.replace(/^["']|["']$/g, '');
|
|
67
70
|
}
|
|
@@ -69,7 +72,7 @@ export function parseFrontmatter(markdown) {
|
|
|
69
72
|
else if (currentIndent > 0 && currentKey) {
|
|
70
73
|
// Nested key
|
|
71
74
|
indentLevel = currentIndent;
|
|
72
|
-
if (value.trim()) {
|
|
75
|
+
if (value.trim() && !unsafe) {
|
|
73
76
|
nestedObj[key] = value.replace(/^["']|["']$/g, '');
|
|
74
77
|
}
|
|
75
78
|
}
|
|
@@ -401,7 +401,9 @@ export class TaskRouter extends EventEmitter {
|
|
|
401
401
|
// Check capabilities
|
|
402
402
|
if (request.requiredCapabilities) {
|
|
403
403
|
for (const cap of request.requiredCapabilities) {
|
|
404
|
-
|
|
404
|
+
// #1157: the capability name comes from the routing request; an
|
|
405
|
+
// inherited member such as `toString` is not a capability.
|
|
406
|
+
if (!Object.hasOwn(agent.capabilities, cap) || !agent.capabilities[cap]) {
|
|
405
407
|
return false;
|
|
406
408
|
}
|
|
407
409
|
}
|
|
@@ -965,7 +965,8 @@ export function validateComponent(component, componentType) {
|
|
|
965
965
|
// Check required properties
|
|
966
966
|
if (schema.required) {
|
|
967
967
|
for (const prop of schema.required) {
|
|
968
|
-
|
|
968
|
+
// #1136: own properties only; an inherited `constructor` is not present.
|
|
969
|
+
if (!Object.hasOwn(comp, prop)) {
|
|
969
970
|
errors.push({
|
|
970
971
|
path: prop,
|
|
971
972
|
message: `Missing required property: ${prop}`,
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @see https://www.rfc-editor.org/rfc/rfc6901
|
|
8
8
|
* @module adapters/a2ui/data/json-pointer-resolver
|
|
9
9
|
*/
|
|
10
|
+
import { setOwn } from '../../../shared/utils/safe-record.js';
|
|
10
11
|
// ============================================================================
|
|
11
12
|
// Types
|
|
12
13
|
// ============================================================================
|
|
@@ -176,7 +177,9 @@ export function resolvePointerWithInfo(data, pointer) {
|
|
|
176
177
|
else {
|
|
177
178
|
// Object access
|
|
178
179
|
const obj = current;
|
|
179
|
-
|
|
180
|
+
// #1136: own properties only; `/constructor` or `/__proto__` does not
|
|
181
|
+
// resolve to an inherited member.
|
|
182
|
+
if (!Object.hasOwn(obj, segment)) {
|
|
180
183
|
return { found: false, value: undefined };
|
|
181
184
|
}
|
|
182
185
|
lastKey = segment;
|
|
@@ -239,9 +242,11 @@ export function setAtPointer(data, pointer, value) {
|
|
|
239
242
|
}
|
|
240
243
|
else {
|
|
241
244
|
const obj = current;
|
|
242
|
-
|
|
245
|
+
// #1136: own properties only, and created as own data properties, so
|
|
246
|
+
// `/__proto__/x` cannot walk into and write Object.prototype.
|
|
247
|
+
if (!Object.hasOwn(obj, segment)) {
|
|
243
248
|
// Auto-create intermediate objects
|
|
244
|
-
obj
|
|
249
|
+
setOwn(obj, segment, {});
|
|
245
250
|
}
|
|
246
251
|
current = obj[segment];
|
|
247
252
|
}
|
|
@@ -269,7 +274,7 @@ export function setAtPointer(data, pointer, value) {
|
|
|
269
274
|
}
|
|
270
275
|
}
|
|
271
276
|
else {
|
|
272
|
-
current
|
|
277
|
+
setOwn(current, lastSegment, value);
|
|
273
278
|
}
|
|
274
279
|
}
|
|
275
280
|
/**
|
|
@@ -304,7 +309,7 @@ export function deleteAtPointer(data, pointer) {
|
|
|
304
309
|
}
|
|
305
310
|
else {
|
|
306
311
|
const obj = parent;
|
|
307
|
-
if (!(lastSegment
|
|
312
|
+
if (!Object.hasOwn(obj, lastSegment)) {
|
|
308
313
|
return false;
|
|
309
314
|
}
|
|
310
315
|
delete obj[lastSegment];
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { EventEmitter } from 'events';
|
|
10
10
|
import { v4 as uuidv4 } from 'uuid';
|
|
11
|
+
import { getOwn, setOwn } from '../../../shared/utils/safe-record.js';
|
|
11
12
|
/**
|
|
12
13
|
* Default configuration
|
|
13
14
|
*/
|
|
@@ -473,7 +474,8 @@ export class AGUISyncService extends EventEmitter {
|
|
|
473
474
|
const parts = extractor.split('.');
|
|
474
475
|
let value = payload;
|
|
475
476
|
for (const part of parts) {
|
|
476
|
-
|
|
477
|
+
// #1136: own properties only.
|
|
478
|
+
if (value && typeof value === 'object' && Object.hasOwn(value, part)) {
|
|
477
479
|
value = value[part];
|
|
478
480
|
}
|
|
479
481
|
else {
|
|
@@ -498,7 +500,7 @@ export class AGUISyncService extends EventEmitter {
|
|
|
498
500
|
if (typeof current !== 'object') {
|
|
499
501
|
return undefined;
|
|
500
502
|
}
|
|
501
|
-
current = current
|
|
503
|
+
current = getOwn(current, part);
|
|
502
504
|
}
|
|
503
505
|
return current;
|
|
504
506
|
}
|
|
@@ -512,14 +514,16 @@ export class AGUISyncService extends EventEmitter {
|
|
|
512
514
|
}
|
|
513
515
|
const parts = path.split('/').filter(Boolean);
|
|
514
516
|
let current = obj;
|
|
517
|
+
// #1136: own properties only, created as own data properties, so
|
|
518
|
+
// `/__proto__/x` cannot walk into and write Object.prototype.
|
|
515
519
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
516
520
|
const part = parts[i];
|
|
517
|
-
if (!(part
|
|
518
|
-
current
|
|
521
|
+
if (!Object.hasOwn(current, part) || typeof current[part] !== 'object' || current[part] === null) {
|
|
522
|
+
setOwn(current, part, {});
|
|
519
523
|
}
|
|
520
524
|
current = current[part];
|
|
521
525
|
}
|
|
522
|
-
current
|
|
526
|
+
setOwn(current, parts[parts.length - 1], value);
|
|
523
527
|
}
|
|
524
528
|
/**
|
|
525
529
|
* Delete value at JSON Pointer path
|
|
@@ -532,7 +536,7 @@ export class AGUISyncService extends EventEmitter {
|
|
|
532
536
|
let current = obj;
|
|
533
537
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
534
538
|
const part = parts[i];
|
|
535
|
-
if (!(part
|
|
539
|
+
if (!Object.hasOwn(current, part) || typeof current[part] !== 'object') {
|
|
536
540
|
return;
|
|
537
541
|
}
|
|
538
542
|
current = current[part];
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { EventEmitter } from 'events';
|
|
10
10
|
import { v4 as uuidv4 } from 'uuid';
|
|
11
|
+
import { getOwn, setOwn } from '../../../shared/utils/safe-record.js';
|
|
11
12
|
import { createSurfaceGenerator, createComponentBuilder, } from '../renderer/index.js';
|
|
12
13
|
/**
|
|
13
14
|
* Default configuration
|
|
@@ -461,7 +462,8 @@ export class SurfaceStateBridge extends EventEmitter {
|
|
|
461
462
|
if (typeof current !== 'object') {
|
|
462
463
|
return undefined;
|
|
463
464
|
}
|
|
464
|
-
|
|
465
|
+
// #1136: own properties only.
|
|
466
|
+
current = getOwn(current, part);
|
|
465
467
|
}
|
|
466
468
|
return current;
|
|
467
469
|
}
|
|
@@ -475,14 +477,16 @@ export class SurfaceStateBridge extends EventEmitter {
|
|
|
475
477
|
}
|
|
476
478
|
const parts = path.split('/').filter(Boolean);
|
|
477
479
|
let current = obj;
|
|
480
|
+
// #1136: own properties only, created as own data properties, so
|
|
481
|
+
// `/__proto__/x` cannot walk into and write Object.prototype.
|
|
478
482
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
479
483
|
const part = parts[i];
|
|
480
|
-
if (!(part
|
|
481
|
-
current
|
|
484
|
+
if (!Object.hasOwn(current, part) || typeof current[part] !== 'object' || current[part] === null) {
|
|
485
|
+
setOwn(current, part, {});
|
|
482
486
|
}
|
|
483
487
|
current = current[part];
|
|
484
488
|
}
|
|
485
|
-
current
|
|
489
|
+
setOwn(current, parts[parts.length - 1], value);
|
|
486
490
|
}
|
|
487
491
|
/**
|
|
488
492
|
* Delete value at JSON Pointer path
|
|
@@ -495,7 +499,7 @@ export class SurfaceStateBridge extends EventEmitter {
|
|
|
495
499
|
let current = obj;
|
|
496
500
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
497
501
|
const part = parts[i];
|
|
498
|
-
if (!(part
|
|
502
|
+
if (!Object.hasOwn(current, part) || typeof current[part] !== 'object') {
|
|
499
503
|
return;
|
|
500
504
|
}
|
|
501
505
|
current = current[part];
|