agentic-qe 3.13.5 → 3.13.7
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 +73 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-UIYF2P3E.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-XDKGG2GP.js → agent-booster-wasm-UOGKPGRU.js} +2 -2
- package/dist/cli/chunks/{agent-handler-CTPXGR5P.js → agent-handler-Q5R4WGEK.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-MG5OV7AY.js → agent-memory-branch-NHG52BFD.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-CKTFFDJ4.js +2 -0
- package/dist/cli/chunks/{arena-FAHVOHNG.js → arena-IV4MYEYB.js} +2 -2
- package/dist/cli/chunks/{arena-NYO4EUNQ.js → arena-PMAHTPQB.js} +4 -4
- package/dist/cli/chunks/{audit-6544RL5D.js → audit-PVN2O2AU.js} +3 -3
- package/dist/cli/chunks/base-I3FB7F6R.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-MTEONNCQ.js → better-sqlite3-4KVBGOT6.js} +2 -2
- package/dist/cli/chunks/{brain-handler-DPKCUQUC.js → brain-handler-GSJJVXQW.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-SU2KHC2C.js → branch-enumerator-OQU3U6FI.js} +2 -2
- package/dist/cli/chunks/{browser-ITDN72YJ.js → browser-CXOMLHII.js} +2 -2
- package/dist/cli/chunks/browser-workflow-NQ5SWXEP.js +2 -0
- package/dist/cli/chunks/{chunk-EROQSNGD.js → chunk-224MLOCT.js} +2 -2
- package/dist/cli/chunks/{chunk-JX5IY2YK.js → chunk-2LJNRAUF.js} +1 -1
- package/dist/cli/chunks/{chunk-YGMCRJSC.js → chunk-2QAJDG4E.js} +2 -2
- package/dist/cli/chunks/{chunk-W7H46LAX.js → chunk-3KVQOIOI.js} +1 -1
- package/dist/cli/chunks/{chunk-6L5V3JGJ.js → chunk-3MDGSITG.js} +1 -1
- package/dist/cli/chunks/{chunk-AKZ6PWHM.js → chunk-3SBO6CDL.js} +2 -2
- package/dist/cli/chunks/{chunk-D4P6BKGF.js → chunk-45QJQSLD.js} +3 -3
- package/dist/cli/chunks/{chunk-EXXWOOUL.js → chunk-46H7GRXK.js} +3 -3
- package/dist/cli/chunks/{chunk-74QRMQFR.js → chunk-4LGZGIQL.js} +2 -2
- package/dist/cli/chunks/{chunk-KAVYTFAS.js → chunk-4PNXUJMO.js} +2 -2
- package/dist/cli/chunks/{chunk-3XKCC7LE.js → chunk-5EFWFB3L.js} +1 -1
- package/dist/cli/chunks/{chunk-JID7JO7K.js → chunk-5FWWHLQ3.js} +2 -2
- package/dist/cli/chunks/{chunk-CD4YWKJ2.js → chunk-5LGNTDKU.js} +2 -2
- package/dist/cli/chunks/{chunk-IS3P5VBL.js → chunk-5VE4GP67.js} +2 -2
- package/dist/cli/chunks/{chunk-YG45ZONW.js → chunk-6COKVAQM.js} +2 -2
- package/dist/cli/chunks/{chunk-EPMUAKU2.js → chunk-6F5UFJIA.js} +2 -2
- package/dist/cli/chunks/{chunk-IC5JGTM4.js → chunk-6VMQH2G3.js} +1 -1
- package/dist/cli/chunks/{chunk-AX4XIG4G.js → chunk-6YUBBESI.js} +2 -2
- package/dist/cli/chunks/{chunk-54C3OHES.js → chunk-75MQX436.js} +1 -1
- package/dist/cli/chunks/{chunk-THQ5ZBWP.js → chunk-7644FEFM.js} +2 -2
- package/dist/cli/chunks/{chunk-XNGYWOAK.js → chunk-77OIG5EX.js} +2 -2
- package/dist/cli/chunks/{chunk-WZI2REDL.js → chunk-7CYA7JBH.js} +2 -2
- package/dist/cli/chunks/{chunk-VRV7CXEM.js → chunk-7F2KPWTO.js} +1 -1
- package/dist/cli/chunks/{chunk-G47WJMHM.js → chunk-7XA2YLCK.js} +1 -1
- package/dist/cli/chunks/chunk-7ZSEZOEQ.js +15 -0
- package/dist/cli/chunks/{chunk-OGUPLNRY.js → chunk-A3QP6NWO.js} +1 -1
- package/dist/cli/chunks/{chunk-6ZCAZ3TR.js → chunk-A3XAWNOW.js} +2 -2
- package/dist/cli/chunks/{chunk-ZUIPUO7Q.js → chunk-ABWZERCN.js} +1 -1
- package/dist/cli/chunks/chunk-AF7EKTC3.js +2 -0
- package/dist/cli/chunks/{chunk-LELWVGN6.js → chunk-ALN3LOMK.js} +1 -1
- package/dist/cli/chunks/{chunk-UGER2PGN.js → chunk-AUJZUMJ2.js} +4 -4
- package/dist/cli/chunks/{chunk-ND7IWTVQ.js → chunk-AXHKDE6N.js} +2 -2
- package/dist/cli/chunks/{chunk-YFD6K7AS.js → chunk-BCF6GEFU.js} +23 -23
- package/dist/cli/chunks/{chunk-6H3I36DL.js → chunk-BP63FIKW.js} +2 -2
- package/dist/cli/chunks/{chunk-YSWI3APU.js → chunk-BUHD5KMR.js} +2 -2
- package/dist/cli/chunks/{chunk-PSD2L2JB.js → chunk-BX32VXZP.js} +2 -2
- package/dist/cli/chunks/{chunk-2QI3OJAC.js → chunk-C4LN2HKE.js} +3 -3
- package/dist/cli/chunks/{chunk-K55D3PAR.js → chunk-CMDMOKGH.js} +3 -3
- package/dist/cli/chunks/{chunk-HBYVYLBN.js → chunk-COM3MXBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-42KQE5H6.js → chunk-CPDTUQGT.js} +3 -3
- package/dist/cli/chunks/{chunk-YU4U3BUY.js → chunk-CT5ZBNWB.js} +1 -1
- package/dist/cli/chunks/{chunk-TU5S33SD.js → chunk-DM3S4WNW.js} +2 -2
- package/dist/cli/chunks/{chunk-GHSP4AC5.js → chunk-DNAB56KC.js} +1 -1
- package/dist/cli/chunks/{chunk-VE5STFDP.js → chunk-DPEI46VM.js} +2 -2
- package/dist/cli/chunks/{chunk-DIRFXY3J.js → chunk-DRTXG2DG.js} +2 -2
- package/dist/cli/chunks/{chunk-SQDHFTGQ.js → chunk-DXLDSACI.js} +3 -3
- package/dist/cli/chunks/{chunk-SN57SNLU.js → chunk-EPYGDRMU.js} +2 -2
- package/dist/cli/chunks/{chunk-MX35PIGJ.js → chunk-EV7S4J35.js} +2 -2
- package/dist/cli/chunks/{chunk-OF5UL3FA.js → chunk-EXIV2D3R.js} +1 -1
- package/dist/cli/chunks/{chunk-2KPGJ4LO.js → chunk-EXXAQ3ZT.js} +2 -2
- package/dist/cli/chunks/{chunk-NVZ3QROA.js → chunk-F55LPGNQ.js} +2 -2
- package/dist/cli/chunks/{chunk-OJZ5LI3O.js → chunk-FFJ4T5P7.js} +1 -1
- package/dist/cli/chunks/{chunk-CHFZHORO.js → chunk-FT3I5BNS.js} +5 -5
- package/dist/cli/chunks/{chunk-OUWZTYRZ.js → chunk-FWU55NEY.js} +2 -2
- package/dist/cli/chunks/chunk-GAYYOIRM.js +2 -0
- package/dist/cli/chunks/{chunk-ZWLFEZQC.js → chunk-GC5TDDOT.js} +1 -1
- package/dist/cli/chunks/{chunk-5YIGAWBO.js → chunk-GDCPI6GS.js} +2 -2
- package/dist/cli/chunks/{chunk-DK7MV2W3.js → chunk-GIRACYH4.js} +1 -1
- package/dist/cli/chunks/{chunk-UUFLYBUO.js → chunk-GK6U2SQ2.js} +2 -2
- package/dist/cli/chunks/{chunk-2XZWYKXQ.js → chunk-GYQEFUG7.js} +1 -1
- package/dist/cli/chunks/{chunk-7LR4VP2I.js → chunk-H6SKPDAR.js} +1 -1
- package/dist/cli/chunks/{chunk-76OWM3ZO.js → chunk-H7GTLWPW.js} +2 -2
- package/dist/cli/chunks/{chunk-AJYJFIKO.js → chunk-HA6OYSPC.js} +2 -2
- package/dist/cli/chunks/{chunk-QLD2WVWN.js → chunk-HFZYYDV5.js} +2 -2
- package/dist/cli/chunks/{chunk-HZV3J4VQ.js → chunk-HG2QGS2M.js} +2 -2
- package/dist/cli/chunks/{chunk-PKCVQ2I4.js → chunk-HPSL2WBW.js} +1 -1
- package/dist/cli/chunks/{chunk-FW6OPDA6.js → chunk-HT4NYS4F.js} +1 -1
- package/dist/cli/chunks/{chunk-EGI6SKQD.js → chunk-HYQZHUGU.js} +4 -4
- package/dist/cli/chunks/{chunk-2RZ2S6YR.js → chunk-IE3FM6U3.js} +2 -2
- package/dist/cli/chunks/chunk-IVNRCF65.js +2 -0
- package/dist/cli/chunks/{chunk-FQPYD6YE.js → chunk-J5TFIVO2.js} +1 -1
- package/dist/cli/chunks/{chunk-43BXSNKU.js → chunk-J6EK6TC2.js} +2 -2
- package/dist/cli/chunks/{chunk-WDDU4I5Z.js → chunk-JDPYQDKI.js} +1 -1
- package/dist/cli/chunks/{chunk-ZE3WS57T.js → chunk-KS2HVX52.js} +2 -2
- package/dist/cli/chunks/{chunk-DFBJPOJR.js → chunk-L4I2JS74.js} +2 -2
- package/dist/cli/chunks/{chunk-2CF3XZAS.js → chunk-L74WFBDA.js} +2 -2
- package/dist/cli/chunks/{chunk-QIHKSRUZ.js → chunk-LBMJYLGR.js} +2 -2
- package/dist/cli/chunks/{chunk-S2EUFKHL.js → chunk-LHYN6YTN.js} +2 -2
- package/dist/cli/chunks/{chunk-JTUTZUED.js → chunk-LPUWOM7Y.js} +2 -2
- package/dist/cli/chunks/{chunk-6BEMH5K5.js → chunk-LY7UPFTJ.js} +1 -1
- package/dist/cli/chunks/{chunk-LARAXKTZ.js → chunk-MBLO72OZ.js} +2 -2
- package/dist/cli/chunks/{chunk-7A4EXSMN.js → chunk-ME4KYCIL.js} +2 -2
- package/dist/cli/chunks/{chunk-YIEMVVUH.js → chunk-MPGZE4PD.js} +2 -2
- package/dist/cli/chunks/{chunk-AKYOY5KR.js → chunk-MYCMFN33.js} +2 -2
- package/dist/cli/chunks/{chunk-ZOD37GNG.js → chunk-N2PG6TYS.js} +3 -3
- package/dist/cli/chunks/{chunk-RKXN5TVS.js → chunk-NGBJH26X.js} +1 -1
- package/dist/cli/chunks/{chunk-HMNBNGNO.js → chunk-NLK5WBOS.js} +1 -1
- package/dist/cli/chunks/{chunk-PNDWHSZO.js → chunk-NQPS7FM5.js} +2 -2
- package/dist/cli/chunks/{chunk-GUO6JZMS.js → chunk-NY332ER7.js} +2 -2
- package/dist/cli/chunks/{chunk-64GTU5LR.js → chunk-OCAJJUPV.js} +2 -2
- package/dist/cli/chunks/{chunk-DVYNBMMP.js → chunk-ON57SN44.js} +2 -2
- package/dist/cli/chunks/{chunk-BAJK26EI.js → chunk-ORV3E477.js} +2 -2
- package/dist/cli/chunks/{chunk-BX5MY65W.js → chunk-P354IPGG.js} +1 -1
- package/dist/cli/chunks/{chunk-FYWTMDID.js → chunk-PTQYCACC.js} +2 -2
- package/dist/cli/chunks/{chunk-V2T7QEPV.js → chunk-Q6BYBRNA.js} +1 -1
- package/dist/cli/chunks/{chunk-Q3J5OTZ2.js → chunk-Q6LE7RY6.js} +1 -1
- package/dist/cli/chunks/{chunk-7SQXEYII.js → chunk-QDTIOZHQ.js} +2 -2
- package/dist/cli/chunks/{chunk-BI6OTPC6.js → chunk-QFHUATTI.js} +2 -2
- package/dist/cli/chunks/{chunk-KRCIC4JK.js → chunk-QGZLVH3E.js} +2 -2
- package/dist/cli/chunks/{chunk-RDHBUCKQ.js → chunk-QM2QPZOR.js} +10 -10
- package/dist/cli/chunks/{chunk-557BFPDB.js → chunk-QV7PAJHO.js} +2 -2
- package/dist/cli/chunks/{chunk-7M4X6WTF.js → chunk-QVQYDUMR.js} +2 -2
- package/dist/cli/chunks/{chunk-WLY2J6JP.js → chunk-QVXMF6DS.js} +2 -2
- package/dist/cli/chunks/{chunk-PEHSTLU7.js → chunk-RBFX56HK.js} +1 -1
- package/dist/cli/chunks/{chunk-6RV3W2UZ.js → chunk-RJ5G3IZY.js} +1 -1
- package/dist/cli/chunks/{chunk-Z5YNYVFO.js → chunk-RQ4GKJ6H.js} +1 -1
- package/dist/cli/chunks/{chunk-GITS44TM.js → chunk-RSJVIUDH.js} +2 -2
- package/dist/cli/chunks/{chunk-7PHF2JM3.js → chunk-S2SNDC2D.js} +1 -1
- package/dist/cli/chunks/{chunk-G73XY2NK.js → chunk-S3RAJZ2A.js} +2 -2
- package/dist/cli/chunks/{chunk-7BLXINIL.js → chunk-S6CNNFVF.js} +25 -25
- package/dist/cli/chunks/{chunk-L6I2Q6UQ.js → chunk-SI56H5MC.js} +1 -1
- package/dist/cli/chunks/{chunk-OQ4HOHBI.js → chunk-TMTWC6M6.js} +2 -2
- package/dist/cli/chunks/{chunk-BUN4WBPW.js → chunk-U5SAFRHE.js} +2 -2
- package/dist/cli/chunks/{chunk-NFE4RV2Q.js → chunk-ULKMV4XT.js} +2 -2
- package/dist/cli/chunks/{chunk-ELC3UEML.js → chunk-UMWO6V7E.js} +1 -1
- package/dist/cli/chunks/{chunk-R4VDRE75.js → chunk-UOFNGPDM.js} +1 -1
- package/dist/cli/chunks/{chunk-ZMA5OWIQ.js → chunk-UZRZCM2M.js} +4 -4
- package/dist/cli/chunks/{chunk-U5GGDJ44.js → chunk-VA4JFEA6.js} +2 -2
- package/dist/cli/chunks/{chunk-AAGOBPIJ.js → chunk-VHQZBUOP.js} +2 -2
- package/dist/cli/chunks/{chunk-3EWWP3AO.js → chunk-VLWOF654.js} +1 -1
- package/dist/cli/chunks/{chunk-UWM4CCK7.js → chunk-VPQP342J.js} +1 -1
- package/dist/cli/chunks/{chunk-M7456ZW5.js → chunk-VXTNM7PA.js} +1 -1
- package/dist/cli/chunks/{chunk-VNRWJ5JZ.js → chunk-W3T6WFQK.js} +2 -2
- package/dist/cli/chunks/{chunk-23AO43XW.js → chunk-X5R4M2PW.js} +1 -1
- package/dist/cli/chunks/{chunk-JOJ2UFHM.js → chunk-XI2EEMNJ.js} +2 -2
- package/dist/cli/chunks/{chunk-4Z7JP7CD.js → chunk-XNQWCGR5.js} +2 -2
- package/dist/cli/chunks/{chunk-RGBYJAKQ.js → chunk-XQWHBFR4.js} +3 -3
- package/dist/cli/chunks/{chunk-4E2NA2GY.js → chunk-XVCB7KRX.js} +2 -2
- package/dist/cli/chunks/{chunk-QHX7VLVT.js → chunk-XVZZETXQ.js} +2 -2
- package/dist/cli/chunks/{chunk-MF6OT43N.js → chunk-XZMMFR2F.js} +1 -1
- package/dist/cli/chunks/{chunk-APMLMLSL.js → chunk-XZP7AYHS.js} +1 -1
- package/dist/cli/chunks/{chunk-CPIAZGHF.js → chunk-Y2NOIPIR.js} +2 -2
- package/dist/cli/chunks/{chunk-5I5KMIFY.js → chunk-YIAAXMQN.js} +2 -2
- package/dist/cli/chunks/{chunk-L6H4MWVN.js → chunk-YJUME3OF.js} +2 -2
- package/dist/cli/chunks/{chunk-WSSFH23M.js → chunk-YSB6GH53.js} +1 -1
- package/dist/cli/chunks/{chunk-GWBV26SE.js → chunk-Z7KEY7LW.js} +2 -2
- package/dist/cli/chunks/{chunk-PDOL3FGO.js → chunk-ZIN7U72B.js} +3 -3
- package/dist/cli/chunks/{chunk-ZQ7XQLLV.js → chunk-ZRETM57V.js} +3 -3
- package/dist/cli/chunks/{chunk-XACF7ZLM.js → chunk-ZWOIE55K.js} +2 -2
- package/dist/cli/chunks/{ci-IRCNFD32.js → ci-CXCKYXKG.js} +2 -2
- package/dist/cli/chunks/{ci-output-NFOUNDJ2.js → ci-output-OOHIVRSH.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-GB7SQRD2.js → circuit-breaker-32GSBTWS.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-STFKPPVL.js → claude-flow-setup-4S5KMQV7.js} +2 -2
- package/dist/cli/chunks/client-63SX5VIZ.js +2 -0
- package/dist/cli/chunks/{cline-installer-MLKKIHIV.js → cline-installer-WPHR3JAY.js} +2 -2
- package/dist/cli/chunks/{code-ZRCJC42H.js → code-UN2SHAOD.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-VWDYYQY2.js → code-index-extractor-ML7FPQRV.js} +2 -2
- package/dist/cli/chunks/{codex-installer-I5BTWYQV.js → codex-installer-CNQM7D2K.js} +2 -2
- package/dist/cli/chunks/{completions-5JCAFTQV.js → completions-ULBMFDYW.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-6JLLAPGO.js → complexity-analyzer-DNOF6MWS.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-YBOLMUZR.js → continuedev-installer-SALVVLBA.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-GDBJZBXS.js → copilot-installer-2QQT7KAX.js} +2 -2
- package/dist/cli/chunks/core-handlers-LMFAYPU2.js +2 -0
- package/dist/cli/chunks/{cost-tracker-NEAVGEZI.js → cost-tracker-KJHJMCPN.js} +2 -2
- package/dist/cli/chunks/{coverage-DXS5XNAA.js → coverage-A4XD3KK2.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-SVZLA5ZT.js +2 -0
- package/dist/cli/chunks/{cursor-installer-3KEMFIFA.js → cursor-installer-HKSSBI5E.js} +2 -2
- package/dist/cli/chunks/{daemon-JN377KTA.js → daemon-HMRQGUXY.js} +4 -4
- package/dist/cli/chunks/{daemon-FT2J6VY4.js → daemon-PHEIMUIL.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-EJFEWFXI.js → dag-attention-scheduler-WLUSL2PN.js} +2 -2
- package/dist/cli/chunks/{detect-E5MN6N3L.js → detect-CVP3I7EK.js} +2 -2
- package/dist/cli/chunks/{dist-node-ZFSAQMFD.js → dist-node-BGMG54IM.js} +2 -2
- package/dist/cli/chunks/{domain-handler-S7VFZ2MY.js → domain-handler-BBKVSCEY.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-LGHT3FN4.js → domain-transfer-YGSL3GPA.js} +2 -2
- package/dist/cli/chunks/dream-SHNPRLRM.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-OVQS6IKK.js → embed-and-insert-pattern-QSHUNRQG.js} +2 -2
- package/dist/cli/chunks/{eval-45UWDD2R.js → eval-K3EQBGVU.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-XDRJSNPY.js → experience-capture-middleware-EVQXI6U2.js} +3 -3
- package/dist/cli/chunks/{fast-paths-VEDCJL75.js → fast-paths-RCUTEKJN.js} +2 -2
- package/dist/cli/chunks/{feature-flags-TGA3NWVL.js → feature-flags-CG4UQ3QX.js} +2 -2
- package/dist/cli/chunks/{feature-flags-NOTQVBLP.js → feature-flags-WNH7NIHC.js} +2 -2
- package/dist/cli/chunks/{file-discovery-AHMR6IGX.js → file-discovery-HEK73IOG.js} +2 -2
- package/dist/cli/chunks/{fleet-CQBUCH2S.js → fleet-DYJZVSGZ.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-SOZCIONJ.js → gnn-wrapper-562P4VXW.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-6XNV4DGM.js → heartbeat-handler-XHIRKGM2.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-U72YZ3NB.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-U2GLM5AE.js +2 -0
- package/dist/cli/chunks/hnsw-index-32LSC37N.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-UILVP37N.js → hnsw-legacy-bridge-H2PYZ2TT.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-OHJQOSAH.js → hnswlib-node-3AJM5KVO.js} +2 -2
- package/dist/cli/chunks/{hooks-QVDOGEHG.js → hooks-N7F7Z362.js} +47 -47
- package/dist/cli/chunks/hybrid-router-4IEDWMTZ.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-YMVPBXZS.js → hypergraph-engine-MVY2ADYA.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-SHUNZXUK.js → hypergraph-handler-IOS5X4ZI.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-22V4R3YH.js +2 -0
- package/dist/cli/chunks/{init-handler-JE5FYJAV.js → init-handler-UWEA63JI.js} +6 -6
- package/dist/cli/chunks/init-wizard-PPI7JDU6.js +2 -0
- package/dist/cli/chunks/kernel-PL2K5MLT.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-TVP4YOOK.js → kilocode-installer-LUH2XG4P.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-XBSGANX7.js → kiro-installer-F2ZG3FIZ.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-AOE6FEQR.js +2 -0
- package/dist/cli/chunks/learning-XBMJWGAV.js +119 -0
- package/dist/cli/chunks/{llm-router-FXXJHARR.js → llm-router-DRX7E7XI.js} +4 -4
- package/dist/cli/chunks/llm-router-service-3XZI7TE5.js +2 -0
- package/dist/cli/chunks/{load-IVF6G2SK.js → load-Y4QJSQQS.js} +2 -2
- package/dist/cli/chunks/load-test-6DIMN4MM.js +2 -0
- package/dist/cli/chunks/{mcp-VXSDVG3H.js → mcp-62XB5F5Q.js} +2 -2
- package/dist/cli/chunks/{memory-BINJV3M6.js → memory-ONR7ZN3X.js} +7 -7
- package/dist/cli/chunks/memory-backend-UAMIFHQQ.js +2 -0
- package/dist/cli/chunks/memory-handlers-4IAS3VY7.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-RJHYK6JI.js → multi-model-executor-6IUW6I3H.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-VCTF5ETL.js → opencode-installer-W47DIP2D.js} +2 -2
- package/dist/cli/chunks/{orchestrator-5SKZ2BOK.js → orchestrator-FKO5AACT.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-35S3ZRS6.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-AY2DAOQO.js → pattern-usage-recorder-VEPEFTCF.js} +2 -2
- package/dist/cli/chunks/{pipeline-EMBMC75N.js → pipeline-RIITAMZ2.js} +2 -2
- package/dist/cli/chunks/{platform-GADIFXCI.js → platform-SA5TZEZD.js} +2 -2
- package/dist/cli/chunks/{plugin-Q234ZAAY.js → plugin-F4AN3WVB.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-CXXKYB2P.js → prime-radiant-advanced-wasm-Y35DFGMR.js} +2 -2
- package/dist/cli/chunks/protocol-executor-PHJMZT27.js +2 -0
- package/dist/cli/chunks/{protocol-handler-ZZRFBVNA.js → protocol-handler-UCURNXLA.js} +2 -2
- package/dist/cli/chunks/{prove-7674ATXK.js → prove-WS57IMPA.js} +2 -2
- package/dist/cli/chunks/provider-manager-TKDL73H3.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-DHEF6CTL.js +2 -0
- package/dist/cli/chunks/{quality-QCIGVN2S.js → quality-6UEGUSJX.js} +2 -2
- package/dist/cli/chunks/{quality-gate-AKV564GE.js → quality-gate-Z4FU2NR2.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-57MCIW2B.js +2 -0
- package/dist/cli/chunks/{real-embeddings-74POUVMX.js → real-embeddings-DFB2TSY3.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-INBL5AG7.js → roocode-installer-TVENBIIA.js} +2 -2
- package/dist/cli/chunks/router-V656FUDE.js +2 -0
- package/dist/cli/chunks/routing-feedback-77GLEBXR.js +2 -0
- package/dist/cli/chunks/{routing-handler-C7HMM7RL.js → routing-handler-LZFOVMDI.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-PT6LRVCW.js → ruvector-commands-HYSHR2XO.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-PRKROTP3.js → rvf-dual-writer-ZDCAEQDN.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-ZI2XW4UX.js → rvf-migration-adapter-64U4XRDC.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-5JTGP35V.js → rvf-migration-coordinator-C3WP56PE.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-34Q74G5N.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-3B5TZTFR.js → rvf-store-integrity-HNVPA6JZ.js} +2 -2
- package/dist/cli/chunks/safe-db-Y754OIYY.js +2 -0
- package/dist/cli/chunks/schedule-GMKXLREO.js +2 -0
- package/dist/cli/chunks/scheduler-OIHBKLRQ.js +2 -0
- package/dist/cli/chunks/{security-IMIWSAHW.js → security-KIR5E67V.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-UDKJNX6I.js → shared-rvf-adapter-AEMVXITE.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-FQOBQ6S5.js → shared-rvf-dual-writer-J55TEO2S.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-QLTL46UG.js +2 -0
- package/dist/cli/chunks/{status-handler-7WON7M7F.js → status-handler-65JO3QZE.js} +2 -2
- package/dist/cli/chunks/{structural-health-JTKTO3A4.js → structural-health-Y5ZIQWSV.js} +2 -2
- package/dist/cli/chunks/{sync-6ABYTAOL.js → sync-DCMEOJAW.js} +2 -2
- package/dist/cli/chunks/{sync-UJSHBY3B.js → sync-TSFE2JJR.js} +2 -2
- package/dist/cli/chunks/{task-handler-5TZNOCCB.js → task-handler-RWGEJWEH.js} +2 -2
- package/dist/cli/chunks/{task-handlers-G7ZUGBHM.js → task-handlers-BXS6YXRM.js} +3 -3
- package/dist/cli/chunks/{test-BSJ6MVTG.js → test-3W2FHMQX.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-OSJJXIYQ.js → test-scheduling-XNH4DWBN.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-MRNFR4YI.js → token-bootstrap-MB3MJMZM.js} +2 -2
- package/dist/cli/chunks/{token-usage-YQN7ND7G.js → token-usage-YO56DQAT.js} +2 -2
- package/dist/cli/chunks/{transformers-QL3AG25C.js → transformers-VQ6LTFGM.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-BECZRRZP.js → tree-sitter-wasm-parser-XSFCTQKS.js} +2 -2
- package/dist/cli/chunks/{types-FQSNLPWS.js → types-72CNMUHH.js} +2 -2
- package/dist/cli/chunks/unified-memory-EG7MANFS.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-GBZ5WSQU.js +2 -0
- package/dist/cli/chunks/unified-persistence-NZRIIHU5.js +2 -0
- package/dist/cli/chunks/{upgrade-2ICXXV6D.js → upgrade-P6ZEWWUQ.js} +2 -2
- package/dist/cli/chunks/{validate-LPAUH2F4.js → validate-Q6HN2RTN.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-VWVE2GM7.js → validate-swarm-JAOHXMJD.js} +2 -2
- package/dist/cli/chunks/{vibium-U3LBEI4K.js → vibium-2A7PDY4D.js} +2 -2
- package/dist/cli/chunks/visual-security-IEPJVARC.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-QGZXQPXU.js → web-tree-sitter-YE53Z4LF.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-GGLQJWUI.js → windsurf-installer-RPTAPUTS.js} +2 -2
- package/dist/cli/chunks/{witness-chain-47A2AXUS.js → witness-chain-CTWDOKUD.js} +2 -2
- package/dist/cli/chunks/witness-chain-ZNAEFUIY.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-FVS7UOWM.js → witness-key-manager-UC3ZLEZI.js} +2 -2
- package/dist/cli/chunks/{workflow-KIZPLTYW.js → workflow-ZETHCXEN.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-B4BRRXDJ.js +2 -0
- package/dist/cli/chunks/{wrappers-ER6XCMT6.js → wrappers-JJCXXF7Y.js} +2 -2
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +16 -27
- package/dist/cli/commands/learning.js +66 -0
- package/dist/cli/commands/memory.js +3 -0
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.d.ts +2 -0
- package/dist/integrations/agentic-flow/reasoning-bank/experience-replay.js +14 -0
- package/dist/kernel/hybrid-backend.d.ts +3 -2
- package/dist/kernel/hybrid-backend.js +6 -2
- package/dist/kernel/interfaces.d.ts +12 -2
- package/dist/kernel/memory-backend.d.ts +3 -2
- package/dist/kernel/memory-backend.js +11 -1
- package/dist/kernel/native-hnsw-backend.js +8 -6
- package/dist/kernel/unified-memory.d.ts +3 -1
- package/dist/kernel/unified-memory.js +59 -9
- package/dist/learning/real-embeddings.js +1 -1
- package/dist/learning/sqlite-persistence.d.ts +3 -2
- package/dist/learning/sqlite-persistence.js +7 -8
- package/dist/mcp/bundle.js +277 -277
- package/dist/mcp/handlers/memory-handlers.d.ts +2 -0
- package/dist/mcp/handlers/memory-handlers.js +15 -7
- package/dist/mcp/types.d.ts +10 -0
- package/package.json +4 -2
- package/dist/cli/chunks/adapter-QGJAFSG5.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-ZU735SG7.js +0 -2
- package/dist/cli/chunks/base-EKTX2PRE.js +0 -2
- package/dist/cli/chunks/browser-workflow-BUPIMI3E.js +0 -2
- package/dist/cli/chunks/chunk-BKI5NFQ5.js +0 -2
- package/dist/cli/chunks/chunk-ELKWYWTD.js +0 -2
- package/dist/cli/chunks/chunk-WAELEQP5.js +0 -2
- package/dist/cli/chunks/chunk-X53GJW2E.js +0 -15
- package/dist/cli/chunks/client-M4WF22UT.js +0 -2
- package/dist/cli/chunks/core-handlers-3MNFXL44.js +0 -2
- package/dist/cli/chunks/cross-domain-router-Q5X6ZLJY.js +0 -2
- package/dist/cli/chunks/dream-5QB6JABW.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-ZRLIMPKO.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-R4VAEQ2B.js +0 -2
- package/dist/cli/chunks/hnsw-index-GTUOS6DF.js +0 -2
- package/dist/cli/chunks/hybrid-router-CYEXFWDT.js +0 -2
- package/dist/cli/chunks/impact-analyzer-HMJ7LAXR.js +0 -2
- package/dist/cli/chunks/init-wizard-OIK6S3PQ.js +0 -2
- package/dist/cli/chunks/kernel-NZCGR72Y.js +0 -2
- package/dist/cli/chunks/knowledge-graph-HA7XW46B.js +0 -2
- package/dist/cli/chunks/learning-O4ZXQVRE.js +0 -117
- package/dist/cli/chunks/llm-router-service-FVGQSXYC.js +0 -2
- package/dist/cli/chunks/load-test-IQTO35GE.js +0 -2
- package/dist/cli/chunks/memory-backend-YGSOJ7SI.js +0 -2
- package/dist/cli/chunks/memory-handlers-BJNFJZFP.js +0 -2
- package/dist/cli/chunks/pattern-null-store-4WN5O2PF.js +0 -2
- package/dist/cli/chunks/protocol-executor-EYTJXPXY.js +0 -2
- package/dist/cli/chunks/provider-manager-TM3JHYLL.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-6JLFP3HE.js +0 -2
- package/dist/cli/chunks/queen-coordinator-OKGOKGHI.js +0 -2
- package/dist/cli/chunks/router-J45OF4SP.js +0 -2
- package/dist/cli/chunks/routing-feedback-VTZFH57X.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-BDPUBFNP.js +0 -2
- package/dist/cli/chunks/safe-db-FHJBWJIB.js +0 -2
- package/dist/cli/chunks/schedule-LP7YYT4P.js +0 -2
- package/dist/cli/chunks/scheduler-BOZWGKJG.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-TDM36AHF.js +0 -2
- package/dist/cli/chunks/unified-memory-6PHUOZRH.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-WYSFH3PS.js +0 -2
- package/dist/cli/chunks/unified-persistence-QBGHDCCO.js +0 -2
- package/dist/cli/chunks/visual-security-LH7DRCDS.js +0 -2
- package/dist/cli/chunks/witness-chain-2BDZOPJ2.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-UYOPFK2T.js +0 -2
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.
|
|
3
|
-
import{a as v,b as fe,c as he}from"./chunk-
|
|
2
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.7");process.exit(0)}
|
|
3
|
+
import{a as v,b as fe,c as he}from"./chunk-C4LN2HKE.js";import{a as pe,b as ge}from"./chunk-L74WFBDA.js";import{a as ue}from"./chunk-7ZSEZOEQ.js";import{a as Y}from"./chunk-ALN3LOMK.js";import{d as W,h as ne}from"./chunk-46H7GRXK.js";import"./chunk-AUJZUMJ2.js";import"./chunk-P354IPGG.js";import"./chunk-QV7PAJHO.js";import"./chunk-NGBJH26X.js";import{b as K}from"./chunk-J5TFIVO2.js";import"./chunk-SI56H5MC.js";import"./chunk-LBMJYLGR.js";import"./chunk-ORV3E477.js";import"./chunk-5FWWHLQ3.js";import"./chunk-QVXMF6DS.js";import"./chunk-HYQZHUGU.js";import"./chunk-CPDTUQGT.js";import{i as M,m as U}from"./chunk-S6CNNFVF.js";import"./chunk-NQPS7FM5.js";import"./chunk-EV7S4J35.js";import{a as Le}from"./chunk-GAYYOIRM.js";import{c as de}from"./chunk-XNQWCGR5.js";import{b as R}from"./chunk-QVQYDUMR.js";import{b as le,d as Pe}from"./chunk-FWU55NEY.js";import{a as me}from"./chunk-HPSL2WBW.js";import"./chunk-OCAJJUPV.js";import"./chunk-NLK5WBOS.js";import"./chunk-VLWOF654.js";import"./chunk-A3XAWNOW.js";import"./chunk-Q6BYBRNA.js";import"./chunk-6F5UFJIA.js";import"./chunk-7644FEFM.js";import"./chunk-U5SAFRHE.js";import"./chunk-BP63FIKW.js";import"./chunk-Y2NOIPIR.js";import"./chunk-VHQZBUOP.js";import"./chunk-AF7EKTC3.js";import"./chunk-ME4KYCIL.js";import"./chunk-COM3MXBJ.js";import"./chunk-YSB6GH53.js";import{Command as ct}from"commander";import I from"chalk";import ye from"node:path";U();import{randomUUID as B}from"crypto";import $ from"chalk";var F="dream-scheduler:hook-state";async function ke(o,e,t){try{let{computeRealEmbedding:n}=await import("./real-embeddings-DFB2TSY3.js"),r=await n(t.slice(0,512));o.prepare("UPDATE captured_experiences SET embedding = ?, embedding_dimension = ? WHERE id = ?").run(Buffer.from(new Float32Array(r).buffer),r.length,e)}catch(n){console.error($.dim(`[hooks] embedding persistence: ${n instanceof Error?n.message:"unknown"}`))}}async function x(o){try{let e=await o.get(F);return e||(e={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0}),e.experienceCount++,await o.set(F,e),e.experienceCount}catch{return 0}}async function G(o){try{let{getUnifiedMemory:e}=await import("./unified-memory-EG7MANFS.js"),t=e();t.isInitialized()||await t.initialize();let{initializeExperienceCapture:n}=await import("./experience-capture-middleware-EVQXI6U2.js");await n();let r=t.getDatabase();try{r.pragma("busy_timeout = 60000")}catch{}let s=`cli-${Date.now()}-${B().slice(0,8)}`,a=o.durationMs||0,c;if(o.success){let i=a>0&&a<5e3?.1:0,k=o.source.includes("post-task")?.1:o.source.includes("post-edit")?.05:0;c=Math.min(.95,.7+i+k)}else{let i=o.source.includes("post-task")?.15:o.source.includes("post-edit")?.1:0;c=Math.min(.6,.3+i)}r.prepare(`
|
|
4
4
|
INSERT OR REPLACE INTO captured_experiences
|
|
5
5
|
(id, task, agent, domain, success, quality, duration_ms,
|
|
6
6
|
started_at, completed_at, source)
|
|
7
7
|
VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'), datetime('now'), ?)
|
|
8
|
-
`).run(s,o.task.slice(0,500),o.agent,o.domain,o.success?1:0,c,a,o.source),
|
|
8
|
+
`).run(s,o.task.slice(0,500),o.agent,o.domain,o.success?1:0,c,a,o.source),await ke(r,s,`${o.domain}: ${o.task}`)}catch(e){console.error($.dim(`[hooks] persistCommandExperience: ${e instanceof Error?e.message:"unknown"}`))}}async function oe(o){let{getUnifiedMemory:e}=await import("./unified-memory-EG7MANFS.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}try{n.exec(`
|
|
9
9
|
CREATE TABLE IF NOT EXISTS captured_experiences (
|
|
10
10
|
id TEXT PRIMARY KEY,
|
|
11
11
|
task TEXT NOT NULL,
|
|
@@ -40,16 +40,16 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
40
40
|
FOREIGN KEY (experience_id) REFERENCES captured_experiences(id) ON DELETE CASCADE
|
|
41
41
|
);
|
|
42
42
|
CREATE INDEX IF NOT EXISTS idx_exp_apps_experience ON experience_applications(experience_id);
|
|
43
|
-
`)}catch{}try{let u=n.prepare("PRAGMA table_info(qe_trajectories)").all();u.length>0&&!u.some(
|
|
43
|
+
`)}catch{}try{let u=n.prepare("PRAGMA table_info(qe_trajectories)").all();u.length>0&&!u.some(E=>E.name==="metadata_json")&&n.exec("ALTER TABLE qe_trajectories ADD COLUMN metadata_json TEXT")}catch{}let r=`exp-${Date.now()}-${B().slice(0,8)}`,s=`${o.agent}:${o.taskId}`,a=o.durationMs??0,c=o.success?1:0,i=a<100?1:a<500?.8:a<2e3?.6:a<5e3?.4:a<1e4?.2:.1,k=.25*c+.325+.1*i,l=null,g=0,d=0,h=n.transaction(()=>{n.prepare(`
|
|
44
44
|
INSERT INTO captured_experiences
|
|
45
45
|
(id, task, agent, domain, success, quality, duration_ms,
|
|
46
46
|
model_tier, started_at, completed_at, source)
|
|
47
47
|
VALUES (?, ?, ?, ?, ?, ?, ?, NULL, datetime('now'), datetime('now'), ?)
|
|
48
|
-
`).run(r,s.slice(0,500),o.agent,o.domain??"general",o.success?1:0,
|
|
48
|
+
`).run(r,s.slice(0,500),o.agent,o.domain??"general",o.success?1:0,k,a,"cli-hook-post-task"),n.prepare(`
|
|
49
49
|
INSERT INTO experience_applications
|
|
50
50
|
(id, experience_id, task, success, tokens_saved, feedback, applied_at)
|
|
51
51
|
VALUES (?, ?, ?, ?, ?, ?, datetime('now'))
|
|
52
|
-
`).run(`app-${Date.now()}-${B().slice(0,8)}`,r,s,o.success?1:0,Math.round(
|
|
52
|
+
`).run(`app-${Date.now()}-${B().slice(0,8)}`,r,s,o.success?1:0,Math.round(k*100),`[Patch 060] post-task outcome: ${o.success?"success":"failure"}`);try{let p=n.prepare(`
|
|
53
53
|
SELECT key, value FROM kv_store
|
|
54
54
|
WHERE namespace = 'task-bridge'
|
|
55
55
|
AND (expires_at IS NULL OR expires_at > strftime('%s','now') * 1000)
|
|
@@ -59,11 +59,11 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
59
59
|
INSERT INTO experience_applications
|
|
60
60
|
(id, experience_id, task, success, tokens_saved, feedback, applied_at)
|
|
61
61
|
VALUES (?, ?, ?, ?, ?, ?, datetime('now'))
|
|
62
|
-
`),
|
|
62
|
+
`),P=n.prepare(`
|
|
63
63
|
SELECT tier, successful_uses, success_rate, confidence
|
|
64
64
|
FROM qe_patterns
|
|
65
65
|
WHERE id = ?
|
|
66
|
-
`),
|
|
66
|
+
`),C=n.prepare(`
|
|
67
67
|
UPDATE qe_patterns
|
|
68
68
|
SET tier = 'long-term', updated_at = datetime('now')
|
|
69
69
|
WHERE id = ?
|
|
@@ -71,29 +71,29 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
71
71
|
AND successful_uses >= 3
|
|
72
72
|
AND success_rate >= 0.7
|
|
73
73
|
AND confidence >= 0.6
|
|
74
|
-
`);for(let S of l.selectedPatternIds){D.run(`app-${Date.now()}-${B().slice(0,8)}`,r,`${s}:pattern:${S}`,o.success?1:0,T,`[Patch 160+300] task-bridge pattern_id=${S} ts=${T}`);try{me(n,{patternId:S,success:o.success,metrics:{tokens_saved:T,source:"cli-hook-post-task",experience_id:r},feedback:`[Patch 160+300] task-bridge pattern_id=${S} ts=${T}`})}catch{}try{let j=
|
|
74
|
+
`);for(let S of l.selectedPatternIds){D.run(`app-${Date.now()}-${B().slice(0,8)}`,r,`${s}:pattern:${S}`,o.success?1:0,T,`[Patch 160+300] task-bridge pattern_id=${S} ts=${T}`);try{me(n,{patternId:S,success:o.success,metrics:{tokens_saved:T,source:"cli-hook-post-task",experience_id:r},feedback:`[Patch 160+300] task-bridge pattern_id=${S} ts=${T}`})}catch{}try{let j=P.get(S);j?.tier==="short-term"&&j.successful_uses>=3&&j.success_rate>=.7&&j.confidence>=.6&&C.run(S)}catch{}}p&&n.prepare("DELETE FROM kv_store WHERE namespace='task-bridge' AND key = ?").run(p.key)}}catch(p){console.error($.dim(`[hooks] post-task bridge: ${p instanceof Error?p.message:"unknown"}`))}let u=`traj-${Date.now()}-${B().slice(0,8)}`,E=o.parentAgentId!==void 0||o.depth!==void 0?JSON.stringify({...o.parentAgentId!==void 0?{parentAgentId:o.parentAgentId}:{},...o.depth!==void 0?{depth:o.depth}:{}}):null;n.prepare(`
|
|
75
75
|
INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json, metadata_json)
|
|
76
76
|
VALUES (?, ?, ?, ?, datetime('now'), datetime('now'), ?, ?, ?)
|
|
77
|
-
`).run(u,s,o.agent,o.domain??"general",o.success?1:0,JSON.stringify([{step:1,task:o.taskId,success:o.success}]),
|
|
77
|
+
`).run(u,s,o.agent,o.domain??"general",o.success?1:0,JSON.stringify([{step:1,task:o.taskId,success:o.success}]),E);try{let p=n.prepare(`
|
|
78
78
|
SELECT id, task, agent, success, started_at, completed_at
|
|
79
79
|
FROM captured_experiences
|
|
80
80
|
WHERE consolidated_into IS NULL
|
|
81
81
|
AND task LIKE ?
|
|
82
82
|
AND started_at > datetime('now', '-1 hour')
|
|
83
83
|
ORDER BY started_at ASC
|
|
84
|
-
`).all(`%:${o.taskId}`);if(p.length>=2){let T=`traj-multi-${Date.now()}-${B().slice(0,8)}`,D=JSON.stringify(p.map((S,j)=>({step:j+1,task:S.task,agent:S.agent,success:!!S.success,started_at:S.started_at,completed_at:S.completed_at}))),
|
|
84
|
+
`).all(`%:${o.taskId}`);if(p.length>=2){let T=`traj-multi-${Date.now()}-${B().slice(0,8)}`,D=JSON.stringify(p.map((S,j)=>({step:j+1,task:S.task,agent:S.agent,success:!!S.success,started_at:S.started_at,completed_at:S.completed_at}))),P=p.every(S=>!!S.success);n.prepare(`
|
|
85
85
|
INSERT INTO qe_trajectories (id, task, agent, domain, started_at, ended_at, success, steps_json)
|
|
86
86
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
87
|
-
`).run(T,`multi:${o.taskId}`,o.agent,o.domain??"general",p[0].started_at,p[p.length-1].completed_at,
|
|
87
|
+
`).run(T,`multi:${o.taskId}`,o.agent,o.domain??"general",p[0].started_at,p[p.length-1].completed_at,P?1:0,D);let C=p.map(()=>"?").join(",");n.prepare(`UPDATE captured_experiences SET consolidated_into = ? WHERE id IN (${C})`).run(T,...p.map(S=>S.id)),g=p.length}}catch(p){console.error($.dim(`[hooks] post-task stitch: ${p instanceof Error?p.message:"unknown"}`))}});try{h()}catch(u){console.error($.dim(`[hooks] persistTaskOutcome txn: ${u instanceof Error?u.message:"unknown"}`))}if(o.success)try{let u=n.prepare(`
|
|
88
88
|
SELECT id FROM dream_insights
|
|
89
89
|
WHERE actionable = 1 AND (applied = 0 OR applied IS NULL)
|
|
90
90
|
ORDER BY created_at DESC
|
|
91
91
|
LIMIT 3
|
|
92
|
-
`).all();if(u.length>0){let{createDreamEngine:
|
|
92
|
+
`).all();if(u.length>0){let{createDreamEngine:E}=await import("./dream-SHNPRLRM.js"),p=E();await p.initialize();try{for(let T of u){let D=await p.applyInsight(T.id);D.success&&D.patternId&&d++}}finally{await p.close()}}}catch(u){console.error($.dim(`[hooks] post-task insight apply: ${u instanceof Error?u.message:"unknown"}`))}return await ke(n,r,`${o.domain??"general"}: ${s}`),{experienceId:r,qualityScore:k,bridge:l,stitchedSiblings:g,insightsApplied:d}}async function J(o){try{let{getUnifiedMemory:e}=await import("./unified-memory-EG7MANFS.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}let r=`${o.taskType}|${o.priority}|${o.domain||"any"}`,s=o.agent,a=`q-learning:aqe-hook-router:${r}:${s}`,c=o.success?.1:-1,i=.1,k=.9,l=n.prepare(`
|
|
93
93
|
SELECT q_value FROM rl_q_values WHERE id = ?
|
|
94
94
|
`).get(a),g=l&&typeof l.q_value=="number"?l.q_value:0,d=n.prepare(`
|
|
95
95
|
SELECT MAX(q_value) AS m FROM rl_q_values WHERE state_key = ?
|
|
96
|
-
`).get(r),
|
|
96
|
+
`).get(r),h=d&&typeof d.m=="number"?d.m:0,u=g+i*(c+k*h-g);n.prepare(`
|
|
97
97
|
INSERT INTO rl_q_values
|
|
98
98
|
(id, algorithm, agent_id, state_key, action_key, q_value, visits, last_reward, domain, created_at, updated_at)
|
|
99
99
|
VALUES (?, 'q-learning', 'aqe-hook-router', ?, ?, ?, 1, ?, ?, datetime('now'), datetime('now'))
|
|
@@ -102,7 +102,7 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
102
102
|
visits = visits + 1,
|
|
103
103
|
last_reward = excluded.last_reward,
|
|
104
104
|
updated_at = datetime('now')
|
|
105
|
-
`).run(a,r,s,u,c,o.domain||"any")}catch(e){console.error(
|
|
105
|
+
`).run(a,r,s,u,c,o.domain||"any")}catch(e){console.error($.dim(`[hooks] q-learning update: ${e instanceof Error?e.message:"unknown"}`))}}async function re(o){try{let{getUnifiedMemory:e}=await import("./unified-memory-EG7MANFS.js"),t=e();t.isInitialized()||await t.initialize();let n=t.getDatabase();try{n.pragma("busy_timeout = 60000")}catch{}n.prepare(`
|
|
106
106
|
UPDATE routing_outcomes
|
|
107
107
|
SET success = ?, quality_score = ?, duration_ms = ?
|
|
108
108
|
WHERE id IN (
|
|
@@ -113,7 +113,7 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
113
113
|
ORDER BY (CASE WHEN used_agent = ? THEN 0 ELSE 1 END), created_at DESC
|
|
114
114
|
LIMIT 1
|
|
115
115
|
)
|
|
116
|
-
`).run(o.success?1:0,o.qualityScore,o.durationMs,o.agent)}catch(e){console.error(
|
|
116
|
+
`).run(o.success?1:0,o.qualityScore,o.durationMs,o.agent)}catch(e){console.error($.dim(`[hooks] routing UPDATE: ${e instanceof Error?e.message:"unknown"}`))}}async function se(){let{getUnifiedMemory:o}=await import("./unified-memory-EG7MANFS.js"),e=o();e.isInitialized()||await e.initialize();let t=e.getDatabase();try{t.pragma("busy_timeout = 60000")}catch{}let n=new Set(t.prepare("PRAGMA table_info(captured_experiences)").all().map(i=>i.name)),r=[["consolidated_into","TEXT DEFAULT NULL"],["consolidation_count","INTEGER DEFAULT 1"],["quality_updated_at","TEXT DEFAULT NULL"],["reuse_success_count","INTEGER DEFAULT 0"],["reuse_failure_count","INTEGER DEFAULT 0"]];for(let[i,k]of r)n.has(i)||t.exec(`ALTER TABLE captured_experiences ADD COLUMN ${i} ${k}`);let s=t.prepare(`
|
|
117
117
|
SELECT
|
|
118
118
|
domain,
|
|
119
119
|
agent,
|
|
@@ -129,7 +129,7 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
129
129
|
HAVING cnt >= 3 AND avg_quality >= 0.5 AND success_rate >= 0.6
|
|
130
130
|
ORDER BY avg_quality DESC
|
|
131
131
|
LIMIT 50
|
|
132
|
-
`).all();if(s.length===0)return 0;let{v4:a}=await import("./dist-node-
|
|
132
|
+
`).all();if(s.length===0)return 0;let{v4:a}=await import("./dist-node-BGMG54IM.js"),c=0;for(let i of s)try{let k=new Date().toISOString().slice(0,7),l=`${i.agent}-${i.domain}-${k}`,g=t.prepare(`
|
|
133
133
|
SELECT id FROM qe_patterns
|
|
134
134
|
WHERE qe_domain = ? AND name = ?
|
|
135
135
|
LIMIT 1
|
|
@@ -141,33 +141,33 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
141
141
|
quality_score = MIN(0.99, quality_score + 0.005),
|
|
142
142
|
updated_at = datetime('now')
|
|
143
143
|
WHERE id = ?
|
|
144
|
-
`).run(i.cnt,i.successes,g.id);else{let d=a(),
|
|
144
|
+
`).run(i.cnt,i.successes,g.id);else{let d=a(),h=Math.min(.95,i.avg_quality*.8+i.success_rate*.2),u=h*.3+Math.min(i.cnt,100)/100*.2+i.success_rate*.5,E=`Auto-consolidated from ${i.cnt} experiences. Agent: ${i.agent}, success rate: ${(i.success_rate*100).toFixed(0)}%`,p=(i.sources||"").split(",").filter(Boolean);t.prepare(`
|
|
145
145
|
INSERT INTO qe_patterns (
|
|
146
146
|
id, pattern_type, qe_domain, domain, name, description,
|
|
147
147
|
confidence, usage_count, success_rate, quality_score, tier,
|
|
148
148
|
template_json, context_json, created_at, successful_uses
|
|
149
149
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'), ?)
|
|
150
|
-
`).run(d,"workflow",i.domain,i.domain,l,
|
|
150
|
+
`).run(d,"workflow",i.domain,i.domain,l,E,h,i.cnt,i.success_rate,u,"short-term",JSON.stringify({type:"workflow",content:`${i.agent} pattern for ${i.domain}`,variables:[]}),JSON.stringify({tags:p,sourceType:"session-consolidation",extractedAt:new Date().toISOString()}),i.successes);let{ensurePatternEmbedding:T}=await import("./embed-and-insert-pattern-QSHUNRQG.js");await T(t,d,l,E,p),c++}t.prepare(`
|
|
151
151
|
UPDATE captured_experiences
|
|
152
152
|
SET application_count = application_count + 1
|
|
153
153
|
WHERE domain = ? AND agent = ? AND application_count = 0
|
|
154
|
-
`).run(i.domain,i.agent)}catch{}return c}var m={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function
|
|
155
|
-
\u{1F4DD} Pre-Edit Analysis`)),console.log(
|
|
156
|
-
\u{1F3AF} Recommended Agent:`),
|
|
157
|
-
\u{1F4A1} Guidance:`)),Z(r.guidance||[]);return}catch(t){throw b(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("post-edit").description("Record editing outcome for pattern learning").requiredOption("-f, --file <path>","File path that was edited").option("--success","Edit was successful").option("--failure","Edit failed").option("--pattern-id <id>","Pattern ID that was applied").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=e.success||!e.failure,r=e.file||"";if(!r.trim())try{let g=await H();r=
|
|
154
|
+
`).run(i.domain,i.agent)}catch{}return c}var m={reasoningBank:null,hookRegistry:null,coherenceService:null,sessionId:null,initialized:!1,initializationPromise:null};async function Ee(){let o=m.reasoningBank;try{o&&await o.dispose()}catch{}try{let{resetSharedRvfDualWriter:e}=await import("./shared-rvf-dual-writer-J55TEO2S.js");e()}catch{}try{let{resetSharedRvfAdapter:e}=await import("./shared-rvf-adapter-AEMVXITE.js");e()}catch{}m.reasoningBank=null,m.hookRegistry=null,m.coherenceService=null,m.sessionId=null,m.initialized=!1,m.initializationPromise=null}async function _(){if(m.initializationPromise&&await m.initializationPromise,m.initialized&&m.reasoningBank&&m.hookRegistry)return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry};if(m.initializationPromise=Ce(),await m.initializationPromise,m.initializationPromise=null,!m.reasoningBank||!m.hookRegistry)throw new Error("Failed to initialize hooks system");return{reasoningBank:m.reasoningBank,hookRegistry:m.hookRegistry}}async function Ce(){if(!m.initialized)try{let o=R(),e=ye.join(o,".agentic-qe"),t=await O(e);try{m.coherenceService=await pe(ge),console.log(I.dim("[hooks] CoherenceService initialized with WASM engines"))}catch(a){console.log(I.dim(`[hooks] CoherenceService WASM unavailable, using fallback: ${a instanceof Error?a.message:"unknown"}`))}m.reasoningBank=ne(t,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0,embeddingDimension:384,useONNXEmbeddings:!0},m.coherenceService??void 0);let n=1e4,r=new AbortController,s=setTimeout(()=>r.abort(new Error("ReasoningBank init timeout")),n);try{await m.reasoningBank.initialize({signal:r.signal})}finally{clearTimeout(s)}try{let{getSharedRvfDualWriter:a}=await import("./shared-rvf-dual-writer-J55TEO2S.js"),c=await a();c&&m.reasoningBank.setRvfDualWriter(c)}catch(a){process.env.DEBUG&&console.debug("[hooks] RVF wiring skipped:",a instanceof Error?a.message:a)}m.hookRegistry=he(m.reasoningBank),m.initialized=!0,console.log(I.dim("[hooks] System initialized"))}catch(o){console.warn(I.yellow(`[hooks] Using fallback mode: ${o instanceof Error?o.message:"unknown error"}`));let e=qe();m.reasoningBank=ne(e,void 0,{enableLearning:!0,enableGuidance:!0,enableRouting:!0}),m.hookRegistry=new fe,m.hookRegistry.initialize(m.reasoningBank),m.initialized=!0}}function q(o){try{o.pragma("busy_timeout = 60000")}catch{}}async function O(o){let t=new ue({sqlite:{path:ye.join(o,"memory.db"),walMode:!0,poolSize:3,busyTimeout:6e4},enableFallback:!0,defaultNamespace:"qe-patterns"}),n=new AbortController,r=setTimeout(()=>n.abort(new Error("Backend init timeout")),5e3);try{await t.initialize({signal:n.signal})}finally{clearTimeout(r)}return t}function qe(){let o=new Map;return{initialize:async()=>{},dispose:async()=>{o.clear()},get:async e=>{let t=o.get(e);return t?t.value:void 0},set:async(e,t,n)=>{o.set(e,{value:t})},delete:async e=>o.delete(e),has:async e=>o.has(e),search:async(e,t)=>{let n=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(n.replace(/\*/g,".*"));return Array.from(o.keys()).filter(s=>r.test(s))},vectorSearch:async(e,t)=>[],storeVector:async(e,t,n)=>{},count:async e=>{let t=0,n=`${e}:`;for(let r of o.keys())r.startsWith(n)&&t++;return t},hasCodeIntelligenceIndex:async()=>{let e="code-intelligence:kg:";for(let t of o.keys())if(t.startsWith(e))return!0;return!1}}}function f(o){console.log(JSON.stringify(o,null,2))}function N(o){console.log(I.green("\u2713"),o)}function b(o){console.error(I.red("\u2717"),o)}function Z(o){if(o.length===0){console.log(I.dim(" No specific guidance"));return}o.forEach((e,t)=>{console.log(I.cyan(` ${t+1}.`),e)})}async function H(o=500){return process.stdin.isTTY?"":new Promise(e=>{let t="",n=setTimeout(()=>{process.stdin.removeAllListeners(),process.stdin.pause(),e(t)},o);process.stdin.setEncoding("utf8"),process.stdin.on("data",r=>{t+=r}),process.stdin.on("end",()=>{clearTimeout(n),e(t)}),process.stdin.on("error",()=>{clearTimeout(n),e(t)}),process.stdin.resume()})}function Te(o){if(!o.trim())return"";let e;try{e=JSON.parse(o)}catch{return""}let t=e.tool_input,n=e.toolInput,r=[t?.file_path,t?.filePath,n?.file_path,n?.filePath,e.file_path,e.filePath];for(let s of r)if(typeof s=="string"&&s.trim())return s;return""}function _e(o){if(!o.trim())return"";let e;try{e=JSON.parse(o)}catch{return""}let t=e.tool_input,n=e.toolInput,r=[t?.subagent_type,t?.subagentType,n?.subagent_type,n?.subagentType,e.subagent_type,e.subagentType];for(let s of r)if(typeof s=="string"&&s.trim())return s;return""}import L from"chalk";import je from"node:path";U();function Se(o){o.command("pre-edit").description("Get context and guidance before editing a file").requiredOption("-f, --file <path>","File path to edit").option("-o, --operation <type>","Operation type: create, update, delete, refactor","update").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),r=(await t.emit(v.PreTestGeneration,{targetFile:e.file,testType:"unit",operation:e.operation}))[0]||{success:!0,guidance:[],routing:null};if(e.json){let s=r.guidance||[],c=[r.routing?.recommendedAgent?`Recommended agent: ${r.routing.recommendedAgent} (${(r.routing.confidence*100).toFixed(0)}% confidence).`:"",...s.map(i=>i)].filter(Boolean).join(" ");f({hookSpecificOutput:{hookEventName:"PreToolUse",additionalContext:c||void 0},file:e.file,operation:e.operation,patterns:r.routing?.patterns?.length||0})}else console.log(L.bold(`
|
|
155
|
+
\u{1F4DD} Pre-Edit Analysis`)),console.log(L.dim(` File: ${e.file}`)),console.log(L.dim(` Operation: ${e.operation}`)),r.routing&&(console.log(L.bold(`
|
|
156
|
+
\u{1F3AF} Recommended Agent:`),L.cyan(r.routing.recommendedAgent)),console.log(L.dim(` Confidence: ${(r.routing.confidence*100).toFixed(1)}%`))),console.log(L.bold(`
|
|
157
|
+
\u{1F4A1} Guidance:`)),Z(r.guidance||[]);return}catch(t){throw b(`pre-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("post-edit").description("Record editing outcome for pattern learning").requiredOption("-f, --file <path>","File path that was edited").option("--success","Edit was successful").option("--failure","Edit failed").option("--pattern-id <id>","Pattern ID that was applied").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=e.success||!e.failure,r=e.file||"";if(!r.trim())try{let g=await H();r=Te(g)}catch{}let s=r.split("/").pop()||"unknown",c=/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(s)?"test-generation":"code-intelligence",i=e.patternId||`edit:${c}:${s}`,l=(await t.emit(v.PostTestGeneration,{targetFile:r,success:n,patternId:i,generatedTests:null,testCount:0}))[0]||{success:!0,patternsLearned:0};try{let{reasoningBank:g}=await _();await g.recordOutcome({patternId:i,success:n,metrics:{executionTimeMs:0},feedback:`Edit ${n?"succeeded":"failed"}: ${r}`})}catch{}try{await G({task:`edit: ${r}`,agent:"cli-hook",domain:c,success:n,source:"cli-hook-post-edit"})}catch{}try{let g=R(),d=je.join(g,".agentic-qe"),h=await O(d);await x(h)}catch{}e.json?f({success:!0,file:r,editSuccess:n,patternsLearned:l.patternsLearned||0,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Recorded edit outcome for ${r||"(unknown file)"}`),l.patternsLearned&&console.log(L.green(` Patterns learned: ${l.patternsLearned}`)));return}catch(t){throw b(`post-edit failed: ${t instanceof Error?t.message:"unknown"}`),t}})}import{randomUUID as Me}from"crypto";U();import A from"chalk";import Ue from"node:path";function Be(o){if(!o.trim())return"";let e;try{e=JSON.parse(o)}catch{return o.trim()}let t=[e.prompt,e.user_prompt,e.command,e.tool_input?.prompt,e.tool_input?.description,e.toolInput?.prompt,e.toolInput?.description];for(let n of t)if(typeof n=="string"&&n.trim())return n;return""}function be(o){o.command("route").description("Route a task to the optimal QE agent").option("-t, --task <description>","Task description (falls back to stdin event JSON)").option("-d, --domain <domain>","Target QE domain hint").option("-c, --capabilities <caps...>","Required capabilities").option("--json","Output as JSON").action(async e=>{try{let t=e.task??"";if(!t.trim()){let c=await H();t=Be(c)}if(!t.trim())throw new Error("No task provided. Pass --task <description> or pipe a Claude Code hook event JSON to stdin.");let{reasoningBank:n}=await _(),r={task:t,domain:e.domain,capabilities:e.capabilities},s=await n.routeTask(r);if(!s.success)throw new Error(s.error.message);let a=s.value;e.json?f({recommendedAgent:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,domains:a.domains,patternCount:a.patterns.length,guidance:a.guidance,reasoning:a.reasoning,exploration:a.exploration??!1,criticality:a.criticality??null,qWeight:a.qWeight??null}):(console.log(A.bold(`
|
|
158
158
|
\u{1F3AF} Task Routing Result`)),console.log(A.dim(` Task: "${t}"`)),console.log(A.bold(`
|
|
159
159
|
\u{1F464} Recommended Agent:`),A.cyan(a.recommendedAgent)),console.log(A.dim(` Confidence: ${(a.confidence*100).toFixed(1)}%`)),a.alternatives.length>0&&(console.log(A.bold(`
|
|
160
160
|
\u{1F504} Alternatives:`)),a.alternatives.forEach(c=>{console.log(A.dim(` - ${c.agent}: ${(c.score*100).toFixed(1)}%`))})),console.log(A.bold(`
|
|
161
161
|
\u{1F4C2} Detected Domains:`),a.domains.join(", ")),console.log(A.bold(`
|
|
162
162
|
\u{1F4A1} Guidance:`)),Z(a.guidance),console.log(A.bold(`
|
|
163
|
-
\u{1F4D6} Reasoning:`),A.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-
|
|
163
|
+
\u{1F4D6} Reasoning:`),A.dim(a.reasoning)));try{let{getUnifiedMemory:c}=await import("./unified-memory-EG7MANFS.js"),i=c();i.isInitialized()||await i.initialize();let k=i.getDatabase();q(k),Y(k);let l=`route-${Date.now()}-${Me().slice(0,8)}`,g=a.confidence<.5,d=a;k.prepare(`
|
|
164
164
|
INSERT OR REPLACE INTO routing_outcomes (
|
|
165
165
|
id, task_json, decision_json, used_agent,
|
|
166
166
|
followed_recommendation, success, quality_score,
|
|
167
167
|
duration_ms, error,
|
|
168
168
|
exploration, criticality, q_weight
|
|
169
169
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
170
|
-
`).run(l,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:g,exploration:d.exploration??!1,criticality:d.criticality??null,qWeight:d.qWeight??null}),a.recommendedAgent,1,0,-1,0,g?"low-confidence":null,d.exploration?1:0,d.criticality??null,d.qWeight??null);let
|
|
170
|
+
`).run(l,JSON.stringify({description:t,domain:e.domain}),JSON.stringify({recommended:a.recommendedAgent,confidence:a.confidence,alternatives:a.alternatives,lowConfidence:g,exploration:d.exploration??!1,criticality:d.criticality??null,qWeight:d.qWeight??null}),a.recommendedAgent,1,0,-1,0,g?"low-confidence":null,d.exploration?1:0,d.criticality??null,d.qWeight??null);let h=R(),u=Ue.join(h,".agentic-qe"),E=await O(u);await x(E)}catch(c){console.error(A.dim(`[hooks] route persist: ${c instanceof Error?c.message:"unknown"}`))}return}catch(t){throw b(`route failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("post-route").description("Close the most-recent route sentinel from a Stop hook (#451)").option("--success [bool]","Whether the turn completed successfully","true").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=.325+(t?.25:0)+.1,r=M();r.isInitialized()||await r.initialize();let s=r.getDatabase();q(s);let a=s.prepare(`
|
|
171
171
|
SELECT id, task_json, used_agent FROM routing_outcomes
|
|
172
172
|
WHERE quality_score = -1
|
|
173
173
|
AND task_json NOT LIKE '%"taskId"%'
|
|
@@ -177,7 +177,7 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
177
177
|
UPDATE routing_outcomes
|
|
178
178
|
SET success = ?, quality_score = ?, duration_ms = 0, error = NULL
|
|
179
179
|
WHERE id = ?
|
|
180
|
-
`).run(t?1:0,n,a.id):{changes:0};if(a)try{let
|
|
180
|
+
`).run(t?1:0,n,a.id):{changes:0};if(a)try{let k=JSON.parse(a.task_json),l=String(k.description??"");l&&await J({taskType:W(l),priority:"normal",domain:K(l)[0]??"any",agent:a.used_agent,success:t})}catch{}let i=s.prepare(`
|
|
181
181
|
UPDATE routing_outcomes
|
|
182
182
|
SET success = 0,
|
|
183
183
|
quality_score = 0.325,
|
|
@@ -186,20 +186,20 @@ import{a as v,b as fe,c as he}from"./chunk-2QI3OJAC.js";import{a as pe,b as ge}f
|
|
|
186
186
|
WHERE quality_score = -1
|
|
187
187
|
AND task_json NOT LIKE '%"taskId"%'
|
|
188
188
|
AND created_at < datetime('now', '-300 seconds')
|
|
189
|
-
`).run();e.json?f({success:!0,resolved:c.changes>0,staleSwept:i.changes,qualityScore:n,turnSuccess:t}):i.changes>0&&console.log(A.dim(`[hooks] post-route: swept ${i.changes} stale sentinel(s)`));return}catch(t){e.json?f({success:!1,error:t instanceof Error?t.message:"unknown"}):console.error(A.dim(`[hooks] post-route: ${t instanceof Error?t.message:"unknown"}`));return}})}import
|
|
189
|
+
`).run();e.json?f({success:!0,resolved:c.changes>0,staleSwept:i.changes,qualityScore:n,turnSuccess:t}):i.changes>0&&console.log(A.dim(`[hooks] post-route: swept ${i.changes} stale sentinel(s)`));return}catch(t){e.json?f({success:!1,error:t instanceof Error?t.message:"unknown"}):console.error(A.dim(`[hooks] post-route: ${t instanceof Error?t.message:"unknown"}`));return}})}import y from"chalk";Pe();function we(o){o.command("stats").description("Display hooks system statistics").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.getStats();if(e.json)f(n);else{console.log(y.bold(`
|
|
190
190
|
\u{1F4CA} Hooks System Statistics
|
|
191
|
-
`)),console.log(
|
|
192
|
-
By Domain:`));for(let[r,s]of Object.entries(n.byDomain))s>0&&console.log(` ${r}: ${s}`);console.log(
|
|
193
|
-
Routing:`)),console.log(` Requests: ${n.routingRequests}`),console.log(` Avg Confidence: ${(n.avgRoutingConfidence*100).toFixed(1)}%`),console.log(
|
|
194
|
-
Learning:`)),console.log(` Outcomes: ${n.learningOutcomes}`),console.log(` Success Rate: ${(n.patternSuccessRate*100).toFixed(1)}%`),console.log(
|
|
195
|
-
Search Performance:`)),console.log(` Operations: ${n.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${n.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${n.patternStoreStats.hnswStats.nativeAvailable?"\u2713":"\u2717"}`)}}catch(t){throw b(`stats failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("list").description("List all registered QE hook events").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=t.getRegisteredEvents();if(e.json)f({events:n,totalEvents:Object.keys(v).length,registeredEvents:n.length});else{console.log(
|
|
191
|
+
`)),console.log(y.bold("Patterns:")),console.log(` Total: ${y.cyan(n.totalPatterns)}`),console.log(` Short-term: ${n.patternStoreStats.byTier.shortTerm}`),console.log(` Long-term: ${n.patternStoreStats.byTier.longTerm}`),console.log(y.bold(`
|
|
192
|
+
By Domain:`));for(let[r,s]of Object.entries(n.byDomain))s>0&&console.log(` ${r}: ${s}`);console.log(y.bold(`
|
|
193
|
+
Routing:`)),console.log(` Requests: ${n.routingRequests}`),console.log(` Avg Confidence: ${(n.avgRoutingConfidence*100).toFixed(1)}%`),console.log(y.bold(`
|
|
194
|
+
Learning:`)),console.log(` Outcomes: ${n.learningOutcomes}`),console.log(` Success Rate: ${(n.patternSuccessRate*100).toFixed(1)}%`),console.log(y.bold(`
|
|
195
|
+
Search Performance:`)),console.log(` Operations: ${n.patternStoreStats.searchOperations}`),console.log(` Avg Latency: ${n.patternStoreStats.avgSearchLatencyMs.toFixed(2)}ms`),console.log(` HNSW Native: ${n.patternStoreStats.hnswStats.nativeAvailable?"\u2713":"\u2717"}`)}}catch(t){throw b(`stats failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("list").description("List all registered QE hook events").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n=t.getRegisteredEvents();if(e.json)f({events:n,totalEvents:Object.keys(v).length,registeredEvents:n.length});else{console.log(y.bold(`
|
|
196
196
|
\u{1F4CB} Registered QE Hook Events
|
|
197
|
-
`)),console.log(
|
|
198
|
-
Registered: ${n.length}/${Object.keys(v).length}`))}}catch(t){throw b(`list failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("emit").description("Emit a QE hook event").requiredOption("-e, --event <name>","Event name (e.g., qe:pattern-applied)").option("-d, --data <json>","Event data as JSON","{}").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n;try{n=le(e.data)}catch{throw new Error(`Invalid JSON data: ${e.data}`)}let r=await t.emit(e.event,n);e.json?f({event:e.event,results:r}):(console.log(
|
|
199
|
-
\u{1F4E1} Hook Event Emitted`)),console.log(
|
|
197
|
+
`)),console.log(y.bold("All Available Events:"));for(let[r,s]of Object.entries(v)){let c=n.includes(s)?y.green("\u2713"):y.dim("\u25CB");console.log(` ${c} ${r}: ${y.dim(s)}`)}console.log(y.dim(`
|
|
198
|
+
Registered: ${n.length}/${Object.keys(v).length}`))}}catch(t){throw b(`list failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("emit").description("Emit a QE hook event").requiredOption("-e, --event <name>","Event name (e.g., qe:pattern-applied)").option("-d, --data <json>","Event data as JSON","{}").option("--json","Output as JSON").action(async e=>{try{let{hookRegistry:t}=await _(),n;try{n=le(e.data)}catch{throw new Error(`Invalid JSON data: ${e.data}`)}let r=await t.emit(e.event,n);e.json?f({event:e.event,results:r}):(console.log(y.bold(`
|
|
199
|
+
\u{1F4E1} Hook Event Emitted`)),console.log(y.dim(` Event: ${e.event}`)),console.log(y.dim(` Handlers: ${r.length}`)),r.forEach((s,a)=>{let c=s.success?y.green("\u2713"):y.red("\u2717");console.log(` ${c} Handler ${a+1}: ${s.success?"success":s.error}`),s.patternsLearned&&console.log(y.green(` Patterns learned: ${s.patternsLearned}`))}))}catch(t){throw b(`emit failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("learn").description("Store a new pattern in the reasoning bank").requiredOption("-n, --name <name>","Pattern name").requiredOption("-d, --description <desc>","Pattern description").option("-t, --type <type>","Pattern type","test-template").option("--domain <domain>","QE domain").option("--tags <tags...>","Pattern tags").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.storePattern({patternType:e.type,name:e.name,description:e.description,template:{type:"prompt",content:e.description,variables:[]},context:{tags:e.tags||[]}});if(!n.success)throw new Error(n.error.message);let r=n.value;e.json?f({success:!0,pattern:{id:r.id,name:r.name,type:r.patternType,domain:r.qeDomain}}):(N(`Pattern stored: ${r.name}`),console.log(y.dim(` ID: ${r.id}`)),console.log(y.dim(` Domain: ${r.qeDomain}`)),console.log(y.dim(` Tier: ${r.tier}`)))}catch(t){throw b(`learn failed: ${t instanceof Error?t.message:"unknown"}`),t}}),o.command("search").description("Search for patterns in the reasoning bank").requiredOption("-q, --query <query>","Search query").option("-l, --limit <n>","Maximum results","10").option("-d, --domain <domain>","Filter by domain").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=await t.searchPatterns(e.query,{limit:parseInt(e.limit,10),domain:e.domain});if(!n.success)throw new Error(n.error.message);let r=n.value;e.json?f({query:e.query,total:r.length,patterns:r.map(s=>({id:s.pattern.id,name:s.pattern.name,score:s.score,domain:s.pattern.qeDomain,matchType:s.matchType}))}):(console.log(y.bold(`
|
|
200
200
|
\u{1F50D} Search Results for "${e.query}"
|
|
201
|
-
`)),r.length===0?console.log(
|
|
202
|
-
`)){let t=e.match(/^(?:export\s+)?NAGUAL_CLOUD_KEY=(.+)/);if(t)return t[1].trim().replace(/^['"]|['"]$/g,"")}}catch{}}var Ge="http://localhost:3333",
|
|
201
|
+
`)),r.length===0?console.log(y.dim(" No patterns found")):r.forEach((s,a)=>{console.log(`${y.cyan(`${a+1}.`)} ${s.pattern.name} ${y.dim(`(${(s.score*100).toFixed(1)}%)`)}`),console.log(y.dim(` Domain: ${s.pattern.qeDomain}`)),console.log(y.dim(` Match: ${s.matchType}`)),console.log(y.dim(` ID: ${s.pattern.id}`)),console.log()}),console.log(y.dim(`Found ${r.length} pattern(s)`)))}catch(t){throw b(`search failed: ${t instanceof Error?t.message:"unknown"}`),t}})}U();import Q from"chalk";import Fe from"node:path";function Re(o){o.command("session-start").description("Initialize session state when Claude Code session starts").option("-s, --session-id <id>","Session ID").option("--json","Output as JSON").action(async e=>{try{let t=e.sessionId||`session-${Date.now()}`;m.sessionId=t;let{reasoningBank:n}=await _(),r=await n.getStats(),s=R(),a=Fe.join(s,".agentic-qe"),c=await O(a),i=await c.get(F),k=!i||!i.sessionStartTime;i?(i.sessionStartTime=new Date().toISOString(),i.totalDreamsThisSession=0):i={lastDreamTime:null,experienceCount:0,sessionStartTime:new Date().toISOString(),totalDreamsThisSession:0},await c.set(F,i);let l=[];l.push(`AQE Learning: ${r.totalPatterns} patterns loaded`);let g=Object.entries(r.byDomain).filter(([,h])=>h>0).sort(([,h],[,u])=>u-h).slice(0,5);g.length>0&&l.push(`Top domains: ${g.map(([h,u])=>`${h}(${u})`).join(", ")}`),r.patternSuccessRate>0&&l.push(`Pattern success rate: ${(r.patternSuccessRate*100).toFixed(0)}%`),r.routingRequests>0&&l.push(`Routing confidence: ${(r.avgRoutingConfidence*100).toFixed(0)}% across ${r.routingRequests} requests`);let d=l.join(". ")+".";e.json?f({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:d},sessionId:t,initialized:!0,patternsLoaded:r.totalPatterns,dreamScheduler:{enabled:!0,lastDreamTime:i.lastDreamTime,pendingExperiences:i.experienceCount}}):(N(`Session started: ${t}`),console.log(Q.dim(` Patterns loaded: ${r.totalPatterns}`)),console.log(Q.dim(` Dream scheduler: enabled (${i.experienceCount} pending experiences)`)));return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),o.command("session-end").description("Save session state when Claude Code session ends").option("--save-state","Save learning state to disk").option("--export-metrics","Export session metrics").option("--json","Output as JSON").action(async e=>{try{let t=m.sessionId||"unknown",n=null;if(m.initialized&&m.reasoningBank)try{n=await m.reasoningBank.getStats()}catch{}let r=0;try{r=await se()}catch{}if(e.json){let s=n?`Session complete: ${n.totalPatterns} patterns, ${n.routingRequests} routings, ${(n.patternSuccessRate*100).toFixed(0)}% success rate`:"Session complete";f({continue:!0,sessionId:t,stateSaved:e.saveState||!1,metricsExported:e.exportMetrics||!1,patternsConsolidated:r,finalStats:n?{patternsLearned:n.totalPatterns,routingRequests:n.routingRequests,successRate:n.patternSuccessRate}:null})}else N(`Session ended: ${t}`),n&&(console.log(Q.dim(` Patterns: ${n.totalPatterns}`)),console.log(Q.dim(` Routing requests: ${n.routingRequests}`))),r>0&&console.log(Q.dim(` Patterns consolidated: ${r}`));return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{createHash as Ve,randomUUID as Xe}from"node:crypto";import w from"chalk";import Ke from"node:path";U();Le();import{readFileSync as He}from"node:fs";import{homedir as ze}from"node:os";var ee=de.create("nagual-client");function We(){try{let o=He(`${ze()}/.nagual/cloud-hooks.env`,"utf8");for(let e of o.split(`
|
|
202
|
+
`)){let t=e.match(/^(?:export\s+)?NAGUAL_CLOUD_KEY=(.+)/);if(t)return t[1].trim().replace(/^['"]|['"]$/g,"")}}catch{}}var Ge="http://localhost:3333",Ae=3e3,Je=5e3;var ie=class{baseUrl;token;enabled;constructor(){this.baseUrl=process.env.NAGUAL_URL??Ge,this.token=process.env.NAGUAL_CLOUD_KEY??process.env.NAGUAL_API_TOKEN??We(),this.enabled=!0}async search(e,t,n=5){try{let r=await fetch(`${this.baseUrl}/api/patterns/search`,{method:"POST",headers:this.headers(),body:JSON.stringify({query:e,domain:t,limit:n}),signal:AbortSignal.timeout(Ae)});return r.ok?(await r.json()).patterns??[]:[]}catch{return[]}}async recordOutcome(e,t){try{let n=await fetch(`${this.baseUrl}/api/patterns/${encodeURIComponent(e)}/outcome`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout(Ae)});n.ok||ee.debug("nagual recordOutcome non-OK",{patternId:e,status:n.status})}catch(n){ee.debug("nagual recordOutcome failed (non-fatal)",{patternId:e,err:n})}}async promotePattern(e){let t={problem:e.problem,solution:e.solution,domain:e.domain,reward:e.reward*.8,tags:[...e.tags??[],"source:aqe",e.source_project?`project:${e.source_project}`:null].filter(n=>n!==null)};try{let n=await fetch(`${this.baseUrl}/api/patterns`,{method:"POST",headers:this.headers(),body:JSON.stringify(t),signal:AbortSignal.timeout(Je)});n.ok||ee.debug("nagual promotePattern non-OK",{status:n.status})}catch(n){ee.debug("nagual promotePattern failed (non-fatal)",{err:n})}}headers(){let e={"Content-Type":"application/json"};return this.token&&(e.Authorization=`Bearer ${this.token}`),e}},ae;function ve(){return ae||(ae=new ie),ae}var Qe=/^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$/;function Oe(o,e){let t={};if(o!==void 0){if(!Qe.test(o))return{error:`Invalid --parent-agent-id "${o}": must start with a letter or digit and contain only letters, digits, "_", ".", ":", "-" (max 128 chars)`};t.parentAgentId=o}if(e!==void 0){let n=typeof e=="number"?e:Number(e);if(!Number.isInteger(n))return{error:`Invalid --depth "${e}": must be an integer`};if(n<0)return{error:`Invalid --depth ${n}: must be >= 0`};if(n>32)return{error:`Invalid --depth ${n}: must be <= 32`};t.depth=n}return t}var Ye="task-bridge",Ze=6e5,Ne=.5;function et(o){return Ve("sha256").update(o).digest("hex").slice(0,16)}var tt=new Set(["test-generation","coverage-analysis","defect-intelligence","security-compliance","quality-assessment","requirements-validation"]),nt=80;async function ot(o,e){return!process.env.NAGUAL_URL&&!process.env.NAGUAL_CLOUD_URL&&!process.env.NAGUAL_CLOUD_KEY?[]:o.length<nt?[]:e&&!tt.has(e)?[]:ve().search(o.slice(0,300),e,3)}function De(o){o.command("pre-task").description("Get context and guidance before spawning a Task agent").option("--task-id <id>","Task identifier").option("-d, --description <desc>","Task description").option("--json","Output as JSON").action(async e=>{try{let{reasoningBank:t}=await _(),n=null;if(e.description){let d=await t.routeTask({task:e.description});d.success&&(n=d.value)}let r=(n?.patterns??[]).slice(0,5).map(d=>d?.id).filter(d=>typeof d=="string"),s=n?.domains?.[0],a=e.description?await ot(String(e.description),s):[],c=null,i=[],k=0,l=null;try{let d=M();d.isInitialized()||await d.initialize();let h=d.getDatabase();q(h);try{let u=h.prepare(`
|
|
203
203
|
SELECT used_agent AS agent,
|
|
204
204
|
ROUND(AVG(quality_score), 3) AS avgQuality,
|
|
205
205
|
COUNT(*) AS n
|
|
@@ -208,37 +208,37 @@ Registered: ${n.length}/${Object.keys(v).length}`))}}catch(t){throw b(`list fail
|
|
|
208
208
|
GROUP BY used_agent
|
|
209
209
|
ORDER BY avgQuality DESC, n DESC
|
|
210
210
|
LIMIT 1
|
|
211
|
-
`).get();u&&(c=u)}catch{}try{i=
|
|
211
|
+
`).get();u&&(c=u)}catch{}try{i=h.prepare(`
|
|
212
212
|
SELECT key, value
|
|
213
213
|
FROM kv_store
|
|
214
214
|
WHERE namespace = 'verdicts'
|
|
215
215
|
AND created_at > datetime('now', '-7 days')
|
|
216
216
|
ORDER BY created_at DESC
|
|
217
217
|
LIMIT 3
|
|
218
|
-
`).all().map(
|
|
218
|
+
`).all().map(E=>({key:E.key,summary:String(E.value).slice(0,200)}))}catch{}if(r.length>0)try{let u=r.map(()=>"?").join(","),E=h.prepare(`
|
|
219
219
|
SELECT COALESCE(SUM(average_token_savings), 0) AS sum
|
|
220
220
|
FROM qe_patterns
|
|
221
221
|
WHERE id IN (${u})
|
|
222
|
-
`).get(...r);
|
|
222
|
+
`).get(...r);k=Math.max(0,Math.round(E?.sum??0))}catch{}if(e.description)try{let u=String(e.description),E=W(u),p="normal",T=n?.domains?.[0]??"any",D=Math.max(0,Math.min(10,Math.round(Math.min(u.length/200,1)*10)));l=`task:${et(u)}`;let P=JSON.stringify({selectedPatternIds:r,agent:n?.recommendedAgent??null,description:u.slice(0,200),taskType:E,priority:p,domain:T,complexityBucket:D,estimatedTokenSavings:k,ts:Date.now()}),C=Date.now()+Ze;h.prepare(`
|
|
223
223
|
INSERT OR REPLACE INTO kv_store (key, namespace, value, expires_at, created_at)
|
|
224
224
|
VALUES (?, ?, ?, ?, strftime('%s','now')*1000)
|
|
225
|
-
`).run(l,
|
|
225
|
+
`).run(l,Ye,P,C)}catch(u){console.error(w.dim(`[hooks] pre-task bridge: ${u instanceof Error?u.message:"unknown"}`))}if(n?.recommendedAgent)try{Y(h);let u=e.taskId||`hook-${Date.now()}`,E=`route-${Date.now()}-${Xe().slice(0,8)}`,p=n.confidence<Ne,T=n;h.prepare(`
|
|
226
226
|
INSERT INTO routing_outcomes (
|
|
227
227
|
id, task_json, decision_json, used_agent,
|
|
228
228
|
followed_recommendation, success, quality_score,
|
|
229
229
|
duration_ms, error,
|
|
230
230
|
exploration, criticality, q_weight
|
|
231
231
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
232
|
-
`).run(
|
|
232
|
+
`).run(E,JSON.stringify({description:e.description,taskId:u}),JSON.stringify({recommended:n.recommendedAgent,confidence:n.confidence,alternatives:n.alternatives,lowConfidence:p,exploration:T.exploration??!1,criticality:T.criticality??null,qWeight:T.qWeight??null}),n.recommendedAgent,1,0,-1,0,p?"low-confidence":null,T.exploration?1:0,T.criticality??null,T.qWeight??null)}catch(u){console.error(w.dim(`[hooks] pre-task sentinel: ${u instanceof Error?u.message:"unknown"}`))}}catch(d){console.error(w.dim(`[hooks] pre-task memory: ${d instanceof Error?d.message:"unknown"}`))}let g=n?n.confidence<Ne:!1;if(e.json)f({success:!0,taskId:e.taskId,description:e.description,recommendedAgent:n?.recommendedAgent,confidence:n?.confidence,guidance:n?.guidance||[],selectedPatternIds:r,historicalBest:c,priorVerdicts:i,estimatedTokenSavings:k,lowConfidence:g,bridgeKey:l,nagualPatterns:a.map(d=>({id:d.id,problem:d.problem,solution:d.solution.slice(0,400),domain:d.domain,reward:d.reward}))});else if(console.log(w.bold(`
|
|
233
233
|
\u{1F680} Pre-Task Analysis`)),console.log(w.dim(` Task ID: ${e.taskId||"N/A"}`)),n&&(console.log(w.bold(`
|
|
234
234
|
\u{1F3AF} Recommended:`),w.cyan(n.recommendedAgent)),console.log(w.dim(` Confidence: ${(n.confidence*100).toFixed(1)}%`)),g&&console.log(w.yellow(" \u26A0 Low confidence \u2014 consider providing more context"))),a.length>0){console.log(w.bold(`
|
|
235
|
-
\u{1F4DA} Nagual context (cross-project):`));for(let d of a)console.log(w.dim(` [${d.domain}] ${d.problem.slice(0,80)} (reward: ${d.reward.toFixed(2)})`))}return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),o.command("post-task").description("Record task outcome for pattern learning").option("--task-id <id>","Task identifier").option("--success [bool]","Whether task succeeded","true").option("--agent <name>","Agent that executed the task").option("--duration <ms>","Task duration in milliseconds").option("-d, --description <desc>","Task description \u2014 fallback Q-state source when pre-task bridge is absent (issue #499)").option("--parent-agent-id <id>","Agent that spawned this task (ADR-101 nesting provenance)").option("--depth <n>","Nesting depth of this task, 0 = top-level (ADR-101)").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0;if(!e.agent||!String(e.agent).trim())try{let s=await H(),a=
|
|
235
|
+
\u{1F4DA} Nagual context (cross-project):`));for(let d of a)console.log(w.dim(` [${d.domain}] ${d.problem.slice(0,80)} (reward: ${d.reward.toFixed(2)})`))}return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}}),o.command("post-task").description("Record task outcome for pattern learning").option("--task-id <id>","Task identifier").option("--success [bool]","Whether task succeeded","true").option("--agent <name>","Agent that executed the task").option("--duration <ms>","Task duration in milliseconds").option("-d, --description <desc>","Task description \u2014 fallback Q-state source when pre-task bridge is absent (issue #499)").option("--parent-agent-id <id>","Agent that spawned this task (ADR-101 nesting provenance)").option("--depth <n>","Nesting depth of this task, 0 = top-level (ADR-101)").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0;if(!e.agent||!String(e.agent).trim())try{let s=await H(),a=_e(s);a&&(e.agent=a)}catch{}let n=Oe(e.parentAgentId,e.depth);if(n.error){e.json?console.log(JSON.stringify({success:!1,error:n.error})):console.error(w.red(` \u2717 ${n.error}`)),process.exitCode=1;return}let r=0;try{let{hookRegistry:s,reasoningBank:a}=await _();r=(await s.emit(v.QEAgentCompletion,{taskId:e.taskId,success:t,agent:e.agent,duration:e.duration?parseInt(e.duration,10):void 0,timestamp:Date.now()})).reduce((g,d)=>g+(d.patternsLearned||0),0);{let g=e.taskId||`hook-${Date.now()}`,d=e.agent||"unknown",h=e.duration?parseInt(e.duration,10):0,u=(n.parentAgentId?`, Parent: ${n.parentAgentId}`:"")+(n.depth!==void 0?`, Depth: ${n.depth}`:"");await a.recordOutcome({patternId:`task:${d}:${g}`,success:t,metrics:{executionTimeMs:h},feedback:`Agent: ${d}, Task: ${g}${u}`});let E=await oe({taskId:g,agent:d,durationMs:h,success:t,parentAgentId:n.parentAgentId,depth:n.depth}),p=d==="unknown"&&E.bridge?.agent?E.bridge.agent:d;await re({agent:p,success:t,durationMs:h,qualityScore:E.qualityScore});let T=String(e.description??"");if(E.bridge||T){let D=E.bridge?.taskType??W(T),P=E.bridge?.priority??"normal",C=E.bridge?.domain??K(T)[0]??"any";await J({taskType:D,priority:P,domain:C,agent:p,success:t})}}let i=R(),k=Ke.join(i,".agentic-qe"),l=await O(k);await x(l)}catch(s){console.error(w.dim(`[hooks] Learning init: ${s instanceof Error?s.message:"unknown"}`))}e.json?f({success:!0,taskId:e.taskId,taskSuccess:t,patternsLearned:r,dreamTriggered:!1,dreamReason:"deferred-to-kernel"}):(N(`Task completed: ${e.taskId||"unknown"}`),console.log(w.dim(` Success: ${t}`)),r>0&&console.log(w.green(` Patterns learned: ${r}`)));return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}import{existsSync as rt,readFileSync as st}from"node:fs";import{randomUUID as xe}from"node:crypto";import X from"chalk";import $e from"node:path";U();import*as z from"fs";import*as te from"path";var V=class o{statePath;warnThreshold;blockThreshold;halfOpenAfterMs;staleAfterMs;constructor(e){this.statePath=e.statePath,this.warnThreshold=e.warnThreshold??3,this.blockThreshold=e.blockThreshold??5,this.halfOpenAfterMs=e.halfOpenAfterMs??12e4,this.staleAfterMs=e.staleAfterMs??30*6e4}static signature(e){return e.trim().replace(/\s+/g," ").slice(0,200)}check(e,t=Date.now()){let n=o.signature(e);if(!n)return{verdict:"allow",consecutiveFailures:0,halfOpen:!1};let r=this.readState()[n];if(!r||r.consecutiveFailures<this.warnThreshold)return{verdict:"allow",consecutiveFailures:r?.consecutiveFailures??0,halfOpen:!1};let s=r.consecutiveFailures;return s>=this.blockThreshold?t-r.lastFailureAt>=this.halfOpenAfterMs?{verdict:"warn",consecutiveFailures:s,halfOpen:!0,hint:`This command has failed ${s}x consecutively; allowing one probe attempt. If it fails again it will be flagged immediately.`}:{verdict:"block",consecutiveFailures:s,halfOpen:!1,hint:`The same command failed ${s}x consecutively. Re-running it unchanged is unlikely to succeed \u2014 inspect the error output, change the approach, or fix the underlying problem first. (A successful run resets this breaker.)`}:{verdict:"warn",consecutiveFailures:s,halfOpen:!1,hint:`This command has failed ${s}x consecutively \u2014 consider changing approach before retrying.`}}record(e,t,n=Date.now()){let r=o.signature(e);if(r)try{let s=this.readState();if(t){s[r]&&(delete s[r],this.writeState(s,n));return}let a=s[r]??{consecutiveFailures:0,lastFailureAt:n};a.consecutiveFailures+=1,a.lastFailureAt=n,s[r]=a,this.writeState(s,n)}catch{}}static isStrict(e=process.env){return e.AQE_STRICT_TOOL_LOOP==="1"||e.AQE_STRICT_TOOL_LOOP==="true"}readState(){try{let e=z.readFileSync(this.statePath,"utf8"),t=JSON.parse(e);return typeof t=="object"&&t!==null?t:{}}catch{return{}}}writeState(e,t){for(let[n,r]of Object.entries(e))t-r.lastFailureAt>this.staleAfterMs&&delete e[n];z.mkdirSync(te.dirname(this.statePath),{recursive:!0}),z.writeFileSync(this.statePath,JSON.stringify(e))}};function ce(o){return new V({statePath:te.join(o,".agentic-qe","tool-loop-state.json")})}function at(o){return/\bjest\b/i.test(o)?"jest":/\bvitest\b/i.test(o)?"vitest":/\bpytest\b/i.test(o)?"pytest":/\bmocha\b/i.test(o)?"mocha":null}async function it(o){try{let e=M();e.isInitialized()||await e.initialize();let t=e.getDatabase();q(t);let n=o.framework==="pytest"?"python":"javascript",r=o.command.split(/\s+/).slice(0,3).join("-").slice(0,80);t.prepare(`
|
|
236
236
|
INSERT INTO test_outcomes (
|
|
237
237
|
id, test_id, test_name, generated_by, framework, language, domain,
|
|
238
238
|
passed, execution_time_ms, maintainability_score, created_at
|
|
239
239
|
) VALUES (?, ?, ?, 'cli-hook-post-command', ?, ?, 'test-execution',
|
|
240
240
|
?, ?, 0.5, datetime('now'))
|
|
241
|
-
`).run(`to-${Date.now()}-${
|
|
241
|
+
`).run(`to-${Date.now()}-${xe().slice(0,8)}`,`cmd:${r}`,o.command.slice(0,200),o.framework,n,o.success?1:0,o.durationMs);try{let s=$e.join(process.cwd(),"coverage","coverage-summary.json");if(rt(s)){let c=JSON.parse(st(s,"utf-8")).total??{},i=Number(c.lines?.pct??0),k=Number(c.branches?.pct??0),l=Number(c.functions?.pct??0),g=t.prepare(`
|
|
242
242
|
SELECT after_lines, after_branches, after_functions
|
|
243
243
|
FROM coverage_sessions
|
|
244
244
|
WHERE target_path = ?
|
|
@@ -252,8 +252,8 @@ Registered: ${n.length}/${Object.keys(v).length}`))}}catch(t){throw b(`list fail
|
|
|
252
252
|
tests_generated, tests_passed, duration_ms,
|
|
253
253
|
started_at, completed_at
|
|
254
254
|
) VALUES (?, ?, 'cli-hook-post-command', ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?, ?)
|
|
255
|
-
`).run(`cs-${Date.now()}-${
|
|
256
|
-
\u26A0\uFE0F Command Warnings:`)),a.forEach(i=>console.log(X.yellow(` - ${i}`))));return}catch{e.json&&f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),o.command("post-command").description("Record Bash command outcome").option("-c, --command <cmd>","Command that was executed").option("--success [bool]","Whether command succeeded","true").option("--exit-code <code>","Command exit code").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=e.exitCode?parseInt(e.exitCode,10):t?0:1,r=(e.command||"").substring(0,200);try{ce(R()).record(r,t)}catch{}let s=/\b(test|vitest|jest|pytest|mocha)\b/i.test(r),a=/\b(build|compile|tsc)\b/i.test(r),c=/\b(lint|eslint|prettier)\b/i.test(r),i=0,
|
|
255
|
+
`).run(`cs-${Date.now()}-${xe().slice(0,8)}`,process.cwd(),o.framework,g?.after_lines??0,g?.after_branches??0,g?.after_functions??0,i,k,l,o.success?1:0,o.durationMs,d,d)}}catch(s){console.error(X.dim(`[hooks] coverage_sessions: ${s instanceof Error?s.message:"unknown"}`))}}catch(e){console.error(X.dim(`[hooks] test_outcomes: ${e instanceof Error?e.message:"unknown"}`))}}function Ie(o){o.command("guard").description("File guardian - block edits to protected files").requiredOption("-f, --file <path>","File path to check").option("--json","Output as JSON (required for hook API)").action(async e=>{try{let t=e.file||"",n=t.replace(/\\/g,"/"),s=[{pattern:/^\.env($|\.)/,reason:"Environment file contains secrets"},{pattern:/\.env\.[a-zA-Z]+$/,reason:"Environment file contains secrets"},{pattern:/\.lock$/,reason:"Lock files are auto-generated"},{pattern:/(^|\/)node_modules\//,reason:"node_modules is managed by package manager"},{pattern:/(^|\/)\.agentic-qe\/memory\.db/,reason:"AQE memory database must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-wal$/,reason:"AQE WAL file must not be directly edited"},{pattern:/(^|\/)\.agentic-qe\/memory\.db-shm$/,reason:"AQE shared memory file must not be directly edited"}].find(a=>a.pattern.test(n));s?e.json?f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Protected file: ${s.reason} (${t})`}}):b(`Blocked: ${s.reason} (${t})`):e.json?f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}}):N(`Allowed: ${t}`);return}catch{e.json&&f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),o.command("pre-command").description("Get context before executing a Bash command").option("-c, --command <cmd>","Command to be executed").option("--json","Output as JSON").action(async e=>{try{let t=e.command||"",n=[{pattern:/rm\s+(-[a-zA-Z]*f[a-zA-Z]*\s+)?-[a-zA-Z]*r[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+(-[a-zA-Z]*r[a-zA-Z]*\s+)?-[a-zA-Z]*f[a-zA-Z]*\s+\/(?!\w)/,reason:"Recursive delete of root filesystem"},{pattern:/rm\s+-rf\s+~/,reason:"Recursive delete of home directory"},{pattern:/DROP\s+(TABLE|DATABASE|SCHEMA)/i,reason:"Destructive SQL operation"},{pattern:/git\s+push\s+.*--force(?!-)/,reason:"Force push can overwrite remote history"},{pattern:/git\s+reset\s+--hard/,reason:"Hard reset discards uncommitted changes"},{pattern:/>\s*\/dev\/sd[a-z]/,reason:"Direct write to block device"},{pattern:/dd\s+if=.*of=\/dev\/sd/,reason:"Direct disk write via dd"},{pattern:/chmod\s+777\s/,reason:"World-writable permissions are a security risk"},{pattern:/:\(\)\s*\{\s*:\|\s*:&\s*\}\s*;?\s*:/,reason:"Fork bomb detected"},{pattern:/mkfs\./,reason:"Filesystem format operation"},{pattern:/>\s*\/dev\/null\s*2>&1\s*&\s*disown/,reason:"Stealth background process"}],r=[{pattern:/\.agentic-qe.*rm/,reason:"Deleting AQE data files"},{pattern:/rm\s+-rf\s/,reason:"Recursive force delete"},{pattern:/git\s+clean\s+-[a-zA-Z]*f/,reason:"Force cleaning untracked files"}],s=n.find(i=>i.pattern.test(t)),a=r.filter(i=>i.pattern.test(t)).map(i=>i.reason),c=null;try{c=ce(R()).check(t)}catch{}if(c&&c.verdict==="block"&&V.isStrict()){e.json?f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Tool-loop breaker (AQE_STRICT_TOOL_LOOP): ${c.hint}`}}):b(`Blocked by tool-loop breaker: ${c.hint}`);return}if(c&&c.verdict==="block"?a.push(`\u{1F6D1} TOOL-LOOP BREAKER: ${c.hint}`):c&&c.verdict==="warn"&&a.push(`Tool-loop breaker: ${c.hint}`),s)e.json?f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:`Dangerous command blocked: ${s.reason}`}}):b(`Blocked: ${s.reason}`);else if(e.json){let i={hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}};a.length>0&&(i.hookSpecificOutput.additionalContext=`Warnings: ${a.join("; ")}`),f(i)}else a.length>0&&(console.log(X.yellow(`
|
|
256
|
+
\u26A0\uFE0F Command Warnings:`)),a.forEach(i=>console.log(X.yellow(` - ${i}`))));return}catch{e.json&&f({hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}});return}}),o.command("post-command").description("Record Bash command outcome").option("-c, --command <cmd>","Command that was executed").option("--success [bool]","Whether command succeeded","true").option("--exit-code <code>","Command exit code").option("--json","Output as JSON").action(async e=>{try{let t=e.success==="true"||e.success===!0,n=e.exitCode?parseInt(e.exitCode,10):t?0:1,r=(e.command||"").substring(0,200);try{ce(R()).record(r,t)}catch{}let s=/\b(test|vitest|jest|pytest|mocha)\b/i.test(r),a=/\b(build|compile|tsc)\b/i.test(r),c=/\b(lint|eslint|prettier)\b/i.test(r),i=0,k=!1;try{let{reasoningBank:l}=await _();if(s){let{hookRegistry:T}=await _();await T.emit(v.TestExecutionResult,{runId:`cmd-${Date.now()}`,patternId:`cmd:test:${r.split(/\s+/).slice(0,3).join("-")}`,passed:t?1:0,failed:t?0:1,duration:0,flaky:!1})}let g=r.replace(/[^a-zA-Z0-9]/g,"-").slice(0,80),d=s?"test-execution":a?"code-intelligence":c?"quality-assessment":"code-intelligence";await l.recordOutcome({patternId:`cmd:${g}`,success:t,metrics:{executionTimeMs:0},feedback:`Command: ${r}, exit: ${n}`}),i=1,(s||a||c)&&(await G({task:`bash: ${r}`,agent:"cli-hook",domain:d,success:t,source:"cli-hook-post-command"}),k=!0);let h=at(r);h&&await it({command:r,framework:h,success:t,durationMs:0});let u=R(),E=$e.join(u,".agentic-qe"),p=await O(E);await x(p)}catch(l){console.error(X.dim(`[hooks] post-command learning: ${l instanceof Error?l.message:"unknown"}`))}e.json&&f({success:!0,command:r.substring(0,100),commandSuccess:t,exitCode:n,patternsLearned:i,experienceRecorded:k});return}catch(t){e.json&&f({success:!1,error:t instanceof Error?t.message:"unknown"});return}})}function Ln(){let o=new ct("hooks").description("Self-learning QE hooks for pattern recognition and guidance").addHelpText("after",`
|
|
257
257
|
Examples:
|
|
258
258
|
# File editing hooks (learning from edits)
|
|
259
259
|
aqe hooks pre-edit --file src/utils.ts --operation create
|
|
@@ -278,4 +278,4 @@ Examples:
|
|
|
278
278
|
aqe hooks search --query "authentication"
|
|
279
279
|
aqe hooks stats
|
|
280
280
|
aqe hooks list
|
|
281
|
-
`);return
|
|
281
|
+
`);return Se(o),be(o),we(o),Re(o),De(o),Ie(o),o.hook("postAction",async()=>{await Ee()}),o}export{v as QE_HOOK_EVENTS,Ln as createHooksCommand,Ee as disposeHooksSystem,_ as getHooksSystem,m as hooksState};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.7");process.exit(0)}
|
|
2
|
+
import{d as a,e as b,f as c}from"./chunk-MYCMFN33.js";import"./chunk-X5R4M2PW.js";import"./chunk-EXIV2D3R.js";import"./chunk-XZP7AYHS.js";import"./chunk-H6SKPDAR.js";import"./chunk-S2SNDC2D.js";import"./chunk-A3XAWNOW.js";import"./chunk-Q6BYBRNA.js";import"./chunk-YSB6GH53.js";export{a as HybridRouter,b as createHybridRouter,c as createQERouter};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.
|
|
2
|
-
import{a,b,c,d,e}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.7");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e}from"./chunk-HA6OYSPC.js";import"./chunk-NQPS7FM5.js";import"./chunk-FWU55NEY.js";import"./chunk-A3XAWNOW.js";import"./chunk-Q6BYBRNA.js";import"./chunk-YSB6GH53.js";export{a as DEFAULT_HYPERGRAPH_ENGINE_CONFIG,b as HypergraphEngine,c as createHypergraphEngine,d as createHypergraphEngineSync,e as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.7");process.exit(0)}
|
|
2
|
+
import"./chunk-YSB6GH53.js";import e from"chalk";import{join as m,resolve as h}from"path";import{existsSync as y}from"fs";var c=class{name="hypergraph";description="Query the code knowledge hypergraph";cleanupAndExit;ensureInitialized;constructor(n,r){this.cleanupAndExit=n,this.ensureInitialized=r}register(n,r){let s=n.command("hypergraph").alias("hg").description(this.description);s.command("stats").description("Show hypergraph statistics (node/edge counts by type)").option("--db <path>","Database path").action(async t=>{await this.executeStats(t)}),s.command("untested").description("Find functions with no test coverage").option("--db <path>","Database path").option("--limit <number>","Max results","20").action(async t=>{await this.executeUntested(t)}),s.command("impacted <files...>").description("Find tests impacted by changed files").option("--db <path>","Database path").action(async(t,i)=>{await this.executeImpacted(t,i)}),s.command("gaps").description("Find functions with low coverage").option("--db <path>","Database path").option("--max-coverage <number>","Coverage threshold (%)","50").option("--limit <number>","Max results","20").action(async t=>{await this.executeGaps(t)})}async executeStats(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=await r.getStats();if(console.log(e.blue(`
|
|
3
3
|
Hypergraph Statistics
|
|
4
4
|
`)),console.log(e.white(` Total nodes: ${t.totalNodes}`)),console.log(e.white(` Total edges: ${t.totalEdges}`)),t.totalNodes>0){console.log(e.gray(`
|
|
5
5
|
Nodes by type:`));for(let[i,o]of Object.entries(t.nodesByType))o>0&&console.log(e.gray(` ${i}: ${o}`));console.log(e.gray(`
|
|
@@ -15,7 +15,7 @@ import"./chunk-WSSFH23M.js";import e from"chalk";import{join as m,resolve as h}f
|
|
|
15
15
|
`))}finally{i()}await this.cleanupAndExit(0)}async executeGaps(n){if(!await this.ensureInitialized())return;let{engine:r,close:s}=await this.openEngine(n.db);try{let t=parseInt(n.maxCoverage,10)||50,i=parseInt(n.limit,10)||20,o=await r.findCoverageGaps(t),a=o.slice(0,i);if(console.log(e.blue(`
|
|
16
16
|
Coverage Gaps (<= ${t}%) \u2014 ${o.length} total
|
|
17
17
|
`)),a.length===0)console.log(e.green(" No coverage gaps found!"));else{for(let l of a){let d=l.coverage!==void 0?e.red(` ${l.coverage}%`):"",p=l.complexity?e.yellow(` complexity=${l.complexity}`):"";console.log(e.white(` ${l.name}`)+d+e.gray(` ${l.filePath||""}`)+p)}o.length>i&&console.log(e.gray(`
|
|
18
|
-
... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-
|
|
18
|
+
... and ${o.length-i} more (use --limit to show more)`))}console.log("")}finally{s()}await this.cleanupAndExit(0)}async openEngine(n){let{findProjectRoot:r}=await import("./unified-memory-EG7MANFS.js"),{openDatabase:s}=await import("./safe-db-Y754OIYY.js"),{createHypergraphEngine:t}=await import("./hypergraph-engine-MVY2ADYA.js"),i=r(),o=n||m(i,".agentic-qe","memory.db");if(!y(o))throw new Error(`Database not found: ${o}
|
|
19
19
|
Run "aqe init --auto" first.`);let a=s(o);try{return{engine:await t({db:a,maxTraversalDepth:10,maxQueryResults:1e3,enableVectorSearch:!1}),close:()=>{try{a.close()}catch{}}}}catch(l){try{a.close()}catch{}throw l}}getHelp(){return`
|
|
20
20
|
Query the code knowledge hypergraph for untested functions,
|
|
21
21
|
impacted tests, and coverage gaps.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.7");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-VA4JFEA6.js";import"./chunk-XQWHBFR4.js";import"./chunk-GK6U2SQ2.js";import"./chunk-XVCB7KRX.js";import"./chunk-GAYYOIRM.js";import"./chunk-XNQWCGR5.js";import"./chunk-FWU55NEY.js";import"./chunk-VLWOF654.js";import"./chunk-A3XAWNOW.js";import"./chunk-Q6BYBRNA.js";import"./chunk-YSB6GH53.js";export{a as ImpactAnalyzerService};
|