agentic-qe 3.9.30 → 3.9.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +208 -0
- package/assets/skills/skills-manifest.json +1 -1
- package/dist/bridge/captured-experience-bridge.js +31 -2
- package/dist/cli/bundle.js +5 -5
- package/dist/cli/chunks/adapter-CDQOF5TF.js +2 -0
- package/dist/cli/chunks/{agent-booster-wasm-TOSXWTUQ.js → agent-booster-wasm-WKS3E6KT.js} +2 -2
- package/dist/cli/chunks/{agent-handler-2BU6TYZZ.js → agent-handler-LYCAWE7S.js} +2 -2
- package/dist/cli/chunks/{agent-memory-branch-JFG3BXZY.js → agent-memory-branch-XF7IOMRK.js} +2 -2
- package/dist/cli/chunks/aqe-learning-engine-RZK22CJB.js +2 -0
- package/dist/cli/chunks/{audit-4IGZZKUW.js → audit-D2AY3HFP.js} +2 -2
- package/dist/cli/chunks/base-UGH6TVO4.js +2 -0
- package/dist/cli/chunks/{hnswlib-node-STKRZIU3.js → better-sqlite3-K2VWFDKT.js} +2 -2
- package/dist/cli/chunks/{brain-handler-RIDW27HH.js → brain-handler-NNW4TAO2.js} +4 -4
- package/dist/cli/chunks/{branch-enumerator-GMYHLLWD.js → branch-enumerator-OM5HNZKV.js} +2 -2
- package/dist/cli/chunks/{browser-N76A3I2P.js → browser-Y2FU2NV4.js} +2 -2
- package/dist/cli/chunks/browser-workflow-SGOL3FCJ.js +2 -0
- package/dist/cli/chunks/{chunk-ETEHVG76.js → chunk-2L5GAOST.js} +2 -2
- package/dist/cli/chunks/{chunk-ECX6VXMW.js → chunk-2XC4XVCI.js} +1 -1
- package/dist/cli/chunks/{chunk-L7X3A36M.js → chunk-2Z2IQBIJ.js} +1 -1
- package/dist/cli/chunks/{chunk-UYLHIGNC.js → chunk-33PGBYTC.js} +2 -2
- package/dist/cli/chunks/{chunk-OOFWYDG6.js → chunk-3MHWBCSC.js} +1 -1
- package/dist/cli/chunks/{chunk-FI4HRS2G.js → chunk-3R4CMTWF.js} +2 -2
- package/dist/cli/chunks/{chunk-IP6ZTXNJ.js → chunk-45N22VAB.js} +2 -2
- package/dist/cli/chunks/{chunk-FG5GL26L.js → chunk-4H4PEZUX.js} +2 -2
- package/dist/cli/chunks/{chunk-CNNVL5W4.js → chunk-4VAZSCTZ.js} +2 -2
- package/dist/cli/chunks/{chunk-AWWD3EI3.js → chunk-5A6LBGRU.js} +2 -2
- package/dist/cli/chunks/{chunk-ER6BT4GS.js → chunk-5DSANX6S.js} +2 -2
- package/dist/cli/chunks/chunk-5R5WOLZM.js +5 -0
- package/dist/cli/chunks/{chunk-RNO6CE7I.js → chunk-5WR42V5O.js} +2 -2
- package/dist/cli/chunks/{chunk-UEXOMDRS.js → chunk-5XY6SULI.js} +2 -2
- package/dist/cli/chunks/{chunk-WVODEWH5.js → chunk-62UXGD5J.js} +14 -8
- package/dist/cli/chunks/{chunk-EWNJ6OAT.js → chunk-667I4RTC.js} +1 -1
- package/dist/cli/chunks/{chunk-ND6VCNN5.js → chunk-6EKXBWJD.js} +2 -2
- package/dist/cli/chunks/{chunk-Y57V4FDT.js → chunk-6R6QCGNU.js} +2 -2
- package/dist/cli/chunks/{chunk-VRP4GB4Y.js → chunk-6SYP7QX6.js} +4 -4
- package/dist/cli/chunks/{chunk-BFJLKG3D.js → chunk-6YGFAJ3X.js} +1 -1
- package/dist/cli/chunks/{chunk-UWWX4RK7.js → chunk-6ZG6TBWF.js} +4 -4
- package/dist/cli/chunks/{chunk-QSV4ROZD.js → chunk-7AISRWBS.js} +2 -2
- package/dist/cli/chunks/{chunk-SJCEPKZO.js → chunk-7IDPVSTF.js} +1 -1
- package/dist/cli/chunks/{chunk-HQIWLMDS.js → chunk-7PTW3M67.js} +2 -2
- package/dist/cli/chunks/{chunk-TA3QYAZ6.js → chunk-A4UNK5SY.js} +2 -2
- package/dist/cli/chunks/chunk-A6VI5BZU.js +95 -0
- package/dist/cli/chunks/{chunk-XVTZXCHI.js → chunk-BBPOTFIY.js} +2 -2
- package/dist/cli/chunks/{chunk-OEGFOMXP.js → chunk-BDXEL3GM.js} +2 -2
- package/dist/cli/chunks/{chunk-YETPSL6H.js → chunk-BGRC4676.js} +3 -3
- package/dist/cli/chunks/chunk-BQML7B4W.js +180 -0
- package/dist/cli/chunks/{chunk-DEDFPHJL.js → chunk-BV3SGEV7.js} +1 -1
- package/dist/cli/chunks/{chunk-FGMHVSLV.js → chunk-DBE2LIYG.js} +2 -2
- package/dist/cli/chunks/{chunk-2GBBZLXT.js → chunk-DFY7F4TE.js} +1 -1
- package/dist/cli/chunks/{chunk-LDGNVPBZ.js → chunk-EFEJLZDN.js} +1 -1
- package/dist/cli/chunks/{chunk-ZKZTSYPU.js → chunk-ESNBKAT6.js} +2 -2
- package/dist/cli/chunks/{chunk-5F26LSG2.js → chunk-EVSUZKD5.js} +2 -2
- package/dist/cli/chunks/{chunk-QOJ7EAF5.js → chunk-FFBF5BLQ.js} +1 -1
- package/dist/cli/chunks/{chunk-3AICELMQ.js → chunk-FIONYUVH.js} +2 -2
- package/dist/cli/chunks/{chunk-UROPIIB2.js → chunk-FNQCWEVJ.js} +2 -2
- package/dist/cli/chunks/{chunk-5DJAJPBG.js → chunk-FV2MU6CY.js} +2 -2
- package/dist/cli/chunks/{chunk-QTS2DS42.js → chunk-FWEYOD3S.js} +2 -2
- package/dist/cli/chunks/{chunk-XK6YXCS7.js → chunk-G6AJMFWL.js} +3 -3
- package/dist/cli/chunks/{chunk-R57J3O6I.js → chunk-G6VVOUUF.js} +2 -2
- package/dist/cli/chunks/{chunk-2O5TT3UT.js → chunk-G77CYF7H.js} +3 -3
- package/dist/cli/chunks/{chunk-TULNR2AH.js → chunk-H7YKTJMY.js} +2 -2
- package/dist/cli/chunks/{chunk-GEXVUFK4.js → chunk-HGWQC7PR.js} +2 -2
- package/dist/cli/chunks/{chunk-QLNS6DGB.js → chunk-HHBFI3YA.js} +2 -2
- package/dist/cli/chunks/{chunk-WP6X67YI.js → chunk-HPQZSXED.js} +1 -1
- package/dist/cli/chunks/{chunk-HA7N45KB.js → chunk-HR6NX6DW.js} +2 -2
- package/dist/cli/chunks/{chunk-HB52S6IV.js → chunk-I6Q6BPVH.js} +1 -1
- package/dist/cli/chunks/{chunk-BM73MJLE.js → chunk-IGEZVFOM.js} +2 -2
- package/dist/cli/chunks/{chunk-QBDXUI2H.js → chunk-IGQPGXP7.js} +2 -2
- package/dist/cli/chunks/{chunk-Q26GG6WO.js → chunk-IJQJV7BC.js} +3 -3
- package/dist/cli/chunks/chunk-JDW6GN3A.js +2 -0
- package/dist/cli/chunks/{chunk-GZ3U2QT2.js → chunk-JRYNHFZA.js} +1 -1
- package/dist/cli/chunks/{chunk-MV3NUANS.js → chunk-KHZRNJ3A.js} +1 -1
- package/dist/cli/chunks/chunk-LHDTXTS7.js +2 -0
- package/dist/cli/chunks/{chunk-52TRKIAQ.js → chunk-LI2IOJMM.js} +1 -1
- package/dist/cli/chunks/{heartbeat-scheduler-CNJBAO5C.js → chunk-LR5VW3OS.js} +2 -2
- package/dist/cli/chunks/{chunk-2NFGUFYU.js → chunk-LTSNDM5N.js} +2 -2
- package/dist/cli/chunks/{chunk-3EP2YZSY.js → chunk-M5PYPGBC.js} +2 -2
- package/dist/cli/chunks/{chunk-JCWHX4XV.js → chunk-MEHNT37H.js} +2 -2
- package/dist/cli/chunks/{chunk-QHKK2H4H.js → chunk-MERMCKPG.js} +1 -1
- package/dist/cli/chunks/{chunk-Q53UMLLC.js → chunk-MIHQIAVK.js} +2 -2
- package/dist/cli/chunks/{chunk-VOBNJWZF.js → chunk-MMVSERJQ.js} +2 -2
- package/dist/cli/chunks/{chunk-37I6K7QO.js → chunk-MQQANXFS.js} +2 -2
- package/dist/cli/chunks/{chunk-YKFURJNP.js → chunk-MTOHV22P.js} +1 -1
- package/dist/cli/chunks/{chunk-MOLOWMON.js → chunk-NVZHCAEB.js} +2 -2
- package/dist/cli/chunks/{chunk-YXR5RYRE.js → chunk-NW5FYGDE.js} +2 -2
- package/dist/cli/chunks/{chunk-NMBHF7ZD.js → chunk-NZRJWK5H.js} +61 -121
- package/dist/cli/chunks/chunk-O5NEZCTB.js +2 -0
- package/dist/cli/chunks/{chunk-E7UHOKKL.js → chunk-O5UGJ3OI.js} +2 -2
- package/dist/cli/chunks/{chunk-Q4HJRYQB.js → chunk-OK2TFTXP.js} +2 -2
- package/dist/cli/chunks/{chunk-FGDEM4HU.js → chunk-OKEHGXIS.js} +2 -2
- package/dist/cli/chunks/{chunk-C6TNYLD7.js → chunk-OKRY4LNE.js} +3 -3
- package/dist/cli/chunks/{chunk-3WIU2E2Y.js → chunk-OMOGD2NN.js} +2 -2
- package/dist/cli/chunks/{chunk-DJRWVNHK.js → chunk-ONNTJXU7.js} +2 -2
- package/dist/cli/chunks/chunk-OPOGZAN5.js +14 -0
- package/dist/cli/chunks/{chunk-OTFJCZNY.js → chunk-PG5F2VHA.js} +2 -2
- package/dist/cli/chunks/{chunk-MYF7F3ZP.js → chunk-PHRMWRXA.js} +2 -2
- package/dist/cli/chunks/{chunk-7D2DM23U.js → chunk-PIXUX2NR.js} +2 -2
- package/dist/cli/chunks/{chunk-IWC6GR24.js → chunk-PLGMPG7S.js} +2 -2
- package/dist/cli/chunks/{chunk-T2DIMSQF.js → chunk-PPS6VN24.js} +1 -1
- package/dist/cli/chunks/{chunk-AUNNGKLN.js → chunk-PQAYCK2U.js} +2 -2
- package/dist/cli/chunks/{chunk-FU74OETU.js → chunk-PS6ISBED.js} +2 -2
- package/dist/cli/chunks/{chunk-JNRRDG7O.js → chunk-QPYNQSWD.js} +2 -2
- package/dist/cli/chunks/{chunk-MHPK4ZPK.js → chunk-QRTZ67BC.js} +2 -2
- package/dist/cli/chunks/{chunk-Z3TXQOS7.js → chunk-REW3W3ZW.js} +1 -1
- package/dist/cli/chunks/{chunk-3PZDXE5E.js → chunk-RHXYZ6AZ.js} +127 -127
- package/dist/cli/chunks/{chunk-IEGAEXQX.js → chunk-RZXAXWBD.js} +2 -2
- package/dist/cli/chunks/{chunk-4UZQSPR4.js → chunk-S4M7U6CZ.js} +2 -2
- package/dist/cli/chunks/{chunk-H27XUYWZ.js → chunk-SJETAUZA.js} +1 -1
- package/dist/cli/chunks/{chunk-MZ7M2CDV.js → chunk-SLH7LFVY.js} +2 -2
- package/dist/cli/chunks/{chunk-6EP3GHED.js → chunk-SRJ5N7LD.js} +2 -2
- package/dist/cli/chunks/{chunk-XDYTQPJM.js → chunk-T5ADVYPH.js} +1 -1
- package/dist/cli/chunks/{chunk-TYZGEVP6.js → chunk-THYGFSTA.js} +12 -6
- package/dist/cli/chunks/{chunk-XKH4E2IQ.js → chunk-TX2DBLTL.js} +1 -1
- package/dist/cli/chunks/{chunk-HJDHQBMJ.js → chunk-UJMGNO6L.js} +1 -1
- package/dist/cli/chunks/{chunk-MCXRS2TZ.js → chunk-UUQ3SOKM.js} +1 -1
- package/dist/cli/chunks/{chunk-USN2JKUW.js → chunk-V5RLGPEW.js} +2 -2
- package/dist/cli/chunks/chunk-V6HM2BKJ.js +2 -0
- package/dist/cli/chunks/{chunk-R5IW5ARI.js → chunk-V7I6FTLG.js} +1 -1
- package/dist/cli/chunks/{chunk-2MKSEL6F.js → chunk-V7ZBPSVG.js} +1 -1
- package/dist/cli/chunks/{chunk-IOINZWNA.js → chunk-VJL7DNUU.js} +29 -17
- package/dist/cli/chunks/{chunk-JCDEMPJS.js → chunk-VKCWWR6C.js} +1 -1
- package/dist/cli/chunks/chunk-VKNCMGOJ.js +29 -0
- package/dist/cli/chunks/{chunk-GRPEDIYG.js → chunk-W2VTHUDK.js} +2 -2
- package/dist/cli/chunks/{chunk-SAVITYEX.js → chunk-W3JB3G7C.js} +2 -2
- package/dist/cli/chunks/{chunk-WTXRPYNN.js → chunk-WQ4MT74X.js} +1 -1
- package/dist/cli/chunks/{chunk-GY4EGQO3.js → chunk-WTNM7NA4.js} +1 -1
- package/dist/cli/chunks/chunk-XB3SIYGU.js +62 -0
- package/dist/cli/chunks/{chunk-IHRFR5SV.js → chunk-XCUNQ3FK.js} +2 -2
- package/dist/cli/chunks/{chunk-ITBPDVK5.js → chunk-XHQFVTFD.js} +1 -1
- package/dist/cli/chunks/{chunk-KJZXBZQR.js → chunk-YBUUAFKR.js} +1 -1
- package/dist/cli/chunks/{chunk-KR2PGNXX.js → chunk-YJV6TTCW.js} +2 -2
- package/dist/cli/chunks/{chunk-BQLFOJ5G.js → chunk-YUSGT2CU.js} +1 -1
- package/dist/cli/chunks/{chunk-5E3YCZC5.js → chunk-YUTSN5BK.js} +2 -2
- package/dist/cli/chunks/{chunk-DDMFTEJP.js → chunk-YVMJTBXB.js} +3 -3
- package/dist/cli/chunks/chunk-YVQ4PR4H.js +2 -0
- package/dist/cli/chunks/{chunk-RYMHYTOK.js → chunk-Z2EDNMCQ.js} +3 -3
- package/dist/cli/chunks/{chunk-QNSUPXUU.js → chunk-ZESMMAKZ.js} +2 -2
- package/dist/cli/chunks/chunk-ZIVOT3B7.js +2 -0
- package/dist/cli/chunks/{ci-BYCH3NPL.js → ci-NSF6OHB4.js} +2 -2
- package/dist/cli/chunks/{ci-output-P7P4XH6F.js → ci-output-ZPDJ42U3.js} +2 -2
- package/dist/cli/chunks/{circuit-breaker-VLX556ZI.js → circuit-breaker-Y2RUJDYG.js} +2 -2
- package/dist/cli/chunks/{claude-flow-setup-JPR425PL.js → claude-flow-setup-OH6G6KM2.js} +2 -2
- package/dist/cli/chunks/client-QQGRKAY7.js +2 -0
- package/dist/cli/chunks/{cline-installer-FOY47NSH.js → cline-installer-IHH4F27G.js} +2 -2
- package/dist/cli/chunks/{code-57SN4ZDY.js → code-SFAHWFTX.js} +2 -2
- package/dist/cli/chunks/{code-index-extractor-GT7UFRYU.js → code-index-extractor-GXECMOM2.js} +2 -2
- package/dist/cli/chunks/{codex-installer-JAGWONAV.js → codex-installer-UPMSAFCQ.js} +2 -2
- package/dist/cli/chunks/{completions-7YLHPGSV.js → completions-5TX6LDHY.js} +2 -2
- package/dist/cli/chunks/{complexity-analyzer-TQUF6BEI.js → complexity-analyzer-J2ZR3XZB.js} +2 -2
- package/dist/cli/chunks/{continuedev-installer-TICV6IGT.js → continuedev-installer-GWYZKB5A.js} +2 -2
- package/dist/cli/chunks/{copilot-installer-A6PDMI52.js → copilot-installer-DQZMQWI7.js} +2 -2
- package/dist/cli/chunks/{cost-tracker-NZPNHNV2.js → cost-tracker-V7KIGCLZ.js} +2 -2
- package/dist/cli/chunks/{coverage-HBEB2LKS.js → coverage-3X6LA2GZ.js} +3 -3
- package/dist/cli/chunks/cross-domain-router-3SHAGRVP.js +2 -0
- package/dist/cli/chunks/{cursor-installer-R4FM7MGN.js → cursor-installer-ENDG4JIU.js} +2 -2
- package/dist/cli/chunks/daemon-4XVAO7GT.js +16 -0
- package/dist/cli/chunks/daemon-TC65CQFK.js +10 -0
- package/dist/cli/chunks/{dag-attention-scheduler-2L7VCYZ3.js → dag-attention-scheduler-JOSCDRZC.js} +2 -2
- package/dist/cli/chunks/{detect-EEWB4IYE.js → detect-KWZX3OMK.js} +2 -2
- package/dist/cli/chunks/{dist-node-7RM6BB2X.js → dist-node-R4U2PJ47.js} +2 -2
- package/dist/cli/chunks/{domain-handler-RVGHBDUJ.js → domain-handler-BMYYZO2L.js} +2 -2
- package/dist/cli/chunks/{domain-transfer-M5MERQG5.js → domain-transfer-MSDBBDLC.js} +2 -2
- package/dist/cli/chunks/dream-OCZK42FM.js +2 -0
- package/dist/cli/chunks/{embed-and-insert-pattern-MS55QS73.js → embed-and-insert-pattern-MFINPOLS.js} +2 -2
- package/dist/cli/chunks/{eval-MBTMI7KN.js → eval-OER6UNUY.js} +2 -2
- package/dist/cli/chunks/{experience-capture-middleware-Z5XB7D6A.js → experience-capture-middleware-F5I77ECG.js} +3 -3
- package/dist/cli/chunks/{fast-paths-FSWLHI4I.js → fast-paths-P3KT5DUQ.js} +2 -2
- package/dist/cli/chunks/{feature-flags-QUPNH2J5.js → feature-flags-5EBWQ5WU.js} +2 -2
- package/dist/cli/chunks/{feature-flags-ATYOPR5D.js → feature-flags-DYFZSQLV.js} +2 -2
- package/dist/cli/chunks/{file-discovery-SOJJEQ2E.js → file-discovery-MOBVABSM.js} +2 -2
- package/dist/cli/chunks/{fleet-PWBTDWVG.js → fleet-J3R3NQNC.js} +3 -3
- package/dist/cli/chunks/{gnn-wrapper-2N67VQOQ.js → gnn-wrapper-QD76SULF.js} +2 -2
- package/dist/cli/chunks/{heartbeat-handler-5PSG2UPO.js → heartbeat-handler-AJEWTPZ4.js} +4 -4
- package/dist/cli/chunks/heartbeat-scheduler-EAVZR6TJ.js +2 -0
- package/dist/cli/chunks/hnsw-adapter-BY4XB7FB.js +2 -0
- package/dist/cli/chunks/hnsw-index-657CZRG7.js +2 -0
- package/dist/cli/chunks/{hnsw-legacy-bridge-YIXH5T4U.js → hnsw-legacy-bridge-5VRM5N7K.js} +2 -2
- package/dist/cli/chunks/{better-sqlite3-3U2AVWQ3.js → hnswlib-node-BWUH4OQT.js} +2 -2
- package/dist/cli/chunks/hooks-7PMVKQOE.js +248 -0
- package/dist/cli/chunks/{hybrid-router-RL47S47Z.js → hybrid-router-2K2LW45J.js} +2 -2
- package/dist/cli/chunks/{hypergraph-engine-XW2IHFWW.js → hypergraph-engine-2CQ735JO.js} +2 -2
- package/dist/cli/chunks/{hypergraph-handler-AQXKY4UF.js → hypergraph-handler-AQ53GVIW.js} +3 -3
- package/dist/cli/chunks/impact-analyzer-GI6UVAMT.js +2 -0
- package/dist/cli/chunks/{init-handler-KXYGJQI5.js → init-handler-ZOVJPAWO.js} +6 -6
- package/dist/cli/chunks/init-wizard-HOH577MH.js +2 -0
- package/dist/cli/chunks/kernel-JDYBG5GE.js +2 -0
- package/dist/cli/chunks/{kilocode-installer-VSULDGRO.js → kilocode-installer-GWQCNLKI.js} +2 -2
- package/dist/cli/chunks/{kiro-installer-SH4D2UXW.js → kiro-installer-6KVES4MO.js} +2 -2
- package/dist/cli/chunks/knowledge-graph-RAQOWLG3.js +2 -0
- package/dist/cli/chunks/learning-6XMNWXRT.js +117 -0
- package/dist/cli/chunks/{llm-router-YXXSQX5K.js → llm-router-GS4AZJJC.js} +4 -4
- package/dist/cli/chunks/{load-S52R2SLL.js → load-FEMEQNE6.js} +2 -2
- package/dist/cli/chunks/load-test-3MEJ43U2.js +2 -0
- package/dist/cli/chunks/{mcp-ZWMAJIU7.js → mcp-6V2H7EXU.js} +2 -2
- package/dist/cli/chunks/{memory-4YTWWDK7.js → memory-YLGPOB2H.js} +5 -5
- package/dist/cli/chunks/memory-backend-2A47ZRGO.js +2 -0
- package/dist/cli/chunks/memory-handlers-UBTBC7D2.js +2 -0
- package/dist/cli/chunks/{multi-model-executor-F3VEM2UF.js → multi-model-executor-SL2EKAH2.js} +2 -2
- package/dist/cli/chunks/{opencode-installer-Z2CUJQ6D.js → opencode-installer-ADOJVGNA.js} +2 -2
- package/dist/cli/chunks/{orchestrator-UPXR2XOF.js → orchestrator-O4IWW2VU.js} +37 -18
- package/dist/cli/chunks/{pipeline-6MEMAIXM.js → pipeline-5BD5YQNQ.js} +2 -2
- package/dist/cli/chunks/{platform-H72FLOM7.js → platform-HXSUOOJH.js} +2 -2
- package/dist/cli/chunks/{plugin-GIMQFDVR.js → plugin-HOLH5CUH.js} +2 -2
- package/dist/cli/chunks/{prime-radiant-advanced-wasm-DM5FR5SV.js → prime-radiant-advanced-wasm-PJTL7OLS.js} +2 -2
- package/dist/cli/chunks/protocol-executor-3FR7FBVM.js +2 -0
- package/dist/cli/chunks/{protocol-handler-YW3N333B.js → protocol-handler-K27YGLC7.js} +2 -2
- package/dist/cli/chunks/{prove-IJY524KK.js → prove-MHCLHQQ6.js} +2 -2
- package/dist/cli/chunks/{provider-manager-FNG6YR2V.js → provider-manager-3645PPXX.js} +2 -2
- package/dist/cli/chunks/qe-reasoning-bank-CHNYPYQW.js +2 -0
- package/dist/cli/chunks/{quality-EZLAMSCP.js → quality-NDE6EDOY.js} +2 -2
- package/dist/cli/chunks/queen-coordinator-J6ZRYTBX.js +2 -0
- package/dist/cli/chunks/{real-embeddings-MFRCC6GH.js → real-embeddings-VD3EVV3U.js} +2 -2
- package/dist/cli/chunks/{roocode-installer-H3ZIRGWU.js → roocode-installer-63Y45UUG.js} +2 -2
- package/dist/cli/chunks/router-23HRN2Z6.js +2 -0
- package/dist/cli/chunks/routing-feedback-R6A4B6ZG.js +2 -0
- package/dist/cli/chunks/{routing-handler-T2A7FYHW.js → routing-handler-76XISU2E.js} +2 -2
- package/dist/cli/chunks/{ruvector-commands-TCLWBP2M.js → ruvector-commands-AEKOZZHZ.js} +2 -2
- package/dist/cli/chunks/{rvf-dual-writer-BE3JCPYC.js → rvf-dual-writer-4DMUIZQF.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-adapter-MLUX5YGR.js → rvf-migration-adapter-YUTXFOZ3.js} +2 -2
- package/dist/cli/chunks/{rvf-migration-coordinator-OAQXTASZ.js → rvf-migration-coordinator-XJ5N2W37.js} +2 -2
- package/dist/cli/chunks/rvf-native-adapter-QINEJZM7.js +2 -0
- package/dist/cli/chunks/safe-db-YXMCSKFH.js +2 -0
- package/dist/cli/chunks/schedule-XVFD27P5.js +2 -0
- package/dist/cli/chunks/scheduler-NWH2IDEU.js +2 -0
- package/dist/cli/chunks/{security-SHWJWJ4M.js → security-6YS6GQGO.js} +3 -3
- package/dist/cli/chunks/shared-rvf-adapter-FTZY35WI.js +2 -0
- package/dist/cli/chunks/{shared-rvf-dual-writer-BKSR2FFK.js → shared-rvf-dual-writer-MH2Y65HA.js} +2 -2
- package/dist/cli/chunks/sqlite-persistence-BR6YJF5P.js +2 -0
- package/dist/cli/chunks/{status-handler-QK5KMKYC.js → status-handler-57JQMPY5.js} +2 -2
- package/dist/cli/chunks/{structural-health-3BRNCAYQ.js → structural-health-34D5VWRD.js} +2 -2
- package/dist/cli/chunks/sync-HJD2US5P.js +2 -0
- package/dist/cli/chunks/sync-TTQ6ZB5D.js +17 -0
- package/dist/cli/chunks/{task-handler-VH2CLUIA.js → task-handler-4RF57637.js} +2 -2
- package/dist/cli/chunks/{task-handlers-BUZNV2VX.js → task-handlers-BRSK7HDE.js} +3 -3
- package/dist/cli/chunks/{test-K24JQQZ2.js → test-GMUW2VR3.js} +4 -4
- package/dist/cli/chunks/{test-scheduling-MHXRV5VI.js → test-scheduling-7LF24IFV.js} +3 -3
- package/dist/cli/chunks/{token-bootstrap-3NZDLG52.js → token-bootstrap-VYT4RTHU.js} +2 -2
- package/dist/cli/chunks/{token-usage-C4BGA2O7.js → token-usage-NFNCPQGW.js} +2 -2
- package/dist/cli/chunks/{transformers-ZIIFB2V4.js → transformers-GGD5GIEY.js} +2 -2
- package/dist/cli/chunks/{tree-sitter-wasm-parser-GES2AV7A.js → tree-sitter-wasm-parser-GKYG6NKT.js} +2 -2
- package/dist/cli/chunks/{types-L3MO5VNC.js → types-WJ3ZTRD5.js} +2 -2
- package/dist/cli/chunks/unified-memory-AT3Z4CY7.js +2 -0
- package/dist/cli/chunks/unified-memory-hnsw-6FOIGINN.js +2 -0
- package/dist/cli/chunks/unified-persistence-TCJB7MQS.js +2 -0
- package/dist/cli/chunks/{upgrade-EKJYS5S5.js → upgrade-IMBT4F6K.js} +2 -2
- package/dist/cli/chunks/{validate-WYWWB5PQ.js → validate-76OVF45Z.js} +2 -2
- package/dist/cli/chunks/{validate-swarm-SBSWKJ3H.js → validate-swarm-HH2ZYWXA.js} +2 -2
- package/dist/cli/chunks/{vibium-VEMTLNFV.js → vibium-74WQNDBX.js} +2 -2
- package/dist/cli/chunks/visual-security-IBAUX2K5.js +2 -0
- package/dist/cli/chunks/{web-tree-sitter-STW2WR2J.js → web-tree-sitter-W6RGE4SL.js} +2 -2
- package/dist/cli/chunks/{windsurf-installer-6ZXMJASZ.js → windsurf-installer-7DMSFCA2.js} +2 -2
- package/dist/cli/chunks/{witness-chain-PTULB4MR.js → witness-chain-BLZ4ZKAD.js} +2 -2
- package/dist/cli/chunks/witness-chain-GNNF23XU.js +2 -0
- package/dist/cli/chunks/{workflow-TEBAAHNR.js → workflow-RNSDKRZ4.js} +4 -4
- package/dist/cli/chunks/workflow-orchestrator-S2YONHGM.js +2 -0
- package/dist/cli/chunks/{wrappers-DVMVRKXK.js → wrappers-J7RXMIOY.js} +2 -2
- package/dist/cli/commands/hooks-handlers/editing-hooks.js +9 -3
- package/dist/cli/commands/hooks-handlers/hooks-dream-learning.js +16 -24
- package/dist/cli/commands/hooks-handlers/hooks-shared.d.ts +1 -1
- package/dist/cli/commands/hooks-handlers/hooks-shared.js +8 -1
- package/dist/cli/commands/hooks-handlers/routing-hooks.js +15 -3
- package/dist/cli/commands/hooks-handlers/task-hooks.js +37 -46
- package/dist/cli/commands/learning.js +194 -0
- package/dist/domains/learning-optimization/services/learning-coordinator.js +37 -17
- package/dist/init/phases/10-workers.js +20 -1
- package/dist/kernel/hybrid-backend.d.ts +17 -7
- package/dist/kernel/hybrid-backend.js +24 -10
- package/dist/kernel/interfaces.d.ts +33 -6
- package/dist/kernel/kernel.d.ts +1 -0
- package/dist/kernel/kernel.js +57 -0
- package/dist/kernel/memory-backend.d.ts +5 -5
- package/dist/kernel/memory-backend.js +14 -7
- package/dist/kernel/unified-memory-schemas.d.ts +1 -1
- package/dist/kernel/unified-memory-schemas.js +7 -1
- package/dist/learning/agent-routing.d.ts +134 -1
- package/dist/learning/agent-routing.js +185 -2
- package/dist/learning/dream/dream-insights-pruner.d.ts +49 -0
- package/dist/learning/dream/dream-insights-pruner.js +53 -0
- package/dist/learning/dream/dream-scheduler.js +17 -0
- package/dist/learning/loop-health.d.ts +84 -0
- package/dist/learning/loop-health.js +91 -0
- package/dist/learning/pattern-usage-recorder.d.ts +58 -0
- package/dist/learning/pattern-usage-recorder.js +72 -0
- package/dist/learning/qe-reasoning-bank-types.d.ts +11 -0
- package/dist/learning/qe-reasoning-bank.d.ts +11 -0
- package/dist/learning/qe-reasoning-bank.js +86 -3
- package/dist/learning/routing-topology-gate.d.ts +40 -0
- package/dist/learning/routing-topology-gate.js +55 -0
- package/dist/learning/sqlite-persistence.d.ts +6 -1
- package/dist/learning/sqlite-persistence.js +14 -20
- package/dist/mcp/bundle.js +3837 -3811
- package/dist/mcp/handlers/core-handlers.js +21 -0
- package/dist/routing/routing-feedback.js +7 -3
- package/dist/routing/routing-outcomes-migration.d.ts +31 -0
- package/dist/routing/routing-outcomes-migration.js +60 -0
- package/dist/workers/interfaces.d.ts +26 -0
- package/dist/workers/worker-manager.d.ts +15 -12
- package/dist/workers/worker-manager.js +11 -0
- package/dist/workers/workers/learning-consolidation.d.ts +28 -0
- package/dist/workers/workers/learning-consolidation.js +302 -71
- package/package.json +3 -1
- package/dist/cli/chunks/adapter-HV42JOZD.js +0 -2
- package/dist/cli/chunks/aqe-learning-engine-GL22PE2V.js +0 -2
- package/dist/cli/chunks/base-4KQ2FGUX.js +0 -2
- package/dist/cli/chunks/browser-workflow-CTE7BDM4.js +0 -2
- package/dist/cli/chunks/chunk-3NGNSKL3.js +0 -14
- package/dist/cli/chunks/chunk-6HSFZ6SL.js +0 -180
- package/dist/cli/chunks/chunk-7Z3GBQNV.js +0 -2
- package/dist/cli/chunks/chunk-AQJ6XS34.js +0 -2
- package/dist/cli/chunks/chunk-H2IMXQCJ.js +0 -2
- package/dist/cli/chunks/chunk-SPCANEJY.js +0 -95
- package/dist/cli/chunks/client-FRVNMXQO.js +0 -2
- package/dist/cli/chunks/cross-domain-router-BVCPAWG2.js +0 -2
- package/dist/cli/chunks/daemon-PHIZPZIE.js +0 -19
- package/dist/cli/chunks/dream-77ODIFIF.js +0 -2
- package/dist/cli/chunks/hnsw-adapter-CQGQS3V7.js +0 -2
- package/dist/cli/chunks/hnsw-index-2ACF6FOJ.js +0 -2
- package/dist/cli/chunks/hooks-YROFO6PE.js +0 -259
- package/dist/cli/chunks/impact-analyzer-LWEGK23B.js +0 -2
- package/dist/cli/chunks/init-wizard-7BS3QMWR.js +0 -2
- package/dist/cli/chunks/kernel-TX67WXSI.js +0 -2
- package/dist/cli/chunks/knowledge-graph-TDSP2UE2.js +0 -2
- package/dist/cli/chunks/learning-RRWV3SEL.js +0 -107
- package/dist/cli/chunks/load-test-GEBBBUMV.js +0 -2
- package/dist/cli/chunks/memory-backend-WQS2MLW2.js +0 -2
- package/dist/cli/chunks/memory-handlers-RTY5MBA5.js +0 -2
- package/dist/cli/chunks/protocol-executor-DT7XHMLL.js +0 -2
- package/dist/cli/chunks/qe-reasoning-bank-LDNETZVA.js +0 -2
- package/dist/cli/chunks/queen-coordinator-AF7HCQSM.js +0 -2
- package/dist/cli/chunks/router-OWQ5EI72.js +0 -2
- package/dist/cli/chunks/routing-feedback-B43DEQMK.js +0 -2
- package/dist/cli/chunks/rvf-native-adapter-XBJDXHNI.js +0 -2
- package/dist/cli/chunks/safe-db-RT3LEDUG.js +0 -2
- package/dist/cli/chunks/schedule-EHUDCKS2.js +0 -2
- package/dist/cli/chunks/scheduler-GEGZ4J3C.js +0 -2
- package/dist/cli/chunks/shared-rvf-adapter-LNBUNRAM.js +0 -2
- package/dist/cli/chunks/sqlite-persistence-3DGRJH3K.js +0 -2
- package/dist/cli/chunks/sync-5CDYOT3H.js +0 -23
- package/dist/cli/chunks/unified-memory-ZSBX4LYU.js +0 -2
- package/dist/cli/chunks/unified-memory-hnsw-Y6EKAMRP.js +0 -2
- package/dist/cli/chunks/unified-persistence-2PDVU2U5.js +0 -2
- package/dist/cli/chunks/visual-security-RHMFLKVQ.js +0 -2
- package/dist/cli/chunks/witness-chain-QO237QOF.js +0 -2
- package/dist/cli/chunks/workflow-orchestrator-RHM5MIGE.js +0 -2
|
@@ -135,6 +135,27 @@ export async function handleFleetInit(params) {
|
|
|
135
135
|
domainPlugins.set(domain, plugin);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
+
// Issue #491 Bug 1 + Bug 4b: the MCP-hosted daemon constructs its
|
|
139
|
+
// WorkerManager *before* the kernel exists (in src/mcp/entry.ts), so it
|
|
140
|
+
// starts with StubWorkerDomainAccess (getDomainAPI returns undefined for
|
|
141
|
+
// every domain) and a private InMemoryWorkerMemory the dashboard never
|
|
142
|
+
// reads from. Wire both now that kernel + plugins are ready. Without
|
|
143
|
+
// this, every domain-dependent worker tick fails with "<domain> not
|
|
144
|
+
// available" and `aqe learning loop-health` shows learningWorker as
|
|
145
|
+
// never-ran even when it executes every cycle.
|
|
146
|
+
try {
|
|
147
|
+
const { getDaemon } = await import('../../workers/daemon.js');
|
|
148
|
+
const workerManager = getDaemon().getWorkerManager();
|
|
149
|
+
workerManager.setKernel(state.kernel);
|
|
150
|
+
workerManager.setMemory(state.kernel.memory);
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
// Daemon wiring is best-effort: a workless smoke install (e.g. some
|
|
154
|
+
// unit-test harnesses) may not even bundle the daemon module. Surface
|
|
155
|
+
// as a warning but don't fail fleet_init — the user still gets a
|
|
156
|
+
// working kernel + queen for MCP tool calls.
|
|
157
|
+
console.warn(`[fleet_init] Daemon worker manager wiring skipped: ${toErrorMessage(err)}`);
|
|
158
|
+
}
|
|
138
159
|
// Create Queen Coordinator with domain plugins for direct task execution
|
|
139
160
|
state.queen = createQueenCoordinator(state.kernel, state.router, protocolExecutor, undefined, // workflowExecutor
|
|
140
161
|
domainPlugins // INTEGRATION FIX: Pass domain plugins
|
|
@@ -12,6 +12,7 @@ import { safeJsonParse } from '../shared/safe-json.js';
|
|
|
12
12
|
import { toErrorMessage } from '../shared/error-utils.js';
|
|
13
13
|
import { EMACalibrator } from './calibration/index.js';
|
|
14
14
|
import { AutoEscalationTracker } from './escalation/index.js';
|
|
15
|
+
import { ensureRoutingOutcomesAdr095Columns } from './routing-outcomes-migration.js';
|
|
15
16
|
import { EconomicRoutingModel, } from './economic-routing.js';
|
|
16
17
|
import { getGlobalCostTracker } from '../shared/llm/cost-tracker.js';
|
|
17
18
|
// ============================================================================
|
|
@@ -144,9 +145,9 @@ export class RoutingFeedbackCollector {
|
|
|
144
145
|
return;
|
|
145
146
|
try {
|
|
146
147
|
const database = this.db.getDatabase();
|
|
147
|
-
// Ensure schema columns exist for databases created before ADR-092
|
|
148
|
-
// Runs once per process via the flag; new databases have
|
|
149
|
-
// unified-memory-schemas.ts CREATE TABLE.
|
|
148
|
+
// Ensure schema columns exist for databases created before ADR-092
|
|
149
|
+
// and ADR-095. Runs once per process via the flag; new databases have
|
|
150
|
+
// columns from unified-memory-schemas.ts CREATE TABLE.
|
|
150
151
|
if (!RoutingFeedbackCollector.schemaMigrated) {
|
|
151
152
|
for (const col of [
|
|
152
153
|
'ALTER TABLE routing_outcomes ADD COLUMN model_tier TEXT',
|
|
@@ -157,6 +158,9 @@ export class RoutingFeedbackCollector {
|
|
|
157
158
|
}
|
|
158
159
|
catch { /* column already exists */ }
|
|
159
160
|
}
|
|
161
|
+
// ADR-095: routing exploration columns via shared helper so all
|
|
162
|
+
// writer paths agree on the column set.
|
|
163
|
+
ensureRoutingOutcomesAdr095Columns(database);
|
|
160
164
|
RoutingFeedbackCollector.schemaMigrated = true;
|
|
161
165
|
}
|
|
162
166
|
const modelTier = this.inferTier(outcome.usedAgent);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routing Outcomes Schema Migration (ADR-095)
|
|
3
|
+
*
|
|
4
|
+
* Idempotently adds the ADR-095 columns (`exploration`, `criticality`,
|
|
5
|
+
* `q_weight`) to `routing_outcomes` for databases created before this
|
|
6
|
+
* release. New databases get the columns from `unified-memory-schemas.ts`
|
|
7
|
+
* at CREATE TABLE time; this helper handles upgrades.
|
|
8
|
+
*
|
|
9
|
+
* Pattern matches the existing ADR-092 migration in
|
|
10
|
+
* `src/routing/routing-feedback.ts:199-207` — try the ALTER, swallow the
|
|
11
|
+
* "duplicate column name" error if the column already exists.
|
|
12
|
+
*
|
|
13
|
+
* Callers run this before INSERTing rows that reference the new columns.
|
|
14
|
+
* A process-local flag prevents repeated migration attempts.
|
|
15
|
+
*/
|
|
16
|
+
import type { Database as DatabaseType } from 'better-sqlite3';
|
|
17
|
+
/**
|
|
18
|
+
* Add the ADR-095 columns to routing_outcomes if they don't already exist.
|
|
19
|
+
* Safe to call multiple times — second and later calls are no-ops.
|
|
20
|
+
*
|
|
21
|
+
* Failure to migrate (e.g. table doesn't exist yet, permission error) is
|
|
22
|
+
* NOT fatal — callers that depend on the new columns should fall back to
|
|
23
|
+
* not writing them. The schema is forward-compatible: inserts that omit
|
|
24
|
+
* the new columns get the defaults.
|
|
25
|
+
*/
|
|
26
|
+
export declare function ensureRoutingOutcomesAdr095Columns(db: DatabaseType): void;
|
|
27
|
+
/**
|
|
28
|
+
* Reset the process-local migration flag. Test-only.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resetRoutingOutcomesMigrationState(): void;
|
|
31
|
+
//# sourceMappingURL=routing-outcomes-migration.d.ts.map
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routing Outcomes Schema Migration (ADR-095)
|
|
3
|
+
*
|
|
4
|
+
* Idempotently adds the ADR-095 columns (`exploration`, `criticality`,
|
|
5
|
+
* `q_weight`) to `routing_outcomes` for databases created before this
|
|
6
|
+
* release. New databases get the columns from `unified-memory-schemas.ts`
|
|
7
|
+
* at CREATE TABLE time; this helper handles upgrades.
|
|
8
|
+
*
|
|
9
|
+
* Pattern matches the existing ADR-092 migration in
|
|
10
|
+
* `src/routing/routing-feedback.ts:199-207` — try the ALTER, swallow the
|
|
11
|
+
* "duplicate column name" error if the column already exists.
|
|
12
|
+
*
|
|
13
|
+
* Callers run this before INSERTing rows that reference the new columns.
|
|
14
|
+
* A process-local flag prevents repeated migration attempts.
|
|
15
|
+
*/
|
|
16
|
+
let migrated = false;
|
|
17
|
+
/**
|
|
18
|
+
* Add the ADR-095 columns to routing_outcomes if they don't already exist.
|
|
19
|
+
* Safe to call multiple times — second and later calls are no-ops.
|
|
20
|
+
*
|
|
21
|
+
* Failure to migrate (e.g. table doesn't exist yet, permission error) is
|
|
22
|
+
* NOT fatal — callers that depend on the new columns should fall back to
|
|
23
|
+
* not writing them. The schema is forward-compatible: inserts that omit
|
|
24
|
+
* the new columns get the defaults.
|
|
25
|
+
*/
|
|
26
|
+
export function ensureRoutingOutcomesAdr095Columns(db) {
|
|
27
|
+
if (migrated)
|
|
28
|
+
return;
|
|
29
|
+
for (const stmt of [
|
|
30
|
+
'ALTER TABLE routing_outcomes ADD COLUMN exploration INTEGER NOT NULL DEFAULT 0',
|
|
31
|
+
'ALTER TABLE routing_outcomes ADD COLUMN criticality REAL',
|
|
32
|
+
'ALTER TABLE routing_outcomes ADD COLUMN q_weight REAL',
|
|
33
|
+
]) {
|
|
34
|
+
try {
|
|
35
|
+
db.prepare(stmt).run();
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Column already exists, or table doesn't exist yet. Both are
|
|
39
|
+
// acceptable — ALTER is additive, and a missing table means the
|
|
40
|
+
// unified schema hasn't been applied yet (caller's INSERT will fail
|
|
41
|
+
// separately with a clearer error).
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Index on exploration for the bucket-comparison queries used by
|
|
45
|
+
// `aqe learning loop-health`. Idempotent via IF NOT EXISTS.
|
|
46
|
+
try {
|
|
47
|
+
db.prepare('CREATE INDEX IF NOT EXISTS idx_routing_outcomes_exploration ON routing_outcomes(exploration)').run();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Table missing; index attempt is best-effort.
|
|
51
|
+
}
|
|
52
|
+
migrated = true;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Reset the process-local migration flag. Test-only.
|
|
56
|
+
*/
|
|
57
|
+
export function resetRoutingOutcomesMigrationState() {
|
|
58
|
+
migrated = false;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=routing-outcomes-migration.js.map
|
|
@@ -170,6 +170,20 @@ export interface WorkerDomainAccess {
|
|
|
170
170
|
errors: string[];
|
|
171
171
|
};
|
|
172
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Structural shape of the kernel that worker-side code needs. Declared here
|
|
175
|
+
* (rather than imported from src/kernel) to avoid a circular dependency between
|
|
176
|
+
* the kernel and the workers package.
|
|
177
|
+
*/
|
|
178
|
+
export interface WorkerKernelReference {
|
|
179
|
+
getDomainAPI<T>(domain: DomainName): T | undefined;
|
|
180
|
+
getHealth(): {
|
|
181
|
+
domains: Record<string, {
|
|
182
|
+
status: string;
|
|
183
|
+
errors?: string[];
|
|
184
|
+
}>;
|
|
185
|
+
};
|
|
186
|
+
}
|
|
173
187
|
export interface WorkerHealth {
|
|
174
188
|
/** Worker status */
|
|
175
189
|
readonly status: WorkerStatus;
|
|
@@ -223,6 +237,18 @@ export interface WorkerManager {
|
|
|
223
237
|
* Get manager health status
|
|
224
238
|
*/
|
|
225
239
|
getHealth(): WorkerManagerHealth;
|
|
240
|
+
/**
|
|
241
|
+
* Bind the kernel late, after construction. Without this, workers fall
|
|
242
|
+
* through to a stub domain-access that returns undefined for every domain,
|
|
243
|
+
* causing every domain-dependent worker tick to fail (issue #491 Bug 1).
|
|
244
|
+
*/
|
|
245
|
+
setKernel(kernel: WorkerKernelReference): void;
|
|
246
|
+
/**
|
|
247
|
+
* Bind the worker manager's memory to a shared instance (e.g. the kernel's
|
|
248
|
+
* HybridMemoryBackend) so workers and the dashboards that read worker output
|
|
249
|
+
* resolve to the same kv store (issue #491 Bug 4b).
|
|
250
|
+
*/
|
|
251
|
+
setMemory(memory: WorkerMemory): void;
|
|
226
252
|
}
|
|
227
253
|
export interface WorkerManagerHealth {
|
|
228
254
|
/** Total registered workers */
|
|
@@ -5,20 +5,14 @@
|
|
|
5
5
|
* Manages the lifecycle and scheduling of all background workers.
|
|
6
6
|
* Provides centralized control for starting, stopping, and monitoring workers.
|
|
7
7
|
*/
|
|
8
|
-
import { Worker, WorkerManager as IWorkerManager, WorkerManagerHealth, WorkerResult, WorkerEventBus, WorkerMemory, WorkerDomainAccess, WorkerEvent } from './interfaces';
|
|
9
|
-
import { DomainName } from '../shared/types';
|
|
8
|
+
import { Worker, WorkerManager as IWorkerManager, WorkerManagerHealth, WorkerResult, WorkerEventBus, WorkerMemory, WorkerDomainAccess, WorkerEvent, WorkerKernelReference } from './interfaces';
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
10
|
+
* Local alias for the shared worker-kernel structural shape. The public type
|
|
11
|
+
* lives in interfaces.ts so the WorkerManager interface can refer to it
|
|
12
|
+
* without importing this file (which would re-introduce the circular
|
|
13
|
+
* dependency the original local declaration was avoiding).
|
|
12
14
|
*/
|
|
13
|
-
|
|
14
|
-
getDomainAPI<T>(domain: DomainName): T | undefined;
|
|
15
|
-
getHealth(): {
|
|
16
|
-
domains: Record<string, {
|
|
17
|
-
status: string;
|
|
18
|
-
errors?: string[];
|
|
19
|
-
}>;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
15
|
+
type KernelReference = WorkerKernelReference;
|
|
22
16
|
/**
|
|
23
17
|
* Worker Manager implementation
|
|
24
18
|
*/
|
|
@@ -42,6 +36,15 @@ export declare class WorkerManagerImpl implements IWorkerManager {
|
|
|
42
36
|
* Allows late binding of kernel after construction
|
|
43
37
|
*/
|
|
44
38
|
setKernel(kernel: KernelReference): void;
|
|
39
|
+
/**
|
|
40
|
+
* Replace the worker manager's memory with a shared instance — typically the
|
|
41
|
+
* kernel's HybridMemoryBackend so dashboards reading worker-emitted keys
|
|
42
|
+
* (e.g. `learning:loop-health` in the `qe-kernel` namespace) actually see
|
|
43
|
+
* what workers write. Without this, workers write to the in-process
|
|
44
|
+
* InMemoryWorkerMemory and the dashboard reads a different kv (issue #491
|
|
45
|
+
* Bug 4b).
|
|
46
|
+
*/
|
|
47
|
+
setMemory(memory: WorkerMemory): void;
|
|
45
48
|
/**
|
|
46
49
|
* Register a worker
|
|
47
50
|
*/
|
|
@@ -181,6 +181,17 @@ export class WorkerManagerImpl {
|
|
|
181
181
|
this.domainAccess = new KernelWorkerDomainAccess(() => this.kernelRef);
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Replace the worker manager's memory with a shared instance — typically the
|
|
186
|
+
* kernel's HybridMemoryBackend so dashboards reading worker-emitted keys
|
|
187
|
+
* (e.g. `learning:loop-health` in the `qe-kernel` namespace) actually see
|
|
188
|
+
* what workers write. Without this, workers write to the in-process
|
|
189
|
+
* InMemoryWorkerMemory and the dashboard reads a different kv (issue #491
|
|
190
|
+
* Bug 4b).
|
|
191
|
+
*/
|
|
192
|
+
setMemory(memory) {
|
|
193
|
+
this.memory = memory;
|
|
194
|
+
}
|
|
184
195
|
/**
|
|
185
196
|
* Register a worker
|
|
186
197
|
*/
|
|
@@ -30,6 +30,34 @@ export declare class LearningConsolidationWorker extends BaseWorker {
|
|
|
30
30
|
* Task Execution -> Experience Capture -> Pattern Extraction -> Pattern Promotion -> Pattern Utilization -> Improved Routing
|
|
31
31
|
*/
|
|
32
32
|
private runContinuousLearningLoop;
|
|
33
|
+
/**
|
|
34
|
+
* #486 Gap A: mine experiences into `learning:pattern:*` kv per domain.
|
|
35
|
+
*
|
|
36
|
+
* The producer side of the learning-optimization domain pipeline:
|
|
37
|
+
*
|
|
38
|
+
* captured_experiences (SQLite)
|
|
39
|
+
* → bridge drain → learning.ExperienceCaptured event
|
|
40
|
+
* → handleExperienceCaptured → recordExperience
|
|
41
|
+
* → learning:experience:* kv (✓ working post-v3.9.29)
|
|
42
|
+
* → mineExperiences (THIS STEP)
|
|
43
|
+
* → extractPatternsFromExperiences → learnPattern → storePattern
|
|
44
|
+
* → learning:pattern:* kv
|
|
45
|
+
*
|
|
46
|
+
* Without this step the chain ends at the experience kv, so `getPatternStats`
|
|
47
|
+
* reports zero patterns and the `LearningConsolidationWorker.collectPatterns`
|
|
48
|
+
* step a few lines above throws "No learning patterns to consolidate yet".
|
|
49
|
+
*
|
|
50
|
+
* Per-domain cursor avoids re-processing the same experiences (which would
|
|
51
|
+
* duplicate-write since `learnPattern` uses uuidv4 for pattern IDs). Cursor
|
|
52
|
+
* is stored in WorkerMemory under `learning:consolidation-cursor:{domain}`
|
|
53
|
+
* as an ISO timestamp. On first run, the cursor defaults to `now - 1 day`
|
|
54
|
+
* to match the lookback used elsewhere by `runLearningCycle`.
|
|
55
|
+
*
|
|
56
|
+
* Failures are isolated per domain — one bad domain doesn't block others.
|
|
57
|
+
* On failure or empty mining the cursor stays put so the next tick retries
|
|
58
|
+
* the same window with new experiences.
|
|
59
|
+
*/
|
|
60
|
+
private mineExperiencesPerDomain;
|
|
33
61
|
/**
|
|
34
62
|
* Create patterns from pattern candidates
|
|
35
63
|
*/
|