agentic-qe 3.9.14 → 3.9.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/accessibility-testing/SKILL.md +18 -0
- package/.claude/skills/enterprise-integration-testing/SKILL.md +1 -1
- package/.claude/skills/pentest-validation/SKILL.md +1 -1
- package/.claude/skills/qe-browser/evals/qe-browser.yaml +46 -63
- package/.claude/skills/qe-browser/scripts/smoke-test.sh +16 -4
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +52 -0
- package/assets/skills/accessibility-testing/SKILL.md +18 -0
- package/assets/skills/qe-browser/evals/qe-browser.yaml +46 -63
- package/assets/skills/qe-browser/scripts/smoke-test.sh +16 -4
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/cli/brain-commands.d.ts +14 -0
- package/dist/cli/brain-commands.js +24 -0
- package/dist/cli/bundle.js +7 -7
- package/dist/cli/chunks/adapter-XFJIW42U.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-O6EXMPMF.js → agent-booster-wasm-IECTFMRK.js} +2 -2
- package/dist/cli/chunks/{agent-handler-4LPJVTJU.js → agent-handler-HLLTKZ5G.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-PRR323JZ.js → agent-memory-branch-WJUD3DS4.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-UD4SXENM.js +2 -0
- package/dist/cli/chunks/{audit-YCKXQOXD.js → audit-3DLZNWHO.js} +2 -2
- package/dist/cli/chunks/base-ETEN7L2V.js +2 -0
- package/dist/cli/chunks/{better-sqlite3-44RIH62G.js → better-sqlite3-Q356NEQ6.js} +2 -2
- package/dist/cli/chunks/brain-handler-MX2HP7LO.js +89 -0
- package/dist/cli/chunks/{branch-enumerator-RVVS2UYR.js → branch-enumerator-Z3TF3HVO.js} +2 -2
- package/dist/cli/chunks/{browser-L6IKC4PR.js → browser-Z6PQ7FTO.js} +2 -2
- package/dist/cli/chunks/browser-workflow-KVHPOIBA.js +2 -0
- package/dist/cli/chunks/{chunk-JOGKQTCU.js → chunk-2KCMS4UW.js} +3 -3
- package/dist/cli/chunks/{chunk-VUS4VRPQ.js → chunk-2MJEAEOW.js} +2 -2
- package/dist/cli/chunks/{chunk-FNKKENLS.js → chunk-3ADFXSO2.js} +2 -2
- package/dist/cli/chunks/{chunk-JN7MSUGK.js → chunk-3CAPNE2H.js} +2 -2
- package/dist/cli/chunks/{chunk-MFGYMNNY.js → chunk-3EUA73H6.js} +2 -2
- package/dist/cli/chunks/{chunk-ORHCO2I7.js → chunk-3H657FNU.js} +2 -2
- package/dist/cli/chunks/{chunk-OZBTC26R.js → chunk-3K4IX7L4.js} +2 -2
- package/dist/cli/chunks/{chunk-GIUAY4KY.js → chunk-3SLFWPRE.js} +3 -3
- package/dist/cli/chunks/{chunk-P5YSBYZV.js → chunk-3ZGYB23S.js} +1 -1
- package/dist/cli/chunks/{chunk-6BK2S2WE.js → chunk-46K7ALFU.js} +2 -2
- package/dist/cli/chunks/{chunk-I3P5RZX7.js → chunk-4CFQZHUC.js} +3 -3
- package/dist/cli/chunks/{chunk-DMZ2XOEW.js → chunk-4PFHQH4B.js} +2 -2
- package/dist/cli/chunks/{chunk-TOSFK4VG.js → chunk-4ZN4GM7W.js} +1 -1
- package/dist/cli/chunks/{chunk-MXIFVOYA.js → chunk-5A5XANSD.js} +2 -2
- package/dist/cli/chunks/{chunk-UG2J5MTY.js → chunk-5E7FVOOG.js} +1 -1
- package/dist/cli/chunks/chunk-5LDXAVDC.js +2 -0
- package/dist/cli/chunks/{chunk-KFAN5FZM.js → chunk-666L7MC2.js} +2 -2
- package/dist/cli/chunks/{chunk-ZCRLZINE.js → chunk-66BUIFFH.js} +2 -2
- package/dist/cli/chunks/{chunk-6EZY2QVM.js → chunk-6V5P2VMQ.js} +8 -8
- package/dist/cli/chunks/{chunk-YPMBD44A.js → chunk-6XKZ62O7.js} +2 -2
- package/dist/cli/chunks/{chunk-JNLKLC7G.js → chunk-77OVXVN2.js} +2 -2
- package/dist/cli/chunks/{chunk-I5U64MHU.js → chunk-7DP2IQ6F.js} +2 -2
- package/dist/cli/chunks/{chunk-FFACJODG.js → chunk-7IF4LRX2.js} +2 -2
- package/dist/cli/chunks/{chunk-36YZ2UF7.js → chunk-7JFSMXIA.js} +2 -2
- package/dist/cli/chunks/{chunk-VU4QET3C.js → chunk-7MF6LVLH.js} +2 -2
- package/dist/cli/chunks/{chunk-WELNFHDN.js → chunk-7NMLIJHL.js} +1 -1
- package/dist/cli/chunks/{chunk-IOHDE27P.js → chunk-7PHYOV2X.js} +2 -2
- package/dist/cli/chunks/{chunk-YZBY4ZRF.js → chunk-7V2Z3PUJ.js} +2 -2
- package/dist/cli/chunks/{chunk-GM5LIYLQ.js → chunk-AA6IUBCM.js} +2 -2
- package/dist/cli/chunks/{chunk-TJOZPPZR.js → chunk-AFLQFUXA.js} +2 -2
- package/dist/cli/chunks/{chunk-KJB6JJXT.js → chunk-BCT26J7X.js} +1 -1
- package/dist/cli/chunks/{chunk-D6APBW66.js → chunk-BEE5KXQT.js} +1 -1
- package/dist/cli/chunks/{chunk-A2TK52B2.js → chunk-BNDK7JRW.js} +2 -2
- package/dist/cli/chunks/{chunk-4EQWK6P6.js → chunk-CR7LLS26.js} +2 -2
- package/dist/cli/chunks/{chunk-S2KGZJHS.js → chunk-DBCN7R63.js} +1 -1
- package/dist/cli/chunks/{chunk-BNPJMPM3.js → chunk-DF3DZP7H.js} +2 -2
- package/dist/cli/chunks/{chunk-OGLS6HB4.js → chunk-DJPS7H2M.js} +1 -1
- package/dist/cli/chunks/{chunk-G7L5Y47C.js → chunk-ED5OUSYZ.js} +1 -1
- package/dist/cli/chunks/{chunk-PZF5ISGS.js → chunk-EFTK4ZVP.js} +1 -1
- package/dist/cli/chunks/chunk-FEQ5RDQL.js +18 -0
- package/dist/cli/chunks/{chunk-VDGWDDBC.js → chunk-FKQV52TC.js} +2 -2
- package/dist/cli/chunks/{chunk-DD4T7ZUM.js → chunk-FLWIEPAT.js} +1 -1
- package/dist/cli/chunks/{chunk-5DWTU2PN.js → chunk-FQTUUZVK.js} +1 -1
- package/dist/cli/chunks/{chunk-4JYLXYAH.js → chunk-G5DMEEQQ.js} +1 -1
- package/dist/cli/chunks/{chunk-JLBUS4PR.js → chunk-GB6D3SSY.js} +2 -2
- package/dist/cli/chunks/{chunk-HEQ23HBE.js → chunk-GP7IXB3E.js} +2 -2
- package/dist/cli/chunks/{chunk-3NUMJB3U.js → chunk-H3JEGAFC.js} +9 -9
- package/dist/cli/chunks/{chunk-ZFZX2NA3.js → chunk-H4BZJVKU.js} +2 -2
- package/dist/cli/chunks/{chunk-AOYN6XYJ.js → chunk-HFGCLV56.js} +1 -1
- package/dist/cli/chunks/{chunk-XNXOW7BQ.js → chunk-HJUC2DE6.js} +2 -2
- package/dist/cli/chunks/{chunk-NWZYULZE.js → chunk-HN6GVQ4Q.js} +4 -4
- package/dist/cli/chunks/{chunk-RQFC7Q33.js → chunk-HON4X4Z3.js} +2 -2
- package/dist/cli/chunks/{chunk-AEQMQVDJ.js → chunk-HVAW64YW.js} +2 -2
- package/dist/cli/chunks/{chunk-5MWNXDQW.js → chunk-HXF4FUPY.js} +2 -2
- package/dist/cli/chunks/{chunk-HJJTLOWZ.js → chunk-IUQ6HE2J.js} +2 -2
- package/dist/cli/chunks/{chunk-IH4OOAEP.js → chunk-J2ERTUDX.js} +1 -1
- package/dist/cli/chunks/{chunk-DNFDSDKE.js → chunk-JCQ5PXVM.js} +2 -2
- package/dist/cli/chunks/{chunk-XH774Q6Z.js → chunk-JNXIYHLI.js} +1 -1
- package/dist/cli/chunks/{chunk-ERMIIRYN.js → chunk-JUKCBZCZ.js} +1 -1
- package/dist/cli/chunks/{chunk-AHVUILGE.js → chunk-JZOMOYHZ.js} +1 -1
- package/dist/cli/chunks/{chunk-UAAJ3BSW.js → chunk-KLVS6FT2.js} +2 -2
- package/dist/cli/chunks/{chunk-GUEK5DOK.js → chunk-KR7S4IZZ.js} +2 -2
- package/dist/cli/chunks/{chunk-VQB5SLXZ.js → chunk-L2GANTQN.js} +2 -2
- package/dist/cli/chunks/{chunk-GALNZTYE.js → chunk-LJINNQNN.js} +2 -2
- package/dist/cli/chunks/{chunk-IL3ESNHA.js → chunk-LSA4XGSE.js} +3 -3
- package/dist/cli/chunks/{chunk-M2RO34V7.js → chunk-LVA53A5R.js} +4 -4
- package/dist/cli/chunks/{chunk-LJ3WQIBN.js → chunk-LVK2PDUW.js} +1 -1
- package/dist/cli/chunks/{chunk-3ZKTPPIC.js → chunk-LWG7LKOK.js} +1 -1
- package/dist/cli/chunks/{chunk-PFSSI3YR.js → chunk-MECDNFOJ.js} +2 -2
- package/dist/cli/chunks/{chunk-FWI7PK4X.js → chunk-MFRC267A.js} +1 -1
- package/dist/cli/chunks/{chunk-WE7KIXR6.js → chunk-MJKFU6A6.js} +2 -2
- package/dist/cli/chunks/{chunk-5U6M4XCP.js → chunk-MQHP65QB.js} +3 -3
- package/dist/cli/chunks/{chunk-7732TLNA.js → chunk-MTF6ABUH.js} +2 -2
- package/dist/cli/chunks/{chunk-ME4LVBTT.js → chunk-N5ZTPAX7.js} +2 -2
- package/dist/cli/chunks/{chunk-NWGIQCCO.js → chunk-NCXXXZGL.js} +1 -1
- package/dist/cli/chunks/{chunk-DJLRRCR6.js → chunk-NIXMFJJC.js} +2 -2
- package/dist/cli/chunks/{chunk-JWR3NNFA.js → chunk-NLU4XJBN.js} +1 -1
- package/dist/cli/chunks/{chunk-DGUAAG3T.js → chunk-NOJVROCD.js} +1 -1
- package/dist/cli/chunks/{chunk-Z3PSKGBO.js → chunk-OE7SGIX2.js} +2 -2
- package/dist/cli/chunks/{chunk-KHUFPJE4.js → chunk-OP7X434R.js} +2 -2
- package/dist/cli/chunks/{chunk-WUYJYRBY.js → chunk-P4IYRPCB.js} +1 -1
- package/dist/cli/chunks/{chunk-GOTVYSX5.js → chunk-PNZADZSI.js} +3 -3
- package/dist/cli/chunks/{chunk-3PZ2QLLR.js → chunk-PPUEXTH2.js} +3 -3
- package/dist/cli/chunks/{chunk-6J6GXRHX.js → chunk-PQLT3X6X.js} +3 -3
- package/dist/cli/chunks/{chunk-VVKENR4I.js → chunk-QEKZA2NJ.js} +1 -1
- package/dist/cli/chunks/{chunk-S6SM7LJK.js → chunk-QKQAQPXY.js} +2 -2
- package/dist/cli/chunks/{chunk-LWHM5BWD.js → chunk-RFLSJ7OL.js} +2 -2
- package/dist/cli/chunks/{chunk-WSZVSDD5.js → chunk-RVQXMMRO.js} +2 -2
- package/dist/cli/chunks/{chunk-Q4DAYLH4.js → chunk-RYCAVZSD.js} +2 -2
- package/dist/cli/chunks/{chunk-VEAVDXXT.js → chunk-SMNOZEM7.js} +2 -2
- package/dist/cli/chunks/{chunk-4RDTR2OF.js → chunk-T36IXY5W.js} +2 -2
- package/dist/cli/chunks/{chunk-J3XLOHWB.js → chunk-T7VIUEKI.js} +2 -2
- package/dist/cli/chunks/{chunk-J5YOXLBD.js → chunk-TFBEX7ED.js} +1 -1
- package/dist/cli/chunks/{chunk-Y3X5OS5F.js → chunk-TPRYLARW.js} +2 -2
- package/dist/cli/chunks/{chunk-SY74WSBN.js → chunk-TR4NPMRW.js} +2 -2
- package/dist/cli/chunks/{chunk-WVN4YJSF.js → chunk-TUPFBZKO.js} +1 -1
- package/dist/cli/chunks/{chunk-UUVTLYUK.js → chunk-TWEBJWJI.js} +2 -2
- package/dist/cli/chunks/{chunk-QUK34CSU.js → chunk-UH7TV6BY.js} +1 -1
- package/dist/cli/chunks/{chunk-QLWP7ZIT.js → chunk-UT4CXF6C.js} +2 -2
- package/dist/cli/chunks/{chunk-UIYK4Y7K.js → chunk-V2ELGHLG.js} +2 -2
- package/dist/cli/chunks/{chunk-ZU5VHW6P.js → chunk-VK2GKQYI.js} +2 -2
- package/dist/cli/chunks/{chunk-FYBTGEOV.js → chunk-VNAAXZGF.js} +1 -1
- package/dist/cli/chunks/{chunk-G2KQUEGY.js → chunk-VOAECU7B.js} +2 -2
- package/dist/cli/chunks/{chunk-3GIZRGX6.js → chunk-W4ZV6LAJ.js} +2 -2
- package/dist/cli/chunks/{chunk-5HUAD4UU.js → chunk-W6TMZY5R.js} +2 -2
- package/dist/cli/chunks/{chunk-KVN4FTPT.js → chunk-WKLSXJD4.js} +2 -2
- package/dist/cli/chunks/{chunk-BOMJHE4I.js → chunk-WSKASZYC.js} +2 -2
- package/dist/cli/chunks/{chunk-6GKXC6DE.js → chunk-WVFLNGOK.js} +2 -2
- package/dist/cli/chunks/{chunk-SUXUCW5I.js → chunk-WVHH3OQ4.js} +2 -2
- package/dist/cli/chunks/{chunk-CGC63MGF.js → chunk-XAULPLOC.js} +4 -4
- package/dist/cli/chunks/{chunk-L4IWZXSC.js → chunk-XKMMFQSJ.js} +1 -1
- package/dist/cli/chunks/{chunk-7IJBZGZY.js → chunk-XQ6WIPDC.js} +1 -1
- package/dist/cli/chunks/{chunk-LKGLKX2A.js → chunk-ZCE6JNRI.js} +2 -2
- package/dist/cli/chunks/{chunk-BFCMOMOF.js → chunk-ZCZJYM42.js} +1 -1
- package/dist/cli/chunks/{chunk-2L3BCZ2F.js → chunk-ZXLF3IKT.js} +1 -1
- package/dist/cli/chunks/{ci-QQ4F5TYO.js → ci-TTP5HJSW.js} +2 -2
- package/dist/cli/chunks/{ci-output-QC4WRENA.js → ci-output-TKESU45X.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-HFQUNYTK.js → circuit-breaker-GFRV5R7E.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-XNSCWIUN.js → claude-flow-setup-LY6MADFA.js} +2 -2
- package/dist/cli/chunks/client-ZDVM5WFL.js +2 -0
- package/dist/cli/chunks/{cline-installer-S3CECBYL.js → cline-installer-OSAILLDH.js} +2 -2
- package/dist/cli/chunks/{code-QHUELDUH.js → code-ASRSOGYH.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-QLA5EQTE.js → code-index-extractor-AMLGVHB7.js} +2 -2
- package/dist/cli/chunks/{codex-installer-CQ7JNNOA.js → codex-installer-3CKH3WV4.js} +2 -2
- package/dist/cli/chunks/{completions-S33U3KIT.js → completions-MXNPWLOE.js} +91 -10
- package/dist/cli/chunks/{complexity-analyzer-J7IEW3EM.js → complexity-analyzer-2Z347PXF.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-DVU24D37.js → continuedev-installer-LE7K745N.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-DYISOPBC.js → copilot-installer-CHJL3275.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-URJADKKS.js → cost-tracker-C3ZWNNSV.js} +2 -2
- package/dist/cli/chunks/{coverage-NGMKJNW6.js → coverage-6JOXBVDL.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-J5VK276J.js +2 -0
- package/dist/cli/chunks/{cursor-installer-DFBJRDSY.js → cursor-installer-RKCNWO42.js} +2 -2
- package/dist/cli/chunks/{daemon-JSKKVVCV.js → daemon-XXWOT6TM.js} +3 -3
- package/dist/cli/chunks/{dag-attention-scheduler-YITFS6MR.js → dag-attention-scheduler-37MG6XR4.js} +2 -2
- package/dist/cli/chunks/{detect-5APZP2D3.js → detect-QOTL36CE.js} +2 -2
- package/dist/cli/chunks/{domain-handler-WHH6XPSZ.js → domain-handler-TJNLNJ7Z.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-SERX53SS.js → domain-transfer-FDHC2MGH.js} +2 -2
- package/dist/cli/chunks/dream-VCLN6RM4.js +2 -0
- package/dist/cli/chunks/esm-node-YZSRCH6T.js +2 -0
- package/dist/cli/chunks/eval-JP7CLUTD.js +15 -0
- package/dist/cli/chunks/{fast-paths-4MSOOJVK.js → fast-paths-CWTVLIIC.js} +2 -2
- package/dist/cli/chunks/{feature-flags-564YFR65.js → feature-flags-H2UU53L4.js} +2 -2
- package/dist/cli/chunks/{feature-flags-WJT57IEJ.js → feature-flags-SKFBAHR3.js} +2 -2
- package/dist/cli/chunks/{file-discovery-5QVG65WF.js → file-discovery-RWVGKIDB.js} +2 -2
- package/dist/cli/chunks/{fleet-CF5JRK5B.js → fleet-JOSUYRTZ.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-NYQ77563.js → gnn-wrapper-WNOZFTDD.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-42QJPKHE.js → heartbeat-handler-73YSR6K7.js} +4 -4
- package/dist/cli/chunks/{heartbeat-scheduler-7XEAV74Y.js → heartbeat-scheduler-EN52JZUX.js} +2 -2
- package/dist/cli/chunks/hnsw-adapter-Y5HVTNJW.js +2 -0
- package/dist/cli/chunks/hnsw-index-NZTCPZA5.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-ZRR6PGWN.js → hnsw-legacy-bridge-PWD6DXS4.js} +2 -2
- package/dist/cli/chunks/{hnswlib-node-DY7NOW76.js → hnswlib-node-VAZOCNY7.js} +2 -2
- package/dist/cli/chunks/{hooks-IRRHEJLR.js → hooks-K7XGDF2Y.js} +6 -6
- package/dist/cli/chunks/{hybrid-router-S4JXJLUY.js → hybrid-router-6W323WKW.js} +2 -2
- package/dist/cli/chunks/{hypergraph-engine-WFHZJMP2.js → hypergraph-engine-R2N4C24I.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-LHUKR7PT.js → hypergraph-handler-AY4YZDOG.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-ROWLIS6H.js +2 -0
- package/dist/cli/chunks/{init-handler-ZBIW7PSB.js → init-handler-UDBW4P3Z.js} +6 -6
- package/dist/cli/chunks/init-wizard-MI76CUL5.js +2 -0
- package/dist/cli/chunks/kernel-5WVAV5RX.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-JYHA4NW7.js → kilocode-installer-J2NZUDEQ.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-OBXTRK77.js → kiro-installer-AHOOKFQH.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-QXL3AWPV.js +2 -0
- package/dist/cli/chunks/{learning-OAEJHEJD.js → learning-VC7X2HKA.js} +3 -3
- package/dist/cli/chunks/{llm-router-NNEOZAVB.js → llm-router-3PU7CH5P.js} +4 -4
- package/dist/cli/chunks/{load-WIKLBESW.js → load-WB4JD6X7.js} +2 -2
- package/dist/cli/chunks/load-test-2JOY7YH6.js +2 -0
- package/dist/cli/chunks/{mcp-KR43GFGP.js → mcp-QUU2DYYK.js} +2 -2
- package/dist/cli/chunks/{memory-KQIYKAYU.js → memory-UAEWPG34.js} +5 -5
- package/dist/cli/chunks/memory-backend-ZKGLAWQZ.js +2 -0
- package/dist/cli/chunks/{memory-handlers-LAI4AO4O.js → memory-handlers-3FBXIZG4.js} +2 -2
- package/dist/cli/chunks/{multi-model-executor-NPS3VOAR.js → multi-model-executor-CIUHXR43.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-FE475WME.js → opencode-installer-VV6RIHNR.js} +2 -2
- package/dist/cli/chunks/{orchestrator-MW4MZ3RW.js → orchestrator-WV27PZZM.js} +20 -20
- package/dist/cli/chunks/{pipeline-R2TGZSUA.js → pipeline-JRBCX2U3.js} +2 -2
- package/dist/cli/chunks/{platform-N2GZBCBP.js → platform-TUPMH4ND.js} +2 -2
- package/dist/cli/chunks/{plugin-V2AQF23V.js → plugin-H757CYQK.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-ZQSYRLRS.js → prime-radiant-advanced-wasm-5BWO25RA.js} +2 -2
- package/dist/cli/chunks/protocol-executor-3Q4QY7G6.js +2 -0
- package/dist/cli/chunks/{protocol-handler-V3U724F2.js → protocol-handler-Z6DCNTUU.js} +2 -2
- package/dist/cli/chunks/{prove-NCH56HZB.js → prove-4OGWFOUM.js} +2 -2
- package/dist/cli/chunks/{provider-manager-7NUHS3T5.js → provider-manager-K736L6LN.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-SAMJF3NF.js +2 -0
- package/dist/cli/chunks/{quality-J3IVPPPW.js → quality-YFLEATGZ.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-OFRH67Y2.js +2 -0
- package/dist/cli/chunks/{real-embeddings-VURZXAEY.js → real-embeddings-5QUSL7J4.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-STWFJGMR.js → roocode-installer-HDWE5XW3.js} +2 -2
- package/dist/cli/chunks/router-UDHEENEY.js +2 -0
- package/dist/cli/chunks/routing-feedback-PBZRVFVL.js +2 -0
- package/dist/cli/chunks/{routing-handler-6GZT7EXM.js → routing-handler-P6PP3FYW.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-LCPAH6WH.js → ruvector-commands-VNMTRQML.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-76LWFT5X.js → rvf-dual-writer-A7VW5CAT.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-G7KFWJKY.js → rvf-migration-adapter-QIPSNASM.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-3DXOUPWF.js → rvf-migration-coordinator-XT4XDLRZ.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-CJFEDG74.js +2 -0
- package/dist/cli/chunks/safe-db-YMSZFHWP.js +2 -0
- package/dist/cli/chunks/schedule-B43N6CVB.js +2 -0
- package/dist/cli/chunks/scheduler-ITZH5YQM.js +2 -0
- package/dist/cli/chunks/{security-XDBPYA5T.js → security-E2XCP5CG.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-PV5ZBJ25.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-UGXTS2XI.js → shared-rvf-dual-writer-NPWTXHUI.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-RK5CKPHB.js +2 -0
- package/dist/cli/chunks/{status-handler-ZLXES3QL.js → status-handler-MWVNDZSZ.js} +2 -2
- package/dist/cli/chunks/{structural-health-4PFCOQ7T.js → structural-health-2KZO43IF.js} +2 -2
- package/dist/cli/chunks/{sync-3DROIEZN.js → sync-C5BOK3WU.js} +2 -2
- package/dist/cli/chunks/{task-handler-4UGZ5VIE.js → task-handler-KRVSHJGJ.js} +2 -2
- package/dist/cli/chunks/{task-handlers-I5VVBTWI.js → task-handlers-CKOHD633.js} +2 -2
- package/dist/cli/chunks/{test-Z2MM7O5A.js → test-3B7FK6MJ.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-AP76GKN5.js → test-scheduling-HZIMSTAX.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-P54N6PZV.js → token-bootstrap-JJCANIHJ.js} +2 -2
- package/dist/cli/chunks/{token-usage-AXAZTPA6.js → token-usage-5VCMBZU7.js} +2 -2
- package/dist/cli/chunks/{transformers-VOZ2Z7FS.js → transformers-ETUTMOTF.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-IYKLBTXB.js → tree-sitter-wasm-parser-TMR44BKP.js} +2 -2
- package/dist/cli/chunks/{types-TKDH5EBW.js → types-GYT6373C.js} +2 -2
- package/dist/cli/chunks/unified-memory-LIKELZVA.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-VTN3MUB4.js +2 -0
- package/dist/cli/chunks/unified-persistence-MQVUY5WN.js +2 -0
- package/dist/cli/chunks/upgrade-534QLY7P.js +5 -0
- package/dist/cli/chunks/{validate-ZGF5FVZE.js → validate-UBVF3CSS.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-OPWWUWYA.js → validate-swarm-2XD45EVM.js} +2 -2
- package/dist/cli/chunks/{vibium-HEQUGRKJ.js → vibium-NMT6AQ4S.js} +2 -2
- package/dist/cli/chunks/visual-security-HVJWGY7T.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-JZ7JCJJR.js → web-tree-sitter-RNG6NRDD.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-2SGRCS6C.js → windsurf-installer-RVCDSJT3.js} +2 -2
- package/dist/cli/chunks/witness-chain-5R322YYF.js +2 -0
- package/dist/cli/chunks/{witness-chain-LJUYOCB5.js → witness-chain-YDFB22MT.js} +2 -2
- package/dist/cli/chunks/{workflow-QORI3KO7.js → workflow-MHW4KHNK.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-637BCZI4.js +2 -0
- package/dist/cli/chunks/{wrappers-3NR7LNB5.js → wrappers-SAZY3C2S.js} +2 -2
- package/dist/cli/commands/eval.js +86 -0
- package/dist/cli/commands/upgrade.d.ts +96 -0
- package/dist/cli/commands/upgrade.js +342 -0
- package/dist/cli/completions/index.d.ts +27 -0
- package/dist/cli/completions/index.js +112 -14
- package/dist/cli/handlers/brain-handler.d.ts +2 -0
- package/dist/cli/handlers/brain-handler.js +221 -1
- package/dist/cli/index.js +5 -1
- package/dist/init/browser-engine-installer.d.ts +60 -1
- package/dist/init/browser-engine-installer.js +73 -3
- package/dist/init/phases/09-assets.js +9 -2
- package/dist/integrations/ruvector/brain-diff.d.ts +93 -0
- package/dist/integrations/ruvector/brain-diff.js +281 -0
- package/dist/integrations/ruvector/brain-search.d.ts +78 -0
- package/dist/integrations/ruvector/brain-search.js +154 -0
- package/dist/mcp/bundle.js +1 -1
- package/dist/validation/command-eval-runner.d.ts +154 -0
- package/dist/validation/command-eval-runner.js +293 -0
- package/dist/validation/index.d.ts +2 -0
- package/dist/validation/index.js +4 -0
- package/package.json +1 -1
- package/dist/cli/chunks/adapter-W2EM7ZQ7.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-JQMPNHQU.js +0 -2
- package/dist/cli/chunks/base-EOPYE6JR.js +0 -2
- package/dist/cli/chunks/brain-handler-IAYJBAFL.js +0 -68
- package/dist/cli/chunks/browser-workflow-CSARLAJD.js +0 -2
- package/dist/cli/chunks/chunk-53KLVMAT.js +0 -18
- package/dist/cli/chunks/chunk-STYNOKOM.js +0 -2
- package/dist/cli/chunks/client-3GECKJWB.js +0 -2
- package/dist/cli/chunks/cross-domain-router-UYONX76U.js +0 -2
- package/dist/cli/chunks/dream-Z5QDQJSM.js +0 -2
- package/dist/cli/chunks/esm-node-FOI5Y3O2.js +0 -2
- package/dist/cli/chunks/eval-FM3BLVFO.js +0 -15
- package/dist/cli/chunks/hnsw-adapter-NOAQ76QF.js +0 -2
- package/dist/cli/chunks/hnsw-index-KDIZQRSB.js +0 -2
- package/dist/cli/chunks/impact-analyzer-VDXJBWFG.js +0 -2
- package/dist/cli/chunks/init-wizard-Q6DEACKX.js +0 -2
- package/dist/cli/chunks/kernel-YNQOGTM5.js +0 -2
- package/dist/cli/chunks/knowledge-graph-GOZG3YOM.js +0 -2
- package/dist/cli/chunks/load-test-UJLTMPXW.js +0 -2
- package/dist/cli/chunks/memory-backend-WJH6XER3.js +0 -2
- package/dist/cli/chunks/protocol-executor-LYYYHXAX.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-JK4UKLYY.js +0 -2
- package/dist/cli/chunks/queen-coordinator-6OKLSCHV.js +0 -2
- package/dist/cli/chunks/router-DDZHCGUD.js +0 -2
- package/dist/cli/chunks/routing-feedback-BA66F37P.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-TXTRJNPW.js +0 -2
- package/dist/cli/chunks/safe-db-IFBVWIGF.js +0 -2
- package/dist/cli/chunks/schedule-WMZLOPCW.js +0 -2
- package/dist/cli/chunks/scheduler-WBORWJD5.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-SQQ27EEI.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-XH47B3BG.js +0 -2
- package/dist/cli/chunks/unified-memory-NHJHPLIC.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-IMMCI2XK.js +0 -2
- package/dist/cli/chunks/unified-persistence-JS6CEV35.js +0 -2
- package/dist/cli/chunks/visual-security-XLO5JBVP.js +0 -2
- package/dist/cli/chunks/witness-chain-PPWPHYTY.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-H4DKRHVP.js +0 -2
package/dist/mcp/bundle.js
CHANGED
|
@@ -5865,7 +5865,7 @@ Pattern extracted from ${e.count} successful experiences.`}checkPromotion(e){let
|
|
|
5865
5865
|
`);for(let s of i.slice(0,10))t.push(`- \`${s}\``);t.push("")}return t.join(`
|
|
5866
5866
|
`)}generateOutputs(e){let t=e.reduce((a,c)=>a+c.totalTests,0),r=e.reduce((a,c)=>a+c.passed,0),n=e.reduce((a,c)=>a+c.failed,0),i=e.every(a=>a.success),s=e.length>0?e.reduce((a,c)=>a+c.coverage,0)/e.length:0;return{test_result:i?"success":"failure",total_tests:String(t),passed_tests:String(r),failed_tests:String(n),coverage_percent:String((s*100).toFixed(1)),phases_completed:String(e.length),phases_passed:String(e.filter(a=>a.success).length),has_flaky_tests:String(e.some(a=>a.flakyTests.length>0))}}writeAnnotation(e){let t=[`file=${e.file}`,`line=${e.line}`,`title=${e.title}`].join(",");console.log(`::${e.level} ${t}::${e.message}`)}extractLineNumber(e){if(!e)return;let t=e.match(/:(\d+):\d+/);return t?parseInt(t[1],10):void 0}formatDuration(e){return e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`}generateCoverageBar(e){let t=Math.round(e*10),r=10-t;return"\u2588".repeat(t)+"\u2591".repeat(r)}}});var R8={};K(R8,{DAGAttentionScheduler:()=>vl,createDAGAttentionScheduler:()=>XF});function XF(o){return new vl(o)}var vl,JF=y(()=>{"use strict";vl=class{executionHistory=[];learnedDurations=new Map;runCount=0;lastPrunedCount=0;learningRate;maxHistorySize;constructor(e){this.learningRate=e?.learningRate??.3,this.maxHistorySize=e?.maxHistorySize??1e4}buildTestDAG(e){let t=new Map,r=new Map;for(let s of e){let a=this.applyLearnedDuration(s);t.set(a.id,a),r.set(a.id,[])}for(let s of e)for(let a of s.dependencies){if(!t.has(a))throw new Error(`Test '${s.id}' depends on '${a}' which does not exist in the test set`);r.get(a).push(s.id)}let n=this.computeCriticalPath(t,r),i=this.computeParallelGroups(t,r);return{nodes:t,edges:r,criticalPath:n,parallelGroups:i}}findCriticalPath(e){return e.criticalPath.map(t=>e.nodes.get(t)).filter(t=>t!==void 0)}findParallelBranches(e){return e.parallelGroups.map(t=>t.map(r=>e.nodes.get(r)).filter(r=>r!==void 0))}pruneByMinCut(e,t){let r=this.sumDurations(e.nodes);if(r<=t)return this.lastPrunedCount=0,e;let n=this.computeAttentionScores(e),i=Array.from(n.entries()).sort((u,d)=>u[1]-d[1]),s=new Set(e.criticalPath),a=new Set,c=r;for(let[u]of i){if(c<=t)break;if(s.has(u)||(e.edges.get(u)??[]).some(m=>!a.has(m)))continue;let p=e.nodes.get(u);p&&(a.add(u),c-=p.estimatedDuration)}this.lastPrunedCount=a.size;let l=Array.from(e.nodes.values()).filter(u=>!a.has(u.id));return this.buildTestDAG(l)}schedule(e){if(e.length===0)return{phases:[],totalEstimatedTime:0,criticalPathTime:0,parallelism:0};let t=this.buildTestDAG(e),n=this.findParallelBranches(t).map(l=>({tests:l,canRunInParallel:l.length>1})),i=this.computeCriticalPathDuration(t),s=this.sumDurations(t.nodes),a=n.reduce((l,u)=>u.canRunInParallel?l+Math.max(...u.tests.map(d=>d.estimatedDuration)):l+u.tests.reduce((d,p)=>d+p.estimatedDuration,0),0),c=a>0?s/a:1;return this.runCount++,{phases:n,totalEstimatedTime:a,criticalPathTime:i,parallelism:c}}getOptimizationStats(){return{totalTests:0,criticalPathLength:0,parallelGroupCount:0,prunedTests:this.lastPrunedCount,estimatedTimeSaved:0,historicalRuns:this.runCount,usingNativeBackend:!1}}recordExecution(e,t,r){this.executionHistory.push({testId:e,actualDuration:t,result:r,timestamp:Date.now()}),this.executionHistory.length>this.maxHistorySize&&(this.executionHistory=this.executionHistory.slice(-this.maxHistorySize));let n=this.learnedDurations.get(e);n!==void 0?this.learnedDurations.set(e,n*(1-this.learningRate)+t*this.learningRate):this.learnedDurations.set(e,t)}getLearnedDuration(e){return this.learnedDurations.get(e)}isNativeBackendAvailable(){return!1}computeCriticalPath(e,t){let r=this.topologicalSort(e,t);if(r.length===0)return[];let n=new Map,i=new Map;for(let u of r)n.set(u,e.get(u).estimatedDuration),i.set(u,null);for(let u of r){let d=n.get(u);for(let p of t.get(u)??[]){let m=e.get(p);if(!m)continue;let g=d+m.estimatedDuration;g>(n.get(p)??0)&&(n.set(p,g),i.set(p,u))}}let s=0,a=null;for(let[u,d]of n)d>s&&(s=d,a=u);if(!a)return[];let c=[],l=a;for(;l!==null;)c.unshift(l),l=i.get(l)??null;return c}computeCriticalPathDuration(e){return e.criticalPath.reduce((t,r)=>t+(e.nodes.get(r)?.estimatedDuration??0),0)}computeParallelGroups(e,t){let r=this.topologicalSort(e,t);if(r.length===0)return[];let n=new Map;for(let[l,u]of e)n.set(l,new Set(u.dependencies));let i=new Map;for(let l of r){let u=-1;for(let d of n.get(l)??new Set){let p=i.get(d);p!==void 0&&p>u&&(u=p)}i.set(l,u+1)}let s=new Map;for(let l of r){let u=i.get(l)??0;s.has(u)||s.set(u,[]),s.get(u).push(l)}let a=Math.max(...Array.from(s.keys()),-1),c=[];for(let l=0;l<=a;l++){let u=s.get(l);u&&u.length>0&&c.push(u)}return c}computeAttentionScores(e){let t=new Map,r=this.countTransitiveDependents(e);for(let[n,i]of e.nodes){let s=i.lastResult==="fail"?2:1,a=r.get(n)??0;t.set(n,i.priority*s*(1+a))}return t}countTransitiveDependents(e){let t=new Map,r=new Map,n=i=>{if(r.has(i))return r.get(i);let s=new Set;for(let a of e.edges.get(i)??[]){s.add(a);for(let c of n(a))s.add(c)}return r.set(i,s),s};for(let i of e.nodes.keys())t.set(i,n(i).size);return t}topologicalSort(e,t){let r=new Map;for(let s of e.keys())r.set(s,0);for(let s of t.values())for(let a of s)r.has(a)&&r.set(a,(r.get(a)??0)+1);let n=[];for(let[s,a]of r)a===0&&n.push(s);let i=[];for(;n.length>0;){let s=n.shift();i.push(s);for(let a of t.get(s)??[]){let c=(r.get(a)??0)-1;r.set(a,c),c===0&&n.push(a)}}if(i.length!==e.size)throw new Error(`Cycle detected in test DAG: sorted ${i.length} of ${e.size} nodes`);return i}applyLearnedDuration(e){let t=this.learnedDurations.get(e.id);return t!==void 0?{...e,estimatedDuration:Math.round(t)}:e}sumDurations(e){let t=0;for(let r of e.values())t+=r.estimatedDuration;return t}}});async function YF(o){return Cg.create(o)}async function A8(o){return(await YF(o)).run()}var Cg,x8=y(()=>{"use strict";HF();WF();jF();QF();KF();Cg=class o{constructor(e,t,r,n,i,s){this.config=e;this.selector=t,this.executor=r,this.scheduler=n,this.flakyTracker=i,this.reporter=s,this.ciEnvironment=mw()}config;selector;executor;scheduler;flakyTracker;reporter;ciEnvironment;static async create(e){let t=e.flakyHistoryPath?await dw(e.flakyHistoryPath,e.flakyTracker):yg(e.flakyTracker),r=new Oa({...e.vitest,cwd:e.cwd,flakyTracker:t}),{ImpactAnalyzerService:n}=await Promise.resolve().then(()=>(Ho(),XH)),i=new n(e.memory),s=hg({cwd:e.cwd,baseRef:e.baseRef,impactAnalyzer:i}),a=uw(r,{...e.scheduler,phases:e.phases}),c=bg(e.reporter);return new o(e,s,r,a,t,c)}async run(){let e=Date.now(),t=[],r=this.config.runAllTests??!1,n=performance.now();if(!r){let h=await this.selector.selectAffectedTests();h.runAllTests?(r=!0,console.log(`[TestSchedulingPipeline] Running all tests: ${h.runAllReason}`)):h.selectedTests.length===0?(console.log("[TestSchedulingPipeline] No affected tests found, running all"),r=!0):(t=h.selectedTests,console.log(`[TestSchedulingPipeline] Selected ${t.length} affected tests`))}let i=performance.now()-n;if(this.config.useDAGAttention&&t.length>0)try{let{isDAGAttentionEnabled:h}=await Promise.resolve().then(()=>(se(),ar));if(h()){let{createDAGAttentionScheduler:b}=await Promise.resolve().then(()=>(JF(),R8)),v=b(),C=t.map(P=>({id:P,name:P,estimatedDuration:1e3,dependencies:[],priority:1,tags:[]})),R=v.schedule(C),A=[];for(let P of R.phases)A.push(...P.tests.map(I=>I.id));A.length>0&&(t=A)}}catch(h){process.env.DEBUG&&console.debug("[Pipeline] DAG attention scheduling skipped:",h instanceof Error?h.message:h)}let s=performance.now(),a;r?a=await this.scheduler.run():a=await this.runWithSelectedTests(t);let c=performance.now()-s,l=performance.now(),u=this.flakyTracker.analyze();this.config.flakyHistoryPath&&await pw(this.flakyTracker,this.config.flakyHistoryPath);let d=performance.now()-l,p=performance.now();this.ciEnvironment.isCI&&await this.reporter.writeOutput(a);let m=performance.now()-p,g=Date.now()-e;return{phaseResults:a,selectedTests:t,ranAllTests:r,flakyAnalysis:u,ciEnvironment:this.ciEnvironment,totalDurationMs:g,stepLatencies:{selectionMs:i,executionMs:c,analysisMs:d,reportingMs:m}}}async runPhase(e){return this.scheduler.runPhase(e)}getFlakyTracker(){return this.flakyTracker}getSelector(){return this.selector}getStats(){return this.scheduler.getStats()}async abort(){await this.scheduler.abort()}async runWithSelectedTests(e){let t=[],r=this.config.phases??[];for(let n of r){let i=e.filter(s=>n.testPatterns.some(a=>a.startsWith("!")?!1:this.patternToRegex(a).test(s)));if(i.length>0){let s=await this.executor.execute(n,i);t.push(s)}}return t}patternToRegex(e){let t=e.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*\*/g,".*").replace(/\*/g,"[^/]*");return new RegExp(t)}}});var k8={};K(k8,{DAGAttentionScheduler:()=>vl,DEFAULT_TEST_PHASES:()=>pg,FlakyTestTracker:()=>fg,GitAwareTestSelector:()=>gg,GitHubActionsReporter:()=>vg,PhaseScheduler:()=>mg,TestSchedulingPipeline:()=>Cg,VitestPhaseExecutor:()=>Oa,checkQualityThresholds:()=>C8,createDAGAttentionScheduler:()=>XF,createFlakyTracker:()=>yg,createGitHubActionsReporter:()=>bg,createPhaseScheduler:()=>uw,createTestPipeline:()=>YF,createTestSelector:()=>hg,createVitestExecutor:()=>T8,detectCIEnvironment:()=>mw,getAffectedTests:()=>w8,loadFlakyTracker:()=>dw,reportToGitHubActions:()=>E8,runTestPipeline:()=>A8,saveFlakyTracker:()=>pw});var P8=y(()=>{"use strict";GF();HF();WF();jF();QF();KF();x8();JF()});var gw,I8=y(()=>{"use strict";Se();k();gw=class extends V{config={name:"qe/tests/schedule",description:"Schedule and execute tests using phase-based pipeline with git-aware selection and flaky tracking. Runs tests in phases (unit, integration, e2e), selects affected tests from git changes, and tracks flaky tests.",domain:"test-execution",schema:this.buildSchema()};buildSchema(){return{type:"object",properties:{cwd:{type:"string",description:"Working directory for test execution (defaults to project root)"},gitRef:{type:"string",description:'Git ref to compare for affected test selection (e.g., "main", "HEAD~3")'},useGitAware:{type:"boolean",description:"Enable git-aware test selection to only run affected tests",default:!0},trackFlaky:{type:"boolean",description:"Enable flaky test tracking and quarantine",default:!0}}}}async execute(e,t){try{let{runTestPipeline:r}=await Promise.resolve().then(()=>(P8(),k8)),n=await ZP(t),i=await r({cwd:e.cwd||process.cwd(),memory:n,baseRef:e.gitRef,flakyHistoryPath:e.trackFlaky!==!1?".agentic-qe/flaky-history.json":void 0,runAllTests:e.useGitAware===!1}),s=i.phaseResults.reduce((l,u)=>l+u.totalTests,0),a=i.phaseResults.reduce((l,u)=>l+u.passed,0),c=i.phaseResults.reduce((l,u)=>l+u.failed,0);return{success:!0,data:{pipelineId:t.requestId,phases:i.phaseResults.map(l=>({phaseId:l.phaseId,phaseName:l.phaseName,totalTests:l.totalTests,passed:l.passed,failed:l.failed,passRate:l.passRate,durationMs:l.durationMs})),gitAware:{enabled:!i.ranAllTests,selectedTests:i.selectedTests.length,gitRef:e.gitRef},flakyTracking:{enabled:e.trackFlaky!==!1},totalDuration:i.totalDurationMs,ranAllTests:i.ranAllTests,summary:`Executed ${i.phaseResults.length} phases, ${s} tests (${a} passed, ${c} failed) in ${i.totalDurationMs}ms`}}}catch(r){return{success:!1,error:w(r)}}}}});function hw(o){return new Tg(o)}var Cve,Tg,ZF=y(()=>{"use strict";sT();Cve={maxEvents:1e5,memorySampleInterval:1e3,enableTimeline:!0,timelineSampleInterval:1e3},Tg=class{config;activeAgents=new Map;peakAgentCount=0;totalAgentsSpawned=0;activeTasks=new Map;totalTasksStarted=0;totalTasksCompleted=0;coordinationLatencies;taskDurations;memorySnapshots;peakMemoryUsed=0;memorySum=0;memorySamples=0;agentTimeline=[];latencyTimeline=[];memoryTimeline=[];startTime=0;endTime=0;running=!1;memorySamplerTimer=null;timelineSamplerTimer=null;issues=[];constructor(e={}){this.config={...Cve,...e},this.coordinationLatencies=new Ye(this.config.maxEvents),this.taskDurations=new Ye(this.config.maxEvents),this.memorySnapshots=new Ye(1e4)}start(){this.running||(this.running=!0,this.startTime=Date.now(),this.memorySamplerTimer=setInterval(()=>{this.sampleMemory()},this.config.memorySampleInterval),this.config.enableTimeline&&(this.timelineSamplerTimer=setInterval(()=>{this.sampleTimeline()},this.config.timelineSampleInterval)))}stop(){this.running&&(this.running=!1,this.endTime=Date.now(),this.memorySamplerTimer&&(clearInterval(this.memorySamplerTimer),this.memorySamplerTimer=null),this.timelineSamplerTimer&&(clearInterval(this.timelineSamplerTimer),this.timelineSamplerTimer=null))}reset(){this.stop(),this.activeAgents.clear(),this.peakAgentCount=0,this.totalAgentsSpawned=0,this.activeTasks.clear(),this.totalTasksStarted=0,this.totalTasksCompleted=0,this.coordinationLatencies.clear(),this.taskDurations.clear(),this.memorySnapshots.clear(),this.peakMemoryUsed=0,this.memorySum=0,this.memorySamples=0,this.agentTimeline.length=0,this.latencyTimeline.length=0,this.memoryTimeline.length=0,this.startTime=0,this.endTime=0,this.issues.length=0}recordAgentSpawn(e,t=Date.now()){this.activeAgents.set(e,t),this.totalAgentsSpawned++;let r=this.activeAgents.size;r>this.peakAgentCount&&(this.peakAgentCount=r)}recordAgentTerminate(e,t=Date.now()){this.activeAgents.delete(e)}recordTaskStart(e,t,r=Date.now()){this.activeTasks.set(t,{agentId:e,startTime:r}),this.totalTasksStarted++}recordTaskComplete(e,t,r,n=Date.now()){let i=this.activeTasks.get(t);i&&i.agentId===e&&(this.activeTasks.delete(t),this.taskDurations.push(r),this.totalTasksCompleted++)}recordCoordination(e,t,r=Date.now()){this.coordinationLatencies.push(t),t>100&&this.issues.push(`High coordination latency for agent ${e}: ${t}ms`)}recordMemoryUsage(e,t){let r={timestamp:Date.now(),heapUsed:e,heapTotal:t,external:0,rss:0};this.memorySnapshots.push(r),this.memorySum+=e,this.memorySamples++,e>this.peakMemoryUsed&&(this.peakMemoryUsed=e);let n=4*1024*1024*1024;e>n&&this.issues.push(`Memory exceeded 4GB limit: ${(e/1024/1024/1024).toFixed(2)}GB`)}recordIssue(e){this.issues.push(e)}getAgentCount(){return this.activeAgents.size}getPeakAgentCount(){return this.peakAgentCount}getTotalAgentsSpawned(){return this.totalAgentsSpawned}getP95CoordinationLatency(){return this.calculatePercentile(this.coordinationLatencies.toArray(),.95)}getP99CoordinationLatency(){return this.calculatePercentile(this.coordinationLatencies.toArray(),.99)}getCoordinationLatencyPercentiles(){return this.calculatePercentiles(this.coordinationLatencies.toArray())}getTaskLatencyPercentiles(){return this.calculatePercentiles(this.taskDurations.toArray())}getMaxMemoryUsage(){return this.peakMemoryUsed}getAverageMemoryUsage(){return this.memorySamples>0?this.memorySum/this.memorySamples:0}getThroughput(){let t=this.getDuration()/1e3;return{tasks:this.totalTasksCompleted,tasksPerSecond:t>0?this.totalTasksCompleted/t:0,agents:this.totalAgentsSpawned,agentsPerSecond:t>0?this.totalAgentsSpawned/t:0}}getDuration(){return this.startTime===0?0:(this.endTime>0?this.endTime:Date.now())-this.startTime}hasAgentStarvation(){let e=this.activeAgents.size,t=this.activeTasks.size;return e>0&&t===0&&this.totalTasksCompleted>0}hasDeadlocks(){let e=Date.now(),t=6e4,r=Array.from(this.activeTasks.values());for(let n of r)if(e-n.startTime>t)return!0;return!1}exportReport(){let e=this.getDuration(),t=this.getCoordinationLatencyPercentiles(),r=this.getTaskLatencyPercentiles(),n=this.getThroughput(),i=100,s=4*1024*1024*1024,c={agentCount:this.peakAgentCount>=i,memoryLimit:this.peakMemoryUsed<s,coordinationLatency:t.p95<=100,noDeadlocks:!this.hasDeadlocks(),noStarvation:!this.hasAgentStarvation()},l=Object.values(c).every(Boolean),u=this.generateRecommendations(t,this.peakMemoryUsed,n);return{summary:{totalAgents:this.totalAgentsSpawned,peakAgents:this.peakAgentCount,totalTasks:this.totalTasksCompleted,duration:e,success:l,successCriteria:c},performance:{coordinationLatency:t,taskLatency:r,throughput:n},resources:{memoryPeak:this.peakMemoryUsed,memoryAverage:this.getAverageMemoryUsage(),cpuPeak:0,cpuAverage:0},timeline:{agentCounts:[...this.agentTimeline],latencies:[...this.latencyTimeline],memoryUsage:[...this.memoryTimeline]},issues:[...this.issues],recommendations:u}}sampleMemory(){let e=process.memoryUsage();this.recordMemoryUsage(e.heapUsed,e.heapTotal)}sampleTimeline(){let e=Date.now();this.agentTimeline.push({timestamp:e,count:this.activeAgents.size});let t=this.coordinationLatencies.toArray();t.length>0&&this.latencyTimeline.push({timestamp:e,p95:this.calculatePercentile(t,.95)});let r=process.memoryUsage();this.memoryTimeline.push({timestamp:e,heapUsed:r.heapUsed});let n=1e3;this.agentTimeline.length>n&&this.agentTimeline.shift(),this.latencyTimeline.length>n&&this.latencyTimeline.shift(),this.memoryTimeline.length>n&&this.memoryTimeline.shift()}calculatePercentile(e,t){if(e.length===0)return 0;let r=[...e].sort((i,s)=>i-s),n=Math.ceil(r.length*t)-1;return r[Math.max(0,n)]}calculatePercentiles(e){if(e.length===0)return{p50:0,p95:0,p99:0,max:0,min:0,avg:0,count:0};let t=[...e].sort((n,i)=>n-i),r=t.reduce((n,i)=>n+i,0);return{p50:this.calculatePercentile(t,.5),p95:this.calculatePercentile(t,.95),p99:this.calculatePercentile(t,.99),max:t[t.length-1],min:t[0],avg:r/t.length,count:t.length}}generateRecommendations(e,t,r){let n=[];e.p95>100&&n.push(`P95 coordination latency (${e.p95.toFixed(1)}ms) exceeds 100ms target. Consider optimizing gossip protocol or reducing agent count.`),e.p99>e.p95*2&&n.push("High P99/P95 ratio indicates latency outliers. Investigate specific agents or network conditions.");let i=t/1024/1024/1024;return i>3&&n.push(`Memory usage (${i.toFixed(2)}GB) approaching 4GB limit. Consider implementing agent pooling or reducing per-agent memory.`),r.tasksPerSecond<10&&n.push(`Task throughput (${r.tasksPerSecond.toFixed(1)}/s) is low. Consider parallelizing task execution or reducing task complexity.`),this.issues.length>10&&n.push(`${this.issues.length} issues recorded. Review issue log for patterns and prioritize fixes.`),n}}});function fw(o){return new bl(o)}function yw(o){return new bl({thresholds:{...Sg,...o}})}var Sg,eN,bl,tN=y(()=>{"use strict";Sg={memoryWarning:3*1024*1024*1024,memoryCritical:4*1024*1024*1024,latencyP95Warning:75,latencyP95Critical:100,latencyP99Warning:150,latencyP99Critical:200,agentStarvationTime:3e4,deadlockTimeout:6e4,minTasksPerSecond:5,minAgentUtilization:.5,gossipConvergenceTime:5e3,gossipMaxPartitions:0},eN={thresholds:Sg,enableDetailedAnalysis:!0},bl=class{config;constructor(e={}){this.config={...eN,...e,thresholds:{...Sg,...e.thresholds}}}analyze(e){let t=[];t.push(this.checkMemoryPressure(e)),t.push(this.checkCoordinationLatencyP95(e)),t.push(this.checkCoordinationLatencyP99(e)),t.push(this.checkAgentStarvation(e)),t.push(this.checkDeadlocks(e)),t.push(this.checkThroughput(e));let r=t.filter(a=>a.detected),n={totalChecks:t.length,detected:r.length,critical:r.filter(a=>a.severity==="critical").length,high:r.filter(a=>a.severity==="high").length,medium:r.filter(a=>a.severity==="medium").length,low:r.filter(a=>a.severity==="low").length},i="low";n.critical>0?i="critical":n.high>0?i="high":n.medium>0&&(i="medium");let s=this.generatePrioritizedRecommendations(r);return{overallSeverity:i,hasCritical:n.critical>0,bottlenecks:t,summary:n,recommendations:s,timestamp:new Date}}analyzeReport(e){let t=[];t.push(this.checkMemoryFromReport(e)),t.push(this.checkLatencyP95FromReport(e)),t.push(this.checkLatencyP99FromReport(e)),t.push(this.checkThroughputFromReport(e)),t.push(this.checkSuccessCriteria(e));let r=t.filter(a=>a.detected),n={totalChecks:t.length,detected:r.length,critical:r.filter(a=>a.severity==="critical").length,high:r.filter(a=>a.severity==="high").length,medium:r.filter(a=>a.severity==="medium").length,low:r.filter(a=>a.severity==="low").length},i="low";n.critical>0?i="critical":n.high>0?i="high":n.medium>0&&(i="medium");let s=this.generatePrioritizedRecommendations(r);return{overallSeverity:i,hasCritical:n.critical>0,bottlenecks:t,summary:n,recommendations:s,timestamp:new Date}}checkMemoryPressure(e){let t=e?.getMaxMemoryUsage()??process.memoryUsage().heapUsed,{memoryWarning:r,memoryCritical:n}=this.config.thresholds,i=t>=r,s="low",a="Memory usage is within acceptable limits.";return t>=n?(s="critical",a="Memory usage exceeds 4GB limit. Implement agent pooling, reduce per-agent state, or decrease concurrent agent count."):t>=r&&(s="high",a="Memory usage approaching critical threshold. Consider optimizing agent memory footprint or implementing memory pressure relief mechanisms."),{detected:i,severity:s,metric:"memory_pressure",threshold:n,actual:t,recommendation:a,context:{usedGB:t/1024/1024/1024,warningThresholdGB:r/1024/1024/1024,criticalThresholdGB:n/1024/1024/1024}}}checkCoordinationLatency(){return this.checkCoordinationLatencyP95()}checkCoordinationLatencyP95(e){let t=e?.getP95CoordinationLatency()??0,{latencyP95Warning:r,latencyP95Critical:n}=this.config.thresholds,i=t>=r,s="low",a="P95 coordination latency is within acceptable limits.";return t>=n?(s="critical",a="P95 coordination latency exceeds 100ms target. Optimize gossip protocol, reduce message size, or implement batching."):t>=r&&(s="medium",a="P95 coordination latency approaching target. Monitor closely and consider proactive optimization."),{detected:i,severity:s,metric:"coordination_latency_p95",threshold:n,actual:t,recommendation:a}}checkCoordinationLatencyP99(e){let t=e?.getP99CoordinationLatency()??0,{latencyP99Warning:r,latencyP99Critical:n}=this.config.thresholds,i=t>=r,s="low",a="P99 coordination latency is within acceptable limits.";return t>=n?(s="high",a="P99 coordination latency indicates outliers. Investigate specific agents or network conditions causing delays."):t>=r&&(s="medium",a="P99 coordination latency elevated. Some agents may be experiencing delays."),{detected:i,severity:s,metric:"coordination_latency_p99",threshold:n,actual:t,recommendation:a}}checkAgentStarvation(e){let t=e?.hasAgentStarvation()??!1;return{detected:t,severity:t?"high":"low",metric:"agent_starvation",threshold:this.config.thresholds.agentStarvationTime,actual:t?1:0,recommendation:t?"Agent starvation detected. Agents are idle without tasks. Review task distribution algorithm and work stealing configuration.":"No agent starvation detected."}}checkDeadlocks(e){let t=e?.hasDeadlocks()??!1;return{detected:t,severity:t?"critical":"low",metric:"deadlock_detection",threshold:this.config.thresholds.deadlockTimeout,actual:t?1:0,recommendation:t?"Potential deadlock detected. Tasks running for extended period. Review lock ordering and add timeout mechanisms.":"No deadlocks detected."}}checkGossipStability(){return{detected:!1,severity:"low",metric:"gossip_stability",threshold:this.config.thresholds.gossipMaxPartitions,actual:0,recommendation:"Gossip protocol stability check requires integration with gossip metrics."}}checkThroughput(e){let r=e?.getThroughput()?.tasksPerSecond??0,n=this.config.thresholds.minTasksPerSecond,i=r<n&&r>0;return{detected:i,severity:i?"medium":"low",metric:"throughput",threshold:n,actual:r,recommendation:i?`Task throughput (${r.toFixed(1)}/s) below minimum (${n}/s). Consider parallelizing task execution or optimizing task handlers.`:"Task throughput is acceptable."}}checkMemoryFromReport(e){let t=e.resources.memoryPeak,{memoryCritical:r}=this.config.thresholds;return{detected:t>=r,severity:t>=r?"critical":"low",metric:"memory_pressure",threshold:r,actual:t,recommendation:t>=r?"Memory exceeded 4GB limit during test.":"Memory usage within limits."}}checkLatencyP95FromReport(e){let t=e.performance.coordinationLatency.p95,{latencyP95Critical:r}=this.config.thresholds;return{detected:t>=r,severity:t>=r?"critical":"low",metric:"coordination_latency_p95",threshold:r,actual:t,recommendation:t>=r?"P95 coordination latency exceeded 100ms target.":"P95 latency within target."}}checkLatencyP99FromReport(e){let t=e.performance.coordinationLatency.p99,{latencyP99Critical:r}=this.config.thresholds;return{detected:t>=r,severity:t>=r?"high":"low",metric:"coordination_latency_p99",threshold:r,actual:t,recommendation:t>=r?"P99 coordination latency indicates significant outliers.":"P99 latency acceptable."}}checkThroughputFromReport(e){let t=e.performance.throughput.tasksPerSecond,r=this.config.thresholds.minTasksPerSecond;return{detected:t<r&&t>0,severity:t<r?"medium":"low",metric:"throughput",threshold:r,actual:t,recommendation:t<r?"Throughput below minimum target.":"Throughput acceptable."}}checkSuccessCriteria(e){let t=e.summary.successCriteria,r=Object.entries(t).filter(([n,i])=>!i).map(([n])=>n);return{detected:r.length>0,severity:r.length>0?"high":"low",metric:"success_criteria",threshold:0,actual:r.length,recommendation:r.length>0?`Failed criteria: ${r.join(", ")}`:"All success criteria met.",context:{failedCriteria:r}}}generatePrioritizedRecommendations(e){let t={critical:0,high:1,medium:2,low:3},r=[...e].sort((s,a)=>t[s.severity]-t[a.severity]),n=new Set,i=[];for(let s of r)n.has(s.recommendation)||(n.add(s.recommendation),i.push(`[${s.severity.toUpperCase()}] ${s.metric}: ${s.recommendation}`));return i}}});function F8(o,e,t){return new Cl(o,e,t)}function N8(o,e="medium"){return new Cl({maxAgents:o,workloadProfile:e,mockMode:!0})}var rN,nN,wg,M8,D8,_8,L8,Cl,O8=y(()=>{"use strict";N();ZF();k();tN();rN={maxAgents:100,memoryLimit:4*1024*1024*1024,coordinationTimeout:100,workloadProfile:"medium",mockMode:!0},nN={agentCount:100,memoryLimit:4*1024*1024*1024,coordinationLatency:100,noAgentStarvation:!0,noDeadlocks:!0,gossipStable:!0},wg={light:{taskCount:5,taskDuration:50,memoryUsage:5*1024*1024,coordinationFrequency:2,durationVariance:.1},medium:{taskCount:10,taskDuration:100,memoryUsage:10*1024*1024,coordinationFrequency:5,durationVariance:.2},heavy:{taskCount:20,taskDuration:200,memoryUsage:20*1024*1024,coordinationFrequency:10,durationVariance:.3}},M8={name:"ramp-up-100",description:"Gradually add agents until reaching 100",steps:[{agents:25,holdTime:3e4},{agents:50,holdTime:3e4},{agents:75,holdTime:3e4},{agents:100,holdTime:6e4}],workload:wg.medium},D8={name:"burst-100",description:"Instantly spawn 100 agents",steps:[{agents:100,holdTime:12e4}],workload:{taskCount:20,taskDuration:50,memoryUsage:10*1024*1024,coordinationFrequency:5}},_8={name:"churn-100",description:"Maintain 100 agents with continuous spawn/terminate",steps:[{agents:100,holdTime:18e4,churnRate:.1}],workload:{taskCount:15,taskDuration:75,memoryUsage:10*1024*1024,coordinationFrequency:5}},L8={name:"stress-150",description:"Push beyond 100 agents to find limits",steps:[{agents:100,holdTime:3e4},{agents:125,holdTime:3e4},{agents:150,holdTime:6e4}],workload:wg.heavy,criteria:{agentCount:150}},Cl=class{config;metrics;analyzer;running=!1;stopRequested=!1;mockAgents=new Map;mockTaskTimers=new Map;mockCoordinationTimers=new Map;churnTimer=null;random;constructor(e={},t,r){this.config={...rN,...e},this.metrics=hw(t),this.analyzer=r?yw(r):fw(),this.random=this.config.seed!==void 0?this.seededRandom(this.config.seed):Math.random.bind(Math)}async runTest(e,t){let r={name:"custom",description:`Custom test with ${e} agents for ${t}ms`,steps:[{agents:e,holdTime:t}],workload:this.getWorkload()};return this.runScenario(r)}async runScenario(e){if(this.running)throw new Error("Load test already running");this.running=!0,this.stopRequested=!1;let t=Date.now();try{this.metrics.reset(),this.metrics.start();for(let a of e.steps){if(this.stopRequested)break;await this.executeStep(a,e.workload)}this.metrics.stop();let r=this.metrics.exportReport(),n=this.analyzer.analyzeReport(r),i={...nN,...e.criteria};return{success:this.evaluateSuccess(r,i),report:r,bottlenecks:n,config:this.config,duration:Date.now()-t}}catch(r){return this.metrics.stop(),{success:!1,report:this.metrics.exportReport(),bottlenecks:this.analyzer.analyze(this.metrics),config:this.config,duration:Date.now()-t,error:w(r)}}finally{await this.cleanup(),this.running=!1}}async rampUp(e,t){let r=this.mockAgents.size,n=e-r;if(n<=0)return;let i=t/n,s=this.getWorkload();for(let a=0;a<n&&!this.stopRequested;a++)await this.spawnMockAgent(s),await this.delay(i)}async simulateAgent(e,t){let r=Date.now(),n=0,i=0;for(let s=0;s<t.taskCount&&!this.stopRequested;s++){let a=`${e}_task_${s}`,c=Date.now();this.metrics.recordTaskStart(e,a,c);let l=t.durationVariance??.2,u=t.taskDuration*(1+(this.random()-.5)*2*l);await this.delay(u),this.metrics.recordTaskComplete(e,a,Date.now()-c),n++;let d=this.simulateCoordinationLatency();this.metrics.recordCoordination(e,d),i++}return{agentId:e,tasksCompleted:n,totalDuration:Date.now()-r,coordinationEvents:i}}async stop(){this.stopRequested=!0,await this.delay(100),await this.cleanup()}getMetrics(){return this.metrics}getAgentCount(){return this.mockAgents.size}isRunning(){return this.running}async executeStep(e,t){let r=e.agents,n=this.mockAgents.size;r>n?await this.spawnAgents(r-n,t):r<n&&await this.terminateAgents(n-r),e.churnRate&&e.churnRate>0&&this.startChurn(e.churnRate,r,t),await this.hold(e.holdTime),this.stopChurn()}async spawnAgents(e,t){let r=[];for(let n=0;n<e&&!this.stopRequested;n++)r.push(this.spawnMockAgent(t)),r.length>=10&&(await Promise.all(r),r.length=0,await this.delay(10));r.length>0&&await Promise.all(r)}async terminateAgents(e){let t=Array.from(this.mockAgents.keys()).slice(0,e);for(let r of t)await this.terminateMockAgent(r)}async hold(e){let r=0;for(;r<e&&!this.stopRequested;)await this.delay(100),r+=100}startChurn(e,t,r){let i=6e4/Math.ceil(t*e);this.churnTimer=setInterval(async()=>{if(this.random()<.5){let s=Array.from(this.mockAgents.keys());if(s.length>0){let a=s[Math.floor(this.random()*s.length)];await this.terminateMockAgent(a)}}this.mockAgents.size<t&&await this.spawnMockAgent(r)},i)}stopChurn(){this.churnTimer&&(clearInterval(this.churnTimer),this.churnTimer=null)}async spawnMockAgent(e){let t=`agent_${E().slice(0,8)}`,r=Date.now(),n={id:t,domain:this.getRandomDomain(),spawnedAt:r,workload:e,activeTasks:0,totalTasks:0,terminated:!1};this.mockAgents.set(t,n),this.metrics.recordAgentSpawn(t,r),this.startAgentTasks(n),this.startAgentCoordination(n),this.simulateMemoryUsage()}async terminateMockAgent(e){let t=this.mockAgents.get(e);if(!t)return;t.terminated=!0;let r=this.mockTaskTimers.get(e);r&&(clearInterval(r),this.mockTaskTimers.delete(e));let n=this.mockCoordinationTimers.get(e);n&&(clearInterval(n),this.mockCoordinationTimers.delete(e)),this.mockAgents.delete(e),this.metrics.recordAgentTerminate(e,Date.now())}startAgentTasks(e){let t=e.workload.taskDuration*1.5,r=setInterval(()=>{if(e.terminated||e.totalTasks>=e.workload.taskCount){clearInterval(r),this.mockTaskTimers.delete(e.id);return}let n=`${e.id}_task_${e.totalTasks}`,i=Date.now();e.activeTasks++,e.totalTasks++,this.metrics.recordTaskStart(e.id,n,i);let s=e.workload.durationVariance??.2,a=e.workload.taskDuration*(1+(this.random()-.5)*2*s);setTimeout(()=>{e.terminated||(e.activeTasks--,this.metrics.recordTaskComplete(e.id,n,Date.now()-i))},a)},t);this.mockTaskTimers.set(e.id,r)}startAgentCoordination(e){let t=1e3/e.workload.coordinationFrequency,r=setInterval(()=>{if(e.terminated){clearInterval(r),this.mockCoordinationTimers.delete(e.id);return}let n=this.simulateCoordinationLatency();this.metrics.recordCoordination(e.id,n)},t);this.mockCoordinationTimers.set(e.id,r)}simulateCoordinationLatency(){let t=this.random()*30,r=this.random()<.05?this.random()*100:0,i=Math.min(this.mockAgents.size/100,2)*10;return 5+t+r+i}simulateMemoryUsage(){let e=this.mockAgents.size,t=this.getWorkload().memoryUsage,r=50*1024*1024,n=e*t,i=e*1024*100,s=r+n+i,a=s*1.5;this.metrics.recordMemoryUsage(s,a)}getRandomDomain(){let e=["test-generation","test-execution","coverage-analysis","quality-assessment","defect-intelligence","security-compliance"];return e[Math.floor(this.random()*e.length)]}getWorkload(){return this.config.customWorkload?this.config.customWorkload:wg[this.config.workloadProfile]}evaluateSuccess(e,t){let{summary:r,performance:n}=e;return!(r.peakAgents<t.agentCount||e.resources.memoryPeak>=t.memoryLimit||n.coordinationLatency.p95>t.coordinationLatency||t.noAgentStarvation&&!r.successCriteria.noStarvation||t.noDeadlocks&&!r.successCriteria.noDeadlocks)}async cleanup(){this.stopChurn();let e=Array.from(this.mockAgents.keys());for(let t of e)await this.terminateMockAgent(t);this.mockTaskTimers.forEach(t=>{clearInterval(t)}),this.mockTaskTimers.clear(),this.mockCoordinationTimers.forEach(t=>{clearInterval(t)}),this.mockCoordinationTimers.clear()}delay(e){return new Promise(t=>setTimeout(t,e))}seededRandom(e){return function(){let t=e+=1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}}}});var $8={};K($8,{AgentLoadTester:()=>Cl,BottleneckAnalyzer:()=>bl,DEFAULT_ANALYZER_CONFIG:()=>eN,DEFAULT_LOAD_TEST_CONFIG:()=>rN,DEFAULT_SUCCESS_CRITERIA:()=>nN,DEFAULT_THRESHOLDS:()=>Sg,MetricsCollector:()=>Tg,SCENARIO_BURST_100:()=>D8,SCENARIO_CHURN_100:()=>_8,SCENARIO_RAMP_UP_100:()=>M8,SCENARIO_STRESS_150:()=>L8,WORKLOAD_PROFILES:()=>wg,createAgentLoadTester:()=>F8,createBottleneckAnalyzer:()=>fw,createBottleneckAnalyzerWithThresholds:()=>yw,createLoadTesterForTarget:()=>N8,createMetricsCollector:()=>hw});var B8=y(()=>{"use strict";O8();ZF();tN()});var vw,q8=y(()=>{"use strict";Se();k();vw=class extends V{config={name:"qe/tests/load",description:"Run agent load tests to validate fleet scalability. Supports light, medium, and heavy workload profiles. Uses mock agents by default (safe); set mockMode=false to test with real fleet agents (requires fleet_init). Reports bottlenecks and pass/fail criteria.",domain:"test-execution",schema:this.buildSchema(),timeout:3e5};buildSchema(){return{type:"object",properties:{targetAgents:{type:"number",description:"Target number of concurrent agents to simulate",default:10,minimum:1,maximum:200},profile:{type:"string",description:"Workload profile: light, medium, or heavy",enum:["light","medium","heavy"],default:"medium"},durationMs:{type:"number",description:"Test duration in milliseconds",default:3e4,minimum:5e3,maximum:3e5},mockMode:{type:"boolean",description:"Use mock agents (true, default) or real fleet agents (false, requires fleet_init)",default:!0}}}}async execute(e,t){try{let{createAgentLoadTester:r}=await Promise.resolve().then(()=>(B8(),$8)),n=e.profile||"medium",i=e.targetAgents||10,s=e.durationMs||3e4,a=e.mockMode!==!1,l=await r({maxAgents:i,workloadProfile:n,mockMode:a}).runTest(i,s),u=l.bottlenecks;return{success:!0,data:{testId:t.requestId,profile:n,targetAgents:i,duration:l.duration,mockMode:a,passed:l.success,bottleneckCount:u?.bottlenecks?.length??0,report:{overallSeverity:u?.overallSeverity??"none",hasCritical:u?.hasCritical??!1,checksPerformed:u?.summary?.totalChecks??0,bottlenecksDetected:u?.summary?.detected??0},summary:`Load test (${n}, ${a?"mock":"real"}): ${i} agents, ${s}ms \u2014 ${l.success?"PASSED":"FAILED"}`+(u?.hasCritical?" [CRITICAL BOTTLENECKS]":"")}}}catch(r){return{success:!1,error:w(r)}}}}});var Tve,bw,U8=y(()=>{"use strict";Se();k();Tve=[{type:"email",pattern:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g,mask:o=>o[0]+"***@"+o.split("@")[1]},{type:"ssn",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,mask:()=>"***-**-****"},{type:"credit-card",pattern:/\b(?:\d[ -]*?){13,19}\b/g,mask:o=>"****-****-****-"+o.replace(/\D/g,"").slice(-4)},{type:"phone",pattern:/\b(?:\+?1[-.\s]?)?(?:\(?\d{3}\)?[-.\s]?)?\d{3}[-.\s]?\d{4}\b/g,mask:o=>o.slice(0,3)+"***"+o.slice(-2)},{type:"api-key",pattern:/(?:key|token|api_key|apikey|secret|password|passwd|auth)=([A-Za-z0-9_\-]{16,})/gi,mask:()=>"***REDACTED***"}],bw=class extends V{config={name:"qe/security/url-validate",description:"Validate URL security: checks for XSS/injection patterns, unsafe protocols, and scans URL query parameters for PII exposure (emails, SSNs, credit cards, API keys).",domain:"security-compliance",schema:this.buildSchema()};buildSchema(){return{type:"object",properties:{url:{type:"string",description:"URL to validate for security threats and PII exposure"},enablePII:{type:"boolean",description:"Enable PII exposure scanning in URL and query parameters",default:!0}},required:["url"]}}async execute(e,t){try{let r=this.validateURLSecurity(e.url),n=e.enablePII!==!1?this.scanForPII(e.url):{scanned:!1,found:!1,types:[],details:[]},s=r.issues.length+(n.found?n.types.length:0)===0?`URL passed all checks (security: clean, PII: ${n.scanned?"none found":"not scanned"})`:`URL has ${r.issues.length} security issue(s)${n.found?` and ${n.types.length} PII type(s) exposed in URL`:""}`;return{success:!0,data:{url:e.url,urlSecurity:r,piiExposure:n,summary:s}}}catch(r){return{success:!1,error:w(r)}}}validateURLSecurity(e){let t=[],r="none";try{let n=new URL(e);["http:","https:"].includes(n.protocol)||(t.push({type:"unsafe-protocol",description:`Protocol ${n.protocol} is not allowed`,severity:"high"}),r="high");let i=[/<script/i,/javascript:/i,/on\w+=/i,/data:text\/html/i];for(let c of i)if(c.test(e)){t.push({type:"xss",description:"Potential XSS pattern detected in URL",severity:"critical"}),r="critical";break}let s=[/'.*or.*'/i,/union.*select/i,/drop.*table/i,/;\s*--/i];for(let c of s)if(c.test(e)){t.push({type:"sql-injection",description:"Potential SQL injection pattern detected in URL",severity:"critical"}),r="critical";break}/\.\.[/\\]/.test(e)&&(t.push({type:"path-traversal",description:"Potential path traversal pattern (../) detected",severity:"high"}),r!=="critical"&&(r="high"));let a=["redirect","url","next","return","returnUrl","goto"];for(let c of a){let l=n.searchParams.get(c);l&&/^https?:\/\//.test(l)&&(t.push({type:"open-redirect",description:`Query parameter "${c}" contains an external URL \u2014 potential open redirect`,severity:"medium"}),r==="none"&&(r="medium"))}}catch{t.push({type:"invalid-url",description:"URL could not be parsed",severity:"critical"}),r="critical"}return{valid:t.length===0,riskLevel:r,issues:t}}scanForPII(e){let t=[],r=new Set,n;try{n=decodeURIComponent(e)}catch{n=e}let i="",s="";try{let a=new URL(n);i=a.search,s=a.pathname}catch{i=n}for(let{type:a,pattern:c,mask:l}of Tve){c.lastIndex=0;let u;for(;(u=c.exec(n))!==null;){r.add(a);let d=i.includes(u[0])?"query-parameter":s.includes(u[0])?"path":"url";t.push({type:a,location:d,masked:l(u[0])})}}return{scanned:!0,found:r.size>0,types:Array.from(r),details:t}}}});import{readFile as z8,readdir as Sve}from"fs/promises";import{join as iN,basename as wve}from"path";import{parse as V8}from"yaml";function sN(o,e){return o.replace(/\{\{([^}]+)\}\}/g,(t,r)=>{let i=r.trim().split("."),s=e;for(let a of i)if(s&&typeof s=="object"&&a in s)s=s[a];else return t;return s!=null?String(s):t})}function H8(o,e){let t={...e.variables,result:e.results.get("__last_result__")},r=sN(o,t);return gv(r,t,!1)}var Eg,G8,W8=y(()=>{"use strict";Pk();Eg=class{templatesDir;cache=new Map;constructor(e){this.templatesDir=e||iN(__dirname,"templates")}async load(e){if(this.cache.has(e))return this.cache.get(e);try{let t=iN(this.templatesDir,`${e}.yaml`),r=await z8(t,"utf-8"),n=V8(r),i=await this.validate(n);if(!i.valid)throw new Error(`Invalid workflow template ${e}:
|
|
5867
5867
|
${i.errors.join(`
|
|
5868
|
-
`)}`);return this.cache.set(e,n),n}catch(t){throw t.code==="ENOENT"?new Error(`Workflow template not found: ${e}`):t}}async list(){try{return(await Sve(this.templatesDir)).filter(t=>t.endsWith(".yaml")||t.endsWith(".yml")).map(t=>wve(t,t.endsWith(".yaml")?".yaml":".yml")).sort()}catch(e){if(e.code==="ENOENT")return[];throw e}}async validate(e){let t=[],r=[];if(e.name||t.push("Workflow must have a name"),e.version||t.push("Workflow must have a version"),e.description||r.push("Workflow should have a description"),Array.isArray(e.variables)?e.variables.forEach((n,i)=>{n.name||t.push(`Variable at index ${i} must have a name`),n.type||t.push(`Variable ${n.name} must have a type`),n.required===void 0&&r.push(`Variable ${n.name} should specify if it's required`)}):t.push("Workflow must have a variables array"),!Array.isArray(e.steps))t.push("Workflow must have a steps array");else if(e.steps.length===0)t.push("Workflow must have at least one step");else{e.steps.forEach((s,a)=>{s.name||t.push(`Step at index ${a} must have a name`),s.action||t.push(`Step ${s.name||a} must have an action`),(!s.config||typeof s.config!="object")&&t.push(`Step ${s.name||a} must have a config object`),s.assertions&&Array.isArray(s.assertions)&&s.assertions.forEach((c,l)=>{c.condition||t.push(`Assertion ${l} in step ${s.name||a} must have a condition`),c.message||r.push(`Assertion ${l} in step ${s.name||a} should have a message`)})});let n=e.steps.map(s=>s.name),i=n.filter((s,a)=>n.indexOf(s)!==a);i.length>0&&t.push(`Duplicate step names found: ${i.join(", ")}`)}return{valid:t.length===0,errors:t,warnings:r}}async createContext(e,t){let r=await this.load(e),n=r.variables.filter(s=>s.required&&!(s.name in t)).map(s=>s.name);if(n.length>0)throw new Error(`Missing required variables: ${n.join(", ")}`);let i={};return r.variables.forEach(s=>{s.name in t?i[s.name]=t[s.name]:"default"in s&&(i[s.name]=s.default)}),{variables:i,results:new Map,metadata:{startTime:Date.now(),workflow:r.name,templateName:e}}}async getMetadata(e){try{let t=iN(this.templatesDir,`${e}.yaml`),r=await z8(t,"utf-8"),n=V8(r);return{name:n.name,version:n.version,description:n.description}}catch(t){throw t.code==="ENOENT"?new Error(`Workflow template not found: ${e}`):t}}clearCache(){this.cache.clear()}async reload(e){return this.cache.delete(e),this.load(e)}},G8=new Eg});var Q8={};K(Q8,{WORKFLOW_CATEGORIES:()=>oN,WORKFLOW_DESCRIPTIONS:()=>j8,WORKFLOW_TEMPLATES:()=>aN,WorkflowLoader:()=>Eg,defaultWorkflowLoader:()=>G8,evaluateCondition:()=>H8,getAllWorkflowTemplates:()=>Ave,getWorkflowsByCategory:()=>Eve,interpolateVariables:()=>sN,isValidWorkflowTemplate:()=>Rve});function Eve(o){return oN[o]}function Rve(o){return aN.includes(o)}function Ave(){return aN.map(o=>{let e=Object.entries(oN).find(([t,r])=>r.includes(o))?.[0]||"other";return{name:o,description:j8[o],category:e}})}var aN,j8,oN,K8=y(()=>{"use strict";W8();aN=["login-flow","oauth-flow","scraping-workflow","visual-regression","form-validation","navigation-flow","api-integration","performance-audit","accessibility-audit"],j8={"login-flow":"Authentication testing workflow for login forms with credential validation","oauth-flow":"OAuth2/OIDC authentication testing workflow with provider integration","scraping-workflow":"Data extraction workflow for web scraping with pagination and structured output","visual-regression":"Screenshot comparison workflow for visual regression testing across breakpoints","form-validation":"Input validation testing workflow for form fields with error handling","navigation-flow":"Multi-page navigation workflow for testing user journeys and state persistence","api-integration":"Browser-API hybrid testing workflow for validating frontend-backend integration","performance-audit":"Lighthouse-style performance audit workflow with Core Web Vitals","accessibility-audit":"WCAG 2.1 Level AA compliance audit workflow with automated accessibility testing"},oN={authentication:["login-flow","oauth-flow"],testing:["form-validation","navigation-flow","api-integration"],quality:["visual-regression","performance-audit","accessibility-audit"],automation:["scraping-workflow"]}});var Cw,X8=y(()=>{"use strict";Se();k();Cw=class extends V{config={name:"qe/workflows/browser-load",description:"Load, validate, and prepare browser automation workflows from inline YAML or built-in templates. Returns the resolved workflow with steps and variable bindings, ready for browser execution. Templates: login-flow, form-validation, visual-regression, oauth-flow, etc.",domain:"test-execution",schema:this.buildSchema()};buildSchema(){return{type:"object",properties:{workflowYaml:{type:"string",description:"Inline YAML workflow definition. Mutually exclusive with templateName."},templateName:{type:"string",description:"Built-in template name to load.",enum:["login-flow","oauth-flow","scraping-workflow","visual-regression","form-validation","navigation-flow","api-integration","performance-audit","accessibility-audit"]},variables:{type:"object",description:'Runtime variable overrides (e.g., { "baseUrl": "https://example.com" })'}}}}async execute(e,t){try{let{WorkflowLoader:r,WORKFLOW_TEMPLATES:n,WORKFLOW_DESCRIPTIONS:i,interpolateVariables:s}=await Promise.resolve().then(()=>(K8(),Q8)),{parse:a}=await import("yaml"),c=new r,l=[...n],u=i;if(!e.workflowYaml&&!e.templateName)return{success:!0,data:{workflowName:"none",description:"No workflow specified. Use templateName or workflowYaml.",source:"none",templateUsed:null,steps:[],variables:{defined:[],provided:{}},validation:{valid:!0,errors:[],warnings:[]},availableTemplates:l,summary:`Available templates: ${l.join(", ")}`}};let d,p,m=null;e.workflowYaml?(p="inline-yaml",d=a(e.workflowYaml)):(p="template",m=e.templateName,d=await c.load(e.templateName));let g=await c.validate(d),h=(d.steps??[]).map(b=>{let v=b.config;if(e.variables){let C={};for(let[R,A]of Object.entries(v))C[R]=typeof A=="string"?s(A,e.variables):A;v=C}return{name:b.name,action:b.action,config:v,optional:b.optional??!1,assertionCount:b.assertions?.length??0}});return{success:!0,data:{workflowName:d.name||m||"custom",description:d.description||m&&u[m]||"",source:p,templateUsed:m,steps:h,variables:{defined:(d.variables??[]).map(b=>({name:b.name,type:b.type,required:b.required,hasDefault:b.default!==void 0})),provided:e.variables||{}},validation:{valid:g.valid,errors:g.errors,warnings:g.warnings},availableTemplates:l,summary:g.valid?`Workflow "${d.name}" loaded (${p}): ${h.length} steps, ${(d.variables??[]).length} variables`:`Workflow "${d.name}" has validation errors: ${g.errors.join("; ")}`}}}catch(r){return{success:!1,error:w(r)}}}}});function J8(){for(let o of cN)o.resetInstanceCache()}var qLt,cN,lN=y(()=>{"use strict";YK();ZK();g6();h6();f6();y6();E6();R6();k6();I6();M6();D6();F6();N6();H6();i8();a8();h8();b8();I8();q8();U8();X8();qLt={TEST_GENERATE:"qe/tests/generate",TEST_EXECUTE:"qe/tests/execute",COVERAGE_ANALYZE:"qe/coverage/analyze",COVERAGE_GAPS:"qe/coverage/gaps",QUALITY_EVALUATE:"qe/quality/evaluate",DEFECT_PREDICT:"qe/defects/predict",REQUIREMENTS_VALIDATE:"qe/requirements/validate",QUALITY_CRITERIA:"qe/requirements/quality-criteria",CODE_ANALYZE:"qe/code/analyze",SECURITY_SCAN:"qe/security/scan",CONTRACT_VALIDATE:"qe/contracts/validate",VISUAL_COMPARE:"qe/visual/compare",A11Y_AUDIT:"qe/a11y/audit",CHAOS_INJECT:"qe/chaos/inject",LEARNING_OPTIMIZE:"qe/learning/optimize",LEARNING_DREAM:"qe/learning/dream",TOKEN_USAGE:"qe/analysis/token_usage",GOAP_PLAN:"qe/planning/goap_plan",GOAP_EXECUTE:"qe/planning/goap_execute",GOAP_STATUS:"qe/planning/goap_status",...rg,EMBEDDING_GENERATE:"qe/embeddings/generate",EMBEDDING_COMPARE:"qe/embeddings/compare",EMBEDDING_SEARCH:"qe/embeddings/search",EMBEDDING_STORE:"qe/embeddings/store",EMBEDDING_STATS:"qe/embeddings/stats",...g8,QX_ANALYZE:"qe/qx/analyze",TEST_SCHEDULE:"qe/tests/schedule",LOAD_TEST:"qe/tests/load",URL_VALIDATE:"qe/security/url-validate",BROWSER_WORKFLOW:"qe/workflows/browser-load"},cN=[new LS,new FS,new OS,new $S,new BS,new US,new zS,new jm,new GS,new HS,new WS,new jS,new QS,new KS,new Qm,new Km,new XS,new Zm,new eg,new tg,...n8,new dl,new pl,new ml,new gl,new hl,...m8,new dg,new gw,new vw,new bw,new Cw]});var ps,Tw,Y8=y(()=>{"use strict";N();L();Pd();k();ps={ProtocolStarted:"coordination.ProtocolStarted",ProtocolCompleted:"coordination.ProtocolCompleted",ProtocolFailed:"coordination.ProtocolFailed",ProtocolCancelled:"coordination.ProtocolCancelled",ActionStarted:"coordination.ActionStarted",ActionCompleted:"coordination.ActionCompleted",ActionFailed:"coordination.ActionFailed"},Tw=class{constructor(e,t,r){this.eventBus=e;this.memory=t;this.getDomainAPI=r}eventBus;memory;getDomainAPI;protocols=new Map;executions=new Map;scheduledProtocols=new Map;schedulerRunning=!1;registerProtocol(e){this.protocols.set(e.id,e),e.schedule.type==="event"&&e.enabled&&this.setupEventTriggers(e),(e.schedule.type==="cron"||e.schedule.type==="interval")&&e.enabled&&this.scheduleProtocol(e)}unregisterProtocol(e){if(!this.protocols.get(e))return!1;let r=this.scheduledProtocols.get(e);return r?.intervalId&&clearInterval(r.intervalId),this.scheduledProtocols.delete(e),this.protocols.delete(e),!0}getProtocol(e){return this.protocols.get(e)}listProtocols(){return Array.from(this.protocols.values())}async execute(e,t){let r=this.protocols.get(e);return r?r.enabled?this.executeProtocol(r,t):f(new Error(`Protocol is disabled: ${e}`)):f(new Error(`Protocol not found: ${e}`))}async executeOnEvent(e,t){let r=this.protocols.get(e);return r?r.enabled?this.executeProtocol(r,void 0,t):f(new Error(`Protocol is disabled: ${e}`)):f(new Error(`Protocol not found: ${e}`))}getExecution(e){let t=this.executions.get(e);if(t)return this.toImmutableExecution(t.execution)}listActiveExecutions(){return Array.from(this.executions.values()).filter(e=>e.execution.status==="running"||e.execution.status==="paused").map(e=>this.toImmutableExecution(e.execution))}async cancelExecution(e){let t=this.executions.get(e);return t?t.execution.status!=="running"&&t.execution.status!=="paused"?f(new Error(`Cannot cancel execution in status: ${t.execution.status}`)):(t.cancelled=!0,t.execution.status="cancelled",t.execution.completedAt=new Date,await this.publishEvent(ps.ProtocolCancelled,{executionId:e,protocolId:t.protocol.id}),T(void 0)):f(new Error(`Execution not found: ${e}`))}async pauseExecution(e){let t=this.executions.get(e);return t?t.execution.status!=="running"?f(new Error(`Cannot pause execution in status: ${t.execution.status}`)):(t.paused=!0,t.execution.status="paused",T(void 0)):f(new Error(`Execution not found: ${e}`))}async resumeExecution(e){let t=this.executions.get(e);return t?t.execution.status!=="paused"?f(new Error(`Cannot resume execution in status: ${t.execution.status}`)):(t.paused=!1,t.execution.status="running",T(void 0)):f(new Error(`Execution not found: ${e}`))}startScheduler(){if(!this.schedulerRunning){this.schedulerRunning=!0;for(let e of this.protocols.values())e.enabled&&(e.schedule.type==="interval"||e.schedule.type==="cron")&&this.scheduleProtocol(e)}}stopScheduler(){this.schedulerRunning=!1;for(let e of this.scheduledProtocols.values())e.intervalId&&(clearInterval(e.intervalId),e.intervalId=void 0)}async dispose(){this.stopScheduler(),this.protocols.clear(),this.executions.clear(),this.scheduledProtocols.clear()}async executeProtocol(e,t,r){let n=E(),i=r?.correlationId??n,s={executionId:n,protocolId:e.id,status:"running",participants:[...e.participants],results:new Map,startedAt:new Date,correlationId:i,triggeredBy:r},a={execution:s,protocol:e,params:t,actionResults:new Map,cancelled:!1,paused:!1};this.executions.set(n,a),await this.publishEvent(ps.ProtocolStarted,{executionId:n,protocolId:e.id,participants:e.participants},i);try{await this.executeActions(a);let c=Array.from(a.actionResults.values()).some(l=>l.status==="failed");return a.cancelled?s.status="cancelled":c?(s.status="failed",await this.publishEvent(ps.ProtocolFailed,{executionId:n,protocolId:e.id,failedActions:Array.from(a.actionResults.values()).filter(l=>l.status==="failed").map(l=>l.actionId)},i)):(s.status="completed",await this.publishEvent(ps.ProtocolCompleted,{executionId:n,protocolId:e.id,duration:Date.now()-s.startedAt.getTime()},i)),s.completedAt=new Date,s.results=a.actionResults,await this.storeExecutionHistory(s),T(this.toImmutableExecution(s))}catch(c){return s.status="failed",s.completedAt=new Date,await this.publishEvent(ps.ProtocolFailed,{executionId:n,protocolId:e.id,error:w(c)},i),f(S(c))}}async executeActions(e){let{protocol:t,actionResults:r}=e,n=new Set(t.actions.map(s=>s.id)),i=new Set;for(;n.size>0&&!e.cancelled;){for(;e.paused&&!e.cancelled;)await this.sleep(100);if(e.cancelled)break;let s=t.actions.filter(c=>n.has(c.id)&&this.dependenciesSatisfied(c,i));if(s.length===0&&n.size>0)throw new Error(`Deadlock detected: actions ${Array.from(n).join(", ")} cannot proceed`);let a=await Promise.allSettled(s.map(c=>this.executeAction(c,e)));for(let c=0;c<s.length;c++){let l=s[c],u=a[c],d;u.status==="fulfilled"?d=u.value:d={actionId:l.id,status:"failed",error:u.reason instanceof Error?u.reason.message:String(u.reason)},r.set(l.id,d),n.delete(l.id),d.status==="completed"&&i.add(l.id)}}for(let s of n)r.set(s,{actionId:s,status:e.cancelled?"cancelled":"skipped"})}async executeAction(e,t){let r=new Date;await this.publishEvent(ps.ActionStarted,{executionId:t.execution.executionId,actionId:e.id,actionName:e.name,targetDomain:e.targetDomain},t.execution.correlationId);let n=0,i=e.retry?.maxAttempts??1,s;for(;n<i;){n++;try{let c=this.getDomainAPI(e.targetDomain);if(!c)throw new Error(`Domain API not available: ${e.targetDomain}`);let l=c[e.method];if(typeof l!="function")throw new Error(`Method ${e.method} not found on domain ${e.targetDomain}`);let u={...e.params,...t.params},d=await this.executeWithTimeout(l.bind(c)(u),e.timeout??3e4),p=new Date;return await this.publishEvent(ps.ActionCompleted,{executionId:t.execution.executionId,actionId:e.id,duration:p.getTime()-r.getTime()},t.execution.correlationId),{actionId:e.id,status:"completed",startedAt:r,completedAt:p,duration:p.getTime()-r.getTime(),result:d,retryAttempts:n>1?n-1:void 0}}catch(c){if(s=S(c),n<i&&e.retry){let l=e.retry.backoffMs*Math.pow(e.retry.backoffMultiplier??2,n-1);await this.sleep(l)}}}let a=new Date;return await this.publishEvent(ps.ActionFailed,{executionId:t.execution.executionId,actionId:e.id,error:s?.message??"Unknown error",attempts:n},t.execution.correlationId),{actionId:e.id,status:"failed",startedAt:r,completedAt:a,duration:a.getTime()-r.getTime(),error:s?.message??"Unknown error",retryAttempts:n>1?n-1:void 0}}dependenciesSatisfied(e,t){return!e.dependsOn||e.dependsOn.length===0?!0:e.dependsOn.every(r=>t.has(r))}async executeWithTimeout(e,t){return Promise.race([e,new Promise((r,n)=>setTimeout(()=>n(new Error("Action timeout")),t))])}setupEventTriggers(e){if(e.schedule.type==="event")for(let t of e.schedule.triggerEvents)this.eventBus.subscribe(t,async r=>{await this.executeOnEvent(e.id,r)})}scheduleProtocol(e){if(e.schedule.type==="interval"){let t={protocolId:e.id,schedule:e.schedule};t.intervalId=setInterval(async()=>{this.schedulerRunning&&await this.execute(e.id)},e.schedule.intervalMs),this.scheduledProtocols.set(e.id,t)}}async storeExecutionHistory(e){let t=`protocol-execution:${e.executionId}`;await this.memory.set(t,{...e,results:Object.fromEntries(e.results)},{namespace:"coordination",ttl:864e5})}toImmutableExecution(e){return{executionId:e.executionId,protocolId:e.protocolId,status:e.status,participants:[...e.participants],results:new Map(e.results),startedAt:e.startedAt,completedAt:e.completedAt,correlationId:e.correlationId,triggeredBy:e.triggeredBy}}async publishEvent(e,t,r){let n=Q(e,"learning-optimization",t,r);await this.eventBus.publish(n)}sleep(e){return new Promise(t=>setTimeout(t,e))}}});async function $a(o){return uN.getInstance(o)}async function Z8(o,e,t){return(await $a()).startTaskTrajectory(o,e,t)}async function Sw(o,e,t){return(await $a()).endTaskTrajectory(o,e,t)}var xve,uN,eX=y(()=>{"use strict";Z_();Pm();lS();xve={enableLearning:!0,enableRouting:!0,enableGuidance:!0,enableTrajectories:!0,enableExperienceReplay:!0,autoStoreExperiences:!0,minQualityThreshold:.6},uN=class o{static instance=null;static initPromise=null;config;enhancedAdapter;disposed=!1;patternsLoaded=!1;qualityThresholdsFromPatterns=null;tasksRecorded=0;successfulTasks=0;failedTasks=0;patternsStored=0;routingRequests=0;activeTrajectories=new Map;constructor(e,t){this.config=e,this.enhancedAdapter=t}static async getInstance(e){if(o.instance&&!o.instance.disposed)return o.instance;if(o.initPromise)return o.initPromise;o.initPromise=o.create(e);try{return o.instance=await o.initPromise,o.instance}finally{o.initPromise=null}}static async create(e){let t={...xve,...e},r=j5({enableTrajectories:t.enableTrajectories,enableExperienceReplay:t.enableExperienceReplay,enablePatternEvolution:!0,autoStoreExperiences:t.autoStoreExperiences,autoConsolidate:!0});await r.initialize();let n=new o(t,r);return await n.loadPatternsFromLoader(),await n.seedInitialPatternsIfNeeded(),console.error("[ReasoningBankService] Initialized with EnhancedReasoningBankAdapter (trajectory + experience + evolution)"),n}async loadPatternsFromLoader(){try{let t=await Pa().getQualityGateThresholds();if(t){this.qualityThresholdsFromPatterns=t,this.patternsLoaded=!0,console.error("[ReasoningBankService] Loaded quality thresholds from PatternLoader",{tiers:Object.keys(t)});return}console.error("[ReasoningBankService] PatternLoader returned no thresholds, using defaults")}catch(e){console.error("[ReasoningBankService] Failed to load patterns from PatternLoader, using defaults",{error:e instanceof Error?e.message:"Unknown error"})}this.patternsLoaded=!1}async seedInitialPatternsIfNeeded(){try{let e=await this.enhancedAdapter.getStats();if(e.reasoningBank.totalPatterns>0){console.error(`[ReasoningBankService] Found ${e.reasoningBank.totalPatterns} existing patterns, skipping seed`);return}console.error("[ReasoningBankService] Seeding initial QE patterns...");let t=(n,i="string",s=!1)=>({name:n,type:i,required:s,description:`${n} parameter`}),r=[{patternType:"test-template",name:"unit-test-generation",description:"Generate comprehensive unit tests for TypeScript/JavaScript modules",domain:"test-generation",template:{type:"workflow",content:"Analyze module exports, identify edge cases, generate Jest/Vitest tests with proper mocking",variables:[t("modulePath"),t("framework")]},context:{tags:["unit","typescript","jest","vitest"]}},{patternType:"coverage-strategy",name:"coverage-gap-analysis",description:"Identify untested code paths and recommend targeted tests",domain:"coverage-analysis",template:{type:"workflow",content:"Parse coverage report, identify uncovered branches, prioritize by risk, generate recommendations",variables:[t("coveragePath"),t("threshold","number")]},context:{tags:["coverage","analysis","risk"]}},{patternType:"test-template",name:"integration-test-generation",description:"Generate integration tests for API endpoints and service interactions",domain:"test-generation",template:{type:"workflow",content:"Identify API contracts, generate request/response tests, validate error handling",variables:[t("apiPath"),t("framework")]},context:{tags:["integration","api","contract"]}},{patternType:"flaky-fix",name:"flaky-test-remediation",description:"Detect and fix flaky tests through pattern analysis",domain:"test-execution",template:{type:"workflow",content:"Analyze test history, identify timing/race conditions, apply stabilization patterns",variables:[t("testPath"),t("retryCount","number")]},context:{tags:["flaky","stability","retry"]}},{patternType:"error-handling",name:"security-vulnerability-scan",description:"Scan code for security vulnerabilities using OWASP patterns",domain:"security-compliance",template:{type:"workflow",content:"Run SAST analysis, check for injection risks, validate authentication/authorization",variables:[t("targetPath"),t("severity")]},context:{tags:["security","owasp","sast"]}}];for(let n of r)try{await this.enhancedAdapter.storePattern(n),this.patternsStored++}catch(i){console.error(`[ReasoningBankService] Failed to seed pattern ${n.name}:`,i)}console.error(`[ReasoningBankService] Seeded ${r.length} initial patterns`)}catch(e){console.error("[ReasoningBankService] Failed to seed patterns:",e)}}getPatternsLoaded(){return this.patternsLoaded}getQualityThresholdsFromPatterns(){return this.qualityThresholdsFromPatterns}async startTaskTrajectory(e,t,r={}){if(!this.config.enableTrajectories||this.disposed)return e;try{let n=await this.enhancedAdapter.startTaskTrajectory(t,r);return this.activeTrajectories.set(e,n),console.error(`[ReasoningBankService] Started trajectory: task=${e} trajectory=${n}`),n}catch(n){return console.error("[ReasoningBankService] Failed to start trajectory:",n),e}}async recordTrajectoryStep(e,t,r,n){if(!this.config.enableTrajectories||this.disposed)return;let i=this.activeTrajectories.get(e);if(!i){console.error(`[ReasoningBankService] No active trajectory for task ${e}`);return}try{await this.enhancedAdapter.recordTaskStep(i,t,r,n)}catch(s){console.error("[ReasoningBankService] Failed to record trajectory step:",s)}}async endTaskTrajectory(e,t,r){if(!this.config.enableTrajectories||this.disposed)return null;let n=this.activeTrajectories.get(e);if(!n)return console.error(`[ReasoningBankService] No active trajectory for task ${e}`),null;try{let i=await this.enhancedAdapter.endTaskTrajectory(n,t,r);return this.activeTrajectories.delete(e),console.error(`[ReasoningBankService] Ended trajectory: task=${e} success=${t} steps=${i.steps.length} quality=${i.metrics.averageQuality.toFixed(2)}`),i}catch(i){return console.error("[ReasoningBankService] Failed to end trajectory:",i),this.activeTrajectories.delete(e),null}}getActiveTrajectoryId(e){return this.activeTrajectories.get(e)}async recordTaskOutcome(e){if(!(!this.config.enableLearning||this.disposed)){this.tasksRecorded++,e.success?this.successfulTasks++:this.failedTasks++;try{let t={patternId:`task-${e.taskId}`,success:e.success,metrics:{executionTimeMs:e.executionTimeMs,testsPassed:e.metrics?.testsPassed,testsFailed:e.metrics?.testsGenerated?e.metrics.testsGenerated-(e.metrics.testsPassed||0):void 0,coverageImprovement:e.metrics?.coverageImprovement},feedback:e.error};await this.enhancedAdapter.recordPatternOutcome(t),e.success&&(e.qualityScore||.5)>=this.config.minQualityThreshold&&(await this.storeTaskPattern(e),this.patternsStored++),e.agentId&&await this.updateAgentPerformanceFromOutcome(e),console.error(`[ReasoningBankService] Recorded outcome: task=${e.taskId} success=${e.success} quality=${e.qualityScore?.toFixed(2)||"N/A"}`)}catch(t){throw console.error("[ReasoningBankService] Failed to record outcome:",t),t}}}async updateAgentPerformanceFromOutcome(e){if(e.agentId)try{o4(e.agentId,{success:e.success,executionTimeMs:e.executionTimeMs,qualityScore:e.qualityScore}),console.error(`[ReasoningBankService] Updated agent performance: agent=${e.agentId} success=${e.success} duration=${e.executionTimeMs}ms`)}catch(t){console.error("[ReasoningBankService] Failed to update agent performance:",t)}}async storeTaskPattern(e){try{let t=[e.taskType,e.domain||"general",e.agentId?`agent:${e.agentId}`:void 0,e.modelTier?`tier:${e.modelTier}`:void 0,e.executionTimeMs?`duration:${e.executionTimeMs}ms`:void 0].filter(r=>r!==void 0);await this.enhancedAdapter.storePattern({patternType:"test-template",name:`${e.taskType}-${e.domain||"general"}`,description:e.task,template:{type:"workflow",content:e.task,variables:[]},context:{tags:t}})}catch(t){console.error("[ReasoningBankService] Failed to store pattern:",t)}}async getRoutingRecommendation(e){if(!this.config.enableRouting||this.disposed)return this.createFallbackRouting(e);this.routingRequests++;try{let t=await this.enhancedAdapter.routeTaskWithExperience(e);if(!t.success)return console.error("[ReasoningBankService] Routing returned error:",t.error),this.createFallbackRouting(e);let r=t.value;return r.experienceGuidance&&console.error(`[ReasoningBankService] Experience guidance: strategy="${r.experienceGuidance.recommendedStrategy}" confidence=${r.experienceGuidance.confidence.toFixed(2)} tokenSavings=${r.experienceGuidance.estimatedTokenSavings}`),console.error(`[ReasoningBankService] Routing: task="${e.task.slice(0,50)}..." -> agent=${r.recommendedAgent} confidence=${r.confidence.toFixed(2)}`),r}catch(t){return console.error("[ReasoningBankService] Routing failed:",t),this.createFallbackRouting(e)}}async getExperienceGuidance(e,t){if(!this.config.enableExperienceReplay||this.disposed)return null;try{return await this.enhancedAdapter.getExperienceGuidance(e,t)}catch(r){return console.error("[ReasoningBankService] Failed to get experience guidance:",r),null}}async getTaskGuidance(e,t){if(!this.config.enableGuidance||this.disposed)return[];try{let r=await this.enhancedAdapter.routeTaskWithExperience({task:e,domain:t});return r.success?r.value.guidance:[]}catch(r){return console.error("[ReasoningBankService] Guidance failed:",r),[]}}async searchPatterns(e,t){if(this.disposed)return[];try{let r=await this.enhancedAdapter.searchPatterns(e,{limit:t?.limit||10,domain:t?.domain});return r.success?r.value.map(n=>n.pattern):(console.error("[ReasoningBankService] Search returned error:",r.error),[])}catch(r){return console.error("[ReasoningBankService] Search failed:",r),[]}}async getStats(){let e=await this.enhancedAdapter.getStats();return{service:{tasksRecorded:this.tasksRecorded,successfulTasks:this.successfulTasks,failedTasks:this.failedTasks,successRate:this.tasksRecorded>0?this.successfulTasks/this.tasksRecorded:0,patternsStored:this.patternsStored,routingRequests:this.routingRequests,patternsLoaded:this.patternsLoaded,activeTrajectories:this.activeTrajectories.size},reasoningBank:e.reasoningBank,adapter:e.adapter}}createFallbackRouting(e){return{recommendedAgent:"qe-test-architect",confidence:.5,alternatives:[],domains:e.domain?[e.domain]:["test-generation"],patterns:[],guidance:[],reasoning:"Fallback routing - ReasoningBank unavailable",latencyMs:0}}isHealthy(){return!this.disposed}async dispose(){this.disposed||(this.disposed=!0,await this.enhancedAdapter.dispose(),this.activeTrajectories.clear(),o.instance=null,console.error("[ReasoningBankService] Disposed"))}static reset(){o.instance&&o.instance.dispose(),o.instance=null,o.initPromise=null}}});var pN={};K(pN,{handleModelRoute:()=>kw,handleReasoningBankStats:()=>Dve,handleRoutingEconomics:()=>Iw,handleRoutingMetrics:()=>Pw,handleTaskCancel:()=>Aw,handleTaskList:()=>Ew,handleTaskOrchestrate:()=>xw,handleTaskOutcomeRecord:()=>Mve,handleTaskStatus:()=>Rw,handleTaskStatusWithLearning:()=>_ve,handleTaskSubmit:()=>ww,subscribeTrajectoryEvents:()=>Lve,unsubscribeTrajectoryEvents:()=>nX});async function ww(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=await e.submitTask({type:o.type,priority:o.priority||"p1",targetDomains:o.targetDomains||[],payload:o.payload||{},timeout:o.timeout||3e5});if(!t.success)return{success:!1,error:t.error.message};let r=e.getTaskStatus(t.value);return{success:!0,data:{taskId:t.value,type:o.type,priority:o.priority||"p1",status:r?.status==="running"?"pending":"queued",assignedDomain:r?.assignedDomain}}}catch(t){return{success:!1,error:`Failed to submit task: ${w(t)}`}}}async function Ew(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=e.listTasks({status:o.status,priority:o.priority,domain:o.domain});return{success:!0,data:(typeof o.limit=="number"?t.slice(0,o.limit):t).map(i=>({taskId:i.taskId,type:i.task.type,status:i.status,priority:i.task.priority,assignedDomain:i.assignedDomain,assignedAgents:i.assignedAgents,result:i.result,error:i.error,createdAt:i.task.createdAt.toISOString(),startedAt:i.startedAt?.toISOString(),completedAt:i.completedAt?.toISOString(),duration:i.completedAt&&i.startedAt?i.completedAt.getTime()-i.startedAt.getTime():void 0}))}}catch(t){return{success:!1,error:`Failed to list tasks: ${w(t)}`}}}async function Rw(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=e.getTaskStatus(o.taskId);return t?{success:!0,data:{taskId:t.taskId,type:t.task.type,status:t.status,priority:t.task.priority,assignedDomain:t.assignedDomain,assignedAgents:t.assignedAgents,result:o.detailed?t.result:void 0,error:t.error,createdAt:t.task.createdAt.toISOString(),startedAt:t.startedAt?.toISOString(),completedAt:t.completedAt?.toISOString(),duration:t.completedAt&&t.startedAt?t.completedAt.getTime()-t.startedAt.getTime():void 0}}:{success:!1,error:`Task not found: ${o.taskId}`}}catch(t){return{success:!1,error:`Failed to get task status: ${w(t)}`}}}async function Aw(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=await e.cancelTask(o.taskId);return t.success?{success:!0,data:{taskId:o.taskId,cancelled:!0}}:{success:!1,error:t.error.message}}catch(t){return{success:!1,error:`Failed to cancel task: ${w(t)}`}}}async function xw(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e,workflowOrchestrator:t}=me();try{let r=o.context?.project||rX(o.task),n=o.priority==="critical"||/\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(o.task),s=await(await cs()).routeTask({task:o.task,codeContext:o.codeContext,filePaths:o.filePaths,manualTier:o.manualTier,isCritical:n,agentType:`qe-${r}`,domain:r,metadata:{inferredDomain:r,hasCodeContext:!!o.codeContext,fileCount:o.filePaths?.length}}),c=await(await $a()).getExperienceGuidance(o.task,o.context?.project),l=Pve(o.task),u=Ive(o.priority||"medium"),d=kve[l];if(d&&t){console.log(`[TaskOrchestrate] Task type '${l}' has workflow '${d}' - executing workflow`);let h=o.task.match(/https?:\/\/[^\s]+/i),b=h?h[0]:void 0;b&&console.log(`[TaskOrchestrate] Detected URL for analysis: ${b}`);let v={targetId:o.context?.project||b||`task-${Date.now()}`,targetType:b?"website":"epic",description:o.task,acceptanceCriteria:o.context?.requirements||[],url:b,routing:{tier:s.decision.tier,modelId:s.modelId,executionStrategy:s.executionStrategy,complexity:s.decision.complexityAnalysis.overall}},C=await t.executeWorkflow(d,v);return C.success?{success:!0,data:{taskId:C.value,type:l,priority:u,strategy:o.strategy||"adaptive",status:"workflow-started",message:`Workflow '${d}' started for task: ${o.task}`,routing:{tier:s.decision.tier,tierName:s.tierInfo.name,modelId:s.modelId,executionStrategy:s.executionStrategy,complexity:s.decision.complexityAnalysis.overall,confidence:s.decision.confidence,useAgentBooster:s.useAgentBooster,rationale:s.decision.rationale,decisionTimeMs:s.decision.metadata.decisionTimeMs}}}:{success:!1,error:`Workflow execution failed: ${C.error.message}`}}let p={description:o.task,strategy:o.strategy||"adaptive",maxAgents:o.maxAgents,context:o.context};l==="generate-tests"&&(p.sourceFiles=o.filePaths||[],p.sourceCode=o.codeContext||"",p.language=p.language||"typescript",p.testType=p.testType||"unit");let m=await e.submitTask({type:l,priority:u,targetDomains:[],payload:{...p,routing:{tier:s.decision.tier,modelId:s.modelId,executionStrategy:s.executionStrategy,useAgentBooster:s.useAgentBooster,agentBoosterTransform:s.decision.agentBoosterTransform,complexity:s.decision.complexityAnalysis.overall,confidence:s.decision.confidence},experienceGuidance:c?{strategy:c.recommendedStrategy,actions:c.suggestedActions,confidence:c.confidence,tokenSavings:c.estimatedTokenSavings}:void 0},timeout:6e5});if(!m.success)return{success:!1,error:m.error.message};let g=m.value;return await Z8(g,o.task,{agent:"queen-coordinator",domain:o.context?.project}),{success:!0,data:{taskId:g,type:l,priority:u,strategy:o.strategy||"adaptive",status:"submitted",message:`Task orchestrated: ${o.task}${c?" (with experience guidance)":""}`,routing:{tier:s.decision.tier,tierName:s.tierInfo.name,modelId:s.modelId,executionStrategy:s.executionStrategy,complexity:s.decision.complexityAnalysis.overall,confidence:s.decision.confidence,useAgentBooster:s.useAgentBooster,rationale:s.decision.rationale,decisionTimeMs:s.decision.metadata.decisionTimeMs}}}}catch(r){return{success:!1,error:`Failed to orchestrate task: ${w(r)}`}}}async function kw(o){try{let e=await cs(),t=o.domain||rX(o.task),r=o.isCritical??/\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(o.task),n=await e.routeTask({task:o.task,codeContext:o.codeContext,filePaths:o.filePaths,manualTier:o.manualTier,isCritical:r,agentType:o.agentType||`qe-${t}`,domain:t,metadata:{inferredDomain:t,hasCodeContext:!!o.codeContext,fileCount:o.filePaths?.length}});return{success:!0,data:{tier:n.decision.tier,tierName:n.tierInfo.name,modelId:n.modelId,executionStrategy:n.executionStrategy,useAgentBooster:n.useAgentBooster,agentBoosterTransform:n.decision.agentBoosterTransform,complexity:{overall:n.decision.complexityAnalysis.overall,code:n.decision.complexityAnalysis.codeComplexity,reasoning:n.decision.complexityAnalysis.reasoningComplexity,scope:n.decision.complexityAnalysis.scopeComplexity},confidence:n.decision.confidence,rationale:n.decision.rationale,warnings:n.decision.warnings,budget:{allowed:n.decision.budgetDecision.allowed,wasDowngraded:n.decision.budgetDecision.wasDowngraded,estimatedCostUsd:n.decision.budgetDecision.estimatedCostUsd},decisionTimeMs:n.decision.metadata.decisionTimeMs}}}catch(e){return{success:!1,error:`Failed to route task: ${w(e)}`}}}async function Pw(o){try{let e=await cs(),t=e.getRoutingStats(),r=e.getMetrics(),n={stats:t,modelRouterMetrics:{totalDecisions:r.totalDecisions,avgDecisionTimeMs:r.avgDecisionTimeMs,agentBoosterStats:r.agentBoosterStats,budgetStats:r.budgetStats}};return o.includeLog&&(n.log=e.getRoutingLog(o.logLimit||100)),{success:!0,data:n}}catch(e){return{success:!1,error:`Failed to get routing metrics: ${w(e)}`}}}async function Iw(o){try{let{createRoutingFeedbackCollector:e}=await Promise.resolve().then(()=>(YL(),aK)),{getGlobalCostTracker:t}=await Promise.resolve().then(()=>(KL(),sK)),r=e(100);await r.initialize(),r.enableEconomicRouting({...o.taskComplexity!=null?{}:{}},t());let n=r.getEconomicReport();return n?{success:!0,data:{tierEfficiency:n.tierEfficiency.map(s=>({...s,qualityPerDollar:isFinite(s.qualityPerDollar)?s.qualityPerDollar:"Infinity"})),currentHourlyCostUsd:n.currentHourlyCostUsd,currentDailyCostUsd:n.currentDailyCostUsd,budgetRemaining:n.budgetRemaining,recommendation:n.recommendation,savingsOpportunity:n.savingsOpportunity}}:{success:!1,error:"Economic routing is not available"}}catch(e){return{success:!1,error:`Failed to get economic routing report: ${w(e)}`}}}function rX(o){let e=o.toLowerCase();return/\b(security|vulnerabilit|cve|owasp|secret|credential|injection|xss|csrf)\b/.test(e)?"security-compliance":/\b(chaos|resilience|fault.?inject|disaster|failover)\b/.test(e)?"chaos-resilience":/\b(defect|bug.?predict|risk.?assess|mutation)\b/.test(e)?"defect-intelligence":/\b(coverage|uncovered|gap.?analy)\b/.test(e)?"coverage-analysis":/\b(quality|code.?review|maintain|tech.?debt)\b/.test(e)?"quality-assessment":/\b(contract|api.?compat|breaking.?change|pact)\b/.test(e)?"contract-testing":/\b(index|knowledge.?graph|semantic|code.?intel)\b/.test(e)?"code-intelligence":/\b(accessib|a11y|wcag|screen.?read)\b/.test(e)?"visual-accessibility":/\b(requirement|bdd|acceptance|user.?stor)\b/.test(e)?"requirements-validation":/\b(generat.*test|test.*generat|write.*test|create.*test)\b/.test(e)?"test-generation":/\b(run.*test|execut.*test)\b/.test(e)?"test-execution":"test-generation"}function Pve(o){let e=o.toLowerCase();return/run\s+(?:\w+\s+)*tests?/.test(e)||/execute\s+(?:\w+\s+)*tests?/.test(e)||e.includes("run tests")||e.includes("execute tests")?"execute-tests":e.includes("generate test")||e.includes("create test")||e.includes("write test")?"generate-tests":e.includes("coverage")||e.includes("uncovered")?"analyze-coverage":e.includes("quality")||e.includes("code quality")?"assess-quality":e.includes("defect")||e.includes("bug")||e.includes("predict")?"predict-defects":e.includes("requirement")||e.includes("bdd")||e.includes("acceptance")?"validate-requirements":e.includes("index")||e.includes("knowledge graph")||e.includes("semantic")?"index-code":e.includes("security")||e.includes("vulnerability")||e.includes("owasp")?"scan-security":e.includes("contract")||e.includes("api contract")||e.includes("pact")?"validate-contracts":e.includes("accessibility")||e.includes("a11y")||e.includes("wcag")?"test-accessibility":e.includes("chaos")||e.includes("resilience")||e.includes("fault")?"run-chaos":e.includes("learn")||e.includes("optimize")||e.includes("improve")?"optimize-learning":e.includes("ideation")||e.includes("quality criteria")||e.includes("htsm")||e.includes("qcsd")||e.includes("testability")||e.includes("pi planning")||e.includes("sprint planning")?"ideation-assessment":"generate-tests"}function Ive(o){switch(o){case"critical":return"p0";case"high":return"p1";case"medium":return"p2";case"low":return"p3";default:return"p1"}}async function Mve(o){try{let e=await $a(),t={taskId:o.taskId,task:o.task,taskType:o.taskType,success:o.success,executionTimeMs:o.executionTimeMs,agentId:o.agentId,domain:o.domain,modelTier:o.modelTier,qualityScore:o.qualityScore,error:o.error,metrics:o.metrics};await e.recordTaskOutcome(t);let r=o.success&&(o.qualityScore||.5)>=.6;return{success:!0,data:{recorded:!0,patternStored:r,message:r?`Outcome recorded and pattern stored for task ${o.taskId}`:`Outcome recorded for task ${o.taskId}`}}}catch(e){return{success:!1,error:`Failed to record task outcome: ${w(e)}`}}}async function Dve(){try{let e=await(await $a()).getStats();return{success:!0,data:{service:e.service,patterns:{totalPatterns:e.reasoningBank.totalPatterns,byDomain:e.reasoningBank.byDomain,byTier:e.reasoningBank.byTier,learningOutcomes:e.reasoningBank.learningOutcomes,patternSuccessRate:e.reasoningBank.patternSuccessRate},embeddings:{cacheSize:e.reasoningBank.embeddingCacheSize,dimension:e.reasoningBank.embeddingDimension,transformerAvailable:e.reasoningBank.transformerAvailable},performance:{avgRoutingLatencyMs:e.reasoningBank.avgRoutingLatencyMs,p95RoutingLatencyMs:e.reasoningBank.p95RoutingLatencyMs}}}}catch(o){return{success:!1,error:`Failed to get ReasoningBank stats: ${w(o)}`}}}async function _ve(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=e.getTaskStatus(o.taskId);if(!t)return{success:!1,error:`Task not found: ${o.taskId}`};let r={taskId:t.taskId,type:t.task.type,status:t.status,priority:t.task.priority,assignedDomain:t.assignedDomain,assignedAgents:t.assignedAgents,result:o.detailed?t.result:void 0,error:t.error,createdAt:t.task.createdAt.toISOString(),startedAt:t.startedAt?.toISOString(),completedAt:t.completedAt?.toISOString(),duration:t.completedAt&&t.startedAt?t.completedAt.getTime()-t.startedAt.getTime():void 0};if((t.status==="completed"||t.status==="failed")&&!tX.has(o.taskId)){tX.add(o.taskId);try{let n=await $a(),i=r.duration||0,s=t.status==="completed",a=t.task.payload||{},c=typeof a.description=="string"?a.description:t.task.type,l=a.routing,u=await Sw(o.taskId,s,t.error),d=u?.metrics.averageQuality??(s?.7:.3);await n.recordTaskOutcome({taskId:o.taskId,task:c,taskType:t.task.type,success:s,executionTimeMs:i,agentId:t.assignedAgents?.[0],domain:t.assignedDomain,modelTier:l?.tier,qualityScore:d,error:t.error,metrics:{testsGenerated:typeof t.result=="object"&&t.result?t.result.testsGenerated:void 0,testsPassed:typeof t.result=="object"&&t.result?t.result.testsPassed:void 0}}),console.error(`[TaskHandler] Recorded learning outcome: task=${o.taskId} success=${s} quality=${d.toFixed(2)} trajectorySteps=${u?.steps.length??0}`)}catch(n){console.error("[TaskHandler] Failed to record outcome:",n)}}return{success:!0,data:r}}catch(t){return{success:!1,error:`Failed to get task status: ${w(t)}`}}}function Lve(o){nX(o);let e=o.subscribeToEventType("TaskCompleted",async r=>{let{taskId:n}=r.payload;n&&await Sw(n,!0).catch(()=>{})}),t=o.subscribeToEventType("TaskFailed",async r=>{let{taskId:n,error:i}=r.payload;n&&await Sw(n,!1,i).catch(()=>{})});dN=[e,t]}function nX(o){for(let e of dN)o.unsubscribe(e);dN=[]}var kve,tX,dN,Mw=y(()=>{"use strict";us();yS();eX();k();kve={"ideation-assessment":"qcsd-ideation-swarm"};tX=new Set;dN=[]});var sX={};K(sX,{DEFAULT_STRUCTURAL_HEALTH_CONFIG:()=>iX,StructuralHealthMonitor:()=>Dw,createStructuralHealthMonitor:()=>Fve});function Fve(o){return new Dw(o)}var iX,Dw,aX=y(()=>{"use strict";fL();iX={healthyThreshold:.4,warningThreshold:.2,maxHistoryEntries:100,enableLogging:!1},Dw=class{config;minCutService;history=[];constructor(e){this.config={...iX,...e},this.minCutService=oS()}computeFleetHealth(e){if(e.length===0)return this.emptyFleetResult();let t=this.minCutService.buildTaskGraphFromTopology(e);return this.computeFleetHealthFromGraph(t,e.length)}computeFleetHealthFromGraph(e,t){if(e.nodes.length===0)return this.emptyFleetResult();let r=this.minCutService.getStructuralHealth(e),n=this.determineStatus(r.normalizedLambda),i={lambda:r.lambda,healthy:r.healthy,weakPoints:r.weakPoints,normalizedLambda:r.normalizedLambda,riskScore:r.riskScore,status:n,suggestions:r.suggestions,measuredAt:new Date};return this.addHistoryEntry({lambda:r.lambda,healthy:r.healthy,weakPointCount:r.weakPoints.length,agentCount:t??e.nodes.length,timestamp:i.measuredAt}),this.config.enableLogging&&this.logHealth(i),i}getTrend(){if(this.history.length<2)return"stable";let e=Math.min(5,this.history.length),t=this.history.slice(-e),r=t[0].lambda,i=t[t.length-1].lambda-r;return Math.abs(i)<.05?"stable":i>0?"improving":"degrading"}getHistory(e){let t=[...this.history];return e!==void 0&&e<t.length?t.slice(-e):t}clearHistory(){this.history.length=0}getMinCutService(){return this.minCutService}determineStatus(e){return e>=this.config.healthyThreshold?"healthy":e>=this.config.warningThreshold?"warning":"critical"}addHistoryEntry(e){this.history.push(e),this.history.length>this.config.maxHistoryEntries&&this.history.splice(0,this.history.length-this.config.maxHistoryEntries)}emptyFleetResult(){return{lambda:0,healthy:!1,weakPoints:[],normalizedLambda:0,riskScore:1,status:"empty",suggestions:["No agents in fleet. Spawn agents to build a topology."],measuredAt:new Date}}logHealth(e){console.error(`[StructuralHealth] Status: ${e.status} | Lambda: ${e.normalizedLambda.toFixed(3)} | Weak points: ${e.weakPoints.length} | Risk: ${(e.riskScore*100).toFixed(0)}%`)}}});function me(){return z}function ge(){return z.initialized&&z.kernel!==null&&z.queen!==null}function cX(o,e){if(z.topology!=="hierarchical"){let i={agentId:o,domain:e,level:"worker",spawnedAt:new Date};return z.agentLevels.set(o,i),"worker"}let r=Array.from(z.agentLevels.values()).find(i=>i.domain===e&&i.level==="lead")?"worker":"lead",n={agentId:o,domain:e,level:r,spawnedAt:new Date};return z.agentLevels.set(o,n),r}function lX(o){return z.agentLevels.get(o)}async function Rg(o){try{if(z.initialized&&z.kernel&&z.queen)return{success:!0,data:{fleetId:z.fleetId,topology:o.topology||"hierarchical",maxAgents:o.maxAgents||15,enabledDomains:o.enabledDomains||oX,status:"ready"}};z.fleetId=`fleet-${E().slice(0,8)}`;let e=o.enabledDomains||[...Z],t=e.filter(c=>c!=="coordination");z.kernel=new nT({maxConcurrentAgents:o.maxAgents||15,memoryBackend:o.memoryBackend||"hybrid",hnswEnabled:!0,lazyLoading:o.lazyLoading!==!1,enabledDomains:e}),await z.kernel.initialize(),z.router=new qT(z.kernel.eventBus),await z.router.initialize();let r=c=>z.kernel.getDomainAPI(c),n=new Tw(z.kernel.eventBus,z.kernel.memory,r),i=z.kernel.plugins;await i.loadAll();let s=new Map;for(let c of i.getLoaded()){let l=i.getPlugin(c);l&&s.set(c,l)}z.queen=x5(z.kernel,z.router,n,void 0,s),await z.queen.initialize(),z.workflowOrchestrator=new mm(z.kernel.eventBus,z.kernel.memory,z.kernel.coordinator),await z.workflowOrchestrator.initialize(),Nve(z.kernel,z.workflowOrchestrator);let{subscribeTrajectoryEvents:a}=await Promise.resolve().then(()=>(Mw(),pN));return a(z.router),z.initialized=!0,z.initTime=new Date,z.topology=o.topology||"hierarchical",z.agentLevels.clear(),{success:!0,data:{fleetId:z.fleetId,topology:z.topology,maxAgents:o.maxAgents||15,enabledDomains:t,status:"initialized"}}}catch(e){return{success:!1,error:`Failed to initialize fleet: ${w(e)}`}}}async function mN(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};try{let e=z.queen.getHealth(),t=z.queen.getMetrics(),r={status:e.status,uptime:t.uptime,agents:{total:e.totalAgents,active:e.activeAgents,idle:e.totalAgents-e.activeAgents},tasks:{pending:e.pendingTasks,running:e.runningTasks,completed:t.tasksCompleted,failed:t.tasksFailed}};if(o.includeDomains){let i=[];for(let[s,a]of e.domainHealth)i.push({domain:s,status:a.status,agents:a.agents.total,load:z.queen.getDomainLoad(s)});r.domains=i}let n=z.queen.getDomainTeamManager?.();if(n){let i=n.listDomainTeams(),s=0,a=0;for(let c of i)s+=1+c.teammateIds.length,n.getTeamHealth(c.domain)?.healthy&&a++;r.teams={active:i.length,totalAgentsInTeams:s,healthyCount:a}}o.includeMetrics&&(r.metrics={tasksReceived:t.tasksReceived,tasksCompleted:t.tasksCompleted,tasksFailed:t.tasksFailed,agentUtilization:t.agentUtilization,averageTaskDuration:t.averageTaskDuration});try{let{getUnifiedMemory:i}=await Promise.resolve().then(()=>(Y(),Qr)),s=i();if(s.isInitialized()){let a=l=>{try{return s.queryCount(l)}catch{return 0}},c=await s.vectorCount();r.learning={totalPatterns:a("qe_patterns"),totalExperiences:a("captured_experiences"),totalTrajectories:a("qe_trajectories"),vectorCount:c,experienceApplications:a("experience_applications"),dreamCycles:a("dream_cycles"),embeddingDimension:384}}}catch{}return{success:!0,data:r}}catch(e){return{success:!1,error:`Failed to get fleet status: ${w(e)}`}}}async function gN(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};try{if(o.domain){let r=z.queen.getDomainHealth(o.domain);return r?{success:!0,data:{domain:o.domain,status:r.status,agents:r.agents,errors:r.errors,lastActivity:r.lastActivity?.toISOString()}}:{success:!1,error:`Domain not found: ${o.domain}`}}let e=z.queen.getHealth(),t={status:e.status,totalAgents:e.totalAgents,activeAgents:e.activeAgents,pendingTasks:e.pendingTasks,runningTasks:e.runningTasks,workStealingActive:e.workStealingActive,lastHealthCheck:e.lastHealthCheck.toISOString()};if(o.detailed){let r={};for(let[n,i]of e.domainHealth)r[n]={status:i.status,agents:i.agents,errors:i.errors.length,lastActivity:i.lastActivity?.toISOString()};t.domains=r,t.issues=e.issues.map(n=>({severity:n.severity,message:n.message,domain:n.domain,timestamp:n.timestamp.toISOString()}))}try{let{StructuralHealthMonitor:r}=await Promise.resolve().then(()=>(aX(),sX)),n=new r,i=[];for(let[c]of e.domainHealth){let l=z.queen.getAgentsByDomain(c);for(let u of l)i.push({id:u.id,name:u.name,domain:u.domain})}let s=i.map(c=>({id:c.id,name:c.name,domain:c.domain,capabilities:[c.domain],dependsOn:[],weight:1})),a=n.computeFleetHealth(s);t.structuralHealth={lambda:a.lambda,healthy:a.healthy,normalizedLambda:a.normalizedLambda,riskScore:a.riskScore,status:a.status,weakPoints:a.weakPoints,suggestions:a.suggestions}}catch{}return{success:!0,data:t}}catch(e){return{success:!1,error:`Failed to get fleet health: ${w(e)}`}}}async function hN(){if(V4(),kS(),J8(),z.workflowOrchestrator&&(await z.workflowOrchestrator.dispose(),z.workflowOrchestrator=null),z.queen&&(await z.queen.dispose(),z.queen=null),z.router){try{let{unsubscribeTrajectoryEvents:o}=await Promise.resolve().then(()=>(Mw(),pN));o(z.router)}catch{}await z.router.dispose(),z.router=null}z.kernel&&(await z.kernel.dispose(),z.kernel=null),z.initialized=!1,z.fleetId=null,z.initTime=null,z.topology="hierarchical",z.agentLevels.clear()}async function fN(){let o=performance.now();try{let e=ge(),t=z.initTime?Date.now()-z.initTime.getTime():0,r={connected:!1,totalEntries:0,namespaces:0},n={enabled:!1,vectorCount:0},i=0;if(e&&z.kernel){let u=z.kernel.memory;try{r.connected=!0;let d=await u.count("default"),p=await u.count("learning"),m=await u.count("patterns");r.totalEntries=d+p+m;let g=0;for(let h of["default","learning","patterns","mcp-tools","coordination"])await u.count(h)>0&&g++;r.namespaces=g}catch{}try{let d=process.env.AQE_V3_HNSW_ENABLED==="true";n.enabled=d;let p=u;d&&typeof p.getVectorCount=="function"&&(n.vectorCount=await p.getVectorCount())}catch{}try{i=(await u.search("pattern:*",1e3)).length}catch{}}let s=e&&z.kernel?(z.kernel.getLoadedDomains?.()??oX).length:0,a=null;try{let{getSharedRvfDualWriterSync:u}=await Promise.resolve().then(()=>(Ji(),da)),d=u();if(d){let p=d.status(),m=d.getDivergenceReport();a={mode:p.mode,vectorCount:p.rvf?.totalVectors??0,divergences:m.divergences,promotionSafe:d.isPromotionSafe()}}}catch{}let c=null;try{let{SQLitePatternStore:u}=await Promise.resolve().then(()=>(Tc(),MM)),d=new u;await d.initialize(),c=d.getGhostPatternCount(),d.close()}catch{}return{success:!0,data:{status:e?"healthy":"unhealthy",version:"3.9.14",loadedDomains:s,memory:r,hnsw:n,rvf:a??void 0,ghostPatterns:c??void 0,loadedPatterns:i,uptimeMs:t,timestamp:new Date().toISOString()},metadata:{executionTime:performance.now()-o,timestamp:new Date().toISOString(),requestId:E(),toolName:"aqe_health"}}}catch(e){return{success:!1,error:w(e),metadata:{executionTime:performance.now()-o,timestamp:new Date().toISOString(),requestId:E(),toolName:"aqe_health"}}}}function Nve(o,e){let t=o.getDomainAPI("requirements-validation");t?.registerWorkflowActions&&(t.registerWorkflowActions(e),console.log("[Fleet] Registered requirements-validation workflow actions (includes QCSD Ideation)"));let r=o.getDomainAPI("visual-accessibility");r?.registerWorkflowActions&&(r.registerWorkflowActions(e),console.log("[Fleet] Registered visual-accessibility workflow actions"))}var oX,z,us=y(()=>{"use strict";N();s3();L();k5();dD();P5();NL();PS();lN();Y8();k();oX=Z.filter(o=>o!=="coordination"),z={fleetId:null,kernel:null,queen:null,router:null,workflowOrchestrator:null,initialized:!1,initTime:null,topology:"hierarchical",agentLevels:new Map}});import{randomUUID as Tbe}from"crypto";var Oe,rr=y(()=>{"use strict";k();Oe=class{constructor(e){this.config=e}config;_status="idle";_lastResult;_lastRunAt;_nextRunAt;_totalExecutions=0;_successfulExecutions=0;_failedExecutions=0;_executionDurations=[];_recentResults=[];get status(){return this._status}get lastResult(){return this._lastResult}get lastRunAt(){return this._lastRunAt}get nextRunAt(){return this._nextRunAt}async initialize(){this._status="idle",this._nextRunAt=new Date(Date.now()+this.config.intervalMs)}async execute(e){let t=Date.now();this._status="running",this._lastRunAt=new Date,this._totalExecutions++;let r,n;for(let s=0;s<=this.config.retryCount;s++)try{if(e.signal.aborted)throw new Error("Worker execution aborted");n=await this.executeWithTimeout(()=>this.doExecute(e),this.config.timeoutMs,e.signal);break}catch(a){r=S(a),e.logger.warn(`Worker ${this.config.id} attempt ${s+1} failed: ${r.message}`),s<this.config.retryCount&&await this.delay(this.config.retryDelayMs)}let i=Date.now()-t;return n?(this._successfulExecutions++,this._lastResult=n):(this._failedExecutions++,n=this.createErrorResult(r,i),this._lastResult=n),this._executionDurations.push(i),this._executionDurations.length>100&&this._executionDurations.shift(),this._recentResults.push({timestamp:new Date,success:n.success,durationMs:i}),this._recentResults.length>5&&this._recentResults.shift(),this._nextRunAt=new Date(Date.now()+this.config.intervalMs),this._status=n.success?"idle":"error",await e.eventBus.publish({type:"worker.executed",workerId:this.config.id,timestamp:new Date,payload:{success:n.success,durationMs:i,findingsCount:n.findings.length,healthScore:n.metrics.healthScore}}),n}pause(){this._status!=="stopped"&&(this._status="paused")}resume(){this._status==="paused"&&(this._status="idle")}async stop(){this._status="stopped"}getHealth(){let e=this._executionDurations.length>0?this._executionDurations.reduce((r,n)=>r+n,0)/this._executionDurations.length:0,t=this._totalExecutions>0?this._successfulExecutions/this._totalExecutions:1;return{status:this._status,healthScore:Math.round(t*100),totalExecutions:this._totalExecutions,successfulExecutions:this._successfulExecutions,failedExecutions:this._failedExecutions,avgDurationMs:Math.round(e),recentResults:[...this._recentResults]}}async executeWithTimeout(e,t,r){return new Promise((n,i)=>{let s=setTimeout(()=>{i(new Error(`Worker execution timed out after ${t}ms`))},t),a=()=>{clearTimeout(s),i(new Error("Worker execution aborted"))};r.addEventListener("abort",a,{once:!0}),e().then(c=>{clearTimeout(s),r.removeEventListener("abort",a),n(c)}).catch(c=>{clearTimeout(s),r.removeEventListener("abort",a),i(c)})})}createErrorResult(e,t){return{workerId:this.config.id,timestamp:new Date,durationMs:t,success:!1,error:e.message,metrics:{itemsAnalyzed:0,issuesFound:0,healthScore:0,trend:"degrading",domainMetrics:{}},findings:[],recommendations:[]}}createResult(e,t,r,n){return{workerId:this.config.id,timestamp:new Date,durationMs:e,success:!0,metrics:t,findings:r,recommendations:n}}delay(e){return new Promise(t=>setTimeout(t,e))}generateId(){return`${Date.now()}-${Tbe().slice(0,9)}`}}});var Sbe,Rl,tO=y(()=>{"use strict";rr();sw();Y();$F();k();Sbe={id:"heartbeat-scheduler",name:"Heartbeat Scheduler",description:"Token-free maintenance: pattern promotion, stale detection, experience buffer monitoring",intervalMs:1800*1e3,priority:"normal",targetDomains:["learning-optimization"],enabled:!0,timeoutMs:6e4,retryCount:1,retryDelayMs:5e3},Rl=class extends Oe{lifecycleManager=null;dailyLogger;lastRunTimestamp=0;constructor(){super(Sbe),this.dailyLogger=new ag}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=j();await e.initialize();let t=e.getDatabase();return this.lifecycleManager=sg(t,{promotionRewardThreshold:.7,promotionMinOccurrences:2,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3}),this.lifecycleManager}catch{return null}}getPendingExperienceCount(){try{return j().getDatabase().prepare("SELECT COUNT(*) as pending FROM qe_pattern_usage WHERE created_at > datetime('now', '-1 day')").get()?.pending??0}catch{return 0}}async doExecute(e){let t=Date.now();e.logger.info("Heartbeat scheduler running (token-free maintenance)");let r=[],n=[],i=await this.getLifecycleManager();if(!i)return e.logger.warn("Unified memory unavailable \u2014 returning zero-metric heartbeat"),this.createResult(Date.now()-t,{itemsAnalyzed:0,issuesFound:0,healthScore:50,trend:"stable",domainMetrics:{promoted:0,deprecated:0,decayed:0,stalePatterns:0,pendingExperiences:0,avgConfidence:0,avgSuccessRate:0}},[],[]);let s=0,a=0;try{let v=i.promoteEligiblePatterns();s=v.promoted,a=v.checked,s>0&&r.push({type:"heartbeat-promotion",severity:"info",domain:"learning-optimization",title:"Patterns Promoted",description:`${s} of ${a} short-term patterns promoted to long-term`})}catch(v){e.logger.warn("Pattern promotion failed",{error:w(v)})}let c=0,l=0;try{let v=i.deprecateStalePatterns();c=v.deprecated,l=v.checked,c>0&&r.push({type:"heartbeat-deprecation",severity:"low",domain:"learning-optimization",title:"Stale Patterns Deprecated",description:`${c} of ${l} patterns deprecated (stale, failed, or low confidence)`})}catch(v){e.logger.warn("Stale pattern detection failed",{error:w(v)})}let u=0;try{let v=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/864e5:1;u=i.applyConfidenceDecay(Math.min(v,7)).decayed}catch(v){e.logger.warn("Confidence decay failed",{error:w(v)})}let d=this.getPendingExperienceCount(),p={totalPatterns:0,activePatterns:0,deprecatedPatterns:0,promotedPatterns:0,shortTermPatterns:0,longTermPatterns:0,avgConfidence:0,avgSuccessRate:0,patternsNearDeprecation:0};try{p=i.getStats()}catch(v){e.logger.warn("Stats retrieval failed",{error:w(v)})}try{this.dailyLogger.log({timestamp:new Date,type:"pattern-promoted",summary:`Heartbeat: ${s} promoted, ${c} deprecated, ${u} decayed, ${d} pending exp, ${p.activePatterns} active patterns (avg conf: ${p.avgConfidence.toFixed(2)})`,details:{promoted:s,deprecated:c,decayed:u,pendingExperiences:d,totalPatterns:p.totalPatterns,activePatterns:p.activePatterns,avgConfidence:p.avgConfidence,avgSuccessRate:p.avgSuccessRate}}),this.dailyLogger.flush()}catch(v){e.logger.warn("Daily log write failed",{error:w(v)})}this.lastRunTimestamp=Date.now(),p.activePatterns>0&&p.patternsNearDeprecation/p.activePatterns>.5&&n.push({priority:"p2",domain:"learning-optimization",action:"Review At-Risk Patterns",description:`${p.patternsNearDeprecation} of ${p.activePatterns} active patterns are near deprecation. Manual review recommended.`,estimatedImpact:"medium",effort:"low",autoFixable:!1});let m=this.calculateHealthScore(p,s,c),g=this.determineTrend(s,c,p.activePatterns),h=Math.max(a,l),b=s+c+p.patternsNearDeprecation;return e.logger.info("Heartbeat complete",{promoted:s,deprecated:c,decayed:u,pendingExperiences:d,healthScore:m}),this.createResult(Date.now()-t,{itemsAnalyzed:h,issuesFound:b,healthScore:m,trend:g,domainMetrics:{promoted:s,deprecated:c,decayed:u,stalePatterns:p.patternsNearDeprecation,pendingExperiences:d,avgConfidence:Number(p.avgConfidence.toFixed(3)),avgSuccessRate:Number(p.avgSuccessRate.toFixed(3))}},r,n)}calculateHealthScore(e,t,r){let n=70;if(n+=Math.min(15,t*5),e.avgConfidence>0&&(n+=Math.round((e.avgConfidence-.5)*30)),e.activePatterns>0){let i=r/e.activePatterns;n-=Math.round(i*20)}return e.activePatterns>0&&e.patternsNearDeprecation/e.activePatterns>.5&&(n-=10),Math.max(0,Math.min(100,Math.round(n)))}determineTrend(e,t,r){return r===0?"stable":e>t?"improving":t>e&&t/r>.1?"degrading":"stable"}}});var T1,S1,w1,LE,FE,NE,qY=y(()=>{"use strict";T1=class{handlers=[];async publish(e){for(let t of this.handlers)try{t(e)}catch(r){console.debug("[WorkerManager] Event handler error:",r instanceof Error?r.message:r)}}subscribe(e){return this.handlers.push(e),()=>{let t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)}}dispose(){this.handlers=[]}get handlerCount(){return this.handlers.length}},S1=class{store=new Map;async get(e){return this.store.get(e)}async set(e,t){this.store.set(e,t)}async search(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(t.replace(/\*/g,".*"));return Array.from(this.store.keys()).filter(n=>r.test(n))}clear(){this.store.clear()}get size(){return this.store.size}},w1=class{constructor(e){this.workerId=e}workerId;format(e,t,r){let n=new Date().toISOString(),i=r?` ${JSON.stringify(r)}`:"";return`[${n}] [${e}] [${this.workerId}] ${t}${i}`}debug(e,t){process.env.DEBUG&&console.debug(this.format("DEBUG",e,t))}info(e,t){console.info(this.format("INFO",e,t))}warn(e,t){console.warn(this.format("WARN",e,t))}error(e,t){console.error(this.format("ERROR",e,t))}},LE=class{constructor(e){this.kernelGetter=e}kernelGetter;getDomainAPI(e){let t=this.kernelGetter();if(t)return t.getDomainAPI(e)}getDomainHealth(e){let t=this.kernelGetter();if(!t)return{status:"unknown",errors:["Kernel not available"]};let n=t.getHealth().domains[e];return n?{status:n.status,errors:n.errors||[]}:{status:"unknown",errors:[`Domain ${e} not found`]}}},FE=class{getDomainAPI(e){}getDomainHealth(e){return{status:"healthy",errors:[]}}},NE=class{workers=new Map;timers=new Map;abortControllers=new Map;eventBus;memory;domainAccess;running=!1;kernelRef;constructor(e){this.eventBus=e?.eventBus??new T1,this.memory=e?.memory??new S1,this.kernelRef=e?.kernel,e?.domainAccess?this.domainAccess=e.domainAccess:e?.kernel?this.domainAccess=new LE(()=>this.kernelRef):this.domainAccess=new FE}setKernel(e){this.kernelRef=e,this.domainAccess instanceof FE&&(this.domainAccess=new LE(()=>this.kernelRef))}register(e){if(this.workers.has(e.config.id))throw new Error(`Worker ${e.config.id} is already registered`);this.workers.set(e.config.id,e)}unregister(e){this.workers.get(e)&&(this.stopWorker(e),this.workers.delete(e))}get(e){return this.workers.get(e)}list(){return Array.from(this.workers.values())}async startAll(){this.running=!0;for(let e of Array.from(this.workers.values()))e.config.enabled&&await this.startWorker(e)}async stopAll(){this.running=!1;let e=[];for(let t of Array.from(this.workers.keys()))e.push(this.stopWorker(t));await Promise.all(e)}async runNow(e){let t=this.workers.get(e);if(!t)throw new Error(`Worker ${e} not found`);let r=this.timers.get(e);r&&clearTimeout(r);let n=new AbortController;this.abortControllers.set(e,n);let i=this.createContext(e,n.signal),s=await t.execute(i);return this.running&&t.config.enabled&&t.status!=="stopped"&&this.scheduleNextRun(t),s}getHealth(){let e={},t=0,r=0,n=0,i=0;for(let[a,c]of Array.from(this.workers.entries())){let l=c.getHealth();switch(e[a]=l,i+=l.healthScore,c.status){case"running":t++;break;case"paused":r++;break;case"error":n++;break}}let s=this.workers.size>0?Math.round(i/this.workers.size):100;return{totalWorkers:this.workers.size,runningWorkers:t,pausedWorkers:r,errorWorkers:n,healthScore:s,workers:e}}onWorkerEvent(e){return this.eventBus.subscribe(e)}async startWorker(e){await e.initialize();let t=new AbortController;this.abortControllers.set(e.config.id,t);let r=this.createContext(e.config.id,t.signal);try{await e.execute(r)}catch(n){console.error(`Worker ${e.config.id} initial execution failed:`,n)}this.scheduleNextRun(e)}async stopWorker(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e));let r=this.abortControllers.get(e);r&&(r.abort(),this.abortControllers.delete(e));let n=this.workers.get(e);n&&await n.stop()}scheduleNextRun(e){let t=setTimeout(async()=>{if(!this.running||e.status==="stopped"||e.status==="paused")return;let r=new AbortController;this.abortControllers.set(e.config.id,r);let n=this.createContext(e.config.id,r.signal);try{await e.execute(n)}catch(i){console.error(`Worker ${e.config.id} execution failed:`,i)}this.running&&e.config.enabled&&e.status!=="error"&&this.scheduleNextRun(e)},e.config.intervalMs);this.timers.set(e.config.id,t)}createContext(e,t){return{eventBus:this.eventBus,memory:this.memory,logger:new w1(e),domains:this.domainAccess,signal:t}}}});var kwe,Hg,UY=y(()=>{"use strict";rr();k();kwe={id:"test-health",name:"Test Health Monitor",description:"Monitors test suite health metrics including pass rates, execution times, and reliability",intervalMs:300*1e3,priority:"high",targetDomains:["test-execution","test-generation"],enabled:!0,timeoutMs:6e4,retryCount:2,retryDelayMs:5e3},Hg=class extends Oe{previousMetrics;constructor(){super(kwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting test health analysis");let r=[],n=[],i=await this.collectMetrics(e);this.analyzePassRate(i,r,n),this.analyzeExecutionTime(i,r,n),this.analyzeReliability(i,r,n),this.analyzeGrowth(i,r,n),this.compareToPrevious(i,r,n),await e.memory.set("test-health:previous-metrics",i),this.previousMetrics=i;let s=this.calculateHealthScore(i),a=this.determineTrend(i);return e.logger.info("Test health analysis complete",{healthScore:s,findingsCount:r.length}),this.createResult(Date.now()-t,{itemsAnalyzed:i.totalTests,issuesFound:r.length,healthScore:s,trend:a,domainMetrics:{passRate:`${(i.passingTests/i.totalTests*100).toFixed(1)}%`,avgExecutionTime:`${i.avgExecutionTimeMs}ms`,reliability:`${i.reliability}%`,totalTests:i.totalTests}},r,n)}async collectMetrics(e){let t=await e.memory.get("test-health:previous-metrics");if(t&&(this.previousMetrics=t),!e.domains.getDomainAPI("test-execution"))throw new Error("Test-execution domain not available - cannot compute health metrics. Ensure the test-execution domain is properly initialized before running this worker.");try{let n=await e.memory.search("test-health:run-result:*");if(n.length===0)throw new Error('No test run data found in memory - cannot compute health metrics. Run some tests first or ensure test results are being stored with keys matching "test-health:run-result:*".');let i=0,s=0,a=0,c=0,l=0,u=0;for(let g of n.slice(0,50)){let h=await e.memory.get(g);h&&(i+=h.total,s+=h.passed,a+=h.failed,c+=h.skipped,l+=h.duration,u++)}let d=u>0?Math.round(l/u):0,p=i>0?Math.round(s/i*100):0,m=await e.memory.get("test-health:growth-metrics");return{totalTests:i||0,passingTests:s||0,failingTests:a||0,skippedTests:c||0,avgExecutionTimeMs:d,reliability:p,growth:{testsAddedLast7Days:m?.testsAddedLast7Days||0,testsRemovedLast7Days:m?.testsRemovedLast7Days||0}}}catch(n){let i=w(n);throw new Error(`Failed to collect test health metrics: ${i}. Check memory service connectivity and test result data availability.`)}}analyzePassRate(e,t,r){let n=e.passingTests/e.totalTests*100;n<95&&(t.push({type:"low-pass-rate",severity:n<90?"high":"medium",domain:"test-execution",title:"Low Test Pass Rate",description:`Test pass rate is ${n.toFixed(1)}%, below the 95% target`,context:{passing:e.passingTests,failing:e.failingTests,total:e.totalTests}}),r.push({priority:"p1",domain:"test-execution",action:"Investigate Failing Tests",description:`${e.failingTests} tests are currently failing. Review and fix to improve pass rate.`,estimatedImpact:"high",effort:"medium",autoFixable:!1}))}analyzeExecutionTime(e,t,r){e.avgExecutionTimeMs>500&&(t.push({type:"slow-tests",severity:e.avgExecutionTimeMs>1e3?"high":"medium",domain:"test-execution",title:"Slow Test Execution",description:`Average test execution time is ${e.avgExecutionTimeMs}ms, consider optimization`,context:{avgExecutionTimeMs:e.avgExecutionTimeMs}}),r.push({priority:"p2",domain:"test-execution",action:"Optimize Test Execution Time",description:"Review and optimize slow-running tests. Consider parallelization or mocking slow dependencies.",estimatedImpact:"medium",effort:"medium",autoFixable:!1}))}analyzeReliability(e,t,r){e.reliability<95&&(t.push({type:"reliability-issue",severity:e.reliability<85?"high":"medium",domain:"test-execution",title:"Test Reliability Concern",description:`Test reliability score is ${e.reliability}%, indicating potential flaky tests`,context:{reliability:e.reliability}}),r.push({priority:"p1",domain:"test-execution",action:"Address Flaky Tests",description:"Identify and fix flaky tests to improve overall test reliability.",estimatedImpact:"high",effort:"medium",autoFixable:!1}))}analyzeGrowth(e,t,r){let n=e.growth.testsAddedLast7Days-e.growth.testsRemovedLast7Days;n<0&&(t.push({type:"test-coverage-decline",severity:"medium",domain:"test-generation",title:"Test Coverage Declining",description:`Net loss of ${Math.abs(n)} tests in the last 7 days`,context:{added:e.growth.testsAddedLast7Days,removed:e.growth.testsRemovedLast7Days}}),r.push({priority:"p2",domain:"test-generation",action:"Review Test Coverage Strategy",description:"More tests are being removed than added. Ensure adequate test coverage is maintained.",estimatedImpact:"medium",effort:"low",autoFixable:!1}))}compareToPrevious(e,t,r){if(!this.previousMetrics)return;let n=e.passingTests/e.totalTests-this.previousMetrics.passingTests/this.previousMetrics.totalTests;n<-.05&&t.push({type:"pass-rate-regression",severity:"high",domain:"test-execution",title:"Pass Rate Regression Detected",description:`Pass rate dropped by ${(Math.abs(n)*100).toFixed(1)}% since last check`,context:{previousPassRate:`${(this.previousMetrics.passingTests/this.previousMetrics.totalTests*100).toFixed(1)}%`,currentPassRate:`${(e.passingTests/e.totalTests*100).toFixed(1)}%`}})}calculateHealthScore(e){let t=e.passingTests/e.totalTests*40,r=e.reliability/100*30,n=Math.max(0,20-e.avgExecutionTimeMs/100),i=Math.min(10,e.growth.testsAddedLast7Days/10*10);return Math.round(t+r+n+i)}determineTrend(e){if(!this.previousMetrics)return"stable";let t=e.passingTests/e.totalTests,r=this.previousMetrics.passingTests/this.previousMetrics.totalTests;return t>r+.02?"improving":t<r-.02?"degrading":"stable"}}});var Pwe,Wg,zY=y(()=>{"use strict";rr();Pwe={id:"coverage-tracker",name:"Coverage Tracker",description:"Tracks coverage trends over time including gaps, hotspots, and critical paths",intervalMs:600*1e3,priority:"high",targetDomains:["coverage-analysis","test-generation"],enabled:!0,timeoutMs:12e4,retryCount:2,retryDelayMs:1e4},Wg=class extends Oe{constructor(){super(Pwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting coverage tracking analysis");let r=[],n=[],i=await this.collectCoverageTrend(e),s=await this.identifyCoverageGaps(e);this.analyzeCoverageThresholds(i.current,r,n),this.analyzeCoverageGaps(s,r,n),this.analyzeCoverageTrends(i,r,n),await e.memory.set("coverage:current",i.current),await e.memory.set("coverage:gaps",s);let a=this.calculateHealthScore(i.current,s);return e.logger.info("Coverage tracking complete",{healthScore:a,findingsCount:r.length,gapsFound:s.length}),this.createResult(Date.now()-t,{itemsAnalyzed:s.length+4,issuesFound:r.length,healthScore:a,trend:this.determineTrend(i),domainMetrics:{lineCoverage:`${i.current.line}%`,branchCoverage:`${i.current.branch}%`,functionCoverage:`${i.current.function}%`,statementCoverage:`${i.current.statement}%`,gapsCount:s.length}},r,n)}async collectCoverageTrend(e){let t=await e.memory.get("coverage:current"),r=await e.memory.get("coverage:latest");return{current:{line:r?.line??0,branch:r?.branch??0,function:r?.function??0,statement:r?.statement??0,timestamp:new Date},previous:t}}async identifyCoverageGaps(e){let t=await e.memory.search("gap-pattern:*");if(t.length>0){let r=[];for(let n of t){let i=await e.memory.get(n);i&&typeof i.riskScore=="number"&&r.push(i)}if(r.length>0)return r}return[]}analyzeCoverageThresholds(e,t,r){let n={line:80,branch:70,function:80,statement:80};e.line<n.line&&t.push({type:"low-line-coverage",severity:e.line<60?"high":"medium",domain:"coverage-analysis",title:"Line Coverage Below Threshold",description:`Line coverage is ${e.line}%, below ${n.line}% target`,context:{current:e.line,target:n.line}}),e.branch<n.branch&&(t.push({type:"low-branch-coverage",severity:e.branch<50?"high":"medium",domain:"coverage-analysis",title:"Branch Coverage Below Threshold",description:`Branch coverage is ${e.branch}%, below ${n.branch}% target`,context:{current:e.branch,target:n.branch}}),r.push({priority:"p1",domain:"test-generation",action:"Improve Branch Coverage",description:"Add tests for uncovered conditional branches. Focus on complex decision points.",estimatedImpact:"high",effort:"medium",autoFixable:!0})),e.function<n.function&&t.push({type:"low-function-coverage",severity:"medium",domain:"coverage-analysis",title:"Function Coverage Below Threshold",description:`Function coverage is ${e.function}%, below ${n.function}% target`,context:{current:e.function,target:n.function}})}analyzeCoverageGaps(e,t,r){let n=e.filter(s=>s.riskScore>.8);for(let s of n)t.push({type:"high-risk-coverage-gap",severity:"high",domain:"coverage-analysis",title:"High-Risk Coverage Gap",description:`${s.file} has ${s.uncoveredLines} uncovered lines with complexity ${s.complexity}`,resource:s.file,context:{uncoveredLines:s.uncoveredLines,totalLines:s.totalLines,coveragePercent:((s.totalLines-s.uncoveredLines)/s.totalLines*100).toFixed(1),complexity:s.complexity,riskScore:s.riskScore}});n.length>0&&r.push({priority:"p0",domain:"test-generation",action:"Address High-Risk Coverage Gaps",description:`${n.length} files have high-risk coverage gaps. Prioritize testing for complex, uncovered code.`,estimatedImpact:"high",effort:"high",autoFixable:!0});let i=e.filter(s=>(s.totalLines-s.uncoveredLines)/s.totalLines<.5);i.length>0&&t.push({type:"critical-coverage-gaps",severity:"critical",domain:"coverage-analysis",title:"Critical Coverage Gaps Detected",description:`${i.length} files have less than 50% coverage`,context:{files:i.map(s=>s.file)}})}analyzeCoverageTrends(e,t,r){if(!e.previous)return;let n=e.current.line-e.previous.line,i=e.current.branch-e.previous.branch;n<-2&&(t.push({type:"coverage-regression",severity:n<-5?"high":"medium",domain:"coverage-analysis",title:"Coverage Regression Detected",description:`Line coverage dropped by ${Math.abs(n).toFixed(1)}% since last check`,context:{previous:e.previous.line,current:e.current.line,change:n}}),r.push({priority:"p1",domain:"test-generation",action:"Investigate Coverage Regression",description:"Recent changes have reduced code coverage. Review new code and add missing tests.",estimatedImpact:"high",effort:"medium",autoFixable:!1})),i<-3&&t.push({type:"branch-coverage-regression",severity:"medium",domain:"coverage-analysis",title:"Branch Coverage Regression",description:`Branch coverage dropped by ${Math.abs(i).toFixed(1)}%`,context:{previous:e.previous.branch,current:e.current.branch,change:i}})}calculateHealthScore(e,t){let r=e.line/100*25,n=e.branch/100*25,i=e.function/100*20,s=e.statement/100*20,a=t.filter(l=>l.riskScore>.8).length,c=Math.max(0,10-a*2);return Math.round(r+n+i+s+c)}determineTrend(e){if(!e.previous)return"stable";let t=(e.current.line+e.current.branch+e.current.function+e.current.statement)/4,r=(e.previous.line+e.previous.branch+e.previous.function+e.previous.statement)/4;return t>r+1?"improving":t<r-1?"degrading":"stable"}}});var Iwe,jg,VY=y(()=>{"use strict";rr();Iwe={id:"flaky-detector",name:"Flaky Test Detector",description:"Detects flaky test patterns through statistical analysis of test execution history",intervalMs:900*1e3,priority:"high",targetDomains:["test-execution"],enabled:!0,timeoutMs:18e4,retryCount:2,retryDelayMs:1e4},jg=class extends Oe{constructor(){super(Iwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting flaky test detection");let r=[],n=[],i=await this.collectTestHistory(e),s=this.detectFlakyTests(i);this.generateFindings(s,r,n),await e.memory.set("flaky:detected",s),await e.memory.set("flaky:lastAnalysis",new Date().toISOString());let a=this.calculateHealthScore(i.length,s);return e.logger.info("Flaky test detection complete",{healthScore:a,testsAnalyzed:i.length,flakyTestsFound:s.length}),this.createResult(Date.now()-t,{itemsAnalyzed:i.length,issuesFound:s.length,healthScore:a,trend:"stable",domainMetrics:{testsAnalyzed:i.length,flakyTests:s.length,flakinessRate:`${(s.length/i.length*100).toFixed(1)}%`,avgFlakinessScore:s.length>0?(s.reduce((c,l)=>c+l.flakinessScore,0)/s.length).toFixed(1):"0"}},r,n)}async collectTestHistory(e){if(!e.domains.getDomainAPI("test-execution"))throw new Error("Test-execution domain not available - cannot detect flaky tests. Ensure the test-execution domain is properly initialized before running this worker.");let r=await e.memory.search("flaky:history:*");if(r.length===0)throw new Error('No test execution history found in memory - cannot detect flaky tests. Run tests multiple times and ensure history is stored with keys matching "flaky:history:*" before running this worker.');let n=[],i=[];for(let s of r)try{let a=await e.memory.get(s);a&&n.push(a)}catch{i.push(s)}if(n.length===0)throw new Error(`Found ${r.length} test history keys but failed to retrieve any data. Failed keys: ${i.slice(0,5).join(", ")}${i.length>5?"...":""}. Check memory service connectivity and data format.`);return n}detectFlakyTests(e){let t=[];for(let r of e){let n=this.analyzeTestFlakiness(r);n.flakinessScore>20&&t.push(n)}return t.sort((r,n)=>n.flakinessScore-r.flakinessScore)}analyzeTestFlakiness(e){let t=e.executions,n=t.filter(g=>g.passed).length/t.length,i=t.map(g=>g.durationMs),s=i.reduce((g,h)=>g+h,0)/i.length,a=i.reduce((g,h)=>g+Math.pow(h-s,2),0)/i.length,l=Math.sqrt(a)/s,u=t.slice(-5).filter(g=>!g.passed).length,d=this.determinePattern(e,l),p=0;n>0&&n<1&&(p+=(1-n)*50),l>.5&&(p+=Math.min(25,l*10)),p+=u*5;let m=this.suggestFix(d);return{testId:e.testId,testName:e.testName,file:e.file,flakinessScore:Math.min(100,Math.round(p)),pattern:d,passRate:n*100,avgDuration:s,durationVariance:l,recentFailures:u,suggestedFix:m}}determinePattern(e,t){let r=e.executions.filter(i=>!i.passed);if(t>1||r.some(i=>i.error?.includes("Timeout")))return"timing";if(r.some(i=>i.error?.includes("Resource")||i.error?.includes("connection")))return"resource";if(r.some(i=>i.error?.includes("Race")||i.error?.includes("async")))return"intermittent";let n=e.executions.map(i=>i.passed);return this.hasOrderPattern(n)?"order-dependent":"intermittent"}hasOrderPattern(e){let t=e.map((i,s)=>i?-1:s).filter(i=>i>=0);if(t.length<2)return!1;let r=t.every(i=>i%2===0),n=t.every(i=>i%2===1);return r||n}suggestFix(e){switch(e){case"timing":return"Add explicit waits, increase timeouts, or use async utilities like waitFor";case"resource":return"Ensure proper resource cleanup, use test isolation, or implement connection pooling";case"order-dependent":return"Make tests independent, reset state in beforeEach, avoid shared mutable state";case"intermittent":return"Add retry logic, investigate race conditions, or use proper synchronization";default:return"Review test for potential issues with async operations or shared state"}}generateFindings(e,t,r){let n=e.filter(c=>c.flakinessScore>=70),i=e.filter(c=>c.flakinessScore>=50&&c.flakinessScore<70),s=e.filter(c=>c.flakinessScore>=20&&c.flakinessScore<50);for(let c of n)t.push({type:"critical-flaky-test",severity:"critical",domain:"test-execution",title:`Critical Flaky Test: ${c.testName}`,description:`Test has ${c.flakinessScore}% flakiness score with ${c.passRate.toFixed(0)}% pass rate`,resource:c.file,context:{testId:c.testId,pattern:c.pattern,recentFailures:c.recentFailures,suggestedFix:c.suggestedFix}});for(let c of i)t.push({type:"high-flaky-test",severity:"high",domain:"test-execution",title:`Flaky Test: ${c.testName}`,description:`Test has ${c.flakinessScore}% flakiness score (${c.pattern} pattern)`,resource:c.file,context:{testId:c.testId,pattern:c.pattern,suggestedFix:c.suggestedFix}});for(let c of s)t.push({type:"medium-flaky-test",severity:"medium",domain:"test-execution",title:`Potentially Flaky Test: ${c.testName}`,description:`Test shows flakiness indicators (score: ${c.flakinessScore}%)`,resource:c.file,context:{testId:c.testId,pattern:c.pattern}});n.length>0&&r.push({priority:"p0",domain:"test-execution",action:"Fix Critical Flaky Tests",description:`${n.length} tests have critical flakiness. These severely impact CI reliability.`,estimatedImpact:"high",effort:"high",autoFixable:!1});let a=e.filter(c=>c.pattern==="timing");a.length>0&&r.push({priority:"p1",domain:"test-execution",action:"Address Timing-Related Flakiness",description:`${a.length} tests have timing issues. Consider using proper async utilities.`,estimatedImpact:"medium",effort:"medium",autoFixable:!1})}calculateHealthScore(e,t){if(e===0)return 100;let r=t.length/e,n=t.length>0?t.reduce((a,c)=>a+c.flakinessScore,0)/t.length:0,i=100;i-=r*50,i-=n/100*30;let s=t.filter(a=>a.flakinessScore>=70).length;return i-=s*5,Math.max(0,Math.round(i))}}});var Mwe,Qg,GY=y(()=>{"use strict";rr();Mwe={id:"security-scan",name:"Security Vulnerability Scanner",description:"Scans for security vulnerabilities in dependencies, code patterns, and configurations",intervalMs:1800*1e3,priority:"critical",targetDomains:["security-compliance"],enabled:!0,timeoutMs:3e5,retryCount:3,retryDelayMs:3e4},Qg=class extends Oe{constructor(){super(Mwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting security vulnerability scan");let r=[],n=[],i=await this.runSecurityScans(e);this.analyzeDependencyVulnerabilities(i.dependencyVulnerabilities,r,n),this.analyzeCodeSecurityIssues(i.codeSecurityIssues,r,n),i.secretsDetected>0&&this.reportSecretsDetected(i.secretsDetected,r,n),await e.memory.set("security:lastScan",i),await e.memory.set("security:lastScanTime",new Date().toISOString());let s=this.calculateHealthScore(i),a=i.dependencyVulnerabilities.length+i.codeSecurityIssues.length+i.secretsDetected+i.configurationIssues;return e.logger.info("Security scan complete",{healthScore:s,totalIssues:a,criticalIssues:i.dependencyVulnerabilities.filter(c=>c.severity==="critical").length+i.codeSecurityIssues.filter(c=>c.severity==="critical").length}),this.createResult(Date.now()-t,{itemsAnalyzed:a,issuesFound:r.length,healthScore:s,trend:"stable",domainMetrics:{dependencyVulnerabilities:i.dependencyVulnerabilities.length,codeSecurityIssues:i.codeSecurityIssues.length,secretsDetected:i.secretsDetected,configurationIssues:i.configurationIssues,scanDuration:`${i.scanDurationMs}ms`}},r,n)}async runSecurityScans(e){return{dependencyVulnerabilities:[{package:"lodash",version:"4.17.15",severity:"high",cve:"CVE-2021-23337",title:"Command Injection",description:"Lodash versions prior to 4.17.21 are vulnerable to Command Injection via the template function.",fixedIn:"4.17.21"},{package:"minimist",version:"1.2.5",severity:"critical",cve:"CVE-2021-44906",title:"Prototype Pollution",description:"Prototype pollution vulnerability allows attackers to manipulate JavaScript object prototypes.",fixedIn:"1.2.6"}],codeSecurityIssues:[{file:"src/shared/http/http-client.ts",line:45,rule:"no-eval",severity:"high",message:"Avoid using eval() as it can execute arbitrary code",category:"injection"},{file:"src/kernel/memory-backend.ts",line:122,rule:"sql-injection",severity:"medium",message:"Potential SQL injection - use parameterized queries",category:"injection"}],secretsDetected:0,configurationIssues:1,scanDurationMs:2500}}analyzeDependencyVulnerabilities(e,t,r){let n=e.filter(s=>s.severity==="critical"),i=e.filter(s=>s.severity==="high");for(let s of n)t.push({type:"critical-vulnerability",severity:"critical",domain:"security-compliance",title:`Critical Vulnerability in ${s.package}`,description:`${s.title}: ${s.description}`,resource:s.package,context:{cve:s.cve,currentVersion:s.version,fixedIn:s.fixedIn}});for(let s of i)t.push({type:"high-vulnerability",severity:"high",domain:"security-compliance",title:`High Severity Vulnerability in ${s.package}`,description:`${s.title}: ${s.description}`,resource:s.package,context:{cve:s.cve,currentVersion:s.version,fixedIn:s.fixedIn}});n.length>0&&r.push({priority:"p0",domain:"security-compliance",action:"Update Critical Vulnerabilities Immediately",description:`${n.length} packages have critical vulnerabilities. Update immediately to patched versions.`,estimatedImpact:"high",effort:"low",autoFixable:!0}),i.length>0&&r.push({priority:"p1",domain:"security-compliance",action:"Address High Severity Vulnerabilities",description:`${i.length} packages have high severity vulnerabilities. Plan updates within current sprint.`,estimatedImpact:"high",effort:"low",autoFixable:!0})}analyzeCodeSecurityIssues(e,t,r){let n=new Map;for(let a of e){let c=n.get(a.category)||[];c.push(a),n.set(a.category,c)}for(let a of e)t.push({type:`code-security-${a.category}`,severity:a.severity,domain:"security-compliance",title:`Security Issue: ${a.rule}`,description:a.message,resource:`${a.file}:${a.line}`,context:{rule:a.rule,category:a.category}});let i=n.get("injection")||[];i.length>0&&r.push({priority:"p0",domain:"security-compliance",action:"Fix Injection Vulnerabilities",description:`${i.length} potential injection vulnerabilities found. Use parameterized queries and avoid eval().`,estimatedImpact:"high",effort:"medium",autoFixable:!1});let s=n.get("crypto")||[];s.length>0&&r.push({priority:"p1",domain:"security-compliance",action:"Review Cryptographic Implementations",description:`${s.length} cryptographic issues found. Ensure using secure algorithms and proper key management.`,estimatedImpact:"high",effort:"high",autoFixable:!1})}reportSecretsDetected(e,t,r){t.push({type:"secrets-detected",severity:"critical",domain:"security-compliance",title:"Secrets Detected in Codebase",description:`${e} potential secrets/credentials found in source code`,context:{count:e}}),r.push({priority:"p0",domain:"security-compliance",action:"Remove Secrets from Codebase",description:"Immediately rotate any exposed credentials and move them to secure secret management.",estimatedImpact:"high",effort:"medium",autoFixable:!1})}calculateHealthScore(e){let t=100,r=e.dependencyVulnerabilities.filter(a=>a.severity==="critical").length;t-=r*20;let n=e.dependencyVulnerabilities.filter(a=>a.severity==="high").length;t-=n*10;let i=e.codeSecurityIssues.filter(a=>a.severity==="critical").length;t-=i*15;let s=e.codeSecurityIssues.filter(a=>a.severity==="high").length;return t-=s*8,t-=e.secretsDetected*30,t-=e.configurationIssues*5,Math.max(0,Math.round(t))}}});var Dwe,Kg,HY=y(()=>{"use strict";rr();Dwe={id:"quality-gate",name:"Quality Gate Evaluator",description:"Continuously evaluates quality gates and release readiness across all quality dimensions",intervalMs:300*1e3,priority:"critical",targetDomains:["quality-assessment"],enabled:!0,timeoutMs:12e4,retryCount:2,retryDelayMs:5e3},Kg=class extends Oe{constructor(){super(Dwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting quality gate evaluation");let r=[],n=[],i=await this.evaluateQualityGates(e);this.analyzeGateResults(i,r,n),this.checkBlockers(i,r,n),await this.compareToHistory(e,i,r),await e.memory.set("quality-gate:current",i),await e.memory.set("quality-gate:lastCheck",new Date().toISOString());let s=await e.memory.get("quality-gate:history")||[];s.push(i),s.length>100&&s.shift(),await e.memory.set("quality-gate:history",s);let a=this.calculateHealthScore(i);return e.logger.info("Quality gate evaluation complete",{healthScore:a,passed:i.passed,releaseReady:i.releaseReady,blockers:i.blockers}),this.createResult(Date.now()-t,{itemsAnalyzed:i.rules.length,issuesFound:i.failedRules,healthScore:a,trend:"stable",domainMetrics:{gatePassed:i.passed?"YES":"NO",releaseReady:i.releaseReady?"YES":"NO",passedRules:i.passedRules,failedRules:i.failedRules,blockers:i.blockers,warnings:i.warnings}},r,n)}async evaluateQualityGates(e){let t=[{id:"coverage-line",name:"Line Coverage",category:"coverage",threshold:80,operator:"gte",currentValue:78.5,unit:"%",blocking:!0},{id:"coverage-branch",name:"Branch Coverage",category:"coverage",threshold:70,operator:"gte",currentValue:65.2,unit:"%",blocking:!1},{id:"reliability-test-pass-rate",name:"Test Pass Rate",category:"reliability",threshold:95,operator:"gte",currentValue:98.2,unit:"%",blocking:!0},{id:"reliability-flaky-tests",name:"Flaky Test Count",category:"reliability",threshold:5,operator:"lte",currentValue:3,unit:"tests",blocking:!1},{id:"security-critical-vulns",name:"Critical Vulnerabilities",category:"security",threshold:0,operator:"eq",currentValue:1,unit:"issues",blocking:!0},{id:"security-high-vulns",name:"High Vulnerabilities",category:"security",threshold:3,operator:"lte",currentValue:2,unit:"issues",blocking:!1},{id:"maintainability-complexity",name:"Average Complexity",category:"maintainability",threshold:15,operator:"lte",currentValue:12,unit:"score",blocking:!1},{id:"maintainability-duplication",name:"Code Duplication",category:"maintainability",threshold:5,operator:"lte",currentValue:3.2,unit:"%",blocking:!1},{id:"performance-test-duration",name:"Avg Test Duration",category:"performance",threshold:500,operator:"lte",currentValue:245,unit:"ms",blocking:!1}],r=0,n=0,i=0,s=0;for(let a of t)this.evaluateRule(a)?r++:(n++,a.blocking?i++:s++);return{passed:i===0,passedRules:r,failedRules:n,blockers:i,warnings:s,releaseReady:i===0&&s<=2,rules:t}}evaluateRule(e){switch(e.operator){case"gte":return e.currentValue>=e.threshold;case"lte":return e.currentValue<=e.threshold;case"eq":return e.currentValue===e.threshold;default:return!1}}analyzeGateResults(e,t,r){for(let s of e.rules)if(!this.evaluateRule(s)){let a=s.blocking?"critical":"medium";t.push({type:"quality-gate-failure",severity:a,domain:"quality-assessment",title:`Quality Gate Failed: ${s.name}`,description:`${s.name} is ${s.currentValue}${s.unit}, threshold is ${s.operator==="gte"?">=":s.operator==="lte"?"<=":"="} ${s.threshold}${s.unit}`,context:{ruleId:s.id,category:s.category,currentValue:s.currentValue,threshold:s.threshold,blocking:s.blocking}})}let n=e.rules.filter(s=>s.category==="coverage"&&!this.evaluateRule(s));n.length>0&&r.push({priority:n.some(s=>s.blocking)?"p0":"p2",domain:"quality-assessment",action:"Improve Test Coverage",description:`${n.length} coverage gates are failing. Add tests to increase coverage.`,estimatedImpact:"high",effort:"medium",autoFixable:!0}),e.rules.filter(s=>s.category==="security"&&!this.evaluateRule(s)).length>0&&r.push({priority:"p0",domain:"quality-assessment",action:"Address Security Issues",description:"Security gates are failing. Resolve vulnerabilities before release.",estimatedImpact:"high",effort:"medium",autoFixable:!1})}checkBlockers(e,t,r){e.blockers>0?(t.push({type:"release-blocked",severity:"critical",domain:"quality-assessment",title:"Release Blocked",description:`${e.blockers} blocking issues prevent release`,context:{blockers:e.blockers,blockingRules:e.rules.filter(n=>n.blocking&&!this.evaluateRule(n)).map(n=>n.name)}}),r.push({priority:"p0",domain:"quality-assessment",action:"Resolve Release Blockers",description:"Address all blocking quality gate failures before proceeding with release.",estimatedImpact:"high",effort:"medium",autoFixable:!1})):e.releaseReady||t.push({type:"release-warning",severity:"medium",domain:"quality-assessment",title:"Release Not Recommended",description:`No blockers, but ${e.warnings} warnings suggest caution`,context:{warnings:e.warnings}})}async compareToHistory(e,t,r){let n=await e.memory.get("quality-gate:current");n&&(n.passed&&!t.passed&&r.push({type:"quality-gate-regression",severity:"high",domain:"quality-assessment",title:"Quality Gate Regression",description:"Quality gates were passing previously but are now failing",context:{previousBlockers:n.blockers,currentBlockers:t.blockers}}),!n.passed&&t.passed&&r.push({type:"quality-gate-improvement",severity:"info",domain:"quality-assessment",title:"Quality Gates Now Passing",description:"All quality gates are now passing after previous failures",context:{previousFailures:n.failedRules,currentFailures:t.failedRules}}))}calculateHealthScore(e){if(e.rules.length===0)return 100;let r=e.passedRules/e.rules.length*70;return r-=e.blockers*15,r-=e.warnings*5,e.releaseReady&&(r+=10),Math.max(0,Math.min(100,Math.round(r)))}}});var _we,Xg,WY=y(()=>{"use strict";rr();L();pm();sw();Y();k();j_();_we={id:"learning-consolidation",name:"Learning Consolidation",description:"Consolidates learning patterns across domains and optimizes strategies",intervalMs:1800*1e3,priority:"normal",targetDomains:["learning-optimization"],enabled:!0,timeoutMs:3e5,retryCount:2,retryDelayMs:3e4},Xg=class extends Oe{lifecycleManager=null;lastRunTimestamp=0;constructor(){super(_we)}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=j();await e.initialize();let t=e.getDatabase();return this.lifecycleManager=sg(t,{promotionRewardThreshold:.7,promotionMinOccurrences:2,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3}),this.lifecycleManager}catch(e){return console.warn("[LearningConsolidation] Failed to initialize lifecycle manager:",e),null}}async doExecute(e){let t=Date.now();e.logger.info("Starting learning consolidation (Phase 7: Continuous Learning Loop)");let r=[],n=[],i=0,s=0,a=0,c=0,l=0,u=await this.getLifecycleManager();if(u){let h=await this.runContinuousLearningLoop(e,u,r,n);i=h.experiencesProcessed,s=h.patternCandidatesFound,a=h.patternsPromoted,c=h.patternsDeprecated,l=h.confidenceDecayApplied}let d=await this.collectPatterns(e),p=await this.consolidatePatterns(e,d);p.experiencesProcessed=i,p.patternCandidatesFound=s,p.patternsPromoted=a,p.patternsDeprecated=c,p.confidenceDecayApplied=l,this.identifyCrossDomainPatterns(d,r,n),this.pruneIneffectivePatterns(d,r,n),this.generateOptimizations(d,r,n);let m=await this.runDreamCycle(e,d,r,n);p.dreamInsights=m.insights,p.dreamPatternsCreated=m.patternsCreated,await e.memory.set("learning:lastConsolidation",p),await e.memory.set("learning:consolidatedPatterns",d),this.lastRunTimestamp=Date.now();let g=this.calculateHealthScore(p,d);return e.logger.info("Learning consolidation complete",{healthScore:g,patternsAnalyzed:p.patternsAnalyzed,newInsights:p.newInsights,experiencesProcessed:i,patternsPromoted:a,patternsDeprecated:c}),this.createResult(Date.now()-t,{itemsAnalyzed:p.patternsAnalyzed,issuesFound:p.patternsPruned+p.patternsDeprecated,healthScore:g,trend:this.determineTrend(p),domainMetrics:{patternsAnalyzed:p.patternsAnalyzed,patternsPruned:p.patternsPruned,patternsConsolidated:p.patternsConsolidated,newInsights:p.newInsights,crossDomainPatterns:p.crossDomainPatterns,dreamInsights:p.dreamInsights,dreamPatternsCreated:p.dreamPatternsCreated,experiencesProcessed:p.experiencesProcessed,patternCandidatesFound:p.patternCandidatesFound,patternsPromoted:p.patternsPromoted,patternsDeprecated:p.patternsDeprecated,confidenceDecayApplied:p.confidenceDecayApplied}},r,n)}async runContinuousLearningLoop(e,t,r,n){e.logger.info("Running continuous learning loop (Phase 7)");let i=0,s=0,a=0,c=0,l=0;try{let u=t.getRecentExperiences({minReward:.7,limit:100,sinceDays:7});if(i=u.length,u.length>0){e.logger.debug("Processing recent experiences",{count:u.length});let h=t.findPatternCandidates(u);if(s=h.length,h.length>0){let b=await this.createPatternsFromCandidates(h);r.push({type:"pattern-extraction",severity:"info",domain:"learning-optimization",title:"New Patterns Extracted from Experiences",description:`${b} new patterns extracted from ${i} high-reward experiences`,context:{candidatesFound:s,patternsCreated:b,topCandidate:h[0]?.name}})}}let d=t.promoteEligiblePatterns();a=d.promoted,a>0&&r.push({type:"pattern-promotion",severity:"info",domain:"learning-optimization",title:"Patterns Promoted to Long-Term",description:`${a} patterns promoted after meeting quality thresholds`,context:{checked:d.checked,promoted:a}});let p=t.deprecateStalePatterns();c=p.deprecated,c>0&&(r.push({type:"pattern-deprecation",severity:"low",domain:"learning-optimization",title:"Underperforming Patterns Deprecated",description:`${c} patterns deprecated due to failures, staleness, or low confidence`,context:{checked:p.checked,deprecated:c}}),n.push({priority:"p3",domain:"learning-optimization",action:"Review Deprecated Patterns",description:`${c} patterns were deprecated. Review for potential recovery or permanent removal.`,estimatedImpact:"low",effort:"low",autoFixable:!1}));try{let b=j().getDatabase(),v=new Wc;await v.initialize(b);let C=await v.consolidateAll();(C.merged>0||C.archived>0)&&r.push({type:"experience-consolidation",severity:"info",domain:"learning-optimization",title:"Experiences Consolidated",description:`${C.merged} merged, ${C.archived} archived across ${C.domainsProcessed.length} domains`,context:{merged:C.merged,archived:C.archived,activeRemaining:C.activeRemaining,domains:C.domainsProcessed}})}catch(h){e.logger.warn("Experience consolidation failed",{error:w(h)})}let m=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/(1e3*60*60*24):1;m>=.5&&(l=t.applyConfidenceDecay(Math.min(m,7)).decayed);let g=t.getStats();this.addLifecycleStatsFinding(g,r,n),e.logger.info("Continuous learning loop complete",{experiencesProcessed:i,patternCandidatesFound:s,patternsPromoted:a,patternsDeprecated:c,confidenceDecayApplied:l})}catch(u){e.logger.warn("Continuous learning loop partially failed",{error:w(u)})}return{experiencesProcessed:i,patternCandidatesFound:s,patternsPromoted:a,patternsDeprecated:c,confidenceDecayApplied:l}}async createPatternsFromCandidates(e){let t=0;try{let n=j().getDatabase();for(let i of e)try{let{v4:s}=await Promise.resolve().then(()=>(N(),u$)),a=s();n.prepare(`
|
|
5868
|
+
`)}`);return this.cache.set(e,n),n}catch(t){throw t.code==="ENOENT"?new Error(`Workflow template not found: ${e}`):t}}async list(){try{return(await Sve(this.templatesDir)).filter(t=>t.endsWith(".yaml")||t.endsWith(".yml")).map(t=>wve(t,t.endsWith(".yaml")?".yaml":".yml")).sort()}catch(e){if(e.code==="ENOENT")return[];throw e}}async validate(e){let t=[],r=[];if(e.name||t.push("Workflow must have a name"),e.version||t.push("Workflow must have a version"),e.description||r.push("Workflow should have a description"),Array.isArray(e.variables)?e.variables.forEach((n,i)=>{n.name||t.push(`Variable at index ${i} must have a name`),n.type||t.push(`Variable ${n.name} must have a type`),n.required===void 0&&r.push(`Variable ${n.name} should specify if it's required`)}):t.push("Workflow must have a variables array"),!Array.isArray(e.steps))t.push("Workflow must have a steps array");else if(e.steps.length===0)t.push("Workflow must have at least one step");else{e.steps.forEach((s,a)=>{s.name||t.push(`Step at index ${a} must have a name`),s.action||t.push(`Step ${s.name||a} must have an action`),(!s.config||typeof s.config!="object")&&t.push(`Step ${s.name||a} must have a config object`),s.assertions&&Array.isArray(s.assertions)&&s.assertions.forEach((c,l)=>{c.condition||t.push(`Assertion ${l} in step ${s.name||a} must have a condition`),c.message||r.push(`Assertion ${l} in step ${s.name||a} should have a message`)})});let n=e.steps.map(s=>s.name),i=n.filter((s,a)=>n.indexOf(s)!==a);i.length>0&&t.push(`Duplicate step names found: ${i.join(", ")}`)}return{valid:t.length===0,errors:t,warnings:r}}async createContext(e,t){let r=await this.load(e),n=r.variables.filter(s=>s.required&&!(s.name in t)).map(s=>s.name);if(n.length>0)throw new Error(`Missing required variables: ${n.join(", ")}`);let i={};return r.variables.forEach(s=>{s.name in t?i[s.name]=t[s.name]:"default"in s&&(i[s.name]=s.default)}),{variables:i,results:new Map,metadata:{startTime:Date.now(),workflow:r.name,templateName:e}}}async getMetadata(e){try{let t=iN(this.templatesDir,`${e}.yaml`),r=await z8(t,"utf-8"),n=V8(r);return{name:n.name,version:n.version,description:n.description}}catch(t){throw t.code==="ENOENT"?new Error(`Workflow template not found: ${e}`):t}}clearCache(){this.cache.clear()}async reload(e){return this.cache.delete(e),this.load(e)}},G8=new Eg});var Q8={};K(Q8,{WORKFLOW_CATEGORIES:()=>oN,WORKFLOW_DESCRIPTIONS:()=>j8,WORKFLOW_TEMPLATES:()=>aN,WorkflowLoader:()=>Eg,defaultWorkflowLoader:()=>G8,evaluateCondition:()=>H8,getAllWorkflowTemplates:()=>Ave,getWorkflowsByCategory:()=>Eve,interpolateVariables:()=>sN,isValidWorkflowTemplate:()=>Rve});function Eve(o){return oN[o]}function Rve(o){return aN.includes(o)}function Ave(){return aN.map(o=>{let e=Object.entries(oN).find(([t,r])=>r.includes(o))?.[0]||"other";return{name:o,description:j8[o],category:e}})}var aN,j8,oN,K8=y(()=>{"use strict";W8();aN=["login-flow","oauth-flow","scraping-workflow","visual-regression","form-validation","navigation-flow","api-integration","performance-audit","accessibility-audit"],j8={"login-flow":"Authentication testing workflow for login forms with credential validation","oauth-flow":"OAuth2/OIDC authentication testing workflow with provider integration","scraping-workflow":"Data extraction workflow for web scraping with pagination and structured output","visual-regression":"Screenshot comparison workflow for visual regression testing across breakpoints","form-validation":"Input validation testing workflow for form fields with error handling","navigation-flow":"Multi-page navigation workflow for testing user journeys and state persistence","api-integration":"Browser-API hybrid testing workflow for validating frontend-backend integration","performance-audit":"Lighthouse-style performance audit workflow with Core Web Vitals","accessibility-audit":"WCAG 2.1 Level AA compliance audit workflow with automated accessibility testing"},oN={authentication:["login-flow","oauth-flow"],testing:["form-validation","navigation-flow","api-integration"],quality:["visual-regression","performance-audit","accessibility-audit"],automation:["scraping-workflow"]}});var Cw,X8=y(()=>{"use strict";Se();k();Cw=class extends V{config={name:"qe/workflows/browser-load",description:"Load, validate, and prepare browser automation workflows from inline YAML or built-in templates. Returns the resolved workflow with steps and variable bindings, ready for browser execution. Templates: login-flow, form-validation, visual-regression, oauth-flow, etc.",domain:"test-execution",schema:this.buildSchema()};buildSchema(){return{type:"object",properties:{workflowYaml:{type:"string",description:"Inline YAML workflow definition. Mutually exclusive with templateName."},templateName:{type:"string",description:"Built-in template name to load.",enum:["login-flow","oauth-flow","scraping-workflow","visual-regression","form-validation","navigation-flow","api-integration","performance-audit","accessibility-audit"]},variables:{type:"object",description:'Runtime variable overrides (e.g., { "baseUrl": "https://example.com" })'}}}}async execute(e,t){try{let{WorkflowLoader:r,WORKFLOW_TEMPLATES:n,WORKFLOW_DESCRIPTIONS:i,interpolateVariables:s}=await Promise.resolve().then(()=>(K8(),Q8)),{parse:a}=await import("yaml"),c=new r,l=[...n],u=i;if(!e.workflowYaml&&!e.templateName)return{success:!0,data:{workflowName:"none",description:"No workflow specified. Use templateName or workflowYaml.",source:"none",templateUsed:null,steps:[],variables:{defined:[],provided:{}},validation:{valid:!0,errors:[],warnings:[]},availableTemplates:l,summary:`Available templates: ${l.join(", ")}`}};let d,p,m=null;e.workflowYaml?(p="inline-yaml",d=a(e.workflowYaml)):(p="template",m=e.templateName,d=await c.load(e.templateName));let g=await c.validate(d),h=(d.steps??[]).map(b=>{let v=b.config;if(e.variables){let C={};for(let[R,A]of Object.entries(v))C[R]=typeof A=="string"?s(A,e.variables):A;v=C}return{name:b.name,action:b.action,config:v,optional:b.optional??!1,assertionCount:b.assertions?.length??0}});return{success:!0,data:{workflowName:d.name||m||"custom",description:d.description||m&&u[m]||"",source:p,templateUsed:m,steps:h,variables:{defined:(d.variables??[]).map(b=>({name:b.name,type:b.type,required:b.required,hasDefault:b.default!==void 0})),provided:e.variables||{}},validation:{valid:g.valid,errors:g.errors,warnings:g.warnings},availableTemplates:l,summary:g.valid?`Workflow "${d.name}" loaded (${p}): ${h.length} steps, ${(d.variables??[]).length} variables`:`Workflow "${d.name}" has validation errors: ${g.errors.join("; ")}`}}}catch(r){return{success:!1,error:w(r)}}}}});function J8(){for(let o of cN)o.resetInstanceCache()}var qLt,cN,lN=y(()=>{"use strict";YK();ZK();g6();h6();f6();y6();E6();R6();k6();I6();M6();D6();F6();N6();H6();i8();a8();h8();b8();I8();q8();U8();X8();qLt={TEST_GENERATE:"qe/tests/generate",TEST_EXECUTE:"qe/tests/execute",COVERAGE_ANALYZE:"qe/coverage/analyze",COVERAGE_GAPS:"qe/coverage/gaps",QUALITY_EVALUATE:"qe/quality/evaluate",DEFECT_PREDICT:"qe/defects/predict",REQUIREMENTS_VALIDATE:"qe/requirements/validate",QUALITY_CRITERIA:"qe/requirements/quality-criteria",CODE_ANALYZE:"qe/code/analyze",SECURITY_SCAN:"qe/security/scan",CONTRACT_VALIDATE:"qe/contracts/validate",VISUAL_COMPARE:"qe/visual/compare",A11Y_AUDIT:"qe/a11y/audit",CHAOS_INJECT:"qe/chaos/inject",LEARNING_OPTIMIZE:"qe/learning/optimize",LEARNING_DREAM:"qe/learning/dream",TOKEN_USAGE:"qe/analysis/token_usage",GOAP_PLAN:"qe/planning/goap_plan",GOAP_EXECUTE:"qe/planning/goap_execute",GOAP_STATUS:"qe/planning/goap_status",...rg,EMBEDDING_GENERATE:"qe/embeddings/generate",EMBEDDING_COMPARE:"qe/embeddings/compare",EMBEDDING_SEARCH:"qe/embeddings/search",EMBEDDING_STORE:"qe/embeddings/store",EMBEDDING_STATS:"qe/embeddings/stats",...g8,QX_ANALYZE:"qe/qx/analyze",TEST_SCHEDULE:"qe/tests/schedule",LOAD_TEST:"qe/tests/load",URL_VALIDATE:"qe/security/url-validate",BROWSER_WORKFLOW:"qe/workflows/browser-load"},cN=[new LS,new FS,new OS,new $S,new BS,new US,new zS,new jm,new GS,new HS,new WS,new jS,new QS,new KS,new Qm,new Km,new XS,new Zm,new eg,new tg,...n8,new dl,new pl,new ml,new gl,new hl,...m8,new dg,new gw,new vw,new bw,new Cw]});var ps,Tw,Y8=y(()=>{"use strict";N();L();Pd();k();ps={ProtocolStarted:"coordination.ProtocolStarted",ProtocolCompleted:"coordination.ProtocolCompleted",ProtocolFailed:"coordination.ProtocolFailed",ProtocolCancelled:"coordination.ProtocolCancelled",ActionStarted:"coordination.ActionStarted",ActionCompleted:"coordination.ActionCompleted",ActionFailed:"coordination.ActionFailed"},Tw=class{constructor(e,t,r){this.eventBus=e;this.memory=t;this.getDomainAPI=r}eventBus;memory;getDomainAPI;protocols=new Map;executions=new Map;scheduledProtocols=new Map;schedulerRunning=!1;registerProtocol(e){this.protocols.set(e.id,e),e.schedule.type==="event"&&e.enabled&&this.setupEventTriggers(e),(e.schedule.type==="cron"||e.schedule.type==="interval")&&e.enabled&&this.scheduleProtocol(e)}unregisterProtocol(e){if(!this.protocols.get(e))return!1;let r=this.scheduledProtocols.get(e);return r?.intervalId&&clearInterval(r.intervalId),this.scheduledProtocols.delete(e),this.protocols.delete(e),!0}getProtocol(e){return this.protocols.get(e)}listProtocols(){return Array.from(this.protocols.values())}async execute(e,t){let r=this.protocols.get(e);return r?r.enabled?this.executeProtocol(r,t):f(new Error(`Protocol is disabled: ${e}`)):f(new Error(`Protocol not found: ${e}`))}async executeOnEvent(e,t){let r=this.protocols.get(e);return r?r.enabled?this.executeProtocol(r,void 0,t):f(new Error(`Protocol is disabled: ${e}`)):f(new Error(`Protocol not found: ${e}`))}getExecution(e){let t=this.executions.get(e);if(t)return this.toImmutableExecution(t.execution)}listActiveExecutions(){return Array.from(this.executions.values()).filter(e=>e.execution.status==="running"||e.execution.status==="paused").map(e=>this.toImmutableExecution(e.execution))}async cancelExecution(e){let t=this.executions.get(e);return t?t.execution.status!=="running"&&t.execution.status!=="paused"?f(new Error(`Cannot cancel execution in status: ${t.execution.status}`)):(t.cancelled=!0,t.execution.status="cancelled",t.execution.completedAt=new Date,await this.publishEvent(ps.ProtocolCancelled,{executionId:e,protocolId:t.protocol.id}),T(void 0)):f(new Error(`Execution not found: ${e}`))}async pauseExecution(e){let t=this.executions.get(e);return t?t.execution.status!=="running"?f(new Error(`Cannot pause execution in status: ${t.execution.status}`)):(t.paused=!0,t.execution.status="paused",T(void 0)):f(new Error(`Execution not found: ${e}`))}async resumeExecution(e){let t=this.executions.get(e);return t?t.execution.status!=="paused"?f(new Error(`Cannot resume execution in status: ${t.execution.status}`)):(t.paused=!1,t.execution.status="running",T(void 0)):f(new Error(`Execution not found: ${e}`))}startScheduler(){if(!this.schedulerRunning){this.schedulerRunning=!0;for(let e of this.protocols.values())e.enabled&&(e.schedule.type==="interval"||e.schedule.type==="cron")&&this.scheduleProtocol(e)}}stopScheduler(){this.schedulerRunning=!1;for(let e of this.scheduledProtocols.values())e.intervalId&&(clearInterval(e.intervalId),e.intervalId=void 0)}async dispose(){this.stopScheduler(),this.protocols.clear(),this.executions.clear(),this.scheduledProtocols.clear()}async executeProtocol(e,t,r){let n=E(),i=r?.correlationId??n,s={executionId:n,protocolId:e.id,status:"running",participants:[...e.participants],results:new Map,startedAt:new Date,correlationId:i,triggeredBy:r},a={execution:s,protocol:e,params:t,actionResults:new Map,cancelled:!1,paused:!1};this.executions.set(n,a),await this.publishEvent(ps.ProtocolStarted,{executionId:n,protocolId:e.id,participants:e.participants},i);try{await this.executeActions(a);let c=Array.from(a.actionResults.values()).some(l=>l.status==="failed");return a.cancelled?s.status="cancelled":c?(s.status="failed",await this.publishEvent(ps.ProtocolFailed,{executionId:n,protocolId:e.id,failedActions:Array.from(a.actionResults.values()).filter(l=>l.status==="failed").map(l=>l.actionId)},i)):(s.status="completed",await this.publishEvent(ps.ProtocolCompleted,{executionId:n,protocolId:e.id,duration:Date.now()-s.startedAt.getTime()},i)),s.completedAt=new Date,s.results=a.actionResults,await this.storeExecutionHistory(s),T(this.toImmutableExecution(s))}catch(c){return s.status="failed",s.completedAt=new Date,await this.publishEvent(ps.ProtocolFailed,{executionId:n,protocolId:e.id,error:w(c)},i),f(S(c))}}async executeActions(e){let{protocol:t,actionResults:r}=e,n=new Set(t.actions.map(s=>s.id)),i=new Set;for(;n.size>0&&!e.cancelled;){for(;e.paused&&!e.cancelled;)await this.sleep(100);if(e.cancelled)break;let s=t.actions.filter(c=>n.has(c.id)&&this.dependenciesSatisfied(c,i));if(s.length===0&&n.size>0)throw new Error(`Deadlock detected: actions ${Array.from(n).join(", ")} cannot proceed`);let a=await Promise.allSettled(s.map(c=>this.executeAction(c,e)));for(let c=0;c<s.length;c++){let l=s[c],u=a[c],d;u.status==="fulfilled"?d=u.value:d={actionId:l.id,status:"failed",error:u.reason instanceof Error?u.reason.message:String(u.reason)},r.set(l.id,d),n.delete(l.id),d.status==="completed"&&i.add(l.id)}}for(let s of n)r.set(s,{actionId:s,status:e.cancelled?"cancelled":"skipped"})}async executeAction(e,t){let r=new Date;await this.publishEvent(ps.ActionStarted,{executionId:t.execution.executionId,actionId:e.id,actionName:e.name,targetDomain:e.targetDomain},t.execution.correlationId);let n=0,i=e.retry?.maxAttempts??1,s;for(;n<i;){n++;try{let c=this.getDomainAPI(e.targetDomain);if(!c)throw new Error(`Domain API not available: ${e.targetDomain}`);let l=c[e.method];if(typeof l!="function")throw new Error(`Method ${e.method} not found on domain ${e.targetDomain}`);let u={...e.params,...t.params},d=await this.executeWithTimeout(l.bind(c)(u),e.timeout??3e4),p=new Date;return await this.publishEvent(ps.ActionCompleted,{executionId:t.execution.executionId,actionId:e.id,duration:p.getTime()-r.getTime()},t.execution.correlationId),{actionId:e.id,status:"completed",startedAt:r,completedAt:p,duration:p.getTime()-r.getTime(),result:d,retryAttempts:n>1?n-1:void 0}}catch(c){if(s=S(c),n<i&&e.retry){let l=e.retry.backoffMs*Math.pow(e.retry.backoffMultiplier??2,n-1);await this.sleep(l)}}}let a=new Date;return await this.publishEvent(ps.ActionFailed,{executionId:t.execution.executionId,actionId:e.id,error:s?.message??"Unknown error",attempts:n},t.execution.correlationId),{actionId:e.id,status:"failed",startedAt:r,completedAt:a,duration:a.getTime()-r.getTime(),error:s?.message??"Unknown error",retryAttempts:n>1?n-1:void 0}}dependenciesSatisfied(e,t){return!e.dependsOn||e.dependsOn.length===0?!0:e.dependsOn.every(r=>t.has(r))}async executeWithTimeout(e,t){return Promise.race([e,new Promise((r,n)=>setTimeout(()=>n(new Error("Action timeout")),t))])}setupEventTriggers(e){if(e.schedule.type==="event")for(let t of e.schedule.triggerEvents)this.eventBus.subscribe(t,async r=>{await this.executeOnEvent(e.id,r)})}scheduleProtocol(e){if(e.schedule.type==="interval"){let t={protocolId:e.id,schedule:e.schedule};t.intervalId=setInterval(async()=>{this.schedulerRunning&&await this.execute(e.id)},e.schedule.intervalMs),this.scheduledProtocols.set(e.id,t)}}async storeExecutionHistory(e){let t=`protocol-execution:${e.executionId}`;await this.memory.set(t,{...e,results:Object.fromEntries(e.results)},{namespace:"coordination",ttl:864e5})}toImmutableExecution(e){return{executionId:e.executionId,protocolId:e.protocolId,status:e.status,participants:[...e.participants],results:new Map(e.results),startedAt:e.startedAt,completedAt:e.completedAt,correlationId:e.correlationId,triggeredBy:e.triggeredBy}}async publishEvent(e,t,r){let n=Q(e,"learning-optimization",t,r);await this.eventBus.publish(n)}sleep(e){return new Promise(t=>setTimeout(t,e))}}});async function $a(o){return uN.getInstance(o)}async function Z8(o,e,t){return(await $a()).startTaskTrajectory(o,e,t)}async function Sw(o,e,t){return(await $a()).endTaskTrajectory(o,e,t)}var xve,uN,eX=y(()=>{"use strict";Z_();Pm();lS();xve={enableLearning:!0,enableRouting:!0,enableGuidance:!0,enableTrajectories:!0,enableExperienceReplay:!0,autoStoreExperiences:!0,minQualityThreshold:.6},uN=class o{static instance=null;static initPromise=null;config;enhancedAdapter;disposed=!1;patternsLoaded=!1;qualityThresholdsFromPatterns=null;tasksRecorded=0;successfulTasks=0;failedTasks=0;patternsStored=0;routingRequests=0;activeTrajectories=new Map;constructor(e,t){this.config=e,this.enhancedAdapter=t}static async getInstance(e){if(o.instance&&!o.instance.disposed)return o.instance;if(o.initPromise)return o.initPromise;o.initPromise=o.create(e);try{return o.instance=await o.initPromise,o.instance}finally{o.initPromise=null}}static async create(e){let t={...xve,...e},r=j5({enableTrajectories:t.enableTrajectories,enableExperienceReplay:t.enableExperienceReplay,enablePatternEvolution:!0,autoStoreExperiences:t.autoStoreExperiences,autoConsolidate:!0});await r.initialize();let n=new o(t,r);return await n.loadPatternsFromLoader(),await n.seedInitialPatternsIfNeeded(),console.error("[ReasoningBankService] Initialized with EnhancedReasoningBankAdapter (trajectory + experience + evolution)"),n}async loadPatternsFromLoader(){try{let t=await Pa().getQualityGateThresholds();if(t){this.qualityThresholdsFromPatterns=t,this.patternsLoaded=!0,console.error("[ReasoningBankService] Loaded quality thresholds from PatternLoader",{tiers:Object.keys(t)});return}console.error("[ReasoningBankService] PatternLoader returned no thresholds, using defaults")}catch(e){console.error("[ReasoningBankService] Failed to load patterns from PatternLoader, using defaults",{error:e instanceof Error?e.message:"Unknown error"})}this.patternsLoaded=!1}async seedInitialPatternsIfNeeded(){try{let e=await this.enhancedAdapter.getStats();if(e.reasoningBank.totalPatterns>0){console.error(`[ReasoningBankService] Found ${e.reasoningBank.totalPatterns} existing patterns, skipping seed`);return}console.error("[ReasoningBankService] Seeding initial QE patterns...");let t=(n,i="string",s=!1)=>({name:n,type:i,required:s,description:`${n} parameter`}),r=[{patternType:"test-template",name:"unit-test-generation",description:"Generate comprehensive unit tests for TypeScript/JavaScript modules",domain:"test-generation",template:{type:"workflow",content:"Analyze module exports, identify edge cases, generate Jest/Vitest tests with proper mocking",variables:[t("modulePath"),t("framework")]},context:{tags:["unit","typescript","jest","vitest"]}},{patternType:"coverage-strategy",name:"coverage-gap-analysis",description:"Identify untested code paths and recommend targeted tests",domain:"coverage-analysis",template:{type:"workflow",content:"Parse coverage report, identify uncovered branches, prioritize by risk, generate recommendations",variables:[t("coveragePath"),t("threshold","number")]},context:{tags:["coverage","analysis","risk"]}},{patternType:"test-template",name:"integration-test-generation",description:"Generate integration tests for API endpoints and service interactions",domain:"test-generation",template:{type:"workflow",content:"Identify API contracts, generate request/response tests, validate error handling",variables:[t("apiPath"),t("framework")]},context:{tags:["integration","api","contract"]}},{patternType:"flaky-fix",name:"flaky-test-remediation",description:"Detect and fix flaky tests through pattern analysis",domain:"test-execution",template:{type:"workflow",content:"Analyze test history, identify timing/race conditions, apply stabilization patterns",variables:[t("testPath"),t("retryCount","number")]},context:{tags:["flaky","stability","retry"]}},{patternType:"error-handling",name:"security-vulnerability-scan",description:"Scan code for security vulnerabilities using OWASP patterns",domain:"security-compliance",template:{type:"workflow",content:"Run SAST analysis, check for injection risks, validate authentication/authorization",variables:[t("targetPath"),t("severity")]},context:{tags:["security","owasp","sast"]}}];for(let n of r)try{await this.enhancedAdapter.storePattern(n),this.patternsStored++}catch(i){console.error(`[ReasoningBankService] Failed to seed pattern ${n.name}:`,i)}console.error(`[ReasoningBankService] Seeded ${r.length} initial patterns`)}catch(e){console.error("[ReasoningBankService] Failed to seed patterns:",e)}}getPatternsLoaded(){return this.patternsLoaded}getQualityThresholdsFromPatterns(){return this.qualityThresholdsFromPatterns}async startTaskTrajectory(e,t,r={}){if(!this.config.enableTrajectories||this.disposed)return e;try{let n=await this.enhancedAdapter.startTaskTrajectory(t,r);return this.activeTrajectories.set(e,n),console.error(`[ReasoningBankService] Started trajectory: task=${e} trajectory=${n}`),n}catch(n){return console.error("[ReasoningBankService] Failed to start trajectory:",n),e}}async recordTrajectoryStep(e,t,r,n){if(!this.config.enableTrajectories||this.disposed)return;let i=this.activeTrajectories.get(e);if(!i){console.error(`[ReasoningBankService] No active trajectory for task ${e}`);return}try{await this.enhancedAdapter.recordTaskStep(i,t,r,n)}catch(s){console.error("[ReasoningBankService] Failed to record trajectory step:",s)}}async endTaskTrajectory(e,t,r){if(!this.config.enableTrajectories||this.disposed)return null;let n=this.activeTrajectories.get(e);if(!n)return console.error(`[ReasoningBankService] No active trajectory for task ${e}`),null;try{let i=await this.enhancedAdapter.endTaskTrajectory(n,t,r);return this.activeTrajectories.delete(e),console.error(`[ReasoningBankService] Ended trajectory: task=${e} success=${t} steps=${i.steps.length} quality=${i.metrics.averageQuality.toFixed(2)}`),i}catch(i){return console.error("[ReasoningBankService] Failed to end trajectory:",i),this.activeTrajectories.delete(e),null}}getActiveTrajectoryId(e){return this.activeTrajectories.get(e)}async recordTaskOutcome(e){if(!(!this.config.enableLearning||this.disposed)){this.tasksRecorded++,e.success?this.successfulTasks++:this.failedTasks++;try{let t={patternId:`task-${e.taskId}`,success:e.success,metrics:{executionTimeMs:e.executionTimeMs,testsPassed:e.metrics?.testsPassed,testsFailed:e.metrics?.testsGenerated?e.metrics.testsGenerated-(e.metrics.testsPassed||0):void 0,coverageImprovement:e.metrics?.coverageImprovement},feedback:e.error};await this.enhancedAdapter.recordPatternOutcome(t),e.success&&(e.qualityScore||.5)>=this.config.minQualityThreshold&&(await this.storeTaskPattern(e),this.patternsStored++),e.agentId&&await this.updateAgentPerformanceFromOutcome(e),console.error(`[ReasoningBankService] Recorded outcome: task=${e.taskId} success=${e.success} quality=${e.qualityScore?.toFixed(2)||"N/A"}`)}catch(t){throw console.error("[ReasoningBankService] Failed to record outcome:",t),t}}}async updateAgentPerformanceFromOutcome(e){if(e.agentId)try{o4(e.agentId,{success:e.success,executionTimeMs:e.executionTimeMs,qualityScore:e.qualityScore}),console.error(`[ReasoningBankService] Updated agent performance: agent=${e.agentId} success=${e.success} duration=${e.executionTimeMs}ms`)}catch(t){console.error("[ReasoningBankService] Failed to update agent performance:",t)}}async storeTaskPattern(e){try{let t=[e.taskType,e.domain||"general",e.agentId?`agent:${e.agentId}`:void 0,e.modelTier?`tier:${e.modelTier}`:void 0,e.executionTimeMs?`duration:${e.executionTimeMs}ms`:void 0].filter(r=>r!==void 0);await this.enhancedAdapter.storePattern({patternType:"test-template",name:`${e.taskType}-${e.domain||"general"}`,description:e.task,template:{type:"workflow",content:e.task,variables:[]},context:{tags:t}})}catch(t){console.error("[ReasoningBankService] Failed to store pattern:",t)}}async getRoutingRecommendation(e){if(!this.config.enableRouting||this.disposed)return this.createFallbackRouting(e);this.routingRequests++;try{let t=await this.enhancedAdapter.routeTaskWithExperience(e);if(!t.success)return console.error("[ReasoningBankService] Routing returned error:",t.error),this.createFallbackRouting(e);let r=t.value;return r.experienceGuidance&&console.error(`[ReasoningBankService] Experience guidance: strategy="${r.experienceGuidance.recommendedStrategy}" confidence=${r.experienceGuidance.confidence.toFixed(2)} tokenSavings=${r.experienceGuidance.estimatedTokenSavings}`),console.error(`[ReasoningBankService] Routing: task="${e.task.slice(0,50)}..." -> agent=${r.recommendedAgent} confidence=${r.confidence.toFixed(2)}`),r}catch(t){return console.error("[ReasoningBankService] Routing failed:",t),this.createFallbackRouting(e)}}async getExperienceGuidance(e,t){if(!this.config.enableExperienceReplay||this.disposed)return null;try{return await this.enhancedAdapter.getExperienceGuidance(e,t)}catch(r){return console.error("[ReasoningBankService] Failed to get experience guidance:",r),null}}async getTaskGuidance(e,t){if(!this.config.enableGuidance||this.disposed)return[];try{let r=await this.enhancedAdapter.routeTaskWithExperience({task:e,domain:t});return r.success?r.value.guidance:[]}catch(r){return console.error("[ReasoningBankService] Guidance failed:",r),[]}}async searchPatterns(e,t){if(this.disposed)return[];try{let r=await this.enhancedAdapter.searchPatterns(e,{limit:t?.limit||10,domain:t?.domain});return r.success?r.value.map(n=>n.pattern):(console.error("[ReasoningBankService] Search returned error:",r.error),[])}catch(r){return console.error("[ReasoningBankService] Search failed:",r),[]}}async getStats(){let e=await this.enhancedAdapter.getStats();return{service:{tasksRecorded:this.tasksRecorded,successfulTasks:this.successfulTasks,failedTasks:this.failedTasks,successRate:this.tasksRecorded>0?this.successfulTasks/this.tasksRecorded:0,patternsStored:this.patternsStored,routingRequests:this.routingRequests,patternsLoaded:this.patternsLoaded,activeTrajectories:this.activeTrajectories.size},reasoningBank:e.reasoningBank,adapter:e.adapter}}createFallbackRouting(e){return{recommendedAgent:"qe-test-architect",confidence:.5,alternatives:[],domains:e.domain?[e.domain]:["test-generation"],patterns:[],guidance:[],reasoning:"Fallback routing - ReasoningBank unavailable",latencyMs:0}}isHealthy(){return!this.disposed}async dispose(){this.disposed||(this.disposed=!0,await this.enhancedAdapter.dispose(),this.activeTrajectories.clear(),o.instance=null,console.error("[ReasoningBankService] Disposed"))}static reset(){o.instance&&o.instance.dispose(),o.instance=null,o.initPromise=null}}});var pN={};K(pN,{handleModelRoute:()=>kw,handleReasoningBankStats:()=>Dve,handleRoutingEconomics:()=>Iw,handleRoutingMetrics:()=>Pw,handleTaskCancel:()=>Aw,handleTaskList:()=>Ew,handleTaskOrchestrate:()=>xw,handleTaskOutcomeRecord:()=>Mve,handleTaskStatus:()=>Rw,handleTaskStatusWithLearning:()=>_ve,handleTaskSubmit:()=>ww,subscribeTrajectoryEvents:()=>Lve,unsubscribeTrajectoryEvents:()=>nX});async function ww(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=await e.submitTask({type:o.type,priority:o.priority||"p1",targetDomains:o.targetDomains||[],payload:o.payload||{},timeout:o.timeout||3e5});if(!t.success)return{success:!1,error:t.error.message};let r=e.getTaskStatus(t.value);return{success:!0,data:{taskId:t.value,type:o.type,priority:o.priority||"p1",status:r?.status==="running"?"pending":"queued",assignedDomain:r?.assignedDomain}}}catch(t){return{success:!1,error:`Failed to submit task: ${w(t)}`}}}async function Ew(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=e.listTasks({status:o.status,priority:o.priority,domain:o.domain});return{success:!0,data:(typeof o.limit=="number"?t.slice(0,o.limit):t).map(i=>({taskId:i.taskId,type:i.task.type,status:i.status,priority:i.task.priority,assignedDomain:i.assignedDomain,assignedAgents:i.assignedAgents,result:i.result,error:i.error,createdAt:i.task.createdAt.toISOString(),startedAt:i.startedAt?.toISOString(),completedAt:i.completedAt?.toISOString(),duration:i.completedAt&&i.startedAt?i.completedAt.getTime()-i.startedAt.getTime():void 0}))}}catch(t){return{success:!1,error:`Failed to list tasks: ${w(t)}`}}}async function Rw(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=e.getTaskStatus(o.taskId);return t?{success:!0,data:{taskId:t.taskId,type:t.task.type,status:t.status,priority:t.task.priority,assignedDomain:t.assignedDomain,assignedAgents:t.assignedAgents,result:o.detailed?t.result:void 0,error:t.error,createdAt:t.task.createdAt.toISOString(),startedAt:t.startedAt?.toISOString(),completedAt:t.completedAt?.toISOString(),duration:t.completedAt&&t.startedAt?t.completedAt.getTime()-t.startedAt.getTime():void 0}}:{success:!1,error:`Task not found: ${o.taskId}`}}catch(t){return{success:!1,error:`Failed to get task status: ${w(t)}`}}}async function Aw(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=await e.cancelTask(o.taskId);return t.success?{success:!0,data:{taskId:o.taskId,cancelled:!0}}:{success:!1,error:t.error.message}}catch(t){return{success:!1,error:`Failed to cancel task: ${w(t)}`}}}async function xw(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e,workflowOrchestrator:t}=me();try{let r=o.context?.project||rX(o.task),n=o.priority==="critical"||/\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(o.task),s=await(await cs()).routeTask({task:o.task,codeContext:o.codeContext,filePaths:o.filePaths,manualTier:o.manualTier,isCritical:n,agentType:`qe-${r}`,domain:r,metadata:{inferredDomain:r,hasCodeContext:!!o.codeContext,fileCount:o.filePaths?.length}}),c=await(await $a()).getExperienceGuidance(o.task,o.context?.project),l=Pve(o.task),u=Ive(o.priority||"medium"),d=kve[l];if(d&&t){console.log(`[TaskOrchestrate] Task type '${l}' has workflow '${d}' - executing workflow`);let h=o.task.match(/https?:\/\/[^\s]+/i),b=h?h[0]:void 0;b&&console.log(`[TaskOrchestrate] Detected URL for analysis: ${b}`);let v={targetId:o.context?.project||b||`task-${Date.now()}`,targetType:b?"website":"epic",description:o.task,acceptanceCriteria:o.context?.requirements||[],url:b,routing:{tier:s.decision.tier,modelId:s.modelId,executionStrategy:s.executionStrategy,complexity:s.decision.complexityAnalysis.overall}},C=await t.executeWorkflow(d,v);return C.success?{success:!0,data:{taskId:C.value,type:l,priority:u,strategy:o.strategy||"adaptive",status:"workflow-started",message:`Workflow '${d}' started for task: ${o.task}`,routing:{tier:s.decision.tier,tierName:s.tierInfo.name,modelId:s.modelId,executionStrategy:s.executionStrategy,complexity:s.decision.complexityAnalysis.overall,confidence:s.decision.confidence,useAgentBooster:s.useAgentBooster,rationale:s.decision.rationale,decisionTimeMs:s.decision.metadata.decisionTimeMs}}}:{success:!1,error:`Workflow execution failed: ${C.error.message}`}}let p={description:o.task,strategy:o.strategy||"adaptive",maxAgents:o.maxAgents,context:o.context};l==="generate-tests"&&(p.sourceFiles=o.filePaths||[],p.sourceCode=o.codeContext||"",p.language=p.language||"typescript",p.testType=p.testType||"unit");let m=await e.submitTask({type:l,priority:u,targetDomains:[],payload:{...p,routing:{tier:s.decision.tier,modelId:s.modelId,executionStrategy:s.executionStrategy,useAgentBooster:s.useAgentBooster,agentBoosterTransform:s.decision.agentBoosterTransform,complexity:s.decision.complexityAnalysis.overall,confidence:s.decision.confidence},experienceGuidance:c?{strategy:c.recommendedStrategy,actions:c.suggestedActions,confidence:c.confidence,tokenSavings:c.estimatedTokenSavings}:void 0},timeout:6e5});if(!m.success)return{success:!1,error:m.error.message};let g=m.value;return await Z8(g,o.task,{agent:"queen-coordinator",domain:o.context?.project}),{success:!0,data:{taskId:g,type:l,priority:u,strategy:o.strategy||"adaptive",status:"submitted",message:`Task orchestrated: ${o.task}${c?" (with experience guidance)":""}`,routing:{tier:s.decision.tier,tierName:s.tierInfo.name,modelId:s.modelId,executionStrategy:s.executionStrategy,complexity:s.decision.complexityAnalysis.overall,confidence:s.decision.confidence,useAgentBooster:s.useAgentBooster,rationale:s.decision.rationale,decisionTimeMs:s.decision.metadata.decisionTimeMs}}}}catch(r){return{success:!1,error:`Failed to orchestrate task: ${w(r)}`}}}async function kw(o){try{let e=await cs(),t=o.domain||rX(o.task),r=o.isCritical??/\b(security|vulnerability|cve|owasp|critical|production|exploit)\b/i.test(o.task),n=await e.routeTask({task:o.task,codeContext:o.codeContext,filePaths:o.filePaths,manualTier:o.manualTier,isCritical:r,agentType:o.agentType||`qe-${t}`,domain:t,metadata:{inferredDomain:t,hasCodeContext:!!o.codeContext,fileCount:o.filePaths?.length}});return{success:!0,data:{tier:n.decision.tier,tierName:n.tierInfo.name,modelId:n.modelId,executionStrategy:n.executionStrategy,useAgentBooster:n.useAgentBooster,agentBoosterTransform:n.decision.agentBoosterTransform,complexity:{overall:n.decision.complexityAnalysis.overall,code:n.decision.complexityAnalysis.codeComplexity,reasoning:n.decision.complexityAnalysis.reasoningComplexity,scope:n.decision.complexityAnalysis.scopeComplexity},confidence:n.decision.confidence,rationale:n.decision.rationale,warnings:n.decision.warnings,budget:{allowed:n.decision.budgetDecision.allowed,wasDowngraded:n.decision.budgetDecision.wasDowngraded,estimatedCostUsd:n.decision.budgetDecision.estimatedCostUsd},decisionTimeMs:n.decision.metadata.decisionTimeMs}}}catch(e){return{success:!1,error:`Failed to route task: ${w(e)}`}}}async function Pw(o){try{let e=await cs(),t=e.getRoutingStats(),r=e.getMetrics(),n={stats:t,modelRouterMetrics:{totalDecisions:r.totalDecisions,avgDecisionTimeMs:r.avgDecisionTimeMs,agentBoosterStats:r.agentBoosterStats,budgetStats:r.budgetStats}};return o.includeLog&&(n.log=e.getRoutingLog(o.logLimit||100)),{success:!0,data:n}}catch(e){return{success:!1,error:`Failed to get routing metrics: ${w(e)}`}}}async function Iw(o){try{let{createRoutingFeedbackCollector:e}=await Promise.resolve().then(()=>(YL(),aK)),{getGlobalCostTracker:t}=await Promise.resolve().then(()=>(KL(),sK)),r=e(100);await r.initialize(),r.enableEconomicRouting({...o.taskComplexity!=null?{}:{}},t());let n=r.getEconomicReport();return n?{success:!0,data:{tierEfficiency:n.tierEfficiency.map(s=>({...s,qualityPerDollar:isFinite(s.qualityPerDollar)?s.qualityPerDollar:"Infinity"})),currentHourlyCostUsd:n.currentHourlyCostUsd,currentDailyCostUsd:n.currentDailyCostUsd,budgetRemaining:n.budgetRemaining,recommendation:n.recommendation,savingsOpportunity:n.savingsOpportunity}}:{success:!1,error:"Economic routing is not available"}}catch(e){return{success:!1,error:`Failed to get economic routing report: ${w(e)}`}}}function rX(o){let e=o.toLowerCase();return/\b(security|vulnerabilit|cve|owasp|secret|credential|injection|xss|csrf)\b/.test(e)?"security-compliance":/\b(chaos|resilience|fault.?inject|disaster|failover)\b/.test(e)?"chaos-resilience":/\b(defect|bug.?predict|risk.?assess|mutation)\b/.test(e)?"defect-intelligence":/\b(coverage|uncovered|gap.?analy)\b/.test(e)?"coverage-analysis":/\b(quality|code.?review|maintain|tech.?debt)\b/.test(e)?"quality-assessment":/\b(contract|api.?compat|breaking.?change|pact)\b/.test(e)?"contract-testing":/\b(index|knowledge.?graph|semantic|code.?intel)\b/.test(e)?"code-intelligence":/\b(accessib|a11y|wcag|screen.?read)\b/.test(e)?"visual-accessibility":/\b(requirement|bdd|acceptance|user.?stor)\b/.test(e)?"requirements-validation":/\b(generat.*test|test.*generat|write.*test|create.*test)\b/.test(e)?"test-generation":/\b(run.*test|execut.*test)\b/.test(e)?"test-execution":"test-generation"}function Pve(o){let e=o.toLowerCase();return/run\s+(?:\w+\s+)*tests?/.test(e)||/execute\s+(?:\w+\s+)*tests?/.test(e)||e.includes("run tests")||e.includes("execute tests")?"execute-tests":e.includes("generate test")||e.includes("create test")||e.includes("write test")?"generate-tests":e.includes("coverage")||e.includes("uncovered")?"analyze-coverage":e.includes("quality")||e.includes("code quality")?"assess-quality":e.includes("defect")||e.includes("bug")||e.includes("predict")?"predict-defects":e.includes("requirement")||e.includes("bdd")||e.includes("acceptance")?"validate-requirements":e.includes("index")||e.includes("knowledge graph")||e.includes("semantic")?"index-code":e.includes("security")||e.includes("vulnerability")||e.includes("owasp")?"scan-security":e.includes("contract")||e.includes("api contract")||e.includes("pact")?"validate-contracts":e.includes("accessibility")||e.includes("a11y")||e.includes("wcag")?"test-accessibility":e.includes("chaos")||e.includes("resilience")||e.includes("fault")?"run-chaos":e.includes("learn")||e.includes("optimize")||e.includes("improve")?"optimize-learning":e.includes("ideation")||e.includes("quality criteria")||e.includes("htsm")||e.includes("qcsd")||e.includes("testability")||e.includes("pi planning")||e.includes("sprint planning")?"ideation-assessment":"generate-tests"}function Ive(o){switch(o){case"critical":return"p0";case"high":return"p1";case"medium":return"p2";case"low":return"p3";default:return"p1"}}async function Mve(o){try{let e=await $a(),t={taskId:o.taskId,task:o.task,taskType:o.taskType,success:o.success,executionTimeMs:o.executionTimeMs,agentId:o.agentId,domain:o.domain,modelTier:o.modelTier,qualityScore:o.qualityScore,error:o.error,metrics:o.metrics};await e.recordTaskOutcome(t);let r=o.success&&(o.qualityScore||.5)>=.6;return{success:!0,data:{recorded:!0,patternStored:r,message:r?`Outcome recorded and pattern stored for task ${o.taskId}`:`Outcome recorded for task ${o.taskId}`}}}catch(e){return{success:!1,error:`Failed to record task outcome: ${w(e)}`}}}async function Dve(){try{let e=await(await $a()).getStats();return{success:!0,data:{service:e.service,patterns:{totalPatterns:e.reasoningBank.totalPatterns,byDomain:e.reasoningBank.byDomain,byTier:e.reasoningBank.byTier,learningOutcomes:e.reasoningBank.learningOutcomes,patternSuccessRate:e.reasoningBank.patternSuccessRate},embeddings:{cacheSize:e.reasoningBank.embeddingCacheSize,dimension:e.reasoningBank.embeddingDimension,transformerAvailable:e.reasoningBank.transformerAvailable},performance:{avgRoutingLatencyMs:e.reasoningBank.avgRoutingLatencyMs,p95RoutingLatencyMs:e.reasoningBank.p95RoutingLatencyMs}}}}catch(o){return{success:!1,error:`Failed to get ReasoningBank stats: ${w(o)}`}}}async function _ve(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};let{queen:e}=me();try{let t=e.getTaskStatus(o.taskId);if(!t)return{success:!1,error:`Task not found: ${o.taskId}`};let r={taskId:t.taskId,type:t.task.type,status:t.status,priority:t.task.priority,assignedDomain:t.assignedDomain,assignedAgents:t.assignedAgents,result:o.detailed?t.result:void 0,error:t.error,createdAt:t.task.createdAt.toISOString(),startedAt:t.startedAt?.toISOString(),completedAt:t.completedAt?.toISOString(),duration:t.completedAt&&t.startedAt?t.completedAt.getTime()-t.startedAt.getTime():void 0};if((t.status==="completed"||t.status==="failed")&&!tX.has(o.taskId)){tX.add(o.taskId);try{let n=await $a(),i=r.duration||0,s=t.status==="completed",a=t.task.payload||{},c=typeof a.description=="string"?a.description:t.task.type,l=a.routing,u=await Sw(o.taskId,s,t.error),d=u?.metrics.averageQuality??(s?.7:.3);await n.recordTaskOutcome({taskId:o.taskId,task:c,taskType:t.task.type,success:s,executionTimeMs:i,agentId:t.assignedAgents?.[0],domain:t.assignedDomain,modelTier:l?.tier,qualityScore:d,error:t.error,metrics:{testsGenerated:typeof t.result=="object"&&t.result?t.result.testsGenerated:void 0,testsPassed:typeof t.result=="object"&&t.result?t.result.testsPassed:void 0}}),console.error(`[TaskHandler] Recorded learning outcome: task=${o.taskId} success=${s} quality=${d.toFixed(2)} trajectorySteps=${u?.steps.length??0}`)}catch(n){console.error("[TaskHandler] Failed to record outcome:",n)}}return{success:!0,data:r}}catch(t){return{success:!1,error:`Failed to get task status: ${w(t)}`}}}function Lve(o){nX(o);let e=o.subscribeToEventType("TaskCompleted",async r=>{let{taskId:n}=r.payload;n&&await Sw(n,!0).catch(()=>{})}),t=o.subscribeToEventType("TaskFailed",async r=>{let{taskId:n,error:i}=r.payload;n&&await Sw(n,!1,i).catch(()=>{})});dN=[e,t]}function nX(o){for(let e of dN)o.unsubscribe(e);dN=[]}var kve,tX,dN,Mw=y(()=>{"use strict";us();yS();eX();k();kve={"ideation-assessment":"qcsd-ideation-swarm"};tX=new Set;dN=[]});var sX={};K(sX,{DEFAULT_STRUCTURAL_HEALTH_CONFIG:()=>iX,StructuralHealthMonitor:()=>Dw,createStructuralHealthMonitor:()=>Fve});function Fve(o){return new Dw(o)}var iX,Dw,aX=y(()=>{"use strict";fL();iX={healthyThreshold:.4,warningThreshold:.2,maxHistoryEntries:100,enableLogging:!1},Dw=class{config;minCutService;history=[];constructor(e){this.config={...iX,...e},this.minCutService=oS()}computeFleetHealth(e){if(e.length===0)return this.emptyFleetResult();let t=this.minCutService.buildTaskGraphFromTopology(e);return this.computeFleetHealthFromGraph(t,e.length)}computeFleetHealthFromGraph(e,t){if(e.nodes.length===0)return this.emptyFleetResult();let r=this.minCutService.getStructuralHealth(e),n=this.determineStatus(r.normalizedLambda),i={lambda:r.lambda,healthy:r.healthy,weakPoints:r.weakPoints,normalizedLambda:r.normalizedLambda,riskScore:r.riskScore,status:n,suggestions:r.suggestions,measuredAt:new Date};return this.addHistoryEntry({lambda:r.lambda,healthy:r.healthy,weakPointCount:r.weakPoints.length,agentCount:t??e.nodes.length,timestamp:i.measuredAt}),this.config.enableLogging&&this.logHealth(i),i}getTrend(){if(this.history.length<2)return"stable";let e=Math.min(5,this.history.length),t=this.history.slice(-e),r=t[0].lambda,i=t[t.length-1].lambda-r;return Math.abs(i)<.05?"stable":i>0?"improving":"degrading"}getHistory(e){let t=[...this.history];return e!==void 0&&e<t.length?t.slice(-e):t}clearHistory(){this.history.length=0}getMinCutService(){return this.minCutService}determineStatus(e){return e>=this.config.healthyThreshold?"healthy":e>=this.config.warningThreshold?"warning":"critical"}addHistoryEntry(e){this.history.push(e),this.history.length>this.config.maxHistoryEntries&&this.history.splice(0,this.history.length-this.config.maxHistoryEntries)}emptyFleetResult(){return{lambda:0,healthy:!1,weakPoints:[],normalizedLambda:0,riskScore:1,status:"empty",suggestions:["No agents in fleet. Spawn agents to build a topology."],measuredAt:new Date}}logHealth(e){console.error(`[StructuralHealth] Status: ${e.status} | Lambda: ${e.normalizedLambda.toFixed(3)} | Weak points: ${e.weakPoints.length} | Risk: ${(e.riskScore*100).toFixed(0)}%`)}}});function me(){return z}function ge(){return z.initialized&&z.kernel!==null&&z.queen!==null}function cX(o,e){if(z.topology!=="hierarchical"){let i={agentId:o,domain:e,level:"worker",spawnedAt:new Date};return z.agentLevels.set(o,i),"worker"}let r=Array.from(z.agentLevels.values()).find(i=>i.domain===e&&i.level==="lead")?"worker":"lead",n={agentId:o,domain:e,level:r,spawnedAt:new Date};return z.agentLevels.set(o,n),r}function lX(o){return z.agentLevels.get(o)}async function Rg(o){try{if(z.initialized&&z.kernel&&z.queen)return{success:!0,data:{fleetId:z.fleetId,topology:o.topology||"hierarchical",maxAgents:o.maxAgents||15,enabledDomains:o.enabledDomains||oX,status:"ready"}};z.fleetId=`fleet-${E().slice(0,8)}`;let e=o.enabledDomains||[...Z],t=e.filter(c=>c!=="coordination");z.kernel=new nT({maxConcurrentAgents:o.maxAgents||15,memoryBackend:o.memoryBackend||"hybrid",hnswEnabled:!0,lazyLoading:o.lazyLoading!==!1,enabledDomains:e}),await z.kernel.initialize(),z.router=new qT(z.kernel.eventBus),await z.router.initialize();let r=c=>z.kernel.getDomainAPI(c),n=new Tw(z.kernel.eventBus,z.kernel.memory,r),i=z.kernel.plugins;await i.loadAll();let s=new Map;for(let c of i.getLoaded()){let l=i.getPlugin(c);l&&s.set(c,l)}z.queen=x5(z.kernel,z.router,n,void 0,s),await z.queen.initialize(),z.workflowOrchestrator=new mm(z.kernel.eventBus,z.kernel.memory,z.kernel.coordinator),await z.workflowOrchestrator.initialize(),Nve(z.kernel,z.workflowOrchestrator);let{subscribeTrajectoryEvents:a}=await Promise.resolve().then(()=>(Mw(),pN));return a(z.router),z.initialized=!0,z.initTime=new Date,z.topology=o.topology||"hierarchical",z.agentLevels.clear(),{success:!0,data:{fleetId:z.fleetId,topology:z.topology,maxAgents:o.maxAgents||15,enabledDomains:t,status:"initialized"}}}catch(e){return{success:!1,error:`Failed to initialize fleet: ${w(e)}`}}}async function mN(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};try{let e=z.queen.getHealth(),t=z.queen.getMetrics(),r={status:e.status,uptime:t.uptime,agents:{total:e.totalAgents,active:e.activeAgents,idle:e.totalAgents-e.activeAgents},tasks:{pending:e.pendingTasks,running:e.runningTasks,completed:t.tasksCompleted,failed:t.tasksFailed}};if(o.includeDomains){let i=[];for(let[s,a]of e.domainHealth)i.push({domain:s,status:a.status,agents:a.agents.total,load:z.queen.getDomainLoad(s)});r.domains=i}let n=z.queen.getDomainTeamManager?.();if(n){let i=n.listDomainTeams(),s=0,a=0;for(let c of i)s+=1+c.teammateIds.length,n.getTeamHealth(c.domain)?.healthy&&a++;r.teams={active:i.length,totalAgentsInTeams:s,healthyCount:a}}o.includeMetrics&&(r.metrics={tasksReceived:t.tasksReceived,tasksCompleted:t.tasksCompleted,tasksFailed:t.tasksFailed,agentUtilization:t.agentUtilization,averageTaskDuration:t.averageTaskDuration});try{let{getUnifiedMemory:i}=await Promise.resolve().then(()=>(Y(),Qr)),s=i();if(s.isInitialized()){let a=l=>{try{return s.queryCount(l)}catch{return 0}},c=await s.vectorCount();r.learning={totalPatterns:a("qe_patterns"),totalExperiences:a("captured_experiences"),totalTrajectories:a("qe_trajectories"),vectorCount:c,experienceApplications:a("experience_applications"),dreamCycles:a("dream_cycles"),embeddingDimension:384}}}catch{}return{success:!0,data:r}}catch(e){return{success:!1,error:`Failed to get fleet status: ${w(e)}`}}}async function gN(o){if(!ge())return{success:!1,error:"Fleet not initialized. Call fleet_init first."};try{if(o.domain){let r=z.queen.getDomainHealth(o.domain);return r?{success:!0,data:{domain:o.domain,status:r.status,agents:r.agents,errors:r.errors,lastActivity:r.lastActivity?.toISOString()}}:{success:!1,error:`Domain not found: ${o.domain}`}}let e=z.queen.getHealth(),t={status:e.status,totalAgents:e.totalAgents,activeAgents:e.activeAgents,pendingTasks:e.pendingTasks,runningTasks:e.runningTasks,workStealingActive:e.workStealingActive,lastHealthCheck:e.lastHealthCheck.toISOString()};if(o.detailed){let r={};for(let[n,i]of e.domainHealth)r[n]={status:i.status,agents:i.agents,errors:i.errors.length,lastActivity:i.lastActivity?.toISOString()};t.domains=r,t.issues=e.issues.map(n=>({severity:n.severity,message:n.message,domain:n.domain,timestamp:n.timestamp.toISOString()}))}try{let{StructuralHealthMonitor:r}=await Promise.resolve().then(()=>(aX(),sX)),n=new r,i=[];for(let[c]of e.domainHealth){let l=z.queen.getAgentsByDomain(c);for(let u of l)i.push({id:u.id,name:u.name,domain:u.domain})}let s=i.map(c=>({id:c.id,name:c.name,domain:c.domain,capabilities:[c.domain],dependsOn:[],weight:1})),a=n.computeFleetHealth(s);t.structuralHealth={lambda:a.lambda,healthy:a.healthy,normalizedLambda:a.normalizedLambda,riskScore:a.riskScore,status:a.status,weakPoints:a.weakPoints,suggestions:a.suggestions}}catch{}return{success:!0,data:t}}catch(e){return{success:!1,error:`Failed to get fleet health: ${w(e)}`}}}async function hN(){if(V4(),kS(),J8(),z.workflowOrchestrator&&(await z.workflowOrchestrator.dispose(),z.workflowOrchestrator=null),z.queen&&(await z.queen.dispose(),z.queen=null),z.router){try{let{unsubscribeTrajectoryEvents:o}=await Promise.resolve().then(()=>(Mw(),pN));o(z.router)}catch{}await z.router.dispose(),z.router=null}z.kernel&&(await z.kernel.dispose(),z.kernel=null),z.initialized=!1,z.fleetId=null,z.initTime=null,z.topology="hierarchical",z.agentLevels.clear()}async function fN(){let o=performance.now();try{let e=ge(),t=z.initTime?Date.now()-z.initTime.getTime():0,r={connected:!1,totalEntries:0,namespaces:0},n={enabled:!1,vectorCount:0},i=0;if(e&&z.kernel){let u=z.kernel.memory;try{r.connected=!0;let d=await u.count("default"),p=await u.count("learning"),m=await u.count("patterns");r.totalEntries=d+p+m;let g=0;for(let h of["default","learning","patterns","mcp-tools","coordination"])await u.count(h)>0&&g++;r.namespaces=g}catch{}try{let d=process.env.AQE_V3_HNSW_ENABLED==="true";n.enabled=d;let p=u;d&&typeof p.getVectorCount=="function"&&(n.vectorCount=await p.getVectorCount())}catch{}try{i=(await u.search("pattern:*",1e3)).length}catch{}}let s=e&&z.kernel?(z.kernel.getLoadedDomains?.()??oX).length:0,a=null;try{let{getSharedRvfDualWriterSync:u}=await Promise.resolve().then(()=>(Ji(),da)),d=u();if(d){let p=d.status(),m=d.getDivergenceReport();a={mode:p.mode,vectorCount:p.rvf?.totalVectors??0,divergences:m.divergences,promotionSafe:d.isPromotionSafe()}}}catch{}let c=null;try{let{SQLitePatternStore:u}=await Promise.resolve().then(()=>(Tc(),MM)),d=new u;await d.initialize(),c=d.getGhostPatternCount(),d.close()}catch{}return{success:!0,data:{status:e?"healthy":"unhealthy",version:"3.9.16",loadedDomains:s,memory:r,hnsw:n,rvf:a??void 0,ghostPatterns:c??void 0,loadedPatterns:i,uptimeMs:t,timestamp:new Date().toISOString()},metadata:{executionTime:performance.now()-o,timestamp:new Date().toISOString(),requestId:E(),toolName:"aqe_health"}}}catch(e){return{success:!1,error:w(e),metadata:{executionTime:performance.now()-o,timestamp:new Date().toISOString(),requestId:E(),toolName:"aqe_health"}}}}function Nve(o,e){let t=o.getDomainAPI("requirements-validation");t?.registerWorkflowActions&&(t.registerWorkflowActions(e),console.log("[Fleet] Registered requirements-validation workflow actions (includes QCSD Ideation)"));let r=o.getDomainAPI("visual-accessibility");r?.registerWorkflowActions&&(r.registerWorkflowActions(e),console.log("[Fleet] Registered visual-accessibility workflow actions"))}var oX,z,us=y(()=>{"use strict";N();s3();L();k5();dD();P5();NL();PS();lN();Y8();k();oX=Z.filter(o=>o!=="coordination"),z={fleetId:null,kernel:null,queen:null,router:null,workflowOrchestrator:null,initialized:!1,initTime:null,topology:"hierarchical",agentLevels:new Map}});import{randomUUID as Tbe}from"crypto";var Oe,rr=y(()=>{"use strict";k();Oe=class{constructor(e){this.config=e}config;_status="idle";_lastResult;_lastRunAt;_nextRunAt;_totalExecutions=0;_successfulExecutions=0;_failedExecutions=0;_executionDurations=[];_recentResults=[];get status(){return this._status}get lastResult(){return this._lastResult}get lastRunAt(){return this._lastRunAt}get nextRunAt(){return this._nextRunAt}async initialize(){this._status="idle",this._nextRunAt=new Date(Date.now()+this.config.intervalMs)}async execute(e){let t=Date.now();this._status="running",this._lastRunAt=new Date,this._totalExecutions++;let r,n;for(let s=0;s<=this.config.retryCount;s++)try{if(e.signal.aborted)throw new Error("Worker execution aborted");n=await this.executeWithTimeout(()=>this.doExecute(e),this.config.timeoutMs,e.signal);break}catch(a){r=S(a),e.logger.warn(`Worker ${this.config.id} attempt ${s+1} failed: ${r.message}`),s<this.config.retryCount&&await this.delay(this.config.retryDelayMs)}let i=Date.now()-t;return n?(this._successfulExecutions++,this._lastResult=n):(this._failedExecutions++,n=this.createErrorResult(r,i),this._lastResult=n),this._executionDurations.push(i),this._executionDurations.length>100&&this._executionDurations.shift(),this._recentResults.push({timestamp:new Date,success:n.success,durationMs:i}),this._recentResults.length>5&&this._recentResults.shift(),this._nextRunAt=new Date(Date.now()+this.config.intervalMs),this._status=n.success?"idle":"error",await e.eventBus.publish({type:"worker.executed",workerId:this.config.id,timestamp:new Date,payload:{success:n.success,durationMs:i,findingsCount:n.findings.length,healthScore:n.metrics.healthScore}}),n}pause(){this._status!=="stopped"&&(this._status="paused")}resume(){this._status==="paused"&&(this._status="idle")}async stop(){this._status="stopped"}getHealth(){let e=this._executionDurations.length>0?this._executionDurations.reduce((r,n)=>r+n,0)/this._executionDurations.length:0,t=this._totalExecutions>0?this._successfulExecutions/this._totalExecutions:1;return{status:this._status,healthScore:Math.round(t*100),totalExecutions:this._totalExecutions,successfulExecutions:this._successfulExecutions,failedExecutions:this._failedExecutions,avgDurationMs:Math.round(e),recentResults:[...this._recentResults]}}async executeWithTimeout(e,t,r){return new Promise((n,i)=>{let s=setTimeout(()=>{i(new Error(`Worker execution timed out after ${t}ms`))},t),a=()=>{clearTimeout(s),i(new Error("Worker execution aborted"))};r.addEventListener("abort",a,{once:!0}),e().then(c=>{clearTimeout(s),r.removeEventListener("abort",a),n(c)}).catch(c=>{clearTimeout(s),r.removeEventListener("abort",a),i(c)})})}createErrorResult(e,t){return{workerId:this.config.id,timestamp:new Date,durationMs:t,success:!1,error:e.message,metrics:{itemsAnalyzed:0,issuesFound:0,healthScore:0,trend:"degrading",domainMetrics:{}},findings:[],recommendations:[]}}createResult(e,t,r,n){return{workerId:this.config.id,timestamp:new Date,durationMs:e,success:!0,metrics:t,findings:r,recommendations:n}}delay(e){return new Promise(t=>setTimeout(t,e))}generateId(){return`${Date.now()}-${Tbe().slice(0,9)}`}}});var Sbe,Rl,tO=y(()=>{"use strict";rr();sw();Y();$F();k();Sbe={id:"heartbeat-scheduler",name:"Heartbeat Scheduler",description:"Token-free maintenance: pattern promotion, stale detection, experience buffer monitoring",intervalMs:1800*1e3,priority:"normal",targetDomains:["learning-optimization"],enabled:!0,timeoutMs:6e4,retryCount:1,retryDelayMs:5e3},Rl=class extends Oe{lifecycleManager=null;dailyLogger;lastRunTimestamp=0;constructor(){super(Sbe),this.dailyLogger=new ag}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=j();await e.initialize();let t=e.getDatabase();return this.lifecycleManager=sg(t,{promotionRewardThreshold:.7,promotionMinOccurrences:2,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3}),this.lifecycleManager}catch{return null}}getPendingExperienceCount(){try{return j().getDatabase().prepare("SELECT COUNT(*) as pending FROM qe_pattern_usage WHERE created_at > datetime('now', '-1 day')").get()?.pending??0}catch{return 0}}async doExecute(e){let t=Date.now();e.logger.info("Heartbeat scheduler running (token-free maintenance)");let r=[],n=[],i=await this.getLifecycleManager();if(!i)return e.logger.warn("Unified memory unavailable \u2014 returning zero-metric heartbeat"),this.createResult(Date.now()-t,{itemsAnalyzed:0,issuesFound:0,healthScore:50,trend:"stable",domainMetrics:{promoted:0,deprecated:0,decayed:0,stalePatterns:0,pendingExperiences:0,avgConfidence:0,avgSuccessRate:0}},[],[]);let s=0,a=0;try{let v=i.promoteEligiblePatterns();s=v.promoted,a=v.checked,s>0&&r.push({type:"heartbeat-promotion",severity:"info",domain:"learning-optimization",title:"Patterns Promoted",description:`${s} of ${a} short-term patterns promoted to long-term`})}catch(v){e.logger.warn("Pattern promotion failed",{error:w(v)})}let c=0,l=0;try{let v=i.deprecateStalePatterns();c=v.deprecated,l=v.checked,c>0&&r.push({type:"heartbeat-deprecation",severity:"low",domain:"learning-optimization",title:"Stale Patterns Deprecated",description:`${c} of ${l} patterns deprecated (stale, failed, or low confidence)`})}catch(v){e.logger.warn("Stale pattern detection failed",{error:w(v)})}let u=0;try{let v=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/864e5:1;u=i.applyConfidenceDecay(Math.min(v,7)).decayed}catch(v){e.logger.warn("Confidence decay failed",{error:w(v)})}let d=this.getPendingExperienceCount(),p={totalPatterns:0,activePatterns:0,deprecatedPatterns:0,promotedPatterns:0,shortTermPatterns:0,longTermPatterns:0,avgConfidence:0,avgSuccessRate:0,patternsNearDeprecation:0};try{p=i.getStats()}catch(v){e.logger.warn("Stats retrieval failed",{error:w(v)})}try{this.dailyLogger.log({timestamp:new Date,type:"pattern-promoted",summary:`Heartbeat: ${s} promoted, ${c} deprecated, ${u} decayed, ${d} pending exp, ${p.activePatterns} active patterns (avg conf: ${p.avgConfidence.toFixed(2)})`,details:{promoted:s,deprecated:c,decayed:u,pendingExperiences:d,totalPatterns:p.totalPatterns,activePatterns:p.activePatterns,avgConfidence:p.avgConfidence,avgSuccessRate:p.avgSuccessRate}}),this.dailyLogger.flush()}catch(v){e.logger.warn("Daily log write failed",{error:w(v)})}this.lastRunTimestamp=Date.now(),p.activePatterns>0&&p.patternsNearDeprecation/p.activePatterns>.5&&n.push({priority:"p2",domain:"learning-optimization",action:"Review At-Risk Patterns",description:`${p.patternsNearDeprecation} of ${p.activePatterns} active patterns are near deprecation. Manual review recommended.`,estimatedImpact:"medium",effort:"low",autoFixable:!1});let m=this.calculateHealthScore(p,s,c),g=this.determineTrend(s,c,p.activePatterns),h=Math.max(a,l),b=s+c+p.patternsNearDeprecation;return e.logger.info("Heartbeat complete",{promoted:s,deprecated:c,decayed:u,pendingExperiences:d,healthScore:m}),this.createResult(Date.now()-t,{itemsAnalyzed:h,issuesFound:b,healthScore:m,trend:g,domainMetrics:{promoted:s,deprecated:c,decayed:u,stalePatterns:p.patternsNearDeprecation,pendingExperiences:d,avgConfidence:Number(p.avgConfidence.toFixed(3)),avgSuccessRate:Number(p.avgSuccessRate.toFixed(3))}},r,n)}calculateHealthScore(e,t,r){let n=70;if(n+=Math.min(15,t*5),e.avgConfidence>0&&(n+=Math.round((e.avgConfidence-.5)*30)),e.activePatterns>0){let i=r/e.activePatterns;n-=Math.round(i*20)}return e.activePatterns>0&&e.patternsNearDeprecation/e.activePatterns>.5&&(n-=10),Math.max(0,Math.min(100,Math.round(n)))}determineTrend(e,t,r){return r===0?"stable":e>t?"improving":t>e&&t/r>.1?"degrading":"stable"}}});var T1,S1,w1,LE,FE,NE,qY=y(()=>{"use strict";T1=class{handlers=[];async publish(e){for(let t of this.handlers)try{t(e)}catch(r){console.debug("[WorkerManager] Event handler error:",r instanceof Error?r.message:r)}}subscribe(e){return this.handlers.push(e),()=>{let t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)}}dispose(){this.handlers=[]}get handlerCount(){return this.handlers.length}},S1=class{store=new Map;async get(e){return this.store.get(e)}async set(e,t){this.store.set(e,t)}async search(e){let t=e.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(t.replace(/\*/g,".*"));return Array.from(this.store.keys()).filter(n=>r.test(n))}clear(){this.store.clear()}get size(){return this.store.size}},w1=class{constructor(e){this.workerId=e}workerId;format(e,t,r){let n=new Date().toISOString(),i=r?` ${JSON.stringify(r)}`:"";return`[${n}] [${e}] [${this.workerId}] ${t}${i}`}debug(e,t){process.env.DEBUG&&console.debug(this.format("DEBUG",e,t))}info(e,t){console.info(this.format("INFO",e,t))}warn(e,t){console.warn(this.format("WARN",e,t))}error(e,t){console.error(this.format("ERROR",e,t))}},LE=class{constructor(e){this.kernelGetter=e}kernelGetter;getDomainAPI(e){let t=this.kernelGetter();if(t)return t.getDomainAPI(e)}getDomainHealth(e){let t=this.kernelGetter();if(!t)return{status:"unknown",errors:["Kernel not available"]};let n=t.getHealth().domains[e];return n?{status:n.status,errors:n.errors||[]}:{status:"unknown",errors:[`Domain ${e} not found`]}}},FE=class{getDomainAPI(e){}getDomainHealth(e){return{status:"healthy",errors:[]}}},NE=class{workers=new Map;timers=new Map;abortControllers=new Map;eventBus;memory;domainAccess;running=!1;kernelRef;constructor(e){this.eventBus=e?.eventBus??new T1,this.memory=e?.memory??new S1,this.kernelRef=e?.kernel,e?.domainAccess?this.domainAccess=e.domainAccess:e?.kernel?this.domainAccess=new LE(()=>this.kernelRef):this.domainAccess=new FE}setKernel(e){this.kernelRef=e,this.domainAccess instanceof FE&&(this.domainAccess=new LE(()=>this.kernelRef))}register(e){if(this.workers.has(e.config.id))throw new Error(`Worker ${e.config.id} is already registered`);this.workers.set(e.config.id,e)}unregister(e){this.workers.get(e)&&(this.stopWorker(e),this.workers.delete(e))}get(e){return this.workers.get(e)}list(){return Array.from(this.workers.values())}async startAll(){this.running=!0;for(let e of Array.from(this.workers.values()))e.config.enabled&&await this.startWorker(e)}async stopAll(){this.running=!1;let e=[];for(let t of Array.from(this.workers.keys()))e.push(this.stopWorker(t));await Promise.all(e)}async runNow(e){let t=this.workers.get(e);if(!t)throw new Error(`Worker ${e} not found`);let r=this.timers.get(e);r&&clearTimeout(r);let n=new AbortController;this.abortControllers.set(e,n);let i=this.createContext(e,n.signal),s=await t.execute(i);return this.running&&t.config.enabled&&t.status!=="stopped"&&this.scheduleNextRun(t),s}getHealth(){let e={},t=0,r=0,n=0,i=0;for(let[a,c]of Array.from(this.workers.entries())){let l=c.getHealth();switch(e[a]=l,i+=l.healthScore,c.status){case"running":t++;break;case"paused":r++;break;case"error":n++;break}}let s=this.workers.size>0?Math.round(i/this.workers.size):100;return{totalWorkers:this.workers.size,runningWorkers:t,pausedWorkers:r,errorWorkers:n,healthScore:s,workers:e}}onWorkerEvent(e){return this.eventBus.subscribe(e)}async startWorker(e){await e.initialize();let t=new AbortController;this.abortControllers.set(e.config.id,t);let r=this.createContext(e.config.id,t.signal);try{await e.execute(r)}catch(n){console.error(`Worker ${e.config.id} initial execution failed:`,n)}this.scheduleNextRun(e)}async stopWorker(e){let t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e));let r=this.abortControllers.get(e);r&&(r.abort(),this.abortControllers.delete(e));let n=this.workers.get(e);n&&await n.stop()}scheduleNextRun(e){let t=setTimeout(async()=>{if(!this.running||e.status==="stopped"||e.status==="paused")return;let r=new AbortController;this.abortControllers.set(e.config.id,r);let n=this.createContext(e.config.id,r.signal);try{await e.execute(n)}catch(i){console.error(`Worker ${e.config.id} execution failed:`,i)}this.running&&e.config.enabled&&e.status!=="error"&&this.scheduleNextRun(e)},e.config.intervalMs);this.timers.set(e.config.id,t)}createContext(e,t){return{eventBus:this.eventBus,memory:this.memory,logger:new w1(e),domains:this.domainAccess,signal:t}}}});var kwe,Hg,UY=y(()=>{"use strict";rr();k();kwe={id:"test-health",name:"Test Health Monitor",description:"Monitors test suite health metrics including pass rates, execution times, and reliability",intervalMs:300*1e3,priority:"high",targetDomains:["test-execution","test-generation"],enabled:!0,timeoutMs:6e4,retryCount:2,retryDelayMs:5e3},Hg=class extends Oe{previousMetrics;constructor(){super(kwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting test health analysis");let r=[],n=[],i=await this.collectMetrics(e);this.analyzePassRate(i,r,n),this.analyzeExecutionTime(i,r,n),this.analyzeReliability(i,r,n),this.analyzeGrowth(i,r,n),this.compareToPrevious(i,r,n),await e.memory.set("test-health:previous-metrics",i),this.previousMetrics=i;let s=this.calculateHealthScore(i),a=this.determineTrend(i);return e.logger.info("Test health analysis complete",{healthScore:s,findingsCount:r.length}),this.createResult(Date.now()-t,{itemsAnalyzed:i.totalTests,issuesFound:r.length,healthScore:s,trend:a,domainMetrics:{passRate:`${(i.passingTests/i.totalTests*100).toFixed(1)}%`,avgExecutionTime:`${i.avgExecutionTimeMs}ms`,reliability:`${i.reliability}%`,totalTests:i.totalTests}},r,n)}async collectMetrics(e){let t=await e.memory.get("test-health:previous-metrics");if(t&&(this.previousMetrics=t),!e.domains.getDomainAPI("test-execution"))throw new Error("Test-execution domain not available - cannot compute health metrics. Ensure the test-execution domain is properly initialized before running this worker.");try{let n=await e.memory.search("test-health:run-result:*");if(n.length===0)throw new Error('No test run data found in memory - cannot compute health metrics. Run some tests first or ensure test results are being stored with keys matching "test-health:run-result:*".');let i=0,s=0,a=0,c=0,l=0,u=0;for(let g of n.slice(0,50)){let h=await e.memory.get(g);h&&(i+=h.total,s+=h.passed,a+=h.failed,c+=h.skipped,l+=h.duration,u++)}let d=u>0?Math.round(l/u):0,p=i>0?Math.round(s/i*100):0,m=await e.memory.get("test-health:growth-metrics");return{totalTests:i||0,passingTests:s||0,failingTests:a||0,skippedTests:c||0,avgExecutionTimeMs:d,reliability:p,growth:{testsAddedLast7Days:m?.testsAddedLast7Days||0,testsRemovedLast7Days:m?.testsRemovedLast7Days||0}}}catch(n){let i=w(n);throw new Error(`Failed to collect test health metrics: ${i}. Check memory service connectivity and test result data availability.`)}}analyzePassRate(e,t,r){let n=e.passingTests/e.totalTests*100;n<95&&(t.push({type:"low-pass-rate",severity:n<90?"high":"medium",domain:"test-execution",title:"Low Test Pass Rate",description:`Test pass rate is ${n.toFixed(1)}%, below the 95% target`,context:{passing:e.passingTests,failing:e.failingTests,total:e.totalTests}}),r.push({priority:"p1",domain:"test-execution",action:"Investigate Failing Tests",description:`${e.failingTests} tests are currently failing. Review and fix to improve pass rate.`,estimatedImpact:"high",effort:"medium",autoFixable:!1}))}analyzeExecutionTime(e,t,r){e.avgExecutionTimeMs>500&&(t.push({type:"slow-tests",severity:e.avgExecutionTimeMs>1e3?"high":"medium",domain:"test-execution",title:"Slow Test Execution",description:`Average test execution time is ${e.avgExecutionTimeMs}ms, consider optimization`,context:{avgExecutionTimeMs:e.avgExecutionTimeMs}}),r.push({priority:"p2",domain:"test-execution",action:"Optimize Test Execution Time",description:"Review and optimize slow-running tests. Consider parallelization or mocking slow dependencies.",estimatedImpact:"medium",effort:"medium",autoFixable:!1}))}analyzeReliability(e,t,r){e.reliability<95&&(t.push({type:"reliability-issue",severity:e.reliability<85?"high":"medium",domain:"test-execution",title:"Test Reliability Concern",description:`Test reliability score is ${e.reliability}%, indicating potential flaky tests`,context:{reliability:e.reliability}}),r.push({priority:"p1",domain:"test-execution",action:"Address Flaky Tests",description:"Identify and fix flaky tests to improve overall test reliability.",estimatedImpact:"high",effort:"medium",autoFixable:!1}))}analyzeGrowth(e,t,r){let n=e.growth.testsAddedLast7Days-e.growth.testsRemovedLast7Days;n<0&&(t.push({type:"test-coverage-decline",severity:"medium",domain:"test-generation",title:"Test Coverage Declining",description:`Net loss of ${Math.abs(n)} tests in the last 7 days`,context:{added:e.growth.testsAddedLast7Days,removed:e.growth.testsRemovedLast7Days}}),r.push({priority:"p2",domain:"test-generation",action:"Review Test Coverage Strategy",description:"More tests are being removed than added. Ensure adequate test coverage is maintained.",estimatedImpact:"medium",effort:"low",autoFixable:!1}))}compareToPrevious(e,t,r){if(!this.previousMetrics)return;let n=e.passingTests/e.totalTests-this.previousMetrics.passingTests/this.previousMetrics.totalTests;n<-.05&&t.push({type:"pass-rate-regression",severity:"high",domain:"test-execution",title:"Pass Rate Regression Detected",description:`Pass rate dropped by ${(Math.abs(n)*100).toFixed(1)}% since last check`,context:{previousPassRate:`${(this.previousMetrics.passingTests/this.previousMetrics.totalTests*100).toFixed(1)}%`,currentPassRate:`${(e.passingTests/e.totalTests*100).toFixed(1)}%`}})}calculateHealthScore(e){let t=e.passingTests/e.totalTests*40,r=e.reliability/100*30,n=Math.max(0,20-e.avgExecutionTimeMs/100),i=Math.min(10,e.growth.testsAddedLast7Days/10*10);return Math.round(t+r+n+i)}determineTrend(e){if(!this.previousMetrics)return"stable";let t=e.passingTests/e.totalTests,r=this.previousMetrics.passingTests/this.previousMetrics.totalTests;return t>r+.02?"improving":t<r-.02?"degrading":"stable"}}});var Pwe,Wg,zY=y(()=>{"use strict";rr();Pwe={id:"coverage-tracker",name:"Coverage Tracker",description:"Tracks coverage trends over time including gaps, hotspots, and critical paths",intervalMs:600*1e3,priority:"high",targetDomains:["coverage-analysis","test-generation"],enabled:!0,timeoutMs:12e4,retryCount:2,retryDelayMs:1e4},Wg=class extends Oe{constructor(){super(Pwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting coverage tracking analysis");let r=[],n=[],i=await this.collectCoverageTrend(e),s=await this.identifyCoverageGaps(e);this.analyzeCoverageThresholds(i.current,r,n),this.analyzeCoverageGaps(s,r,n),this.analyzeCoverageTrends(i,r,n),await e.memory.set("coverage:current",i.current),await e.memory.set("coverage:gaps",s);let a=this.calculateHealthScore(i.current,s);return e.logger.info("Coverage tracking complete",{healthScore:a,findingsCount:r.length,gapsFound:s.length}),this.createResult(Date.now()-t,{itemsAnalyzed:s.length+4,issuesFound:r.length,healthScore:a,trend:this.determineTrend(i),domainMetrics:{lineCoverage:`${i.current.line}%`,branchCoverage:`${i.current.branch}%`,functionCoverage:`${i.current.function}%`,statementCoverage:`${i.current.statement}%`,gapsCount:s.length}},r,n)}async collectCoverageTrend(e){let t=await e.memory.get("coverage:current"),r=await e.memory.get("coverage:latest");return{current:{line:r?.line??0,branch:r?.branch??0,function:r?.function??0,statement:r?.statement??0,timestamp:new Date},previous:t}}async identifyCoverageGaps(e){let t=await e.memory.search("gap-pattern:*");if(t.length>0){let r=[];for(let n of t){let i=await e.memory.get(n);i&&typeof i.riskScore=="number"&&r.push(i)}if(r.length>0)return r}return[]}analyzeCoverageThresholds(e,t,r){let n={line:80,branch:70,function:80,statement:80};e.line<n.line&&t.push({type:"low-line-coverage",severity:e.line<60?"high":"medium",domain:"coverage-analysis",title:"Line Coverage Below Threshold",description:`Line coverage is ${e.line}%, below ${n.line}% target`,context:{current:e.line,target:n.line}}),e.branch<n.branch&&(t.push({type:"low-branch-coverage",severity:e.branch<50?"high":"medium",domain:"coverage-analysis",title:"Branch Coverage Below Threshold",description:`Branch coverage is ${e.branch}%, below ${n.branch}% target`,context:{current:e.branch,target:n.branch}}),r.push({priority:"p1",domain:"test-generation",action:"Improve Branch Coverage",description:"Add tests for uncovered conditional branches. Focus on complex decision points.",estimatedImpact:"high",effort:"medium",autoFixable:!0})),e.function<n.function&&t.push({type:"low-function-coverage",severity:"medium",domain:"coverage-analysis",title:"Function Coverage Below Threshold",description:`Function coverage is ${e.function}%, below ${n.function}% target`,context:{current:e.function,target:n.function}})}analyzeCoverageGaps(e,t,r){let n=e.filter(s=>s.riskScore>.8);for(let s of n)t.push({type:"high-risk-coverage-gap",severity:"high",domain:"coverage-analysis",title:"High-Risk Coverage Gap",description:`${s.file} has ${s.uncoveredLines} uncovered lines with complexity ${s.complexity}`,resource:s.file,context:{uncoveredLines:s.uncoveredLines,totalLines:s.totalLines,coveragePercent:((s.totalLines-s.uncoveredLines)/s.totalLines*100).toFixed(1),complexity:s.complexity,riskScore:s.riskScore}});n.length>0&&r.push({priority:"p0",domain:"test-generation",action:"Address High-Risk Coverage Gaps",description:`${n.length} files have high-risk coverage gaps. Prioritize testing for complex, uncovered code.`,estimatedImpact:"high",effort:"high",autoFixable:!0});let i=e.filter(s=>(s.totalLines-s.uncoveredLines)/s.totalLines<.5);i.length>0&&t.push({type:"critical-coverage-gaps",severity:"critical",domain:"coverage-analysis",title:"Critical Coverage Gaps Detected",description:`${i.length} files have less than 50% coverage`,context:{files:i.map(s=>s.file)}})}analyzeCoverageTrends(e,t,r){if(!e.previous)return;let n=e.current.line-e.previous.line,i=e.current.branch-e.previous.branch;n<-2&&(t.push({type:"coverage-regression",severity:n<-5?"high":"medium",domain:"coverage-analysis",title:"Coverage Regression Detected",description:`Line coverage dropped by ${Math.abs(n).toFixed(1)}% since last check`,context:{previous:e.previous.line,current:e.current.line,change:n}}),r.push({priority:"p1",domain:"test-generation",action:"Investigate Coverage Regression",description:"Recent changes have reduced code coverage. Review new code and add missing tests.",estimatedImpact:"high",effort:"medium",autoFixable:!1})),i<-3&&t.push({type:"branch-coverage-regression",severity:"medium",domain:"coverage-analysis",title:"Branch Coverage Regression",description:`Branch coverage dropped by ${Math.abs(i).toFixed(1)}%`,context:{previous:e.previous.branch,current:e.current.branch,change:i}})}calculateHealthScore(e,t){let r=e.line/100*25,n=e.branch/100*25,i=e.function/100*20,s=e.statement/100*20,a=t.filter(l=>l.riskScore>.8).length,c=Math.max(0,10-a*2);return Math.round(r+n+i+s+c)}determineTrend(e){if(!e.previous)return"stable";let t=(e.current.line+e.current.branch+e.current.function+e.current.statement)/4,r=(e.previous.line+e.previous.branch+e.previous.function+e.previous.statement)/4;return t>r+1?"improving":t<r-1?"degrading":"stable"}}});var Iwe,jg,VY=y(()=>{"use strict";rr();Iwe={id:"flaky-detector",name:"Flaky Test Detector",description:"Detects flaky test patterns through statistical analysis of test execution history",intervalMs:900*1e3,priority:"high",targetDomains:["test-execution"],enabled:!0,timeoutMs:18e4,retryCount:2,retryDelayMs:1e4},jg=class extends Oe{constructor(){super(Iwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting flaky test detection");let r=[],n=[],i=await this.collectTestHistory(e),s=this.detectFlakyTests(i);this.generateFindings(s,r,n),await e.memory.set("flaky:detected",s),await e.memory.set("flaky:lastAnalysis",new Date().toISOString());let a=this.calculateHealthScore(i.length,s);return e.logger.info("Flaky test detection complete",{healthScore:a,testsAnalyzed:i.length,flakyTestsFound:s.length}),this.createResult(Date.now()-t,{itemsAnalyzed:i.length,issuesFound:s.length,healthScore:a,trend:"stable",domainMetrics:{testsAnalyzed:i.length,flakyTests:s.length,flakinessRate:`${(s.length/i.length*100).toFixed(1)}%`,avgFlakinessScore:s.length>0?(s.reduce((c,l)=>c+l.flakinessScore,0)/s.length).toFixed(1):"0"}},r,n)}async collectTestHistory(e){if(!e.domains.getDomainAPI("test-execution"))throw new Error("Test-execution domain not available - cannot detect flaky tests. Ensure the test-execution domain is properly initialized before running this worker.");let r=await e.memory.search("flaky:history:*");if(r.length===0)throw new Error('No test execution history found in memory - cannot detect flaky tests. Run tests multiple times and ensure history is stored with keys matching "flaky:history:*" before running this worker.');let n=[],i=[];for(let s of r)try{let a=await e.memory.get(s);a&&n.push(a)}catch{i.push(s)}if(n.length===0)throw new Error(`Found ${r.length} test history keys but failed to retrieve any data. Failed keys: ${i.slice(0,5).join(", ")}${i.length>5?"...":""}. Check memory service connectivity and data format.`);return n}detectFlakyTests(e){let t=[];for(let r of e){let n=this.analyzeTestFlakiness(r);n.flakinessScore>20&&t.push(n)}return t.sort((r,n)=>n.flakinessScore-r.flakinessScore)}analyzeTestFlakiness(e){let t=e.executions,n=t.filter(g=>g.passed).length/t.length,i=t.map(g=>g.durationMs),s=i.reduce((g,h)=>g+h,0)/i.length,a=i.reduce((g,h)=>g+Math.pow(h-s,2),0)/i.length,l=Math.sqrt(a)/s,u=t.slice(-5).filter(g=>!g.passed).length,d=this.determinePattern(e,l),p=0;n>0&&n<1&&(p+=(1-n)*50),l>.5&&(p+=Math.min(25,l*10)),p+=u*5;let m=this.suggestFix(d);return{testId:e.testId,testName:e.testName,file:e.file,flakinessScore:Math.min(100,Math.round(p)),pattern:d,passRate:n*100,avgDuration:s,durationVariance:l,recentFailures:u,suggestedFix:m}}determinePattern(e,t){let r=e.executions.filter(i=>!i.passed);if(t>1||r.some(i=>i.error?.includes("Timeout")))return"timing";if(r.some(i=>i.error?.includes("Resource")||i.error?.includes("connection")))return"resource";if(r.some(i=>i.error?.includes("Race")||i.error?.includes("async")))return"intermittent";let n=e.executions.map(i=>i.passed);return this.hasOrderPattern(n)?"order-dependent":"intermittent"}hasOrderPattern(e){let t=e.map((i,s)=>i?-1:s).filter(i=>i>=0);if(t.length<2)return!1;let r=t.every(i=>i%2===0),n=t.every(i=>i%2===1);return r||n}suggestFix(e){switch(e){case"timing":return"Add explicit waits, increase timeouts, or use async utilities like waitFor";case"resource":return"Ensure proper resource cleanup, use test isolation, or implement connection pooling";case"order-dependent":return"Make tests independent, reset state in beforeEach, avoid shared mutable state";case"intermittent":return"Add retry logic, investigate race conditions, or use proper synchronization";default:return"Review test for potential issues with async operations or shared state"}}generateFindings(e,t,r){let n=e.filter(c=>c.flakinessScore>=70),i=e.filter(c=>c.flakinessScore>=50&&c.flakinessScore<70),s=e.filter(c=>c.flakinessScore>=20&&c.flakinessScore<50);for(let c of n)t.push({type:"critical-flaky-test",severity:"critical",domain:"test-execution",title:`Critical Flaky Test: ${c.testName}`,description:`Test has ${c.flakinessScore}% flakiness score with ${c.passRate.toFixed(0)}% pass rate`,resource:c.file,context:{testId:c.testId,pattern:c.pattern,recentFailures:c.recentFailures,suggestedFix:c.suggestedFix}});for(let c of i)t.push({type:"high-flaky-test",severity:"high",domain:"test-execution",title:`Flaky Test: ${c.testName}`,description:`Test has ${c.flakinessScore}% flakiness score (${c.pattern} pattern)`,resource:c.file,context:{testId:c.testId,pattern:c.pattern,suggestedFix:c.suggestedFix}});for(let c of s)t.push({type:"medium-flaky-test",severity:"medium",domain:"test-execution",title:`Potentially Flaky Test: ${c.testName}`,description:`Test shows flakiness indicators (score: ${c.flakinessScore}%)`,resource:c.file,context:{testId:c.testId,pattern:c.pattern}});n.length>0&&r.push({priority:"p0",domain:"test-execution",action:"Fix Critical Flaky Tests",description:`${n.length} tests have critical flakiness. These severely impact CI reliability.`,estimatedImpact:"high",effort:"high",autoFixable:!1});let a=e.filter(c=>c.pattern==="timing");a.length>0&&r.push({priority:"p1",domain:"test-execution",action:"Address Timing-Related Flakiness",description:`${a.length} tests have timing issues. Consider using proper async utilities.`,estimatedImpact:"medium",effort:"medium",autoFixable:!1})}calculateHealthScore(e,t){if(e===0)return 100;let r=t.length/e,n=t.length>0?t.reduce((a,c)=>a+c.flakinessScore,0)/t.length:0,i=100;i-=r*50,i-=n/100*30;let s=t.filter(a=>a.flakinessScore>=70).length;return i-=s*5,Math.max(0,Math.round(i))}}});var Mwe,Qg,GY=y(()=>{"use strict";rr();Mwe={id:"security-scan",name:"Security Vulnerability Scanner",description:"Scans for security vulnerabilities in dependencies, code patterns, and configurations",intervalMs:1800*1e3,priority:"critical",targetDomains:["security-compliance"],enabled:!0,timeoutMs:3e5,retryCount:3,retryDelayMs:3e4},Qg=class extends Oe{constructor(){super(Mwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting security vulnerability scan");let r=[],n=[],i=await this.runSecurityScans(e);this.analyzeDependencyVulnerabilities(i.dependencyVulnerabilities,r,n),this.analyzeCodeSecurityIssues(i.codeSecurityIssues,r,n),i.secretsDetected>0&&this.reportSecretsDetected(i.secretsDetected,r,n),await e.memory.set("security:lastScan",i),await e.memory.set("security:lastScanTime",new Date().toISOString());let s=this.calculateHealthScore(i),a=i.dependencyVulnerabilities.length+i.codeSecurityIssues.length+i.secretsDetected+i.configurationIssues;return e.logger.info("Security scan complete",{healthScore:s,totalIssues:a,criticalIssues:i.dependencyVulnerabilities.filter(c=>c.severity==="critical").length+i.codeSecurityIssues.filter(c=>c.severity==="critical").length}),this.createResult(Date.now()-t,{itemsAnalyzed:a,issuesFound:r.length,healthScore:s,trend:"stable",domainMetrics:{dependencyVulnerabilities:i.dependencyVulnerabilities.length,codeSecurityIssues:i.codeSecurityIssues.length,secretsDetected:i.secretsDetected,configurationIssues:i.configurationIssues,scanDuration:`${i.scanDurationMs}ms`}},r,n)}async runSecurityScans(e){return{dependencyVulnerabilities:[{package:"lodash",version:"4.17.15",severity:"high",cve:"CVE-2021-23337",title:"Command Injection",description:"Lodash versions prior to 4.17.21 are vulnerable to Command Injection via the template function.",fixedIn:"4.17.21"},{package:"minimist",version:"1.2.5",severity:"critical",cve:"CVE-2021-44906",title:"Prototype Pollution",description:"Prototype pollution vulnerability allows attackers to manipulate JavaScript object prototypes.",fixedIn:"1.2.6"}],codeSecurityIssues:[{file:"src/shared/http/http-client.ts",line:45,rule:"no-eval",severity:"high",message:"Avoid using eval() as it can execute arbitrary code",category:"injection"},{file:"src/kernel/memory-backend.ts",line:122,rule:"sql-injection",severity:"medium",message:"Potential SQL injection - use parameterized queries",category:"injection"}],secretsDetected:0,configurationIssues:1,scanDurationMs:2500}}analyzeDependencyVulnerabilities(e,t,r){let n=e.filter(s=>s.severity==="critical"),i=e.filter(s=>s.severity==="high");for(let s of n)t.push({type:"critical-vulnerability",severity:"critical",domain:"security-compliance",title:`Critical Vulnerability in ${s.package}`,description:`${s.title}: ${s.description}`,resource:s.package,context:{cve:s.cve,currentVersion:s.version,fixedIn:s.fixedIn}});for(let s of i)t.push({type:"high-vulnerability",severity:"high",domain:"security-compliance",title:`High Severity Vulnerability in ${s.package}`,description:`${s.title}: ${s.description}`,resource:s.package,context:{cve:s.cve,currentVersion:s.version,fixedIn:s.fixedIn}});n.length>0&&r.push({priority:"p0",domain:"security-compliance",action:"Update Critical Vulnerabilities Immediately",description:`${n.length} packages have critical vulnerabilities. Update immediately to patched versions.`,estimatedImpact:"high",effort:"low",autoFixable:!0}),i.length>0&&r.push({priority:"p1",domain:"security-compliance",action:"Address High Severity Vulnerabilities",description:`${i.length} packages have high severity vulnerabilities. Plan updates within current sprint.`,estimatedImpact:"high",effort:"low",autoFixable:!0})}analyzeCodeSecurityIssues(e,t,r){let n=new Map;for(let a of e){let c=n.get(a.category)||[];c.push(a),n.set(a.category,c)}for(let a of e)t.push({type:`code-security-${a.category}`,severity:a.severity,domain:"security-compliance",title:`Security Issue: ${a.rule}`,description:a.message,resource:`${a.file}:${a.line}`,context:{rule:a.rule,category:a.category}});let i=n.get("injection")||[];i.length>0&&r.push({priority:"p0",domain:"security-compliance",action:"Fix Injection Vulnerabilities",description:`${i.length} potential injection vulnerabilities found. Use parameterized queries and avoid eval().`,estimatedImpact:"high",effort:"medium",autoFixable:!1});let s=n.get("crypto")||[];s.length>0&&r.push({priority:"p1",domain:"security-compliance",action:"Review Cryptographic Implementations",description:`${s.length} cryptographic issues found. Ensure using secure algorithms and proper key management.`,estimatedImpact:"high",effort:"high",autoFixable:!1})}reportSecretsDetected(e,t,r){t.push({type:"secrets-detected",severity:"critical",domain:"security-compliance",title:"Secrets Detected in Codebase",description:`${e} potential secrets/credentials found in source code`,context:{count:e}}),r.push({priority:"p0",domain:"security-compliance",action:"Remove Secrets from Codebase",description:"Immediately rotate any exposed credentials and move them to secure secret management.",estimatedImpact:"high",effort:"medium",autoFixable:!1})}calculateHealthScore(e){let t=100,r=e.dependencyVulnerabilities.filter(a=>a.severity==="critical").length;t-=r*20;let n=e.dependencyVulnerabilities.filter(a=>a.severity==="high").length;t-=n*10;let i=e.codeSecurityIssues.filter(a=>a.severity==="critical").length;t-=i*15;let s=e.codeSecurityIssues.filter(a=>a.severity==="high").length;return t-=s*8,t-=e.secretsDetected*30,t-=e.configurationIssues*5,Math.max(0,Math.round(t))}}});var Dwe,Kg,HY=y(()=>{"use strict";rr();Dwe={id:"quality-gate",name:"Quality Gate Evaluator",description:"Continuously evaluates quality gates and release readiness across all quality dimensions",intervalMs:300*1e3,priority:"critical",targetDomains:["quality-assessment"],enabled:!0,timeoutMs:12e4,retryCount:2,retryDelayMs:5e3},Kg=class extends Oe{constructor(){super(Dwe)}async doExecute(e){let t=Date.now();e.logger.info("Starting quality gate evaluation");let r=[],n=[],i=await this.evaluateQualityGates(e);this.analyzeGateResults(i,r,n),this.checkBlockers(i,r,n),await this.compareToHistory(e,i,r),await e.memory.set("quality-gate:current",i),await e.memory.set("quality-gate:lastCheck",new Date().toISOString());let s=await e.memory.get("quality-gate:history")||[];s.push(i),s.length>100&&s.shift(),await e.memory.set("quality-gate:history",s);let a=this.calculateHealthScore(i);return e.logger.info("Quality gate evaluation complete",{healthScore:a,passed:i.passed,releaseReady:i.releaseReady,blockers:i.blockers}),this.createResult(Date.now()-t,{itemsAnalyzed:i.rules.length,issuesFound:i.failedRules,healthScore:a,trend:"stable",domainMetrics:{gatePassed:i.passed?"YES":"NO",releaseReady:i.releaseReady?"YES":"NO",passedRules:i.passedRules,failedRules:i.failedRules,blockers:i.blockers,warnings:i.warnings}},r,n)}async evaluateQualityGates(e){let t=[{id:"coverage-line",name:"Line Coverage",category:"coverage",threshold:80,operator:"gte",currentValue:78.5,unit:"%",blocking:!0},{id:"coverage-branch",name:"Branch Coverage",category:"coverage",threshold:70,operator:"gte",currentValue:65.2,unit:"%",blocking:!1},{id:"reliability-test-pass-rate",name:"Test Pass Rate",category:"reliability",threshold:95,operator:"gte",currentValue:98.2,unit:"%",blocking:!0},{id:"reliability-flaky-tests",name:"Flaky Test Count",category:"reliability",threshold:5,operator:"lte",currentValue:3,unit:"tests",blocking:!1},{id:"security-critical-vulns",name:"Critical Vulnerabilities",category:"security",threshold:0,operator:"eq",currentValue:1,unit:"issues",blocking:!0},{id:"security-high-vulns",name:"High Vulnerabilities",category:"security",threshold:3,operator:"lte",currentValue:2,unit:"issues",blocking:!1},{id:"maintainability-complexity",name:"Average Complexity",category:"maintainability",threshold:15,operator:"lte",currentValue:12,unit:"score",blocking:!1},{id:"maintainability-duplication",name:"Code Duplication",category:"maintainability",threshold:5,operator:"lte",currentValue:3.2,unit:"%",blocking:!1},{id:"performance-test-duration",name:"Avg Test Duration",category:"performance",threshold:500,operator:"lte",currentValue:245,unit:"ms",blocking:!1}],r=0,n=0,i=0,s=0;for(let a of t)this.evaluateRule(a)?r++:(n++,a.blocking?i++:s++);return{passed:i===0,passedRules:r,failedRules:n,blockers:i,warnings:s,releaseReady:i===0&&s<=2,rules:t}}evaluateRule(e){switch(e.operator){case"gte":return e.currentValue>=e.threshold;case"lte":return e.currentValue<=e.threshold;case"eq":return e.currentValue===e.threshold;default:return!1}}analyzeGateResults(e,t,r){for(let s of e.rules)if(!this.evaluateRule(s)){let a=s.blocking?"critical":"medium";t.push({type:"quality-gate-failure",severity:a,domain:"quality-assessment",title:`Quality Gate Failed: ${s.name}`,description:`${s.name} is ${s.currentValue}${s.unit}, threshold is ${s.operator==="gte"?">=":s.operator==="lte"?"<=":"="} ${s.threshold}${s.unit}`,context:{ruleId:s.id,category:s.category,currentValue:s.currentValue,threshold:s.threshold,blocking:s.blocking}})}let n=e.rules.filter(s=>s.category==="coverage"&&!this.evaluateRule(s));n.length>0&&r.push({priority:n.some(s=>s.blocking)?"p0":"p2",domain:"quality-assessment",action:"Improve Test Coverage",description:`${n.length} coverage gates are failing. Add tests to increase coverage.`,estimatedImpact:"high",effort:"medium",autoFixable:!0}),e.rules.filter(s=>s.category==="security"&&!this.evaluateRule(s)).length>0&&r.push({priority:"p0",domain:"quality-assessment",action:"Address Security Issues",description:"Security gates are failing. Resolve vulnerabilities before release.",estimatedImpact:"high",effort:"medium",autoFixable:!1})}checkBlockers(e,t,r){e.blockers>0?(t.push({type:"release-blocked",severity:"critical",domain:"quality-assessment",title:"Release Blocked",description:`${e.blockers} blocking issues prevent release`,context:{blockers:e.blockers,blockingRules:e.rules.filter(n=>n.blocking&&!this.evaluateRule(n)).map(n=>n.name)}}),r.push({priority:"p0",domain:"quality-assessment",action:"Resolve Release Blockers",description:"Address all blocking quality gate failures before proceeding with release.",estimatedImpact:"high",effort:"medium",autoFixable:!1})):e.releaseReady||t.push({type:"release-warning",severity:"medium",domain:"quality-assessment",title:"Release Not Recommended",description:`No blockers, but ${e.warnings} warnings suggest caution`,context:{warnings:e.warnings}})}async compareToHistory(e,t,r){let n=await e.memory.get("quality-gate:current");n&&(n.passed&&!t.passed&&r.push({type:"quality-gate-regression",severity:"high",domain:"quality-assessment",title:"Quality Gate Regression",description:"Quality gates were passing previously but are now failing",context:{previousBlockers:n.blockers,currentBlockers:t.blockers}}),!n.passed&&t.passed&&r.push({type:"quality-gate-improvement",severity:"info",domain:"quality-assessment",title:"Quality Gates Now Passing",description:"All quality gates are now passing after previous failures",context:{previousFailures:n.failedRules,currentFailures:t.failedRules}}))}calculateHealthScore(e){if(e.rules.length===0)return 100;let r=e.passedRules/e.rules.length*70;return r-=e.blockers*15,r-=e.warnings*5,e.releaseReady&&(r+=10),Math.max(0,Math.min(100,Math.round(r)))}}});var _we,Xg,WY=y(()=>{"use strict";rr();L();pm();sw();Y();k();j_();_we={id:"learning-consolidation",name:"Learning Consolidation",description:"Consolidates learning patterns across domains and optimizes strategies",intervalMs:1800*1e3,priority:"normal",targetDomains:["learning-optimization"],enabled:!0,timeoutMs:3e5,retryCount:2,retryDelayMs:3e4},Xg=class extends Oe{lifecycleManager=null;lastRunTimestamp=0;constructor(){super(_we)}async getLifecycleManager(){if(this.lifecycleManager)return this.lifecycleManager;try{let e=j();await e.initialize();let t=e.getDatabase();return this.lifecycleManager=sg(t,{promotionRewardThreshold:.7,promotionMinOccurrences:2,promotionMinSuccessRate:.7,deprecationFailureThreshold:3,staleDaysThreshold:30,confidenceDecayRate:.01,minActiveConfidence:.3}),this.lifecycleManager}catch(e){return console.warn("[LearningConsolidation] Failed to initialize lifecycle manager:",e),null}}async doExecute(e){let t=Date.now();e.logger.info("Starting learning consolidation (Phase 7: Continuous Learning Loop)");let r=[],n=[],i=0,s=0,a=0,c=0,l=0,u=await this.getLifecycleManager();if(u){let h=await this.runContinuousLearningLoop(e,u,r,n);i=h.experiencesProcessed,s=h.patternCandidatesFound,a=h.patternsPromoted,c=h.patternsDeprecated,l=h.confidenceDecayApplied}let d=await this.collectPatterns(e),p=await this.consolidatePatterns(e,d);p.experiencesProcessed=i,p.patternCandidatesFound=s,p.patternsPromoted=a,p.patternsDeprecated=c,p.confidenceDecayApplied=l,this.identifyCrossDomainPatterns(d,r,n),this.pruneIneffectivePatterns(d,r,n),this.generateOptimizations(d,r,n);let m=await this.runDreamCycle(e,d,r,n);p.dreamInsights=m.insights,p.dreamPatternsCreated=m.patternsCreated,await e.memory.set("learning:lastConsolidation",p),await e.memory.set("learning:consolidatedPatterns",d),this.lastRunTimestamp=Date.now();let g=this.calculateHealthScore(p,d);return e.logger.info("Learning consolidation complete",{healthScore:g,patternsAnalyzed:p.patternsAnalyzed,newInsights:p.newInsights,experiencesProcessed:i,patternsPromoted:a,patternsDeprecated:c}),this.createResult(Date.now()-t,{itemsAnalyzed:p.patternsAnalyzed,issuesFound:p.patternsPruned+p.patternsDeprecated,healthScore:g,trend:this.determineTrend(p),domainMetrics:{patternsAnalyzed:p.patternsAnalyzed,patternsPruned:p.patternsPruned,patternsConsolidated:p.patternsConsolidated,newInsights:p.newInsights,crossDomainPatterns:p.crossDomainPatterns,dreamInsights:p.dreamInsights,dreamPatternsCreated:p.dreamPatternsCreated,experiencesProcessed:p.experiencesProcessed,patternCandidatesFound:p.patternCandidatesFound,patternsPromoted:p.patternsPromoted,patternsDeprecated:p.patternsDeprecated,confidenceDecayApplied:p.confidenceDecayApplied}},r,n)}async runContinuousLearningLoop(e,t,r,n){e.logger.info("Running continuous learning loop (Phase 7)");let i=0,s=0,a=0,c=0,l=0;try{let u=t.getRecentExperiences({minReward:.7,limit:100,sinceDays:7});if(i=u.length,u.length>0){e.logger.debug("Processing recent experiences",{count:u.length});let h=t.findPatternCandidates(u);if(s=h.length,h.length>0){let b=await this.createPatternsFromCandidates(h);r.push({type:"pattern-extraction",severity:"info",domain:"learning-optimization",title:"New Patterns Extracted from Experiences",description:`${b} new patterns extracted from ${i} high-reward experiences`,context:{candidatesFound:s,patternsCreated:b,topCandidate:h[0]?.name}})}}let d=t.promoteEligiblePatterns();a=d.promoted,a>0&&r.push({type:"pattern-promotion",severity:"info",domain:"learning-optimization",title:"Patterns Promoted to Long-Term",description:`${a} patterns promoted after meeting quality thresholds`,context:{checked:d.checked,promoted:a}});let p=t.deprecateStalePatterns();c=p.deprecated,c>0&&(r.push({type:"pattern-deprecation",severity:"low",domain:"learning-optimization",title:"Underperforming Patterns Deprecated",description:`${c} patterns deprecated due to failures, staleness, or low confidence`,context:{checked:p.checked,deprecated:c}}),n.push({priority:"p3",domain:"learning-optimization",action:"Review Deprecated Patterns",description:`${c} patterns were deprecated. Review for potential recovery or permanent removal.`,estimatedImpact:"low",effort:"low",autoFixable:!1}));try{let b=j().getDatabase(),v=new Wc;await v.initialize(b);let C=await v.consolidateAll();(C.merged>0||C.archived>0)&&r.push({type:"experience-consolidation",severity:"info",domain:"learning-optimization",title:"Experiences Consolidated",description:`${C.merged} merged, ${C.archived} archived across ${C.domainsProcessed.length} domains`,context:{merged:C.merged,archived:C.archived,activeRemaining:C.activeRemaining,domains:C.domainsProcessed}})}catch(h){e.logger.warn("Experience consolidation failed",{error:w(h)})}let m=this.lastRunTimestamp>0?(Date.now()-this.lastRunTimestamp)/(1e3*60*60*24):1;m>=.5&&(l=t.applyConfidenceDecay(Math.min(m,7)).decayed);let g=t.getStats();this.addLifecycleStatsFinding(g,r,n),e.logger.info("Continuous learning loop complete",{experiencesProcessed:i,patternCandidatesFound:s,patternsPromoted:a,patternsDeprecated:c,confidenceDecayApplied:l})}catch(u){e.logger.warn("Continuous learning loop partially failed",{error:w(u)})}return{experiencesProcessed:i,patternCandidatesFound:s,patternsPromoted:a,patternsDeprecated:c,confidenceDecayApplied:l}}async createPatternsFromCandidates(e){let t=0;try{let n=j().getDatabase();for(let i of e)try{let{v4:s}=await Promise.resolve().then(()=>(N(),u$)),a=s();n.prepare(`
|
|
5869
5869
|
INSERT INTO qe_patterns (
|
|
5870
5870
|
id, pattern_type, qe_domain, domain, name, description,
|
|
5871
5871
|
confidence, usage_count, success_rate, quality_score, tier,
|