agentic-qe 3.9.11 → 3.9.13
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/agents/v3/qe-coverage-specialist.md +1 -1
- package/.claude/agents/v3/qe-fleet-commander.md +1 -1
- package/.claude/agents/v3/qe-pentest-validator.md +4 -2
- package/.claude/agents/v3/qe-queen-coordinator.md +1 -1
- package/.claude/agents/v3/qe-risk-assessor.md +1 -1
- package/.claude/agents/v3/qe-root-cause-analyzer.md +1 -1
- package/.claude/agents/v3/qe-security-auditor.md +4 -2
- package/.claude/agents/v3/qe-security-scanner.md +3 -1
- package/.claude/agents/v3/qe-test-architect.md +1 -1
- package/.claude/commands/aqe-costs.md +6 -6
- package/.claude/skills/.validation/schemas/skill-eval.schema.json +3 -0
- package/.claude/skills/.validation/test-data/sample-output.json +1 -1
- package/.claude/skills/a11y-ally/SKILL.md +1 -1
- package/.claude/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
- package/.claude/skills/api-testing-patterns/evals/api-testing-patterns.yaml +2 -2
- package/.claude/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/.claude/skills/contract-testing/evals/contract-testing.yaml +2 -2
- package/.claude/skills/database-testing/evals/database-testing.yaml +2 -2
- package/.claude/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/.claude/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
- package/.claude/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/.claude/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/.claude/skills/skills-manifest.json +1 -1
- package/.claude/skills/testability-scoring/evals/testability-scoring.yaml +2 -2
- package/CHANGELOG.md +29 -0
- package/assets/agents/v3/qe-coverage-specialist.md +1 -1
- package/assets/agents/v3/qe-fleet-commander.md +1 -1
- package/assets/agents/v3/qe-pentest-validator.md +4 -2
- package/assets/agents/v3/qe-queen-coordinator.md +1 -1
- package/assets/agents/v3/qe-risk-assessor.md +1 -1
- package/assets/agents/v3/qe-root-cause-analyzer.md +1 -1
- package/assets/agents/v3/qe-security-auditor.md +4 -2
- package/assets/agents/v3/qe-security-scanner.md +3 -1
- package/assets/agents/v3/qe-test-architect.md +1 -1
- package/assets/skills/.validation/schemas/skill-eval.schema.json +3 -0
- package/assets/skills/.validation/test-data/sample-output.json +1 -1
- package/assets/skills/a11y-ally/SKILL.md +1 -1
- package/assets/skills/accessibility-testing/evals/accessibility-testing.yaml +1 -1
- package/assets/skills/api-testing-patterns/evals/api-testing-patterns.yaml +2 -2
- package/assets/skills/chaos-engineering-resilience/evals/chaos-engineering-resilience.yaml +1 -1
- package/assets/skills/contract-testing/evals/contract-testing.yaml +2 -2
- package/assets/skills/database-testing/evals/database-testing.yaml +2 -2
- package/assets/skills/localization-testing/evals/localization-testing.yaml +1 -1
- package/assets/skills/n8n-trigger-testing-strategies/evals/n8n-trigger-testing-strategies.yaml +1 -1
- package/assets/skills/performance-testing/evals/performance-testing.yaml +1 -1
- package/assets/skills/quality-metrics/evals/quality-metrics.yaml +1 -1
- package/assets/skills/skills-manifest.json +1 -1
- package/assets/skills/testability-scoring/evals/testability-scoring.yaml +2 -2
- package/dist/adapters/claude-flow/detect.js +13 -0
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-VP3WBXE5.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-ERBGW3L7.js → agent-booster-wasm-3RBPTJAU.js} +2 -2
- package/dist/cli/chunks/{agent-handler-G5WC5V6J.js → agent-handler-XV45GCWC.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-XAM3NPTO.js → agent-memory-branch-V6EXWWMY.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-ASPPEOKQ.js +2 -0
- package/dist/cli/chunks/{audit-QW4RPP6W.js → audit-WXFI4AC4.js} +2 -2
- package/dist/cli/chunks/base-SIAOYPTD.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-JNLN3EQY.js → better-sqlite3-23MIVVHF.js} +2 -2
- package/dist/cli/chunks/{brain-handler-YXCEHA2J.js → brain-handler-LQUMAACV.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-ZJUGC2OB.js → branch-enumerator-HE37VX7G.js} +2 -2
- package/dist/cli/chunks/{browser-RLRS7JBO.js → browser-3VG5M7WM.js} +2 -2
- package/dist/cli/chunks/browser-workflow-BG3M3RZU.js +2 -0
- package/dist/cli/chunks/{chunk-E5XSCY5J.js → chunk-2RTGP76Y.js} +2 -2
- package/dist/cli/chunks/{chunk-YSNVBAUR.js → chunk-3AOWTHLS.js} +2 -2
- package/dist/cli/chunks/{chunk-W2CIYDNQ.js → chunk-3I6KWFJT.js} +2 -2
- package/dist/cli/chunks/{chunk-PX2LQIS3.js → chunk-3IJ4NRJF.js} +2 -2
- package/dist/cli/chunks/{chunk-KUU5KPBS.js → chunk-3RM2VNYG.js} +2 -2
- package/dist/cli/chunks/{chunk-C6EG74P6.js → chunk-4MZZMWF6.js} +1 -1
- package/dist/cli/chunks/{chunk-KNG3K26M.js → chunk-4PCHU2X7.js} +1 -1
- package/dist/cli/chunks/{chunk-GF6KRBPQ.js → chunk-4VETZICF.js} +1 -1
- package/dist/cli/chunks/{chunk-TSXTP4MO.js → chunk-4WJ3BHCN.js} +3 -3
- package/dist/cli/chunks/{chunk-ZWGFOQOS.js → chunk-54A2LVKM.js} +2 -2
- package/dist/cli/chunks/{chunk-2PM3SD63.js → chunk-5TDHUYYF.js} +2 -2
- package/dist/cli/chunks/{chunk-TRCNODAD.js → chunk-67TMNSO3.js} +1 -1
- package/dist/cli/chunks/{chunk-7H46NSQI.js → chunk-6GYMFSPA.js} +2 -2
- package/dist/cli/chunks/{chunk-UMRNJLCT.js → chunk-6HSHLSGU.js} +2 -2
- package/dist/cli/chunks/{chunk-MFHKKNVZ.js → chunk-6LDRSG7C.js} +2 -2
- package/dist/cli/chunks/{chunk-2SPDBBGB.js → chunk-77GZ7LXL.js} +2 -2
- package/dist/cli/chunks/{chunk-7WTKRSJW.js → chunk-7HX2PMBB.js} +2 -2
- package/dist/cli/chunks/{chunk-LPTSNKCM.js → chunk-AEKTVLLF.js} +2 -2
- package/dist/cli/chunks/{chunk-L7LOSW5T.js → chunk-AOTEEGQA.js} +24 -24
- package/dist/cli/chunks/{chunk-QEBXLE7N.js → chunk-APQYMAKG.js} +4 -4
- package/dist/cli/chunks/{chunk-OUCFT3RT.js → chunk-AV23XNRL.js} +2 -2
- package/dist/cli/chunks/{chunk-JJS3OOFV.js → chunk-AXDGBI4Y.js} +1 -1
- package/dist/cli/chunks/{chunk-RRCFW2M3.js → chunk-AZPDX4KS.js} +2 -2
- package/dist/cli/chunks/{chunk-I3V5VPNQ.js → chunk-BE2DYHUB.js} +2 -2
- package/dist/cli/chunks/{chunk-CL6NRSRJ.js → chunk-BSTCXDVH.js} +1 -1
- package/dist/cli/chunks/{chunk-TI4B6LPH.js → chunk-BUIMIUJA.js} +1 -1
- package/dist/cli/chunks/{chunk-44P37G45.js → chunk-CF5EJGOV.js} +2 -2
- package/dist/cli/chunks/{chunk-2NQ37ZD2.js → chunk-CPRYUCPC.js} +1 -1
- package/dist/cli/chunks/{chunk-5BOJ7G3B.js → chunk-D22MEX2U.js} +2 -2
- package/dist/cli/chunks/{chunk-KK6MUW7H.js → chunk-DHYJMGKC.js} +1 -1
- package/dist/cli/chunks/{chunk-NEI3CUGT.js → chunk-DY5JRJXV.js} +3 -3
- package/dist/cli/chunks/{chunk-Y5YE6LVE.js → chunk-E7P6GAD7.js} +2 -2
- package/dist/cli/chunks/{chunk-NMJFMH4E.js → chunk-EBQUXPIG.js} +2 -2
- package/dist/cli/chunks/{chunk-VMBRYYYH.js → chunk-EC2CI3ZC.js} +2 -2
- package/dist/cli/chunks/{chunk-IFVGKXD2.js → chunk-ERGY45RL.js} +1 -1
- package/dist/cli/chunks/{chunk-KE5INK6G.js → chunk-ES6CEZG2.js} +1 -1
- package/dist/cli/chunks/{chunk-XBG6EFDT.js → chunk-F74IVEON.js} +2 -2
- package/dist/cli/chunks/{chunk-MQTFPGGG.js → chunk-FEGITTAE.js} +1 -1
- package/dist/cli/chunks/{chunk-YZNN62EM.js → chunk-FHWDVN65.js} +2 -2
- package/dist/cli/chunks/{chunk-TIKBMCDQ.js → chunk-FLML5IT7.js} +2 -2
- package/dist/cli/chunks/{chunk-7CSQKBZM.js → chunk-FS4TPAAA.js} +1 -1
- package/dist/cli/chunks/{chunk-V45UPEEM.js → chunk-GHAEDZDE.js} +2 -2
- package/dist/cli/chunks/{chunk-KXNVYDJF.js → chunk-GKRKCJ6D.js} +2 -2
- package/dist/cli/chunks/{chunk-4DHHTDMU.js → chunk-H53V7GI3.js} +1 -1
- package/dist/cli/chunks/{chunk-Y5WIREMP.js → chunk-HEHGQM2H.js} +23 -23
- package/dist/cli/chunks/{chunk-5QQVR2PJ.js → chunk-HHRUXDLT.js} +2 -2
- package/dist/cli/chunks/{chunk-BMDH76Z5.js → chunk-HJHFGPGP.js} +2 -2
- package/dist/cli/chunks/{chunk-NU5DOYGG.js → chunk-HRD7LL7Q.js} +2 -2
- package/dist/cli/chunks/{chunk-FOONOTJJ.js → chunk-HXLAXSEM.js} +2 -2
- package/dist/cli/chunks/{chunk-YIZNQK5R.js → chunk-I6O4MVEY.js} +4 -4
- package/dist/cli/chunks/{chunk-L4TU4IIE.js → chunk-IQGVQBVS.js} +1 -1
- package/dist/cli/chunks/{chunk-NWUOACDR.js → chunk-JOCR5TWI.js} +2 -2
- package/dist/cli/chunks/chunk-JV7HKHQS.js +2 -0
- package/dist/cli/chunks/{chunk-P5GOHOPL.js → chunk-KULWZMVC.js} +3 -3
- package/dist/cli/chunks/{chunk-WUDYOEEV.js → chunk-LHZLH6I4.js} +2 -2
- package/dist/cli/chunks/{chunk-I2HIQGZ2.js → chunk-LRHJOYKY.js} +3 -3
- package/dist/cli/chunks/{chunk-P6O43I72.js → chunk-MXT7YUOZ.js} +2 -2
- package/dist/cli/chunks/{chunk-JG6GFIR4.js → chunk-OBDM6OJL.js} +1 -1
- package/dist/cli/chunks/{chunk-O374BYD4.js → chunk-OGHIQCJU.js} +2 -2
- package/dist/cli/chunks/{chunk-WGKNSWGX.js → chunk-OHG6SNIA.js} +2 -2
- package/dist/cli/chunks/{chunk-TFK7FDC4.js → chunk-OJGR56BP.js} +2 -2
- package/dist/cli/chunks/{chunk-PRUG76TG.js → chunk-OKCI6BNZ.js} +2 -2
- package/dist/cli/chunks/{chunk-XS7YNHNG.js → chunk-OM7A3YC3.js} +2 -2
- package/dist/cli/chunks/{chunk-QL5O27ES.js → chunk-OP54A7C6.js} +2 -2
- package/dist/cli/chunks/{chunk-C4BDVGMS.js → chunk-OUNZPHTA.js} +1 -1
- package/dist/cli/chunks/{chunk-N3LKRXKM.js → chunk-Q3MQYATA.js} +2 -2
- package/dist/cli/chunks/{chunk-HGPK3IIX.js → chunk-Q7TWE55T.js} +3 -3
- package/dist/cli/chunks/{chunk-GOWDJPOX.js → chunk-QHCOAG7D.js} +1 -1
- package/dist/cli/chunks/{chunk-G3XXEPHS.js → chunk-QIE76ERL.js} +1 -1
- package/dist/cli/chunks/{chunk-F2OCIVD2.js → chunk-QKTB5FZP.js} +2 -2
- package/dist/cli/chunks/{chunk-NKUPM5KQ.js → chunk-QNUVC6OX.js} +1 -1
- package/dist/cli/chunks/{chunk-XIJ6LU5G.js → chunk-R4B2B6MZ.js} +2 -2
- package/dist/cli/chunks/{chunk-22OWZHSK.js → chunk-RMNZSGTE.js} +2 -2
- package/dist/cli/chunks/{chunk-ZM7WJNQY.js → chunk-RURYOWWU.js} +1 -1
- package/dist/cli/chunks/{chunk-5RDXUTEB.js → chunk-RYPUA6E2.js} +2 -2
- package/dist/cli/chunks/{chunk-TEHFGVQG.js → chunk-SI7AQK7I.js} +2 -2
- package/dist/cli/chunks/{chunk-RI5IUJ2E.js → chunk-SL66MHDM.js} +1 -1
- package/dist/cli/chunks/{chunk-5XQLA5PW.js → chunk-SSZMISGC.js} +2 -2
- package/dist/cli/chunks/{chunk-LKYO7SZ7.js → chunk-TNQBHQFH.js} +2 -2
- package/dist/cli/chunks/{chunk-7BYZSHCI.js → chunk-TOS3PI5Q.js} +1 -1
- package/dist/cli/chunks/{chunk-QRQV2KJ3.js → chunk-TPTKR5ZO.js} +1 -1
- package/dist/cli/chunks/{chunk-VQIBPHLI.js → chunk-TRJRRJV3.js} +1 -1
- package/dist/cli/chunks/{chunk-ZGWNU6V6.js → chunk-TU3JIH3U.js} +5 -5
- package/dist/cli/chunks/{chunk-CV3KHYEY.js → chunk-TVASP2E6.js} +2 -2
- package/dist/cli/chunks/{chunk-2DSXKIGI.js → chunk-TWRGM5TY.js} +2 -2
- package/dist/cli/chunks/chunk-UCCNB75R.js +3 -0
- package/dist/cli/chunks/{chunk-DZZKBPOK.js → chunk-UDIRBCZW.js} +1 -1
- package/dist/cli/chunks/{chunk-6RU5DG36.js → chunk-V2CV6J2A.js} +2 -2
- package/dist/cli/chunks/{chunk-AIHD3V62.js → chunk-V6UODTBP.js} +1 -1
- package/dist/cli/chunks/{chunk-LLC3GJXO.js → chunk-VCJP7HQG.js} +2 -2
- package/dist/cli/chunks/chunk-VHSDZEYF.js +2 -0
- package/dist/cli/chunks/{chunk-YGZOCUJM.js → chunk-VJN7NQGI.js} +9 -9
- package/dist/cli/chunks/{chunk-F6ADG6BA.js → chunk-VLZBQ3XN.js} +2 -2
- package/dist/cli/chunks/{chunk-C5QJV576.js → chunk-VU7ENCSU.js} +2 -2
- package/dist/cli/chunks/{chunk-KFNPCKTB.js → chunk-VVVIRGO7.js} +2 -2
- package/dist/cli/chunks/chunk-VWEGO7BY.js +2 -0
- package/dist/cli/chunks/{chunk-K6S2C76B.js → chunk-W2YCNX4O.js} +2 -2
- package/dist/cli/chunks/{chunk-Z5CFWIET.js → chunk-W6LEOFA4.js} +2 -2
- package/dist/cli/chunks/{chunk-YBVFSBYN.js → chunk-WQGP5ULD.js} +2 -2
- package/dist/cli/chunks/{chunk-S37G7A6J.js → chunk-WQIB5ERQ.js} +2 -2
- package/dist/cli/chunks/{chunk-NDLYVPON.js → chunk-WVWB7K6H.js} +1 -1
- package/dist/cli/chunks/{chunk-7D352FKW.js → chunk-X3UVXJIK.js} +2 -2
- package/dist/cli/chunks/{chunk-K33CP3M4.js → chunk-XV42SKJD.js} +2 -2
- package/dist/cli/chunks/{chunk-C3W4M7UY.js → chunk-XXQYSDLV.js} +2 -2
- package/dist/cli/chunks/chunk-Y2ONHWXI.js +2 -0
- package/dist/cli/chunks/{chunk-WY4RNWWV.js → chunk-Y7YSJD4I.js} +2 -2
- package/dist/cli/chunks/{chunk-DKJZW6KO.js → chunk-YBKSENTJ.js} +3 -3
- package/dist/cli/chunks/{chunk-N5EQ3Q63.js → chunk-YCQ2GHFH.js} +2 -2
- package/dist/cli/chunks/{chunk-R5FOT2GW.js → chunk-YCTGWMCP.js} +3 -3
- package/dist/cli/chunks/{chunk-F57L5LEP.js → chunk-YYQVSVBO.js} +2 -2
- package/dist/cli/chunks/{chunk-STVZ2TBG.js → chunk-Z6F4GRXY.js} +1 -1
- package/dist/cli/chunks/chunk-ZN7KPIJW.js +2 -0
- package/dist/cli/chunks/{chunk-QWWYIHND.js → chunk-ZS5BM2EE.js} +2 -2
- package/dist/cli/chunks/{chunk-6V7446OP.js → chunk-ZUW3KVML.js} +2 -2
- package/dist/cli/chunks/chunk-ZXJNX5D2.js +2 -0
- package/dist/cli/chunks/{ci-3W7NMONI.js → ci-FEEIAOQN.js} +2 -2
- package/dist/cli/chunks/{ci-output-S3L4ODFZ.js → ci-output-2WMUTORB.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-2KWBO7XA.js → circuit-breaker-MFEE23XA.js} +2 -2
- package/dist/cli/chunks/claude-flow-setup-6D655INK.js +2 -0
- package/dist/cli/chunks/client-LMOHUGOA.js +2 -0
- package/dist/cli/chunks/{cline-installer-EJZWTH4O.js → cline-installer-5PIYMPAG.js} +2 -2
- package/dist/cli/chunks/{code-M5S5TNSV.js → code-ACS453WG.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-YKAU2SIV.js → code-index-extractor-5SERI6TM.js} +2 -2
- package/dist/cli/chunks/{codex-installer-2RO7UPOC.js → codex-installer-WCUUWHP5.js} +2 -2
- package/dist/cli/chunks/{completions-6X4AQ43R.js → completions-6WFG3FPJ.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-TVSEUC4O.js → complexity-analyzer-IFZEFCB6.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-OPFGF74I.js → continuedev-installer-RW6FEEND.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-RRL4SCGA.js → copilot-installer-UZPE65RL.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-XBNJ7WKR.js → cost-tracker-2R4FT6TY.js} +2 -2
- package/dist/cli/chunks/{coverage-FPJJTRAR.js → coverage-ZUC5U47P.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-IZB5ZMXO.js +2 -0
- package/dist/cli/chunks/{cursor-installer-OPY7SFFC.js → cursor-installer-7JBZT7JZ.js} +2 -2
- package/dist/cli/chunks/{daemon-S3ZA7RT3.js → daemon-YNF54UYB.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-AOAJOWRN.js → dag-attention-scheduler-MS7D2NFM.js} +2 -2
- package/dist/cli/chunks/{detect-3F2HT32S.js → detect-UHOSHYVB.js} +2 -2
- package/dist/cli/chunks/{domain-handler-SCWOCRON.js → domain-handler-BVW4AX7O.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-4I3QTX44.js → domain-transfer-PA2ENF3D.js} +2 -2
- package/dist/cli/chunks/dream-SAPSS25B.js +2 -0
- package/dist/cli/chunks/esm-node-FTBUMV4L.js +2 -0
- package/dist/cli/chunks/{eval-M46NFR6V.js → eval-Y3ODM7JU.js} +2 -2
- package/dist/cli/chunks/{fast-paths-I2NAO6KL.js → fast-paths-DYQ5NC4Y.js} +2 -2
- package/dist/cli/chunks/{feature-flags-NQHRPIUT.js → feature-flags-V34UZPHG.js} +2 -2
- package/dist/cli/chunks/{feature-flags-PPFEWUVO.js → feature-flags-YMMGYWT3.js} +2 -2
- package/dist/cli/chunks/{file-discovery-WHHTABIG.js → file-discovery-75ZHSK4G.js} +2 -2
- package/dist/cli/chunks/{fleet-O5C6B37V.js → fleet-DD2CFGJL.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-RYIYJINN.js → gnn-wrapper-UXM3L5LV.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-NUE27AHM.js → heartbeat-handler-ANHRYXNS.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-COBJE65L.js → heartbeat-scheduler-HYVMXCXT.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-CBDRZLXX.js +2 -0
- package/dist/cli/chunks/hnsw-index-EOJG4VF4.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-4YLY2WU2.js → hnsw-legacy-bridge-IFUEUOVF.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-GCYY3MVY.js → hnswlib-node-GYVDPTWU.js} +2 -2
- package/dist/cli/chunks/{hooks-F3ZDOXBU.js → hooks-R3DQNG2F.js} +6 -6
- package/dist/cli/chunks/hybrid-router-MSCQ2XGU.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-7P7HDFAU.js → hypergraph-engine-3TKB5O7T.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-L2PIBHKZ.js → hypergraph-handler-4APYID2S.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-C2TXXYPC.js +2 -0
- package/dist/cli/chunks/{init-handler-6FQSEU3G.js → init-handler-E7B2GKH3.js} +6 -6
- package/dist/cli/chunks/init-wizard-IQV7SBMW.js +2 -0
- package/dist/cli/chunks/kernel-NJOPFGK7.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-F2OCU37B.js → kilocode-installer-WY6VTFSA.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-NXSCDS3D.js → kiro-installer-SCNF3JXD.js} +4 -4
- package/dist/cli/chunks/knowledge-graph-EUMGCQPH.js +2 -0
- package/dist/cli/chunks/{learning-X2WZCNO2.js → learning-Y4OZJFBV.js} +3 -3
- package/dist/cli/chunks/{llm-router-LG3AFXW4.js → llm-router-RBKYYHBJ.js} +5 -5
- package/dist/cli/chunks/{load-N4TOWO47.js → load-FY64UGHV.js} +2 -2
- package/dist/cli/chunks/load-test-LBYVVG35.js +2 -0
- package/dist/cli/chunks/{mcp-L6GELR4I.js → mcp-6VMQOWMX.js} +2 -2
- package/dist/cli/chunks/{memory-XWVTSHTR.js → memory-Y5RO4PGM.js} +5 -5
- package/dist/cli/chunks/memory-backend-NQMJKHCQ.js +2 -0
- package/dist/cli/chunks/{memory-handlers-N4HCIXM6.js → memory-handlers-CMMVHHPG.js} +2 -2
- package/dist/cli/chunks/multi-model-executor-JO3MNMPZ.js +14 -0
- package/dist/cli/chunks/{opencode-installer-MID5ZQNA.js → opencode-installer-WQBTY6JT.js} +2 -2
- package/dist/cli/chunks/{orchestrator-HIOP5K2H.js → orchestrator-4J7OSNSG.js} +6 -6
- package/dist/cli/chunks/{pipeline-DXEZV7FN.js → pipeline-63T6HN72.js} +2 -2
- package/dist/cli/chunks/{platform-LDZ6HBEA.js → platform-UJMD4EPZ.js} +2 -2
- package/dist/cli/chunks/{plugin-XPQBUDKJ.js → plugin-NDOZ63JW.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-OVJE7LH7.js → prime-radiant-advanced-wasm-ELGHVIFI.js} +2 -2
- package/dist/cli/chunks/protocol-executor-ZSWPG5SU.js +2 -0
- package/dist/cli/chunks/{protocol-handler-BI37HYPC.js → protocol-handler-KYERIMVF.js} +2 -2
- package/dist/cli/chunks/{prove-4A65UZVW.js → prove-ATSSBP4Z.js} +2 -2
- package/dist/cli/chunks/provider-manager-YYMIF23V.js +24 -0
- package/dist/cli/chunks/qe-reasoning-bank-4RLPRCGF.js +2 -0
- package/dist/cli/chunks/{quality-4RQ3D3JL.js → quality-2AGJSJW6.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-KQ673NYE.js +2 -0
- package/dist/cli/chunks/{real-embeddings-GT7AC5MU.js → real-embeddings-H36GVXMI.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-L77GZ3ZK.js → roocode-installer-PMRBAY7O.js} +2 -2
- package/dist/cli/chunks/router-UBNV4H5S.js +2 -0
- package/dist/cli/chunks/routing-feedback-BMMGZ346.js +2 -0
- package/dist/cli/chunks/{routing-handler-3GKAOO3V.js → routing-handler-Z7VZSDXW.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-JG4JJJIE.js → ruvector-commands-N3FZ3ZEE.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-HSJJLGC7.js → rvf-dual-writer-L5DQHUF3.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-YKJNIXE6.js → rvf-migration-adapter-NPGFA3SL.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-ROE2JI6M.js → rvf-migration-coordinator-MCJDNKXG.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-LXBCTTVF.js +2 -0
- package/dist/cli/chunks/safe-db-FFSPBUAK.js +2 -0
- package/dist/cli/chunks/schedule-2MOMNZ6B.js +2 -0
- package/dist/cli/chunks/scheduler-5VGVANFG.js +2 -0
- package/dist/cli/chunks/{security-Q46N26CF.js → security-TX7TXUGI.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-6JWYF7WV.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-3HAS2G2C.js → shared-rvf-dual-writer-6K3ZAG7P.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-LCOAORK7.js +2 -0
- package/dist/cli/chunks/{status-handler-LMQZIGFN.js → status-handler-MIRLQRNN.js} +2 -2
- package/dist/cli/chunks/{structural-health-DTU6QRF5.js → structural-health-CIHASLUE.js} +2 -2
- package/dist/cli/chunks/{sync-QIUCA4J6.js → sync-FGLAP7EK.js} +2 -2
- package/dist/cli/chunks/{task-handler-PVZ5GTKK.js → task-handler-7HMPRCHY.js} +2 -2
- package/dist/cli/chunks/{task-handlers-W34B2327.js → task-handlers-DQLQCLCT.js} +2 -2
- package/dist/cli/chunks/{test-JQJAOFZO.js → test-JKDO5ZHU.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-4ZE5MPNY.js → test-scheduling-2YKZ7PVZ.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-GL5WJ5SI.js → token-bootstrap-C7UUPMQN.js} +2 -2
- package/dist/cli/chunks/{token-usage-BUSEAXEB.js → token-usage-2RVIPCY4.js} +2 -2
- package/dist/cli/chunks/{transformers-FLJ4PR2F.js → transformers-UEMAGHQ5.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-VHFVZOVZ.js → tree-sitter-wasm-parser-MELABICK.js} +2 -2
- package/dist/cli/chunks/{types-DD6ZWJZW.js → types-5B4RD7ZV.js} +2 -2
- package/dist/cli/chunks/unified-memory-CZCWZUFP.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-QEOXVSOZ.js +2 -0
- package/dist/cli/chunks/unified-persistence-HGZAYZGP.js +2 -0
- package/dist/cli/chunks/{validate-RAX2MQKU.js → validate-CHDG7SC3.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-7FDYRKAC.js → validate-swarm-LB7GORKE.js} +2 -2
- package/dist/cli/chunks/{vibium-FUESVL6F.js → vibium-ZMC4G2YA.js} +2 -2
- package/dist/cli/chunks/visual-security-ITKF4E4Z.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-DNSKYDCS.js → web-tree-sitter-THNO6S2V.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-YA244VF3.js → windsurf-installer-LRB43BPX.js} +2 -2
- package/dist/cli/chunks/{witness-chain-SGGPG6VR.js → witness-chain-JC5UBXPM.js} +2 -2
- package/dist/cli/chunks/witness-chain-SYFYXQD3.js +2 -0
- package/dist/cli/chunks/{workflow-TCQSFBBE.js → workflow-Q4IYQ6F2.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-GZS2O3KW.js +2 -0
- package/dist/cli/chunks/{wrappers-44R4HXVW.js → wrappers-WSSLMFSE.js} +2 -2
- package/dist/cli/commands/claude-flow-setup.js +1 -29
- package/dist/cli/commands/llm-router.js +3 -3
- package/dist/coordination/consensus/providers/claude-provider.d.ts +3 -3
- package/dist/coordination/consensus/providers/claude-provider.js +6 -3
- package/dist/coordination/task-executor.js +5 -5
- package/dist/domains/chaos-resilience/services/chaos-engineer.js +3 -3
- package/dist/domains/code-intelligence/services/knowledge-graph.js +5 -5
- package/dist/domains/constants.d.ts +3 -3
- package/dist/domains/constants.js +3 -3
- package/dist/domains/contract-testing/services/contract-validator.js +3 -3
- package/dist/domains/coverage-analysis/services/coverage-analyzer.js +5 -5
- package/dist/domains/coverage-analysis/services/gap-detector.js +5 -5
- package/dist/domains/defect-intelligence/services/defect-predictor.js +5 -5
- package/dist/domains/defect-intelligence/services/root-cause-analyzer.js +5 -5
- package/dist/domains/learning-optimization/services/learning-coordinator.js +3 -3
- package/dist/domains/quality-assessment/services/deployment-advisor.js +5 -5
- package/dist/domains/quality-assessment/services/quality-analyzer.js +5 -5
- package/dist/domains/requirements-validation/services/requirements-validator.js +5 -5
- package/dist/domains/security-compliance/services/scanners/sast-scanner.js +5 -5
- package/dist/domains/test-execution/services/test-executor.js +3 -3
- package/dist/domains/test-generation/services/test-generator.js +5 -5
- package/dist/domains/visual-accessibility/services/visual-tester.js +3 -3
- package/dist/init/init-wizard-steps.js +1 -1
- package/dist/init/kiro-installer.js +8 -8
- package/dist/init/phases/12-verification.js +1 -1
- package/dist/init/settings-merge.js +2 -0
- package/dist/integrations/agentic-flow/model-router/types.js +8 -8
- package/dist/mcp/bundle.js +204 -204
- package/dist/mcp/security/sampling-server.js +1 -1
- package/dist/routing/advisor/multi-model-executor.d.ts +6 -2
- package/dist/routing/advisor/multi-model-executor.js +19 -3
- package/dist/routing/security/cyber-pin.d.ts +58 -0
- package/dist/routing/security/cyber-pin.js +75 -0
- package/dist/shared/llm/cost-tracker.js +5 -0
- package/dist/shared/llm/effort-resolver.d.ts +79 -0
- package/dist/shared/llm/effort-resolver.js +128 -0
- package/dist/shared/llm/interfaces.d.ts +11 -1
- package/dist/shared/llm/metrics/cost-metrics.js +1 -1
- package/dist/shared/llm/model-mapping.js +31 -0
- package/dist/shared/llm/model-registry.d.ts +40 -0
- package/dist/shared/llm/model-registry.js +126 -2
- package/dist/shared/llm/provider-manager.js +1 -1
- package/dist/shared/llm/providers/bedrock.js +9 -7
- package/dist/shared/llm/providers/claude.js +31 -4
- package/dist/shared/llm/router/agent-router-config.js +16 -16
- package/dist/shared/llm/router/hybrid-router.js +18 -1
- package/dist/shared/llm/router/routing-rules.js +9 -9
- package/dist/shared/llm/router/types.js +29 -29
- package/dist/shared/llm/translation/message-formatter.js +3 -3
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-LDF6QG2T.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-4BL4TKWF.js +0 -2
- package/dist/cli/chunks/base-KJWQLVQN.js +0 -2
- package/dist/cli/chunks/browser-workflow-CWRD6MPO.js +0 -2
- package/dist/cli/chunks/chunk-5Z3K47TT.js +0 -2
- package/dist/cli/chunks/chunk-7J3CK3UY.js +0 -2
- package/dist/cli/chunks/chunk-C2HPZ65V.js +0 -2
- package/dist/cli/chunks/chunk-GEXHAKJ3.js +0 -2
- package/dist/cli/chunks/chunk-IURQ4SKQ.js +0 -3
- package/dist/cli/chunks/chunk-JDJRCINX.js +0 -2
- package/dist/cli/chunks/claude-flow-setup-NXRU3CZJ.js +0 -2
- package/dist/cli/chunks/client-6QLRJHON.js +0 -2
- package/dist/cli/chunks/cross-domain-router-Z4NI2VT3.js +0 -2
- package/dist/cli/chunks/dream-ICDONOKV.js +0 -2
- package/dist/cli/chunks/esm-node-PH6TIFQ6.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-5BSHU4UF.js +0 -2
- package/dist/cli/chunks/hnsw-index-KX6DATRE.js +0 -2
- package/dist/cli/chunks/hybrid-router-ZKOXVYVB.js +0 -2
- package/dist/cli/chunks/impact-analyzer-KNWIKJVU.js +0 -2
- package/dist/cli/chunks/init-wizard-VKUUCD2T.js +0 -2
- package/dist/cli/chunks/kernel-LRGVOUOH.js +0 -2
- package/dist/cli/chunks/knowledge-graph-7O4ACKK7.js +0 -2
- package/dist/cli/chunks/load-test-MWJ46OOI.js +0 -2
- package/dist/cli/chunks/memory-backend-XNNH47PJ.js +0 -2
- package/dist/cli/chunks/multi-model-executor-QVV6JZYD.js +0 -14
- package/dist/cli/chunks/protocol-executor-C4VLLOXH.js +0 -2
- package/dist/cli/chunks/provider-manager-MAP3LEV2.js +0 -24
- package/dist/cli/chunks/qe-reasoning-bank-ALMRMCX6.js +0 -2
- package/dist/cli/chunks/queen-coordinator-PJMDHNCR.js +0 -2
- package/dist/cli/chunks/router-5EMK2VI4.js +0 -2
- package/dist/cli/chunks/routing-feedback-GM474EAA.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-L6TVMXZG.js +0 -2
- package/dist/cli/chunks/safe-db-D2JVWU7V.js +0 -2
- package/dist/cli/chunks/schedule-ATMJHEWX.js +0 -2
- package/dist/cli/chunks/scheduler-FFU5HTXP.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-KBGYVHKT.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-CDUAJ4WV.js +0 -2
- package/dist/cli/chunks/unified-memory-H55OLMCH.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-EL4ZOWLV.js +0 -2
- package/dist/cli/chunks/unified-persistence-SW3GZQOI.js +0 -2
- package/dist/cli/chunks/visual-security-7RHKMS2T.js +0 -2
- package/dist/cli/chunks/witness-chain-PBFNSR2Z.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-KQP277ZB.js +0 -2
|
@@ -1,16 +1,16 @@
|
|
|
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 te,b as ne}from"./chunk-
|
|
3
|
-
`).map(
|
|
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.13");process.exit(0)}
|
|
2
|
+
import{a as te,b as ne}from"./chunk-FEGITTAE.js";import{a as k}from"./chunk-CPRYUCPC.js";import{b as ee}from"./chunk-V6UODTBP.js";import{b as E,d as fe}from"./chunk-VCJP7HQG.js";import{a as b,c as T}from"./chunk-3AOWTHLS.js";var he={M:16,efConstruction:200,efSearch:100},P={enabled:!0,pretrainedPatterns:!0,hnswConfig:he,promotionThreshold:3,qualityThreshold:.7,embeddingModel:"auto"},_={mode:"hybrid",confidenceThreshold:.7,feedbackEnabled:!0,cacheEnabled:!0,cacheTTLMs:300*1e3},F={enabled:["pattern-consolidator","coverage-gap-scanner","flaky-test-detector","routing-accuracy-monitor"],intervals:{"pattern-consolidator":1800*1e3,"coverage-gap-scanner":3600*1e3,"flaky-test-detector":7200*1e3,"routing-accuracy-monitor":900*1e3},maxConcurrent:4,daemonAutoStart:!0},N={claudeCode:!0,preCommit:!1,ciIntegration:!1},$={install:!0,installV2:!0,installV3:!0,overwrite:!1},O={enabled:!0,parameters:["hnsw.efSearch","routing.confidenceThreshold","pattern.promotionThreshold","testGen.complexityLimit"],tuningIntervalMs:10080*60*1e3,evaluationPeriodMs:5e3};var L=["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","requirements-validation","code-intelligence","security-compliance","contract-testing","visual-accessibility","chaos-resilience","learning-optimization","enterprise-integration"];function M(){return"3.9.13"}function Fe(i,e){return{version:M(),project:{name:i,root:e,type:"single"},learning:P,routing:_,workers:F,hooks:N,skills:$,autoTuning:O,domains:{enabled:L,disabled:[]},agents:{maxConcurrent:15,defaultTimeout:6e4}}}fe();import{readFileSync as w,existsSync as p,statSync as ye,readdirSync as ve}from"fs";import{join as u,basename as ie,extname as re,relative as V}from"path";var be=[{name:"jest",detect:i=>{let e=["jest.config.js","jest.config.ts","jest.config.mjs","jest.config.cjs"];for(let n of e)if(p(u(i,n)))return{name:"jest",version:A(i,"jest"),configFile:n,confidence:1};let t=S(i);return t?.jest?{name:"jest",version:A(i,"jest"),configFile:"package.json",confidence:.9}:t?.devDependencies?.jest||t?.dependencies?.jest?{name:"jest",version:t.devDependencies?.jest||t.dependencies?.jest,confidence:.7}:null}},{name:"vitest",detect:i=>{let e=["vitest.config.ts","vitest.config.js","vitest.config.mts","vite.config.ts"];for(let n of e)if(p(u(i,n)))return{name:"vitest",version:A(i,"vitest"),configFile:n,confidence:1};let t=S(i);return t?.devDependencies?.vitest||t?.dependencies?.vitest?{name:"vitest",version:t.devDependencies?.vitest,confidence:.8}:null}},{name:"mocha",detect:i=>{let e=[".mocharc.js",".mocharc.json",".mocharc.yaml",".mocharc.yml"];for(let n of e)if(p(u(i,n)))return{name:"mocha",version:A(i,"mocha"),configFile:n,confidence:1};let t=S(i);return t?.devDependencies?.mocha?{name:"mocha",version:t.devDependencies?.mocha,confidence:.8}:null}},{name:"pytest",detect:i=>{let e=["pytest.ini","pyproject.toml","setup.cfg"];for(let n of e){let r=u(i,n);if(p(r))try{let s=w(r,"utf-8");if(s.includes("[pytest]")||s.includes("[tool.pytest]"))return{name:"pytest",configFile:n,confidence:1}}catch(s){console.debug("[ProjectAnalyzer] Config read failed:",s instanceof Error?s.message:s)}}let t=u(i,"requirements.txt");if(p(t))try{if(w(t,"utf-8").includes("pytest"))return{name:"pytest",configFile:"requirements.txt",confidence:.8}}catch(n){console.debug("[ProjectAnalyzer] requirements.txt read failed:",n instanceof Error?n.message:n)}return null}},{name:"playwright",detect:i=>{let e=["playwright.config.ts","playwright.config.js"];for(let n of e)if(p(u(i,n)))return{name:"playwright",version:A(i,"@playwright/test"),configFile:n,confidence:1};let t=S(i);return t?.devDependencies?.["@playwright/test"]?{name:"playwright",version:t.devDependencies["@playwright/test"],confidence:.8}:null}},{name:"cypress",detect:i=>{let e=["cypress.config.ts","cypress.config.js","cypress.json"];for(let t of e)if(p(u(i,t)))return{name:"cypress",version:A(i,"cypress"),configFile:t,confidence:1};return p(u(i,"cypress"))?{name:"cypress",configFile:"cypress/",confidence:.9}:null}}],ke=[{name:"typescript",extensions:[".ts",".tsx",".mts",".cts"]},{name:"javascript",extensions:[".js",".jsx",".mjs",".cjs"]},{name:"python",extensions:[".py",".pyw"]},{name:"java",extensions:[".java"]},{name:"go",extensions:[".go"]},{name:"rust",extensions:[".rs"]},{name:"csharp",extensions:[".cs"]},{name:"ruby",extensions:[".rb"]},{name:"php",extensions:[".php"]},{name:"kotlin",extensions:[".kt",".kts"]},{name:"swift",extensions:[".swift"]}];function S(i){let e=u(i,"package.json");if(!p(e))return null;try{return E(w(e,"utf-8"))}catch{return null}}function A(i,e){let t=S(i);if(t)return t.devDependencies?.[e]||t.dependencies?.[e]}function Q(i,e,t={}){let{maxDepth:n=10,exclude:r=["node_modules",".git","dist","build","coverage",".next","__pycache__"]}=t;function s(o,a){if(a>n)return;let l;try{l=ve(o)}catch{return}for(let g of l){if(r.includes(g))continue;let c=u(o,g),x;try{x=ye(c)}catch{continue}x.isDirectory()?s(c,a+1):x.isFile()&&e(c)}}s(i,0)}var W=class{projectRoot;constructor(e){this.projectRoot=e}async analyze(){let e=Date.now(),[t,n,r,s,o]=await Promise.all([this.detectFrameworks(),this.detectLanguages(),this.detectExistingTests(),this.analyzeComplexity(),this.measureCoverage()]);return{projectName:S(this.projectRoot)?.name||ie(this.projectRoot),projectRoot:this.projectRoot,projectType:this.detectProjectType(),frameworks:t,languages:n,existingTests:r,codeComplexity:s,coverage:o,packageManager:this.detectPackageManager(),hasTypeScript:p(u(this.projectRoot,"tsconfig.json")),hasCIConfig:this.detectCIConfig(),ciProvider:this.detectCIProvider(),analysisTimestamp:new Date,analysisDurationMs:Date.now()-e}}async detectFrameworks(){let e=[];for(let t of be){let n=t.detect(this.projectRoot);n&&e.push(n)}return e.sort((t,n)=>n.confidence-t.confidence)}async detectLanguages(){let e=new Map,t=0;Q(this.projectRoot,r=>{let s=re(r).toLowerCase();if(s){for(let o of ke)if(o.extensions.includes(s)){let a=e.get(o.name)||{count:0,extensions:new Set};a.count++,a.extensions.add(s),e.set(o.name,a),t++;break}}});let n=[];for(let[r,s]of e)n.push({name:r,percentage:t>0?Math.round(s.count/t*100):0,fileCount:s.count,extensions:Array.from(s.extensions)});return n.sort((r,s)=>s.fileCount-r.fileCount)}async detectExistingTests(){let e={totalCount:0,byFramework:{},byType:{unit:0,integration:0,e2e:0,unknown:0},directories:[]},t=new Set,n=[/\.test\.[jt]sx?$/,/\.spec\.[jt]sx?$/,/_test\.[jt]sx?$/,/test_.*\.py$/,/.*_test\.py$/,/.*_test\.go$/,/.*Test\.java$/];return Q(this.projectRoot,r=>{let s=ie(r);if(n.some(a=>a.test(s))){e.totalCount++;let a=V(this.projectRoot,r).toLowerCase();a.includes("e2e")||a.includes("cypress")||a.includes("playwright")?e.byType.e2e++:a.includes("integration")||a.includes("int-test")?e.byType.integration++:a.includes("unit")||a.includes("__tests__")||a.includes("test/")?e.byType.unit++:e.byType.unknown++;let l=V(this.projectRoot,u(r,".."));t.add(l)}}),e.directories=Array.from(t).slice(0,10),e}async analyzeComplexity(){let e=[],t=[],n=0,r=0;Q(this.projectRoot,a=>{let l=re(a);if([".ts",".tsx",".js",".jsx",".py",".java",".go"].includes(l))try{let g=w(a,"utf-8"),c=this.calculateFileComplexity(g,l);t.push(...c.functionComplexities),c.maxComplexity>n&&(n=c.maxComplexity),r++,c.maxComplexity>10&&e.push(V(this.projectRoot,a))}catch(g){console.debug("[ProjectAnalyzer] Complexity analysis read failed:",g instanceof Error?g.message:g)}});let s=t.reduce((a,l)=>a+l,0),o=t.length>0?s/t.length:0;return{averageCyclomatic:Math.round(o*10)/10,maxCyclomatic:n,totalFiles:r,complexFiles:e.slice(0,20),recommendation:o<5?"simple":o<15?"medium":"complex"}}calculateFileComplexity(e,t){let n=this.stripCommentsAndStrings(e,t),r=this.calculateComplexity(n);return{functionComplexities:[r],maxComplexity:r}}removeDelimitedBlocks(e,t,n){let r="",s=0;for(;s<e.length;){let o=e.indexOf(t,s);if(o===-1){r+=e.slice(s);break}r+=e.slice(s,o);let a=e.indexOf(n,o+t.length);if(a===-1)break;s=a+n.length}return r}stripCommentsAndStrings(e,t){let n=e;return[".ts",".tsx",".js",".jsx",".java",".go"].includes(t)?(n=n.split(`
|
|
3
|
+
`).map(r=>{let s=r.indexOf("//");return s>=0?r.slice(0,s):r}).join(`
|
|
4
4
|
`),n=this.removeDelimitedBlocks(n,"/*","*/"),n=this.removeDelimitedBlocks(n,"`","`"),n=this.removeDelimitedBlocks(n,'"','"'),n=this.removeDelimitedBlocks(n,"'","'")):t===".py"&&(n=n.split(`
|
|
5
|
-
`).map(
|
|
6
|
-
`),n=this.removeDelimitedBlocks(n,'"""','"""'),n=this.removeDelimitedBlocks(n,"'''","'''"),n=this.removeDelimitedBlocks(n,'"','"'),n=this.removeDelimitedBlocks(n,"'","'")),n}calculateComplexity(e){let t=1,n=[{pattern:/(?<![a-zA-Z])if\s*\(/g,name:"if"},{pattern:/\bfor\s*\(/g,name:"for"},{pattern:/\bwhile\s*\(/g,name:"while"},{pattern:/\bcase\s+[^:]+:/g,name:"case"},{pattern:/\bcatch\s*\(/g,name:"catch"},{pattern:/&&/g,name:"&&"},{pattern:/\|\|/g,name:"||"},{pattern:/\?[^?:]+:/g,name:"ternary"},{pattern:/\belif\s+/g,name:"elif"},{pattern:/\bexcept\s*(?:\w+)?:/g,name:"except"},{pattern:/\bfor\s+\w+\s+in\s+/g,name:"for-in"},{pattern:/\bselect\s*\{/g,name:"select"}];for(let{pattern:i}of n){let s=e.match(i);s&&(t+=s.length)}return t}async measureCoverage(){let e=["coverage/lcov-report/index.html","coverage/coverage-summary.json","coverage/clover.xml","coverage/lcov.info","htmlcov/index.html"];for(let t of e){let n=u(this.projectRoot,t);if(p(n)){if(t.endsWith(".json"))try{let s=E(w(n,"utf-8")).total||{};return{lines:s.lines?.pct||0,branches:s.branches?.pct||0,functions:s.functions?.pct||0,statements:s.statements?.pct||0,hasReport:!0,reportPath:t}}catch(i){console.debug("[ProjectAnalyzer] Coverage report parse failed:",i instanceof Error?i.message:i)}return{lines:0,branches:0,functions:0,statements:0,hasReport:!0,reportPath:t}}}return{lines:0,branches:0,functions:0,statements:0,hasReport:!1}}detectProjectType(){if(p(u(this.projectRoot,"lerna.json"))||p(u(this.projectRoot,"pnpm-workspace.yaml"))||p(u(this.projectRoot,"packages")))return"monorepo";let e=S(this.projectRoot);return e?.workspaces?"monorepo":e?.main||e?.module||e?.exports?"library":"single"}detectPackageManager(){return p(u(this.projectRoot,"bun.lockb"))?"bun":p(u(this.projectRoot,"pnpm-lock.yaml"))?"pnpm":p(u(this.projectRoot,"yarn.lock"))?"yarn":p(u(this.projectRoot,"package-lock.json"))?"npm":"unknown"}detectCIConfig(){return[".github/workflows",".gitlab-ci.yml","Jenkinsfile",".circleci/config.yml",".travis.yml","azure-pipelines.yml"].some(t=>p(u(this.projectRoot,t)))}detectCIProvider(){if(p(u(this.projectRoot,".github/workflows")))return"github-actions";if(p(u(this.projectRoot,".gitlab-ci.yml")))return"gitlab-ci";if(p(u(this.projectRoot,"Jenkinsfile")))return"jenkins";if(p(u(this.projectRoot,".circleci/config.yml")))return"circleci";if(this.detectCIConfig())return"other"}};function Me(r){return new W(r)}var se=[{name:"typescript-vitest",condition:r=>r.hasTypeScript&&r.frameworks.some(e=>e.name==="vitest"),apply:r=>{r.learning.embeddingModel="transformer",r.routing.confidenceThreshold=.75}},{name:"large-codebase",condition:r=>r.codeComplexity.totalFiles>500,apply:r=>{r.learning.hnswConfig.M=32,r.learning.hnswConfig.efConstruction=400,r.learning.hnswConfig.efSearch=200,r.agents.maxConcurrent=15}},{name:"small-project",condition:r=>r.codeComplexity.totalFiles<50,apply:r=>{r.learning.hnswConfig.M=8,r.learning.hnswConfig.efConstruction=100,r.workers.enabled=["pattern-consolidator","routing-accuracy-monitor"],r.workers.maxConcurrent=2,r.agents.maxConcurrent=5}},{name:"high-complexity",condition:r=>r.codeComplexity.recommendation==="complex",apply:r=>{r.autoTuning.parameters.push("complexity.analysisDepth"),r.domains.enabled=L}},{name:"low-coverage",condition:r=>r.coverage.hasReport&&r.coverage.lines<50,apply:r=>{r.workers.enabled.push("coverage-gap-scanner"),r.workers.intervals["coverage-gap-scanner"]=1800*1e3}},{name:"monorepo",condition:r=>r.projectType==="monorepo",apply:r=>{r.agents.maxConcurrent=15,r.workers.maxConcurrent=6,r.domains.enabled=[...new Set([...r.domains.enabled,"code-intelligence"])]}},{name:"has-e2e",condition:r=>r.frameworks.some(e=>["playwright","cypress"].includes(e.name))||r.existingTests.byType.e2e>0,apply:r=>{r.domains.enabled=[...new Set([...r.domains.enabled,"visual-accessibility","chaos-resilience"])]}},{name:"has-ci",condition:r=>r.hasCIConfig,apply:r=>{r.hooks.ciIntegration=!0,r.domains.enabled=[...new Set([...r.domains.enabled,"quality-assessment"])]}},{name:"github-actions",condition:r=>r.ciProvider==="github-actions",apply:r=>{r.hooks.ciIntegration=!0,r.hooks.claudeCode=!0}},{name:"python-project",condition:r=>r.languages.some(e=>e.name==="python"&&e.percentage>30),apply:r=>{r.routing.mode="hybrid",r.domains.enabled=[...new Set([...r.domains.enabled,"security-compliance"])]}},{name:"java-project",condition:r=>r.languages.some(e=>e.name==="java"&&e.percentage>30),apply:r=>{r.agents.defaultTimeout=12e4}},{name:"no-tests",condition:r=>r.existingTests.totalCount===0,apply:r=>{r.workers.enabled=["pattern-consolidator"],r.learning.qualityThreshold=.5,r.learning.promotionThreshold=2}},{name:"many-tests",condition:r=>r.existingTests.totalCount>500,apply:r=>{r.workers.enabled=[...new Set([...r.workers.enabled,"flaky-test-detector"])],r.domains.enabled=[...new Set([...r.domains.enabled,"test-execution"])]}},{name:"security-focus",condition:r=>r.codeComplexity.totalFiles>100,apply:r=>{r.domains.enabled=[...new Set([...r.domains.enabled,"security-compliance"])]}}],z=class{rules;constructor(e={}){this.rules=e.minimal?se.filter(t=>["typescript-vitest","large-codebase","small-project"].includes(t.name)):[...se,...e.customRules||[]]}recommend(e){let t={version:M(),project:{name:e.projectName,root:e.projectRoot,type:e.projectType==="unknown"?"single":e.projectType},learning:this.recommendLearning(e),routing:this.recommendRouting(e),workers:this.recommendWorkers(e),hooks:this.recommendHooks(e),skills:this.recommendSkills(e),autoTuning:this.recommendAutoTuning(e),domains:{enabled:this.recommendDomains(e),disabled:[]},agents:{maxConcurrent:this.recommendMaxAgents(e),defaultTimeout:6e4}},n=[];for(let i of this.rules)i.condition(e)&&(i.apply(t,e),n.push(i.name));return t.domains.enabled=[...new Set(t.domains.enabled)],t.workers.enabled=[...new Set(t.workers.enabled)],t}getApplicableRules(e){return this.rules.filter(t=>t.condition(e)).map(t=>t.name)}recommendLearning(e){let t={...P};return e.codeComplexity.totalFiles>1e3?t.hnswConfig={M:32,efConstruction:400,efSearch:200}:e.codeComplexity.totalFiles<100&&(t.hnswConfig={M:8,efConstruction:100,efSearch:50}),e.languages.some(n=>["typescript","javascript"].includes(n.name))&&(t.embeddingModel="transformer"),t}recommendRouting(e){let t={..._};return e.codeComplexity.recommendation==="simple"?t.mode="rules":e.codeComplexity.recommendation==="complex"?t.mode="ml":t.mode="hybrid",t}recommendWorkers(e){let t={...F},n=new Set(["pattern-consolidator","routing-accuracy-monitor"]);return(!e.coverage.hasReport||e.coverage.lines<70)&&n.add("coverage-gap-scanner"),e.existingTests.totalCount>100&&n.add("flaky-test-detector"),t.enabled=Array.from(n),e.codeComplexity.totalFiles>500?t.maxConcurrent=6:e.codeComplexity.totalFiles<50&&(t.maxConcurrent=2),t}recommendHooks(e){let t={...N};return t.ciIntegration=e.hasCIConfig,t.preCommit=e.existingTests.totalCount>50,t}recommendSkills(e){let t={...$};return t.install=!0,t.installV2=!0,t.installV3=!0,t}recommendAutoTuning(e){let t={...O};return e.codeComplexity.totalFiles<20&&(t.enabled=!1),t}recommendDomains(e){return["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","requirements-validation","code-intelligence","security-compliance","contract-testing","visual-accessibility","chaos-resilience","learning-optimization"]}recommendMaxAgents(e){return e.projectType==="monorepo"?15:e.codeComplexity.totalFiles>500?12:e.codeComplexity.totalFiles>100?8:5}};function ze(r){return new z(r)}var xe=[/\baqe\b/i,/\bagentic-qe\b/i,/\bnpx\s+agentic-qe\b/i,/\bnpx\s+@anthropics\/agentic-qe\b/i,/brain-checkpoint\.cjs/i,/\.claude\/helpers\//i];function Se(r){let e=r;return!e?.hooks||!Array.isArray(e.hooks)?!1:e.hooks.some(t=>!t.command||typeof t.command!="string"?!1:xe.some(n=>n.test(t.command)))}function Ue(r,e){let t={};for(let[n,i]of Object.entries(e)){let s=r[n]||[],o=Array.isArray(s)?s.filter(a=>!Se(a)):[];t[n]=[...i,...o]}for(let[n,i]of Object.entries(r))t[n]||(t[n]=i);return t}function He(r){let e=r.domains?.enabled||[];return{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_MEMORY_ENABLED:"true",AQE_LEARNING_ENABLED:r.learning?.enabled?"true":"false",AQE_V3_MODE:"true",AQE_V3_DDD_ENABLED:"true",AQE_V3_DOMAINS:e.join(","),AQE_V3_SWARM_SIZE:String(r.agents?.maxConcurrent??15),AQE_V3_TOPOLOGY:"hierarchical",AQE_V3_SUBLINEAR_ENABLED:"true",AQE_V3_HNSW_ENABLED:r.learning?.hnswConfig?"true":"false",AQE_V3_HOOKS_ENABLED:"true",AQE_V3_AISP_ENABLED:"true",AQE_V3_REASONING_BANK:".agentic-qe/memory.db",AQE_V3_PATTERN_PROMOTION_THRESHOLD:String(r.learning?.promotionThreshold??3),AQE_V3_SUCCESS_RATE_THRESHOLD:String(r.learning?.qualityThreshold??.7)}}function Be(r,e){let t=r.domains?.enabled||[];return{aqe:{version:r.version??"3.0.0",initialized:new Date().toISOString(),hooksConfigured:!0},statusLine:{type:"command",command:`sh -c 'node "\${CLAUDE_PROJECT_DIR:-.}/.claude/helpers/statusline-v3.cjs" 2>/dev/null || echo "\u258A Agentic QE v3"'`,refreshMs:5e3,enabled:!0},_aqePermissions:["Bash(npx agentic-qe:*)","Bash(npx @anthropics/agentic-qe:*)","mcp__agentic-qe__*"],includeCoAuthoredBy:!0,v3Configuration:{domains:{total:t.length,names:t},swarm:{totalAgents:r.agents?.maxConcurrent??15,topology:"hierarchical",coordination:"queen-led"}},v3Learning:{enabled:r.learning?.enabled??!0,reasoningBank:{dbPath:".agentic-qe/memory.db",enableHNSW:!!r.learning?.hnswConfig},patternPromotion:{threshold:r.learning?.promotionThreshold??3,successRateMin:r.learning?.qualityThreshold??.7}}}}T();import{existsSync as h,mkdirSync as j,readdirSync as R,statSync as G,readFileSync as Ae,writeFileSync as Ce,copyFileSync as we,unlinkSync as De,rmdirSync as je}from"fs";import{join as m}from"path";var U=["qe-test-generation","qe-test-execution","qe-coverage-analysis","qe-quality-assessment","qe-defect-intelligence","qe-requirements-validation","qe-code-intelligence","qe-browser","pentest-validation","qe-visual-accessibility","qe-chaos-resilience","qe-learning-optimization","qe-iterative-loop","strict-tdd","no-skip","coverage-guard","freeze-tests","security-watch","skill-stats","test-failure-investigator","coverage-drop-investigator","e2e-flow-verifier","test-metrics-dashboard"],H=["v3-core-implementation","v3-cli-modernization","v3-ddd-architecture","v3-integration-deep","v3-mcp-optimization","v3-memory-unification","v3-performance-optimization","v3-security-overhaul","v3-swarm-coordination","v3-qe-core-implementation","v3-qe-ddd-architecture","v3-qe-cli","v3-qe-memory-system","v3-qe-performance","v3-qe-security","v3-qe-mcp","v3-qe-mcp-optimization","v3-qe-memory-unification","v3-qe-integration","v3-qe-agentic-flow-integration","v3-qe-fleet-coordination","agentdb-advanced","agentdb-learning","agentdb-memory-patterns","agentdb-optimization","agentdb-vector-search","github-code-review","github-multi-repo","github-project-management","github-release-management","github-workflow-automation","flow-nexus-neural","flow-nexus-platform","flow-nexus-swarm","reasoningbank-agentdb","reasoningbank-intelligence","swarm-orchestration","swarm-advanced","sparc-methodology","hooks-automation","hive-mind-advanced","stream-chain","agentic-jujutsu","iterative-loop","performance-analysis","skill-builder","qe-agentic-flow-integration","release"],Re=["qe-contract-testing","qe-security-compliance","aqe-v2-v3-migration"],B=class{projectRoot;options;sourceSkillsDir;constructor(e){this.projectRoot=e.projectRoot,this.options={installV2Skills:!0,installV3Skills:!0,overwrite:!1,exclude:[],include:void 0,...e},this.sourceSkillsDir=this.findSourceSkillsDir()}findSourceSkillsDir(){let e=b(import.meta.url),t=[];e&&(t.push(m(e,"assets/skills")),t.push(m(e,".claude/skills"))),t.push(m(this.projectRoot,"node_modules/agentic-qe/assets/skills"));for(let n of t)if(h(n))return n;return t[0]}async install(){let e={installed:[],skipped:[],removed:[],errors:[],totalCount:0,skillsDir:m(this.projectRoot,".claude","skills"),validationInstalled:!1};if(!h(this.sourceSkillsDir))return e.errors.push(`Source skills directory not found: ${this.sourceSkillsDir}`),e;let t=m(this.projectRoot,".claude","skills");h(t)||j(t,{recursive:!0});let n=this.getAvailableSkills();e.totalCount=n.length;let i=this.filterSkills(n);for(let s of i)try{let o=await this.installSkill(s,t);o?e.installed.push(o):e.skipped.push(s)}catch(o){e.errors.push(`Failed to install ${s}: ${k(o)}`)}return this.options.overwrite&&(e.removed=this.removeDeprecatedSkills(t)),e.validationInstalled=this.installValidationInfrastructure(t),await this.createSkillsIndex(t,e.installed),e}installValidationInfrastructure(e){let t=m(this.sourceSkillsDir,".validation"),n=m(e,".validation");if(!h(t))return console.debug("[SkillsInstaller] Validation infrastructure not found in source"),!1;if(h(n)&&!this.options.overwrite)return console.debug("[SkillsInstaller] Validation infrastructure already exists, skipping"),!0;try{return h(n)||j(n,{recursive:!0}),this.copyDirectoryRecursive(t,n),console.debug("[SkillsInstaller] Validation infrastructure installed successfully"),!0}catch(i){return console.error("[SkillsInstaller] Failed to install validation infrastructure:",i instanceof Error?i.message:i),!1}}removeDeprecatedSkills(e){let t=[];for(let n of Re){let i=m(e,n);if(h(i))try{this.removeDirectoryRecursive(i),t.push(n)}catch(s){console.error(`[SkillsInstaller] Failed to remove deprecated skill ${n}:`,s instanceof Error?s.message:s)}}return t.length>0&&console.debug(`[SkillsInstaller] Removed ${t.length} deprecated skills: ${t.join(", ")}`),t}removeDirectoryRecursive(e){let t=R(e,{withFileTypes:!0});for(let n of t){let i=m(e,n.name);n.isDirectory()?this.removeDirectoryRecursive(i):De(i)}je(e)}getAvailableSkills(){try{return R(this.sourceSkillsDir).filter(t=>{let n=m(this.sourceSkillsDir,t);return G(n).isDirectory()&&!t.startsWith(".")})}catch{return[]}}filterSkills(e){let t=e;return t=t.filter(n=>!H.includes(n)),this.options.include&&this.options.include.length>0&&(t=t.filter(n=>this.options.include.includes(n))),this.options.exclude&&this.options.exclude.length>0&&(t=t.filter(n=>!this.options.exclude.some(i=>n.includes(i)||n.match(new RegExp(i))))),this.options.installV3Skills||(t=t.filter(n=>!U.includes(n))),this.options.installV2Skills||(t=t.filter(n=>U.includes(n))),t}async installSkill(e,t){let n=m(this.sourceSkillsDir,e),i=m(t,e);if(h(i)&&!this.options.overwrite)return null;h(i)||j(i,{recursive:!0}),this.copyDirectoryRecursive(n,i);let s=this.getSkillType(e),o=this.getSkillDescription(i),a=h(m(i,"resources"));return{name:e,type:s,description:o,hasResources:a}}copyDirectoryRecursive(e,t){let n=R(e);for(let i of n){let s=m(e,i),o=m(t,i);G(s).isDirectory()?(h(o)||j(o,{recursive:!0}),this.copyDirectoryRecursive(s,o)):we(s,o)}}getSkillType(e){return U.includes(e)?"v3-domain":"v2-methodology"}getSkillDescription(e){let t=m(e,"SKILL.md");if(h(t))try{let n=Ae(t,"utf-8"),i=n.match(/description:\s*["']?([^"'\n]+)["']?/i);if(i)return i[1].trim();let s=n.split(`
|
|
7
|
-
`);for(let o of s){let a=o.trim();if(a&&!a.startsWith("#")&&!a.startsWith("-")&&!a.startsWith("```"))return a.slice(0,100)+(a.length>100?"...":"")}}catch(n){console.debug("[SkillsInstaller] Failed to read skill description:",n instanceof Error?n.message:n)}}async createSkillsIndex(e,t){let n=this.scanSkillsDirectory(e),
|
|
5
|
+
`).map(r=>{let s=r.indexOf("#");return s>=0?r.slice(0,s):r}).join(`
|
|
6
|
+
`),n=this.removeDelimitedBlocks(n,'"""','"""'),n=this.removeDelimitedBlocks(n,"'''","'''"),n=this.removeDelimitedBlocks(n,'"','"'),n=this.removeDelimitedBlocks(n,"'","'")),n}calculateComplexity(e){let t=1,n=[{pattern:/(?<![a-zA-Z])if\s*\(/g,name:"if"},{pattern:/\bfor\s*\(/g,name:"for"},{pattern:/\bwhile\s*\(/g,name:"while"},{pattern:/\bcase\s+[^:]+:/g,name:"case"},{pattern:/\bcatch\s*\(/g,name:"catch"},{pattern:/&&/g,name:"&&"},{pattern:/\|\|/g,name:"||"},{pattern:/\?[^?:]+:/g,name:"ternary"},{pattern:/\belif\s+/g,name:"elif"},{pattern:/\bexcept\s*(?:\w+)?:/g,name:"except"},{pattern:/\bfor\s+\w+\s+in\s+/g,name:"for-in"},{pattern:/\bselect\s*\{/g,name:"select"}];for(let{pattern:r}of n){let s=e.match(r);s&&(t+=s.length)}return t}async measureCoverage(){let e=["coverage/lcov-report/index.html","coverage/coverage-summary.json","coverage/clover.xml","coverage/lcov.info","htmlcov/index.html"];for(let t of e){let n=u(this.projectRoot,t);if(p(n)){if(t.endsWith(".json"))try{let s=E(w(n,"utf-8")).total||{};return{lines:s.lines?.pct||0,branches:s.branches?.pct||0,functions:s.functions?.pct||0,statements:s.statements?.pct||0,hasReport:!0,reportPath:t}}catch(r){console.debug("[ProjectAnalyzer] Coverage report parse failed:",r instanceof Error?r.message:r)}return{lines:0,branches:0,functions:0,statements:0,hasReport:!0,reportPath:t}}}return{lines:0,branches:0,functions:0,statements:0,hasReport:!1}}detectProjectType(){if(p(u(this.projectRoot,"lerna.json"))||p(u(this.projectRoot,"pnpm-workspace.yaml"))||p(u(this.projectRoot,"packages")))return"monorepo";let e=S(this.projectRoot);return e?.workspaces?"monorepo":e?.main||e?.module||e?.exports?"library":"single"}detectPackageManager(){return p(u(this.projectRoot,"bun.lockb"))?"bun":p(u(this.projectRoot,"pnpm-lock.yaml"))?"pnpm":p(u(this.projectRoot,"yarn.lock"))?"yarn":p(u(this.projectRoot,"package-lock.json"))?"npm":"unknown"}detectCIConfig(){return[".github/workflows",".gitlab-ci.yml","Jenkinsfile",".circleci/config.yml",".travis.yml","azure-pipelines.yml"].some(t=>p(u(this.projectRoot,t)))}detectCIProvider(){if(p(u(this.projectRoot,".github/workflows")))return"github-actions";if(p(u(this.projectRoot,".gitlab-ci.yml")))return"gitlab-ci";if(p(u(this.projectRoot,"Jenkinsfile")))return"jenkins";if(p(u(this.projectRoot,".circleci/config.yml")))return"circleci";if(this.detectCIConfig())return"other"}};function Me(i){return new W(i)}var se=[{name:"typescript-vitest",condition:i=>i.hasTypeScript&&i.frameworks.some(e=>e.name==="vitest"),apply:i=>{i.learning.embeddingModel="transformer",i.routing.confidenceThreshold=.75}},{name:"large-codebase",condition:i=>i.codeComplexity.totalFiles>500,apply:i=>{i.learning.hnswConfig.M=32,i.learning.hnswConfig.efConstruction=400,i.learning.hnswConfig.efSearch=200,i.agents.maxConcurrent=15}},{name:"small-project",condition:i=>i.codeComplexity.totalFiles<50,apply:i=>{i.learning.hnswConfig.M=8,i.learning.hnswConfig.efConstruction=100,i.workers.enabled=["pattern-consolidator","routing-accuracy-monitor"],i.workers.maxConcurrent=2,i.agents.maxConcurrent=5}},{name:"high-complexity",condition:i=>i.codeComplexity.recommendation==="complex",apply:i=>{i.autoTuning.parameters.push("complexity.analysisDepth"),i.domains.enabled=L}},{name:"low-coverage",condition:i=>i.coverage.hasReport&&i.coverage.lines<50,apply:i=>{i.workers.enabled.push("coverage-gap-scanner"),i.workers.intervals["coverage-gap-scanner"]=1800*1e3}},{name:"monorepo",condition:i=>i.projectType==="monorepo",apply:i=>{i.agents.maxConcurrent=15,i.workers.maxConcurrent=6,i.domains.enabled=[...new Set([...i.domains.enabled,"code-intelligence"])]}},{name:"has-e2e",condition:i=>i.frameworks.some(e=>["playwright","cypress"].includes(e.name))||i.existingTests.byType.e2e>0,apply:i=>{i.domains.enabled=[...new Set([...i.domains.enabled,"visual-accessibility","chaos-resilience"])]}},{name:"has-ci",condition:i=>i.hasCIConfig,apply:i=>{i.hooks.ciIntegration=!0,i.domains.enabled=[...new Set([...i.domains.enabled,"quality-assessment"])]}},{name:"github-actions",condition:i=>i.ciProvider==="github-actions",apply:i=>{i.hooks.ciIntegration=!0,i.hooks.claudeCode=!0}},{name:"python-project",condition:i=>i.languages.some(e=>e.name==="python"&&e.percentage>30),apply:i=>{i.routing.mode="hybrid",i.domains.enabled=[...new Set([...i.domains.enabled,"security-compliance"])]}},{name:"java-project",condition:i=>i.languages.some(e=>e.name==="java"&&e.percentage>30),apply:i=>{i.agents.defaultTimeout=12e4}},{name:"no-tests",condition:i=>i.existingTests.totalCount===0,apply:i=>{i.workers.enabled=["pattern-consolidator"],i.learning.qualityThreshold=.5,i.learning.promotionThreshold=2}},{name:"many-tests",condition:i=>i.existingTests.totalCount>500,apply:i=>{i.workers.enabled=[...new Set([...i.workers.enabled,"flaky-test-detector"])],i.domains.enabled=[...new Set([...i.domains.enabled,"test-execution"])]}},{name:"security-focus",condition:i=>i.codeComplexity.totalFiles>100,apply:i=>{i.domains.enabled=[...new Set([...i.domains.enabled,"security-compliance"])]}}],z=class{rules;constructor(e={}){this.rules=e.minimal?se.filter(t=>["typescript-vitest","large-codebase","small-project"].includes(t.name)):[...se,...e.customRules||[]]}recommend(e){let t={version:M(),project:{name:e.projectName,root:e.projectRoot,type:e.projectType==="unknown"?"single":e.projectType},learning:this.recommendLearning(e),routing:this.recommendRouting(e),workers:this.recommendWorkers(e),hooks:this.recommendHooks(e),skills:this.recommendSkills(e),autoTuning:this.recommendAutoTuning(e),domains:{enabled:this.recommendDomains(e),disabled:[]},agents:{maxConcurrent:this.recommendMaxAgents(e),defaultTimeout:6e4}},n=[];for(let r of this.rules)r.condition(e)&&(r.apply(t,e),n.push(r.name));return t.domains.enabled=[...new Set(t.domains.enabled)],t.workers.enabled=[...new Set(t.workers.enabled)],t}getApplicableRules(e){return this.rules.filter(t=>t.condition(e)).map(t=>t.name)}recommendLearning(e){let t={...P};return e.codeComplexity.totalFiles>1e3?t.hnswConfig={M:32,efConstruction:400,efSearch:200}:e.codeComplexity.totalFiles<100&&(t.hnswConfig={M:8,efConstruction:100,efSearch:50}),e.languages.some(n=>["typescript","javascript"].includes(n.name))&&(t.embeddingModel="transformer"),t}recommendRouting(e){let t={..._};return e.codeComplexity.recommendation==="simple"?t.mode="rules":e.codeComplexity.recommendation==="complex"?t.mode="ml":t.mode="hybrid",t}recommendWorkers(e){let t={...F},n=new Set(["pattern-consolidator","routing-accuracy-monitor"]);return(!e.coverage.hasReport||e.coverage.lines<70)&&n.add("coverage-gap-scanner"),e.existingTests.totalCount>100&&n.add("flaky-test-detector"),t.enabled=Array.from(n),e.codeComplexity.totalFiles>500?t.maxConcurrent=6:e.codeComplexity.totalFiles<50&&(t.maxConcurrent=2),t}recommendHooks(e){let t={...N};return t.ciIntegration=e.hasCIConfig,t.preCommit=e.existingTests.totalCount>50,t}recommendSkills(e){let t={...$};return t.install=!0,t.installV2=!0,t.installV3=!0,t}recommendAutoTuning(e){let t={...O};return e.codeComplexity.totalFiles<20&&(t.enabled=!1),t}recommendDomains(e){return["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","requirements-validation","code-intelligence","security-compliance","contract-testing","visual-accessibility","chaos-resilience","learning-optimization"]}recommendMaxAgents(e){return e.projectType==="monorepo"?15:e.codeComplexity.totalFiles>500?12:e.codeComplexity.totalFiles>100?8:5}};function ze(i){return new z(i)}var xe=[/\baqe\b/i,/\bagentic-qe\b/i,/\bnpx\s+agentic-qe\b/i,/\bnpx\s+@anthropics\/agentic-qe\b/i,/brain-checkpoint\.cjs/i,/\.claude\/helpers\//i,/\bruflo\b/i,/dist\/cli\/bundle\.js/i];function Se(i){let e=i;return!e?.hooks||!Array.isArray(e.hooks)?!1:e.hooks.some(t=>!t.command||typeof t.command!="string"?!1:xe.some(n=>n.test(t.command)))}function Ue(i,e){let t={};for(let[n,r]of Object.entries(e)){let s=i[n]||[],o=Array.isArray(s)?s.filter(a=>!Se(a)):[];t[n]=[...r,...o]}for(let[n,r]of Object.entries(i))t[n]||(t[n]=r);return t}function He(i){let e=i.domains?.enabled||[];return{AQE_MEMORY_PATH:".agentic-qe/memory.db",AQE_MEMORY_ENABLED:"true",AQE_LEARNING_ENABLED:i.learning?.enabled?"true":"false",AQE_V3_MODE:"true",AQE_V3_DDD_ENABLED:"true",AQE_V3_DOMAINS:e.join(","),AQE_V3_SWARM_SIZE:String(i.agents?.maxConcurrent??15),AQE_V3_TOPOLOGY:"hierarchical",AQE_V3_SUBLINEAR_ENABLED:"true",AQE_V3_HNSW_ENABLED:i.learning?.hnswConfig?"true":"false",AQE_V3_HOOKS_ENABLED:"true",AQE_V3_AISP_ENABLED:"true",AQE_V3_REASONING_BANK:".agentic-qe/memory.db",AQE_V3_PATTERN_PROMOTION_THRESHOLD:String(i.learning?.promotionThreshold??3),AQE_V3_SUCCESS_RATE_THRESHOLD:String(i.learning?.qualityThreshold??.7)}}function Be(i,e){let t=i.domains?.enabled||[];return{aqe:{version:i.version??"3.0.0",initialized:new Date().toISOString(),hooksConfigured:!0},statusLine:{type:"command",command:`sh -c 'node "\${CLAUDE_PROJECT_DIR:-.}/.claude/helpers/statusline-v3.cjs" 2>/dev/null || echo "\u258A Agentic QE v3"'`,refreshMs:5e3,enabled:!0},_aqePermissions:["Bash(npx agentic-qe:*)","Bash(npx @anthropics/agentic-qe:*)","mcp__agentic-qe__*"],includeCoAuthoredBy:!0,v3Configuration:{domains:{total:t.length,names:t},swarm:{totalAgents:i.agents?.maxConcurrent??15,topology:"hierarchical",coordination:"queen-led"}},v3Learning:{enabled:i.learning?.enabled??!0,reasoningBank:{dbPath:".agentic-qe/memory.db",enableHNSW:!!i.learning?.hnswConfig},patternPromotion:{threshold:i.learning?.promotionThreshold??3,successRateMin:i.learning?.qualityThreshold??.7}}}}T();import{existsSync as h,mkdirSync as j,readdirSync as R,statSync as G,readFileSync as Ae,writeFileSync as Ce,copyFileSync as we,unlinkSync as De,rmdirSync as je}from"fs";import{join as m}from"path";var U=["qe-test-generation","qe-test-execution","qe-coverage-analysis","qe-quality-assessment","qe-defect-intelligence","qe-requirements-validation","qe-code-intelligence","qe-browser","pentest-validation","qe-visual-accessibility","qe-chaos-resilience","qe-learning-optimization","qe-iterative-loop","strict-tdd","no-skip","coverage-guard","freeze-tests","security-watch","skill-stats","test-failure-investigator","coverage-drop-investigator","e2e-flow-verifier","test-metrics-dashboard"],H=["v3-core-implementation","v3-cli-modernization","v3-ddd-architecture","v3-integration-deep","v3-mcp-optimization","v3-memory-unification","v3-performance-optimization","v3-security-overhaul","v3-swarm-coordination","v3-qe-core-implementation","v3-qe-ddd-architecture","v3-qe-cli","v3-qe-memory-system","v3-qe-performance","v3-qe-security","v3-qe-mcp","v3-qe-mcp-optimization","v3-qe-memory-unification","v3-qe-integration","v3-qe-agentic-flow-integration","v3-qe-fleet-coordination","agentdb-advanced","agentdb-learning","agentdb-memory-patterns","agentdb-optimization","agentdb-vector-search","github-code-review","github-multi-repo","github-project-management","github-release-management","github-workflow-automation","flow-nexus-neural","flow-nexus-platform","flow-nexus-swarm","reasoningbank-agentdb","reasoningbank-intelligence","swarm-orchestration","swarm-advanced","sparc-methodology","hooks-automation","hive-mind-advanced","stream-chain","agentic-jujutsu","iterative-loop","performance-analysis","skill-builder","qe-agentic-flow-integration","release"],Re=["qe-contract-testing","qe-security-compliance","aqe-v2-v3-migration"],B=class{projectRoot;options;sourceSkillsDir;constructor(e){this.projectRoot=e.projectRoot,this.options={installV2Skills:!0,installV3Skills:!0,overwrite:!1,exclude:[],include:void 0,...e},this.sourceSkillsDir=this.findSourceSkillsDir()}findSourceSkillsDir(){let e=k(import.meta.url),t=[];e&&(t.push(m(e,"assets/skills")),t.push(m(e,".claude/skills"))),t.push(m(this.projectRoot,"node_modules/agentic-qe/assets/skills"));for(let n of t)if(h(n))return n;return t[0]}async install(){let e={installed:[],skipped:[],removed:[],errors:[],totalCount:0,skillsDir:m(this.projectRoot,".claude","skills"),validationInstalled:!1};if(!h(this.sourceSkillsDir))return e.errors.push(`Source skills directory not found: ${this.sourceSkillsDir}`),e;let t=m(this.projectRoot,".claude","skills");h(t)||j(t,{recursive:!0});let n=this.getAvailableSkills();e.totalCount=n.length;let r=this.filterSkills(n);for(let s of r)try{let o=await this.installSkill(s,t);o?e.installed.push(o):e.skipped.push(s)}catch(o){e.errors.push(`Failed to install ${s}: ${b(o)}`)}return this.options.overwrite&&(e.removed=this.removeDeprecatedSkills(t)),e.validationInstalled=this.installValidationInfrastructure(t),await this.createSkillsIndex(t,e.installed),e}installValidationInfrastructure(e){let t=m(this.sourceSkillsDir,".validation"),n=m(e,".validation");if(!h(t))return console.debug("[SkillsInstaller] Validation infrastructure not found in source"),!1;if(h(n)&&!this.options.overwrite)return console.debug("[SkillsInstaller] Validation infrastructure already exists, skipping"),!0;try{return h(n)||j(n,{recursive:!0}),this.copyDirectoryRecursive(t,n),console.debug("[SkillsInstaller] Validation infrastructure installed successfully"),!0}catch(r){return console.error("[SkillsInstaller] Failed to install validation infrastructure:",r instanceof Error?r.message:r),!1}}removeDeprecatedSkills(e){let t=[];for(let n of Re){let r=m(e,n);if(h(r))try{this.removeDirectoryRecursive(r),t.push(n)}catch(s){console.error(`[SkillsInstaller] Failed to remove deprecated skill ${n}:`,s instanceof Error?s.message:s)}}return t.length>0&&console.debug(`[SkillsInstaller] Removed ${t.length} deprecated skills: ${t.join(", ")}`),t}removeDirectoryRecursive(e){let t=R(e,{withFileTypes:!0});for(let n of t){let r=m(e,n.name);n.isDirectory()?this.removeDirectoryRecursive(r):De(r)}je(e)}getAvailableSkills(){try{return R(this.sourceSkillsDir).filter(t=>{let n=m(this.sourceSkillsDir,t);return G(n).isDirectory()&&!t.startsWith(".")})}catch{return[]}}filterSkills(e){let t=e;return t=t.filter(n=>!H.includes(n)),this.options.include&&this.options.include.length>0&&(t=t.filter(n=>this.options.include.includes(n))),this.options.exclude&&this.options.exclude.length>0&&(t=t.filter(n=>!this.options.exclude.some(r=>n.includes(r)||n.match(new RegExp(r))))),this.options.installV3Skills||(t=t.filter(n=>!U.includes(n))),this.options.installV2Skills||(t=t.filter(n=>U.includes(n))),t}async installSkill(e,t){let n=m(this.sourceSkillsDir,e),r=m(t,e);if(h(r)&&!this.options.overwrite)return null;h(r)||j(r,{recursive:!0}),this.copyDirectoryRecursive(n,r);let s=this.getSkillType(e),o=this.getSkillDescription(r),a=h(m(r,"resources"));return{name:e,type:s,description:o,hasResources:a}}copyDirectoryRecursive(e,t){let n=R(e);for(let r of n){let s=m(e,r),o=m(t,r);G(s).isDirectory()?(h(o)||j(o,{recursive:!0}),this.copyDirectoryRecursive(s,o)):we(s,o)}}getSkillType(e){return U.includes(e)?"v3-domain":"v2-methodology"}getSkillDescription(e){let t=m(e,"SKILL.md");if(h(t))try{let n=Ae(t,"utf-8"),r=n.match(/description:\s*["']?([^"'\n]+)["']?/i);if(r)return r[1].trim();let s=n.split(`
|
|
7
|
+
`);for(let o of s){let a=o.trim();if(a&&!a.startsWith("#")&&!a.startsWith("-")&&!a.startsWith("```"))return a.slice(0,100)+(a.length>100?"...":"")}}catch(n){console.debug("[SkillsInstaller] Failed to read skill description:",n instanceof Error?n.message:n)}}async createSkillsIndex(e,t){let n=this.scanSkillsDirectory(e),r=n.filter(c=>!H.includes(c.name)),s=r.filter(c=>c.type==="v2-methodology"),o=r.filter(c=>c.type==="v3-domain"),a=n.filter(c=>H.includes(c.name)),l=h(m(e,".validation")),g=`# AQE Skills Index
|
|
8
8
|
|
|
9
9
|
This directory contains Quality Engineering skills managed by Agentic QE.
|
|
10
10
|
|
|
11
11
|
## Summary
|
|
12
12
|
|
|
13
|
-
- **Total QE Skills**: ${
|
|
13
|
+
- **Total QE Skills**: ${r.length}
|
|
14
14
|
- **V2 Methodology Skills**: ${s.length}
|
|
15
15
|
- **V3 Domain Skills**: ${o.length}
|
|
16
16
|
- **Platform Skills**: ${a.length} (Claude Flow managed)
|
|
@@ -54,12 +54,12 @@ See \`.validation/README.md\` for usage instructions.
|
|
|
54
54
|
---
|
|
55
55
|
|
|
56
56
|
*Generated by AQE v3 init on ${new Date().toISOString()}*
|
|
57
|
-
`;Ce(m(e,"README.md"),g,"utf-8")}scanSkillsDirectory(e){let t=[];try{let n=R(e);for(let
|
|
58
|
-
updated: ${e}`):
|
|
59
|
-
updated: ${e}`,
|
|
60
|
-
${
|
|
61
|
-
---`)}var qe=["qe-test-architect","qe-bdd-generator","qe-property-tester","qe-mutation-tester","qe-test-idea-rewriter","qe-quality-criteria-recommender","qe-parallel-executor","qe-flaky-hunter","qe-retry-handler","qe-coverage-specialist","qe-gap-detector","qe-quality-gate","qe-code-complexity","qe-deployment-advisor","qe-risk-assessor","qe-defect-predictor","qe-regression-analyzer","qe-root-cause-analyzer","qe-impact-analyzer","qe-requirements-validator","qe-qx-partner","qe-product-factors-assessor","qe-code-intelligence","qe-kg-builder","qe-dependency-mapper","qe-security-scanner","qe-security-auditor","qe-pentest-validator","qe-contract-validator","qe-graphql-tester","qe-visual-tester","qe-accessibility-auditor","qe-responsive-tester","qe-chaos-engineer","qe-load-tester","qe-performance-tester","qe-learning-coordinator","qe-pattern-learner","qe-metrics-optimizer","qe-transfer-specialist","qe-soap-tester","qe-sap-rfc-tester","qe-sap-idoc-tester","qe-odata-contract-tester","qe-middleware-validator","qe-message-broker-tester","qe-sod-analyzer","qe-fleet-commander","qe-queen-coordinator","qe-tdd-specialist","qe-integration-tester","qe-integration-architect"],Te=["qe-code-reviewer","qe-integration-reviewer","qe-performance-reviewer","qe-security-reviewer","qe-tdd-red","qe-tdd-green","qe-tdd-refactor"],Y=class{projectRoot;options;sourceAgentsDir;constructor(e){this.projectRoot=e.projectRoot,this.options={installQEAgents:!0,installSubagents:!0,overwrite:!1,exclude:[],include:void 0,...e},this.sourceAgentsDir=this.findSourceAgentsDir()}findSourceAgentsDir(){let e=
|
|
62
|
-
`);for(let s of
|
|
57
|
+
`;Ce(m(e,"README.md"),g,"utf-8")}scanSkillsDirectory(e){let t=[];try{let n=R(e);for(let r of n){if(r.startsWith("."))continue;let s=m(e,r);if(!G(s).isDirectory())continue;let o=m(s,"SKILL.md");if(!h(o))continue;let a=this.getSkillType(r),l=this.getSkillDescription(s),g=h(m(s,"resources"));t.push({name:r,type:a,description:l,hasResources:g})}}catch(n){console.debug("[SkillsInstaller] Failed to scan skills directory:",n instanceof Error?n.message:n)}return t.sort((n,r)=>n.name.localeCompare(r.name))}};function et(i){return new B(i)}T();import{existsSync as f,mkdirSync as D,readdirSync as K,statSync as oe,readFileSync as ae,writeFileSync as le,copyFileSync as J}from"fs";import{join as d}from"path";function Ie(i){let e=new Date().toISOString().slice(0,10),t=i.match(/^---\n([\s\S]*?)\n---/);if(!t)return i;let n=t[1],r;return/^updated:/m.test(n)?r=n.replace(/^updated:.*$/m,`updated: ${e}`):/^created:/m.test(n)?r=n.replace(/^(created:.*$)/m,`$1
|
|
58
|
+
updated: ${e}`):r=n+`
|
|
59
|
+
updated: ${e}`,i.replace(/^---\n[\s\S]*?\n---/,`---
|
|
60
|
+
${r}
|
|
61
|
+
---`)}var qe=["qe-test-architect","qe-bdd-generator","qe-property-tester","qe-mutation-tester","qe-test-idea-rewriter","qe-quality-criteria-recommender","qe-parallel-executor","qe-flaky-hunter","qe-retry-handler","qe-coverage-specialist","qe-gap-detector","qe-quality-gate","qe-code-complexity","qe-deployment-advisor","qe-risk-assessor","qe-defect-predictor","qe-regression-analyzer","qe-root-cause-analyzer","qe-impact-analyzer","qe-requirements-validator","qe-qx-partner","qe-product-factors-assessor","qe-code-intelligence","qe-kg-builder","qe-dependency-mapper","qe-security-scanner","qe-security-auditor","qe-pentest-validator","qe-contract-validator","qe-graphql-tester","qe-visual-tester","qe-accessibility-auditor","qe-responsive-tester","qe-chaos-engineer","qe-load-tester","qe-performance-tester","qe-learning-coordinator","qe-pattern-learner","qe-metrics-optimizer","qe-transfer-specialist","qe-soap-tester","qe-sap-rfc-tester","qe-sap-idoc-tester","qe-odata-contract-tester","qe-middleware-validator","qe-message-broker-tester","qe-sod-analyzer","qe-fleet-commander","qe-queen-coordinator","qe-tdd-specialist","qe-integration-tester","qe-integration-architect"],Te=["qe-code-reviewer","qe-integration-reviewer","qe-performance-reviewer","qe-security-reviewer","qe-tdd-red","qe-tdd-green","qe-tdd-refactor"],Y=class{projectRoot;options;sourceAgentsDir;constructor(e){this.projectRoot=e.projectRoot,this.options={installQEAgents:!0,installSubagents:!0,overwrite:!1,exclude:[],include:void 0,...e},this.sourceAgentsDir=this.findSourceAgentsDir()}findSourceAgentsDir(){let e=k(import.meta.url),t=[];e&&(t.push(d(e,"assets/agents/v3")),t.push(d(e,".claude/agents/v3"))),t.push(d(this.projectRoot,"node_modules/agentic-qe/assets/agents/v3"));for(let n of t)if(f(n))return n;return t[0]}preserveOverridesDir(){let e=d(this.projectRoot,".claude","agent-overrides");f(e)||D(e,{recursive:!0});let t=d(e,"_example.yaml");if(!f(t))try{let n=k(import.meta.url),r=[...n?[d(n,"assets","templates","agent-override-example.yaml")]:[],d(this.projectRoot,"node_modules","agentic-qe","assets","templates","agent-override-example.yaml")];for(let s of r)if(f(s)){J(s,t);break}}catch{}}async install(){let e={installed:[],skipped:[],errors:[],totalCount:0,agentsDir:d(this.projectRoot,".claude","agents","v3"),overlaysApplied:[],overlayWarnings:[]};if(this.preserveOverridesDir(),!f(this.sourceAgentsDir))return e.errors.push(`Source agents directory not found: ${this.sourceAgentsDir}`),e;let t=d(this.projectRoot,".claude","agents","v3");f(t)||D(t,{recursive:!0});let n=d(t,"subagents");f(n)||D(n,{recursive:!0}),await this.copyHelpersDirectory(t),await this.copyTemplatesDirectory(t);let r=this.getAvailableAgents();e.totalCount=r.length;let s=this.filterAgents(r);for(let l of s)try{let g=await this.installAgent(l,t,n);g?e.installed.push(g):e.skipped.push(l)}catch(g){e.errors.push(`Failed to install ${l}: ${b(g)}`)}let o=te(this.projectRoot);if(o.warnings.length>0){e.overlayWarnings=o.warnings;for(let l of o.warnings)console.error(`[AgentsInstaller] Overlay warning: ${l}`)}if(o.errors.length>0)for(let l of o.errors)e.errors.push(`Overlay error: ${l}`);for(let l of o.overlays){let g=l.agent,x=Te.includes(g)?d(n,`${g}.md`):d(t,`${g}.md`);if(!f(x)){e.overlayWarnings.push(`Overlay for "${g}" found but agent file does not exist. Skipping.`);continue}try{let I=ae(x,"utf-8"),{content:de,applied:q}=ne(I,l),pe=Ie(de);le(x,pe,"utf-8"),e.overlaysApplied.push(g);let me=[...q.replacedFields.map(C=>`replaced:${C}`),...q.appendedFields.map(C=>`appended:${C}`),...q.configOverrides.map(C=>`config:${C}`)];console.error(`[AgentsInstaller] Applied overlay for ${g}: ${me.join(", ")}`)}catch(I){e.overlayWarnings.push(`Failed to apply overlay for "${g}": ${b(I)}`)}}e.overlaysApplied.length>0&&console.error(`[AgentsInstaller] Applied ${e.overlaysApplied.length} agent overlay(s): ${e.overlaysApplied.join(", ")}`);let a=ee(t,this.projectRoot);if(e.mcpValidationWarnings=a.warnings,a.warnings.length>0){console.error(`[AgentsInstaller] MCP dependency warnings (${a.agentsWithMissingDeps.length} agents affected):`);for(let l of a.warnings.slice(0,10))console.error(` ${l}`);a.warnings.length>10&&console.error(` ... and ${a.warnings.length-10} more warnings`)}return await this.createAgentsIndex(t,e.installed),e}getAvailableAgents(){let e=[];try{let t=K(this.sourceAgentsDir);for(let n of t){let r=d(this.sourceAgentsDir,n),s=oe(r);if(s.isFile()&&n.endsWith(".md"))e.push(n.replace(".md",""));else if(s.isDirectory()&&n==="subagents"){let o=K(r);for(let a of o)a.endsWith(".md")&&e.push(`subagents/${a.replace(".md","")}`)}}}catch{return[]}return e}filterAgents(e){let t=e.filter(n=>(n.includes("/")?n.split("/")[1]:n).startsWith("qe-"));return this.options.include&&this.options.include.length>0&&(t=t.filter(n=>{let r=n.includes("/")?n.split("/")[1]:n;return this.options.include.includes(r)})),this.options.exclude&&this.options.exclude.length>0&&(t=t.filter(n=>{let r=n.includes("/")?n.split("/")[1]:n;return!this.options.exclude.some(s=>r.includes(s)||r.match(new RegExp(s)))})),this.options.installQEAgents||(t=t.filter(n=>{let r=n.includes("/")?n.split("/")[1]:n;return!qe.includes(r)})),this.options.installSubagents||(t=t.filter(n=>!n.startsWith("subagents/"))),t}async installAgent(e,t,n){let r=e.startsWith("subagents/"),s=r?e.split("/")[1]:e,o=d(this.sourceAgentsDir,`${e}.md`),a=r?d(n,`${s}.md`):d(t,`${s}.md`);if(f(a)&&!this.options.overwrite)return null;if(f(o))J(o,a);else throw new Error(`Source file not found: ${o}`);let l=this.getAgentType(s,r),g=this.getAgentDescription(a),c=this.getAgentDomain(s);return{name:s,type:l,description:g,domain:c}}getAgentType(e,t){return t?"v3-subagent":"v3-qe"}copyDirectoryRecursive(e,t){if(!f(e))return;f(t)||D(t,{recursive:!0});let n=K(e);for(let r of n){let s=d(e,r),o=d(t,r);oe(s).isDirectory()?this.copyDirectoryRecursive(s,o):(!f(o)||this.options.overwrite)&&J(s,o)}}async copyHelpersDirectory(e){let t=d(this.sourceAgentsDir,"helpers"),n=d(this.projectRoot,".claude","helpers","v3");f(t)?this.copyDirectoryRecursive(t,n):console.error(`[AgentsInstaller] Helpers source not found: ${t}`)}async copyTemplatesDirectory(e){let t=d(this.sourceAgentsDir,"templates"),n=d(e,"templates");f(t)?this.copyDirectoryRecursive(t,n):console.error(`[AgentsInstaller] Templates source not found: ${t}`)}getAgentDescription(e){if(f(e))try{let t=ae(e,"utf-8"),n=t.match(/description:\s*["']?([^"'\n]+)["']?/i);if(n)return n[1].trim();let r=t.split(`
|
|
62
|
+
`);for(let s of r){let o=s.trim();if(o&&!o.startsWith("#")&&!o.startsWith("-")&&!o.startsWith("```")&&!o.startsWith("---"))return o.slice(0,100)+(o.length>100?"...":"")}}catch(t){console.debug("[AgentsInstaller] Failed to read agent description:",t instanceof Error?t.message:t)}}getAgentDomain(e){let t={"test-architect":"test-generation","bdd-generator":"test-generation","property-tester":"test-generation","mutation-tester":"test-generation","parallel-executor":"test-execution","flaky-hunter":"test-execution","retry-handler":"test-execution","coverage-specialist":"coverage-analysis","gap-detector":"coverage-analysis","quality-gate":"quality-assessment","code-complexity":"quality-assessment","deployment-advisor":"quality-assessment","risk-assessor":"quality-assessment","defect-predictor":"defect-intelligence","regression-analyzer":"defect-intelligence","root-cause-analyzer":"defect-intelligence","impact-analyzer":"defect-intelligence","requirements-validator":"requirements-validation","qx-partner":"requirements-validation","product-factors-assessor":"requirements-validation","quality-criteria-recommender":"requirements-validation","test-idea-rewriter":"test-generation","code-intelligence":"code-intelligence","kg-builder":"code-intelligence","dependency-mapper":"code-intelligence","security-scanner":"security-compliance","security-auditor":"security-compliance","pentest-validator":"security-compliance","contract-validator":"contract-testing","graphql-tester":"contract-testing","visual-tester":"visual-accessibility","accessibility-auditor":"visual-accessibility","responsive-tester":"visual-accessibility","chaos-engineer":"chaos-resilience","load-tester":"chaos-resilience","performance-tester":"chaos-resilience","learning-coordinator":"learning-optimization","pattern-learner":"learning-optimization","metrics-optimizer":"learning-optimization","transfer-specialist":"learning-optimization","soap-tester":"enterprise-integration","sap-rfc-tester":"enterprise-integration","sap-idoc-tester":"enterprise-integration","odata-contract-tester":"enterprise-integration","middleware-validator":"enterprise-integration","message-broker-tester":"enterprise-integration","sod-analyzer":"enterprise-integration"},n=e.replace(/^(v3-)?qe-/,"");return t[n]}async createAgentsIndex(e,t){let n=t.filter(l=>l.type==="v3-qe"),r=t.filter(l=>l.type==="v3-subagent"),s=new Map;for(let l of n){let g=l.domain||"general";s.has(g)||s.set(g,[]),s.get(g).push(l)}let o=`# AQE V3 Agents Index
|
|
63
63
|
|
|
64
64
|
This directory contains V3 QE agents installed by \`aqe init\`.
|
|
65
65
|
|
|
@@ -71,7 +71,7 @@ This directory contains V3 QE agents installed by \`aqe init\`.
|
|
|
71
71
|
|
|
72
72
|
- **Total Agents**: ${t.length}
|
|
73
73
|
- **V3 QE Domain Agents**: ${n.length}
|
|
74
|
-
- **V3 Subagents**: ${
|
|
74
|
+
- **V3 Subagents**: ${r.length}
|
|
75
75
|
|
|
76
76
|
## Usage
|
|
77
77
|
|
|
@@ -95,17 +95,17 @@ ${g.map(c=>`- **${c.name}**${c.description?`: ${c.description}`:""}`).join(`
|
|
|
95
95
|
`).join(`
|
|
96
96
|
`)}
|
|
97
97
|
|
|
98
|
-
## V3 Subagents (${
|
|
98
|
+
## V3 Subagents (${r.length})
|
|
99
99
|
|
|
100
100
|
Specialized sub-task agents for TDD and code review.
|
|
101
101
|
|
|
102
|
-
${
|
|
102
|
+
${r.map(l=>`- **${l.name}**${l.description?`: ${l.description}`:""}`).join(`
|
|
103
103
|
`)}
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
107
107
|
*Generated by AQE v3 init on ${new Date().toISOString()}*
|
|
108
|
-
`,a=d(this.projectRoot,".claude","docs");f(a)||D(a,{recursive:!0}),le(d(a,"v3-agents-index.md"),o,"utf-8")}};function gt(
|
|
108
|
+
`,a=d(this.projectRoot,".claude","docs");f(a)||D(a,{recursive:!0}),le(d(a,"v3-agents-index.md"),o,"utf-8")}};function gt(i){return new Y(i)}T();import{existsSync as v,mkdirSync as Z,readdirSync as ce,readFileSync as Ee,writeFileSync as Pe,copyFileSync as ge}from"fs";import{join as y}from"path";var ue={core:[{name:"workflow-executor",filename:"n8n-workflow-executor.md",category:"core"},{name:"node-validator",filename:"n8n-node-validator.md",category:"core"},{name:"trigger-test",filename:"n8n-trigger-test.md",category:"core"},{name:"expression-validator",filename:"n8n-expression-validator.md",category:"core"},{name:"integration-test",filename:"n8n-integration-test.md",category:"core"},{name:"security-auditor",filename:"n8n-security-auditor.md",category:"core"}],advanced:[{name:"unit-tester",filename:"n8n-unit-tester.md",category:"advanced"},{name:"performance-tester",filename:"n8n-performance-tester.md",category:"advanced"},{name:"ci-orchestrator",filename:"n8n-ci-orchestrator.md",category:"advanced"}],quality:[{name:"version-comparator",filename:"n8n-version-comparator.md",category:"quality"},{name:"bdd-scenario-tester",filename:"n8n-bdd-scenario-tester.md",category:"quality"},{name:"monitoring-validator",filename:"n8n-monitoring-validator.md",category:"quality"}],enterprise:[{name:"compliance-validator",filename:"n8n-compliance-validator.md",category:"enterprise"},{name:"chaos-tester",filename:"n8n-chaos-tester.md",category:"enterprise"}],reliability:[{name:"base-agent",filename:"n8n-base-agent.md",category:"reliability"}]},_e=["n8n-expression-testing","n8n-integration-testing-patterns","n8n-security-testing","n8n-trigger-testing-strategies","n8n-workflow-testing-fundamentals"],X=class{projectRoot;options;sourceAgentsDir;sourceSkillsDir;constructor(e){this.projectRoot=e.projectRoot,this.options={installAgents:!0,installSkills:!0,overwrite:!1,...e},this.sourceAgentsDir=this.findSourceAgentsDir(),this.sourceSkillsDir=this.findSourceSkillsDir()}findSourceAgentsDir(){let e=k(import.meta.url),t=[];e&&t.push(y(e,".claude/agents/n8n")),t.push(y(this.projectRoot,"node_modules/agentic-qe/.claude/agents/n8n"));for(let n of t)if(v(n))return n;return t[0]}findSourceSkillsDir(){let e=k(import.meta.url),t=[];e&&(t.push(y(e,"assets/skills")),t.push(y(e,".claude/skills"))),t.push(y(this.projectRoot,"node_modules/agentic-qe/assets/skills"));for(let n of t)if(v(n))return n;return t[0]}async install(){let e={success:!0,agentsInstalled:[],skillsInstalled:[],configGenerated:!1,errors:[],agentsDir:y(this.projectRoot,".claude/agents/n8n"),skillsDir:y(this.projectRoot,".claude/skills")};try{if(this.options.installAgents){let t=await this.installAgents(e.agentsDir);e.agentsInstalled=t.installed,e.errors.push(...t.errors)}if(this.options.installSkills){let t=await this.installSkills(e.skillsDir);e.skillsInstalled=t.installed,e.errors.push(...t.errors)}this.options.n8nApiConfig&&(e.configGenerated=!0),e.agentsInstalled.length>0&&this.createAgentsIndex(e.agentsDir,e.agentsInstalled)}catch(t){e.success=!1,e.errors.push(`Installation failed: ${b(t)}`)}return e}async installAgents(e){let t=[],n=[];if(v(e)||Z(e,{recursive:!0}),!v(this.sourceAgentsDir))return n.push(`Source agents directory not found: ${this.sourceAgentsDir}`),{installed:t,errors:n};let r=ce(this.sourceAgentsDir).filter(s=>s.endsWith(".md"));for(let s of Object.keys(ue))for(let o of ue[s]){let a=y(this.sourceAgentsDir,o.filename),l=y(e,o.filename);if(r.includes(o.filename)&&!(v(l)&&!this.options.overwrite))try{ge(a,l);let c=Ee(a,"utf-8").match(/description:\s*["']?(.+?)["']?\n/);o.description=c?.[1]||`n8n ${o.name} agent`,t.push(o)}catch(g){n.push(`Failed to install ${o.name}: ${b(g)}`)}}return{installed:t,errors:n}}async installSkills(e){let t=[],n=[];if(v(e)||Z(e,{recursive:!0}),!v(this.sourceSkillsDir))return n.push(`Source skills directory not found: ${this.sourceSkillsDir}`),{installed:t,errors:n};for(let r of _e){let s=y(this.sourceSkillsDir,r),o=y(e,r);if(v(s)&&!(v(o)&&!this.options.overwrite))try{this.copyDirectory(s,o),t.push(r)}catch(a){n.push(`Failed to install skill ${r}: ${b(a)}`)}}return{installed:t,errors:n}}copyDirectory(e,t){v(t)||Z(t,{recursive:!0});let n=ce(e,{withFileTypes:!0});for(let r of n){let s=y(e,r.name),o=y(t,r.name);r.isDirectory()?this.copyDirectory(s,o):ge(s,o)}}createAgentsIndex(e,t){let n=y(e,"README.md"),r={core:t.filter(o=>o.category==="core"),advanced:t.filter(o=>o.category==="advanced"),quality:t.filter(o=>o.category==="quality"),enterprise:t.filter(o=>o.category==="enterprise"),reliability:t.filter(o=>o.category==="reliability")},s=`# N8n Testing Agents
|
|
109
109
|
|
|
110
110
|
> Auto-generated by \`aqe init --with-n8n\`
|
|
111
111
|
|
|
@@ -115,11 +115,11 @@ These agents provide comprehensive testing capabilities for n8n workflow automat
|
|
|
115
115
|
|
|
116
116
|
| Category | Count |
|
|
117
117
|
|----------|-------|
|
|
118
|
-
| Core | ${
|
|
119
|
-
| Advanced | ${
|
|
120
|
-
| Quality | ${
|
|
121
|
-
| Enterprise | ${
|
|
122
|
-
| Reliability | ${
|
|
118
|
+
| Core | ${r.core.length} |
|
|
119
|
+
| Advanced | ${r.advanced.length} |
|
|
120
|
+
| Quality | ${r.quality.length} |
|
|
121
|
+
| Enterprise | ${r.enterprise.length} |
|
|
122
|
+
| Reliability | ${r.reliability.length} |
|
|
123
123
|
| **Total** | **${t.length}** |
|
|
124
124
|
|
|
125
125
|
## Usage with Claude Code
|
|
@@ -132,7 +132,7 @@ Task("Run security audit on workflow", "n8n-security-auditor")
|
|
|
132
132
|
|
|
133
133
|
## Agent Categories
|
|
134
134
|
|
|
135
|
-
`;for(let[o,a]of Object.entries(
|
|
135
|
+
`;for(let[o,a]of Object.entries(r))if(a.length!==0){s+=`### ${o.charAt(0).toUpperCase()+o.slice(1)}
|
|
136
136
|
|
|
137
137
|
`;for(let l of a)s+=`- **${l.name}**: ${l.description||"N8n testing agent"}
|
|
138
138
|
`;s+=`
|
|
@@ -177,4 +177,4 @@ N8n agents map to v3 domains:
|
|
|
177
177
|
- Compliance agents \u2192 security-compliance domain
|
|
178
178
|
- Chaos agents \u2192 chaos-resilience domain
|
|
179
179
|
|
|
180
|
-
`}};function yt(
|
|
180
|
+
`}};function yt(i){return new X(i)}export{M as a,Fe as b,Me as c,ze as d,Se as e,Ue as f,He as g,Be as h,et as i,gt as j,yt as k};
|