agentic-qe 3.9.6 → 3.9.8
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 +2 -2
- package/CHANGELOG.md +64 -0
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-D4XQUIJD.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-ID2COJCQ.js → agent-booster-wasm-LAE4NTVX.js} +2 -2
- package/dist/cli/chunks/{agent-handler-EWK6FHKU.js → agent-handler-FVXHR6XN.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-BDKB7HER.js → agent-memory-branch-Q7LLBA7C.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-CGIWYLIP.js +2 -0
- package/dist/cli/chunks/{audit-EB62PPY4.js → audit-YRLKHJLX.js} +2 -2
- package/dist/cli/chunks/base-BYVP2STR.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-C4HK6YT3.js → better-sqlite3-XFGOGICB.js} +2 -2
- package/dist/cli/chunks/{brain-handler-QLIHJDGD.js → brain-handler-KIUSNVSS.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-HWWHSETZ.js → branch-enumerator-VKZ4L3FH.js} +2 -2
- package/dist/cli/chunks/{browser-PEMYUQ6B.js → browser-GZVIYFIB.js} +2 -2
- package/dist/cli/chunks/browser-workflow-PC4N5TKL.js +2 -0
- package/dist/cli/chunks/{chunk-64SU2UFL.js → chunk-237NNDKL.js} +2 -2
- package/dist/cli/chunks/{chunk-JEF3S4ER.js → chunk-266SKKFM.js} +2 -2
- package/dist/cli/chunks/{chunk-NA5ZOZIF.js → chunk-2K3DJ3EK.js} +2 -2
- package/dist/cli/chunks/{chunk-2FTTRGRS.js → chunk-2QI5RYVR.js} +2 -2
- package/dist/cli/chunks/{chunk-CU3LGMOK.js → chunk-2V5VKOJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-EMKI4ZV5.js → chunk-3WOQMFTD.js} +2 -2
- package/dist/cli/chunks/{chunk-E5J3GKCP.js → chunk-3ZAGYTEC.js} +2 -2
- package/dist/cli/chunks/{chunk-TSZ6VMCF.js → chunk-4EAAHMVM.js} +2 -2
- package/dist/cli/chunks/{chunk-C723FDLL.js → chunk-4GMV6Z7Y.js} +2 -2
- package/dist/cli/chunks/{chunk-7CSZCRSS.js → chunk-4KX6TMKB.js} +3 -3
- package/dist/cli/chunks/{chunk-46442R6Q.js → chunk-5TGK7VTS.js} +2 -2
- package/dist/cli/chunks/{chunk-4H3YCKAI.js → chunk-66DCG6RO.js} +4 -4
- package/dist/cli/chunks/{chunk-T4L6MHRW.js → chunk-677V67MR.js} +1 -1
- package/dist/cli/chunks/{chunk-WQ76RMU3.js → chunk-6A4FEIE2.js} +3 -3
- package/dist/cli/chunks/{chunk-5CKG46BM.js → chunk-6DBYVKGA.js} +2 -2
- package/dist/cli/chunks/{chunk-H5OYJKPR.js → chunk-6KWX7A3R.js} +2 -2
- package/dist/cli/chunks/{chunk-CJ6GN5QT.js → chunk-6ZMM7MXA.js} +2 -2
- package/dist/cli/chunks/{chunk-QBQ52YUU.js → chunk-76UL224Z.js} +2 -2
- package/dist/cli/chunks/{chunk-7B46Q5OU.js → chunk-7CFEGUEH.js} +2 -2
- package/dist/cli/chunks/{chunk-QGEZJKVO.js → chunk-7L64UC5U.js} +1 -1
- package/dist/cli/chunks/{chunk-3BAC7NLV.js → chunk-7PHNHFZI.js} +3 -3
- package/dist/cli/chunks/{chunk-YWWQRNKI.js → chunk-A2QLTNN5.js} +1 -1
- package/dist/cli/chunks/{chunk-MV52OH7P.js → chunk-A4DJMFDM.js} +1 -1
- package/dist/cli/chunks/{chunk-P4X6YTOY.js → chunk-AVKDT3UL.js} +8 -8
- package/dist/cli/chunks/{chunk-MRDXDXPW.js → chunk-AYKMWP7F.js} +1 -1
- package/dist/cli/chunks/{chunk-ZV6CCRP2.js → chunk-BXMIQRF3.js} +2 -2
- package/dist/cli/chunks/{chunk-SQCNABS4.js → chunk-BZB5D4BO.js} +2 -2
- package/dist/cli/chunks/{chunk-BHOJLQLF.js → chunk-CG3HIYF4.js} +2 -2
- package/dist/cli/chunks/{chunk-HUPIHL55.js → chunk-DDDEGBBJ.js} +2 -2
- package/dist/cli/chunks/{chunk-ARRJKSDK.js → chunk-DLKRK2GU.js} +1 -1
- package/dist/cli/chunks/{chunk-N5CEEWWJ.js → chunk-E4D36LGH.js} +1 -1
- package/dist/cli/chunks/{chunk-LSFJKCAQ.js → chunk-ECYDMBDA.js} +2 -2
- package/dist/cli/chunks/{chunk-TPXS5KEC.js → chunk-EKDFIYV5.js} +2 -2
- package/dist/cli/chunks/{chunk-JB3G5ZLL.js → chunk-ELZ5SKEN.js} +2 -2
- package/dist/cli/chunks/{chunk-Z4UUJUZO.js → chunk-ETXK25IY.js} +1 -1
- package/dist/cli/chunks/{chunk-JRPYXCDT.js → chunk-F5VLJFVU.js} +1 -1
- package/dist/cli/chunks/{chunk-LFTQYU65.js → chunk-FKODRXOU.js} +2 -2
- package/dist/cli/chunks/{chunk-7MD7PQYH.js → chunk-GHJRX7PV.js} +1 -1
- package/dist/cli/chunks/{chunk-6X6NWAVQ.js → chunk-GOPE5OB5.js} +1 -1
- package/dist/cli/chunks/{chunk-3TAJSNCZ.js → chunk-HE2NWYHK.js} +1 -1
- package/dist/cli/chunks/{chunk-H3KGRTY2.js → chunk-HN7HYUW6.js} +9 -9
- package/dist/cli/chunks/{chunk-UB53OWSL.js → chunk-HTL2WT64.js} +1 -1
- package/dist/cli/chunks/{chunk-775KESYW.js → chunk-HYACMUUR.js} +2 -2
- package/dist/cli/chunks/{chunk-67WBMX7K.js → chunk-I25KIHQE.js} +1 -1
- package/dist/cli/chunks/{chunk-QWVILMUX.js → chunk-I7OH6RAC.js} +2 -2
- package/dist/cli/chunks/{chunk-WFWVSI2W.js → chunk-IFIYNCT2.js} +2 -2
- package/dist/cli/chunks/{chunk-YQ7X6LKA.js → chunk-IHJXFWUL.js} +2 -2
- package/dist/cli/chunks/{chunk-AMLREU5W.js → chunk-IIYXSWJN.js} +2 -2
- package/dist/cli/chunks/{chunk-3VBPPW7H.js → chunk-IP2Z4Z6X.js} +1 -1
- package/dist/cli/chunks/{chunk-FZ77DJFC.js → chunk-IZTUAI5T.js} +2 -2
- package/dist/cli/chunks/{chunk-AFOGTLSY.js → chunk-JBQ4WGB4.js} +2 -2
- package/dist/cli/chunks/{chunk-WOR67NKR.js → chunk-JCROLOP6.js} +2 -2
- package/dist/cli/chunks/{chunk-MAZWSPEQ.js → chunk-JD3GH47Z.js} +2 -2
- package/dist/cli/chunks/{chunk-G3VIZON2.js → chunk-JK6JBNGL.js} +2 -2
- package/dist/cli/chunks/{chunk-TG7PATSN.js → chunk-JNJYWWBG.js} +2 -2
- package/dist/cli/chunks/{chunk-VJKIPTA2.js → chunk-JVH7753D.js} +1 -1
- package/dist/cli/chunks/{chunk-SYYGXU7I.js → chunk-KJZU3E5G.js} +2 -2
- package/dist/cli/chunks/{chunk-YI54PU4P.js → chunk-KMGAJRQ6.js} +1 -1
- package/dist/cli/chunks/{chunk-YV34KLBV.js → chunk-LFEBTWFS.js} +2 -2
- package/dist/cli/chunks/{chunk-MX3ORXM3.js → chunk-LOANEFGZ.js} +2 -2
- package/dist/cli/chunks/{chunk-LZ5LS4LF.js → chunk-LPRHYSXN.js} +1 -1
- package/dist/cli/chunks/{chunk-CQNNNR53.js → chunk-M2JBQVBP.js} +2 -2
- package/dist/cli/chunks/{chunk-GXVUDSYW.js → chunk-MGX2BZWE.js} +2 -2
- package/dist/cli/chunks/{chunk-V2IUGAJ7.js → chunk-MVW7AACO.js} +2 -2
- package/dist/cli/chunks/{chunk-HZSYBKRI.js → chunk-N2L7RWNX.js} +2 -2
- package/dist/cli/chunks/{chunk-NOK2ICQT.js → chunk-NCXVOOA7.js} +2 -2
- package/dist/cli/chunks/{chunk-PKD6LEQZ.js → chunk-NHXFAXEV.js} +1 -1
- package/dist/cli/chunks/{chunk-XOTBE543.js → chunk-OGFGNAKQ.js} +2 -2
- package/dist/cli/chunks/chunk-OT4JADWW.js +2 -0
- package/dist/cli/chunks/{chunk-H7OP3RI2.js → chunk-OZTSMI7P.js} +1 -1
- package/dist/cli/chunks/{chunk-O65ZAUG3.js → chunk-P2H5ARHM.js} +1 -1
- package/dist/cli/chunks/{chunk-K52WNOTU.js → chunk-P7APAQD6.js} +3 -3
- package/dist/cli/chunks/{chunk-4NYVSHN3.js → chunk-PBPOSPTY.js} +2 -2
- package/dist/cli/chunks/{chunk-Z5IOTEQI.js → chunk-PG7CZ6Q4.js} +2 -2
- package/dist/cli/chunks/{chunk-K5RE6ODJ.js → chunk-Q5PARJC6.js} +2 -2
- package/dist/cli/chunks/{chunk-V3D6AA2P.js → chunk-QVGSD25D.js} +1 -1
- package/dist/cli/chunks/{chunk-KI4W6CVC.js → chunk-R2LWLZ3Y.js} +1 -1
- package/dist/cli/chunks/{chunk-RD5N2722.js → chunk-R4VOIXJQ.js} +2 -2
- package/dist/cli/chunks/{chunk-7B3IZBNN.js → chunk-RGCCSAHI.js} +2 -2
- package/dist/cli/chunks/{chunk-5A5ECZCN.js → chunk-S72TSJS4.js} +2 -2
- package/dist/cli/chunks/{chunk-CLVHHUZB.js → chunk-SDMGF3KD.js} +2 -2
- package/dist/cli/chunks/{chunk-KIEXP4F3.js → chunk-SP3ZBJ63.js} +3 -3
- package/dist/cli/chunks/{chunk-QE255FHS.js → chunk-SQ6XZGR4.js} +4 -4
- package/dist/cli/chunks/{chunk-DAWI2HRN.js → chunk-SSURIMCL.js} +2 -2
- package/dist/cli/chunks/{chunk-NPNGSE7X.js → chunk-TDPHLQ2M.js} +2 -2
- package/dist/cli/chunks/{chunk-BKCIW3O2.js → chunk-TN72MXLI.js} +2 -2
- package/dist/cli/chunks/{chunk-ESFKNND3.js → chunk-TSDTRJOG.js} +2 -2
- package/dist/cli/chunks/{chunk-K6XC52U3.js → chunk-TWDWDKOI.js} +1 -1
- package/dist/cli/chunks/{chunk-NSRIYP76.js → chunk-TZMKO6PC.js} +2 -2
- package/dist/cli/chunks/{chunk-QYGI32T4.js → chunk-U62WL3WZ.js} +3 -3
- package/dist/cli/chunks/{chunk-6T6TPZCK.js → chunk-UAI5NPPQ.js} +2 -2
- package/dist/cli/chunks/{chunk-H4J456F2.js → chunk-UGJNR52C.js} +1 -1
- package/dist/cli/chunks/{chunk-XQAZHVHD.js → chunk-UOSKMAAY.js} +1 -1
- package/dist/cli/chunks/{chunk-Y2BEI3DL.js → chunk-VHZ653XS.js} +3 -3
- package/dist/cli/chunks/{chunk-MROCXAXJ.js → chunk-VVNR4R22.js} +2 -2
- package/dist/cli/chunks/{chunk-RZLRPLRC.js → chunk-W45FANJG.js} +2 -2
- package/dist/cli/chunks/{chunk-3WQ7MLAJ.js → chunk-W4IRWGGR.js} +4 -4
- package/dist/cli/chunks/{chunk-AJX44TJ7.js → chunk-WJDOOT2M.js} +2 -2
- package/dist/cli/chunks/{chunk-JDGUTBC3.js → chunk-WUCWFDBE.js} +2 -2
- package/dist/cli/chunks/{chunk-7EDVNITA.js → chunk-WXEDVKJS.js} +2 -2
- package/dist/cli/chunks/{chunk-VMDSTKVR.js → chunk-X66IXWSO.js} +2 -2
- package/dist/cli/chunks/{chunk-3U3NUFII.js → chunk-XPL3BXLM.js} +1 -1
- package/dist/cli/chunks/{chunk-EJSRKZ5M.js → chunk-XVXSQOQG.js} +2 -2
- package/dist/cli/chunks/{chunk-Y65KKN4T.js → chunk-Y67OXEUM.js} +1 -1
- package/dist/cli/chunks/{chunk-YOLOT7MX.js → chunk-YDW522M7.js} +2 -2
- package/dist/cli/chunks/{chunk-2DGTT6D2.js → chunk-YIJDCZVX.js} +2 -2
- package/dist/cli/chunks/{chunk-5AXU6KCI.js → chunk-YOKRSFGA.js} +2 -2
- package/dist/cli/chunks/{chunk-XKU2LJIM.js → chunk-YSUMQBMY.js} +1 -1
- package/dist/cli/chunks/{chunk-L6HQVZQL.js → chunk-ZCKNGICX.js} +1 -1
- package/dist/cli/chunks/{chunk-EVRJS6CN.js → chunk-ZJ4PMOIZ.js} +2 -2
- package/dist/cli/chunks/{ci-6L22RUNC.js → ci-A5ZXOEC4.js} +2 -2
- package/dist/cli/chunks/{ci-output-C2PAMUXM.js → ci-output-S47BMRYC.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-S3HHSSIM.js → claude-flow-setup-F5WBEBVK.js} +2 -2
- package/dist/cli/chunks/client-56BU3GAX.js +2 -0
- package/dist/cli/chunks/{cline-installer-YIXOIHBL.js → cline-installer-HLKR4QDR.js} +2 -2
- package/dist/cli/chunks/{code-QVFF72Z4.js → code-MTZWS6JT.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-BRNK2X4M.js → code-index-extractor-BALTZ2WQ.js} +2 -2
- package/dist/cli/chunks/{codex-installer-TLRH3SG7.js → codex-installer-LI2VIGET.js} +2 -2
- package/dist/cli/chunks/{completions-A46MED6L.js → completions-TOF4GTNF.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-FJSG676O.js → complexity-analyzer-IPFXIT6T.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-7HHND63H.js → continuedev-installer-KWI66RBI.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-UQ4IEG4H.js → copilot-installer-REFOE6UF.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-R6FXO2MO.js → cost-tracker-M2MZQXCN.js} +2 -2
- package/dist/cli/chunks/{coverage-3AGGT36D.js → coverage-UR2XSJCR.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-XQT52BTB.js +2 -0
- package/dist/cli/chunks/{cursor-installer-7PABDYDI.js → cursor-installer-X4PXCVYH.js} +2 -2
- package/dist/cli/chunks/{daemon-YTCKYJB4.js → daemon-5R6ZEEBB.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-LZZ4O2PT.js → dag-attention-scheduler-RUY2RJZA.js} +2 -2
- package/dist/cli/chunks/{detect-OBCGJIYW.js → detect-PX2AYBHM.js} +2 -2
- package/dist/cli/chunks/{domain-handler-5PHN6YQM.js → domain-handler-5JXWEO3E.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-K6YSBC2L.js → domain-transfer-6M2YLBJY.js} +2 -2
- package/dist/cli/chunks/dream-LFZCN5WK.js +2 -0
- package/dist/cli/chunks/esm-node-EBDIEPKS.js +2 -0
- package/dist/cli/chunks/{eval-UAAFW3YU.js → eval-L6ZBG462.js} +2 -2
- package/dist/cli/chunks/{fast-paths-7IFG4BYW.js → fast-paths-WIFDALFK.js} +2 -2
- package/dist/cli/chunks/{feature-flags-AEO5C73R.js → feature-flags-GRHF5MTK.js} +2 -2
- package/dist/cli/chunks/{feature-flags-TVJAGLLH.js → feature-flags-YLBXFUCN.js} +2 -2
- package/dist/cli/chunks/{file-discovery-STTTDBN3.js → file-discovery-4HXUB4HN.js} +2 -2
- package/dist/cli/chunks/{fleet-L6RVZQ2B.js → fleet-RPLJXOEP.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-W4QHVBUD.js → gnn-wrapper-2D5IOGAT.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-3KZOB7MZ.js → heartbeat-handler-D5SWZZGA.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-IR57JOZR.js → heartbeat-scheduler-WSG4Y3M2.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-BMXTVGZB.js +2 -0
- package/dist/cli/chunks/hnsw-index-YX6XLICT.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-5BYAJDVC.js → hnsw-legacy-bridge-UH6RWE74.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-MUXAWCUE.js → hnswlib-node-BJ4ZJPMP.js} +2 -2
- package/dist/cli/chunks/{hooks-QT4NVEDG.js → hooks-KGDQNB5T.js} +6 -6
- package/dist/cli/chunks/{hypergraph-engine-MLLU5WQB.js → hypergraph-engine-LARQCK7V.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-LJWRQ2WW.js → hypergraph-handler-RACF4AOX.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-MGSI2WBK.js +2 -0
- package/dist/cli/chunks/init-handler-64AOFMJD.js +69 -0
- package/dist/cli/chunks/init-wizard-TBDWRRMC.js +2 -0
- package/dist/cli/chunks/kernel-NV7TO2FK.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-5MAYAROV.js → kilocode-installer-4ICIP6QN.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-3JJ7TSXH.js → kiro-installer-J2GOV2OB.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-7REGYH6A.js +2 -0
- package/dist/cli/chunks/{learning-G7MWQMRY.js → learning-QD4JVH3K.js} +3 -3
- package/dist/cli/chunks/{llm-router-HYK5VS4A.js → llm-router-4K4IT2PQ.js} +2 -2
- package/dist/cli/chunks/{load-YVN3F5ZP.js → load-EXKUJMBK.js} +2 -2
- package/dist/cli/chunks/load-test-RYQK44TT.js +2 -0
- package/dist/cli/chunks/{mcp-I43GRN5E.js → mcp-NSNDZSMH.js} +2 -2
- package/dist/cli/chunks/{memory-TMKTUI37.js → memory-63JTNVZN.js} +5 -5
- package/dist/cli/chunks/memory-backend-3EBE2DEX.js +2 -0
- package/dist/cli/chunks/{memory-handlers-YFJOLCGN.js → memory-handlers-2335MVQJ.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-KYDQUOAW.js → opencode-installer-244LFSPN.js} +2 -2
- package/dist/cli/chunks/{orchestrator-C6XRSC6Z.js → orchestrator-TZB457J6.js} +5 -5
- package/dist/cli/chunks/{pipeline-IULH5B62.js → pipeline-YLBD2Z5Q.js} +2 -2
- package/dist/cli/chunks/{platform-CACMGVB3.js → platform-53PWFZSE.js} +2 -2
- package/dist/cli/chunks/{plugin-6VSTK54C.js → plugin-6GUQEFJU.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-UA6FGPKX.js → prime-radiant-advanced-wasm-VCOK7FV5.js} +2 -2
- package/dist/cli/chunks/protocol-executor-MR37S7GX.js +2 -0
- package/dist/cli/chunks/{protocol-handler-UYJISQUT.js → protocol-handler-25UEGTE2.js} +2 -2
- package/dist/cli/chunks/{prove-H7PAIHGE.js → prove-CTOU5F6G.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-DANGLPTH.js +2 -0
- package/dist/cli/chunks/{quality-NT3N4UDM.js → quality-PB7H5UEF.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-4YJPYF5F.js +2 -0
- package/dist/cli/chunks/{real-embeddings-K46PTHOR.js → real-embeddings-RWWYCIE5.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-K47KSTXW.js → roocode-installer-U4AGYVKL.js} +2 -2
- package/dist/cli/chunks/router-F4IPY4RQ.js +2 -0
- package/dist/cli/chunks/routing-feedback-VGHFIJ5S.js +2 -0
- package/dist/cli/chunks/{routing-handler-5RXV3FRV.js → routing-handler-NTDKDEBE.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-V46KRNUZ.js → ruvector-commands-RQKOLQSW.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-YX5K3XO7.js → rvf-dual-writer-6EZ7S7OG.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-SURDRXWQ.js → rvf-migration-adapter-EBTV6FV2.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-FMUHUWTB.js → rvf-migration-coordinator-MERU7VLY.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-2P75WF5A.js +2 -0
- package/dist/cli/chunks/safe-db-47NEO2RS.js +2 -0
- package/dist/cli/chunks/schedule-L5GJW25Z.js +2 -0
- package/dist/cli/chunks/scheduler-NGGGSZMO.js +2 -0
- package/dist/cli/chunks/{security-ENEWXTNE.js → security-JPDLGHMC.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-NKNTYGHO.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-KJ67FATL.js → shared-rvf-dual-writer-7OGLQE5Y.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-TE2ZRHKA.js +2 -0
- package/dist/cli/chunks/{status-handler-CEMWQKE6.js → status-handler-3TI3DHEL.js} +2 -2
- package/dist/cli/chunks/{structural-health-B4VGYG4F.js → structural-health-WCZKXVWS.js} +2 -2
- package/dist/cli/chunks/{sync-P7PLECMB.js → sync-AM5T4GYO.js} +2 -2
- package/dist/cli/chunks/{task-handler-YGKMS5E2.js → task-handler-VHDTXPVP.js} +2 -2
- package/dist/cli/chunks/{task-handlers-LKTBRIPS.js → task-handlers-GEJ36WNB.js} +2 -2
- package/dist/cli/chunks/{test-ZWWGVM5X.js → test-G6P5XGHM.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-HTFVIWWL.js → test-scheduling-37RBUN4E.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-7VYNREQH.js → token-bootstrap-JPE3LWXQ.js} +2 -2
- package/dist/cli/chunks/{token-usage-D67GP7FV.js → token-usage-5XGVBLFR.js} +2 -2
- package/dist/cli/chunks/{transformers-CI3CZC2C.js → transformers-JTKWAZJU.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-BMRWIP7P.js → tree-sitter-wasm-parser-KW2GWIIQ.js} +2 -2
- package/dist/cli/chunks/{types-SAPPKMCS.js → types-7R72BACI.js} +2 -2
- package/dist/cli/chunks/unified-memory-KSBLUZT4.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-V3EOMQIZ.js +2 -0
- package/dist/cli/chunks/unified-persistence-URIRJ4BM.js +2 -0
- package/dist/cli/chunks/{validate-UZL2Y3GR.js → validate-TYB4ZTUL.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-ILNS64DZ.js → validate-swarm-3TFI6PLT.js} +2 -2
- package/dist/cli/chunks/{vibium-CJMPXUAU.js → vibium-3YELURJT.js} +2 -2
- package/dist/cli/chunks/visual-security-DJOOVCBZ.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-HO5UYPPH.js → web-tree-sitter-7Q77A27Y.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-TEXMCEBB.js → windsurf-installer-ASARRM2X.js} +2 -2
- package/dist/cli/chunks/{witness-chain-TF35D7QS.js → witness-chain-WZ6PNXEY.js} +2 -2
- package/dist/cli/chunks/witness-chain-ZWJUCXCJ.js +2 -0
- package/dist/cli/chunks/{workflow-APRDB3SB.js → workflow-JDTEE6TY.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-5CKA6Q74.js +2 -0
- package/dist/cli/chunks/{wrappers-VGV5RU5Q.js → wrappers-X7WZLBZD.js} +2 -2
- package/dist/cli/commands/init.js +1 -1
- package/dist/cli/handlers/init-handler.d.ts +53 -0
- package/dist/cli/handlers/init-handler.js +53 -3
- package/dist/init/phases/06-code-intelligence.d.ts +14 -9
- package/dist/init/phases/06-code-intelligence.js +63 -28
- package/dist/init/phases/phase-interface.d.ts +16 -4
- package/dist/mcp/bundle.js +1 -1
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-XV7RUOO7.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-Q5CC43GW.js +0 -2
- package/dist/cli/chunks/base-UL4PX45P.js +0 -2
- package/dist/cli/chunks/browser-workflow-K77KPDRF.js +0 -2
- package/dist/cli/chunks/chunk-MA7OLK56.js +0 -2
- package/dist/cli/chunks/client-KXLRKXSG.js +0 -2
- package/dist/cli/chunks/cross-domain-router-I2WPLKVN.js +0 -2
- package/dist/cli/chunks/dream-BH35JQRS.js +0 -2
- package/dist/cli/chunks/esm-node-VI5DSKCM.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-2SFTC2VH.js +0 -2
- package/dist/cli/chunks/hnsw-index-OBEYJRMU.js +0 -2
- package/dist/cli/chunks/impact-analyzer-C5SKESHG.js +0 -2
- package/dist/cli/chunks/init-handler-MKAZHZJS.js +0 -68
- package/dist/cli/chunks/init-wizard-DV34KMTN.js +0 -2
- package/dist/cli/chunks/kernel-3HL4J5WJ.js +0 -2
- package/dist/cli/chunks/knowledge-graph-XPFESDWZ.js +0 -2
- package/dist/cli/chunks/load-test-EF3BRFGO.js +0 -2
- package/dist/cli/chunks/memory-backend-FJDNXX6N.js +0 -2
- package/dist/cli/chunks/protocol-executor-OFL7H2VR.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-4NWLHIEM.js +0 -2
- package/dist/cli/chunks/queen-coordinator-I7YDKGZD.js +0 -2
- package/dist/cli/chunks/router-LNGYBIC4.js +0 -2
- package/dist/cli/chunks/routing-feedback-4RFHNTYV.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-7REIX6DO.js +0 -2
- package/dist/cli/chunks/safe-db-SVN2BQFW.js +0 -2
- package/dist/cli/chunks/schedule-S6Z3DNRK.js +0 -2
- package/dist/cli/chunks/scheduler-BE5RHB4R.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-PNVIYEDK.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-XBTALZ2S.js +0 -2
- package/dist/cli/chunks/unified-memory-OYIJOZ2E.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-JRWF6EEB.js +0 -2
- package/dist/cli/chunks/unified-persistence-OOUATKAN.js +0 -2
- package/dist/cli/chunks/visual-security-77T3APRH.js +0 -2
- package/dist/cli/chunks/witness-chain-QIARNA6D.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-IRZVM4MZ.js +0 -2
|
@@ -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.9.
|
|
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.9.8");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-QVGSD25D.js";import"./chunk-E4D36LGH.js";export{e as BudgetExceededError,f as ComplexityAnalysisError,b as DEFAULT_BUDGET_CONFIG,c as DEFAULT_ROUTER_CONFIG,d as ModelRouterError,g as RoutingTimeoutError,a as TIER_METADATA};
|
|
@@ -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.9.8");process.exit(0)}
|
|
2
|
+
import{a,b,e as f,f as g,g as h,h as i,i as j,j as k,k as l,l as m,m as n,o}from"./chunk-BZB5D4BO.js";import"./chunk-LFEBTWFS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import"./chunk-VVNR4R22.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-2V5VKOJ2.js";import"./chunk-HYACMUUR.js";import{a as c,d,e}from"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.js";o();export{a as ALLOWED_TABLE_NAMES,c as BinaryHeap,i as DEFAULT_UNIFIED_MEMORY_CONFIG,d as UnifiedHnswIndex,k as UnifiedMemoryManager,f as clearProjectRootCache,e as createHnswIndex,g as findProjectRoot,h as getDefaultDbPath,j as getResolvedDefaultConfig,l as getUnifiedMemory,m as initializeUnifiedMemory,n as resetUnifiedMemory,b as validateTableName};
|
|
@@ -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.9.8");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f}from"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.js";f();export{a as BinaryHeap,b as InMemoryHNSWIndex,c as RuvectorFlatIndex,d as UnifiedHnswIndex,e as createHnswIndex};
|
|
@@ -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.9.8");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e}from"./chunk-4GMV6Z7Y.js";import"./chunk-BZB5D4BO.js";import"./chunk-LFEBTWFS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import"./chunk-VVNR4R22.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-2V5VKOJ2.js";import"./chunk-HYACMUUR.js";import"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.js";export{a as DEFAULT_UNIFIED_CONFIG,b as UnifiedPersistenceManager,c as getUnifiedPersistence,d as initializeUnifiedPersistence,e as resetUnifiedPersistence};
|
|
@@ -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.9.
|
|
2
|
-
import{e 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.9.8");process.exit(0)}
|
|
2
|
+
import{e as P}from"./chunk-I7OH6RAC.js";import"./chunk-2QI5RYVR.js";import{a as V}from"./chunk-OGFGNAKQ.js";import"./chunk-OZTSMI7P.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import{b as v,d as F}from"./chunk-VVNR4R22.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-IHJXFWUL.js";import"./chunk-E4D36LGH.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 V({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 G(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.9.
|
|
2
|
-
import{a as h}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.9.8");process.exit(0)}
|
|
2
|
+
import{a as h}from"./chunk-4EAAHMVM.js";import{a as i,b as v,c as d,d as p}from"./chunk-I7OH6RAC.js";import"./chunk-2QI5RYVR.js";import{a as k}from"./chunk-OGFGNAKQ.js";import"./chunk-XPL3BXLM.js";import"./chunk-OZTSMI7P.js";import"./chunk-JCROLOP6.js";import"./chunk-A4DJMFDM.js";import"./chunk-ZCKNGICX.js";import"./chunk-UGJNR52C.js";import"./chunk-LOANEFGZ.js";import"./chunk-X66IXWSO.js";import"./chunk-BZB5D4BO.js";import"./chunk-LFEBTWFS.js";import"./chunk-WXEDVKJS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import"./chunk-VVNR4R22.js";import"./chunk-R2LWLZ3Y.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-IP2Z4Z6X.js";import"./chunk-2V5VKOJ2.js";import"./chunk-HYACMUUR.js";import"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.js";import{Command as x}from"commander";import o from"chalk";function _(e,t,a){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 a())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),n={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: ${n.topology}`)),console.log(o.gray(` Skills: ${r.length}`)),console.log(o.gray(` Models: ${u.length}`)),console.log(o.gray(` Max Concurrent Skills: ${n.maxConcurrentSkills}`)),console.log(o.gray(` Max Concurrent Models: ${n.maxConcurrentModels}`)),console.log(o.gray(` Timeout: ${n.timeout}ms`)),console.log(o.gray(` Retry: ${n.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=k(m),C=v(n,f),w=Date.now();console.log(o.yellow(` Starting parallel validation...
|
|
5
5
|
`));let $=await C.validateSkillsParallel(r,u),s=C.getSummary($),b=Date.now()-w;l.json?T(s):V(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.9.
|
|
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.9.8");process.exit(0)}
|
|
2
|
+
import{c as t}from"./chunk-E4D36LGH.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.9.8");process.exit(0)}
|
|
2
|
+
import{a}from"./chunk-IZTUAI5T.js";import"./chunk-Q5PARJC6.js";import"./chunk-TDPHLQ2M.js";import"./chunk-BZB5D4BO.js";import"./chunk-LFEBTWFS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import"./chunk-VVNR4R22.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-IP2Z4Z6X.js";import"./chunk-2V5VKOJ2.js";import"./chunk-HYACMUUR.js";import"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.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.9.
|
|
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.9.8");process.exit(0)}
|
|
2
|
+
import"./chunk-E4D36LGH.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.9.
|
|
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.9.8");process.exit(0)}
|
|
2
|
+
import{b as u}from"./chunk-LPRHYSXN.js";import{a as f,c as h}from"./chunk-PG7CZ6Q4.js";import"./chunk-E4D36LGH.js";h();import{existsSync as i,mkdirSync as d,readFileSync as g,writeFileSync as a}from"fs";import{join as p,dirname as v}from"path";var c=class{projectRoot;overwrite;generator;constructor(e){this.projectRoot=e.projectRoot,this.overwrite=e.overwrite??!1,this.generator=u()}async install(){let e={success:!0,mcpConfigured:!1,rulesInstalled:!1,errors:[],configPath:"",rulesPath:""};try{let t=this.generator.generateMcpConfig("windsurf"),r=p(this.projectRoot,t.path);if(e.configPath=r,!i(r)||this.overwrite){let o=v(r);if(i(o)||d(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 n=this.generator.generateBehavioralRules("windsurf"),s=p(this.projectRoot,n.path);if(e.rulesPath=s,!i(s)||this.overwrite){if(i(s)&&this.overwrite){let o=this.mergeExistingRules(s,n.content);a(s,o)}else a(s,n.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")),n=JSON.parse(t);return r.mcpServers||(r.mcpServers={}),Object.assign(r.mcpServers,n.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
|
---
|
|
@@ -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.9.
|
|
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.9.8");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g}from"./chunk-WXEDVKJS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.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.9.8");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f,g,h}from"./chunk-TN72MXLI.js";import"./chunk-BZB5D4BO.js";import"./chunk-LFEBTWFS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import"./chunk-VVNR4R22.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-2V5VKOJ2.js";import"./chunk-HYACMUUR.js";import"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.js";export{a as GENESIS_PREV_HASH,f as WitnessChain,h as createWitnessChain,g as getWitnessChain,d as hashWith,e as serializeEntry,b as sha256,c as shake256};
|
|
@@ -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.9.
|
|
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.9.8");process.exit(0)}
|
|
2
|
+
import"./chunk-YIJDCZVX.js";import{b as $}from"./chunk-KMGAJRQ6.js";import{d as R}from"./chunk-ELZ5SKEN.js";import{b as k,c as C,d as b}from"./chunk-5TGK7VTS.js";import{c as W}from"./chunk-VVNR4R22.js";import"./chunk-R2LWLZ3Y.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-E4D36LGH.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-PC4N5TKL.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-PC4N5TKL.js"),{writeOutput:u,toJSON:c}=await import("./ci-output-S47BMRYC.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.9.8");process.exit(0)}
|
|
2
|
+
import{a,b,c,d}from"./chunk-UAI5NPPQ.js";import"./chunk-76UL224Z.js";import"./chunk-BZB5D4BO.js";import"./chunk-LFEBTWFS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.js";import"./chunk-VVNR4R22.js";import"./chunk-R2LWLZ3Y.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-IP2Z4Z6X.js";import"./chunk-2V5VKOJ2.js";import"./chunk-HYACMUUR.js";import"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.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.9.
|
|
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.9.8");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-S72TSJS4.js";import"./chunk-BZB5D4BO.js";import"./chunk-LFEBTWFS.js";import"./chunk-OT4JADWW.js";import"./chunk-CG3HIYF4.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-ECYDMBDA.js";import"./chunk-VVNR4R22.js";import"./chunk-PG7CZ6Q4.js";import"./chunk-2V5VKOJ2.js";import"./chunk-HYACMUUR.js";import"./chunk-YOKRSFGA.js";import"./chunk-IHJXFWUL.js";import"./chunk-6DBYVKGA.js";import"./chunk-XVXSQOQG.js";import"./chunk-KJZU3E5G.js";import"./chunk-MVW7AACO.js";import"./chunk-TZMKO6PC.js";import"./chunk-E4D36LGH.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};
|
|
@@ -30,7 +30,7 @@ export function createInitCommand() {
|
|
|
30
30
|
.option('-u, --upgrade', 'Upgrade existing installation (overwrites skills, agents, validation)')
|
|
31
31
|
.option('--minimal', 'Minimal installation (no skills, patterns, or workers)')
|
|
32
32
|
.option('--skip-patterns', 'Skip pattern loading')
|
|
33
|
-
.option('--skip-code-index', 'Skip code intelligence pre-scan (can be
|
|
33
|
+
.option('--skip-code-index', 'Skip code intelligence pre-scan (supported escape hatch — KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)')
|
|
34
34
|
.option('--with-n8n', 'Include n8n workflow testing platform')
|
|
35
35
|
.option('--with-opencode', 'Include OpenCode agent/skill provisioning')
|
|
36
36
|
.option('--with-kiro', 'Include AWS Kiro IDE integration (agents, skills, hooks, steering)')
|
|
@@ -9,6 +9,12 @@ export declare class InitHandler implements ICommandHandler {
|
|
|
9
9
|
readonly name = "init";
|
|
10
10
|
readonly description = "Initialize the AQE v3 system";
|
|
11
11
|
private cleanupAndExit;
|
|
12
|
+
/**
|
|
13
|
+
* Original `process.stdout.write` captured before --json mode redirects
|
|
14
|
+
* stdout to stderr. Restored at JSON-emission time. Null when not in
|
|
15
|
+
* JSON mode.
|
|
16
|
+
*/
|
|
17
|
+
private originalStdoutWrite;
|
|
12
18
|
constructor(cleanupAndExit: (code: number) => Promise<never>);
|
|
13
19
|
register(program: Command, context: CLIContext): void;
|
|
14
20
|
execute(options: InitOptions, context: CLIContext): Promise<void>;
|
|
@@ -18,6 +24,52 @@ export declare class InitHandler implements ICommandHandler {
|
|
|
18
24
|
private registerDomainWorkflowActions;
|
|
19
25
|
getHelp(): string;
|
|
20
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* JSON output schema emitted by `aqe init --json`. Versioned so the
|
|
29
|
+
* release-gate corpus (tests/fixtures/init-corpus/) and any other
|
|
30
|
+
* consumers can detect schema drift.
|
|
31
|
+
*
|
|
32
|
+
* Schema version 1 — added in response to issue #401 to give the
|
|
33
|
+
* pre-publish gate a stable, structured contract instead of grepping
|
|
34
|
+
* stdout for human banners that don't actually reflect phase success.
|
|
35
|
+
*
|
|
36
|
+
* IMPORTANT consumer contract: `success` here is the orchestrator's
|
|
37
|
+
* success flag, which only flips to false on critical-phase failures
|
|
38
|
+
* or unhandled exceptions. Non-critical phase failures (assets,
|
|
39
|
+
* code-intelligence, workers, claude-md, hooks, mcp) leave `success`
|
|
40
|
+
* true. Consumers MUST inspect `steps[*].status` to detect those.
|
|
41
|
+
* `aqe init --json` itself enforces this stricter contract via its
|
|
42
|
+
* exit code: it exits non-zero if ANY step has status === 'error',
|
|
43
|
+
* not just on `success === false`.
|
|
44
|
+
*/
|
|
45
|
+
export interface InitJsonOutput {
|
|
46
|
+
schemaVersion: 1;
|
|
47
|
+
success: boolean;
|
|
48
|
+
steps: Array<{
|
|
49
|
+
step: string;
|
|
50
|
+
status: 'success' | 'warning' | 'error' | 'skipped';
|
|
51
|
+
message: string;
|
|
52
|
+
durationMs: number;
|
|
53
|
+
}>;
|
|
54
|
+
summary: {
|
|
55
|
+
projectAnalyzed: boolean;
|
|
56
|
+
configGenerated: boolean;
|
|
57
|
+
codeIntelligenceIndexed: number;
|
|
58
|
+
patternsLoaded: number;
|
|
59
|
+
skillsInstalled: number;
|
|
60
|
+
agentsInstalled: number;
|
|
61
|
+
hooksConfigured: boolean;
|
|
62
|
+
mcpConfigured: boolean;
|
|
63
|
+
claudeMdGenerated: boolean;
|
|
64
|
+
workersStarted: number;
|
|
65
|
+
n8nInstalled?: {
|
|
66
|
+
agents: number;
|
|
67
|
+
skills: number;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
totalDurationMs: number;
|
|
71
|
+
timestamp: string;
|
|
72
|
+
}
|
|
21
73
|
interface InitOptions {
|
|
22
74
|
domains: string;
|
|
23
75
|
maxAgents: string;
|
|
@@ -29,6 +81,7 @@ interface InitOptions {
|
|
|
29
81
|
minimal?: boolean;
|
|
30
82
|
skipPatterns?: boolean;
|
|
31
83
|
skipCodeIndex?: boolean;
|
|
84
|
+
json?: boolean;
|
|
32
85
|
withN8n?: boolean;
|
|
33
86
|
withOpencode?: boolean;
|
|
34
87
|
withKiro?: boolean;
|
|
@@ -13,6 +13,12 @@ export class InitHandler {
|
|
|
13
13
|
name = 'init';
|
|
14
14
|
description = 'Initialize the AQE v3 system';
|
|
15
15
|
cleanupAndExit;
|
|
16
|
+
/**
|
|
17
|
+
* Original `process.stdout.write` captured before --json mode redirects
|
|
18
|
+
* stdout to stderr. Restored at JSON-emission time. Null when not in
|
|
19
|
+
* JSON mode.
|
|
20
|
+
*/
|
|
21
|
+
originalStdoutWrite = null;
|
|
16
22
|
constructor(cleanupAndExit) {
|
|
17
23
|
this.cleanupAndExit = cleanupAndExit;
|
|
18
24
|
}
|
|
@@ -29,7 +35,8 @@ export class InitHandler {
|
|
|
29
35
|
.option('-u, --upgrade', 'Upgrade existing installation (overwrite skills, agents, validation)')
|
|
30
36
|
.option('--minimal', 'Minimal configuration (skip optional features)')
|
|
31
37
|
.option('--skip-patterns', 'Skip loading pre-trained patterns')
|
|
32
|
-
.option('--skip-code-index', 'Skip code intelligence pre-scan (
|
|
38
|
+
.option('--skip-code-index', 'Skip code intelligence pre-scan (supported escape hatch — KG can be built later via `aqe code index`, also via env AQE_SKIP_CODE_INDEX=1)')
|
|
39
|
+
.option('--json', 'Emit machine-readable JSON result on stdout (suppresses banners; phase progress goes to stderr). Used by the release-gate corpus and CI tooling. See InitJsonOutput in init-handler.ts for the schema.')
|
|
33
40
|
.option('--with-n8n', 'Install n8n workflow testing agents and skills')
|
|
34
41
|
.option('--with-opencode', 'Include OpenCode agent/skill provisioning')
|
|
35
42
|
.option('--with-kiro', 'Include AWS Kiro IDE integration (agents, skills, hooks, steering)')
|
|
@@ -54,6 +61,19 @@ export class InitHandler {
|
|
|
54
61
|
});
|
|
55
62
|
}
|
|
56
63
|
async execute(options, context) {
|
|
64
|
+
// In --json mode we must redirect stdout BEFORE any console.log so
|
|
65
|
+
// that banners printed in this function don't pollute the JSON-only
|
|
66
|
+
// stdout contract. The original write fn is captured on `this` so
|
|
67
|
+
// runModularInit can restore it before emitting the final JSON. See
|
|
68
|
+
// InitJsonOutput for the schema.
|
|
69
|
+
if (options.json === true) {
|
|
70
|
+
this.originalStdoutWrite = process.stdout.write.bind(process.stdout);
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
|
+
const stderrWrite = process.stderr.write.bind(process.stderr);
|
|
73
|
+
process.stdout.write = ((...args) => {
|
|
74
|
+
return stderrWrite(...args);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
57
77
|
try {
|
|
58
78
|
// Expand --with-all-platforms into individual flags
|
|
59
79
|
if (options.withAllPlatforms) {
|
|
@@ -90,7 +110,8 @@ export class InitHandler {
|
|
|
90
110
|
await this.cleanupAndExit(1);
|
|
91
111
|
}
|
|
92
112
|
}
|
|
93
|
-
async runModularInit(options,
|
|
113
|
+
async runModularInit(options, _context) {
|
|
114
|
+
const isJsonMode = options.json === true;
|
|
94
115
|
const { createModularInitOrchestrator } = await import('../../init/orchestrator.js');
|
|
95
116
|
const orchestrator = createModularInitOrchestrator({
|
|
96
117
|
projectRoot: process.cwd(),
|
|
@@ -115,6 +136,35 @@ export class InitHandler {
|
|
|
115
136
|
});
|
|
116
137
|
console.log(chalk.white(' Analyzing project...\n'));
|
|
117
138
|
const result = await orchestrator.initialize();
|
|
139
|
+
// JSON mode: emit structured output and exit. Skip Claude Flow
|
|
140
|
+
// integration and human banners — those are for interactive runs.
|
|
141
|
+
if (isJsonMode) {
|
|
142
|
+
// Restore the real stdout captured in execute() before any banners
|
|
143
|
+
// were printed.
|
|
144
|
+
if (this.originalStdoutWrite) {
|
|
145
|
+
process.stdout.write = this.originalStdoutWrite;
|
|
146
|
+
}
|
|
147
|
+
const jsonOutput = {
|
|
148
|
+
schemaVersion: 1,
|
|
149
|
+
success: result.success,
|
|
150
|
+
steps: result.steps.map((s) => ({
|
|
151
|
+
step: s.step,
|
|
152
|
+
status: s.status,
|
|
153
|
+
message: s.message,
|
|
154
|
+
durationMs: s.durationMs,
|
|
155
|
+
})),
|
|
156
|
+
summary: result.summary,
|
|
157
|
+
totalDurationMs: result.totalDurationMs,
|
|
158
|
+
timestamp: result.timestamp.toISOString(),
|
|
159
|
+
};
|
|
160
|
+
process.stdout.write(JSON.stringify(jsonOutput, null, 2) + '\n');
|
|
161
|
+
// Exit non-zero if EITHER critical failure OR any step errored.
|
|
162
|
+
// This is stricter than `result.success` and is the contract the
|
|
163
|
+
// gate relies on.
|
|
164
|
+
const anyStepErrored = result.steps.some((s) => s.status === 'error');
|
|
165
|
+
await this.cleanupAndExit(result.success && !anyStepErrored ? 0 : 1);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
118
168
|
// Display step results
|
|
119
169
|
for (const step of result.steps) {
|
|
120
170
|
const statusIcon = step.status === 'success' ? '*' : step.status === 'error' ? 'x' : '!';
|
|
@@ -184,7 +234,7 @@ export class InitHandler {
|
|
|
184
234
|
}
|
|
185
235
|
await this.cleanupAndExit(0);
|
|
186
236
|
}
|
|
187
|
-
async runLegacyWizard(options,
|
|
237
|
+
async runLegacyWizard(options, _context) {
|
|
188
238
|
const { InitOrchestrator } = await import('../../init/init-wizard.js');
|
|
189
239
|
const orchestratorOptions = {
|
|
190
240
|
projectRoot: process.cwd(),
|
|
@@ -23,16 +23,21 @@ export declare class CodeIntelligencePhase extends BasePhase<CodeIntelligenceRes
|
|
|
23
23
|
readonly critical = false;
|
|
24
24
|
readonly requiresPhases: readonly ["database"];
|
|
25
25
|
/**
|
|
26
|
-
* Opt-out gate:
|
|
27
|
-
* pre-scan
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* `--skip-code-index` to `aqe init` bypasses this phase entirely.
|
|
31
|
-
* Lazy on-demand indexing still works when the user runs
|
|
32
|
-
* `aqe code index` or `aqe memory search` afterwards.
|
|
26
|
+
* Opt-out gate: permanent supported escape hatch for the code intelligence
|
|
27
|
+
* pre-scan. Setting `AQE_SKIP_CODE_INDEX=1` or passing `--skip-code-index`
|
|
28
|
+
* to `aqe init` bypasses this phase entirely. Lazy on-demand indexing
|
|
29
|
+
* still works afterwards via `aqe code index` or `aqe memory search`.
|
|
33
30
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
31
|
+
* History:
|
|
32
|
+
* - Added in v3.9.4 as an emergency escape hatch when `@ruvector/router`
|
|
33
|
+
* deadlocked on certain inputs (issue #401).
|
|
34
|
+
* - In v3.9.6 the deadlocking dependency was replaced by `hnswlib-node`
|
|
35
|
+
* (ADR-090) and the original deadlock no longer reproduces.
|
|
36
|
+
* - The flag is kept as a permanent supported option, not a temporary
|
|
37
|
+
* workaround. The release-gate corpus at
|
|
38
|
+
* `tests/fixtures/init-corpus/` is the load-bearing prevention layer
|
|
39
|
+
* for future regressions; this flag is the user-facing break-glass
|
|
40
|
+
* for the case where the corpus misses something in the wild.
|
|
36
41
|
*/
|
|
37
42
|
shouldRun(context: InitContext): Promise<boolean>;
|
|
38
43
|
protected run(context: InitContext): Promise<CodeIntelligenceResult>;
|
|
@@ -67,16 +67,21 @@ export class CodeIntelligencePhase extends BasePhase {
|
|
|
67
67
|
critical = false;
|
|
68
68
|
requiresPhases = ['database'];
|
|
69
69
|
/**
|
|
70
|
-
* Opt-out gate:
|
|
71
|
-
* pre-scan
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* `--skip-code-index` to `aqe init` bypasses this phase entirely.
|
|
75
|
-
* Lazy on-demand indexing still works when the user runs
|
|
76
|
-
* `aqe code index` or `aqe memory search` afterwards.
|
|
70
|
+
* Opt-out gate: permanent supported escape hatch for the code intelligence
|
|
71
|
+
* pre-scan. Setting `AQE_SKIP_CODE_INDEX=1` or passing `--skip-code-index`
|
|
72
|
+
* to `aqe init` bypasses this phase entirely. Lazy on-demand indexing
|
|
73
|
+
* still works afterwards via `aqe code index` or `aqe memory search`.
|
|
77
74
|
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
75
|
+
* History:
|
|
76
|
+
* - Added in v3.9.4 as an emergency escape hatch when `@ruvector/router`
|
|
77
|
+
* deadlocked on certain inputs (issue #401).
|
|
78
|
+
* - In v3.9.6 the deadlocking dependency was replaced by `hnswlib-node`
|
|
79
|
+
* (ADR-090) and the original deadlock no longer reproduces.
|
|
80
|
+
* - The flag is kept as a permanent supported option, not a temporary
|
|
81
|
+
* workaround. The release-gate corpus at
|
|
82
|
+
* `tests/fixtures/init-corpus/` is the load-bearing prevention layer
|
|
83
|
+
* for future regressions; this flag is the user-facing break-glass
|
|
84
|
+
* for the case where the corpus misses something in the wild.
|
|
80
85
|
*/
|
|
81
86
|
async shouldRun(context) {
|
|
82
87
|
const envSkip = process.env.AQE_SKIP_CODE_INDEX;
|
|
@@ -183,21 +188,37 @@ export class CodeIntelligencePhase extends BasePhase {
|
|
|
183
188
|
* indexer is — and, if a timeout fires, which file was responsible.
|
|
184
189
|
*/
|
|
185
190
|
async runCodeIntelligenceScan(projectRoot, context, incremental, changedFiles) {
|
|
191
|
+
// NOTE: this method intentionally does NOT swallow errors. Earlier
|
|
192
|
+
// versions caught everything and returned `{status:'skipped', entries:0}`,
|
|
193
|
+
// which produced a SUCCESSFUL phase result with hidden failure semantics
|
|
194
|
+
// — init reported "AQE v3 initialized successfully" while the KG was
|
|
195
|
+
// empty and the release-gate corpus had nothing to assert against. We
|
|
196
|
+
// now let exceptions propagate to BasePhase.execute(), which converts
|
|
197
|
+
// them to `{success:false, error}`. Phase 06 remains `critical: false`,
|
|
198
|
+
// so init still completes; the difference is that `result.steps[]`
|
|
199
|
+
// contains an entry with `status='error'` that the gate (and `--json`
|
|
200
|
+
// consumers) can detect. See issue #401 part-3 devils-advocate review.
|
|
201
|
+
//
|
|
202
|
+
// The cleanup of `kgService` and `memory` was previously leaked when
|
|
203
|
+
// any throw happened — the catch returned skipped without closing
|
|
204
|
+
// handles, leaving better-sqlite3 + hnswlib-node native resources
|
|
205
|
+
// dangling. The try/finally below fixes that leak as a side effect of
|
|
206
|
+
// dropping the swallow-everything catch.
|
|
207
|
+
const { KnowledgeGraphService } = await import('../../domains/code-intelligence/services/knowledge-graph.js');
|
|
208
|
+
const dbPath = join(projectRoot, '.agentic-qe', 'memory.db');
|
|
209
|
+
const memoryConfig = {
|
|
210
|
+
type: 'sqlite',
|
|
211
|
+
sqlite: {
|
|
212
|
+
path: dbPath,
|
|
213
|
+
walMode: true,
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
const { backend: memory } = await createMemoryBackend(memoryConfig, true);
|
|
217
|
+
const kgService = new KnowledgeGraphService(memory, {
|
|
218
|
+
namespace: 'code-intelligence:kg',
|
|
219
|
+
enableVectorEmbeddings: true,
|
|
220
|
+
});
|
|
186
221
|
try {
|
|
187
|
-
const { KnowledgeGraphService } = await import('../../domains/code-intelligence/services/knowledge-graph.js');
|
|
188
|
-
const dbPath = join(projectRoot, '.agentic-qe', 'memory.db');
|
|
189
|
-
const memoryConfig = {
|
|
190
|
-
type: 'sqlite',
|
|
191
|
-
sqlite: {
|
|
192
|
-
path: dbPath,
|
|
193
|
-
walMode: true,
|
|
194
|
-
},
|
|
195
|
-
};
|
|
196
|
-
const { backend: memory } = await createMemoryBackend(memoryConfig, true);
|
|
197
|
-
const kgService = new KnowledgeGraphService(memory, {
|
|
198
|
-
namespace: 'code-intelligence:kg',
|
|
199
|
-
enableVectorEmbeddings: true,
|
|
200
|
-
});
|
|
201
222
|
let filesToIndex;
|
|
202
223
|
if (changedFiles) {
|
|
203
224
|
filesToIndex = changedFiles;
|
|
@@ -216,8 +237,6 @@ export class CodeIntelligencePhase extends BasePhase {
|
|
|
216
237
|
// Race the whole scan against a phase-level watchdog. If the cap
|
|
217
238
|
// fires, we stop eating files and report how far we got.
|
|
218
239
|
const scanResult = await this.runBoundedScan(kgService, filesToIndex, incremental, context);
|
|
219
|
-
kgService.destroy();
|
|
220
|
-
await memory.dispose();
|
|
221
240
|
if (scanResult.status === 'timeout') {
|
|
222
241
|
context.services.warn(` ⚠ Code intelligence pre-scan exceeded ${PHASE_TIMEOUT_MS / 1000}s phase cap. ` +
|
|
223
242
|
`Indexed ${scanResult.entries} entries before timeout. ` +
|
|
@@ -235,9 +254,19 @@ export class CodeIntelligencePhase extends BasePhase {
|
|
|
235
254
|
}
|
|
236
255
|
return scanResult;
|
|
237
256
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
257
|
+
finally {
|
|
258
|
+
// Always release native handles, even on throw. Otherwise the
|
|
259
|
+
// better-sqlite3 + hnswlib-node + KG service handles leak across
|
|
260
|
+
// phases, which can cause "database is locked" or stale-connection
|
|
261
|
+
// failures in subsequent init phases or in `aqe code index` runs.
|
|
262
|
+
try {
|
|
263
|
+
kgService.destroy();
|
|
264
|
+
}
|
|
265
|
+
catch { /* best-effort */ }
|
|
266
|
+
try {
|
|
267
|
+
await memory.dispose();
|
|
268
|
+
}
|
|
269
|
+
catch { /* best-effort */ }
|
|
241
270
|
}
|
|
242
271
|
}
|
|
243
272
|
/**
|
|
@@ -285,6 +314,12 @@ export class CodeIntelligencePhase extends BasePhase {
|
|
|
285
314
|
// hang no longer reproduces. The between-file timeout check and
|
|
286
315
|
// the AQE_SKIP_CODE_INDEX escape hatch are kept as defense in
|
|
287
316
|
// depth against future native-code stalls.
|
|
317
|
+
//
|
|
318
|
+
// The load-bearing prevention layer for new init regressions is the
|
|
319
|
+
// release-gate corpus at tests/fixtures/init-corpus/ which runs
|
|
320
|
+
// `aqe init --auto` against pinned real public repos (including the
|
|
321
|
+
// v3.9.4 regression file `examples/ruview_live.py` from RuView)
|
|
322
|
+
// before every npm publish. See issue #401 for the post-mortem.
|
|
288
323
|
if (Date.now() - startedAt > PHASE_TIMEOUT_MS) {
|
|
289
324
|
timedOut = true;
|
|
290
325
|
break;
|
|
@@ -71,12 +71,24 @@ export interface InitOptions {
|
|
|
71
71
|
/** Skip pattern loading */
|
|
72
72
|
skipPatterns?: boolean;
|
|
73
73
|
/**
|
|
74
|
-
* Skip the code intelligence pre-scan phase
|
|
74
|
+
* Skip the code intelligence pre-scan phase.
|
|
75
75
|
*
|
|
76
76
|
* Set this via `--skip-code-index` on `aqe init` or `AQE_SKIP_CODE_INDEX=1`
|
|
77
|
-
* in the environment.
|
|
78
|
-
*
|
|
79
|
-
*
|
|
77
|
+
* in the environment. The KG can be built later via `aqe code index`.
|
|
78
|
+
*
|
|
79
|
+
* Originally added in v3.9.4 as an emergency escape hatch for the
|
|
80
|
+
* `@ruvector/router` deadlock (issue #401). The dependency was replaced
|
|
81
|
+
* by `hnswlib-node` in v3.9.6 (ADR-090) and the original deadlock no
|
|
82
|
+
* longer reproduces, but this flag is kept as a permanent supported
|
|
83
|
+
* defense-in-depth option:
|
|
84
|
+
*
|
|
85
|
+
* - Phase 06 still runs on the Node main thread, so any future
|
|
86
|
+
* synchronous native call inside the indexer could in principle
|
|
87
|
+
* freeze the event loop where the per-file `setTimeout` watchdog
|
|
88
|
+
* can't interrupt it.
|
|
89
|
+
* - The `tests/fixtures/init-corpus` release gate is the load-bearing
|
|
90
|
+
* prevention layer, but the flag stays as a user-facing break-glass
|
|
91
|
+
* for the case where verification misses something in the wild.
|
|
80
92
|
*/
|
|
81
93
|
skipCodeIndex?: boolean;
|
|
82
94
|
/** Minimal configuration (no skills, patterns, workers) */
|