agentic-qe 3.13.3 → 3.13.4
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/.agents/skills/aqe-plan-work/SKILL.md +31 -0
- package/.agents/skills/aqe-plan-work/agents/openai.yaml +4 -0
- package/.agents/skills/aqe-plan-work/references/planning-framework.md +39 -0
- package/.agents/skills/aqe-research/SKILL.md +31 -0
- package/.agents/skills/aqe-research/agents/openai.yaml +4 -0
- package/.agents/skills/aqe-research/references/evidence-rules.md +21 -0
- package/.agents/skills/aqe-ruflo/SKILL.md +29 -0
- package/.claude/commands/pair/README.md +261 -0
- package/.claude/commands/pair/commands.md +546 -0
- package/.claude/commands/pair/config.md +510 -0
- package/.claude/commands/pair/examples.md +512 -0
- package/.claude/commands/pair/modes.md +348 -0
- package/.claude/commands/pair/session.md +407 -0
- package/.claude/commands/pair/start.md +209 -0
- package/.claude/commands/stream-chain/pipeline.md +121 -0
- package/.claude/commands/stream-chain/run.md +70 -0
- package/.claude/commands/training/README.md +9 -0
- package/.claude/commands/training/model-update.md +25 -0
- package/.claude/commands/training/neural-patterns.md +108 -0
- package/.claude/commands/training/neural-train.md +75 -0
- package/.claude/commands/training/pattern-learn.md +25 -0
- package/.claude/commands/training/specialization.md +63 -0
- package/.claude/commands/truth/start.md +143 -0
- package/.claude/commands/verify/check.md +50 -0
- package/.claude/commands/verify/start.md +128 -0
- package/.claude/helpers/v3/advisor-call.cjs +283 -0
- package/.claude/skills/README.md +54 -64
- package/.claude/skills/dual-mode/README.md +71 -0
- package/.claude/skills/dual-mode/dual-collect.md +103 -0
- package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
- package/.claude/skills/dual-mode/dual-spawn.md +81 -0
- package/.claude/skills/skills-manifest.json +1 -1
- package/.codex/hooks/aqe-codex-hook.cjs +34 -9
- package/.codex/hooks.json +9 -9
- package/CHANGELOG.md +42 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-JISQ35YY.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-YIGGREZN.js → agent-booster-wasm-PR3RQWXF.js} +2 -2
- package/dist/cli/chunks/{agent-handler-64O7R55A.js → agent-handler-J5EPFBSZ.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-2ZZBYUP3.js → agent-memory-branch-CCHI6QAA.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-TVTNP76S.js +2 -0
- package/dist/cli/chunks/{arena-PF5WL2WM.js → arena-KMKBGSMY.js} +2 -2
- package/dist/cli/chunks/{arena-6YRNQNCX.js → arena-SI7IPVZ3.js} +4 -4
- package/dist/cli/chunks/{audit-R53FOYCK.js → audit-ZDKR3HT6.js} +3 -3
- package/dist/cli/chunks/base-WBCYKM45.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-QOULNHXS.js → better-sqlite3-FXJFG2WH.js} +2 -2
- package/dist/cli/chunks/{brain-handler-J4ICUOUX.js → brain-handler-MSYMTM5B.js} +3 -3
- package/dist/cli/chunks/{branch-enumerator-YVPD43TG.js → branch-enumerator-FRAHCBTO.js} +2 -2
- package/dist/cli/chunks/{browser-TKVHX53S.js → browser-4KHKVNYC.js} +2 -2
- package/dist/cli/chunks/browser-workflow-4JM3IWCS.js +2 -0
- package/dist/cli/chunks/{chunk-GSG5FASF.js → chunk-26SNR2EK.js} +3 -3
- package/dist/cli/chunks/{chunk-JG267MVB.js → chunk-27FWRWOB.js} +2 -2
- package/dist/cli/chunks/{chunk-NIA6VTIH.js → chunk-27REOPQK.js} +2 -2
- package/dist/cli/chunks/{chunk-4RYU4WMW.js → chunk-2Q73TQUQ.js} +1 -1
- package/dist/cli/chunks/{chunk-A22RTEJ3.js → chunk-344CLTV7.js} +2 -2
- package/dist/cli/chunks/{chunk-MGKJFO57.js → chunk-3RSF7POD.js} +2 -2
- package/dist/cli/chunks/{chunk-CVFUANMU.js → chunk-44SYMJ4T.js} +2 -2
- package/dist/cli/chunks/{chunk-22WFXSXB.js → chunk-4FP4PJ45.js} +2 -2
- package/dist/cli/chunks/{chunk-DTOKJKSE.js → chunk-4HVVVVUF.js} +2 -2
- package/dist/cli/chunks/{chunk-QGJYKXUO.js → chunk-55E62F4T.js} +1 -1
- package/dist/cli/chunks/{chunk-RWPWD5GG.js → chunk-56QR72EB.js} +2 -2
- package/dist/cli/chunks/{chunk-NUPAGPN6.js → chunk-5DESO7E4.js} +2 -2
- package/dist/cli/chunks/{chunk-PHNNAIFA.js → chunk-5IVXM3TE.js} +1 -1
- package/dist/cli/chunks/{chunk-TW5QWNT4.js → chunk-5R26MAMK.js} +2 -2
- package/dist/cli/chunks/{chunk-IZIYFVAZ.js → chunk-5RVWL2U3.js} +3 -3
- package/dist/cli/chunks/{chunk-OX6WPOGR.js → chunk-6BHRSGR7.js} +3 -3
- package/dist/cli/chunks/{chunk-4Z2AKQP4.js → chunk-6CZUQA4G.js} +1 -1
- package/dist/cli/chunks/{chunk-FGIZVGIE.js → chunk-6GNVVQW3.js} +2 -2
- package/dist/cli/chunks/{chunk-7AHQ7ROU.js → chunk-6VNUASTQ.js} +2 -2
- package/dist/cli/chunks/{chunk-B7XZJBMT.js → chunk-6XCULO27.js} +2 -2
- package/dist/cli/chunks/{chunk-LOZRBK2Z.js → chunk-6XVP6BGM.js} +2 -2
- package/dist/cli/chunks/{chunk-APXJJRU4.js → chunk-75CFWCQV.js} +2 -2
- package/dist/cli/chunks/{chunk-37GCWGXT.js → chunk-7EL5QEMJ.js} +2 -2
- package/dist/cli/chunks/{chunk-3NML6POU.js → chunk-7YAHECC5.js} +2 -2
- package/dist/cli/chunks/{chunk-N3KQRDTM.js → chunk-A2G26WU4.js} +1 -1
- package/dist/cli/chunks/{chunk-X737I4SO.js → chunk-AROPZPNG.js} +1 -1
- package/dist/cli/chunks/{chunk-IKPBQZQP.js → chunk-BQRCNRTJ.js} +2 -2
- package/dist/cli/chunks/{chunk-JLFU5SCI.js → chunk-C3AF5Z55.js} +2 -2
- package/dist/cli/chunks/{chunk-FF53QW6C.js → chunk-C75V5PTW.js} +1 -1
- package/dist/cli/chunks/{chunk-HJNFXYX4.js → chunk-CQP6BDSF.js} +1 -1
- package/dist/cli/chunks/{chunk-ADBTOUOX.js → chunk-CTNDSP2M.js} +1 -1
- package/dist/cli/chunks/{chunk-VRTNRI4H.js → chunk-CW7LDLJ2.js} +2 -2
- package/dist/cli/chunks/{chunk-PHBGMXTR.js → chunk-DQ247474.js} +2 -2
- package/dist/cli/chunks/{chunk-66KIIH6V.js → chunk-E7FCVH32.js} +2 -2
- package/dist/cli/chunks/{chunk-64C4SS66.js → chunk-EEHEMDNV.js} +2 -2
- package/dist/cli/chunks/{chunk-2MLPO3RZ.js → chunk-EPSF2ERW.js} +2 -2
- package/dist/cli/chunks/{chunk-AXXFY7PX.js → chunk-ERKYIV25.js} +2 -2
- package/dist/cli/chunks/{chunk-VFZNVJP2.js → chunk-ESMSH7HG.js} +2 -2
- package/dist/cli/chunks/{chunk-PS32DXYF.js → chunk-EUIUWZF4.js} +3 -3
- package/dist/cli/chunks/{chunk-764G7VK6.js → chunk-FBXWU37F.js} +1 -1
- package/dist/cli/chunks/{chunk-NF2N2FIY.js → chunk-FJSL7TWU.js} +1 -1
- package/dist/cli/chunks/{chunk-6I2L22WS.js → chunk-FZ4MUDHZ.js} +1 -1
- package/dist/cli/chunks/{chunk-62F5M5OO.js → chunk-GGZB2ZBB.js} +1 -1
- package/dist/cli/chunks/{chunk-HOIH542Y.js → chunk-GIU26D5G.js} +1 -1
- package/dist/cli/chunks/{chunk-7TG7LJAB.js → chunk-GNFKG2LX.js} +2 -2
- package/dist/cli/chunks/{chunk-J5AIMM2J.js → chunk-GOFP47XU.js} +1 -1
- package/dist/cli/chunks/{chunk-AJ45QR3K.js → chunk-GOHWEQEP.js} +2 -2
- package/dist/cli/chunks/{chunk-MNEQESQJ.js → chunk-GRMKN44A.js} +3 -3
- package/dist/cli/chunks/{chunk-H4XZOIV6.js → chunk-HGBVGEUE.js} +2 -2
- package/dist/cli/chunks/{chunk-JQTDNUHA.js → chunk-HGY62IYZ.js} +2 -2
- package/dist/cli/chunks/{chunk-2G2XD6EM.js → chunk-HN2DD2DQ.js} +2 -2
- package/dist/cli/chunks/{chunk-N4OBRS6S.js → chunk-II2RP3MY.js} +2 -2
- package/dist/cli/chunks/{chunk-CXPMA7LY.js → chunk-IN5KRJSE.js} +1 -1
- package/dist/cli/chunks/{chunk-TNM7X2GD.js → chunk-ISGKDLZ7.js} +2 -2
- package/dist/cli/chunks/{chunk-TGVDKSSS.js → chunk-ITQCSIYG.js} +1 -1
- package/dist/cli/chunks/{chunk-PY55ZD2G.js → chunk-IU5SILCS.js} +2 -2
- package/dist/cli/chunks/{chunk-JOHWWTJF.js → chunk-IUFNB6I6.js} +2 -2
- package/dist/cli/chunks/{chunk-UAXFRKR3.js → chunk-IVZA5XTW.js} +2 -2
- package/dist/cli/chunks/{chunk-A6J5MAVO.js → chunk-JBHGMLN7.js} +10 -10
- package/dist/cli/chunks/{chunk-UF7JKDWB.js → chunk-JDADACZZ.js} +1 -1
- package/dist/cli/chunks/{chunk-5IH22DLD.js → chunk-JJ5YIKTJ.js} +3 -3
- package/dist/cli/chunks/{chunk-TRPRFW27.js → chunk-KB4S7MGB.js} +2 -2
- package/dist/cli/chunks/{chunk-XRF5MX4Q.js → chunk-KDICUKYX.js} +2 -2
- package/dist/cli/chunks/{chunk-EEG4G5JG.js → chunk-KE656E6T.js} +3 -3
- package/dist/cli/chunks/{chunk-F6V5POSK.js → chunk-KO3UQYGY.js} +10 -10
- package/dist/cli/chunks/{chunk-WRC66JTK.js → chunk-KQLJILCZ.js} +1 -1
- package/dist/cli/chunks/{chunk-C7AXBCMS.js → chunk-KZAVYHH7.js} +4 -4
- package/dist/cli/chunks/{chunk-7MBPKAQ3.js → chunk-L3UTZEVW.js} +2 -2
- package/dist/cli/chunks/{chunk-RRHIEG4Y.js → chunk-LASZCR5G.js} +2 -2
- package/dist/cli/chunks/{chunk-PHGOMAIS.js → chunk-LEIG3KIG.js} +2 -2
- package/dist/cli/chunks/{chunk-ZIYCZZYD.js → chunk-LIMFWEUI.js} +2 -2
- package/dist/cli/chunks/{chunk-VGWHFFK6.js → chunk-LJSHQU2P.js} +5 -5
- package/dist/cli/chunks/{chunk-3J2QITXC.js → chunk-LUAYTM77.js} +1 -1
- package/dist/cli/chunks/{chunk-GNCGRDQ2.js → chunk-MANWLRAW.js} +1 -1
- package/dist/cli/chunks/{chunk-JBWXBDJX.js → chunk-MP3RCZ75.js} +1 -1
- package/dist/cli/chunks/{chunk-WVWWTRKT.js → chunk-MPVOZKUP.js} +1 -1
- package/dist/cli/chunks/{chunk-A547LEUW.js → chunk-MWWTYPFL.js} +2 -2
- package/dist/cli/chunks/{chunk-IRX2THND.js → chunk-N57M7UPQ.js} +2 -2
- package/dist/cli/chunks/{chunk-TK6CHESH.js → chunk-N7LIYK7Z.js} +1 -1
- package/dist/cli/chunks/{chunk-ORXDKBZC.js → chunk-NAAPL2HK.js} +1 -1
- package/dist/cli/chunks/{chunk-IH47VGC7.js → chunk-NAZFAGJ5.js} +2 -2
- package/dist/cli/chunks/{chunk-M7XDTQHX.js → chunk-NQJLUY2K.js} +2 -2
- package/dist/cli/chunks/{chunk-6C3PDY72.js → chunk-NQVF4M7L.js} +1 -1
- package/dist/cli/chunks/{chunk-SJWTNKPY.js → chunk-NW4YPUPN.js} +3 -3
- package/dist/cli/chunks/{chunk-46U73TST.js → chunk-O45CEMVF.js} +1 -1
- package/dist/cli/chunks/{chunk-37I4AMCT.js → chunk-O74V7MB4.js} +2 -2
- package/dist/cli/chunks/{chunk-ZI7BWJJW.js → chunk-OF7674H5.js} +2 -2
- package/dist/cli/chunks/{chunk-P5CQMDFQ.js → chunk-OR2RC7ZH.js} +2 -2
- package/dist/cli/chunks/{chunk-ZLTAAROU.js → chunk-OU2YHXJY.js} +2 -2
- package/dist/cli/chunks/{chunk-JHOJG5VO.js → chunk-OU3SYEYJ.js} +1 -1
- package/dist/cli/chunks/{chunk-N7IRBQ4D.js → chunk-PD2ZSCEH.js} +1 -1
- package/dist/cli/chunks/{chunk-DSUEJK33.js → chunk-PFQLB4XP.js} +2 -2
- package/dist/cli/chunks/{chunk-V6W4IHS5.js → chunk-PI55PHUL.js} +2 -2
- package/dist/cli/chunks/{chunk-EMH54CO7.js → chunk-PIYDPOW6.js} +2 -2
- package/dist/cli/chunks/{chunk-DSGKRXHF.js → chunk-PJFQGNRW.js} +1 -1
- package/dist/cli/chunks/{chunk-L4O2645U.js → chunk-PRHLV6FS.js} +1 -1
- package/dist/cli/chunks/chunk-Q4VZXT6X.js +2 -0
- package/dist/cli/chunks/{chunk-H2BR5MCX.js → chunk-QENUKXPP.js} +2 -2
- package/dist/cli/chunks/chunk-QGH54HTH.js +2 -0
- package/dist/cli/chunks/{chunk-2BYRQ5MV.js → chunk-QXF6EQFP.js} +2 -2
- package/dist/cli/chunks/{chunk-ZU3XUBDQ.js → chunk-RCRKCMN5.js} +1 -1
- package/dist/cli/chunks/{chunk-5A5EC5RD.js → chunk-RKNKFLCQ.js} +2 -2
- package/dist/cli/chunks/{chunk-5IVOY76M.js → chunk-RLZZTFEN.js} +2 -2
- package/dist/cli/chunks/{chunk-CBLKYGKT.js → chunk-RO4BYINM.js} +2 -2
- package/dist/cli/chunks/{chunk-K2D3YW2N.js → chunk-SFRYDGLF.js} +1 -1
- package/dist/cli/chunks/{chunk-UX434RY5.js → chunk-SJ26ZR75.js} +2 -2
- package/dist/cli/chunks/{chunk-LLQG3F4H.js → chunk-SPTCNM45.js} +2 -2
- package/dist/cli/chunks/{chunk-KQFMCVBH.js → chunk-SQCACQUM.js} +2 -2
- package/dist/cli/chunks/{chunk-3CFWNT3F.js → chunk-TCYSMSBO.js} +2 -2
- package/dist/cli/chunks/{chunk-W6OIDL4J.js → chunk-TFFEB7XD.js} +2 -2
- package/dist/cli/chunks/{chunk-RU23JXCG.js → chunk-TM6LLT4G.js} +3 -3
- package/dist/cli/chunks/{chunk-WHUQDBV7.js → chunk-TO7FTPRV.js} +2 -2
- package/dist/cli/chunks/{chunk-QZ3EIONO.js → chunk-U52IQFMP.js} +1 -1
- package/dist/cli/chunks/{chunk-33SPAMQZ.js → chunk-UAEP2ZUQ.js} +2 -2
- package/dist/cli/chunks/{chunk-OD5R7HRI.js → chunk-UNMWI4QU.js} +1 -1
- package/dist/cli/chunks/{chunk-U7DGRHSB.js → chunk-UOO7P2AK.js} +2 -2
- package/dist/cli/chunks/{chunk-QFANYWC5.js → chunk-UQFMQOZB.js} +1 -1
- package/dist/cli/chunks/{chunk-2QKSIHXO.js → chunk-VDPQ7NVG.js} +1 -1
- package/dist/cli/chunks/{chunk-QP4UKSUJ.js → chunk-VLELNETG.js} +2 -2
- package/dist/cli/chunks/{chunk-KQ5GLUOB.js → chunk-VOAXVNO5.js} +4 -4
- package/dist/cli/chunks/{chunk-QZS3XCU5.js → chunk-VZO4V4R4.js} +2 -2
- package/dist/cli/chunks/{chunk-BDOD534O.js → chunk-W37WY3OL.js} +2 -2
- package/dist/cli/chunks/{chunk-UWBHR4EZ.js → chunk-WCUXA3NV.js} +1 -1
- package/dist/cli/chunks/{chunk-RMQRSZB4.js → chunk-WSQE3VZB.js} +1 -1
- package/dist/cli/chunks/{chunk-MYR6CBXC.js → chunk-WUXCL65V.js} +2 -2
- package/dist/cli/chunks/{chunk-OU5CZFBG.js → chunk-X5JMTHXC.js} +3 -3
- package/dist/cli/chunks/{chunk-XRQGWUDX.js → chunk-X67O2KUE.js} +2 -2
- package/dist/cli/chunks/{chunk-HEF6XKA5.js → chunk-XBSBVPSM.js} +2 -2
- package/dist/cli/chunks/{chunk-KBQRYAHZ.js → chunk-XEI5LLHX.js} +2 -2
- package/dist/cli/chunks/{chunk-LWPCGOQM.js → chunk-XF4F5ZXO.js} +2 -2
- package/dist/cli/chunks/{chunk-SAMAYDVS.js → chunk-XLP44YGX.js} +2 -2
- package/dist/cli/chunks/{chunk-CW7BWFFF.js → chunk-XTHRSBMJ.js} +2 -2
- package/dist/cli/chunks/{chunk-VKUH57JE.js → chunk-Y7VWCP35.js} +1 -1
- package/dist/cli/chunks/{chunk-6R6QGQ7D.js → chunk-YQI6SOUO.js} +1 -1
- package/dist/cli/chunks/{chunk-GTURQ454.js → chunk-YZGA4ELM.js} +2 -2
- package/dist/cli/chunks/{chunk-SSXCHSVM.js → chunk-Z6FK7T7J.js} +2 -2
- package/dist/cli/chunks/{chunk-UOJ26GXD.js → chunk-Z7FVGJYC.js} +2 -2
- package/dist/cli/chunks/{chunk-DPJLA7JW.js → chunk-ZAT65V6I.js} +2 -2
- package/dist/cli/chunks/{chunk-J65XQ6WE.js → chunk-ZYCPTARG.js} +2 -2
- package/dist/cli/chunks/{ci-G2NEYLVO.js → ci-DK4FGREO.js} +2 -2
- package/dist/cli/chunks/{ci-output-SZFEXGBU.js → ci-output-HQBBQQES.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-ZD7PJY6N.js → circuit-breaker-MJCS46DN.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-DAVANGUJ.js → claude-flow-setup-IIQT52H4.js} +2 -2
- package/dist/cli/chunks/client-FNDZB4TY.js +2 -0
- package/dist/cli/chunks/{cline-installer-WCPKWLY7.js → cline-installer-7SPKUNNZ.js} +2 -2
- package/dist/cli/chunks/{code-324ZJR3V.js → code-V2B4FP3X.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-EWVSXJHR.js → code-index-extractor-IRGAI76Y.js} +2 -2
- package/dist/cli/chunks/codex-installer-PDFCYRU6.js +15 -0
- package/dist/cli/chunks/{completions-ZAWBZWYK.js → completions-TAJ6N7YZ.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-S3H2IRON.js → complexity-analyzer-JHQKQKBG.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-4DDFAJ26.js → continuedev-installer-DESZXCLC.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-KBBAL3G5.js → copilot-installer-OQPXBLWS.js} +2 -2
- package/dist/cli/chunks/core-handlers-S37RHLKP.js +2 -0
- package/dist/cli/chunks/{cost-tracker-2YM7SGBW.js → cost-tracker-KHDFSCAJ.js} +2 -2
- package/dist/cli/chunks/{coverage-6CCBAORJ.js → coverage-T7EENIDE.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-7ZHDB2V3.js +2 -0
- package/dist/cli/chunks/{cursor-installer-24DKXNU5.js → cursor-installer-X6BFU5QU.js} +2 -2
- package/dist/cli/chunks/{daemon-M2PSDIZF.js → daemon-22NOG5XI.js} +3 -3
- package/dist/cli/chunks/{daemon-JLF6CRBS.js → daemon-UTPP4JCG.js} +4 -4
- package/dist/cli/chunks/{dag-attention-scheduler-Y5HSZDRV.js → dag-attention-scheduler-XI6DG3FW.js} +2 -2
- package/dist/cli/chunks/{detect-6Y227IJ6.js → detect-7IMQGJ5I.js} +2 -2
- package/dist/cli/chunks/{dist-node-EGOJXGTA.js → dist-node-YMLM4K7J.js} +2 -2
- package/dist/cli/chunks/{domain-handler-G3JEWRE5.js → domain-handler-LRTJGTEH.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-XOHI3EMJ.js → domain-transfer-HZJ3WUCT.js} +2 -2
- package/dist/cli/chunks/dream-BEVYNIOO.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-CSSA55L4.js → embed-and-insert-pattern-QSRN7Z5Q.js} +2 -2
- package/dist/cli/chunks/{eval-NHBXOXDV.js → eval-JVVVQVV6.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-B7ZDV5UY.js → experience-capture-middleware-ORZN3ROJ.js} +3 -3
- package/dist/cli/chunks/{fast-paths-XGKSBALA.js → fast-paths-LUFARZR5.js} +2 -2
- package/dist/cli/chunks/{feature-flags-NBUDJSWJ.js → feature-flags-2XC4ECLW.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ZVD73ZYK.js → feature-flags-ZHQESXIP.js} +2 -2
- package/dist/cli/chunks/{file-discovery-C42TEUKT.js → file-discovery-UHXZQ7GS.js} +2 -2
- package/dist/cli/chunks/{fleet-LF77P3BW.js → fleet-FUQ6G4SB.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-UXNT7BEN.js → gnn-wrapper-A4E6OKGD.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-C4LMU5LA.js → heartbeat-handler-3JKQORXA.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-K4YLB3X4.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-PPR3LTMA.js +2 -0
- package/dist/cli/chunks/hnsw-index-ZSKFT4LZ.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-EHHBIWS3.js → hnsw-legacy-bridge-AHKFKM2J.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-OW5HIPEN.js → hnswlib-node-BP5CZGMD.js} +2 -2
- package/dist/cli/chunks/{hooks-AGE3HCFI.js → hooks-JNW5ZB2E.js} +10 -10
- package/dist/cli/chunks/hybrid-router-4SXBHTOY.js +2 -0
- package/dist/cli/chunks/{hypergraph-engine-E5QX5MEB.js → hypergraph-engine-3DTAMNSJ.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-ZZHBANYB.js → hypergraph-handler-ZV4AZRGF.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-55GE7EQD.js +2 -0
- package/dist/cli/chunks/{init-handler-PNVRBZZT.js → init-handler-NPOUX47N.js} +10 -6
- package/dist/cli/chunks/init-wizard-EUQLSGI6.js +2 -0
- package/dist/cli/chunks/kernel-BSGSVYPM.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-TR53QKPU.js → kilocode-installer-D35TR6LG.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-MJW6LCAX.js → kiro-installer-OHHTQENO.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-OITIVT5J.js +2 -0
- package/dist/cli/chunks/{learning-6LLGHP2Q.js → learning-24PCHLWU.js} +3 -3
- package/dist/cli/chunks/{llm-router-DBLV3VGG.js → llm-router-XLTE52H5.js} +4 -4
- package/dist/cli/chunks/llm-router-service-RUPU52AR.js +2 -0
- package/dist/cli/chunks/{load-LAZ3E5PE.js → load-BHMK4FIL.js} +2 -2
- package/dist/cli/chunks/load-test-ZV3C55ZE.js +2 -0
- package/dist/cli/chunks/{mcp-L5QXHSEY.js → mcp-V4MAYT7C.js} +2 -2
- package/dist/cli/chunks/{memory-YR5PCMWA.js → memory-PDA7MQ7E.js} +5 -5
- package/dist/cli/chunks/memory-backend-S3KCPHCF.js +2 -0
- package/dist/cli/chunks/{memory-handlers-BSRTZQYR.js → memory-handlers-X5BLXOSH.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-RECZ3ACW.js → multi-model-executor-KECHOXKD.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-4TDUB7HH.js → opencode-installer-LWSCQOOZ.js} +2 -2
- package/dist/cli/chunks/{orchestrator-PHDKJ5C4.js → orchestrator-ENEBTEUW.js} +6 -6
- package/dist/cli/chunks/pattern-null-store-ILVDKSCX.js +2 -0
- package/dist/cli/chunks/{pattern-usage-recorder-QK2FADRS.js → pattern-usage-recorder-XIHGXYZZ.js} +2 -2
- package/dist/cli/chunks/{pipeline-JQJYSN43.js → pipeline-GQOJM3LU.js} +2 -2
- package/dist/cli/chunks/platform-L56TGXGZ.js +2 -0
- package/dist/cli/chunks/{plugin-766MBGK6.js → plugin-SZ6PZKYX.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-XQERZNSK.js → prime-radiant-advanced-wasm-SID5FQFW.js} +2 -2
- package/dist/cli/chunks/protocol-executor-GDRHCW3Q.js +2 -0
- package/dist/cli/chunks/{protocol-handler-FAK4MMNA.js → protocol-handler-5MMNVVPX.js} +2 -2
- package/dist/cli/chunks/{prove-HYBVXOGW.js → prove-DJ6BQ2AK.js} +2 -2
- package/dist/cli/chunks/provider-manager-BS4MVCSH.js +2 -0
- package/dist/cli/chunks/qe-reasoning-bank-P3ARGHDN.js +2 -0
- package/dist/cli/chunks/{quality-EGSO2RAX.js → quality-WKC4JCB3.js} +2 -2
- package/dist/cli/chunks/{quality-gate-RK32VMO7.js → quality-gate-CVHVSORK.js} +3 -3
- package/dist/cli/chunks/queen-coordinator-GI7GNVDM.js +2 -0
- package/dist/cli/chunks/{real-embeddings-GI7CRHE2.js → real-embeddings-DN2MEJVM.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-BS3XWJJI.js → roocode-installer-LTAQJWIH.js} +2 -2
- package/dist/cli/chunks/router-YU6MLJBV.js +2 -0
- package/dist/cli/chunks/routing-feedback-D6B2SK5V.js +2 -0
- package/dist/cli/chunks/{routing-handler-XMGRJDHH.js → routing-handler-PSWR2UCT.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-NDL3ONNC.js → ruvector-commands-VTP6Y7PN.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-XAJOYGJ2.js → rvf-dual-writer-EBUMXPRO.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-WXFRZZ26.js → rvf-migration-adapter-5N7GHMD3.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-WFXA2VUQ.js → rvf-migration-coordinator-GQKDBNRR.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-M7ZVRN5Z.js +2 -0
- package/dist/cli/chunks/{rvf-store-integrity-I7PFJZCK.js → rvf-store-integrity-LR3SYGQK.js} +2 -2
- package/dist/cli/chunks/safe-db-3OHTLXG7.js +2 -0
- package/dist/cli/chunks/schedule-H43ADREQ.js +2 -0
- package/dist/cli/chunks/scheduler-CGSXNEPJ.js +2 -0
- package/dist/cli/chunks/{security-H3WY76GF.js → security-YDWLYXYD.js} +3 -3
- package/dist/cli/chunks/{shared-rvf-adapter-GRTJCLW6.js → shared-rvf-adapter-I3HQY7DE.js} +2 -2
- package/dist/cli/chunks/{shared-rvf-dual-writer-46XE5R2B.js → shared-rvf-dual-writer-2UADEA5N.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-V6U5FKVK.js +2 -0
- package/dist/cli/chunks/{status-handler-VUIFMY4F.js → status-handler-QRHI3F4V.js} +2 -2
- package/dist/cli/chunks/{structural-health-I7HC477E.js → structural-health-FWKE63CM.js} +2 -2
- package/dist/cli/chunks/{sync-M6LUV5R4.js → sync-2QRCT5MT.js} +2 -2
- package/dist/cli/chunks/{sync-RO2YGMBF.js → sync-E32MBAOF.js} +2 -2
- package/dist/cli/chunks/{task-handler-BJJTZ7AU.js → task-handler-C7BKMOCL.js} +2 -2
- package/dist/cli/chunks/{task-handlers-B6S4NEN3.js → task-handlers-PADWLLDO.js} +3 -3
- package/dist/cli/chunks/{test-BE7EM6Y6.js → test-KX4UKHSX.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-4ISKEFR6.js → test-scheduling-5WKIWH4H.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-BOIYBZHW.js → token-bootstrap-6SKOJM3U.js} +2 -2
- package/dist/cli/chunks/{token-usage-6ZZC7RLT.js → token-usage-V6JW55RV.js} +2 -2
- package/dist/cli/chunks/{transformers-55VI4OGW.js → transformers-3UPFBYSB.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-6GRRGB3K.js → tree-sitter-wasm-parser-UCY4S2DU.js} +2 -2
- package/dist/cli/chunks/{types-SXDF7QQT.js → types-XNMNQGET.js} +2 -2
- package/dist/cli/chunks/unified-memory-H2J5BHPY.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-LFGIWMTS.js +2 -0
- package/dist/cli/chunks/unified-persistence-F6W7EXU5.js +2 -0
- package/dist/cli/chunks/{upgrade-PMPB7NGB.js → upgrade-MVTMTOPL.js} +2 -2
- package/dist/cli/chunks/{validate-G37QKKXK.js → validate-OJWR2AGZ.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-6X22J3VD.js → validate-swarm-2RGSF2K2.js} +2 -2
- package/dist/cli/chunks/{vibium-SGBJKHQL.js → vibium-O3ZLAEEZ.js} +2 -2
- package/dist/cli/chunks/visual-security-EHVU32UE.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-S46Y5BUJ.js → web-tree-sitter-6VPASTI4.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-PTYCETNM.js → windsurf-installer-CINHOW3N.js} +2 -2
- package/dist/cli/chunks/{witness-chain-5SCRFT2K.js → witness-chain-2NXW7FT7.js} +2 -2
- package/dist/cli/chunks/witness-chain-BIICGRHC.js +2 -0
- package/dist/cli/chunks/{witness-key-manager-XIAMRVUZ.js → witness-key-manager-ODW4DJWT.js} +2 -2
- package/dist/cli/chunks/{workflow-BPQA2NAI.js → workflow-BFGS2GAU.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-PVTYPYY4.js +2 -0
- package/dist/cli/chunks/{wrappers-IWZZZOAU.js → wrappers-VEVVSVMS.js} +2 -2
- package/dist/cli/commands/platform.d.ts +17 -0
- package/dist/cli/commands/platform.js +91 -41
- package/dist/cli/handlers/init-handler.d.ts +1 -0
- package/dist/cli/handlers/init-handler.js +9 -3
- package/dist/init/codex-installer.d.ts +22 -3
- package/dist/init/codex-installer.js +132 -54
- package/dist/init/codex-skill-manifest.d.ts +43 -0
- package/dist/init/codex-skill-manifest.js +21 -0
- package/dist/init/orchestrator.js +1 -0
- package/dist/init/phases/09-assets.js +10 -1
- package/dist/init/phases/phase-interface.d.ts +2 -0
- package/dist/mcp/bundle.js +2 -2
- package/package.json +5 -1
- package/dist/cli/chunks/adapter-NIUFP6QX.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-DC4DNCPB.js +0 -2
- package/dist/cli/chunks/base-EXD3ULZT.js +0 -2
- package/dist/cli/chunks/browser-workflow-KOMASCB7.js +0 -2
- package/dist/cli/chunks/chunk-T5L65R23.js +0 -2
- package/dist/cli/chunks/client-ZJQMJO5N.js +0 -2
- package/dist/cli/chunks/codex-installer-HVSZBHH2.js +0 -10
- package/dist/cli/chunks/core-handlers-U2YJLH6O.js +0 -2
- package/dist/cli/chunks/cross-domain-router-E7EMKZEK.js +0 -2
- package/dist/cli/chunks/dream-ZMNQYBJO.js +0 -2
- package/dist/cli/chunks/heartbeat-scheduler-2JL4MAJR.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-AZD6O35G.js +0 -2
- package/dist/cli/chunks/hnsw-index-WJLE4S5L.js +0 -2
- package/dist/cli/chunks/hybrid-router-YTKJBAS2.js +0 -2
- package/dist/cli/chunks/impact-analyzer-CX56GZXA.js +0 -2
- package/dist/cli/chunks/init-wizard-WE6HIC66.js +0 -2
- package/dist/cli/chunks/kernel-MT55LNNI.js +0 -2
- package/dist/cli/chunks/knowledge-graph-WN3LQ2W7.js +0 -2
- package/dist/cli/chunks/llm-router-service-NKHEQQMN.js +0 -2
- package/dist/cli/chunks/load-test-3WIQASDF.js +0 -2
- package/dist/cli/chunks/memory-backend-W6YSNT6O.js +0 -2
- package/dist/cli/chunks/pattern-null-store-IV3ZESTR.js +0 -2
- package/dist/cli/chunks/platform-FA5TOPTH.js +0 -2
- package/dist/cli/chunks/protocol-executor-GFAG5G6K.js +0 -2
- package/dist/cli/chunks/provider-manager-TIVIJIYH.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-BYE7YF6Y.js +0 -2
- package/dist/cli/chunks/queen-coordinator-WOHYVV7A.js +0 -2
- package/dist/cli/chunks/router-VUW2UVCN.js +0 -2
- package/dist/cli/chunks/routing-feedback-WSUQMZAK.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-RHZCXVN6.js +0 -2
- package/dist/cli/chunks/safe-db-NTWEW7ZM.js +0 -2
- package/dist/cli/chunks/schedule-WEVC2GW2.js +0 -2
- package/dist/cli/chunks/scheduler-XHI5AJIS.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-QZUPKMHP.js +0 -2
- package/dist/cli/chunks/unified-memory-QKWUSEBV.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-Z2UQZRTK.js +0 -2
- package/dist/cli/chunks/unified-persistence-AVK2NSMI.js +0 -2
- package/dist/cli/chunks/visual-security-64UFH23G.js +0 -2
- package/dist/cli/chunks/witness-chain-ZIVSDX6C.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-TYP4MI2V.js +0 -2
- package/dist/cli/commands/init.d.ts +0 -19
- package/dist/cli/commands/init.js +0 -318
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dual-collect
|
|
3
|
+
description: Collect results from headless Codex workers
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dual Collect Skill
|
|
7
|
+
|
|
8
|
+
Collect and aggregate results from headless Codex workers stored in shared memory.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/dual-collect [--namespace <namespace>] [--format <format>]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
|
|
18
|
+
| Parameter | Default | Description |
|
|
19
|
+
|-----------|---------|-------------|
|
|
20
|
+
| `--namespace` | results | Memory namespace to search |
|
|
21
|
+
| `--format` | summary | Output format: summary, detailed, json |
|
|
22
|
+
| `--filter` | none | Filter by key pattern |
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Collect All Results
|
|
27
|
+
```
|
|
28
|
+
/dual-collect
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Collect from Specific Namespace
|
|
32
|
+
```
|
|
33
|
+
/dual-collect --namespace patterns
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Detailed Output
|
|
37
|
+
```
|
|
38
|
+
/dual-collect --format detailed
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Filter by Worker
|
|
42
|
+
```
|
|
43
|
+
/dual-collect --filter "worker-auth-*"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## How It Works
|
|
47
|
+
|
|
48
|
+
1. Queries the memory system for entries in specified namespace
|
|
49
|
+
2. Aggregates results from all workers
|
|
50
|
+
3. Formats output according to specified format
|
|
51
|
+
4. Displays summary of completed/failed workers
|
|
52
|
+
|
|
53
|
+
## Generated Commands
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# List all results
|
|
57
|
+
npx claude-flow@v3alpha memory list --namespace {{namespace}}
|
|
58
|
+
|
|
59
|
+
# Search for specific patterns
|
|
60
|
+
npx claude-flow@v3alpha memory search -q "{{filter}}" -n {{namespace}}
|
|
61
|
+
|
|
62
|
+
# Get detailed entries
|
|
63
|
+
{{#each results}}
|
|
64
|
+
npx claude-flow@v3alpha memory get -k "{{this.key}}" -n {{namespace}}
|
|
65
|
+
{{/each}}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Output Formats
|
|
69
|
+
|
|
70
|
+
### Summary (default)
|
|
71
|
+
```
|
|
72
|
+
Workers Completed: 4/4
|
|
73
|
+
├─ worker-auth-core: ✅ Complete (auth.service.ts)
|
|
74
|
+
├─ worker-auth-api: ✅ Complete (auth.controller.ts)
|
|
75
|
+
├─ worker-tests: ✅ Complete (15 tests passing)
|
|
76
|
+
└─ worker-docs: ✅ Complete (API.md updated)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Detailed
|
|
80
|
+
```
|
|
81
|
+
┌─────────────────────────────────────────────────┐
|
|
82
|
+
│ Worker: worker-auth-core │
|
|
83
|
+
│ Status: Complete │
|
|
84
|
+
│ Duration: 45s │
|
|
85
|
+
│ Files: auth.service.ts, auth.types.ts │
|
|
86
|
+
│ Result: Implemented JWT authentication │
|
|
87
|
+
└─────────────────────────────────────────────────┘
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### JSON
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"workers": [
|
|
94
|
+
{"id": "worker-auth-core", "status": "complete", "result": "..."}
|
|
95
|
+
],
|
|
96
|
+
"summary": {"total": 4, "completed": 4, "failed": 0}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Related Skills
|
|
101
|
+
|
|
102
|
+
- `/dual-spawn` - Spawn headless workers
|
|
103
|
+
- `/dual-coordinate` - Full hybrid workflow
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dual-coordinate
|
|
3
|
+
description: Coordinate hybrid Claude Code + Codex workflows
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dual Coordinate Skill
|
|
7
|
+
|
|
8
|
+
Coordinate hybrid workflows that use Claude Code for interactive reasoning and Codex for parallel background execution.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/dual-coordinate --workflow <workflow-name> --task "<task-description>"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
|
|
18
|
+
| Parameter | Default | Description |
|
|
19
|
+
|-----------|---------|-------------|
|
|
20
|
+
| `--workflow` | hybrid_development | Workflow template to use |
|
|
21
|
+
| `--task` | required | Task description |
|
|
22
|
+
| `--interactive-first` | true | Start with interactive phase |
|
|
23
|
+
|
|
24
|
+
## Available Workflows
|
|
25
|
+
|
|
26
|
+
### hybrid_development
|
|
27
|
+
Design interactively, implement in parallel, review interactively.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
/dual-coordinate --workflow hybrid_development --task "Build user authentication"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### parallel_feature
|
|
34
|
+
Spawn multiple Codex workers for parallel implementation.
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
/dual-coordinate --workflow parallel_feature --task "Implement REST API"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### design_and_execute
|
|
41
|
+
Interactive design phase, then batch execution.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
/dual-coordinate --workflow design_and_execute --task "Refactor auth module"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## How It Works
|
|
48
|
+
|
|
49
|
+
1. **Routing Decision**: Analyzes task to determine optimal platform split
|
|
50
|
+
2. **Interactive Phase**: Complex reasoning in Claude Code
|
|
51
|
+
3. **Parallel Phase**: Spawns Codex workers for execution
|
|
52
|
+
4. **Review Phase**: Returns to Claude Code for quality review
|
|
53
|
+
5. **Result Collection**: Aggregates worker results from memory
|
|
54
|
+
|
|
55
|
+
## Generated Commands
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Phase 1: Interactive (Claude Code)
|
|
59
|
+
# [Current session handles design/planning]
|
|
60
|
+
|
|
61
|
+
# Phase 2: Parallel (Codex)
|
|
62
|
+
{{#each workers}}
|
|
63
|
+
claude -p "{{this.task}}" --session-id {{this.id}} &
|
|
64
|
+
{{/each}}
|
|
65
|
+
wait
|
|
66
|
+
|
|
67
|
+
# Phase 3: Review (Claude Code)
|
|
68
|
+
npx claude-flow@v3alpha memory list --namespace results
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Example: Full Hybrid Workflow
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
/dual-coordinate --workflow hybrid_development --task "Build user profile API"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
This will:
|
|
78
|
+
1. **Design Phase** (Interactive): Discuss requirements, design endpoints, plan implementation
|
|
79
|
+
2. **Implement Phase** (Headless): Spawn coders, testers, docs writers in parallel
|
|
80
|
+
3. **Review Phase** (Interactive): Review implementation, discuss improvements
|
|
81
|
+
|
|
82
|
+
## Related Skills
|
|
83
|
+
|
|
84
|
+
- `/dual-spawn` - Spawn headless workers only
|
|
85
|
+
- `/dual-collect` - Collect results from workers
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dual-spawn
|
|
3
|
+
description: Spawn headless Codex workers from Claude Code for parallel execution
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dual Spawn Skill
|
|
7
|
+
|
|
8
|
+
Spawn multiple headless Codex workers to run tasks in parallel while you continue working interactively.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/dual-spawn "<task>" --workers <count> [--type <worker-type>]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Parameters
|
|
17
|
+
|
|
18
|
+
| Parameter | Default | Description |
|
|
19
|
+
|-----------|---------|-------------|
|
|
20
|
+
| `task` | required | Task description for workers |
|
|
21
|
+
| `--workers` | 3 | Number of parallel workers |
|
|
22
|
+
| `--type` | coder | Worker type: coder, tester, docs, reviewer |
|
|
23
|
+
| `--wait` | false | Wait for completion |
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
### Spawn Implementation Workers
|
|
28
|
+
```
|
|
29
|
+
/dual-spawn "Implement user authentication" --workers 2 --type coder
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Spawn Test Writers
|
|
33
|
+
```
|
|
34
|
+
/dual-spawn "Write comprehensive tests for auth module" --workers 2 --type tester
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Spawn Documentation Workers
|
|
38
|
+
```
|
|
39
|
+
/dual-spawn "Document all API endpoints" --workers 1 --type docs
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## How It Works
|
|
43
|
+
|
|
44
|
+
1. Initializes shared swarm coordination
|
|
45
|
+
2. Spawns headless Codex workers with `claude -p`
|
|
46
|
+
3. Each worker searches memory for relevant patterns
|
|
47
|
+
4. Workers execute in parallel
|
|
48
|
+
5. Results stored in shared memory
|
|
49
|
+
|
|
50
|
+
## Generated Commands
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Initialize coordination
|
|
54
|
+
npx claude-flow swarm init --topology hierarchical --max-agents {{workers}}
|
|
55
|
+
|
|
56
|
+
# Spawn workers
|
|
57
|
+
{{#each workers}}
|
|
58
|
+
claude -p "
|
|
59
|
+
You are worker-{{@index}}.
|
|
60
|
+
TASK: {{task}}
|
|
61
|
+
|
|
62
|
+
1. Search: memory_search(query='{{task_keywords}}')
|
|
63
|
+
2. Execute your assigned work
|
|
64
|
+
3. Store: memory_store(key='result-{{@index}}', namespace='results', upsert=true)
|
|
65
|
+
" --session-id task-{{@index}} &
|
|
66
|
+
{{/each}}
|
|
67
|
+
|
|
68
|
+
echo "Spawned {{workers}} headless workers"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## After Spawning
|
|
72
|
+
|
|
73
|
+
Use `/dual-collect` to gather results:
|
|
74
|
+
```
|
|
75
|
+
/dual-collect --namespace results
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Or check manually:
|
|
79
|
+
```bash
|
|
80
|
+
npx claude-flow memory list --namespace results
|
|
81
|
+
```
|
|
@@ -26,14 +26,39 @@ const codexShim = path.join(root, '.codex', 'hooks', 'aqe-runtime.cjs');
|
|
|
26
26
|
const shim = require('node:fs').existsSync(codexShim)
|
|
27
27
|
? codexShim
|
|
28
28
|
: path.join(root, '.claude', 'hooks', 'aqe-hook.cjs');
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
const adapterTimeout = Number(process.env.AQE_CODEX_HOOK_TIMEOUT_MS) || 25000;
|
|
30
|
+
const runtimeTimeout = Number(process.env.AQE_HOOK_TIMEOUT_MS)
|
|
31
|
+
|| Math.max(1000, adapterTimeout - 3000);
|
|
32
|
+
|
|
33
|
+
function runAqe(command, extraArgs = []) {
|
|
34
|
+
return spawnSync(process.execPath, [shim, command, ...extraArgs, '--json'], {
|
|
35
|
+
cwd: root,
|
|
36
|
+
env: {
|
|
37
|
+
...process.env,
|
|
38
|
+
CLAUDE_PROJECT_DIR: root,
|
|
39
|
+
AQE_HOOK_TIMEOUT_MS: String(runtimeTimeout),
|
|
40
|
+
},
|
|
41
|
+
input: JSON.stringify(input),
|
|
42
|
+
encoding: 'utf8',
|
|
43
|
+
timeout: adapterTimeout,
|
|
44
|
+
maxBuffer: 4 * 1024 * 1024,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Stop closes the current route-learning sentinel before session cleanup.
|
|
49
|
+
// Both AQE commands emit internal telemetry, so return no Codex JSON.
|
|
50
|
+
if (subcommand === 'stop') {
|
|
51
|
+
runAqe('post-route', ['--success', 'true']);
|
|
52
|
+
runAqe('session-end', ['--save-state']);
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const result = runAqe(subcommand);
|
|
57
|
+
|
|
58
|
+
// These commands produce AQE/Claude hook response shapes. Codex treats an
|
|
59
|
+
// empty successful response as continue, which preserves their side effects
|
|
60
|
+
// without forwarding unsupported permissionDecision or telemetry fields.
|
|
61
|
+
if (subcommand !== 'route') process.exit(0);
|
|
37
62
|
|
|
38
63
|
if (!result.stdout) process.exit(0);
|
|
39
64
|
|
|
@@ -46,7 +71,7 @@ try {
|
|
|
46
71
|
|
|
47
72
|
// AQE route results are useful context but are not themselves a Codex hook
|
|
48
73
|
// response. Wrap them in the supported additional-context envelope.
|
|
49
|
-
if (
|
|
74
|
+
if (!output.hookSpecificOutput) {
|
|
50
75
|
const agent = output.recommendedAgent || 'unspecified';
|
|
51
76
|
const confidence = Number.isFinite(output.confidence)
|
|
52
77
|
? ` (${Math.round(output.confidence * 100)}% confidence)`
|
package/.codex/hooks.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{
|
|
9
9
|
"type": "command",
|
|
10
10
|
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\" session-start",
|
|
11
|
-
"timeout":
|
|
11
|
+
"timeout": 30,
|
|
12
12
|
"statusMessage": "Loading AQE learning context"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
{
|
|
27
27
|
"type": "command",
|
|
28
28
|
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\" route",
|
|
29
|
-
"timeout":
|
|
29
|
+
"timeout": 30,
|
|
30
30
|
"statusMessage": "Routing through the AQE fleet"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
{
|
|
46
46
|
"type": "command",
|
|
47
47
|
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\" pre-command",
|
|
48
|
-
"timeout":
|
|
48
|
+
"timeout": 30,
|
|
49
49
|
"statusMessage": "Applying AQE command guardrails"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
{
|
|
63
63
|
"type": "command",
|
|
64
64
|
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\" pre-edit",
|
|
65
|
-
"timeout":
|
|
65
|
+
"timeout": 30,
|
|
66
66
|
"statusMessage": "Applying AQE edit guardrails"
|
|
67
67
|
},
|
|
68
68
|
{
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
{
|
|
82
82
|
"type": "command",
|
|
83
83
|
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\" post-command",
|
|
84
|
-
"timeout":
|
|
84
|
+
"timeout": 30,
|
|
85
85
|
"statusMessage": "Recording AQE command outcome"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
{
|
|
99
99
|
"type": "command",
|
|
100
100
|
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\" post-edit",
|
|
101
|
-
"timeout":
|
|
101
|
+
"timeout": 30,
|
|
102
102
|
"statusMessage": "Recording AQE edit outcome"
|
|
103
103
|
},
|
|
104
104
|
{
|
|
@@ -152,9 +152,9 @@
|
|
|
152
152
|
"hooks": [
|
|
153
153
|
{
|
|
154
154
|
"type": "command",
|
|
155
|
-
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\"
|
|
156
|
-
"timeout":
|
|
157
|
-
"statusMessage": "
|
|
155
|
+
"command": "node \"$(git rev-parse --show-toplevel)/.codex/hooks/aqe-codex-hook.cjs\" stop",
|
|
156
|
+
"timeout": 60,
|
|
157
|
+
"statusMessage": "Closing AQE learning outcome and saving session state"
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
160
|
"type": "command",
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,48 @@ All notable changes to the Agentic QE project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.13.4] - 2026-08-02
|
|
9
|
+
|
|
10
|
+
Codex users now receive a complete, upgradeable Agentic QE workflow instead of
|
|
11
|
+
an MCP entry and partial instructions that could drift from the installed
|
|
12
|
+
hooks and skills.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **A curated Codex-native QE workflow fleet** ([#587]). New research,
|
|
17
|
+
dependency-aware planning, and lightweight Ruflo orchestration skills join
|
|
18
|
+
the existing quality-planning, testing, and review workflows. Ruflo remains
|
|
19
|
+
optional development-time guidance, enabled explicitly with `--with-ruflo`,
|
|
20
|
+
and is not a runtime dependency.
|
|
21
|
+
- **End-to-end Codex installation verification.** `aqe platform verify codex`
|
|
22
|
+
now checks MCP configuration, AQE instructions, lifecycle hooks, adapters,
|
|
23
|
+
runtimes, and every required skill, with a failing exit code when the install
|
|
24
|
+
is incomplete.
|
|
25
|
+
- **A package-boundary release gate.** `npm run verify:codex-package` verifies
|
|
26
|
+
the actual npm tarball contains all curated skills and hooks, excludes the
|
|
27
|
+
vendored Ruflo tree and dependencies, and confirms every MCP tool named in
|
|
28
|
+
generated Codex guidance is registered.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- **`--no-mcp` now applies to Codex installs.** Previously the Claude phase
|
|
33
|
+
honored the flag but the Codex asset phase still wrote `.codex/config.toml`.
|
|
34
|
+
- **Codex upgrades now refresh AQE-owned configuration safely.** Existing MCP
|
|
35
|
+
blocks can switch memory backends, generated `AGENTS.md` guidance updates
|
|
36
|
+
inside explicit ownership markers, and user TOML, instructions, and hook
|
|
37
|
+
groups remain intact.
|
|
38
|
+
- **Partial Codex installs are diagnosable.** MCP, rules, hooks, and skills now
|
|
39
|
+
report independent outcomes, so a malformed hooks file no longer hides the
|
|
40
|
+
components that succeeded or prevents later skill installation.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- Removed the unused duplicate init command implementation. The active CLI
|
|
45
|
+
continues through the modular init handler, eliminating a second stale help
|
|
46
|
+
and option surface.
|
|
47
|
+
|
|
48
|
+
[#587]: https://github.com/proffesor-for-testing/agentic-qe/issues/587
|
|
49
|
+
|
|
8
50
|
## [3.13.3] - 2026-07-29
|
|
9
51
|
|
|
10
52
|
Two independent quality-of-evidence fixes: learning capture could stop silently
|
package/dist/cli/bundle.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.
|
|
3
|
-
import{a as y}from"./chunks/chunk-
|
|
2
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.4");process.exit(0)}
|
|
3
|
+
import{a as y}from"./chunks/chunk-RCRKCMN5.js";import{a as f,c as P}from"./chunks/chunk-KDICUKYX.js";import"./chunks/chunk-GGZB2ZBB.js";P();import{Command as S}from"commander";import m from"chalk";function h(e,i,a,s){let l=e.command(i).description(a);if(s)for(let u of s)l.alias(u);return l.helpOption(!1),l.allowUnknownOption(!0),l.allowExcessArguments(!0),l}function w(e,i){let a=e.commands,s=a.indexOf(i);s>=0&&a.splice(s,1)}function o(e,i){let a=h(e,i.name,i.description,i.aliases);a.action(async()=>{try{let s=await i.factory();w(e,a),e.addCommand(s),await e.parseAsync(process.argv)}catch(s){console.error(`Failed to load command '${i.name}':`,s instanceof Error?s.message:s),process.exit(1)}})}function d(e,i,a,s,l,u){let g=h(e,i,a,u);g.action(async()=>{try{let p=await s();w(e,g),p.register(e,l),await e.parseAsync(process.argv)}catch(p){console.error(`Failed to load command '${i}':`,p instanceof Error?p.message:p),process.exit(1)}})}var I=["[UnifiedMemory]","[HybridBackend]","[UnifiedPersistence]","[PersistentSONAEngine]","[QueenGovernance]","[QueenCoordinator]","[Queen]","[QUEEN]","[DomainBreakerRegistry]","[RealEmbeddings]","[HNSWIndex]","[PatternStore]","[TestGenerationCoordinator]","[CodeIntelligence]","[ProductFactorsBridge]","[LearningOptimizationCoordinator]","[DreamEngine]","[DreamScheduler]","[SecurityCompliance]","[Providers]","[GNN]","[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]","[coordination]","[PatternLearnerService]","[RequirementsValidation]","[ParserRegistry]","[AdversarialDefense]","[ContinueGateIntegration]","[ContinueGate]","[SQLitePatternStore]","[TokenTracking]","[InfraHealing]","[ExperienceCapture]"],b=/^\[\d{2}:\d{2}:\d{2}\.\d{3}\]\s+\[/,D=console.log.bind(console);console.log=(...e)=>{let a=(typeof e[0]=="string"?e[0]:"").trimStart();if(I.some(s=>a.startsWith(s))||b.test(a)){process.stderr.write(e.map(String).join(" ")+`
|
|
4
4
|
`);return}D(...e)};console.info=(...e)=>{process.stderr.write(e.map(String).join(" ")+`
|
|
5
|
-
`)};var t={kernel:null,queen:null,router:null,workflowOrchestrator:null,scheduledWorkflows:new Map,persistentScheduler:null,initialized:!1};function C(e,i){let a=e.getDomainAPI("visual-accessibility");if(a?.registerWorkflowActions)try{a.registerWorkflowActions(i)}catch(l){console.error(m.yellow(` Warning: Could not register visual-accessibility workflow actions: ${f(l)}`))}let s=e.getDomainAPI("requirements-validation");if(s?.registerWorkflowActions)try{s.registerWorkflowActions(i)}catch(l){console.error(m.yellow(` Warning: Could not register requirements-validation workflow actions: ${f(l)}`))}}async function R(){let{QEKernelImpl:e}=await import("./chunks/kernel-
|
|
5
|
+
`)};var t={kernel:null,queen:null,router:null,workflowOrchestrator:null,scheduledWorkflows:new Map,persistentScheduler:null,initialized:!1};function C(e,i){let a=e.getDomainAPI("visual-accessibility");if(a?.registerWorkflowActions)try{a.registerWorkflowActions(i)}catch(l){console.error(m.yellow(` Warning: Could not register visual-accessibility workflow actions: ${f(l)}`))}let s=e.getDomainAPI("requirements-validation");if(s?.registerWorkflowActions)try{s.registerWorkflowActions(i)}catch(l){console.error(m.yellow(` Warning: Could not register requirements-validation workflow actions: ${f(l)}`))}}async function R(){let{QEKernelImpl:e}=await import("./chunks/kernel-BSGSVYPM.js"),{CrossDomainEventRouter:i}=await import("./chunks/cross-domain-router-7ZHDB2V3.js"),{DefaultProtocolExecutor:a}=await import("./chunks/protocol-executor-GDRHCW3Q.js"),{WorkflowOrchestrator:s}=await import("./chunks/workflow-orchestrator-PVTYPYY4.js"),{createQueenCoordinator:l}=await import("./chunks/queen-coordinator-GI7GNVDM.js"),{createPersistentScheduler:u}=await import("./chunks/scheduler-CGSXNEPJ.js");t.kernel=new e({maxConcurrentAgents:15,memoryBackend:"sqlite",hnswEnabled:!0,lazyLoading:!0,enabledDomains:[...y],enableExperienceBridge:!1}),await t.kernel.initialize(),t.router=new i(t.kernel.eventBus),await t.router.initialize();let g=A=>t.kernel.getDomainAPI(A),p=new a(t.kernel.eventBus,t.kernel.memory,g);t.workflowOrchestrator=new s(t.kernel.eventBus,t.kernel.memory,t.kernel.coordinator),await t.workflowOrchestrator.initialize(),C(t.kernel,t.workflowOrchestrator),t.persistentScheduler=u(),t.queen=l(t.kernel,t.router,p,void 0),await t.queen.initialize();let{adoptExternalFleet:E}=await import("./chunks/core-handlers-S37RHLKP.js");E({kernel:t.kernel,queen:t.queen,router:t.router,workflowOrchestrator:t.workflowOrchestrator}),t.initialized=!0}async function k(){if(t.initialized&&t.kernel&&t.queen)return!0;let e=await import("fs"),a=(await import("path")).resolve(".agentic-qe");return e.existsSync(a)?c():(console.error(m.red(`
|
|
6
6
|
Error: AQE system not initialized in this directory.`)),console.log(m.yellow("Run `aqe init` first to set up this project.\n")),!1)}async function c(){if(t.initialized&&t.kernel&&t.queen)return!0;process.stderr.write(m.gray("Auto-initializing v3 system...")+`
|
|
7
7
|
`);let e=3e4,i=new Promise((a,s)=>{setTimeout(()=>s(new Error("Initialization timeout after 30 seconds")),e)});try{return await Promise.race([R(),i]),process.stderr.write(m.green("System ready")+`
|
|
8
8
|
|
|
9
|
-
`),!0}catch(a){return a.message.includes("timeout")?(console.error(m.red("Initialization timed out after 30 seconds.")),console.log(m.yellow("Try running `aqe init` manually."))):(console.error(m.red("Failed to auto-initialize:"),a),console.log(m.yellow("Try running `aqe init` manually."))),!1}}async function r(e=0){try{t.workflowOrchestrator&&t.workflowOrchestrator.dispose().catch(()=>{}),t.queen&&t.queen.dispose().catch(()=>{}),t.router&&t.router.dispose().catch(()=>{}),t.kernel&&t.kernel.dispose().catch(()=>{})}catch{}process.exit(e)}var n=new S,v="3.13.
|
|
9
|
+
`),!0}catch(a){return a.message.includes("timeout")?(console.error(m.red("Initialization timed out after 30 seconds.")),console.log(m.yellow("Try running `aqe init` manually."))):(console.error(m.red("Failed to auto-initialize:"),a),console.log(m.yellow("Try running `aqe init` manually."))),!1}}async function r(e=0){try{t.workflowOrchestrator&&t.workflowOrchestrator.dispose().catch(()=>{}),t.queen&&t.queen.dispose().catch(()=>{}),t.router&&t.router.dispose().catch(()=>{}),t.kernel&&t.kernel.dispose().catch(()=>{})}catch{}process.exit(e)}var n=new S,v="3.13.4";n.name("aqe").description("Agentic QE - Domain-Driven Quality Engineering").version(v);d(n,"init","Initialize the AQE v3 system",()=>import("./chunks/init-handler-NPOUX47N.js").then(e=>e.createInitHandler(r)),t);d(n,"status","Show system status",()=>import("./chunks/status-handler-QRHI3F4V.js").then(e=>e.createStatusHandler(r,k)),t);d(n,"health","Check system health",()=>import("./chunks/status-handler-QRHI3F4V.js").then(e=>e.createHealthHandler(r,k)),t);d(n,"task","Manage QE tasks",()=>import("./chunks/task-handler-C7BKMOCL.js").then(e=>e.createTaskHandler(r,c)),t);d(n,"agent","Manage QE agents",()=>import("./chunks/agent-handler-J5EPFBSZ.js").then(e=>e.createAgentHandler(r,c)),t);d(n,"domain","Domain operations",()=>import("./chunks/domain-handler-LRTJGTEH.js").then(e=>e.createDomainHandler(r,c)),t);d(n,"protocol","Execute coordination protocols",()=>import("./chunks/protocol-handler-5MMNVVPX.js").then(e=>e.createProtocolHandler(r,c)),t);d(n,"brain","Export, import, and inspect QE brain state",()=>import("./chunks/brain-handler-MSYMTM5B.js").then(e=>e.createBrainHandler(r,c)),t);d(n,"hypergraph","Query the code knowledge hypergraph",()=>import("./chunks/hypergraph-handler-ZV4AZRGF.js").then(e=>e.createHypergraphHandler(r,c)),t,["hg"]);d(n,"heartbeat","Manage the token-free heartbeat scheduler",()=>import("./chunks/heartbeat-handler-3JKQORXA.js").then(e=>e.createHeartbeatHandler(r)),t);d(n,"routing","View routing performance, economics, and accuracy",()=>import("./chunks/routing-handler-PSWR2UCT.js").then(e=>e.createRoutingHandler(r)),t);o(n,{name:"workflow",description:"Manage QE workflows and pipelines (ADR-041)",factory:()=>import("./chunks/workflow-BFGS2GAU.js").then(e=>e.createWorkflowCommand(t,r,c))});o(n,{name:"test",description:"Test generation, execution, scheduling, and load testing",factory:()=>import("./chunks/test-KX4UKHSX.js").then(e=>e.createTestCommand(t,r,c))});o(n,{name:"coverage",description:"Coverage analysis shortcut",factory:()=>import("./chunks/coverage-T7EENIDE.js").then(e=>e.createCoverageCommand(t,r,c))});o(n,{name:"quality",description:"Quality assessment shortcut",factory:()=>import("./chunks/quality-WKC4JCB3.js").then(e=>e.createQualityCommand(t,r,c))});o(n,{name:"quality-gate",description:"Two-gate, three-valued quality verdict against a pinned checklist (ADR-119)",factory:()=>import("./chunks/quality-gate-CVHVSORK.js").then(e=>e.createQualityGateCommand(t,r,c))});o(n,{name:"security",description:"Security scanning and URL validation",factory:()=>import("./chunks/security-YDWLYXYD.js").then(e=>e.createSecurityCommand(t,r,c))});o(n,{name:"arena",description:"Competitive test-strategy tournaments (ADR-104)",factory:()=>import("./chunks/arena-SI7IPVZ3.js").then(e=>e.createArenaCommand(t,r,c))});o(n,{name:"code",description:"Code intelligence analysis",factory:()=>import("./chunks/code-V2B4FP3X.js").then(e=>e.createCodeCommand(t,r,c))});o(n,{name:"completions",description:"Generate shell completions for aqe",factory:()=>import("./chunks/completions-TAJ6N7YZ.js").then(e=>e.createCompletionsCommand(r))});o(n,{name:"upgrade",description:"Detect optional native bindings and recommend install / flag changes",factory:()=>import("./chunks/upgrade-MVTMTOPL.js").then(e=>e.createUpgradeCommand(r))});o(n,{name:"fleet",description:"Fleet operations with multi-agent progress tracking",factory:()=>import("./chunks/fleet-FUQ6G4SB.js").then(e=>e.createFleetCommand(t,r,c,C))});o(n,{name:"validate",description:"Validation commands for skills and agents",factory:()=>import("./chunks/validate-swarm-2RGSF2K2.js").then(e=>e.createValidateSwarmCommand(t,r,c))});o(n,{name:"skill",description:"Skill validation and reporting (ADR-056)",factory:()=>import("./chunks/validate-OJWR2AGZ.js").then(e=>e.createValidateCommand(t,r,c))});o(n,{name:"eval",description:"Run skill evaluation suites in parallel",factory:()=>import("./chunks/eval-JVVVQVV6.js").then(e=>e.createEvalCommand())});o(n,{name:"ci",description:"CI/CD pipeline orchestration",factory:()=>import("./chunks/ci-DK4FGREO.js").then(e=>e.createCICommand(t,r,c))});o(n,{name:"token-usage",description:"View and analyze token consumption metrics (ADR-042)",factory:()=>import("./chunks/token-usage-V6JW55RV.js").then(e=>e.createTokenUsageCommand())});o(n,{name:"llm",description:"LLM Router management (ADR-043)",factory:()=>import("./chunks/llm-router-XLTE52H5.js").then(e=>e.createLLMRouterCommand())});o(n,{name:"sync",description:"Sync local learning data to cloud PostgreSQL",factory:()=>import("./chunks/sync-2QRCT5MT.js").then(e=>e.createSyncCommands())});o(n,{name:"hooks",description:"Self-learning QE hooks for pattern recognition and guidance",factory:()=>import("./chunks/hooks-JNW5ZB2E.js").then(e=>e.createHooksCommand())});o(n,{name:"learning",description:"AQE self-learning system management (standalone, no claude-flow required)",factory:()=>import("./chunks/learning-24PCHLWU.js").then(e=>e.createLearningCommand())});o(n,{name:"memory",description:"Memory store, retrieve, search, and delete operations",factory:()=>import("./chunks/memory-PDA7MQ7E.js").then(e=>e.createMemoryCommand(t,r,c))});o(n,{name:"mcp",description:"Start the MCP protocol server for Claude Code integration",factory:()=>import("./chunks/mcp-V4MAYT7C.js").then(e=>e.createMcpCommand())});o(n,{name:"platform",description:"Manage coding agent platform configurations",factory:()=>import("./chunks/platform-L56TGXGZ.js").then(e=>e.createPlatformCommand())});o(n,{name:"prove",description:"Generate a verifiable Proof-of-Quality attestation",factory:()=>import("./chunks/prove-DJ6BQ2AK.js").then(e=>e.createProveCommand(t,r,c))});o(n,{name:"ruvector",description:"RuVector integration management",factory:()=>import("./chunks/ruvector-commands-VTP6Y7PN.js").then(e=>e.createRuVectorCommand())});o(n,{name:"audit",description:"Witness chain audit trail management",factory:()=>import("./chunks/audit-ZDKR3HT6.js").then(e=>e.createAuditCommand(t,r,c))});o(n,{name:"pipeline",description:"Manage YAML deterministic pipelines (Imp-9)",factory:()=>import("./chunks/pipeline-GQOJM3LU.js").then(e=>e.createPipelineCommand(t,r,c))});o(n,{name:"plugin",description:"Manage external QE domain plugins",factory:()=>import("./chunks/plugin-SZ6PZKYX.js").then(e=>e.createPluginCommand())});o(n,{name:"daemon",description:"Manage the QE Quality Daemon",factory:()=>import("./chunks/daemon-22NOG5XI.js").then(e=>e.createDaemonCommand())});process.on("SIGINT",async()=>{console.log(m.yellow(`
|
|
10
10
|
|
|
11
11
|
Shutting down...`)),console.log(m.green(`Shutdown complete
|
|
12
12
|
`)),await r(0)});process.on("SIGTERM",async()=>{console.log(m.yellow(`
|
|
13
|
-
Received SIGTERM, shutting down gracefully...`)),await r(0)});async function x(){let{isVersionFastPath:e}=await import("./chunks/fast-paths-
|
|
13
|
+
Received SIGTERM, shutting down gracefully...`)),await r(0)});async function x(){let{isVersionFastPath:e}=await import("./chunks/fast-paths-LUFARZR5.js");e(process.argv)&&(console.log(v),process.exit(0));let{bootstrapTokenTracking:i}=await import("./chunks/token-bootstrap-6SKOJM3U.js");await i({enableOptimization:!0,enablePersistence:!0,verbose:process.env.AQE_VERBOSE==="true"}),await n.parseAsync(),await r(0)}x().catch(async e=>{console.error(m.red("Fatal error:"),e),await r(1)});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.4");process.exit(0)}
|
|
2
|
+
import{a,b,c}from"./chunk-6BHRSGR7.js";import"./chunk-L3UTZEVW.js";import"./chunk-5IVXM3TE.js";import"./chunk-HN2DD2DQ.js";import"./chunk-KDICUKYX.js";import"./chunk-GGZB2ZBB.js";export{a as AgentBoosterAdapter,b as createAgentBoosterAdapter,c as createAgentBoosterAdapterSync};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.
|
|
2
|
-
import{a as x}from"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.4");process.exit(0)}
|
|
2
|
+
import{a as x}from"./chunk-QGH54HTH.js";import{c as f}from"./chunk-E7FCVH32.js";import"./chunk-GGZB2ZBB.js";x();import{createRequire as w}from"module";var S=f.create("agent-booster-wasm"),t={JavaScript:0,TypeScript:1,Python:2,Rust:3,Go:4,Java:5,C:6,Cpp:7},l={ExactReplace:0,FuzzyReplace:1,InsertAfter:2,InsertBefore:3,Append:4},v={0:"JavaScript",1:"TypeScript",2:"Python",3:"Rust",4:"Go",5:"Java",6:"C",7:"Cpp"},a=null,u=null,p=null;async function g(){if(a)return!0;if(p)return!1;try{if(a=w(import.meta.url)("./agent_booster_wasm.js"),!a)throw new Error("WASM module loaded but is null");return u=new a.AgentBoosterWasm,!0}catch(e){return p=e,console.warn("[AgentBoosterWASM] Failed to load WASM module:",e),!1}}function A(e){return{".js":t.JavaScript,".mjs":t.JavaScript,".cjs":t.JavaScript,".jsx":t.JavaScript,".ts":t.TypeScript,".tsx":t.TypeScript,".mts":t.TypeScript,".cts":t.TypeScript,".py":t.Python,".rs":t.Rust,".go":t.Go,".java":t.Java,".c":t.C,".h":t.C,".cpp":t.Cpp,".cc":t.Cpp,".cxx":t.Cpp,".hpp":t.Cpp}[e.toLowerCase()]??t.JavaScript}var M=[{name:"var-to-const",detect:(e,r)=>e.includes("var ")&&r.includes("const "),apply:(e,r)=>e.replace(/\bvar\s+/g,"const ")},{name:"var-to-let",detect:(e,r)=>e.includes("var ")&&r.includes("let "),apply:(e,r)=>e.replace(/\bvar\s+/g,"let ")},{name:"add-types-function",detect:(e,r)=>e.includes("function")&&!e.includes(":")&&r.includes(":"),apply:(e,r)=>r},{name:"async-wrapper",detect:(e,r)=>!e.includes("async")&&r.includes("async")&&r.includes("await"),apply:(e,r)=>r},{name:"try-catch-wrapper",detect:(e,r)=>!e.includes("try {")&&r.includes("try {"),apply:(e,r)=>r},{name:"null-check",detect:(e,r)=>!e.includes("if (!")&&!e.includes("if (!")&&(r.includes("if (!")||r.includes("?.")),apply:(e,r)=>r},{name:"test-assertion",detect:(e,r)=>e.includes("test(")&&!e.includes("expect(")&&r.includes("expect("),apply:(e,r)=>r}];function y(e,r){for(let n of M)if(n.detect(e,r))try{return{success:!0,code:n.apply(e,r),pattern:n.name}}catch(s){S.debug("Pattern transform failed, trying next",{pattern:n.name,error:s instanceof Error?s.message:String(s)});continue}return{success:!1,code:r}}async function b(e,r,n,s={}){let o=performance.now(),{confidenceThreshold:T=.5,allowFallback:d=!0}=s;if(!e.trim())return{success:!0,mergedCode:r,confidence:1,strategy:l.Append,syntaxValid:!0,source:"fallback",latencyMs:performance.now()-o};if(await g()&&u&&a)try{let c=a.WasmLanguage[v[n]],i=u.apply_edit(e,r,c);return{success:!0,mergedCode:i.merged_code,confidence:i.confidence,strategy:i.strategy,syntaxValid:i.syntax_valid,source:"wasm",latencyMs:performance.now()-o}}catch(c){let i=c;if(d){let m=y(e,r);if(m.success)return{success:!0,mergedCode:m.code,confidence:.7,strategy:l.FuzzyReplace,syntaxValid:!0,source:"pattern",latencyMs:performance.now()-o}}return{success:!1,mergedCode:r,confidence:0,strategy:l.Append,syntaxValid:!1,source:"fallback",latencyMs:performance.now()-o,error:i.message}}if(d){let c=y(e,r);return{success:c.success,mergedCode:c.code,confidence:c.success?.7:0,strategy:l.FuzzyReplace,syntaxValid:!0,source:"pattern",latencyMs:performance.now()-o}}return{success:!1,mergedCode:r,confidence:0,strategy:l.Append,syntaxValid:!1,source:"fallback",latencyMs:performance.now()-o,error:p?.message??"WASM not available"}}async function W(e,r={}){return Promise.all(e.map(({original:n,edit:s,language:o})=>b(n,s,o,r)))}async function C(){return g()}async function L(){return await g()&&a?a.AgentBoosterWasm.version():"unavailable"}async function R(){if(await g(),u&&a)try{u.apply_edit("function x() {}","function x() {}",a.WasmLanguage.JavaScript)}catch(e){console.debug("[AgentBoosterWASM] Warmup error:",e instanceof Error?e.message:e)}}var _={transform:b,batchTransform:W,isWasmAvailable:C,getVersion:L,warmup:R,Language:t,MergeStrategy:l,languageFromExtension:A};export{t as Language,l as MergeStrategy,W as batchTransform,_ as default,L as getVersion,C as isWasmAvailable,A as languageFromExtension,b as transform,R as warmup};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.
|
|
2
|
-
import{b 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.13.4");process.exit(0)}
|
|
2
|
+
import{b as p}from"./chunk-IVZA5XTW.js";import{a as g}from"./chunk-Y7VWCP35.js";import"./chunk-HN2DD2DQ.js";import"./chunk-GGZB2ZBB.js";import s from"chalk";var l=class{name="agent";description="Manage QE agents";cleanupAndExit;ensureInitialized;constructor(n,t){this.cleanupAndExit=n,this.ensureInitialized=t}register(n,t){let a=n.command("agent").description(this.description);a.command("list").description("List all agents").option("-d, --domain <domain>","Filter by domain").option("-s, --status <status>","Filter by status").action(async e=>{await this.executeList(e,t)}),a.command("spawn <domain>").description("Spawn an agent in a domain").option("-t, --type <type>","Agent type","worker").option("-c, --capabilities <caps>","Comma-separated capabilities","general").option("--no-progress","Disable progress indicator").action(async(e,o)=>{await this.executeSpawn(e,o,t)})}async executeList(n,t){if(await this.ensureInitialized())try{let a=n.domain?t.queen.getAgentsByDomain(n.domain):t.queen.listAllAgents();if(n.status&&(a=a.filter(e=>e.status===n.status)),console.log(s.blue(`
|
|
3
3
|
Agents (${a.length})
|
|
4
4
|
`)),a.length===0)console.log(s.gray(" No agents found"));else{let e=new Map;for(let i of a)e.has(i.domain)||e.set(i.domain,[]),e.get(i.domain).push(i);let o=Array.from(e.entries());for(let[i,m]of o){console.log(s.cyan(` ${i}:`));for(let r of m)console.log(` ${r.id}`),console.log(` Type: ${r.type}`),console.log(` Status: ${g(r.status)}`),r.startedAt&&console.log(s.gray(` Started: ${r.startedAt.toISOString()}`));console.log("")}}}catch(a){console.error(s.red(`
|
|
5
5
|
Failed to list agents:`),a),await this.cleanupAndExit(1)}}async executeSpawn(n,t,a){if(await this.ensureInitialized())try{let e=t.capabilities.split(",");console.log(s.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.13.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.4");process.exit(0)}
|
|
2
|
+
import"./chunk-GGZB2ZBB.js";import{existsSync as i,mkdirSync as d,unlinkSync as s,readdirSync as p,statSync as f}from"fs";import{join as o,basename as l}from"path";var v={branchDir:".agentic-qe/branches",defaultStrategy:"child-wins",orphanMaxAgeMs:36e5},g=class{config;parentAdapter;activeBranches=new Map;witnessChain=null;constructor(t,e){this.parentAdapter=t,this.config={...v,...e}}setWitnessChain(t){this.witnessChain=t}createBranch(t){if(this.activeBranches.has(t))throw new Error(`Branch already exists for agent ${t}`);i(this.config.branchDir)||d(this.config.branchDir,{recursive:!0});let e=o(this.config.branchDir,`${t}.rvf`),r=this.parentAdapter.path(),n=this.parentAdapter.derive(e),a={agentId:t,childPath:e,parentPath:r,childAdapter:n,createdAt:Date.now(),ingestLog:[]};return this.activeBranches.set(t,a),a}recordIngest(t,e){let r=this.activeBranches.get(t);if(r)for(let n of e)r.ingestLog.push({id:n.id,vector:n.vector})}async mergeBranch(t,e){let r=e??this.config.defaultStrategy,n=performance.now(),a=0;if(r==="child-wins"&&t.ingestLog.length>0)try{a=this.parentAdapter.ingest(t.ingestLog).accepted}catch(c){console.warn(`[AgentMemoryBranch] Merge replay failed for ${t.agentId}:`,c)}return this.witnessChain?.append("BRANCH_MERGE",{agentId:t.agentId,strategy:r,vectorsMerged:a,branchPath:t.childPath},`agent-${t.agentId}`),this.cleanupBranchFile(t),this.activeBranches.delete(t.agentId),{vectorsMerged:a,strategy:r,durationMs:performance.now()-n}}discardBranch(t){this.witnessChain?.append("BRANCH_DISCARD",{agentId:t.agentId,action:"discard",branchPath:t.childPath},`agent-${t.agentId}`),this.cleanupBranchFile(t),this.activeBranches.delete(t.agentId)}getBranch(t){return this.activeBranches.get(t)}getActiveBranches(){return Array.from(this.activeBranches.values())}listBranchFiles(){return i(this.config.branchDir)?p(this.config.branchDir).filter(e=>e.endsWith(".rvf")).map(e=>{let r=o(this.config.branchDir,e),n=f(r);return{agentId:l(e,".rvf"),path:r,sizeBytes:n.size,modifiedAt:n.mtime}}):[]}cleanupOrphans(t){let e=t??this.config.orphanMaxAgeMs,r=Date.now(),n=0;for(let a of this.listBranchFiles())if(r-a.modifiedAt.getTime()>e&&!this.activeBranches.has(a.agentId))try{s(a.path);let h=`${a.path}.idmap.json`;i(h)&&s(h),n++}catch{}return n}cleanupBranchFile(t){try{t.childAdapter.close()}catch{}try{i(t.childPath)&&s(t.childPath);let e=`${t.childPath}.idmap.json`;i(e)&&s(e)}catch{}}};export{g as AgentMemoryBranch};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.4");process.exit(0)}
|
|
2
|
+
import{a,b,c,d,e,f}from"./chunk-5RVWL2U3.js";import"./chunk-7YAHECC5.js";import"./chunk-26SNR2EK.js";import"./chunk-VOAXVNO5.js";import"./chunk-JDADACZZ.js";import"./chunk-RKNKFLCQ.js";import"./chunk-MANWLRAW.js";import"./chunk-WCUXA3NV.js";import"./chunk-U52IQFMP.js";import"./chunk-GNFKG2LX.js";import"./chunk-OU2YHXJY.js";import"./chunk-EEHEMDNV.js";import"./chunk-XLP44YGX.js";import"./chunk-ESMSH7HG.js";import"./chunk-XF4F5ZXO.js";import"./chunk-JJ5YIKTJ.js";import"./chunk-ZAT65V6I.js";import"./chunk-XTHRSBMJ.js";import"./chunk-TO7FTPRV.js";import"./chunk-QGH54HTH.js";import"./chunk-E7FCVH32.js";import"./chunk-27REOPQK.js";import"./chunk-HN2DD2DQ.js";import"./chunk-MPVOZKUP.js";import"./chunk-LEIG3KIG.js";import"./chunk-O45CEMVF.js";import"./chunk-RCRKCMN5.js";import"./chunk-KDICUKYX.js";import"./chunk-C75V5PTW.js";import"./chunk-QXF6EQFP.js";import"./chunk-OR2RC7ZH.js";import"./chunk-PI55PHUL.js";import"./chunk-GOHWEQEP.js";import"./chunk-SJ26ZR75.js";import"./chunk-DQ247474.js";import"./chunk-HGBVGEUE.js";import"./chunk-YZGA4ELM.js";import"./chunk-ERKYIV25.js";import"./chunk-GGZB2ZBB.js";export{b as AQELearningEngine,a as DEFAULT_ENGINE_CONFIG,c as DEFAULT_META_LEARNING_CONFIG,d as MetaLearningEngine,e as createAQELearningEngine,f as createDefaultLearningEngine};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.
|
|
2
|
-
import"./chunk-
|
|
1
|
+
import{createRequire as __cr}from"module";const require=__cr(import.meta.url);if(process.argv.includes('--version')||process.argv.includes('-v')){console.log("3.13.4");process.exit(0)}
|
|
2
|
+
import"./chunk-GGZB2ZBB.js";import*as K from"fs";import*as M from"path";function G(t){let r=t>>>0;return function(){r|=0,r=r+1831565813|0;let n=Math.imul(r^r>>>15,1|r);return n=n+Math.imul(n^n>>>7,61|n)^n,((n^n>>>14)>>>0)/4294967296}}function w(t,r){return Math.floor(t()*r)}var z=[["===","!=="],["!==","==="],["<=","<"],[">=",">"],["&&","||"],["||","&&"],["<","<="],[">",">="],["+","-"],["*","+"]];function H(t){let r=new Array(t.length).fill(!1),n=0,e="code";for(;n<t.length;){let s=t[n],i=t[n+1];e==="code"?(s==="'"?e="single":s==='"'?e="double":s==="`"?e="template":s==="/"&&i==="/"?e="line-comment":s==="/"&&i==="*"&&(e="block-comment"),e!=="code"&&(r[n]=!0)):(r[n]=!0,e==="single"&&s==="'"&&t[n-1]!=="\\"||e==="double"&&s==='"'&&t[n-1]!=="\\"||e==="template"&&s==="`"&&t[n-1]!=="\\"||e==="line-comment"&&s===`
|
|
3
3
|
`?e="code":e==="block-comment"&&s==="*"&&i==="/"&&(r[n+1]=!0,n++,e="code")),n++}return r}function E(t,r){let n=1;for(let e=0;e<r;e++)t[e]===`
|
|
4
4
|
`&&n++;return n}function A(t,r){let n=H(t),e=new Array(t.length).fill(!1),s=[];for(let[i,c]of z){let a=t.indexOf(i);for(;a!==-1;){let u=a+i.length,y=e.slice(a,u).some(Boolean),h=n.slice(a,u).some(Boolean),v=i===">"&&t[a-1]==="=",S=(i==="<"||i===">")&&(t[u]==="="||t[a-1]==="<"||t[a-1]===">");if(!y&&!h&&!v&&!S){for(let d=a;d<u;d++)e[d]=!0;s.push({id:`${r}:${E(t,a)}:${a}:${i}->${c}`,index:a,from:i,to:c,line:E(t,a)})}a=t.indexOf(i,a+1)}}return s.sort((i,c)=>i.index-c.index)}function W(t,r){return t.slice(0,r.index)+r.to+t.slice(r.index+r.from.length)}import*as m from"fs";import*as f from"path";import*as L from"os";import{spawnSync as J}from"child_process";function I(t){let r=f.resolve(t),n=f.join(r,"src"),e=f.join(r,"tests");if(!m.existsSync(n)||!m.existsSync(e))throw new Error(`not an arena fixture (expected src/ and tests/): ${r}`);let s=m.readdirSync(n).filter(c=>c.endsWith(".mjs")).sort().map(c=>f.join("src",c)),i={};for(let c of m.readdirSync(e).filter(a=>a.endsWith(".test.mjs")).sort())i[c.replace(".test.mjs","")]=f.join("tests",c);if(s.length===0||Object.keys(i).length===0)throw new Error(`fixture has no src/*.mjs or tests/*.test.mjs: ${r}`);return{root:r,sourceFiles:s,testGroups:i}}function T(t,r){let n=m.mkdtempSync(f.join(r,"arena-ws-"));m.mkdirSync(f.join(n,"src"),{recursive:!0}),m.mkdirSync(f.join(n,"tests"),{recursive:!0});for(let e of t.layout.sourceFiles){let s=t.mutatedFile&&t.mutatedFile.relPath===e?t.mutatedFile.content:m.readFileSync(f.join(t.layout.root,e),"utf8");m.writeFileSync(f.join(n,e),s)}for(let e of t.groups){let s=t.layout.testGroups[e];m.copyFileSync(f.join(t.layout.root,s),f.join(n,s))}return n}function $(t,r={}){let n=["--test"];r.coverage&&n.push("--experimental-test-coverage");let e=m.readdirSync(f.join(t,"tests")).filter(u=>u.endsWith(".test.mjs")).sort().map(u=>f.join("tests",u));n.push(...e);let s=process.hrtime.bigint(),i=J(process.execPath,n,{cwd:t,timeout:r.timeoutMs??12e4,encoding:"utf8"}),c=Number(process.hrtime.bigint()-s)/1e6,a=null;if(r.coverage){let u=/all files\s*\|\s*([\d.]+)/.exec(i.stdout??"");a=u?Number(u[1]):null}return{ok:i.status===0,durationMs:Math.round(c),coveragePct:a}}function N(){return m.mkdtempSync(f.join(L.tmpdir(),"qe-arena-"))}function B(t){m.rmSync(t,{recursive:!0,force:!0})}var k={kill:.6,coverage:.3,runtimePenalty:.1};function Q(t,r,n){let e=[...t].sort(),s=new Set([e.join("+")]),i=[{id:"s1",name:`all(${e.join("+")})`,groups:e}],c=0;for(;i.length<r&&c++<200;){let a=e.filter(()=>n()<.5);if(a.length===0)continue;let u=a.join("+");s.has(u)||(s.add(u),i.push({id:`s${i.length+1}`,name:u,groups:a}))}return i}function C(t,r,n){let e=r===null?0:r/100,s=k.kill*t+k.coverage*e-k.runtimePenalty*n;return Math.round(s*1e4)/1e4}function D(t,r,n,e){let s=T({layout:t,groups:r.groups},e),i=$(s,{coverage:!0});if(!i.ok)return{baselinePassed:!1,killed:0,total:0,coveragePct:i.coveragePct,runtimeMs:i.durationMs};let c=0,a=0;for(let u of n)for(let y of u.mutants){a++;let h=T({layout:t,groups:r.groups,mutatedFile:{relPath:u.relPath,content:W(u.source,y)}},e);$(h).ok||c++}return{baselinePassed:!0,killed:c,total:a,coveragePct:i.coveragePct,runtimeMs:i.durationMs}}function rt(t){let r=t.seed??42,n=t.log??(()=>{}),e=G(r),s=I(t.target),i=N();try{let c=t.maxMutants??24,a=s.sourceFiles.map(l=>{let o=K.readFileSync(M.join(s.root,l),"utf8");return{relPath:l,source:o,mutants:A(o,l)}}),u=a.flatMap(l=>l.mutants.map(o=>({file:l.relPath,m:o})));if(u.length>c){let l=new Set;for(;l.size<c;)l.add(u[w(e,u.length)].m.id);for(let o of a)o.mutants=o.mutants.filter(p=>l.has(p.id));u=a.flatMap(o=>o.mutants.map(p=>({file:o.relPath,m:p})))}n(`mutants: ${u.length} (of ${a.reduce((l,o)=>l+A(o.source,o.relPath).length,0)} enumerated)`);let y=Q(Object.keys(s.testGroups),t.strategies??4,e),h={},v=y.map(l=>{n(`evaluating ${l.id} [${l.name}] ...`);let o=D(s,l,a,i);return h[l.id]=o.runtimeMs,{s:l,e:o}}),S=Object.keys(s.testGroups).length,d=v.map(({s:l,e:o})=>{let p=o.total>0?Math.round(o.killed/o.total*1e4)/1e4:0,g=Math.round(l.groups.length/S*1e4)/1e4;return{...l,baselinePassed:o.baselinePassed,mutantsKilled:o.killed,mutantsTotal:o.total,killRate:p,coveragePct:o.coveragePct,suiteCostRatio:g,fitness:o.baselinePassed?C(p,o.coveragePct,g):0}}),P=[...d].sort((l,o)=>o.fitness-l.fitness||l.id.localeCompare(o.id)).map(l=>l.id),U=d.map(l=>d.map(o=>l.fitness>o.fitness?1:l.fitness<o.fitness?-1:0)),j=[];if(t.evolveSteps&&t.evolveSteps>0){let l=Object.keys(s.testGroups).sort(),o=d.find(g=>g.id===P[0]).groups,p=d.find(g=>g.id===P[0]).fitness;for(let g=1;g<=t.evolveSteps;g++){let R=l[w(e,l.length)],b=o.includes(R)?o.filter(q=>q!==R):[...o,R].sort();if(b.length===0){j.push({step:g,groups:b,fitness:0,accepted:!1});continue}let x=D(s,{id:`evo${g}`,name:b.join("+"),groups:b},a,i),_=x.total>0?x.killed/x.total:0,F=x.baselinePassed?C(_,x.coveragePct,b.length/l.length):0,O=F>p;j.push({step:g,groups:b,fitness:F,accepted:O}),O&&(o=b,p=F)}}return{contract:"arena-result@1",seed:r,target:M.relative(process.cwd(),s.root)||".",weights:{...k},mutantsTotal:u.length,strategies:d,ranking:P,competitiveArray:U,evolution:j,informational:{runtimesMs:h}}}finally{B(i)}}export{Q as buildStrategies,rt as runArena};
|