agentic-qe 3.11.4 → 3.11.5
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/hooks/aqe-hook.cjs +44 -10
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +58 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/audit/witness-chain.d.ts +25 -0
- package/dist/audit/witness-chain.js +69 -22
- package/dist/audit/witness-key-manager.d.ts +11 -0
- package/dist/audit/witness-key-manager.js +24 -0
- package/dist/cli/brain-commands.js +2 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-KNM5R47J.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-62I6ZNRW.js → agent-booster-wasm-CSTBLNYZ.js} +2 -2
- package/dist/cli/chunks/{agent-handler-E2TZKKBS.js → agent-handler-M4W4GTXN.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-JHAHC2NH.js → agent-memory-branch-VGXFYLSQ.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-MXPJLVR3.js +2 -0
- package/dist/cli/chunks/{arena-72ZV65BR.js → arena-FKSD3LLM.js} +4 -4
- package/dist/cli/chunks/{arena-KLG3YSSR.js → arena-IQBRGWAG.js} +2 -2
- package/dist/cli/chunks/audit-7NSGRR4Z.js +3 -0
- package/dist/cli/chunks/base-X4EXQ2AS.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-LAFK5QZ4.js → better-sqlite3-2KR4LQRU.js} +2 -2
- package/dist/cli/chunks/brain-handler-M6A3UB66.js +89 -0
- package/dist/cli/chunks/{branch-enumerator-C7MPNYT7.js → branch-enumerator-2JGKY4BB.js} +2 -2
- package/dist/cli/chunks/{browser-UUDUDYLR.js → browser-J43WQPJL.js} +2 -2
- package/dist/cli/chunks/browser-workflow-4HX6RP5F.js +2 -0
- package/dist/cli/chunks/{chunk-UJMTKXPI.js → chunk-26WEI3P4.js} +2 -2
- package/dist/cli/chunks/{chunk-TQ373GGI.js → chunk-2XPMATEK.js} +2 -2
- package/dist/cli/chunks/{chunk-QJ5NCYJ3.js → chunk-2XQHG56O.js} +2 -2
- package/dist/cli/chunks/{chunk-EONKMHKO.js → chunk-354367AP.js} +2 -2
- package/dist/cli/chunks/{chunk-THKZVOZV.js → chunk-37ZUF5NX.js} +1 -1
- package/dist/cli/chunks/{chunk-5P7Q5YNC.js → chunk-3I4TCMOJ.js} +1 -1
- package/dist/cli/chunks/{chunk-PQUXFSN6.js → chunk-3JF5A72M.js} +2 -2
- package/dist/cli/chunks/{chunk-B5XUWHKQ.js → chunk-3LY7OCSO.js} +1 -1
- package/dist/cli/chunks/{chunk-HJ24KMC2.js → chunk-3V36WMIO.js} +1 -1
- package/dist/cli/chunks/{chunk-6JUOH6L4.js → chunk-3WR35GFF.js} +2 -2
- package/dist/cli/chunks/{chunk-T76RFXQX.js → chunk-4LODYRNV.js} +2 -2
- package/dist/cli/chunks/{chunk-D5S47YUS.js → chunk-4MHN7JWC.js} +3 -3
- package/dist/cli/chunks/chunk-4QOI5JS7.js +14 -0
- package/dist/cli/chunks/{chunk-63QUN3JK.js → chunk-4RTWPR3X.js} +1 -1
- package/dist/cli/chunks/chunk-4XJ2A3HY.js +65 -0
- package/dist/cli/chunks/{chunk-KUZMVH6N.js → chunk-4Y3LGBKJ.js} +3 -3
- package/dist/cli/chunks/{chunk-JFLSQH2X.js → chunk-52U5BFZP.js} +2 -2
- package/dist/cli/chunks/{chunk-YNK6SUPU.js → chunk-53YOYZW5.js} +2 -2
- package/dist/cli/chunks/{chunk-O7PVZ32A.js → chunk-5WMU7XCF.js} +1 -1
- package/dist/cli/chunks/{chunk-ZKCKOQJI.js → chunk-62OTU2AP.js} +2 -2
- package/dist/cli/chunks/{chunk-3SKIZDKL.js → chunk-62UM7Q5N.js} +1 -1
- package/dist/cli/chunks/{chunk-SFDUT5WM.js → chunk-6Q57K4YD.js} +2 -2
- package/dist/cli/chunks/{chunk-3SBUL72V.js → chunk-6R3YOAKO.js} +2 -2
- package/dist/cli/chunks/chunk-6T65OKUM.js +2 -0
- package/dist/cli/chunks/{chunk-TCVEKRPI.js → chunk-7BCRULCP.js} +2 -2
- package/dist/cli/chunks/{chunk-VKJQAKYG.js → chunk-7DTMENY6.js} +2 -2
- package/dist/cli/chunks/{chunk-XQ6DW5FV.js → chunk-7KXPNNMR.js} +2 -2
- package/dist/cli/chunks/{chunk-N2BJN6AO.js → chunk-7P6X4BFO.js} +3 -3
- package/dist/cli/chunks/{chunk-SL3SNOO2.js → chunk-7YSBATSN.js} +2 -2
- package/dist/cli/chunks/{chunk-5U2WHPXL.js → chunk-ABU64UWB.js} +1 -1
- package/dist/cli/chunks/{chunk-4RHNPRAP.js → chunk-AF6P5RWY.js} +2 -2
- package/dist/cli/chunks/{chunk-4JFH3MVA.js → chunk-AGJOGUP5.js} +1 -1
- package/dist/cli/chunks/{chunk-5Z4FBCBK.js → chunk-AL5VJJN4.js} +1 -1
- package/dist/cli/chunks/{chunk-Z2REKBD6.js → chunk-AOQYORVA.js} +2 -2
- package/dist/cli/chunks/{chunk-X64BEXUY.js → chunk-AOXJFDH5.js} +117 -113
- package/dist/cli/chunks/{chunk-DRMHVY4T.js → chunk-AXKWV5NF.js} +4 -4
- package/dist/cli/chunks/{chunk-3FJZMQJ7.js → chunk-B2VBDMDI.js} +2 -2
- package/dist/cli/chunks/{chunk-ARPBG6FQ.js → chunk-BJLA2IX7.js} +2 -2
- package/dist/cli/chunks/{chunk-6W3QHS45.js → chunk-BLPWJQTY.js} +2 -2
- package/dist/cli/chunks/{chunk-O5NEJIHB.js → chunk-BTLUWH4R.js} +2 -2
- package/dist/cli/chunks/{chunk-Y4AXOHW4.js → chunk-C4EZNOWK.js} +1 -1
- package/dist/cli/chunks/{chunk-FRFVN6AA.js → chunk-C5C4W572.js} +2 -2
- package/dist/cli/chunks/{chunk-7AWK43JN.js → chunk-CDJP6COA.js} +2 -2
- package/dist/cli/chunks/{chunk-VJGHRWMH.js → chunk-CKOF27L7.js} +2 -2
- package/dist/cli/chunks/{chunk-3E7D3A35.js → chunk-D45QLJEL.js} +1 -1
- package/dist/cli/chunks/{chunk-MALOUGSF.js → chunk-DFRRWOEX.js} +2 -2
- package/dist/cli/chunks/{chunk-JDFPAJGB.js → chunk-DLBVADWQ.js} +92 -92
- package/dist/cli/chunks/{chunk-7IKWF2AD.js → chunk-DPL762HU.js} +1 -1
- package/dist/cli/chunks/{chunk-RFQBDMAP.js → chunk-DVW66FPU.js} +1 -1
- package/dist/cli/chunks/{chunk-JPENUVCI.js → chunk-EDOGRFAG.js} +1 -1
- package/dist/cli/chunks/{chunk-HWBMYR5W.js → chunk-EEKG35K5.js} +5 -5
- package/dist/cli/chunks/{chunk-WQZ2WRO4.js → chunk-EK3HPH6A.js} +1 -1
- package/dist/cli/chunks/{chunk-WZYNY3VF.js → chunk-FGD6HINU.js} +1 -1
- package/dist/cli/chunks/{chunk-ZSBJNE35.js → chunk-FGSIID5C.js} +2 -2
- package/dist/cli/chunks/{chunk-TCWR6TDN.js → chunk-FHTYEAQ3.js} +2 -2
- package/dist/cli/chunks/{chunk-BRLUNIR4.js → chunk-FII3WCCY.js} +2 -2
- package/dist/cli/chunks/{chunk-VCUCD3B5.js → chunk-FIPKIIMS.js} +2 -2
- package/dist/cli/chunks/{chunk-6545AS2J.js → chunk-FMNXHVIN.js} +2 -2
- package/dist/cli/chunks/{chunk-VO6YJGB4.js → chunk-G2ZIJZJ7.js} +2 -2
- package/dist/cli/chunks/{chunk-7ADD2ZQL.js → chunk-GODAWJMZ.js} +2 -2
- package/dist/cli/chunks/{chunk-AQIEK4SY.js → chunk-GW6XWMX2.js} +2 -2
- package/dist/cli/chunks/{chunk-GOQ4P2PB.js → chunk-HC6KTVFR.js} +2 -2
- package/dist/cli/chunks/{chunk-2KNFS3L5.js → chunk-HJWT4KME.js} +1 -1
- package/dist/cli/chunks/{chunk-NV3TXXOW.js → chunk-I3ANRYQ6.js} +2 -2
- package/dist/cli/chunks/{chunk-IQBZBUP5.js → chunk-I3NWKPXJ.js} +2 -2
- package/dist/cli/chunks/chunk-IBDQWKI3.js +2 -0
- package/dist/cli/chunks/{chunk-LW5DHT3Z.js → chunk-IU5RSN6M.js} +2 -2
- package/dist/cli/chunks/{chunk-XHRLBJTM.js → chunk-J5XDKVI7.js} +2 -2
- package/dist/cli/chunks/{chunk-QEVX4GWF.js → chunk-J6PFPY7V.js} +2 -2
- package/dist/cli/chunks/{chunk-AE6HXMOG.js → chunk-JATLFS6A.js} +1 -1
- package/dist/cli/chunks/{chunk-HJO4RNOW.js → chunk-JBKZ5TUM.js} +2 -2
- package/dist/cli/chunks/{chunk-7QTB5XIQ.js → chunk-JDSHUECG.js} +2 -2
- package/dist/cli/chunks/{chunk-GRQ36XUH.js → chunk-K4C25BWV.js} +2 -2
- package/dist/cli/chunks/{chunk-BMQDELPA.js → chunk-K4I7UIU5.js} +1 -1
- package/dist/cli/chunks/{chunk-AJXGGTX7.js → chunk-KP3R2M2G.js} +1 -1
- package/dist/cli/chunks/chunk-KQVIWE3W.js +2 -0
- package/dist/cli/chunks/{chunk-ZFCVT43J.js → chunk-KVVJVMDM.js} +2 -2
- package/dist/cli/chunks/{chunk-WMIRAD3J.js → chunk-LOE2JETO.js} +2 -2
- package/dist/cli/chunks/{chunk-54B6P2WS.js → chunk-LPR2R3AN.js} +3 -3
- package/dist/cli/chunks/{chunk-EZRHSHOQ.js → chunk-M6FW56MV.js} +2 -2
- package/dist/cli/chunks/{chunk-IF3HPQNV.js → chunk-MCHEUSY4.js} +1 -1
- package/dist/cli/chunks/{chunk-NBBLPDJX.js → chunk-MEIU7457.js} +2 -2
- package/dist/cli/chunks/{chunk-4BFCLSDN.js → chunk-MHMQ6MCT.js} +2 -2
- package/dist/cli/chunks/{chunk-UQ72K44T.js → chunk-MIU5RUBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-LKURMUBU.js → chunk-MMEXHZUC.js} +37 -12
- package/dist/cli/chunks/{chunk-SRVTNG6L.js → chunk-MTBGOWJA.js} +2 -2
- package/dist/cli/chunks/{chunk-TPMBFARK.js → chunk-NCSXLMDL.js} +67 -22
- package/dist/cli/chunks/{chunk-TU6YN43Q.js → chunk-O7J54OHN.js} +1 -1
- package/dist/cli/chunks/{chunk-JCTCM6IR.js → chunk-OGNTCZKK.js} +1 -1
- package/dist/cli/chunks/{chunk-FSGMRQFC.js → chunk-OS2HHJTM.js} +2 -2
- package/dist/cli/chunks/{chunk-TSWF3AGQ.js → chunk-OS62Y77J.js} +2 -2
- package/dist/cli/chunks/{chunk-VQU7DMEY.js → chunk-PVDXNQPL.js} +2 -2
- package/dist/cli/chunks/{chunk-DNOU2HVQ.js → chunk-PW72M2FE.js} +2 -2
- package/dist/cli/chunks/{chunk-HH6NCBSP.js → chunk-Q5TR6ETB.js} +22 -22
- package/dist/cli/chunks/{chunk-PFWJQPUC.js → chunk-QKK7VBVB.js} +2 -2
- package/dist/cli/chunks/{chunk-JNQN5DNS.js → chunk-RFLHPLET.js} +1 -1
- package/dist/cli/chunks/{chunk-IB3ZPLFA.js → chunk-RJN2RM76.js} +2 -2
- package/dist/cli/chunks/{chunk-PEIQDQXN.js → chunk-RKXZLTWR.js} +2 -2
- package/dist/cli/chunks/{chunk-5VSQAGA2.js → chunk-SE3JFUKP.js} +1 -1
- package/dist/cli/chunks/{chunk-LMJUMUQJ.js → chunk-SK754ZSH.js} +4 -4
- package/dist/cli/chunks/{chunk-UCYTY4LG.js → chunk-SO6G4IX3.js} +2 -2
- package/dist/cli/chunks/{chunk-ICCTQ5LO.js → chunk-SUL3I6QZ.js} +2 -2
- package/dist/cli/chunks/{chunk-G3TFNY4T.js → chunk-TBT3OFRW.js} +2 -2
- package/dist/cli/chunks/{chunk-AYGEWPN4.js → chunk-TEIWJ3GJ.js} +1 -1
- package/dist/cli/chunks/{chunk-YKSWC7I4.js → chunk-TRNBQFFG.js} +8 -20
- package/dist/cli/chunks/{chunk-NSPCZPTB.js → chunk-TTJJ4DQE.js} +2 -2
- package/dist/cli/chunks/{chunk-2WPSMQIL.js → chunk-UBI2EOS3.js} +1 -1
- package/dist/cli/chunks/{chunk-ADFKY3X2.js → chunk-UBY322ED.js} +2 -2
- package/dist/cli/chunks/{chunk-QSDIY3E2.js → chunk-UORTQXJ2.js} +1 -1
- package/dist/cli/chunks/{chunk-ODZSQVEW.js → chunk-URP75DL4.js} +1 -1
- package/dist/cli/chunks/{chunk-37ZDGJ3H.js → chunk-V6NAB5UZ.js} +1 -1
- package/dist/cli/chunks/{chunk-YZ5EQR37.js → chunk-VMFAANWX.js} +2 -2
- package/dist/cli/chunks/{chunk-NFJT7XXR.js → chunk-VMWRMINE.js} +1 -1
- package/dist/cli/chunks/{chunk-MCT4CD5M.js → chunk-VN2HHBZN.js} +2 -2
- package/dist/cli/chunks/{chunk-QMC5MTBV.js → chunk-W72FJA2H.js} +2 -2
- package/dist/cli/chunks/chunk-W7TYKPLY.js +27 -0
- package/dist/cli/chunks/{chunk-YUHM72VQ.js → chunk-WHHQIL4F.js} +2 -2
- package/dist/cli/chunks/{chunk-4YT5YN5G.js → chunk-WMZ2QGGS.js} +2 -2
- package/dist/cli/chunks/{chunk-Q7ORVHJB.js → chunk-WPSK237F.js} +3 -3
- package/dist/cli/chunks/{chunk-ZYZT2CDX.js → chunk-XKQY2Z3Q.js} +1 -1
- package/dist/cli/chunks/{chunk-WNMDWP5A.js → chunk-XLT3FYS7.js} +2 -2
- package/dist/cli/chunks/{chunk-U34OZXD6.js → chunk-XT4TDLOB.js} +2 -2
- package/dist/cli/chunks/{chunk-6GYGAW53.js → chunk-Y25PO65W.js} +2 -2
- package/dist/cli/chunks/{chunk-3SRPFBU7.js → chunk-Y6DWJKHU.js} +3 -3
- package/dist/cli/chunks/{chunk-D6CKKNYC.js → chunk-YBPLJRVT.js} +2 -2
- package/dist/cli/chunks/{chunk-LLUPRGOR.js → chunk-YFCULQBP.js} +2 -2
- package/dist/cli/chunks/{chunk-HT6WAYIR.js → chunk-YGVDP6X7.js} +1 -1
- package/dist/cli/chunks/{chunk-RCPD6F4R.js → chunk-YR2JKBZO.js} +2 -2
- package/dist/cli/chunks/{chunk-P6S6ZVB5.js → chunk-YZSTZUGJ.js} +1 -1
- package/dist/cli/chunks/{chunk-CNF3ZWLM.js → chunk-ZG5UAEEO.js} +2 -2
- package/dist/cli/chunks/{chunk-MWFJC5HR.js → chunk-ZLBY25MB.js} +1 -1
- package/dist/cli/chunks/chunk-ZMPAM4DY.js +2 -0
- package/dist/cli/chunks/{chunk-A4OMK3FO.js → chunk-ZPP57WQU.js} +2 -2
- package/dist/cli/chunks/{chunk-U3AVZGQA.js → chunk-ZXEWTZFR.js} +1 -1
- package/dist/cli/chunks/{ci-HQCRSCC7.js → ci-CBNVLOOQ.js} +2 -2
- package/dist/cli/chunks/{ci-output-YBVXLA6O.js → ci-output-I4HY2FYJ.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-ULGMF2QN.js → circuit-breaker-5VRBKGWL.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-MKZ2LJXK.js → claude-flow-setup-XPJPKHIO.js} +2 -2
- package/dist/cli/chunks/client-AHXNCOHK.js +2 -0
- package/dist/cli/chunks/{cline-installer-WZQ6XBWN.js → cline-installer-OFRDUUWZ.js} +2 -2
- package/dist/cli/chunks/{code-H3KGH45S.js → code-QIZQVB3E.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-NUVEAJ7C.js → code-index-extractor-LMUUWEX4.js} +2 -2
- package/dist/cli/chunks/{codex-installer-JQI6E6CV.js → codex-installer-N2MKIZ2S.js} +2 -2
- package/dist/cli/chunks/{completions-NDF4PFE7.js → completions-Y36S3C5J.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-XCZH66HG.js → complexity-analyzer-73YS3WUD.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-Z4AJGZ7S.js → continuedev-installer-SAOTP6J3.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-K4IPAL7C.js → copilot-installer-A4HXF6HE.js} +2 -2
- package/dist/cli/chunks/core-handlers-EEFLLMAZ.js +2 -0
- package/dist/cli/chunks/{cost-tracker-35KXAB23.js → cost-tracker-P26XUVZS.js} +2 -2
- package/dist/cli/chunks/{coverage-QW5I4TYZ.js → coverage-HVNHSMVJ.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-LT3H4SNJ.js +2 -0
- package/dist/cli/chunks/{cursor-installer-P4Z7RMIZ.js → cursor-installer-46BQFTYZ.js} +2 -2
- package/dist/cli/chunks/{daemon-WQWTCYBM.js → daemon-Y54O3FLT.js} +3 -3
- package/dist/cli/chunks/daemon-YE7K2AZF.js +10 -0
- package/dist/cli/chunks/{dag-attention-scheduler-7XD2VGON.js → dag-attention-scheduler-ETA7YY52.js} +2 -2
- package/dist/cli/chunks/{detect-GZ3P4DI7.js → detect-5WLQ2J3E.js} +2 -2
- package/dist/cli/chunks/{dist-node-6WWAW7OP.js → dist-node-45WW6I7J.js} +2 -2
- package/dist/cli/chunks/{domain-handler-3GTLWARQ.js → domain-handler-J7DQV74M.js} +2 -2
- package/dist/cli/chunks/domain-transfer-GD2EGQVR.js +2 -0
- package/dist/cli/chunks/dream-4K3BK4IG.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-BGIMA77V.js → embed-and-insert-pattern-JELNEA2D.js} +2 -2
- package/dist/cli/chunks/{eval-SXV6DRDD.js → eval-A4PA5G2U.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-TT6WCT2S.js → experience-capture-middleware-MLHTYWTA.js} +3 -3
- package/dist/cli/chunks/{fast-paths-HTAZHEQP.js → fast-paths-QYDTITRV.js} +2 -2
- package/dist/cli/chunks/{feature-flags-WBUKU54W.js → feature-flags-H4MSY26Z.js} +2 -2
- package/dist/cli/chunks/{feature-flags-DIE3Z2B4.js → feature-flags-MQYYRHIK.js} +2 -2
- package/dist/cli/chunks/{file-discovery-SKDETFS3.js → file-discovery-RMFVJNGL.js} +2 -2
- package/dist/cli/chunks/{fleet-WCWEPAVU.js → fleet-7KZQOTAC.js} +4 -4
- package/dist/cli/chunks/{gnn-wrapper-KWZOWBYS.js → gnn-wrapper-NMZFTGVH.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-3AGYHVG2.js → heartbeat-handler-7BQDK7MG.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-IMPPGQUK.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-EIAA6R2L.js +2 -0
- package/dist/cli/chunks/hnsw-index-ZXXP6AXZ.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-6OJJDZHL.js → hnsw-legacy-bridge-TPPGBPKF.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-URULPKRF.js → hnswlib-node-E6NSZPP2.js} +2 -2
- package/dist/cli/chunks/{hooks-OXEBTLXV.js → hooks-CYZIUYSH.js} +48 -52
- package/dist/cli/chunks/hybrid-router-LXWG4MLH.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-NL74PRHD.js → hypergraph-engine-WC6DMTYQ.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-KZ54AEEL.js → hypergraph-handler-GTGA3TXJ.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-TP5LRFYH.js +2 -0
- package/dist/cli/chunks/{init-handler-XKZXRXPG.js → init-handler-N3Z72JNI.js} +6 -6
- package/dist/cli/chunks/init-wizard-AIOA5KOY.js +2 -0
- package/dist/cli/chunks/kernel-SQALRU6Q.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-WISQMJK7.js → kilocode-installer-FUX4V6II.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-O7TBB3GM.js → kiro-installer-ZSNZT7ZR.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-JFVT6SNN.js +2 -0
- package/dist/cli/chunks/{learning-6IZBGVRU.js → learning-UQY64COU.js} +3 -3
- package/dist/cli/chunks/{llm-router-QDMQPPQ7.js → llm-router-CMHGGX6N.js} +4 -4
- package/dist/cli/chunks/llm-router-service-XHFKTH3I.js +2 -0
- package/dist/cli/chunks/{load-KLAJJGL5.js → load-E6WH4QN2.js} +2 -2
- package/dist/cli/chunks/load-test-JEIFJKNN.js +2 -0
- package/dist/cli/chunks/{mcp-SZOPQZIZ.js → mcp-UM5VTW6N.js} +2 -2
- package/dist/cli/chunks/{memory-G3WY74C6.js → memory-7Q3XDUE5.js} +5 -5
- package/dist/cli/chunks/memory-backend-NT7I37CP.js +2 -0
- package/dist/cli/chunks/memory-handlers-746D7NE7.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-TDNQGTOT.js → multi-model-executor-LZENWVRR.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-NGYGEDMV.js → opencode-installer-O2JAIPLF.js} +2 -2
- package/dist/cli/chunks/{orchestrator-KPI5DY2C.js → orchestrator-DKZWXDRI.js} +5 -5
- package/dist/cli/chunks/pattern-null-store-6QU6WHDW.js +2 -0
- package/dist/cli/chunks/pattern-usage-recorder-CLUL4M55.js +2 -0
- package/dist/cli/chunks/{pipeline-CSDCC675.js → pipeline-2VDLTR5J.js} +2 -2
- package/dist/cli/chunks/{platform-Q5XKEVKH.js → platform-4N4Q5XYX.js} +2 -2
- package/dist/cli/chunks/{plugin-XKKR3GVL.js → plugin-GY5AU5CS.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-22QVNKEN.js → prime-radiant-advanced-wasm-TQ4DKDZS.js} +2 -2
- package/dist/cli/chunks/protocol-executor-GT2MZYUU.js +2 -0
- package/dist/cli/chunks/{protocol-handler-REQKTJGG.js → protocol-handler-T3LZ3WRG.js} +2 -2
- package/dist/cli/chunks/{prove-NOFUFSQN.js → prove-OV7S5J4W.js} +2 -2
- package/dist/cli/chunks/provider-manager-OATJ7R3D.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-IJXNQ67O.js +2 -0
- package/dist/cli/chunks/{quality-3DQ2H5TK.js → quality-AXD4NLQA.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-6RBHWCUG.js +2 -0
- package/dist/cli/chunks/{real-embeddings-FCGNYWLL.js → real-embeddings-2PUCC7FG.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-HX3CNRIR.js → roocode-installer-WJ5ARGLW.js} +2 -2
- package/dist/cli/chunks/router-XKQRT5JK.js +2 -0
- package/dist/cli/chunks/routing-feedback-ACPSD4LW.js +2 -0
- package/dist/cli/chunks/{routing-handler-YRZ2LDCR.js → routing-handler-CU6657SZ.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-GCQVBJ4E.js → ruvector-commands-IIF6VSFW.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-B562P3ZC.js → rvf-dual-writer-YMQI7XO2.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-NAGFKCMD.js → rvf-migration-adapter-HDE3PR2W.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-WWFBEJ5Q.js → rvf-migration-coordinator-MQV5OA7K.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-SIWRKE33.js +2 -0
- package/dist/cli/chunks/safe-db-LCPUYMX4.js +2 -0
- package/dist/cli/chunks/schedule-HIQJCWXG.js +2 -0
- package/dist/cli/chunks/scheduler-QE5EJ5LE.js +2 -0
- package/dist/cli/chunks/{security-IFOYTD75.js → security-UM3IGDSM.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-TYD5TQ35.js → shared-rvf-adapter-I3SOJ6M4.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-YGOOVDQZ.js → shared-rvf-dual-writer-KQGC2UO7.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-EU54UTMH.js +2 -0
- package/dist/cli/chunks/status-handler-OX4CJZME.js +46 -0
- package/dist/cli/chunks/{structural-health-KZI6YMKV.js → structural-health-PYUMVBXJ.js} +2 -2
- package/dist/cli/chunks/{sync-Z5BDDBMK.js → sync-2TED3YTY.js} +2 -2
- package/dist/cli/chunks/{sync-ABZNNYRC.js → sync-VALFNTA6.js} +2 -2
- package/dist/cli/chunks/{task-handler-5ACZEPJ7.js → task-handler-VPGAJVPC.js} +2 -2
- package/dist/cli/chunks/{task-handlers-UZWDPL6A.js → task-handlers-IB4UAMU6.js} +3 -3
- package/dist/cli/chunks/{test-APO3MCVV.js → test-OMRJOZB6.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-EFZA5G5C.js → test-scheduling-ZL3YFPBU.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-J2OPLNUK.js → token-bootstrap-DNWZI7SH.js} +2 -2
- package/dist/cli/chunks/{token-usage-VHWVNN4R.js → token-usage-IYO7RGFF.js} +2 -2
- package/dist/cli/chunks/{transformers-PX4HPO75.js → transformers-53ALC34T.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-44HA2Z3F.js → tree-sitter-wasm-parser-WUKJ2I2Q.js} +2 -2
- package/dist/cli/chunks/{types-IMOP7F4R.js → types-47FTEPMV.js} +2 -2
- package/dist/cli/chunks/unified-memory-CJLMC2I4.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-FDGR4D2J.js +2 -0
- package/dist/cli/chunks/unified-persistence-UFH5GLDN.js +2 -0
- package/dist/cli/chunks/{upgrade-OZ3O6ZZI.js → upgrade-QPLMJA5Z.js} +2 -2
- package/dist/cli/chunks/{validate-DRY5BMWX.js → validate-3GVKZOVF.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-QD3LYPUF.js → validate-swarm-XCRTLVM6.js} +2 -2
- package/dist/cli/chunks/{vibium-2J3H2ITD.js → vibium-CH4VPKVZ.js} +2 -2
- package/dist/cli/chunks/visual-security-4ARJ7J2Y.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-KRNUOGKI.js → web-tree-sitter-JDBNAZTV.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-PQIPH3WP.js → windsurf-installer-3MNPVJBP.js} +2 -2
- package/dist/cli/chunks/witness-chain-73QC33ED.js +2 -0
- package/dist/cli/chunks/{witness-chain-HPLOYPS7.js → witness-chain-HR5UBV5J.js} +2 -2
- package/dist/cli/chunks/witness-key-manager-G5SQTIBZ.js +2 -0
- package/dist/cli/chunks/{workflow-OAQ3FWCY.js → workflow-43EMD5FY.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-RKMMPXNA.js +2 -0
- package/dist/cli/chunks/{wrappers-UPIU6S5S.js → wrappers-3N7AYNM3.js} +2 -2
- package/dist/cli/commands/audit.d.ts +12 -0
- package/dist/cli/commands/audit.js +64 -4
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +45 -19
- package/dist/cli/commands/hooks-handlers/hooks-shared.d.ts +13 -0
- package/dist/cli/commands/hooks-handlers/hooks-shared.js +38 -0
- package/dist/cli/commands/hooks-handlers/task-hooks.js +19 -1
- package/dist/cli/handlers/status-handler.d.ts +18 -0
- package/dist/cli/handlers/status-handler.js +47 -0
- package/dist/coordination/mincut/queen-integration.js +24 -7
- package/dist/coordination/protocol-executor.js +2 -1
- package/dist/coordination/queen-lifecycle.js +4 -1
- package/dist/domains/code-intelligence/coordinator.js +10 -6
- package/dist/domains/code-intelligence/services/product-factors-bridge.js +3 -1
- package/dist/domains/defect-intelligence/services/defect-predictor.d.ts +6 -0
- package/dist/domains/defect-intelligence/services/defect-predictor.js +21 -0
- package/dist/domains/learning-optimization/interfaces.d.ts +7 -0
- package/dist/domains/learning-optimization/plugin.js +5 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.d.ts +10 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.js +57 -0
- package/dist/domains/test-execution/plugin.js +2 -2
- package/dist/domains/test-execution/services/flaky-detector.js +1 -1
- package/dist/domains/test-generation/coordinator.js +22 -8
- package/dist/domains/test-generation/interfaces.d.ts +3 -0
- package/dist/domains/test-generation/services/test-generator.js +9 -1
- package/dist/integrations/ruvector/delta-tracker.js +10 -1
- package/dist/integrations/ruvector/sona-persistence.d.ts +24 -0
- package/dist/integrations/ruvector/sona-persistence.js +76 -0
- package/dist/integrations/ruvector/sona-three-loop.d.ts +15 -0
- package/dist/integrations/ruvector/sona-three-loop.js +17 -0
- package/dist/kernel/unified-memory-schemas.d.ts +2 -2
- package/dist/kernel/unified-memory-schemas.js +48 -2
- package/dist/kernel/unified-memory.d.ts +22 -0
- package/dist/kernel/unified-memory.js +43 -0
- package/dist/learning/aqe-learning-engine.js +3 -1
- package/dist/learning/dream/concept-graph.d.ts +31 -1
- package/dist/learning/dream/concept-graph.js +109 -3
- package/dist/learning/dream/dream-engine.d.ts +13 -1
- package/dist/learning/dream/dream-engine.js +146 -10
- package/dist/learning/dream/index.d.ts +1 -1
- package/dist/learning/dream/types.d.ts +23 -0
- package/dist/learning/pattern-store.d.ts +2 -2
- package/dist/learning/pattern-store.js +14 -3
- package/dist/learning/qe-reasoning-bank.js +34 -31
- package/dist/learning/routing-topology-gate.d.ts +12 -2
- package/dist/learning/routing-topology-gate.js +15 -3
- package/dist/learning/rvf-pattern-store.d.ts +1 -1
- package/dist/learning/rvf-pattern-store.js +21 -8
- package/dist/learning/sqlite-persistence.js +12 -9
- package/dist/mcp/bundle.js +516 -442
- package/dist/mcp/qe-tool-bridge.js +7 -2
- package/dist/mcp/tools/base.d.ts +29 -0
- package/dist/mcp/tools/base.js +25 -0
- package/dist/mcp/tools/coverage-analysis/index.js +6 -4
- package/dist/mcp/tools/learning-optimization/dream.d.ts +4 -13
- package/dist/mcp/tools/learning-optimization/dream.js +10 -96
- package/dist/mcp/tools/planning/goap-execute.d.ts +13 -1
- package/dist/mcp/tools/planning/goap-execute.js +33 -18
- package/dist/mcp/tools/registry.js +7 -2
- package/dist/persistence/rvf-migration-coordinator.js +2 -1
- package/dist/planning/actions/qe-action-library.js +124 -1
- package/dist/planning/goap-planner.d.ts +14 -2
- package/dist/planning/goap-planner.js +51 -9
- package/dist/planning/index.d.ts +1 -1
- package/dist/planning/plan-executor.d.ts +84 -4
- package/dist/planning/plan-executor.js +221 -56
- package/dist/planning/types.d.ts +27 -0
- package/dist/shared/events/domain-events.d.ts +2 -0
- package/dist/workers/workers/learning-consolidation.js +21 -1
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-2HMUXHWY.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-M2NKRVRE.js +0 -2
- package/dist/cli/chunks/audit-EPB7ETMT.js +0 -3
- package/dist/cli/chunks/base-CCHC2DAC.js +0 -2
- package/dist/cli/chunks/brain-handler-FBMYEERK.js +0 -89
- package/dist/cli/chunks/browser-workflow-4DGHFYY3.js +0 -2
- package/dist/cli/chunks/chunk-5AQ7FXYG.js +0 -27
- package/dist/cli/chunks/chunk-KYTFIP6R.js +0 -2
- package/dist/cli/chunks/chunk-MYMIEQSZ.js +0 -65
- package/dist/cli/chunks/chunk-XXRTWG7O.js +0 -2
- package/dist/cli/chunks/chunk-ZSA6V5FH.js +0 -2
- package/dist/cli/chunks/client-2OVEDWGU.js +0 -2
- package/dist/cli/chunks/core-handlers-UXRRYP52.js +0 -2
- package/dist/cli/chunks/cross-domain-router-PV3VQVLO.js +0 -2
- package/dist/cli/chunks/daemon-ESUEM6VB.js +0 -10
- package/dist/cli/chunks/domain-transfer-TQYO3SVG.js +0 -2
- package/dist/cli/chunks/dream-UFUXVJQC.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-MBG3SARO.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-5HXA3QB3.js +0 -2
- package/dist/cli/chunks/hnsw-index-PZRQWBRG.js +0 -2
- package/dist/cli/chunks/hybrid-router-NQRIE2GG.js +0 -2
- package/dist/cli/chunks/impact-analyzer-46347ZDV.js +0 -2
- package/dist/cli/chunks/init-wizard-CJYP4WKO.js +0 -2
- package/dist/cli/chunks/kernel-22KQZ56U.js +0 -2
- package/dist/cli/chunks/knowledge-graph-KM3JDBGR.js +0 -2
- package/dist/cli/chunks/llm-router-service-IFO6GRRO.js +0 -2
- package/dist/cli/chunks/load-test-TTKCYAPB.js +0 -2
- package/dist/cli/chunks/memory-backend-ELHCX2ZT.js +0 -2
- package/dist/cli/chunks/memory-handlers-3SKYQZTL.js +0 -2
- package/dist/cli/chunks/pattern-null-store-TMXAYD43.js +0 -2
- package/dist/cli/chunks/protocol-executor-BPLR5EJC.js +0 -2
- package/dist/cli/chunks/provider-manager-4MMD5QKL.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-P7KNT3WZ.js +0 -2
- package/dist/cli/chunks/queen-coordinator-NBZZ4MGC.js +0 -2
- package/dist/cli/chunks/router-2RXR6J2Q.js +0 -2
- package/dist/cli/chunks/routing-feedback-AVAA76TK.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-X2YDJA55.js +0 -2
- package/dist/cli/chunks/safe-db-4PRU65BK.js +0 -2
- package/dist/cli/chunks/schedule-2AST5CHW.js +0 -2
- package/dist/cli/chunks/scheduler-SW6II7OU.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-OB5NEGAK.js +0 -2
- package/dist/cli/chunks/status-handler-HFPWSCBY.js +0 -45
- package/dist/cli/chunks/unified-memory-X7OJYGSD.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-O6HOD5YL.js +0 -2
- package/dist/cli/chunks/unified-persistence-C332CER2.js +0 -2
- package/dist/cli/chunks/visual-security-MPUG5HPI.js +0 -2
- package/dist/cli/chunks/witness-chain-Q4BZHPDF.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-4NDWECYK.js +0 -2
|
@@ -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.11.
|
|
2
|
-
import{S as m,b as c}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.11.5");process.exit(0)}
|
|
2
|
+
import{S as m,b as c}from"./chunk-GODAWJMZ.js";import"./chunk-C4EZNOWK.js";m();import{Command as f}from"commander";import n from"chalk";import{createRequire as u}from"node:module";import{platform as p,arch as v}from"node:os";var y=[{packageName:"better-sqlite3",role:"SQLite storage (required \u2014 memory.db, patterns, audit)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"web-tree-sitter",role:"Tree-sitter WASM parser runtime (required \u2014 code intelligence)",fallback:"n/a \u2014 required",affectsFlags:[],required:!0},{packageName:"hnswlib-node",role:"Canonical HNSW vector index (default since ADR-090)",fallback:"ProgressiveHnswBackend (JS) \u2014 correct but slower on large codebases",affectsFlags:["useNativeHNSW"],required:!1},{packageName:"@ruvector/rvf-node",role:"Persistent HNSW pattern store + RVF brain export format",fallback:"SQLite-backed HNSW + JSONL brain export",affectsFlags:["useRVFPatternStore"],required:!1},{packageName:"@ruvector/solver-node",role:"Sublinear PageRank on the pattern citation graph",fallback:"TypeScript power iteration \u2014 O(n\xB7m) (practical cap \u2248 50K nodes)",affectsFlags:["useSublinearSolver"],required:!1},{packageName:"@ruvector/attention",role:"Flash Attention with SIMD acceleration",fallback:"Plain attention \u2014 2.5\u20137\xD7 slower on large sequences",affectsFlags:["useQEFlashAttention"],required:!1},{packageName:"@ruvector/gnn",role:"GraphMAE native acceleration",fallback:"TypeScript GraphMAE \u2014 correct but slower",affectsFlags:["useGraphMAEEmbeddings"],required:!1}];function b(){let r=u(import.meta.url);return o=>{try{return r(o),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a:new Error(String(a))}}}}function N(r,o){return r.map(a=>{let s=o(a.packageName);if(s.ok)return{...a,status:"loaded"};let t=E(s.error),e=a.required?"required-missing":"missing";return{...a,status:e,loadError:s.error.message}})}function E(r){return r.code==="MODULE_NOT_FOUND"}var R={RUVECTOR_USE_RVF_PATTERN_STORE:"useRVFPatternStore",RUVECTOR_USE_SUBLINEAR_SOLVER:"useSublinearSolver",RUVECTOR_USE_NATIVE_HNSW:"useNativeHNSW",RUVECTOR_USE_GNN_INDEX:"useQEGNNIndex",RUVECTOR_USE_FLASH_ATTENTION:"useQEFlashAttention",RUVECTOR_USE_GRAPH_MAE_EMBEDDINGS:"useGraphMAEEmbeddings"};function S(r){let o=[];for(let[a,s]of Object.entries(R)){let t=r[a];t!==void 0&&o.push({envVar:a,value:t,flagName:s})}return o}function k(r){let o=[],a=new Map(r.natives.map(e=>[e.packageName,e]));for(let e of r.natives)e.status==="required-missing"&&o.push({severity:"error",message:`Required dependency missing: ${e.packageName} \u2014 ${e.role}`,action:`npm install ${e.packageName}`});for(let e of r.natives)e.status==="missing"&&!e.required&&o.push({severity:"warn",message:`Optional native missing: ${e.packageName} \u2014 falls back to ${e.fallback}`,action:`npm install ${e.packageName}`});let s={...r.flags};for(let e of r.envOverrides){let i=r.natives.filter(d=>d.affectsFlags.includes(e.flagName)),l=i.some(d=>d.status==="loaded");if((e.value==="true"||e.value==="1")&&i.length>0&&!l){let d=i.map(g=>g.packageName).join(", ");o.push({severity:"warn",message:`${e.envVar}=${e.value} requests flag ${e.flagName}=true, but required native(s) not loaded: ${d}. The flag will silently fall back.`,action:i[0]?`npm install ${i[0].packageName}`:void 0})}}return r.natives.filter(e=>!e.required&&e.status==="missing").length===0&&r.natives.every(e=>e.status!=="required-missing")&&o.push({severity:"info",message:"All recommended native bindings are loaded \u2014 no action required."}),o}function q(r){let o=N(y,r.probe),a=S(r.env),s=k({natives:o,flags:r.flags,envOverrides:a}),t=o.filter(l=>!l.required&&l.status==="loaded").length,e=o.filter(l=>!l.required&&l.status==="missing").length,i=o.filter(l=>l.required).every(l=>l.status==="loaded");return{aqeVersion:r.aqeVersion,platform:{os:p(),arch:v(),node:process.version},natives:o,flags:r.flags,envOverrides:a,recommendations:s,summary:{requiredOk:i,optionalMissingCount:e,optionalLoadedCount:t}}}function h(r,o){return r.summary.requiredOk?o&&r.summary.optionalMissingCount>0?1:0:2}function O(r){let o=[],a=(e="")=>o.push(e);a(""),a(n.bold.blue(" aqe upgrade \u2014 native binding report")),a(n.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),a(""),a(` AQE: ${n.cyan(r.aqeVersion)}`),a(` Platform: ${n.cyan(`${r.platform.os} ${r.platform.arch}`)}`),a(` Node: ${n.cyan(r.platform.node)}`),a(""),a(n.blue(" Native bindings:"));for(let e of r.natives){let i=$(e.status);a(` ${i} ${n.bold(e.packageName.padEnd(28))} ${n.gray(e.role)}`),e.status!=="loaded"&&e.loadError&&a(` ${n.gray(e.loadError.split(`
|
|
3
3
|
`)[0])}`)}a(""),a(n.blue(" Flag state (after env overrides):"));let s=Object.entries(r.flags);for(let[e,i]of s){let l=i?n.green("on "):n.yellow("off");a(` ${l} ${e}`)}if(r.envOverrides.length>0){a(""),a(n.blue(" Env overrides in effect:"));for(let e of r.envOverrides)a(` ${n.cyan(e.envVar)}=${n.cyan(e.value)} ${n.gray(`\u2192 ${e.flagName}`)}`)}if(a(""),a(n.blue(" Recommendations:")),r.recommendations.length===0)a(n.gray(" (none)"));else for(let e of r.recommendations){let i=F(e.severity);a(` ${i} ${e.message}`),e.action&&a(` ${n.gray("\u2192")} ${n.cyan(e.action)}`)}a("");let t=r.summary.requiredOk?n.green("OK"):n.red("FAIL");return a(` Summary: required ${t} optional loaded ${n.cyan(r.summary.optionalLoadedCount)} / ${n.cyan(r.summary.optionalLoadedCount+r.summary.optionalMissingCount)}`),a(""),o.join(`
|
|
4
4
|
`)}function $(r){switch(r){case"loaded":return n.green("\u2713");case"missing":return n.yellow("\u2026");case"required-missing":return n.red("\u2717")}}function F(r){switch(r){case"info":return n.green("\u2713");case"warn":return n.yellow("!");case"error":return n.red("\u2717")}}function U(r){return new f("upgrade").description("Detect optional native bindings and recommend install / flag changes (read-only)").option("--json","Emit the report as JSON to stdout",!1).option("--strict","Exit non-zero if any recommended optional native is missing",!1).action(async a=>{let s=A(),t=c(),e=q({aqeVersion:s,probe:b(),env:process.env,flags:{useRVFPatternStore:t.useRVFPatternStore,useSublinearSolver:t.useSublinearSolver,useNativeHNSW:t.useNativeHNSW,useGraphMAEEmbeddings:t.useGraphMAEEmbeddings,useQEFlashAttention:t.useQEFlashAttention}});a.json?process.stdout.write(JSON.stringify(e,null,2)+`
|
|
5
5
|
`):process.stdout.write(O(e)),await r(h(e,a.strict===!0))})}function A(){try{return u(import.meta.url)("../../../package.json").version??"unknown"}catch{return"unknown"}}export{y as NATIVE_CATALOG,k as buildRecommendations,q as buildReport,b as createDefaultLoadProbe,U as createUpgradeCommand,N as detectNatives,h as exitCodeFor,S as readEnvOverrides,O as renderReportHuman};
|
|
@@ -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.11.
|
|
2
|
-
import{e as V}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.11.5");process.exit(0)}
|
|
2
|
+
import{e as V}from"./chunk-YBPLJRVT.js";import"./chunk-7YSBATSN.js";import{a as P}from"./chunk-354367AP.js";import"./chunk-O7J54OHN.js";import"./chunk-ZMPAM4DY.js";import"./chunk-Y25PO65W.js";import{b as v,d as F}from"./chunk-CKOF27L7.js";import"./chunk-RKXZLTWR.js";import"./chunk-CDJP6COA.js";import"./chunk-C4EZNOWK.js";F();import{Command as M}from"commander";import{readFileSync as A,writeFileSync as S,existsSync as C,readdirSync as O,statSync as B}from"fs";import{join as b,resolve as j,basename as I}from"path";import e from"chalk";function R(i){let n=j(i);if(!C(n))throw new Error(`Input path not found: ${n}`);if(B(n).isDirectory()){let r=[],t=O(n).filter(o=>o.endsWith(".json")).map(o=>b(n,o));for(let o of t)try{let u=v(A(o,"utf-8"));if($(u))r.push(u);else if(Array.isArray(u))for(let d of u)$(d)&&r.push(d)}catch{console.warn(e.yellow(`Warning: Could not parse ${I(o)}`))}return r}else{let r=v(A(n,"utf-8"));if($(r))return[r];if(Array.isArray(r))return r.filter($);throw new Error("Invalid input format. Expected ParallelValidationRunResult or array of results.")}}function $(i){return typeof i=="object"&&i!==null&&"runId"in i&&"model"in i&&"outcomes"in i&&Array.isArray(i.outcomes)}function D(){return P({storeQEPattern:async()=>{},searchQEPatterns:async()=>({success:!0,value:[]}),addFact:async()=>({success:!0,value:void 0}),query:async()=>({success:!0,value:{results:[],confidence:0}}),getStats:()=>({totalPatterns:0,totalFacts:0,indexHealth:1,lastCompaction:new Date})})}function T(){let i=process.cwd(),n=[b(i,".claude/skills/trust-tier-manifest.json"),b(i,".claude/skills/skills-manifest.json")];for(let g of n)if(C(g))return g;return b(i,".claude/skills/trust-tier-manifest.json")}function L(i,n,g){let r=g.format||"markdown";if(r==="markdown"||r==="both"){let t=n.generateMarkdownReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".md"):g.output;S(o,t),console.log(e.green(`Markdown report written to: ${o}`))}else console.log(`
|
|
3
3
|
`+t)}if(r==="json"||r==="both"){let t=n.generateJsonReport(i);if(g.output){let o=r==="both"?g.output.replace(/\.\w+$/,".json"):g.output;S(o,t),console.log(e.green(`JSON report written to: ${o}`))}else console.log(`
|
|
4
4
|
`+t)}}function W(i,n,g){let r=new M("skill").description("Skill validation and reporting (ADR-056)");return r.command("report").description("Generate aggregated report from validation results").requiredOption("-i, --input <path>","Input file or directory containing validation results").option("-o, --output <path>","Output file path (default: stdout)").option("-f, --format <format>","Output format: markdown, json, or both","markdown").option("-b, --baseline <path>","Baseline directory for regression detection").option("--detect-regressions","Enable regression detection against historical data").option("--update-manifest","Update trust tier manifest with new pass rates").option("-t, --threshold <number>","Regression threshold (0-1)",parseFloat).option("-v, --verbose","Verbose output").action(async t=>{try{t.verbose&&(console.log(e.blue(`
|
|
5
5
|
Validation Result Aggregator`)),console.log(e.gray(`ADR-056 Phase 5
|
|
@@ -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.11.
|
|
2
|
-
import{a as i,b as k,c as d,d as p}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.11.5");process.exit(0)}
|
|
2
|
+
import{a as i,b as k,c as d,d as p}from"./chunk-YBPLJRVT.js";import"./chunk-7YSBATSN.js";import{a as v}from"./chunk-G2ZIJZJ7.js";import{a as h}from"./chunk-354367AP.js";import"./chunk-AGJOGUP5.js";import"./chunk-O7J54OHN.js";import"./chunk-B2VBDMDI.js";import"./chunk-VMWRMINE.js";import"./chunk-FII3WCCY.js";import"./chunk-UORTQXJ2.js";import"./chunk-MCHEUSY4.js";import"./chunk-TRNBQFFG.js";import"./chunk-LPR2R3AN.js";import"./chunk-NCSXLMDL.js";import"./chunk-IU5RSN6M.js";import"./chunk-ZMPAM4DY.js";import"./chunk-Y25PO65W.js";import"./chunk-YFCULQBP.js";import"./chunk-CKOF27L7.js";import"./chunk-4QOI5JS7.js";import"./chunk-TTJJ4DQE.js";import"./chunk-5WMU7XCF.js";import"./chunk-RKXZLTWR.js";import"./chunk-K4I7UIU5.js";import"./chunk-FHTYEAQ3.js";import"./chunk-WHHQIL4F.js";import"./chunk-3JF5A72M.js";import"./chunk-CDJP6COA.js";import"./chunk-FIPKIIMS.js";import"./chunk-2XQHG56O.js";import"./chunk-2XPMATEK.js";import"./chunk-JDSHUECG.js";import"./chunk-GODAWJMZ.js";import"./chunk-C4EZNOWK.js";import{Command as x}from"commander";import o from"chalk";function j(e,t,n){let c=new x("validate").description("Validation commands for skills and agents");return c.command("swarm").description("Validate skills in parallel using Claude Flow swarms (ADR-056)").option("-s, --skills <skills>",'Comma-separated list of skills to validate, or "all" for P0 skills',"all").option("-m, --models <models>","Comma-separated list of models to validate against",p.join(",")).option("-t, --topology <topology>","Swarm topology: hierarchical or mesh","hierarchical").option("--max-concurrent <number>","Maximum concurrent skill validations",String(i.maxConcurrentSkills)).option("--max-models <number>","Maximum concurrent models per skill",String(i.maxConcurrentModels)).option("--timeout <ms>","Timeout per validation in milliseconds",String(i.timeout)).option("--no-retry","Disable retries on failure").option("-v, --verbose","Show detailed output").option("--json","Output results as JSON").action(async l=>{if(await n())try{console.log(o.blue(`
|
|
3
3
|
Swarm Skill Validation
|
|
4
4
|
`));let r=l.skills==="all"?[...d]:l.skills.split(",").map(y=>y.trim()),u=l.models.split(",").map(y=>y.trim()),g=P(l.topology),a={topology:g,maxConcurrentSkills:parseInt(l.maxConcurrent,10)||i.maxConcurrentSkills,maxConcurrentModels:parseInt(l.maxModels,10)||i.maxConcurrentModels,timeout:parseInt(l.timeout,10)||i.timeout,continueOnFailure:!0,retry:l.retry!==!1?i.retry:void 0};l.verbose&&(console.log(o.gray("Configuration:")),console.log(o.gray(` Topology: ${a.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${a.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${a.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${a.timeout}ms`)),console.log(o.gray(` Retry: ${a.retry?"enabled":"disabled"}`)),console.log("")),console.log(o.cyan(` Skills: ${r.join(", ")}`)),console.log(o.cyan(` Models: ${u.join(", ")}`)),console.log(o.cyan(` Topology: ${g}`)),console.log("");let m=await R(e),f=h(m),C=k(a,f),$=Date.now();console.log(o.yellow(` Starting parallel validation...
|
|
5
5
|
`));let b=await C.validateSkillsParallel(r,u),s=C.getSummary(b),w=Date.now()-$;l.json?T(s):D(s,l.verbose),console.log(o.blue(`
|
|
@@ -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.11.
|
|
2
|
-
import{c as t}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.11.5");process.exit(0)}
|
|
2
|
+
import{c as t}from"./chunk-C4EZNOWK.js";import{createRequire as o}from"module";var i,e,a,c,l,p,s,m,u,d,A,f,h,_,b,v,L,n=t(()=>{i=o(import.meta.url),e=i("vibium"),a=e,{RuvectorLayer:c,TensorCompress:l,differentiableSearch:p,hierarchicalForward:s,getCompressionLevel:m,init:u,FlashAttention:d,DotProductAttention:A,MultiHeadAttention:f,HyperbolicAttention:h,LinearAttention:_,MoEAttention:b,SonaEngine:v,pipeline:L}=e||{}});n();export{A as DotProductAttention,d as FlashAttention,h as HyperbolicAttention,_ as LinearAttention,b as MoEAttention,f as MultiHeadAttention,c as RuvectorLayer,v as SonaEngine,l as TensorCompress,a as default,p as differentiableSearch,m as getCompressionLevel,s as hierarchicalForward,u as init,L as pipeline};
|
|
@@ -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.11.5");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-ZPP57WQU.js";import"./chunk-6T65OKUM.js";import"./chunk-I3NWKPXJ.js";import"./chunk-NCSXLMDL.js";import"./chunk-IU5RSN6M.js";import"./chunk-ZMPAM4DY.js";import"./chunk-Y25PO65W.js";import"./chunk-YFCULQBP.js";import"./chunk-CKOF27L7.js";import"./chunk-TTJJ4DQE.js";import"./chunk-RKXZLTWR.js";import"./chunk-K4I7UIU5.js";import"./chunk-SUL3I6QZ.js";import"./chunk-FHTYEAQ3.js";import"./chunk-WHHQIL4F.js";import"./chunk-3JF5A72M.js";import"./chunk-CDJP6COA.js";import"./chunk-FIPKIIMS.js";import"./chunk-2XQHG56O.js";import"./chunk-2XPMATEK.js";import"./chunk-JDSHUECG.js";import"./chunk-GODAWJMZ.js";import"./chunk-C4EZNOWK.js";export{a as VisualSecurityTool};
|
|
@@ -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.11.
|
|
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.11.5");process.exit(0)}
|
|
2
|
+
import"./chunk-C4EZNOWK.js";import{createRequire as t}from"module";var o=t(import.meta.url),e=o("web-tree-sitter"),i=e,{RuvectorLayer:n,TensorCompress:a,differentiableSearch:c,hierarchicalForward:s,getCompressionLevel:l,init:p,FlashAttention:m,DotProductAttention:u,MultiHeadAttention:d,HyperbolicAttention:A,LinearAttention:f,MoEAttention:h,SonaEngine:_,pipeline:b}=e||{};export{u as DotProductAttention,m as FlashAttention,A as HyperbolicAttention,f as LinearAttention,h as MoEAttention,d as MultiHeadAttention,n as RuvectorLayer,_ as SonaEngine,a as TensorCompress,i as default,c as differentiableSearch,l as getCompressionLevel,s as hierarchicalForward,p as init,b as pipeline};
|
|
@@ -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.11.
|
|
2
|
-
import{b as u}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.11.5");process.exit(0)}
|
|
2
|
+
import{b as u}from"./chunk-EDOGRFAG.js";import{a as f,c as d}from"./chunk-RKXZLTWR.js";import"./chunk-C4EZNOWK.js";d();import{existsSync as i,mkdirSync as h,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;options;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.options=e,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf",{memoryBackend:this.options.memoryBackend}),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||h(o,{recursive:!0}),i(r)&&this.overwrite){let m=this.mergeExistingConfig(r,t.content);a(r,m)}else a(r,t.content);e.mcpConfigured=!0}let s=this.generator.generateBehavioralRules("windsurf"),n=p(this.projectRoot,s.path);if(e.rulesPath=n,!i(n)||this.overwrite){if(i(n)&&this.overwrite){let o=this.mergeExistingRules(n,s.content);a(n,o)}else a(n,s.content);e.rulesInstalled=!0}}catch(t){e.success=!1,e.errors.push(`Windsurf installation failed: ${f(t)}`)}return e}mergeExistingConfig(e,t){try{let r=JSON.parse(g(e,"utf-8")),s=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,s.mcpServers),JSON.stringify(r,null,2)+`
|
|
3
3
|
`}catch{return t}}mergeExistingRules(e,t){try{let r=g(e,"utf-8");return r.includes("Agentic QE")||r.includes("fleet_init")?r:r.trimEnd()+`
|
|
4
4
|
|
|
5
5
|
---
|
|
@@ -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.11.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i}from"./chunk-W7TYKPLY.js";import"./chunk-IBDQWKI3.js";import"./chunk-NCSXLMDL.js";import"./chunk-IU5RSN6M.js";import"./chunk-ZMPAM4DY.js";import"./chunk-Y25PO65W.js";import"./chunk-YFCULQBP.js";import"./chunk-CKOF27L7.js";import"./chunk-TTJJ4DQE.js";import"./chunk-RKXZLTWR.js";import"./chunk-FHTYEAQ3.js";import"./chunk-WHHQIL4F.js";import"./chunk-3JF5A72M.js";import"./chunk-CDJP6COA.js";import"./chunk-FIPKIIMS.js";import"./chunk-2XQHG56O.js";import"./chunk-2XPMATEK.js";import"./chunk-JDSHUECG.js";import"./chunk-GODAWJMZ.js";import"./chunk-C4EZNOWK.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,i as _resetWitnessChainForTests,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
|
|
@@ -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.11.
|
|
2
|
-
import{a,b,c,d,e,f,g}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.11.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-FII3WCCY.js";import"./chunk-ZMPAM4DY.js";import"./chunk-Y25PO65W.js";import"./chunk-GODAWJMZ.js";import"./chunk-C4EZNOWK.js";export{c as PersistentWitnessChain,a as SPRTAccumulator,b as WitnessChain,f as createPersistentWitnessChain,e as createWitnessChain,d as createWitnessChainSQLitePersistence,g as isWitnessChainFeatureEnabled};
|
|
@@ -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.11.5");process.exit(0)}
|
|
2
|
+
import{a,b,c}from"./chunk-IBDQWKI3.js";import"./chunk-YFCULQBP.js";import"./chunk-C4EZNOWK.js";export{a as WitnessKeyManager,c as _resetDefaultWitnessKeyManagerForTests,b as getDefaultWitnessKeyManager};
|
|
@@ -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.11.
|
|
2
|
-
import
|
|
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.11.5");process.exit(0)}
|
|
2
|
+
import"./chunk-MTBGOWJA.js";import{b as $}from"./chunk-HJWT4KME.js";import{d as R}from"./chunk-FMNXHVIN.js";import{b as k,c as C,d as b}from"./chunk-BJLA2IX7.js";import{c as W}from"./chunk-CKOF27L7.js";import"./chunk-5WMU7XCF.js";import"./chunk-RKXZLTWR.js";import"./chunk-C4EZNOWK.js";import{Command as O}from"commander";import o from"chalk";function P(d,a){let m=d.indexOf("=");return m>0&&(a[d.substring(0,m)]=d.substring(m+1)),a}function x(d,a,m){let y=new O("workflow").description("Manage QE workflows and pipelines (ADR-041)");return y.command("run <file>").description("Execute a QE pipeline from YAML file").option("-w, --watch","Watch execution progress").option("-v, --verbose","Show detailed output").option("--params <json>","Additional parameters as JSON","{}").action(async(t,l)=>{if(!await m())return;let e=await import("fs"),c=(await import("path")).resolve(t);try{console.log(o.blue(`
|
|
3
3
|
Running workflow from: ${t}
|
|
4
4
|
`));let s=k(c);if(!s.success||!s.workflow){console.log(o.red("Failed to parse pipeline:"));for(let w of s.errors)console.log(o.red(` ${w}`));await a(1)}let r={...W(l.params,"params")};if(s.pipeline){for(let w of s.pipeline.stages)if(w.params)for(let[S,h]of Object.entries(w.params))r[S]=h}if(!d.workflowOrchestrator.getWorkflow(s.workflow.id)){let w=d.workflowOrchestrator.registerWorkflow(s.workflow);w.success||(console.log(o.red(`Failed to register workflow: ${w.error.message}`)),await a(1))}let n=await d.workflowOrchestrator.executeWorkflow(s.workflow.id,r);if(!n.success){console.log(o.red(`Failed to start workflow: ${n.error.message}`)),await a(1);return}let p=n.value;if(console.log(o.cyan(` Execution ID: ${p}`)),console.log(o.gray(` Workflow: ${s.workflow.name}`)),console.log(o.gray(` Stages: ${s.workflow.steps.length}`)),console.log(""),l.watch){console.log(o.blue(`Workflow Progress:
|
|
5
5
|
`));let w,S=Date.now();for(;;){let g=d.workflowOrchestrator.getWorkflowStatus(p);if(!g)break;if(!w||w.progress!==g.progress||w.status!==g.status||JSON.stringify(w.currentSteps)!==JSON.stringify(g.currentSteps)){process.stdout.write("\r\x1B[K");let v="\u2588".repeat(Math.floor(g.progress/5))+"\u2591".repeat(20-Math.floor(g.progress/5)),D=g.status==="completed"?o.green:g.status==="failed"?o.red:g.status==="running"?o.yellow:o.gray;console.log(` [${v}] ${g.progress}% - ${D(g.status)}`),g.currentSteps.length>0&&l.verbose&&console.log(o.gray(` Running: ${g.currentSteps.join(", ")}`)),w=g}if(g.status==="completed"||g.status==="failed"||g.status==="cancelled")break;await new Promise(v=>setTimeout(v,500))}let h=d.workflowOrchestrator.getWorkflowStatus(p);if(h){console.log("");let g=h.duration||Date.now()-S;h.status==="completed"?(console.log(o.green("Workflow completed successfully")),console.log(o.gray(` Duration: ${$(g)}`)),console.log(o.gray(` Completed: ${h.completedSteps.length} stages`)),h.skippedSteps.length>0&&console.log(o.yellow(` Skipped: ${h.skippedSteps.length} stages`))):h.status==="failed"?(console.log(o.red("Workflow failed")),console.log(o.red(` Error: ${h.error}`)),console.log(o.gray(` Failed stages: ${h.failedSteps.join(", ")}`))):console.log(o.yellow(`Workflow ${h.status}`))}}else console.log(o.green("Workflow execution started")),console.log(o.gray(` Use 'aqe workflow status ${p}' to check progress`));console.log(""),await a(0)}catch(s){console.error(o.red(`
|
|
@@ -35,10 +35,10 @@ Workflow cancelled: ${t}
|
|
|
35
35
|
`)):console.log(o.red(`
|
|
36
36
|
Failed to cancel workflow: ${l.error.message}
|
|
37
37
|
`)),await a(l.success?0:1)}catch(l){console.error(o.red(`
|
|
38
|
-
Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-
|
|
38
|
+
Failed to cancel workflow:`),l),await a(1)}}),y.command("browser-list").description("List available browser workflow templates").action(async()=>{try{let{BrowserWorkflowTool:t}=await import("./browser-workflow-4HX6RP5F.js"),e=await new t().invoke({});if(e.success&&e.data){console.log(o.blue(`
|
|
39
39
|
Browser Workflow Templates:
|
|
40
40
|
`));for(let u of e.data.availableTemplates)console.log(` ${o.cyan(u)}`);console.log("")}else console.log(o.red(`Failed: ${e.error||"Unknown error"}`));await a(0)}catch(t){console.error(o.red(`
|
|
41
|
-
Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-
|
|
41
|
+
Failed:`),t),await a(1)}}),y.command("browser-load [template]").description("Load and validate a browser workflow template or inline YAML").option("--yaml <yaml>","Inline YAML workflow definition").option("-v, --var <key=value>","Variable override (repeatable)",P,{}).option("-F, --format <format>","Output format (text|json)","text").option("-o, --output <path>","Write output to file").action(async(t,l)=>{try{let{BrowserWorkflowTool:e}=await import("./browser-workflow-4HX6RP5F.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-I4HY2FYJ.js"),s=new e,f={variables:l.var||{}};if(l.yaml)f.workflowYaml=l.yaml;else if(t)if(t.endsWith(".yaml")||t.endsWith(".yml")){let i=await import("fs"),p=(await import("path")).resolve(t);i.existsSync(p)||(console.log(o.red(`
|
|
42
42
|
File not found: ${p}
|
|
43
43
|
`)),await a(1)),f.workflowYaml=i.readFileSync(p,"utf-8")}else f.templateName=t;else console.log(o.red(`
|
|
44
44
|
Provide a template name or --yaml. Use "workflow browser-list" to see templates.
|
|
@@ -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.11.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-LOE2JETO.js";import"./chunk-MHMQ6MCT.js";import"./chunk-NCSXLMDL.js";import"./chunk-IU5RSN6M.js";import"./chunk-ZMPAM4DY.js";import"./chunk-Y25PO65W.js";import"./chunk-YFCULQBP.js";import"./chunk-CKOF27L7.js";import"./chunk-TTJJ4DQE.js";import"./chunk-5WMU7XCF.js";import"./chunk-RKXZLTWR.js";import"./chunk-K4I7UIU5.js";import"./chunk-FHTYEAQ3.js";import"./chunk-WHHQIL4F.js";import"./chunk-3JF5A72M.js";import"./chunk-CDJP6COA.js";import"./chunk-FIPKIIMS.js";import"./chunk-2XQHG56O.js";import"./chunk-2XPMATEK.js";import"./chunk-JDSHUECG.js";import"./chunk-GODAWJMZ.js";import"./chunk-C4EZNOWK.js";export{b as DEFAULT_WORKFLOW_CONFIG,a as WorkflowEvents,c as WorkflowOrchestrator,d as createWorkflowOrchestrator};
|
|
@@ -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.11.
|
|
2
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}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.11.5");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v as L,w as M,x as N}from"./chunk-KQVIWE3W.js";import{a as v,b as w,c as x,d as y,e as z,f as A,g as B,h as C,i as D,j as E,k as F,l as G,m as H,n as I,o as J,p as K}from"./chunk-TBT3OFRW.js";import"./chunk-NCSXLMDL.js";import"./chunk-IU5RSN6M.js";import"./chunk-ZMPAM4DY.js";import"./chunk-Y25PO65W.js";import"./chunk-YFCULQBP.js";import"./chunk-CKOF27L7.js";import"./chunk-TTJJ4DQE.js";import"./chunk-RKXZLTWR.js";import"./chunk-FHTYEAQ3.js";import"./chunk-WHHQIL4F.js";import"./chunk-3JF5A72M.js";import"./chunk-CDJP6COA.js";import"./chunk-FIPKIIMS.js";import"./chunk-2XQHG56O.js";import"./chunk-2XPMATEK.js";import"./chunk-JDSHUECG.js";import"./chunk-GODAWJMZ.js";import"./chunk-C4EZNOWK.js";export{z as GNNLayerFactory,i as QEFlashAttention,x as QEGNNEmbeddingIndex,y as QEGNNIndexFactory,a as QESONA,e as QE_FLASH_ATTENTION_CONFIG,g as QE_PERFORMANCE_TARGETS,f as QE_SONA_CONFIG,A as TensorCompressionFactory,u as batchComputeAttention,K as batchDifferentiableSearch,M as checkRuvectorPackagesAvailable,c as createDomainQESONA,j as createQEFlashAttention,b as createQESONA,D as getDifferentiableSearch,F as getGetCompressionLevel,E as getHierarchicalForward,G as getInit,h as getOptimalBlockConfig,k as getQEFlashAttentionConfig,n as getRuvectorDotProductAttention,m as getRuvectorFlashAttention,p as getRuvectorHyperbolicAttention,B as getRuvectorLayer,q as getRuvectorLinearAttention,r as getRuvectorMoEAttention,o as getRuvectorMultiHeadAttention,L as getRuvectorPackageVersions,C as getTensorCompress,l as getWorkloadTypes,N as initAllRuvectorPackages,w as initGNN,d as isAttentionAvailable,v as isGNNAvailable,s as toFloat32Array,H as toFloat32ArrayGNN,J as toIEmbedding,t as toNumberArrayAttn,I as toNumberArrayGNN};
|
|
@@ -36,6 +36,18 @@ export declare function formatVerificationText(result: ChainVerificationResult,
|
|
|
36
36
|
export declare function handleAuditVerify(options: {
|
|
37
37
|
format?: 'json' | 'text';
|
|
38
38
|
}): Promise<AuditVerifyOutput>;
|
|
39
|
+
/**
|
|
40
|
+
* Verify the `src/audit/witness-chain.ts` full audit trail — the
|
|
41
|
+
* SHAKE-256/Ed25519 chain that records pattern/dream/routing/review
|
|
42
|
+
* decisions (tens of thousands of rows), as distinct from the 29-row
|
|
43
|
+
* governance receipt chain `handleAuditVerify` checks above.
|
|
44
|
+
*
|
|
45
|
+
* This is the chain CI should gate on: it's what actually accumulates
|
|
46
|
+
* from real QE agent activity.
|
|
47
|
+
*/
|
|
48
|
+
export declare function handleAuditChainVerify(options: {
|
|
49
|
+
format?: 'json' | 'text';
|
|
50
|
+
}): Promise<AuditVerifyOutput>;
|
|
39
51
|
/**
|
|
40
52
|
* Create the audit command group following the project convention.
|
|
41
53
|
*/
|
|
@@ -98,6 +98,64 @@ export async function handleAuditVerify(options) {
|
|
|
98
98
|
}
|
|
99
99
|
return output;
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Verify the `src/audit/witness-chain.ts` full audit trail — the
|
|
103
|
+
* SHAKE-256/Ed25519 chain that records pattern/dream/routing/review
|
|
104
|
+
* decisions (tens of thousands of rows), as distinct from the 29-row
|
|
105
|
+
* governance receipt chain `handleAuditVerify` checks above.
|
|
106
|
+
*
|
|
107
|
+
* This is the chain CI should gate on: it's what actually accumulates
|
|
108
|
+
* from real QE agent activity.
|
|
109
|
+
*/
|
|
110
|
+
export async function handleAuditChainVerify(options) {
|
|
111
|
+
const { WitnessChain, hashWith, serializeEntry } = await import('../../audit/witness-chain.js');
|
|
112
|
+
const root = findProjectRoot();
|
|
113
|
+
const dbPath = path.join(root, '.agentic-qe', 'memory.db');
|
|
114
|
+
let output;
|
|
115
|
+
if (!existsSync(dbPath)) {
|
|
116
|
+
output = {
|
|
117
|
+
featureEnabled: true,
|
|
118
|
+
chainLength: 0,
|
|
119
|
+
integrity: true,
|
|
120
|
+
brokenAt: -1,
|
|
121
|
+
lastHash: '',
|
|
122
|
+
message: `No database found at ${dbPath} — nothing to verify`,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const { default: Database } = await import('better-sqlite3');
|
|
127
|
+
const db = new Database(dbPath, { readonly: true });
|
|
128
|
+
try {
|
|
129
|
+
const chain = new WitnessChain(db);
|
|
130
|
+
await chain.initialize();
|
|
131
|
+
const result = chain.verify({ includeArchive: true, checkSignatures: true });
|
|
132
|
+
const lastEntry = db.prepare('SELECT * FROM witness_chain ORDER BY id DESC LIMIT 1').get();
|
|
133
|
+
const lastHash = lastEntry
|
|
134
|
+
? hashWith(lastEntry.hash_algo || 'sha256', serializeEntry(lastEntry))
|
|
135
|
+
: '';
|
|
136
|
+
output = {
|
|
137
|
+
featureEnabled: true,
|
|
138
|
+
chainLength: result.entriesChecked,
|
|
139
|
+
integrity: result.valid,
|
|
140
|
+
brokenAt: result.brokenAt ?? -1,
|
|
141
|
+
lastHash,
|
|
142
|
+
message: result.valid
|
|
143
|
+
? `Audit chain verified: ${result.entriesChecked} entries checked, ${result.signatureFailures ?? 0} signature failures`
|
|
144
|
+
: `Audit chain BROKEN at id=${result.brokenAt} (${result.entriesChecked} entries checked before the break)`,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
finally {
|
|
148
|
+
db.close();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (options.format === 'json') {
|
|
152
|
+
console.log(JSON.stringify(output, null, 2));
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
console.log(formatVerificationText({ valid: output.integrity, length: output.chainLength, brokenAt: output.brokenAt, lastHash: output.lastHash, message: output.message }, output.featureEnabled));
|
|
156
|
+
}
|
|
157
|
+
return output;
|
|
158
|
+
}
|
|
101
159
|
/**
|
|
102
160
|
* Create the audit command group following the project convention.
|
|
103
161
|
*/
|
|
@@ -108,12 +166,14 @@ export function createAuditCommand(_context, cleanupAndExit, _ensureInitialized)
|
|
|
108
166
|
.command('verify')
|
|
109
167
|
.description('Verify witness chain integrity')
|
|
110
168
|
.option('-F, --format <format>', 'Output format (json|text)', 'text')
|
|
169
|
+
.option('-C, --chain <chain>', 'Which chain to verify: governance (29 decision receipts) or audit (full QE audit trail)', 'governance')
|
|
111
170
|
.action(async (options) => {
|
|
112
171
|
try {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
172
|
+
const format = options.format;
|
|
173
|
+
const result = options.chain === 'audit'
|
|
174
|
+
? await handleAuditChainVerify({ format })
|
|
175
|
+
: await handleAuditVerify({ format });
|
|
176
|
+
await cleanupAndExit(result.integrity ? 0 : 1);
|
|
117
177
|
}
|
|
118
178
|
catch (error) {
|
|
119
179
|
console.error('Failed to verify witness chain:', error);
|
|
@@ -496,25 +496,6 @@ export async function persistTaskOutcome(opts) {
|
|
|
496
496
|
catch (stitchErr) {
|
|
497
497
|
console.error(chalk.dim(`[hooks] post-task stitch: ${stitchErr instanceof Error ? stitchErr.message : 'unknown'}`));
|
|
498
498
|
}
|
|
499
|
-
// 7. dream_insights.applied counter — only on success
|
|
500
|
-
if (opts.success) {
|
|
501
|
-
try {
|
|
502
|
-
const result = db.prepare(`
|
|
503
|
-
UPDATE dream_insights
|
|
504
|
-
SET applied = COALESCE(applied, 0) + 1
|
|
505
|
-
WHERE id IN (
|
|
506
|
-
SELECT id FROM dream_insights
|
|
507
|
-
WHERE actionable = 1
|
|
508
|
-
ORDER BY created_at DESC
|
|
509
|
-
LIMIT 3
|
|
510
|
-
)
|
|
511
|
-
`).run();
|
|
512
|
-
insightsApplied = result.changes ?? 0;
|
|
513
|
-
}
|
|
514
|
-
catch {
|
|
515
|
-
// dream_insights may not exist on minimal schemas
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
499
|
});
|
|
519
500
|
try {
|
|
520
501
|
txn();
|
|
@@ -522,6 +503,51 @@ export async function persistTaskOutcome(opts) {
|
|
|
522
503
|
catch (error) {
|
|
523
504
|
console.error(chalk.dim(`[hooks] persistTaskOutcome txn: ${error instanceof Error ? error.message : 'unknown'}`));
|
|
524
505
|
}
|
|
506
|
+
// 7. Apply real pending dream insights (system-integrity remediation
|
|
507
|
+
// follow-up, 2026-07-06). Previously this unconditionally bumped
|
|
508
|
+
// `dream_insights.applied = COALESCE(applied, 0) + 1` on the 3
|
|
509
|
+
// most-recently-created actionable rows on every successful task,
|
|
510
|
+
// regardless of whether any insight was genuinely promoted — proven still
|
|
511
|
+
// live via production `applied` values up to 16 (only possible via
|
|
512
|
+
// unconditional increment). That is semantically incompatible with
|
|
513
|
+
// dream-engine.ts's real applyInsight(), which treats `applied` as a
|
|
514
|
+
// boolean and sets it to exactly 1 on real qe_patterns promotion. It also
|
|
515
|
+
// never touched the actual backlog: the query re-selected the same newest
|
|
516
|
+
// 3 rows every time instead of draining older unapplied ones. Runs outside
|
|
517
|
+
// the sqlite transaction (applyInsight is async and opens its own
|
|
518
|
+
// ReasoningBank), calling the SAME genuine promotion path
|
|
519
|
+
// checkAndTriggerDream already uses — no second, disconnected "applied"
|
|
520
|
+
// writer. Self-limiting: short-circuits at the query below once the
|
|
521
|
+
// backlog is drained, so steady-state cost is one indexed SELECT.
|
|
522
|
+
if (opts.success) {
|
|
523
|
+
try {
|
|
524
|
+
const pending = db.prepare(`
|
|
525
|
+
SELECT id FROM dream_insights
|
|
526
|
+
WHERE actionable = 1 AND (applied = 0 OR applied IS NULL)
|
|
527
|
+
ORDER BY created_at DESC
|
|
528
|
+
LIMIT 3
|
|
529
|
+
`).all();
|
|
530
|
+
if (pending.length > 0) {
|
|
531
|
+
const { createDreamEngine } = await import('../../../learning/dream/index.js');
|
|
532
|
+
const insightEngine = createDreamEngine();
|
|
533
|
+
await insightEngine.initialize();
|
|
534
|
+
try {
|
|
535
|
+
for (const row of pending) {
|
|
536
|
+
const applyResult = await insightEngine.applyInsight(row.id);
|
|
537
|
+
if (applyResult.success && applyResult.patternId) {
|
|
538
|
+
insightsApplied++;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
finally {
|
|
543
|
+
await insightEngine.close();
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
catch (err) {
|
|
548
|
+
console.error(chalk.dim(`[hooks] post-task insight apply: ${err instanceof Error ? err.message : 'unknown'}`));
|
|
549
|
+
}
|
|
550
|
+
}
|
|
525
551
|
// Fire-and-forget embedding write for the captured_experiences row inserted
|
|
526
552
|
// inside the transaction above. Same rationale as the persistCommandExperience
|
|
527
553
|
// site — without this, post-task writes are ghosts until next-boot backfill.
|
|
@@ -87,5 +87,18 @@ export declare function readStdinJsonEvent(timeoutMs?: number): Promise<string>;
|
|
|
87
87
|
* Exported for unit testing.
|
|
88
88
|
*/
|
|
89
89
|
export declare function extractFilePathFromEvent(raw: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Extract the subagent/agent type from a Claude Code PostToolUse hook event
|
|
92
|
+
* for a Task/Agent tool call. `$TOOL_INPUT_subagent_type` env-var
|
|
93
|
+
* substitution is not reliable on every hook surface (same class of problem
|
|
94
|
+
* `extractFilePathFromEvent`/`extractPromptFromEvent` exist to work around —
|
|
95
|
+
* see #460: the router can never learn per-agent Q-values while every
|
|
96
|
+
* invocation collapses to 'unknown'). Checks `tool_input.subagent_type`
|
|
97
|
+
* (Claude Code's real shape) and a few historical/camelCase variants.
|
|
98
|
+
* Returns '' when no recognized field is present.
|
|
99
|
+
*
|
|
100
|
+
* Exported for unit testing.
|
|
101
|
+
*/
|
|
102
|
+
export declare function extractAgentFromEvent(raw: string): string;
|
|
90
103
|
export { DREAM_STATE_KEY, DREAM_INTERVAL_MS, DREAM_EXPERIENCE_THRESHOLD, DREAM_MIN_GAP_MS, type DreamHookState, type TaskBridgePayload, type TaskOutcomeResult, incrementDreamExperience, persistCommandExperience, persistTaskOutcome, updateHookRouterQValue, updateRoutingOutcomeQuality, consolidateExperiencesToPatterns, } from './hooks-dream-learning.js';
|
|
91
104
|
//# sourceMappingURL=hooks-shared.d.ts.map
|
|
@@ -345,6 +345,44 @@ export function extractFilePathFromEvent(raw) {
|
|
|
345
345
|
}
|
|
346
346
|
return '';
|
|
347
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Extract the subagent/agent type from a Claude Code PostToolUse hook event
|
|
350
|
+
* for a Task/Agent tool call. `$TOOL_INPUT_subagent_type` env-var
|
|
351
|
+
* substitution is not reliable on every hook surface (same class of problem
|
|
352
|
+
* `extractFilePathFromEvent`/`extractPromptFromEvent` exist to work around —
|
|
353
|
+
* see #460: the router can never learn per-agent Q-values while every
|
|
354
|
+
* invocation collapses to 'unknown'). Checks `tool_input.subagent_type`
|
|
355
|
+
* (Claude Code's real shape) and a few historical/camelCase variants.
|
|
356
|
+
* Returns '' when no recognized field is present.
|
|
357
|
+
*
|
|
358
|
+
* Exported for unit testing.
|
|
359
|
+
*/
|
|
360
|
+
export function extractAgentFromEvent(raw) {
|
|
361
|
+
if (!raw.trim())
|
|
362
|
+
return '';
|
|
363
|
+
let event;
|
|
364
|
+
try {
|
|
365
|
+
event = JSON.parse(raw);
|
|
366
|
+
}
|
|
367
|
+
catch {
|
|
368
|
+
return '';
|
|
369
|
+
}
|
|
370
|
+
const toolInputSnake = event.tool_input;
|
|
371
|
+
const toolInputCamel = event.toolInput;
|
|
372
|
+
const candidates = [
|
|
373
|
+
toolInputSnake?.subagent_type,
|
|
374
|
+
toolInputSnake?.subagentType,
|
|
375
|
+
toolInputCamel?.subagent_type,
|
|
376
|
+
toolInputCamel?.subagentType,
|
|
377
|
+
event.subagent_type,
|
|
378
|
+
event.subagentType,
|
|
379
|
+
];
|
|
380
|
+
for (const c of candidates) {
|
|
381
|
+
if (typeof c === 'string' && c.trim())
|
|
382
|
+
return c;
|
|
383
|
+
}
|
|
384
|
+
return '';
|
|
385
|
+
}
|
|
348
386
|
// ============================================================================
|
|
349
387
|
// Dream Scheduler & Learning — re-exported from hooks-dream-learning.ts
|
|
350
388
|
// ============================================================================
|
|
@@ -10,7 +10,7 @@ import path from 'node:path';
|
|
|
10
10
|
import { QE_HOOK_EVENTS } from '../../../learning/qe-hooks.js';
|
|
11
11
|
import { findProjectRoot, getUnifiedMemory } from '../../../kernel/unified-memory.js';
|
|
12
12
|
import { getNagualClient } from '../../../learning/nagual-client.js';
|
|
13
|
-
import { applyHookBusyTimeout, getHooksSystem, createHybridBackendWithTimeout, incrementDreamExperience, persistTaskOutcome, updateHookRouterQValue, updateRoutingOutcomeQuality, printJson, printSuccess, } from './hooks-shared.js';
|
|
13
|
+
import { applyHookBusyTimeout, getHooksSystem, createHybridBackendWithTimeout, incrementDreamExperience, persistTaskOutcome, updateHookRouterQValue, updateRoutingOutcomeQuality, printJson, printSuccess, extractAgentFromEvent, readStdinJsonEvent, } from './hooks-shared.js';
|
|
14
14
|
import { ensureRoutingOutcomesAdr095Columns } from '../../../routing/routing-outcomes-migration.js';
|
|
15
15
|
import { deriveTaskType } from '../../../learning/agent-routing.js';
|
|
16
16
|
import { detectQEDomains } from '../../../learning/qe-patterns.js';
|
|
@@ -318,6 +318,24 @@ export function registerTaskHooks(hooks) {
|
|
|
318
318
|
.action(async (options) => {
|
|
319
319
|
try {
|
|
320
320
|
const success = options.success === 'true' || options.success === true;
|
|
321
|
+
// Issue #460 fix: `$TOOL_INPUT_subagent_type` env-var substitution is
|
|
322
|
+
// not reliable on every hook surface (same class of problem as
|
|
323
|
+
// #453's file-path fallback) — fall back to the Claude Code hook
|
|
324
|
+
// event JSON on stdin when --agent resolves empty. Without this,
|
|
325
|
+
// `agent` collapses to 'unknown' below and every Q-value lands in
|
|
326
|
+
// the same bucket, so the router can never learn per-agent
|
|
327
|
+
// differentiation (rl_q_values stuck near-empty vs. routing_outcomes).
|
|
328
|
+
if (!options.agent || !String(options.agent).trim()) {
|
|
329
|
+
try {
|
|
330
|
+
const rawEvent = await readStdinJsonEvent();
|
|
331
|
+
const eventAgent = extractAgentFromEvent(rawEvent);
|
|
332
|
+
if (eventAgent)
|
|
333
|
+
options.agent = eventAgent;
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
// best-effort — never crash the hook host
|
|
337
|
+
}
|
|
338
|
+
}
|
|
321
339
|
// ADR-101: validate nesting provenance before any persistence
|
|
322
340
|
const provenance = parseNestingProvenance(options.parentAgentId, options.depth);
|
|
323
341
|
if (provenance.error) {
|
|
@@ -5,6 +5,24 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Command } from 'commander';
|
|
7
7
|
import { ICommandHandler, CLIContext } from './interfaces.js';
|
|
8
|
+
export interface DaemonLivenessStatus {
|
|
9
|
+
/** A daemon.pid file exists (`aqe`/`npx ruflo daemon start` was run at least once) */
|
|
10
|
+
configured: boolean;
|
|
11
|
+
/** The PID in daemon.pid corresponds to a live process right now */
|
|
12
|
+
running: boolean;
|
|
13
|
+
pid?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Check whether the detached background-worker daemon (`.agentic-qe/workers/
|
|
17
|
+
* start-daemon.cjs`, PID recorded in `daemon.pid` — see `10-workers.ts`) is
|
|
18
|
+
* actually alive. Mirrors the exact liveness check `stop-daemon.cjs` uses
|
|
19
|
+
* (`process.kill(pid, 0)`) rather than inventing a new protocol.
|
|
20
|
+
*
|
|
21
|
+
* Distinct from `aqe daemon status` (in `cli/commands/daemon.ts`), which
|
|
22
|
+
* tracks a *different*, in-process `QualityDaemon` instance that can't see a
|
|
23
|
+
* truly detached process across separate CLI invocations anyway.
|
|
24
|
+
*/
|
|
25
|
+
export declare function checkDaemonLiveness(): DaemonLivenessStatus;
|
|
8
26
|
export declare class StatusHandler implements ICommandHandler {
|
|
9
27
|
readonly name = "status";
|
|
10
28
|
readonly description = "Show system status";
|
|
@@ -4,8 +4,41 @@
|
|
|
4
4
|
* Handles the 'aqe status' and 'aqe health' commands.
|
|
5
5
|
*/
|
|
6
6
|
import chalk from 'chalk';
|
|
7
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
8
|
+
import { join } from 'node:path';
|
|
7
9
|
import { getStatusColor, formatUptime, } from './interfaces.js';
|
|
8
10
|
import { writeOutput, toJSON } from '../utils/ci-output.js';
|
|
11
|
+
import { findProjectRoot } from '../../kernel/unified-memory.js';
|
|
12
|
+
/**
|
|
13
|
+
* Check whether the detached background-worker daemon (`.agentic-qe/workers/
|
|
14
|
+
* start-daemon.cjs`, PID recorded in `daemon.pid` — see `10-workers.ts`) is
|
|
15
|
+
* actually alive. Mirrors the exact liveness check `stop-daemon.cjs` uses
|
|
16
|
+
* (`process.kill(pid, 0)`) rather than inventing a new protocol.
|
|
17
|
+
*
|
|
18
|
+
* Distinct from `aqe daemon status` (in `cli/commands/daemon.ts`), which
|
|
19
|
+
* tracks a *different*, in-process `QualityDaemon` instance that can't see a
|
|
20
|
+
* truly detached process across separate CLI invocations anyway.
|
|
21
|
+
*/
|
|
22
|
+
export function checkDaemonLiveness() {
|
|
23
|
+
try {
|
|
24
|
+
const pidFile = join(findProjectRoot(), '.agentic-qe', 'workers', 'daemon.pid');
|
|
25
|
+
if (!existsSync(pidFile))
|
|
26
|
+
return { configured: false, running: false };
|
|
27
|
+
const pid = parseInt(readFileSync(pidFile, 'utf-8').trim(), 10);
|
|
28
|
+
if (!Number.isFinite(pid))
|
|
29
|
+
return { configured: true, running: false };
|
|
30
|
+
try {
|
|
31
|
+
process.kill(pid, 0); // signal 0: existence check only, doesn't actually kill
|
|
32
|
+
return { configured: true, running: true, pid };
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return { configured: true, running: false, pid };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return { configured: false, running: false };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
9
42
|
// ============================================================================
|
|
10
43
|
// Status Handler
|
|
11
44
|
// ============================================================================
|
|
@@ -193,6 +226,7 @@ export class HealthHandler {
|
|
|
193
226
|
lastCheck: health.lastHealthCheck.toISOString(),
|
|
194
227
|
domains: domainSummary,
|
|
195
228
|
issues: health.issues,
|
|
229
|
+
daemon: checkDaemonLiveness(),
|
|
196
230
|
}), options.output);
|
|
197
231
|
}
|
|
198
232
|
await this.cleanupAndExit(0);
|
|
@@ -244,6 +278,19 @@ export class HealthHandler {
|
|
|
244
278
|
if (idle > 0 && healthy === 0 && degraded === 0 && unhealthy === 0) {
|
|
245
279
|
console.log(chalk.gray('\n Tip: Domains are idle (ready). Run a task to spawn agents.'));
|
|
246
280
|
}
|
|
281
|
+
// A18: background worker daemon liveness \u2014 was previously invisible,
|
|
282
|
+
// so a stopped daemon looked identical to "everything's fine".
|
|
283
|
+
const daemon = checkDaemonLiveness();
|
|
284
|
+
console.log(chalk.blue('\n Background Daemon:'));
|
|
285
|
+
if (!daemon.configured) {
|
|
286
|
+
console.log(` ${chalk.gray('\u25CB')} Not configured (never started \u2014 run "npx ruflo daemon start")`);
|
|
287
|
+
}
|
|
288
|
+
else if (daemon.running) {
|
|
289
|
+
console.log(` ${chalk.green('\u25CF')} Running (PID: ${daemon.pid})`);
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
console.log(` ${chalk.red('\u25CF')} Not running (stale PID: ${daemon.pid ?? 'unknown'}) \u2014 learning/consolidation snapshots will not advance`);
|
|
293
|
+
}
|
|
247
294
|
}
|
|
248
295
|
console.log('');
|
|
249
296
|
await this.cleanupAndExit(0);
|