agentic-qe 3.15.9 → 3.15.10
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 +251 -0
- package/assets/skills/skills-manifest.json +1 -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/audit/witness-chain.d.ts +1 -1
- package/dist/cli/bundle.js +6 -6
- package/dist/cli/chunks/adapter-TR5SLAZC.js +2 -0
- package/dist/cli/chunks/agent-booster-wasm-H7ANGXW4.js +2 -0
- package/dist/cli/chunks/{agent-handler-RIYHTHVZ.js → agent-handler-SVXSHEET.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-WSUCUHOO.js → agent-memory-branch-WKQH36XL.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-DXWKCHY2.js +2 -0
- package/dist/cli/chunks/{arena-KRIBMIXX.js → arena-EKOOFVST.js} +2 -2
- package/dist/cli/chunks/{arena-YAJZX6MC.js → arena-OPS36NFZ.js} +4 -4
- package/dist/cli/chunks/{audit-7ZNOXWP3.js → audit-AO5NDZRI.js} +3 -3
- package/dist/cli/chunks/base-GTB6POYE.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-ZQAT4I6H.js → better-sqlite3-TFLVEMMY.js} +2 -2
- package/dist/cli/chunks/{brain-handler-452WCPZC.js → brain-handler-ADBBJPYW.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-IJFXJRPN.js → branch-enumerator-HGHUYYL5.js} +2 -2
- package/dist/cli/chunks/browser-5LU6P4SZ.js +4 -0
- package/dist/cli/chunks/browser-workflow-MSBOLYUY.js +2 -0
- package/dist/cli/chunks/{chunk-UOJBR4J3.js → chunk-2SXBBUM6.js} +2 -2
- package/dist/cli/chunks/{chunk-7JKB3Q7O.js → chunk-2T7RRL6G.js} +1 -1
- package/dist/cli/chunks/{chunk-HCYQHWI2.js → chunk-2XGVTYVX.js} +2 -2
- package/dist/cli/chunks/{chunk-3LYU7BLY.js → chunk-2ZI5FKSF.js} +2 -2
- package/dist/cli/chunks/chunk-2ZMF4NCF.js +4 -0
- package/dist/cli/chunks/{chunk-F3PQZX44.js → chunk-37OWRCUN.js} +1 -1
- package/dist/cli/chunks/{chunk-YRBBBUJX.js → chunk-3P34JFQH.js} +4 -4
- package/dist/cli/chunks/{chunk-ICP2ORGI.js → chunk-3Y7SPD72.js} +2 -2
- package/dist/cli/chunks/{chunk-WGDR2KIR.js → chunk-4G63WT4F.js} +2 -2
- package/dist/cli/chunks/chunk-4SJYIX54.js +3 -0
- package/dist/cli/chunks/chunk-5E6GHSTY.js +3 -0
- package/dist/cli/chunks/{chunk-OXTFSIGN.js → chunk-5LPYV3TK.js} +1 -1
- package/dist/cli/chunks/{chunk-XWIUFYM3.js → chunk-62OAY5KJ.js} +1 -1
- package/dist/cli/chunks/{chunk-VCMINU7K.js → chunk-6C3II5OM.js} +2 -2
- package/dist/cli/chunks/{chunk-EFBLP43U.js → chunk-6GP6W46M.js} +2 -2
- package/dist/cli/chunks/{chunk-4JCY45KV.js → chunk-6KIL6CMD.js} +2 -2
- package/dist/cli/chunks/{chunk-CTZJUV5I.js → chunk-6MVVSSID.js} +1 -1
- package/dist/cli/chunks/{chunk-JEP4ULR6.js → chunk-6P7424AO.js} +2 -2
- package/dist/cli/chunks/{chunk-SVHUYVUR.js → chunk-6PX4OXQO.js} +2 -2
- package/dist/cli/chunks/{chunk-LEAKYZ37.js → chunk-6S3WJGUV.js} +2 -2
- package/dist/cli/chunks/{chunk-7X2Y727E.js → chunk-6TB6YOCZ.js} +1 -1
- package/dist/cli/chunks/{chunk-VU2EL424.js → chunk-6X5DHU6Q.js} +1 -1
- package/dist/cli/chunks/{chunk-DDPPSSHW.js → chunk-6XCMKIZN.js} +1 -1
- package/dist/cli/chunks/{chunk-ZANDSVCK.js → chunk-7LFZ4CHM.js} +2 -2
- package/dist/cli/chunks/{chunk-UYLYMWV5.js → chunk-7OZVZIBE.js} +2 -2
- package/dist/cli/chunks/{chunk-32UTLDNY.js → chunk-7PJIR4ST.js} +2 -2
- package/dist/cli/chunks/{chunk-DINZR5CF.js → chunk-7TB6FK4B.js} +1 -1
- package/dist/cli/chunks/{chunk-KVBEGOJE.js → chunk-7ZCDZHDB.js} +2 -2
- package/dist/cli/chunks/{chunk-55HRSNGN.js → chunk-A55QKKT2.js} +2 -2
- package/dist/cli/chunks/{chunk-LCJTEUDC.js → chunk-ABFFWZPC.js} +428 -433
- package/dist/cli/chunks/{chunk-PVIA2FPD.js → chunk-ACWFKES2.js} +2 -2
- package/dist/cli/chunks/{chunk-2BA45H64.js → chunk-AH3ZD3NJ.js} +2 -2
- package/dist/cli/chunks/{chunk-OG2UI6A3.js → chunk-AI4VYSFS.js} +2 -2
- package/dist/cli/chunks/chunk-APSRPR4W.js +2 -0
- package/dist/cli/chunks/chunk-ATHWDAXB.js +3 -0
- package/dist/cli/chunks/{chunk-TSYQDRNK.js → chunk-B6LTH6YV.js} +2 -2
- package/dist/cli/chunks/chunk-BQUAE3CP.js +3 -0
- package/dist/cli/chunks/{chunk-OCESWNAZ.js → chunk-C522H7XR.js} +54 -33
- package/dist/cli/chunks/{chunk-TUYJ53V4.js → chunk-CESIR27V.js} +2 -2
- package/dist/cli/chunks/{chunk-PBZI2ZPV.js → chunk-CFBEBXLO.js} +3 -3
- package/dist/cli/chunks/{chunk-FJ4VTLLK.js → chunk-CMBLM26R.js} +2 -2
- package/dist/cli/chunks/{chunk-YZYDTABJ.js → chunk-CZ2IF6MC.js} +1 -1
- package/dist/cli/chunks/{chunk-GKPQ2GRR.js → chunk-CZGOSJQ4.js} +2 -2
- package/dist/cli/chunks/{chunk-FL3OYGCS.js → chunk-D6DA2KFD.js} +2 -2
- package/dist/cli/chunks/{chunk-37BIGMJI.js → chunk-DBMNJSBV.js} +1 -1
- package/dist/cli/chunks/{chunk-BHKXMIWX.js → chunk-DE4YJQJF.js} +2 -2
- package/dist/cli/chunks/{chunk-3CJCROMW.js → chunk-DEF34AFL.js} +2 -2
- package/dist/cli/chunks/chunk-DKAC3E3B.js +3 -0
- package/dist/cli/chunks/{chunk-AOFO4N32.js → chunk-DMFTELBS.js} +2 -2
- package/dist/cli/chunks/{chunk-KLGYIEJK.js → chunk-DNRWGATA.js} +10 -10
- package/dist/cli/chunks/{chunk-JWGRWMZP.js → chunk-DT7SIJOA.js} +2 -2
- package/dist/cli/chunks/{chunk-6PXA2BQJ.js → chunk-DURHK377.js} +67 -67
- package/dist/cli/chunks/{chunk-HAROIAJE.js → chunk-EAU5KDFO.js} +1 -1
- package/dist/cli/chunks/{chunk-L42JPFCC.js → chunk-EDLFX4ZB.js} +2 -2
- package/dist/cli/chunks/{chunk-6OOYIO3W.js → chunk-EN2QSKFF.js} +2 -2
- package/dist/cli/chunks/{chunk-UNUTC6TX.js → chunk-ERQKYIP7.js} +2 -2
- package/dist/cli/chunks/{chunk-KFUUIAR4.js → chunk-ESUO3GTJ.js} +2 -2
- package/dist/cli/chunks/{chunk-4V27J6YN.js → chunk-EWFECZ2U.js} +2 -2
- package/dist/cli/chunks/{chunk-4W4DYVSH.js → chunk-FAUCT5KR.js} +3 -3
- package/dist/cli/chunks/{chunk-IFEIY3NQ.js → chunk-FB6TI3BH.js} +2 -2
- package/dist/cli/chunks/{chunk-2TDIS6YK.js → chunk-FBXTQNRH.js} +2 -2
- package/dist/cli/chunks/{chunk-XOLDMK23.js → chunk-FESZBPUB.js} +2 -2
- package/dist/cli/chunks/chunk-FFTPAWM6.js +141 -0
- package/dist/cli/chunks/{chunk-A6YIH4C4.js → chunk-FKL3R5JQ.js} +2 -2
- package/dist/cli/chunks/{chunk-N5PDFGCQ.js → chunk-FPUDRSFJ.js} +2 -2
- package/dist/cli/chunks/{chunk-7QGYJ5OY.js → chunk-FZOWULMH.js} +1 -1
- package/dist/cli/chunks/{chunk-AVB5QY2Q.js → chunk-G3CZCUPM.js} +2 -2
- package/dist/cli/chunks/{chunk-FV3NHVC7.js → chunk-G5I6KGMW.js} +3 -3
- package/dist/cli/chunks/{chunk-N3KEY4XJ.js → chunk-GHBNRMSJ.js} +2 -2
- package/dist/cli/chunks/{chunk-2YH62JCN.js → chunk-GJHWY3ZX.js} +2 -2
- package/dist/cli/chunks/{chunk-ZXBCCO2H.js → chunk-GJMLK5UT.js} +2 -2
- package/dist/cli/chunks/{chunk-NHZIWIQZ.js → chunk-GRCIBCJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-J3DTDJDT.js → chunk-GWZZ7DAO.js} +2 -2
- package/dist/cli/chunks/{chunk-4SUOVLJ6.js → chunk-GZLZCZ42.js} +2 -2
- package/dist/cli/chunks/{chunk-MZS32SYS.js → chunk-H2PYU7MN.js} +1 -1
- package/dist/cli/chunks/{chunk-ABFDB4X3.js → chunk-H32EPIR2.js} +1 -1
- package/dist/cli/chunks/{chunk-KIXYKUCI.js → chunk-H74Q7TJN.js} +1 -1
- package/dist/cli/chunks/chunk-HOZUDE4C.js +2 -0
- package/dist/cli/chunks/{chunk-PMCRCEW5.js → chunk-I33O4BRQ.js} +2 -2
- package/dist/cli/chunks/{chunk-N3NP6PTT.js → chunk-IKISCIGH.js} +2 -2
- package/dist/cli/chunks/{chunk-Q3JVJRVJ.js → chunk-IPJ7Q3AJ.js} +1 -1
- package/dist/cli/chunks/{chunk-WRRCQ2UE.js → chunk-IU2IV4NE.js} +1 -1
- package/dist/cli/chunks/{chunk-QQ5SZH4D.js → chunk-JHIY4VCC.js} +2 -2
- package/dist/cli/chunks/{chunk-W32YU3VI.js → chunk-KG336OV3.js} +2 -2
- package/dist/cli/chunks/{chunk-W5VJRDDG.js → chunk-KI73QCR5.js} +2 -2
- package/dist/cli/chunks/{chunk-HGTWAZWU.js → chunk-KNQ2ERFX.js} +2 -2
- package/dist/cli/chunks/{chunk-SNBYYO6F.js → chunk-KOBVYY6H.js} +2 -2
- package/dist/cli/chunks/{chunk-VQHVHVSF.js → chunk-KSIWGGJI.js} +8 -8
- package/dist/cli/chunks/{chunk-REUFWGMA.js → chunk-LMS3Y7JD.js} +2 -2
- package/dist/cli/chunks/{chunk-LMU5DUDK.js → chunk-LQEURY7C.js} +1 -1
- package/dist/cli/chunks/{chunk-AJ4YDSOI.js → chunk-LRZY4KS2.js} +2 -2
- package/dist/cli/chunks/{chunk-KIKWJM6J.js → chunk-M2QV7PT7.js} +2 -2
- package/dist/cli/chunks/{chunk-TNMQVG4A.js → chunk-MA7JIQ6U.js} +2 -2
- package/dist/cli/chunks/{chunk-I6S35FRO.js → chunk-MG27QY4D.js} +2 -2
- package/dist/cli/chunks/chunk-MNN5J4GU.js +12 -0
- package/dist/cli/chunks/chunk-N6PIIK6G.js +3 -0
- package/dist/cli/chunks/chunk-NAXGWDVM.js +12 -0
- package/dist/cli/chunks/{chunk-XOVNZT7F.js → chunk-NGKNYIQZ.js} +1 -1
- package/dist/cli/chunks/chunk-NNFZUTDH.js +2 -0
- package/dist/cli/chunks/{chunk-ZVSLCEVC.js → chunk-NPPHWFA2.js} +3 -3
- package/dist/cli/chunks/{chunk-JNNZK7KH.js → chunk-NSHU347M.js} +1 -1
- package/dist/cli/chunks/{chunk-PX2B5TS2.js → chunk-NVYIZCSR.js} +2 -2
- package/dist/cli/chunks/{chunk-5NS3USRW.js → chunk-NW5JUCCG.js} +1 -1
- package/dist/cli/chunks/{chunk-KR3M44CF.js → chunk-NZYLNXT6.js} +3 -3
- package/dist/cli/chunks/{chunk-5D2I7JUP.js → chunk-OBAREPDC.js} +2 -2
- package/dist/cli/chunks/{chunk-F4JYIRW2.js → chunk-ODJNUMV3.js} +2 -2
- package/dist/cli/chunks/{chunk-K5DJXMAA.js → chunk-OEKP73MC.js} +2 -2
- package/dist/cli/chunks/{chunk-2URBI52G.js → chunk-OPFGRS5S.js} +2 -2
- package/dist/cli/chunks/{chunk-HZ5NC6U5.js → chunk-OY2AHLSF.js} +1 -1
- package/dist/cli/chunks/{chunk-GII5WVAK.js → chunk-OY3NJNP2.js} +1 -1
- package/dist/cli/chunks/{chunk-P73W2K7T.js → chunk-PCEW6Q2C.js} +1 -1
- package/dist/cli/chunks/{chunk-7QTB5VJZ.js → chunk-PFG6VQ5Z.js} +2 -2
- package/dist/cli/chunks/{chunk-7KII4CQG.js → chunk-PGYMKGOE.js} +2 -2
- package/dist/cli/chunks/{chunk-BXO536GT.js → chunk-PPSAMXYN.js} +3 -3
- package/dist/cli/chunks/chunk-RK73HB2F.js +2 -0
- package/dist/cli/chunks/{chunk-ZBDRLF43.js → chunk-RPHY2DU6.js} +2 -2
- package/dist/cli/chunks/{chunk-XDBD4GXO.js → chunk-RWWOHCMG.js} +25 -20
- package/dist/cli/chunks/{chunk-J5KNRVXR.js → chunk-S75EYIJG.js} +1 -1
- package/dist/cli/chunks/{chunk-ETG7O5E5.js → chunk-SKQUUE4F.js} +5 -5
- package/dist/cli/chunks/chunk-SO45NA4D.js +180 -0
- package/dist/cli/chunks/{chunk-47V7FQGX.js → chunk-SU5H66SD.js} +2 -2
- package/dist/cli/chunks/{chunk-NTAD5UX4.js → chunk-SY2IB442.js} +2 -2
- package/dist/cli/chunks/{chunk-D6XVGFTI.js → chunk-TBLI254A.js} +2 -2
- package/dist/cli/chunks/{chunk-47TYABPD.js → chunk-TNMBRDCA.js} +3 -3
- package/dist/cli/chunks/{chunk-P2CXVNKK.js → chunk-TYFZXDGZ.js} +2 -2
- package/dist/cli/chunks/{chunk-2XITOPYV.js → chunk-U4OICXV2.js} +2 -2
- package/dist/cli/chunks/{chunk-JAV5WPSY.js → chunk-U53ZB4IX.js} +2 -2
- package/dist/cli/chunks/chunk-UARKIZAS.js +2 -0
- package/dist/cli/chunks/{chunk-2HL3UM5P.js → chunk-UCJMVXO4.js} +2 -2
- package/dist/cli/chunks/{chunk-HWK5L7IJ.js → chunk-UHTTW3IT.js} +2 -2
- package/dist/cli/chunks/{chunk-OXZLKP6C.js → chunk-V2M2XCR5.js} +1 -1
- package/dist/cli/chunks/{chunk-YZGSJG34.js → chunk-V2RSNVMW.js} +1 -1
- package/dist/cli/chunks/{chunk-5JWGCIQW.js → chunk-V6JBOIMX.js} +1 -1
- package/dist/cli/chunks/{chunk-JUVHZG7I.js → chunk-VFKF2XO7.js} +1 -1
- package/dist/cli/chunks/{chunk-XQ3DDY7X.js → chunk-VFSYMOAL.js} +2 -2
- package/dist/cli/chunks/{chunk-V5PXQSFS.js → chunk-VJQYDYAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-A4RU67VX.js → chunk-VKRTTFB6.js} +2 -2
- package/dist/cli/chunks/{chunk-H3KBIWTO.js → chunk-VWNFAW2M.js} +2 -2
- package/dist/cli/chunks/{chunk-72AMFDC7.js → chunk-WBM6N6IM.js} +1 -1
- package/dist/cli/chunks/{chunk-XUIA5KMS.js → chunk-WDQ7IEZY.js} +2 -2
- package/dist/cli/chunks/{chunk-FLASM2XB.js → chunk-WDVRE6GN.js} +2 -2
- package/dist/cli/chunks/{chunk-FV7VAG74.js → chunk-WQ4PYWSW.js} +1 -1
- package/dist/cli/chunks/{chunk-DGTLJNJH.js → chunk-WSF24I3D.js} +2 -2
- package/dist/cli/chunks/{chunk-6YL6JOQB.js → chunk-XBVUVFJK.js} +2 -2
- package/dist/cli/chunks/{chunk-VRGCKBF7.js → chunk-XEB3NLJR.js} +2 -2
- package/dist/cli/chunks/{chunk-XYCKHYBM.js → chunk-XFVTGAAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-2I2UPJS7.js → chunk-XLZYRTNO.js} +2 -2
- package/dist/cli/chunks/{chunk-AR2E4B7K.js → chunk-XUZDBQ5X.js} +5 -5
- package/dist/cli/chunks/{chunk-AQTVVLNP.js → chunk-Y76IAYQD.js} +1 -1
- package/dist/cli/chunks/{chunk-UOWHE77F.js → chunk-YAKGBHO4.js} +2 -2
- package/dist/cli/chunks/{chunk-JK2ME6IT.js → chunk-YBSBABOS.js} +2 -2
- package/dist/cli/chunks/{chunk-NDKLQW6N.js → chunk-YCGP5VFP.js} +2 -2
- package/dist/cli/chunks/{chunk-GBUIG3FS.js → chunk-YDAQK5UF.js} +1 -1
- package/dist/cli/chunks/{chunk-HTZJSQ3C.js → chunk-YK3BVZY6.js} +2 -2
- package/dist/cli/chunks/{chunk-GCWSX2NY.js → chunk-YK7JN5N7.js} +4 -4
- package/dist/cli/chunks/{chunk-C6RTMTEH.js → chunk-YKMU4LBV.js} +1 -1
- package/dist/cli/chunks/{chunk-JP4P3P3D.js → chunk-YYTGXD3R.js} +2 -2
- package/dist/cli/chunks/{chunk-763SUL4B.js → chunk-Z2O2YJAF.js} +2 -2
- package/dist/cli/chunks/{chunk-QTVWUQTB.js → chunk-Z7IYW5U7.js} +1 -1
- package/dist/cli/chunks/{chunk-XZJ2O3VC.js → chunk-ZG5666GJ.js} +1 -1
- package/dist/cli/chunks/{chunk-6EPHNJTL.js → chunk-ZXPY654C.js} +1 -1
- package/dist/cli/chunks/{ci-7SGRCFPS.js → ci-MSKMVH5X.js} +2 -2
- package/dist/cli/chunks/{ci-config-MX3URPZA.js → ci-config-7ODMNAUM.js} +2 -2
- package/dist/cli/chunks/{ci-output-M47NJY6D.js → ci-output-FXZ7ZZW3.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-5GAK45SW.js → circuit-breaker-4VOUEPOX.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-YXYSRH4Y.js → claude-flow-setup-7D4SGLM4.js} +2 -2
- package/dist/cli/chunks/client-POSVREVS.js +2 -0
- package/dist/cli/chunks/{cline-installer-DLJ5QD5N.js → cline-installer-WRRT7BGQ.js} +2 -2
- package/dist/cli/chunks/{code-ONKLMVQ2.js → code-ZDJRIL3S.js} +3 -3
- package/dist/cli/chunks/{code-index-extractor-2232LGZN.js → code-index-extractor-4S4SHM56.js} +2 -2
- package/dist/cli/chunks/{codex-installer-UOWLYCMH.js → codex-installer-YTRHNDWR.js} +2 -2
- package/dist/cli/chunks/{completions-MHX7GCC7.js → completions-6N64JUXJ.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-43ZUJKZU.js → complexity-analyzer-I4A26VCJ.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-6Q5JR4FF.js → continuedev-installer-IIDR66LB.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-CZUMVHSI.js → copilot-installer-SVVFY3S2.js} +2 -2
- package/dist/cli/chunks/core-handlers-V243GY7X.js +2 -0
- package/dist/cli/chunks/{cost-tracker-VS5ZW3XN.js → cost-tracker-VGFS6IBX.js} +2 -2
- package/dist/cli/chunks/{coverage-VWKTWZ6D.js → coverage-B7MCGNTE.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-N3AIEM3B.js +2 -0
- package/dist/cli/chunks/{cursor-installer-YIFEMORH.js → cursor-installer-UPETT57E.js} +2 -2
- package/dist/cli/chunks/daemon-7BDJHEIJ.js +18 -0
- package/dist/cli/chunks/{daemon-SHWJSJW5.js → daemon-CQFNZLXU.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-TCC2WM46.js → dag-attention-scheduler-PJVABHON.js} +2 -2
- package/dist/cli/chunks/{detect-IGTWSQMA.js → detect-56SKAGWX.js} +2 -2
- package/dist/cli/chunks/{dist-node-TCOTJVQX.js → dist-node-UYTYUMLN.js} +2 -2
- package/dist/cli/chunks/{domain-handler-55ZVYODR.js → domain-handler-YOYLBYJE.js} +2 -2
- package/dist/cli/chunks/{domain-plugins-GJRWOHQP.js → domain-plugins-7TARX2XF.js} +2 -2
- package/dist/cli/chunks/domain-transfer-AKVSBD6E.js +2 -0
- package/dist/cli/chunks/dream-UA7MKOPQ.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-XAMNIKQL.js → embed-and-insert-pattern-IS6HSR66.js} +2 -2
- package/dist/cli/chunks/{eval-GO22R4OZ.js → eval-GNB574IM.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-F2BRMJ3Y.js → experience-capture-middleware-RCAOCKM7.js} +3 -3
- package/dist/cli/chunks/{fast-paths-6RGPYALD.js → fast-paths-KTZ5SF54.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ZGS3KLPH.js → feature-flags-ITX5LQ57.js} +2 -2
- package/dist/cli/chunks/{feature-flags-MIWQIOHU.js → feature-flags-KFHSR5YF.js} +2 -2
- package/dist/cli/chunks/file-discovery-YCMNKZAK.js +2 -0
- package/dist/cli/chunks/fleet-2Y3ZE6CE.js +46 -0
- package/dist/cli/chunks/{gnn-wrapper-ALBJVW6T.js → gnn-wrapper-RLFW3GSX.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-ZMM53NDY.js → heartbeat-handler-EM2URCYZ.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-QH5V6G2P.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-OJNFAGJS.js +2 -0
- package/dist/cli/chunks/hnsw-index-DFUNARVD.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-RYUJPA7B.js → hnsw-legacy-bridge-JMHEOIBH.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-XM6XF3YV.js → hnswlib-node-CBP73QHY.js} +2 -2
- package/dist/cli/chunks/{hooks-X62O7TJO.js → hooks-IP7XE34Z.js} +34 -34
- package/dist/cli/chunks/hybrid-backend-SSGQQEQ2.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-ZBWUPTVD.js → hypergraph-engine-ONAYHU25.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-DUMF6SJV.js → hypergraph-handler-VINJRAID.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-CRGCA7ZD.js +2 -0
- package/dist/cli/chunks/{init-guard-S4I2R46S.js → init-guard-RYVV5R3Z.js} +2 -2
- package/dist/cli/chunks/{init-handler-L4KJHVWS.js → init-handler-MPRGWMOE.js} +6 -6
- package/dist/cli/chunks/init-wizard-NIMZ4J55.js +2 -0
- package/dist/cli/chunks/kernel-JQK7PRAI.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-GNNB5FCZ.js → kilocode-installer-OPD7JBRL.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-HR6ZAH7T.js → kiro-installer-M4OPUNK2.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-YPVVIKEU.js +2 -0
- package/dist/cli/chunks/{learning-4IEEOHJS.js → learning-4UWTQLMF.js} +24 -24
- package/dist/cli/chunks/{llm-router-ZFMORP36.js → llm-router-SQ56FF6Z.js} +4 -4
- package/dist/cli/chunks/llm-router-service-5OGAUOXF.js +2 -0
- package/dist/cli/chunks/{load-ZM43WGDO.js → load-HPHKDGGL.js} +2 -2
- package/dist/cli/chunks/load-test-UKNV5MWW.js +2 -0
- package/dist/cli/chunks/mcp-TELMAC7Z.js +2 -0
- package/dist/cli/chunks/{memory-W5FZGVAD.js → memory-PFQ3KPVJ.js} +5 -5
- package/dist/cli/chunks/memory-backend-ZW4BTRNK.js +2 -0
- package/dist/cli/chunks/memory-handlers-FCXN437E.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-SXXGAQ2G.js → multi-model-executor-3VDRX6TZ.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-PIRBUAB5.js → opencode-installer-PJ576R63.js} +2 -2
- package/dist/cli/chunks/{orchestrator-H5SQCQTB.js → orchestrator-72QP4UU7.js} +63 -19
- package/dist/cli/chunks/pattern-null-store-4DUV6MQC.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-XZTWDI2T.js → pattern-usage-recorder-754YQW7C.js} +2 -2
- package/dist/cli/chunks/pipeline-AVXY4MVB.js +19 -0
- package/dist/cli/chunks/{platform-KJDABL5C.js → platform-3E3DXLYB.js} +2 -2
- package/dist/cli/chunks/{plugin-V4KSBVVM.js → plugin-7FUQAKRE.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-JDHTKQAT.js → prime-radiant-advanced-wasm-NIB4F5NV.js} +2 -2
- package/dist/cli/chunks/project-root-JCAUNL6O.js +2 -0
- package/dist/cli/chunks/protocol-executor-RNZNZP3A.js +2 -0
- package/dist/cli/chunks/{protocol-handler-BNRONTQV.js → protocol-handler-BQRYMUTG.js} +2 -2
- package/dist/cli/chunks/{prove-ELLL6XMX.js → prove-H52QGC6B.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-WK6TQOG2.js +2 -0
- package/dist/cli/chunks/{quality-NH2QA4D4.js → quality-QO4XPAUM.js} +2 -2
- package/dist/cli/chunks/{quality-gate-JTKLF7GW.js → quality-gate-FBKE5E6F.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-4452SXZQ.js +2 -0
- package/dist/cli/chunks/{real-embeddings-J3KCKLPB.js → real-embeddings-RWGOVOXO.js} +2 -2
- package/dist/cli/chunks/{ref-validation-HNXQRP4F.js → ref-validation-LF76ZOBD.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-COJ6CX6S.js → roocode-installer-3BYEBTQ7.js} +2 -2
- package/dist/cli/chunks/router-3DIS5X4R.js +2 -0
- package/dist/cli/chunks/routing-feedback-OPXRCXM7.js +2 -0
- package/dist/cli/chunks/{routing-handler-WM33ZILE.js → routing-handler-DST7BVCU.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-BBLXEA7A.js → ruvector-commands-XE32PGKC.js} +2 -2
- package/dist/cli/chunks/rvf-dual-writer-JL6T727I.js +2 -0
- package/dist/cli/chunks/rvf-migration-adapter-V7IBDUCS.js +2 -0
- package/dist/cli/chunks/{rvf-migration-coordinator-P7H6HCAG.js → rvf-migration-coordinator-VP32XC75.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-O3UQTEBK.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-R5SPVRFP.js → rvf-store-integrity-SH2AMVI7.js} +2 -2
- package/dist/cli/chunks/safe-db-EVB4ZC7T.js +2 -0
- package/dist/cli/chunks/schedule-ORDDXXY4.js +2 -0
- package/dist/cli/chunks/scheduler-XFLJSFIU.js +2 -0
- package/dist/cli/chunks/{security-AUDTRX3I.js → security-VSPNKCDS.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-PVDGBGI2.js → shared-rvf-adapter-HX6AHL3P.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-LZ2GMSS2.js → shared-rvf-dual-writer-MX4FC2JE.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-Y7B42CJ3.js +2 -0
- package/dist/cli/chunks/{standalone-memory-XNOAI4G4.js → standalone-memory-O4QUTK6L.js} +2 -2
- package/dist/cli/chunks/{status-handler-K72XZE4T.js → status-handler-Z2BP6EOG.js} +2 -2
- package/dist/cli/chunks/{structural-health-NF3YY7U5.js → structural-health-R36WNLQG.js} +2 -2
- package/dist/cli/chunks/sync-2ELWUFQU.js +2 -0
- package/dist/cli/chunks/{sync-VBD5Y3E2.js → sync-QF5Y3EMZ.js} +2 -2
- package/dist/cli/chunks/{task-handler-24S3WFVJ.js → task-handler-43PYE75J.js} +2 -2
- package/dist/cli/chunks/task-handlers-KPWAEMKH.js +9 -0
- package/dist/cli/chunks/{test-XFSGQELD.js → test-UWA377D4.js} +16 -16
- package/dist/cli/chunks/test-runner-process-3XZUYST2.js +2 -0
- package/dist/cli/chunks/{test-scheduling-VYUQ4CDE.js → test-scheduling-YQZPJRRN.js} +3 -3
- package/dist/cli/chunks/token-bootstrap-F7C6UKTC.js +2 -0
- package/dist/cli/chunks/{token-usage-VLQ6WO2L.js → token-usage-DO6WLMXP.js} +2 -2
- package/dist/cli/chunks/{transformers-TOFMWWNM.js → transformers-H5RGFKVO.js} +2 -2
- package/dist/cli/chunks/tree-sitter-wasm-parser-YTBCBHUO.js +2 -0
- package/dist/cli/chunks/{types-JTWLBAZJ.js → types-PJS2FGPF.js} +2 -2
- package/dist/cli/chunks/unified-memory-EHD4VNFW.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-ZODGM4UK.js +2 -0
- package/dist/cli/chunks/unified-persistence-MHSI7ABK.js +2 -0
- package/dist/cli/chunks/{upgrade-4ABM72T4.js → upgrade-4IC4F6AB.js} +2 -2
- package/dist/cli/chunks/{validate-UDJCWKXI.js → validate-DHUWW7PF.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-TODOUWNN.js → validate-swarm-OERQNOX5.js} +2 -2
- package/dist/cli/chunks/visual-security-54MLFKWY.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-WBMAJPM5.js → web-tree-sitter-TV7DMKES.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-BTT53TUL.js → windsurf-installer-QZPWSH37.js} +2 -2
- package/dist/cli/chunks/witness-chain-LC6Q2W27.js +2 -0
- package/dist/cli/chunks/witness-chain-QUIBAF3W.js +2 -0
- package/dist/cli/chunks/witness-chain-repair-RUXIOE7F.js +2 -0
- package/dist/cli/chunks/{witness-chain-verifier-FRY3LMGH.js → witness-chain-verifier-YXENHB42.js} +2 -2
- package/dist/cli/chunks/{witness-key-manager-X7QHQQWL.js → witness-key-manager-HL26AGFO.js} +2 -2
- package/dist/cli/chunks/{workflow-QMZPAWQW.js → workflow-EOVVCN2E.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-UKHEJVSK.js +2 -0
- package/dist/cli/chunks/wrappers-AGODHBOO.js +2 -0
- package/dist/cli/commands/fleet.js +19 -12
- 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/learning.js +5 -3
- package/dist/cli/commands/ruvector-commands.js +2 -1
- package/dist/cli/commands/test.js +6 -0
- package/dist/cli/utils/ci-output.d.ts +9 -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/context/sources/git-source.js +6 -2
- package/dist/coordination/handlers/code-intelligence-handlers.js +60 -5
- package/dist/coordination/handlers/coverage-handlers.js +10 -1
- package/dist/coordination/handlers/requirements-handlers.js +16 -2
- package/dist/coordination/handlers/security-handlers.js +11 -1
- 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 +19 -7
- 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/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/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/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 +6 -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 +45 -58
- 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/scanner-orchestrator.js +4 -1
- package/dist/domains/test-execution/coordinator.d.ts +5 -0
- package/dist/domains/test-execution/coordinator.js +35 -20
- package/dist/domains/test-execution/interfaces.d.ts +25 -0
- 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/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/plugin.js +7 -2
- package/dist/domains/test-generation/services/test-data-generator.js +3 -1
- package/dist/domains/visual-accessibility/services/axe-core-audit.js +1 -1
- package/dist/hooks/cross-phase-hooks.js +2 -1
- package/dist/init/phases/10-workers.js +50 -6
- 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/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/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/qe-reasoning-bank-types.d.ts +17 -2
- package/dist/learning/qe-reasoning-bank.js +22 -11
- 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 +607 -580
- package/dist/mcp/handlers/core-handlers.js +11 -0
- package/dist/mcp/handlers/domain-handler-configs.d.ts +5 -0
- package/dist/mcp/handlers/domain-handler-configs.js +11 -3
- 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 +3 -0
- package/dist/mcp/handlers/task-handlers.js +35 -8
- package/dist/mcp/handlers/validation-pipeline-handler.js +6 -2
- package/dist/mcp/protocol-server.js +2 -0
- package/dist/mcp/security/schema-validator.js +3 -2
- package/dist/mcp/tools/code-intelligence/c4.js +11 -1
- 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 +58 -10
- package/dist/mcp/tools/quality-assessment/gate.js +12 -1
- package/dist/mcp/tools/requirements-validation/quality-criteria.js +9 -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/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/payload-path-guard.d.ts +75 -0
- package/dist/shared/io/payload-path-guard.js +190 -0
- package/dist/shared/llm/router/agent-router-config.js +2 -1
- package/dist/shared/llm/translation/tool-translator.js +2 -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/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/validation/gate-reexecute.js +7 -4
- 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-4URT6JO2.js +0 -2
- package/dist/cli/chunks/chunk-5LAAZLUC.js +0 -4
- package/dist/cli/chunks/chunk-7DMA5NYL.js +0 -4
- package/dist/cli/chunks/chunk-F2SQPP6U.js +0 -4
- 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-KHSRIPBP.js +0 -180
- package/dist/cli/chunks/chunk-KTSLTZSG.js +0 -2
- package/dist/cli/chunks/chunk-O3JLOVZX.js +0 -4
- package/dist/cli/chunks/chunk-THAY7WHO.js +0 -12
- package/dist/cli/chunks/chunk-VXZJOKOX.js +0 -2
- package/dist/cli/chunks/chunk-VYLM2YV5.js +0 -12
- 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
|
@@ -2,9 +2,23 @@
|
|
|
2
2
|
* agent-browser CLI Command Executor
|
|
3
3
|
* Wraps CLI calls with type safety and error handling
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { spawn } from 'child_process';
|
|
6
6
|
import { safeJsonParse } from '../../../shared/safe-json.js';
|
|
7
|
+
import { npmCliInvocation } from '../../../shared/npm-cli-invocation.js';
|
|
8
|
+
import { runProcessText, runTestRunnerProcess } from '../../../shared/test-runner-process.js';
|
|
7
9
|
import { toErrorMessage } from '../../../shared/error-utils.js';
|
|
10
|
+
/**
|
|
11
|
+
* Run `npx agent-browser ...` without blocking the event loop (#1115). A
|
|
12
|
+
* timeout stops the whole npx process tree, as the synchronous call did not.
|
|
13
|
+
*/
|
|
14
|
+
export function runAgentBrowser(args, timeout, maxBuffer) {
|
|
15
|
+
const npx = npmCliInvocation('npx');
|
|
16
|
+
if (!npx) {
|
|
17
|
+
const error = Object.assign(new Error('npx CLI not found next to node'), { code: 'ENOENT' });
|
|
18
|
+
return Promise.resolve({ status: null, signal: null, stdout: '', stderr: '', error });
|
|
19
|
+
}
|
|
20
|
+
return runTestRunnerProcess(npx[0], [...npx[1], 'agent-browser', ...args], { cwd: process.cwd(), timeout, maxBuffer });
|
|
21
|
+
}
|
|
8
22
|
/**
|
|
9
23
|
* Execute agent-browser CLI commands with type safety
|
|
10
24
|
*/
|
|
@@ -27,21 +41,15 @@ export class AgentBrowserCommandExecutor {
|
|
|
27
41
|
// Core execution methods
|
|
28
42
|
// ========================================================================
|
|
29
43
|
/**
|
|
30
|
-
* Execute a command
|
|
44
|
+
* Execute a command and parse JSON result
|
|
31
45
|
*/
|
|
32
|
-
execute(command, args = []) {
|
|
46
|
+
async execute(command, args = []) {
|
|
33
47
|
const fullArgs = this.buildArgs(command, args);
|
|
34
|
-
const spawnArgs = ['agent-browser', ...fullArgs];
|
|
35
48
|
if (this.config.debug) {
|
|
36
|
-
console.log(`[agent-browser] Executing: npx ${
|
|
49
|
+
console.log(`[agent-browser] Executing: npx agent-browser ${fullArgs.join(' ')}`);
|
|
37
50
|
}
|
|
38
51
|
try {
|
|
39
|
-
const result =
|
|
40
|
-
encoding: 'utf-8',
|
|
41
|
-
timeout: this.config.timeout,
|
|
42
|
-
maxBuffer: 10 * 1024 * 1024, // 10MB for screenshots
|
|
43
|
-
shell: false,
|
|
44
|
-
});
|
|
52
|
+
const result = await runAgentBrowser(fullArgs, this.config.timeout, 10 * 1024 * 1024); // 10MB for screenshots
|
|
45
53
|
if (result.error) {
|
|
46
54
|
return { success: false, error: result.error.message };
|
|
47
55
|
}
|
|
@@ -110,12 +118,12 @@ export class AgentBrowserCommandExecutor {
|
|
|
110
118
|
/**
|
|
111
119
|
* Open URL in browser (auto-launches if needed)
|
|
112
120
|
*/
|
|
113
|
-
open(url) {
|
|
121
|
+
async open(url) {
|
|
114
122
|
const args = [url];
|
|
115
123
|
if (this.config.headed) {
|
|
116
124
|
args.push('--headed');
|
|
117
125
|
}
|
|
118
|
-
const result = this.execute('open', args);
|
|
126
|
+
const result = await this.execute('open', args);
|
|
119
127
|
if (result.success) {
|
|
120
128
|
this.browserLaunched = true;
|
|
121
129
|
}
|
|
@@ -124,8 +132,8 @@ export class AgentBrowserCommandExecutor {
|
|
|
124
132
|
/**
|
|
125
133
|
* Close browser
|
|
126
134
|
*/
|
|
127
|
-
close() {
|
|
128
|
-
const result = this.execute('close');
|
|
135
|
+
async close() {
|
|
136
|
+
const result = await this.execute('close');
|
|
129
137
|
if (result.success) {
|
|
130
138
|
this.browserLaunched = false;
|
|
131
139
|
}
|
|
@@ -136,10 +144,10 @@ export class AgentBrowserCommandExecutor {
|
|
|
136
144
|
* CRITICAL: Must be called to prevent memory leaks!
|
|
137
145
|
* The daemon persists even after close() - this kills it entirely.
|
|
138
146
|
*/
|
|
139
|
-
terminateDaemon() {
|
|
147
|
+
async terminateDaemon() {
|
|
140
148
|
try {
|
|
141
149
|
// First close the browser gracefully
|
|
142
|
-
this.close();
|
|
150
|
+
await this.close();
|
|
143
151
|
// Kill all processes matching this session's daemon
|
|
144
152
|
// The daemon runs as: node .../agent-browser/.../daemon.js
|
|
145
153
|
// with environment variable AGENT_BROWSER_SESSION=<sessionName>
|
|
@@ -147,15 +155,10 @@ export class AgentBrowserCommandExecutor {
|
|
|
147
155
|
// Find and kill processes by session name
|
|
148
156
|
// Use pkill with argument array to prevent shell injection
|
|
149
157
|
try {
|
|
150
|
-
|
|
151
|
-
timeout: 5000,
|
|
152
|
-
stdio: 'ignore',
|
|
153
|
-
shell: false,
|
|
154
|
-
});
|
|
158
|
+
await runProcessText('pkill', ['-f', `agent-browser.*--session[= ]${sessionName}`], { cwd: process.cwd(), timeout: 5000 });
|
|
155
159
|
}
|
|
156
|
-
catch
|
|
157
|
-
// Non-critical: pkill
|
|
158
|
-
console.debug('[CommandExecutor] pkill error:', error instanceof Error ? error.message : error);
|
|
160
|
+
catch {
|
|
161
|
+
// Non-critical: pkill exits 1 when nothing matched, or the process is already dead
|
|
159
162
|
}
|
|
160
163
|
// Also try to kill by AGENT_BROWSER_SESSION env var (harder to match)
|
|
161
164
|
// As a fallback, we'll rely on the session-specific matching above
|
|
@@ -175,7 +178,7 @@ export class AgentBrowserCommandExecutor {
|
|
|
175
178
|
/**
|
|
176
179
|
* Get accessibility snapshot with refs
|
|
177
180
|
*/
|
|
178
|
-
snapshot(options) {
|
|
181
|
+
async snapshot(options) {
|
|
179
182
|
const args = ['--json'];
|
|
180
183
|
if (options?.interactive)
|
|
181
184
|
args.push('-i');
|
|
@@ -191,32 +194,32 @@ export class AgentBrowserCommandExecutor {
|
|
|
191
194
|
/**
|
|
192
195
|
* Click element by ref or selector
|
|
193
196
|
*/
|
|
194
|
-
click(target) {
|
|
197
|
+
async click(target) {
|
|
195
198
|
return this.execute('click', [target]);
|
|
196
199
|
}
|
|
197
200
|
/**
|
|
198
201
|
* Fill input by ref or selector
|
|
199
202
|
*/
|
|
200
|
-
fill(target, text) {
|
|
203
|
+
async fill(target, text) {
|
|
201
204
|
return this.execute('fill', [target, text]);
|
|
202
205
|
}
|
|
203
206
|
/**
|
|
204
207
|
* Type text (without clearing)
|
|
205
208
|
*/
|
|
206
|
-
type(target, text) {
|
|
209
|
+
async type(target, text) {
|
|
207
210
|
return this.execute('type', [target, text]);
|
|
208
211
|
}
|
|
209
212
|
/**
|
|
210
213
|
* Get element text
|
|
211
214
|
*/
|
|
212
|
-
getText(target) {
|
|
215
|
+
async getText(target) {
|
|
213
216
|
return this.execute('get', ['text', target, '--json']);
|
|
214
217
|
}
|
|
215
218
|
/**
|
|
216
219
|
* Check if element is visible
|
|
217
220
|
*/
|
|
218
|
-
isVisible(target) {
|
|
219
|
-
const result = this.execute('is', ['visible', target, '--json']);
|
|
221
|
+
async isVisible(target) {
|
|
222
|
+
const result = await this.execute('is', ['visible', target, '--json']);
|
|
220
223
|
if (result.success && result.data) {
|
|
221
224
|
return { success: true, data: result.data.success };
|
|
222
225
|
}
|
|
@@ -228,7 +231,7 @@ export class AgentBrowserCommandExecutor {
|
|
|
228
231
|
/**
|
|
229
232
|
* Take screenshot
|
|
230
233
|
*/
|
|
231
|
-
screenshot(path, fullPage) {
|
|
234
|
+
async screenshot(path, fullPage) {
|
|
232
235
|
const args = [];
|
|
233
236
|
if (path)
|
|
234
237
|
args.push(path);
|
|
@@ -244,7 +247,7 @@ export class AgentBrowserCommandExecutor {
|
|
|
244
247
|
/**
|
|
245
248
|
* Wait for element
|
|
246
249
|
*/
|
|
247
|
-
waitForElement(target, timeout) {
|
|
250
|
+
async waitForElement(target, timeout) {
|
|
248
251
|
const args = [target];
|
|
249
252
|
if (timeout) {
|
|
250
253
|
// Wait command accepts ms or selector
|
|
@@ -255,13 +258,13 @@ export class AgentBrowserCommandExecutor {
|
|
|
255
258
|
/**
|
|
256
259
|
* Wait for text to appear
|
|
257
260
|
*/
|
|
258
|
-
waitForText(text) {
|
|
261
|
+
async waitForText(text) {
|
|
259
262
|
return this.execute('wait', ['--text', text]);
|
|
260
263
|
}
|
|
261
264
|
/**
|
|
262
265
|
* Wait for URL pattern
|
|
263
266
|
*/
|
|
264
|
-
waitForUrl(pattern) {
|
|
267
|
+
async waitForUrl(pattern) {
|
|
265
268
|
// URL pattern needs to be a glob pattern, convert simple strings
|
|
266
269
|
const urlPattern = pattern.includes('*') ? pattern : `**${pattern}**`;
|
|
267
270
|
return this.execute('wait', ['--url', urlPattern]);
|
|
@@ -269,7 +272,7 @@ export class AgentBrowserCommandExecutor {
|
|
|
269
272
|
/**
|
|
270
273
|
* Wait for network idle
|
|
271
274
|
*/
|
|
272
|
-
waitForNetworkIdle() {
|
|
275
|
+
async waitForNetworkIdle() {
|
|
273
276
|
return this.execute('wait', ['--load', 'networkidle']);
|
|
274
277
|
}
|
|
275
278
|
// ========================================================================
|
|
@@ -278,13 +281,13 @@ export class AgentBrowserCommandExecutor {
|
|
|
278
281
|
/**
|
|
279
282
|
* Set device emulation
|
|
280
283
|
*/
|
|
281
|
-
setDevice(deviceName) {
|
|
284
|
+
async setDevice(deviceName) {
|
|
282
285
|
return this.execute('set', ['device', deviceName]);
|
|
283
286
|
}
|
|
284
287
|
/**
|
|
285
288
|
* Set viewport size
|
|
286
289
|
*/
|
|
287
|
-
setViewport(width, height) {
|
|
290
|
+
async setViewport(width, height) {
|
|
288
291
|
return this.execute('set', ['viewport', String(width), String(height)]);
|
|
289
292
|
}
|
|
290
293
|
// ========================================================================
|
|
@@ -293,20 +296,20 @@ export class AgentBrowserCommandExecutor {
|
|
|
293
296
|
/**
|
|
294
297
|
* Mock network route
|
|
295
298
|
*/
|
|
296
|
-
mockRoute(urlPattern, body) {
|
|
299
|
+
async mockRoute(urlPattern, body) {
|
|
297
300
|
const bodyJson = JSON.stringify(body);
|
|
298
301
|
return this.execute('network', ['route', urlPattern, '--body', bodyJson]);
|
|
299
302
|
}
|
|
300
303
|
/**
|
|
301
304
|
* Abort network route
|
|
302
305
|
*/
|
|
303
|
-
abortRoute(urlPattern) {
|
|
306
|
+
async abortRoute(urlPattern) {
|
|
304
307
|
return this.execute('network', ['route', urlPattern, '--abort']);
|
|
305
308
|
}
|
|
306
309
|
/**
|
|
307
310
|
* Clear network routes
|
|
308
311
|
*/
|
|
309
|
-
clearRoutes() {
|
|
312
|
+
async clearRoutes() {
|
|
310
313
|
return this.execute('network', ['unroute']);
|
|
311
314
|
}
|
|
312
315
|
// ========================================================================
|
|
@@ -315,13 +318,13 @@ export class AgentBrowserCommandExecutor {
|
|
|
315
318
|
/**
|
|
316
319
|
* Save browser state (cookies, storage)
|
|
317
320
|
*/
|
|
318
|
-
saveState(path) {
|
|
321
|
+
async saveState(path) {
|
|
319
322
|
return this.execute('state', ['save', path]);
|
|
320
323
|
}
|
|
321
324
|
/**
|
|
322
325
|
* Load browser state
|
|
323
326
|
*/
|
|
324
|
-
loadState(path) {
|
|
327
|
+
async loadState(path) {
|
|
325
328
|
return this.execute('state', ['load', path]);
|
|
326
329
|
}
|
|
327
330
|
// ========================================================================
|
|
@@ -331,15 +334,15 @@ export class AgentBrowserCommandExecutor {
|
|
|
331
334
|
* Start trace recording
|
|
332
335
|
* Records browser activity for debugging and analysis
|
|
333
336
|
*/
|
|
334
|
-
startTrace() {
|
|
337
|
+
async startTrace() {
|
|
335
338
|
return this.execute('trace', ['start']);
|
|
336
339
|
}
|
|
337
340
|
/**
|
|
338
341
|
* Stop trace recording and save to file
|
|
339
342
|
* @param outputPath - Path to save the trace file
|
|
340
343
|
*/
|
|
341
|
-
stopTrace(outputPath) {
|
|
342
|
-
const result = this.execute('trace', ['stop', outputPath]);
|
|
344
|
+
async stopTrace(outputPath) {
|
|
345
|
+
const result = await this.execute('trace', ['stop', outputPath]);
|
|
343
346
|
if (result.success) {
|
|
344
347
|
return { success: true, data: outputPath };
|
|
345
348
|
}
|
|
@@ -351,7 +354,7 @@ export class AgentBrowserCommandExecutor {
|
|
|
351
354
|
/**
|
|
352
355
|
* Evaluate JavaScript in page context
|
|
353
356
|
*/
|
|
354
|
-
eval(script) {
|
|
357
|
+
async eval(script) {
|
|
355
358
|
return this.execute('eval', [script, '--json']);
|
|
356
359
|
}
|
|
357
360
|
// ========================================================================
|
|
@@ -386,15 +389,11 @@ export class AgentBrowserCommandExecutor {
|
|
|
386
389
|
/**
|
|
387
390
|
* Check if agent-browser CLI is available
|
|
388
391
|
*/
|
|
389
|
-
export function isAgentBrowserAvailable() {
|
|
392
|
+
export async function isAgentBrowserAvailable() {
|
|
390
393
|
try {
|
|
391
394
|
// Use 'npx agent-browser' without args to check help output
|
|
392
395
|
// --version is not a valid command, but running with no args shows help
|
|
393
|
-
const result =
|
|
394
|
-
encoding: 'utf-8',
|
|
395
|
-
timeout: 10000,
|
|
396
|
-
shell: false,
|
|
397
|
-
});
|
|
396
|
+
const result = await runAgentBrowser([], 10000);
|
|
398
397
|
const output = (result.stdout ?? '') + (result.stderr ?? '');
|
|
399
398
|
return output.includes('agent-browser') && output.includes('Usage:');
|
|
400
399
|
}
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* agent-browser Session Manager
|
|
3
3
|
* Manages multiple isolated browser sessions for parallel testing
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import { AgentBrowserCommandExecutor } from './command-executor.js';
|
|
5
|
+
import { AgentBrowserCommandExecutor, runAgentBrowser } from './command-executor.js';
|
|
7
6
|
/**
|
|
8
7
|
* Manage multiple isolated browser sessions
|
|
9
8
|
*/
|
|
@@ -43,7 +42,7 @@ export class AgentBrowserSessionManager {
|
|
|
43
42
|
this.sessions.set(name, session);
|
|
44
43
|
// Navigate to initial URL if provided
|
|
45
44
|
if (options?.initialUrl) {
|
|
46
|
-
const result = executor.open(options.initialUrl);
|
|
45
|
+
const result = await executor.open(options.initialUrl);
|
|
47
46
|
if (result.success) {
|
|
48
47
|
session.currentUrl = options.initialUrl;
|
|
49
48
|
session.status = 'active';
|
|
@@ -97,12 +96,12 @@ export class AgentBrowserSessionManager {
|
|
|
97
96
|
/**
|
|
98
97
|
* List active session names from CLI
|
|
99
98
|
*/
|
|
100
|
-
listCliSessions() {
|
|
99
|
+
async listCliSessions() {
|
|
101
100
|
try {
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
const result = await runAgentBrowser(['session', 'list'], 5000);
|
|
102
|
+
if (result.error || result.status !== 0)
|
|
103
|
+
return [];
|
|
104
|
+
const output = result.stdout;
|
|
106
105
|
// Parse output like:
|
|
107
106
|
// Active sessions:
|
|
108
107
|
// -> default
|
|
@@ -134,7 +133,7 @@ export class AgentBrowserSessionManager {
|
|
|
134
133
|
}
|
|
135
134
|
// Terminate the daemon entirely (not just close browser)
|
|
136
135
|
// This is CRITICAL to prevent memory leaks - the daemon persists otherwise!
|
|
137
|
-
const result = session.executor.terminateDaemon();
|
|
136
|
+
const result = await session.executor.terminateDaemon();
|
|
138
137
|
if (result.success) {
|
|
139
138
|
session.status = 'closed';
|
|
140
139
|
this.sessions.delete(name);
|
|
@@ -12,13 +12,15 @@
|
|
|
12
12
|
* @version 1.0.0
|
|
13
13
|
* @since v3
|
|
14
14
|
*/
|
|
15
|
-
import { exec
|
|
15
|
+
import { exec } from 'child_process';
|
|
16
16
|
import { promisify } from 'util';
|
|
17
17
|
import * as fs from 'fs';
|
|
18
18
|
import * as path from 'path';
|
|
19
19
|
import { createBrowserClient, isAgentBrowserAvailable } from './client-factory.js';
|
|
20
20
|
import { toErrorMessage } from '../../shared/error-utils.js';
|
|
21
21
|
import { safeJsonParse } from '../../shared/safe-json.js';
|
|
22
|
+
import { npmCliInvocation } from '../../shared/npm-cli-invocation.js';
|
|
23
|
+
import { runProcessText } from '../../shared/test-runner-process.js';
|
|
22
24
|
const execAsync = promisify(exec);
|
|
23
25
|
// ============================================================================
|
|
24
26
|
// WebContentFetcher Class
|
|
@@ -246,9 +248,13 @@ export class WebContentFetcher {
|
|
|
246
248
|
if (!fs.existsSync(packageJsonPath)) {
|
|
247
249
|
fs.writeFileSync(packageJsonPath, JSON.stringify({ name: 'pw-fetch', type: 'commonjs' }));
|
|
248
250
|
try {
|
|
249
|
-
|
|
251
|
+
// Async so the install does not block the event loop for up to 120s,
|
|
252
|
+
// and a timeout stops npm with its children (#1115).
|
|
253
|
+
const npm = npmCliInvocation('npm');
|
|
254
|
+
if (!npm)
|
|
255
|
+
throw new Error('npm CLI not found');
|
|
256
|
+
await runProcessText(npm[0], [...npm[1], 'install', 'playwright-extra', 'puppeteer-extra-plugin-stealth', 'playwright'], {
|
|
250
257
|
cwd: workDir,
|
|
251
|
-
stdio: 'pipe',
|
|
252
258
|
timeout: 120000,
|
|
253
259
|
});
|
|
254
260
|
}
|
|
@@ -135,7 +135,7 @@ export class VibiumClientImpl {
|
|
|
135
135
|
try {
|
|
136
136
|
// Check if Vibium package is available
|
|
137
137
|
const browser = await getVibiumBrowser();
|
|
138
|
-
this._available = browser !== null && isVibiumReady();
|
|
138
|
+
this._available = browser !== null && await isVibiumReady();
|
|
139
139
|
return this._available;
|
|
140
140
|
}
|
|
141
141
|
catch {
|
|
@@ -215,7 +215,7 @@ export class VibiumClientImpl {
|
|
|
215
215
|
}
|
|
216
216
|
// Launch REAL browser using Vibium
|
|
217
217
|
const headless = options?.headless ?? this.config.headless;
|
|
218
|
-
if (!isVibiumReady()) {
|
|
218
|
+
if (!(await isVibiumReady())) {
|
|
219
219
|
throw new VibiumUnavailableError(`Vibium browser payload unavailable; run ${VIBIUM_SETUP}`);
|
|
220
220
|
}
|
|
221
221
|
const instance = await browser.start({ headless });
|
|
@@ -9,6 +9,6 @@ type Runtime = typeof import('vibium');
|
|
|
9
9
|
export declare function npmInvocation(platform?: NodeJS.Platform, execPath?: string, exists?: (path: string) => boolean): [string, string[]];
|
|
10
10
|
export declare function loadVibium(): Promise<Runtime>;
|
|
11
11
|
/** Check the payload belonging to the resolved library, not a different PATH CLI. */
|
|
12
|
-
export declare function isVibiumReady(): boolean
|
|
12
|
+
export declare function isVibiumReady(): Promise<boolean>;
|
|
13
13
|
export {};
|
|
14
14
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
/** Resolve the opt-in Vibium runtime for both local and global AQE installs. */
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { execFileSync } from 'node:child_process';
|
|
4
3
|
import { existsSync } from 'node:fs';
|
|
5
4
|
import { dirname, join } from 'node:path';
|
|
6
5
|
import { npmCliInvocation } from '../../shared/npm-cli-invocation.js';
|
|
6
|
+
import { runProcessText } from '../../shared/test-runner-process.js';
|
|
7
7
|
export const VIBIUM_SETUP = 'aqe init --browser-engine (or npm install vibium@^26.8.21)';
|
|
8
8
|
const requireFromHere = createRequire(import.meta.url);
|
|
9
|
+
/**
|
|
10
|
+
* Async probe (#1115): a slow npm or Vibium CLI must not block the MCP server,
|
|
11
|
+
* and a timeout stops its whole process group.
|
|
12
|
+
*/
|
|
13
|
+
function execFileText(file, args) {
|
|
14
|
+
return runProcessText(file, args, { cwd: process.cwd(), timeout: 5000 });
|
|
15
|
+
}
|
|
9
16
|
/**
|
|
10
17
|
* How to run npm without a shell. On Windows `npm` is an `npm.cmd` shim, which
|
|
11
18
|
* execFile cannot start without `shell: true` (EINVAL/ENOENT since the
|
|
@@ -16,7 +23,7 @@ export function npmInvocation(platform = process.platform, execPath = process.ex
|
|
|
16
23
|
return npmCliInvocation('npm', platform, execPath, exists) ?? ['npm', []];
|
|
17
24
|
}
|
|
18
25
|
/** Never install or download anything while probing availability. */
|
|
19
|
-
function resolveRuntime() {
|
|
26
|
+
async function resolveRuntime() {
|
|
20
27
|
try {
|
|
21
28
|
return requireFromHere.resolve('vibium');
|
|
22
29
|
}
|
|
@@ -28,9 +35,7 @@ function resolveRuntime() {
|
|
|
28
35
|
// A global CLI installation is not on Node's normal module search path.
|
|
29
36
|
// npm root is read-only and honors the same npm prefix as explicit setup.
|
|
30
37
|
const [npmBin, npmPrefixArgs] = npmInvocation();
|
|
31
|
-
const root =
|
|
32
|
-
encoding: 'utf8', timeout: 5000, stdio: ['ignore', 'pipe', 'pipe'],
|
|
33
|
-
}).trim();
|
|
38
|
+
const root = (await execFileText(npmBin, [...npmPrefixArgs, 'root', '-g'])).trim();
|
|
34
39
|
return requireFromHere.resolve(join(root, 'vibium'));
|
|
35
40
|
}
|
|
36
41
|
}
|
|
@@ -60,7 +65,7 @@ export async function loadVibium() {
|
|
|
60
65
|
throw error;
|
|
61
66
|
let entry;
|
|
62
67
|
try {
|
|
63
|
-
entry = resolveRuntime();
|
|
68
|
+
entry = await resolveRuntime();
|
|
64
69
|
}
|
|
65
70
|
catch (cause) {
|
|
66
71
|
throw new Error(`Vibium is not installed; run ${VIBIUM_SETUP}`, { cause });
|
|
@@ -75,12 +80,10 @@ export async function loadVibium() {
|
|
|
75
80
|
return runtime;
|
|
76
81
|
}
|
|
77
82
|
/** Check the payload belonging to the resolved library, not a different PATH CLI. */
|
|
78
|
-
export function isVibiumReady() {
|
|
83
|
+
export async function isVibiumReady() {
|
|
79
84
|
try {
|
|
80
|
-
const cli = join(dirname(resolveRuntime()), '..', 'bin', 'cli.js');
|
|
81
|
-
|
|
82
|
-
timeout: 5000, stdio: 'ignore',
|
|
83
|
-
});
|
|
85
|
+
const cli = join(dirname(await resolveRuntime()), '..', 'bin', 'cli.js');
|
|
86
|
+
await execFileText(process.execPath, [cli, 'is-installed']);
|
|
84
87
|
return true;
|
|
85
88
|
}
|
|
86
89
|
catch {
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
import { HYPERGRAPH_SCHEMA } from '../migrations/20260120_add_hypergraph_tables.js';
|
|
8
8
|
import { PATTERN_NULLS_SCHEMA } from '../migrations/20260611_add_pattern_nulls_table.js';
|
|
9
9
|
import { LEARNING_EVIDENCE_SCHEMA } from '../migrations/20260830_add_learning_evidence_tables.js';
|
|
10
|
-
|
|
11
|
-
export
|
|
10
|
+
import { DREAM_INSIGHTS_ARCHIVE_SCHEMA } from '../migrations/20261018_add_dream_insights_archive.js';
|
|
11
|
+
export { HYPERGRAPH_SCHEMA, PATTERN_NULLS_SCHEMA, LEARNING_EVIDENCE_SCHEMA, DREAM_INSIGHTS_ARCHIVE_SCHEMA };
|
|
12
|
+
export declare const SCHEMA_VERSION = 14;
|
|
12
13
|
export declare const SCHEMA_VERSION_TABLE = "\n CREATE TABLE IF NOT EXISTS schema_version (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n version INTEGER NOT NULL,\n migrated_at TEXT DEFAULT (datetime('now'))\n );\n";
|
|
13
14
|
export declare const KV_STORE_SCHEMA = "\n -- Key-Value Store (v2 compatible - same schema as HybridBackend)\n CREATE TABLE IF NOT EXISTS kv_store (\n key TEXT NOT NULL,\n namespace TEXT NOT NULL,\n value TEXT NOT NULL,\n expires_at INTEGER,\n created_at INTEGER DEFAULT (strftime('%s', 'now') * 1000),\n PRIMARY KEY (namespace, key)\n );\n CREATE INDEX IF NOT EXISTS idx_kv_namespace ON kv_store(namespace);\n CREATE INDEX IF NOT EXISTS idx_kv_expires ON kv_store(expires_at) WHERE expires_at IS NOT NULL;\n";
|
|
14
15
|
export declare const VECTORS_SCHEMA = "\n -- Vector Embeddings (new in v3 - replaces in-memory AgentDB)\n CREATE TABLE IF NOT EXISTS vectors (\n id TEXT PRIMARY KEY,\n namespace TEXT NOT NULL DEFAULT 'default',\n embedding BLOB NOT NULL,\n dimensions INTEGER NOT NULL,\n metadata TEXT,\n created_at TEXT DEFAULT (datetime('now')),\n updated_at TEXT DEFAULT (datetime('now'))\n );\n CREATE INDEX IF NOT EXISTS idx_vectors_namespace ON vectors(namespace);\n CREATE INDEX IF NOT EXISTS idx_vectors_dimensions ON vectors(dimensions);\n";
|
|
@@ -7,12 +7,13 @@
|
|
|
7
7
|
import { HYPERGRAPH_SCHEMA } from '../migrations/20260120_add_hypergraph_tables.js';
|
|
8
8
|
import { PATTERN_NULLS_SCHEMA } from '../migrations/20260611_add_pattern_nulls_table.js';
|
|
9
9
|
import { LEARNING_EVIDENCE_SCHEMA } from '../migrations/20260830_add_learning_evidence_tables.js';
|
|
10
|
+
import { DREAM_INSIGHTS_ARCHIVE_SCHEMA } from '../migrations/20261018_add_dream_insights_archive.js';
|
|
10
11
|
// Re-export for convenience
|
|
11
|
-
export { HYPERGRAPH_SCHEMA, PATTERN_NULLS_SCHEMA, LEARNING_EVIDENCE_SCHEMA };
|
|
12
|
+
export { HYPERGRAPH_SCHEMA, PATTERN_NULLS_SCHEMA, LEARNING_EVIDENCE_SCHEMA, DREAM_INSIGHTS_ARCHIVE_SCHEMA };
|
|
12
13
|
// ============================================================================
|
|
13
14
|
// Schema Version for Migrations
|
|
14
15
|
// ============================================================================
|
|
15
|
-
export const SCHEMA_VERSION =
|
|
16
|
+
export const SCHEMA_VERSION = 14; // v12: learning evidence; v13: embedding-space provenance (#633); v14: dream_insights_archive (#1116)
|
|
16
17
|
export const SCHEMA_VERSION_TABLE = `
|
|
17
18
|
CREATE TABLE IF NOT EXISTS schema_version (
|
|
18
19
|
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
@@ -41,7 +41,7 @@ export { BinaryHeap, UnifiedHnswIndex, createHnswIndex } from './unified-memory-
|
|
|
41
41
|
// parity tests or benchmarks only.
|
|
42
42
|
import { UnifiedHnswIndex } from './unified-memory-hnsw.js';
|
|
43
43
|
// Import schemas
|
|
44
|
-
import { SCHEMA_VERSION, SCHEMA_VERSION_TABLE, KV_STORE_SCHEMA, VECTORS_SCHEMA, RL_QVALUES_SCHEMA, GOAP_SCHEMA, DREAM_SCHEMA, QE_PATTERNS_SCHEMA, QE_PATTERNS_FTS_SCHEMA, QE_PATTERNS_SCHEMA_WITHOUT_FTS, MINCUT_SCHEMA, SONA_PATTERNS_SCHEMA, FEEDBACK_SCHEMA, HYPERGRAPH_SCHEMA, PATTERN_NULLS_SCHEMA, STATS_TABLES, } from './unified-memory-schemas.js';
|
|
44
|
+
import { SCHEMA_VERSION, SCHEMA_VERSION_TABLE, KV_STORE_SCHEMA, VECTORS_SCHEMA, RL_QVALUES_SCHEMA, GOAP_SCHEMA, DREAM_SCHEMA, QE_PATTERNS_SCHEMA, QE_PATTERNS_FTS_SCHEMA, QE_PATTERNS_SCHEMA_WITHOUT_FTS, MINCUT_SCHEMA, SONA_PATTERNS_SCHEMA, FEEDBACK_SCHEMA, HYPERGRAPH_SCHEMA, PATTERN_NULLS_SCHEMA, DREAM_INSIGHTS_ARCHIVE_SCHEMA, STATS_TABLES, } from './unified-memory-schemas.js';
|
|
45
45
|
import { ensurePatternFtsInSync } from './pattern-fts-self-heal.js';
|
|
46
46
|
import { applyMigration as applyLearningEvidenceMigration } from '../migrations/20260830_add_learning_evidence_tables.js';
|
|
47
47
|
// CRDT imports for distributed state synchronization
|
|
@@ -432,10 +432,20 @@ export class UnifiedMemoryManager {
|
|
|
432
432
|
this.db.exec(SCHEMA_VERSION_TABLE);
|
|
433
433
|
this.handleV2SchemaIncompatibilities();
|
|
434
434
|
const versionRow = this.db.prepare('SELECT version FROM schema_version WHERE id = 1').get();
|
|
435
|
-
const
|
|
436
|
-
if (
|
|
437
|
-
console.log(`[UnifiedMemory] Migrating from v${
|
|
435
|
+
const observedVersion = versionRow?.version ?? 0;
|
|
436
|
+
if (observedVersion < SCHEMA_VERSION) {
|
|
437
|
+
console.log(`[UnifiedMemory] Migrating from v${observedVersion} to v${SCHEMA_VERSION}`);
|
|
438
|
+
// #1116: IMMEDIATE takes the write lock before the first statement, so a
|
|
439
|
+
// concurrent opener waits on busy_timeout instead of failing with
|
|
440
|
+
// SQLITE_BUSY when a deferred read transaction has to upgrade (CREATE
|
|
441
|
+
// INDEX after a CREATE TABLE IF NOT EXISTS that only read). The version is
|
|
442
|
+
// read again under that lock: a process that waited applies only what the
|
|
443
|
+
// first one left, instead of re-running steps from a stale version.
|
|
438
444
|
const migrate = this.db.transaction(() => {
|
|
445
|
+
const lockedRow = this.db.prepare('SELECT version FROM schema_version WHERE id = 1').get();
|
|
446
|
+
const currentVersion = lockedRow?.version ?? 0;
|
|
447
|
+
if (currentVersion >= SCHEMA_VERSION)
|
|
448
|
+
return currentVersion;
|
|
439
449
|
if (currentVersion < 1)
|
|
440
450
|
this.db.exec(KV_STORE_SCHEMA);
|
|
441
451
|
if (currentVersion < 2)
|
|
@@ -472,13 +482,22 @@ export class UnifiedMemoryManager {
|
|
|
472
482
|
applyLearningEvidenceMigration(this.db);
|
|
473
483
|
if (currentVersion < 13)
|
|
474
484
|
this.migrateToV13EmbeddingSpace();
|
|
485
|
+
// #1116: additive; a table an earlier sweep created lazily is kept with its rows.
|
|
486
|
+
if (currentVersion < 14)
|
|
487
|
+
this.db.exec(DREAM_INSIGHTS_ARCHIVE_SCHEMA);
|
|
475
488
|
this.db.prepare(`
|
|
476
489
|
INSERT OR REPLACE INTO schema_version (id, version, migrated_at)
|
|
477
490
|
VALUES (1, ?, datetime('now'))
|
|
478
491
|
`).run(SCHEMA_VERSION);
|
|
492
|
+
return currentVersion;
|
|
479
493
|
});
|
|
480
|
-
migrate();
|
|
481
|
-
|
|
494
|
+
const migratedFrom = migrate.immediate();
|
|
495
|
+
if (migratedFrom >= SCHEMA_VERSION) {
|
|
496
|
+
console.log(`[UnifiedMemory] Another process completed the migration to v${SCHEMA_VERSION}`);
|
|
497
|
+
}
|
|
498
|
+
else {
|
|
499
|
+
console.log(`[UnifiedMemory] Migration complete`);
|
|
500
|
+
}
|
|
482
501
|
}
|
|
483
502
|
}
|
|
484
503
|
/**
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dream commit (#1060): compute, then commit.
|
|
3
|
+
*
|
|
4
|
+
* A dream cycle is computed entirely in memory (spreading activation and
|
|
5
|
+
* insight generation never touch the database). Its results are then written
|
|
6
|
+
* here in ONE synchronous better-sqlite3 transaction: the activation levels,
|
|
7
|
+
* the insights and the final cycle row. There is no `await` inside the
|
|
8
|
+
* transaction, so no foreground write on the shared connection can join it,
|
|
9
|
+
* and no lock is held while asynchronous work runs. A cancelled, failed or
|
|
10
|
+
* interrupted dream commits nothing beyond its cycle row.
|
|
11
|
+
*
|
|
12
|
+
* Before #1060 the dream wrote its results one awaited statement at a time
|
|
13
|
+
* (and, with opt-in branching, inside a SAVEPOINT held across the whole
|
|
14
|
+
* asynchronous dream), so a discard or a shutdown mid-dream rolled back
|
|
15
|
+
* foreground writes that had already been acknowledged.
|
|
16
|
+
*/
|
|
17
|
+
import type { Database as DatabaseType } from 'better-sqlite3';
|
|
18
|
+
import type { DreamCycle } from './types.js';
|
|
19
|
+
import type { DreamInsight } from './insight-generator.js';
|
|
20
|
+
/** Everything a dream cycle writes, computed before anything is written. */
|
|
21
|
+
export interface ComputedDream {
|
|
22
|
+
cycle: DreamCycle;
|
|
23
|
+
/**
|
|
24
|
+
* Final activation level per concept node (clamped to [0, 1] on write),
|
|
25
|
+
* with the level the dream loaded. A node whose stored level no longer
|
|
26
|
+
* equals `loadedLevel` was written by someone else during the dream and is
|
|
27
|
+
* left alone. Omit `loadedLevel` to write unconditionally.
|
|
28
|
+
*/
|
|
29
|
+
activations: ReadonlyArray<readonly [nodeId: string, level: number, loadedLevel?: number]>;
|
|
30
|
+
insights: readonly DreamInsight[];
|
|
31
|
+
}
|
|
32
|
+
export interface DreamCommitResult {
|
|
33
|
+
/** Wall-clock time the write transaction was open, in milliseconds. */
|
|
34
|
+
commitDurationMs: number;
|
|
35
|
+
/** Concept nodes updated (a node deleted meanwhile is skipped, not recreated). */
|
|
36
|
+
activationsWritten: number;
|
|
37
|
+
/** Activations skipped: the node vanished or a foreground write changed it. */
|
|
38
|
+
activationsSkipped: number;
|
|
39
|
+
insightsWritten: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Write a computed dream in one short synchronous transaction.
|
|
43
|
+
* Throws (and writes nothing) if any statement fails.
|
|
44
|
+
*/
|
|
45
|
+
export declare function commitDream(db: DatabaseType, dream: ComputedDream): DreamCommitResult;
|
|
46
|
+
/**
|
|
47
|
+
* Margin added to the longest dream duration before a `running` cycle is
|
|
48
|
+
* treated as abandoned (covers graph loading and insight generation).
|
|
49
|
+
* DreamEngine.initialize() sweeps cycles older than
|
|
50
|
+
* max(config.maxDurationMs, 60 s) + this margin, 11 minutes by default.
|
|
51
|
+
* Library callers running longer dreams must raise maxDurationMs on every
|
|
52
|
+
* engine sharing the database (see DreamEngine.dream()).
|
|
53
|
+
*/
|
|
54
|
+
export declare const ABANDONED_CYCLE_GRACE_MS: number;
|
|
55
|
+
/** Error recorded on a cycle the abandoned-cycle sweep marks interrupted. */
|
|
56
|
+
export declare const ABANDONED_CYCLE_ERROR = "abandoned: process exited";
|
|
57
|
+
/**
|
|
58
|
+
* Mark cycles a dead process left `running` as `interrupted` (#1060). Only a
|
|
59
|
+
* cycle that started more than `olderThanMs` ago is touched, so pass at least
|
|
60
|
+
* the longest dream duration plus ABANDONED_CYCLE_GRACE_MS: a cycle still
|
|
61
|
+
* running in another live process is then never marked. Rows are only
|
|
62
|
+
* updated, never deleted. Returns the number of cycles marked.
|
|
63
|
+
*/
|
|
64
|
+
export declare function markAbandonedCycles(db: DatabaseType, olderThanMs?: number, now?: number): number;
|
|
65
|
+
//# sourceMappingURL=dream-commit.d.ts.map
|