@remnic/core 10.0.69 → 10.0.71
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/dist/access-admin-ops-surface.js +82 -79
- package/dist/access-authorization-probe.js +83 -80
- package/dist/access-boundary.js +82 -79
- package/dist/access-cli.js +196 -193
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +82 -79
- package/dist/access-http-briefing.js +83 -80
- package/dist/access-http-query.js +84 -81
- package/dist/access-http.js +106 -103
- package/dist/access-identity-continuity-surface.js +82 -79
- package/dist/access-lcm-surface.js +82 -79
- package/dist/access-mcp.js +95 -92
- package/dist/access-namespace-preflight.js +82 -79
- package/dist/access-observe-lcm-archive.d.ts +5 -0
- package/dist/access-observe-lcm-archive.d.ts.map +1 -0
- package/dist/access-observe-lcm-archive.js +9 -0
- package/dist/access-observe-objective-state.d.ts +8 -0
- package/dist/access-observe-objective-state.d.ts.map +1 -0
- package/dist/access-observe-objective-state.js +17 -0
- package/dist/access-observe-stage-timing.d.ts +11 -0
- package/dist/access-observe-stage-timing.d.ts.map +1 -0
- package/dist/access-observe-stage-timing.js +9 -0
- package/dist/access-observe-stage-timing.js.map +1 -0
- package/dist/access-observe-write-category.js +13 -13
- package/dist/access-observe-write-surface.d.ts.map +1 -1
- package/dist/access-observe-write-surface.js +82 -79
- package/dist/access-offline-manifest.js +8 -8
- package/dist/access-operations-batch.js +85 -82
- package/dist/access-operations.js +92 -89
- package/dist/access-recall-concurrency.js +82 -79
- package/dist/access-recall-response.js +82 -79
- package/dist/access-recall-surface.js +82 -79
- package/dist/access-schema.js +12 -12
- package/dist/access-service.d.ts +1 -0
- package/dist/access-service.d.ts.map +1 -1
- package/dist/access-service.js +82 -79
- package/dist/access-surface-catalog.js +84 -81
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-recall.js +26 -26
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/briefing.js +17 -17
- package/dist/buffer-turn-helpers.d.ts +10 -1
- package/dist/buffer-turn-helpers.d.ts.map +1 -1
- package/dist/buffer-turn-helpers.js +3 -1
- package/dist/buffer.d.ts +4 -0
- package/dist/buffer.d.ts.map +1 -1
- package/dist/buffer.js +9 -9
- package/dist/calibration.js +4 -4
- package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
- package/dist/capsule-crypto-7FJQINUR.js.map +1 -0
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.js +22 -22
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.js +3 -3
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-6WKWL53V.js → chunk-23BA3USG.js} +128 -122
- package/dist/chunk-23BA3USG.js.map +1 -0
- package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
- package/dist/{chunk-CI3MAAIY.js → chunk-2R44BBPK.js} +2 -2
- package/dist/{chunk-QDZWQBLU.js → chunk-2R7OCBRR.js} +2 -2
- package/dist/{chunk-B3MWELZ3.js → chunk-2WPWEVAH.js} +2 -2
- package/dist/{chunk-PLCYKAWH.js → chunk-3ICAWZUU.js} +4 -4
- package/dist/{chunk-R4ZHF4K2.js → chunk-43FLJLT2.js} +4 -4
- package/dist/{chunk-PMDOGXA2.js → chunk-4PMFSYH7.js} +2 -2
- package/dist/{chunk-HXFIILGF.js → chunk-4RASUAN3.js} +4 -4
- package/dist/{chunk-EI6M5NVK.js → chunk-5JBVPJCT.js} +2 -2
- package/dist/{chunk-4NV7O76Q.js → chunk-5ORJHH43.js} +2 -2
- package/dist/{chunk-74AY3S7U.js → chunk-5RW247F5.js} +10 -10
- package/dist/{chunk-4XINO77L.js → chunk-66JOLMWS.js} +2 -2
- package/dist/{chunk-AYJQ644F.js → chunk-6KBCUIZP.js} +2 -2
- package/dist/{chunk-GKL6QYZO.js → chunk-6L63IN3M.js} +1 -1
- package/dist/{chunk-OPFVXM2D.js → chunk-7P5VBRBS.js} +2 -2
- package/dist/{chunk-4SOWMA55.js → chunk-7WFY2L5J.js} +3 -3
- package/dist/{chunk-GJ4HU6LK.js → chunk-AGRMXXVA.js} +2 -2
- package/dist/{chunk-KOLJJN5G.js → chunk-AQNHEDXP.js} +11 -4
- package/dist/chunk-AQNHEDXP.js.map +1 -0
- package/dist/{chunk-IVUVQPTQ.js → chunk-AZNE2H6D.js} +2 -2
- package/dist/{chunk-HPB5TF55.js → chunk-BCBY5GYZ.js} +3 -3
- package/dist/{chunk-M4IEZGCK.js → chunk-BFBS7OFQ.js} +7 -7
- package/dist/{chunk-4PG5R6BJ.js → chunk-BNU5TQLR.js} +2 -2
- package/dist/{chunk-TVE7W67N.js → chunk-BTU77RB5.js} +2 -2
- package/dist/{chunk-H6VJSITJ.js → chunk-CIL4GHMD.js} +3 -3
- package/dist/{chunk-KZZ5EZ7O.js → chunk-DC3DWF2M.js} +2 -2
- package/dist/{chunk-R2BIVU2Z.js → chunk-DE4U5PTV.js} +50 -46
- package/dist/chunk-DE4U5PTV.js.map +1 -0
- package/dist/{chunk-DDBB55L2.js → chunk-DSSTOV5M.js} +534 -361
- package/dist/chunk-DSSTOV5M.js.map +1 -0
- package/dist/{chunk-4MPAKYZU.js → chunk-EGKDONTC.js} +12 -6
- package/dist/chunk-EGKDONTC.js.map +1 -0
- package/dist/{chunk-AUFPPBC3.js → chunk-ENPJX3BB.js} +3 -3
- package/dist/{chunk-CTH2CQCB.js → chunk-EQ6EMJRG.js} +2 -2
- package/dist/{chunk-63A2BU2B.js → chunk-F4ZHKDBW.js} +5 -5
- package/dist/{chunk-3LBDEGQA.js → chunk-FDUCIUQ5.js} +2 -2
- package/dist/{chunk-OCK4D5PC.js → chunk-FGGLVCHI.js} +2 -2
- package/dist/{chunk-XVZA6VXC.js → chunk-FZVROZKC.js} +4 -4
- package/dist/{chunk-3RHU5MD7.js → chunk-GXAZ4Q2S.js} +2 -2
- package/dist/{chunk-UVVFPCPX.js → chunk-H2X32F2K.js} +2 -2
- package/dist/{chunk-645WOU5I.js → chunk-H7BZBSP6.js} +4 -4
- package/dist/{chunk-W7K5BP3M.js → chunk-HQPFACXO.js} +2 -2
- package/dist/{chunk-TECK5IVY.js → chunk-HZNURRDS.js} +2 -2
- package/dist/{chunk-U2CAGMUD.js → chunk-ICBUTKLL.js} +2 -2
- package/dist/{chunk-B4DXREWC.js → chunk-IQXQ3KWR.js} +2 -2
- package/dist/{chunk-AL3TCNSJ.js → chunk-J6GZ2254.js} +4 -4
- package/dist/{chunk-5MGKGEL7.js → chunk-J72ZY7NU.js} +2 -2
- package/dist/{chunk-OH55F76C.js → chunk-JEX2JL3U.js} +2 -2
- package/dist/{chunk-Y3XPSGNF.js → chunk-JGLZ46JS.js} +2 -2
- package/dist/{chunk-EXQJMFRF.js → chunk-JY4LXMZR.js} +2 -2
- package/dist/{chunk-6P7U3HWG.js → chunk-K36RMINQ.js} +3 -3
- package/dist/{chunk-BUKK5SWA.js → chunk-KQAFEZQX.js} +2 -2
- package/dist/{chunk-LN4X2NDA.js → chunk-KY3KJUNN.js} +10 -10
- package/dist/chunk-L3E7MLMK.js +20 -0
- package/dist/chunk-L3E7MLMK.js.map +1 -0
- package/dist/{chunk-H5DIRCZP.js → chunk-LHMCZ6VW.js} +18 -18
- package/dist/{chunk-GGD2YDS6.js → chunk-LN7CWLAU.js} +2 -2
- package/dist/{chunk-GHHQLSSY.js → chunk-LYOCAUI6.js} +3 -3
- package/dist/{chunk-VA3GNAWQ.js → chunk-LZIOY7ZU.js} +4 -5
- package/dist/chunk-LZIOY7ZU.js.map +1 -0
- package/dist/{chunk-W26D2USW.js → chunk-MUH7RR6T.js} +6 -6
- package/dist/{chunk-IAGVM7EY.js → chunk-N2Y6COEM.js} +2 -2
- package/dist/{chunk-64JLBFCQ.js → chunk-N7NAGECH.js} +2 -2
- package/dist/{chunk-5Y6VA6X2.js → chunk-OGQGDOYK.js} +2 -2
- package/dist/{chunk-U7MIMS2Y.js → chunk-OUBEJWVI.js} +17 -1
- package/dist/chunk-OUBEJWVI.js.map +1 -0
- package/dist/{chunk-JLMOH5JA.js → chunk-OWZXDBV4.js} +2 -2
- package/dist/{chunk-ZORS5BG5.js → chunk-PJAMFIDE.js} +10 -10
- package/dist/chunk-QCFZDYYG.js +34 -0
- package/dist/chunk-QCFZDYYG.js.map +1 -0
- package/dist/{chunk-SXTVZ6JL.js → chunk-QIOQI7QZ.js} +2 -2
- package/dist/{chunk-MMCO4SRG.js → chunk-QNN4FYBD.js} +19 -11
- package/dist/chunk-QNN4FYBD.js.map +1 -0
- package/dist/{chunk-75DCOS6I.js → chunk-QUPTDKSX.js} +67 -67
- package/dist/{chunk-HH73M65H.js → chunk-QVZZE6VH.js} +3 -3
- package/dist/{chunk-XWE3EOWX.js → chunk-RZED7FAU.js} +2 -2
- package/dist/{chunk-IZBIDPMY.js → chunk-S37O4S6E.js} +2 -2
- package/dist/{chunk-NHWDTOBN.js → chunk-S73ZVU37.js} +21 -21
- package/dist/{chunk-YSATDEBY.js → chunk-SBRUTD5O.js} +5 -5
- package/dist/{chunk-WVP2I6C5.js → chunk-SDL22RRW.js} +50 -11
- package/dist/chunk-SDL22RRW.js.map +1 -0
- package/dist/{chunk-PRKNAIGZ.js → chunk-T6T2RMWW.js} +5 -5
- package/dist/{chunk-CIEEYVUB.js → chunk-TPX7XXY4.js} +2 -2
- package/dist/{chunk-L334PSLW.js → chunk-U2A56LLF.js} +8 -8
- package/dist/{chunk-P4TV3TQ2.js → chunk-U6IL4724.js} +5 -5
- package/dist/{chunk-5UM4H64E.js → chunk-UAOJVQXC.js} +2 -2
- package/dist/{chunk-MOIJWWNA.js → chunk-UE5JYPU6.js} +13 -13
- package/dist/{chunk-TGQW3AMK.js → chunk-UIFWZMO7.js} +23 -23
- package/dist/{chunk-UW6LBFYN.js → chunk-USX5YIKB.js} +6 -6
- package/dist/{chunk-QGFR73SN.js → chunk-VK5HKVQ7.js} +2 -2
- package/dist/{chunk-ZOBYTRBU.js → chunk-VNTQU6KB.js} +47 -2
- package/dist/chunk-VNTQU6KB.js.map +1 -0
- package/dist/{chunk-IHCXMYSE.js → chunk-VPEIWMUT.js} +2 -2
- package/dist/{chunk-O5ZINWW3.js → chunk-VSJ3ARFS.js} +2 -2
- package/dist/{chunk-RLVI2M5Q.js → chunk-W4V7P5HP.js} +2 -2
- package/dist/{chunk-ELHJK7LM.js → chunk-WBN66HPI.js} +6 -6
- package/dist/{chunk-BJLCV2P3.js → chunk-WGRAB3KB.js} +2 -2
- package/dist/{chunk-5KDDAQ6K.js → chunk-WN2DASTS.js} +10 -10
- package/dist/{chunk-IG3EZ3TF.js → chunk-WNQ3B3Q5.js} +2 -2
- package/dist/{chunk-V6SBA5O7.js → chunk-WYOHQJKC.js} +7 -7
- package/dist/chunk-WZU5AGO6.js +38 -0
- package/dist/chunk-WZU5AGO6.js.map +1 -0
- package/dist/{chunk-WHROVQ5Q.js → chunk-X4DHAXFO.js} +3 -3
- package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
- package/dist/{chunk-JLGBJ4AX.js → chunk-XPZM7GP6.js} +10 -10
- package/dist/{chunk-64S6X4IU.js → chunk-XTN54NML.js} +4 -4
- package/dist/{chunk-UYUFDTIX.js → chunk-YIXWY4OZ.js} +2 -2
- package/dist/{chunk-NCZGGGWI.js → chunk-YPYSC3TX.js} +12 -12
- package/dist/{chunk-AVGDYYMA.js → chunk-ZBET3W26.js} +3 -3
- package/dist/{chunk-Y7427SL7.js → chunk-ZG4GNPRE.js} +216 -50
- package/dist/chunk-ZG4GNPRE.js.map +1 -0
- package/dist/chunk-ZODKV27J.js +443 -0
- package/dist/chunk-ZODKV27J.js.map +1 -0
- package/dist/cli.js +133 -130
- package/dist/coding/export-okf-codegraph.js +16 -16
- package/dist/coding/pre-action-gate.js +2 -2
- package/dist/compounding/engine.js +18 -18
- package/dist/config.js +26 -26
- package/dist/connectors/codex-materialize-runner.js +19 -19
- package/dist/connectors/codex-materialize.js +2 -2
- package/dist/connectors/index.js +20 -20
- package/dist/consolidation-provenance-check.js +2 -2
- package/dist/convergence-refresh.js +20 -20
- package/dist/corpus-watermark.js +20 -20
- package/dist/deep-recall-http-glue.js +13 -13
- package/dist/deep-recall.js +2 -2
- package/dist/embedding-fallback.js +2 -2
- package/dist/entity-retrieval.js +20 -20
- package/dist/event-order-recall.js +2 -2
- package/dist/external-wiki-access.js +83 -80
- package/dist/extraction-span-materialize.js +2 -2
- package/dist/extraction-window-drain.d.ts.map +1 -1
- package/dist/extraction-window-drain.js +1 -1
- package/dist/extraction.js +32 -32
- package/dist/{graph-edge-decay-OEX5OGMI.js → graph-edge-decay-CXTNJ7IQ.js} +6 -6
- package/dist/graph-edge-decay-CXTNJ7IQ.js.map +1 -0
- package/dist/graph-jsonl.js +4 -4
- package/dist/graph-snapshot.js +4 -4
- package/dist/graph.js +3 -3
- package/dist/harmonic-retrieval.js +17 -17
- package/dist/index.js +281 -278
- package/dist/lcm/archive.d.ts +12 -2
- package/dist/lcm/archive.d.ts.map +1 -1
- package/dist/lcm/archive.js +2 -2
- package/dist/lcm/engine.d.ts +59 -8
- package/dist/lcm/engine.d.ts.map +1 -1
- package/dist/lcm/engine.js +6 -6
- package/dist/lcm/index.js +16 -16
- package/dist/lcm/queue.d.ts +7 -3
- package/dist/lcm/queue.d.ts.map +1 -1
- package/dist/lcm/queue.js +1 -1
- package/dist/lcm/summarizer.d.ts +8 -1
- package/dist/lcm/summarizer.d.ts.map +1 -1
- package/dist/lcm/summarizer.js +3 -3
- package/dist/local-llm.js +4 -4
- package/dist/location/index.js +19 -19
- package/dist/maintenance/memory-governance.js +18 -18
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +17 -17
- package/dist/maintenance/rebuild-memory-projection-runner.js +20 -20
- package/dist/maintenance/rebuild-memory-projection.js +19 -19
- package/dist/memory-browse-operations.js +83 -80
- package/dist/memory-browse.js +6 -6
- package/dist/namespaces/migrate.js +18 -18
- package/dist/namespaces/search.js +7 -7
- package/dist/namespaces/storage.js +17 -17
- package/dist/offline-sync-changeset-generations.js +5 -5
- package/dist/offline-sync-embedding-generation.js +4 -4
- package/dist/offline-sync-snapshot-stream.js +7 -7
- package/dist/offline-sync.js +9 -9
- package/dist/operator-doctor-corpus.js +21 -21
- package/dist/operator-toolkit.js +41 -41
- package/dist/orchestration/backlog-scheduler.d.ts +151 -0
- package/dist/orchestration/backlog-scheduler.d.ts.map +1 -0
- package/dist/orchestration/backlog-scheduler.js +891 -0
- package/dist/orchestration/backlog-scheduler.js.map +1 -0
- package/dist/orchestration/buffer-drain-runner.d.ts +31 -27
- package/dist/orchestration/buffer-drain-runner.d.ts.map +1 -1
- package/dist/orchestration/buffer-drain-runner.js +202 -404
- package/dist/orchestration/buffer-drain-runner.js.map +1 -1
- package/dist/orchestration/extraction-drain.d.ts +50 -17
- package/dist/orchestration/extraction-drain.d.ts.map +1 -1
- package/dist/orchestration/extraction-queue-coordinator.d.ts +19 -1
- package/dist/orchestration/extraction-queue-coordinator.d.ts.map +1 -1
- package/dist/orchestration/extraction-run.d.ts +8 -0
- package/dist/orchestration/extraction-run.d.ts.map +1 -1
- package/dist/orchestration/extraction-task-queueing.d.ts +44 -0
- package/dist/orchestration/extraction-task-queueing.d.ts.map +1 -0
- package/dist/orchestration/maintenance.js +33 -33
- package/dist/orchestration/turn-ingestion.d.ts +11 -5
- package/dist/orchestration/turn-ingestion.d.ts.map +1 -1
- package/dist/orchestrator.d.ts +13 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +196 -193
- package/dist/qmd.js +4 -4
- package/dist/recall-navigation-operations.js +83 -80
- package/dist/recall-navigation.js +82 -79
- package/dist/recall-state-view-admission.js +6 -6
- package/dist/recall-why-service.js +6 -6
- package/dist/resume-bundles.js +29 -29
- package/dist/search/factory.js +6 -6
- package/dist/search/index.js +12 -12
- package/dist/semantic-consolidation.js +25 -25
- package/dist/semantic-rule-promotion.js +17 -17
- package/dist/semantic-rule-verifier.js +17 -17
- package/dist/source-agent-qualifier.js +24 -24
- package/dist/standup/build.js +17 -17
- package/dist/storage/buffer-drain-claims.d.ts +15 -0
- package/dist/storage/buffer-drain-claims.d.ts.map +1 -1
- package/dist/storage/buffer-drain-claims.js +2 -2
- package/dist/storage/buffer-session-files.js +2 -2
- package/dist/storage.js +16 -16
- package/dist/summarizer.js +6 -6
- package/dist/support-passport/index.js +85 -82
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +2 -2
- package/dist/transfer/export-okf.js +17 -17
- package/dist/verified-recall.js +17 -17
- package/dist/who-knows-cli.js +18 -18
- package/dist/who-knows.js +17 -17
- package/package.json +12 -2
- package/src/access-observe-lcm-archive.ts +30 -0
- package/src/access-observe-lcm-fail-closed.test.ts +118 -0
- package/src/access-observe-objective-state.ts +40 -0
- package/src/access-observe-stage-timing.test.ts +246 -0
- package/src/access-observe-stage-timing.ts +58 -0
- package/src/access-observe-write-surface.ts +45 -45
- package/src/access-service.ts +1 -0
- package/src/backlog-scheduler.test.ts +806 -0
- package/src/buffer-drain-handover.test.ts +363 -18
- package/src/buffer-drain-inprocess.test.ts +355 -0
- package/src/buffer-drain-model-boundary.test.ts +1062 -0
- package/src/buffer-drop-extraction-chunk.test.ts +237 -22
- package/src/buffer-turn-helpers.ts +26 -1
- package/src/buffer.ts +8 -0
- package/src/extraction-window-drain.ts +7 -7
- package/src/lcm/archive.ts +59 -7
- package/src/lcm/engine.ts +256 -53
- package/src/lcm/queue.test.ts +32 -14
- package/src/lcm/queue.ts +24 -16
- package/src/lcm/summarizer.ts +15 -2
- package/src/lcm-durability.test.ts +856 -0
- package/src/lcm-engine.test.ts +12 -3
- package/src/orchestration/backlog-scheduler.ts +481 -0
- package/src/orchestration/buffer-drain-runner.ts +545 -180
- package/src/orchestration/extraction-drain.ts +287 -108
- package/src/orchestration/extraction-queue-coordinator.ts +51 -3
- package/src/orchestration/extraction-run.test.ts +41 -0
- package/src/orchestration/extraction-run.ts +24 -5
- package/src/orchestration/extraction-task-queueing.ts +87 -0
- package/src/orchestration/turn-ingestion.ts +46 -59
- package/src/orchestrator-extraction-queue.test.ts +46 -2
- package/src/orchestrator-flush.test.ts +4 -1
- package/src/orchestrator.ts +47 -21
- package/src/storage/buffer-drain-claims.ts +55 -0
- package/dist/chunk-4MPAKYZU.js.map +0 -1
- package/dist/chunk-6WKWL53V.js.map +0 -1
- package/dist/chunk-DDBB55L2.js.map +0 -1
- package/dist/chunk-KOLJJN5G.js.map +0 -1
- package/dist/chunk-MMCO4SRG.js.map +0 -1
- package/dist/chunk-R2BIVU2Z.js.map +0 -1
- package/dist/chunk-U7MIMS2Y.js.map +0 -1
- package/dist/chunk-VA3GNAWQ.js.map +0 -1
- package/dist/chunk-WVP2I6C5.js.map +0 -1
- package/dist/chunk-Y7427SL7.js.map +0 -1
- package/dist/chunk-ZOBYTRBU.js.map +0 -1
- /package/dist/{capsule-crypto-GWVG7LGC.js.map → access-observe-lcm-archive.js.map} +0 -0
- /package/dist/{graph-edge-decay-OEX5OGMI.js.map → access-observe-objective-state.js.map} +0 -0
- /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
- /package/dist/{chunk-CI3MAAIY.js.map → chunk-2R44BBPK.js.map} +0 -0
- /package/dist/{chunk-QDZWQBLU.js.map → chunk-2R7OCBRR.js.map} +0 -0
- /package/dist/{chunk-B3MWELZ3.js.map → chunk-2WPWEVAH.js.map} +0 -0
- /package/dist/{chunk-PLCYKAWH.js.map → chunk-3ICAWZUU.js.map} +0 -0
- /package/dist/{chunk-R4ZHF4K2.js.map → chunk-43FLJLT2.js.map} +0 -0
- /package/dist/{chunk-PMDOGXA2.js.map → chunk-4PMFSYH7.js.map} +0 -0
- /package/dist/{chunk-HXFIILGF.js.map → chunk-4RASUAN3.js.map} +0 -0
- /package/dist/{chunk-EI6M5NVK.js.map → chunk-5JBVPJCT.js.map} +0 -0
- /package/dist/{chunk-4NV7O76Q.js.map → chunk-5ORJHH43.js.map} +0 -0
- /package/dist/{chunk-74AY3S7U.js.map → chunk-5RW247F5.js.map} +0 -0
- /package/dist/{chunk-4XINO77L.js.map → chunk-66JOLMWS.js.map} +0 -0
- /package/dist/{chunk-AYJQ644F.js.map → chunk-6KBCUIZP.js.map} +0 -0
- /package/dist/{chunk-GKL6QYZO.js.map → chunk-6L63IN3M.js.map} +0 -0
- /package/dist/{chunk-OPFVXM2D.js.map → chunk-7P5VBRBS.js.map} +0 -0
- /package/dist/{chunk-4SOWMA55.js.map → chunk-7WFY2L5J.js.map} +0 -0
- /package/dist/{chunk-GJ4HU6LK.js.map → chunk-AGRMXXVA.js.map} +0 -0
- /package/dist/{chunk-IVUVQPTQ.js.map → chunk-AZNE2H6D.js.map} +0 -0
- /package/dist/{chunk-HPB5TF55.js.map → chunk-BCBY5GYZ.js.map} +0 -0
- /package/dist/{chunk-M4IEZGCK.js.map → chunk-BFBS7OFQ.js.map} +0 -0
- /package/dist/{chunk-4PG5R6BJ.js.map → chunk-BNU5TQLR.js.map} +0 -0
- /package/dist/{chunk-TVE7W67N.js.map → chunk-BTU77RB5.js.map} +0 -0
- /package/dist/{chunk-H6VJSITJ.js.map → chunk-CIL4GHMD.js.map} +0 -0
- /package/dist/{chunk-KZZ5EZ7O.js.map → chunk-DC3DWF2M.js.map} +0 -0
- /package/dist/{chunk-AUFPPBC3.js.map → chunk-ENPJX3BB.js.map} +0 -0
- /package/dist/{chunk-CTH2CQCB.js.map → chunk-EQ6EMJRG.js.map} +0 -0
- /package/dist/{chunk-63A2BU2B.js.map → chunk-F4ZHKDBW.js.map} +0 -0
- /package/dist/{chunk-3LBDEGQA.js.map → chunk-FDUCIUQ5.js.map} +0 -0
- /package/dist/{chunk-OCK4D5PC.js.map → chunk-FGGLVCHI.js.map} +0 -0
- /package/dist/{chunk-XVZA6VXC.js.map → chunk-FZVROZKC.js.map} +0 -0
- /package/dist/{chunk-3RHU5MD7.js.map → chunk-GXAZ4Q2S.js.map} +0 -0
- /package/dist/{chunk-UVVFPCPX.js.map → chunk-H2X32F2K.js.map} +0 -0
- /package/dist/{chunk-645WOU5I.js.map → chunk-H7BZBSP6.js.map} +0 -0
- /package/dist/{chunk-W7K5BP3M.js.map → chunk-HQPFACXO.js.map} +0 -0
- /package/dist/{chunk-TECK5IVY.js.map → chunk-HZNURRDS.js.map} +0 -0
- /package/dist/{chunk-U2CAGMUD.js.map → chunk-ICBUTKLL.js.map} +0 -0
- /package/dist/{chunk-B4DXREWC.js.map → chunk-IQXQ3KWR.js.map} +0 -0
- /package/dist/{chunk-AL3TCNSJ.js.map → chunk-J6GZ2254.js.map} +0 -0
- /package/dist/{chunk-5MGKGEL7.js.map → chunk-J72ZY7NU.js.map} +0 -0
- /package/dist/{chunk-OH55F76C.js.map → chunk-JEX2JL3U.js.map} +0 -0
- /package/dist/{chunk-Y3XPSGNF.js.map → chunk-JGLZ46JS.js.map} +0 -0
- /package/dist/{chunk-EXQJMFRF.js.map → chunk-JY4LXMZR.js.map} +0 -0
- /package/dist/{chunk-6P7U3HWG.js.map → chunk-K36RMINQ.js.map} +0 -0
- /package/dist/{chunk-BUKK5SWA.js.map → chunk-KQAFEZQX.js.map} +0 -0
- /package/dist/{chunk-LN4X2NDA.js.map → chunk-KY3KJUNN.js.map} +0 -0
- /package/dist/{chunk-H5DIRCZP.js.map → chunk-LHMCZ6VW.js.map} +0 -0
- /package/dist/{chunk-GGD2YDS6.js.map → chunk-LN7CWLAU.js.map} +0 -0
- /package/dist/{chunk-GHHQLSSY.js.map → chunk-LYOCAUI6.js.map} +0 -0
- /package/dist/{chunk-W26D2USW.js.map → chunk-MUH7RR6T.js.map} +0 -0
- /package/dist/{chunk-IAGVM7EY.js.map → chunk-N2Y6COEM.js.map} +0 -0
- /package/dist/{chunk-64JLBFCQ.js.map → chunk-N7NAGECH.js.map} +0 -0
- /package/dist/{chunk-5Y6VA6X2.js.map → chunk-OGQGDOYK.js.map} +0 -0
- /package/dist/{chunk-JLMOH5JA.js.map → chunk-OWZXDBV4.js.map} +0 -0
- /package/dist/{chunk-ZORS5BG5.js.map → chunk-PJAMFIDE.js.map} +0 -0
- /package/dist/{chunk-SXTVZ6JL.js.map → chunk-QIOQI7QZ.js.map} +0 -0
- /package/dist/{chunk-75DCOS6I.js.map → chunk-QUPTDKSX.js.map} +0 -0
- /package/dist/{chunk-HH73M65H.js.map → chunk-QVZZE6VH.js.map} +0 -0
- /package/dist/{chunk-XWE3EOWX.js.map → chunk-RZED7FAU.js.map} +0 -0
- /package/dist/{chunk-IZBIDPMY.js.map → chunk-S37O4S6E.js.map} +0 -0
- /package/dist/{chunk-NHWDTOBN.js.map → chunk-S73ZVU37.js.map} +0 -0
- /package/dist/{chunk-YSATDEBY.js.map → chunk-SBRUTD5O.js.map} +0 -0
- /package/dist/{chunk-PRKNAIGZ.js.map → chunk-T6T2RMWW.js.map} +0 -0
- /package/dist/{chunk-CIEEYVUB.js.map → chunk-TPX7XXY4.js.map} +0 -0
- /package/dist/{chunk-L334PSLW.js.map → chunk-U2A56LLF.js.map} +0 -0
- /package/dist/{chunk-P4TV3TQ2.js.map → chunk-U6IL4724.js.map} +0 -0
- /package/dist/{chunk-5UM4H64E.js.map → chunk-UAOJVQXC.js.map} +0 -0
- /package/dist/{chunk-MOIJWWNA.js.map → chunk-UE5JYPU6.js.map} +0 -0
- /package/dist/{chunk-TGQW3AMK.js.map → chunk-UIFWZMO7.js.map} +0 -0
- /package/dist/{chunk-UW6LBFYN.js.map → chunk-USX5YIKB.js.map} +0 -0
- /package/dist/{chunk-QGFR73SN.js.map → chunk-VK5HKVQ7.js.map} +0 -0
- /package/dist/{chunk-IHCXMYSE.js.map → chunk-VPEIWMUT.js.map} +0 -0
- /package/dist/{chunk-O5ZINWW3.js.map → chunk-VSJ3ARFS.js.map} +0 -0
- /package/dist/{chunk-RLVI2M5Q.js.map → chunk-W4V7P5HP.js.map} +0 -0
- /package/dist/{chunk-ELHJK7LM.js.map → chunk-WBN66HPI.js.map} +0 -0
- /package/dist/{chunk-BJLCV2P3.js.map → chunk-WGRAB3KB.js.map} +0 -0
- /package/dist/{chunk-5KDDAQ6K.js.map → chunk-WN2DASTS.js.map} +0 -0
- /package/dist/{chunk-IG3EZ3TF.js.map → chunk-WNQ3B3Q5.js.map} +0 -0
- /package/dist/{chunk-V6SBA5O7.js.map → chunk-WYOHQJKC.js.map} +0 -0
- /package/dist/{chunk-WHROVQ5Q.js.map → chunk-X4DHAXFO.js.map} +0 -0
- /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
- /package/dist/{chunk-JLGBJ4AX.js.map → chunk-XPZM7GP6.js.map} +0 -0
- /package/dist/{chunk-64S6X4IU.js.map → chunk-XTN54NML.js.map} +0 -0
- /package/dist/{chunk-UYUFDTIX.js.map → chunk-YIXWY4OZ.js.map} +0 -0
- /package/dist/{chunk-NCZGGGWI.js.map → chunk-YPYSC3TX.js.map} +0 -0
- /package/dist/{chunk-AVGDYYMA.js.map → chunk-ZBET3W26.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/orchestration/buffer-drain-runner.ts"],"sourcesContent":["/**\n * Out-of-process extraction-buffer drain (`remnic buffer drain`).\n *\n * The runner owns ONE claimed session at a time and drives it through the\n * SAME extraction pipeline the daemon uses — the same chunking\n * (`chunkExtractionWindow` + the model's input budget), the same retry /\n * provider-circuit semantics, the same dropped-chunk side-file recovery. It\n * adds no extraction logic of its own.\n *\n * The difference is ownership: the claimed session's turns live in a drain\n * claim (a durable file), not in a live buffer. So the runner wires a\n * claim-backed `SmartBuffer` into the extraction queue instead of the live\n * one. Every chunk that extracts successfully is removed from the claim\n * immediately, which makes the drain resumable: a kill at any instant\n * leaves the un-extracted turns in the claim, and the next run continues\n * from there.\n *\n * Concurrency lives in the CLI (worker processes, one session each at a\n * time): the in-process extraction queue is serial by design, so a single\n * runner never runs two sessions' extractions at once.\n */\n\nimport type { BufferStorage } from \"../buffer-persistence.js\";\nimport { BufferDrainClaims, type DrainLease } from \"../storage/buffer-drain-claims.js\";\nimport type { BufferEntryState, BufferState } from \"../types.js\";\nimport { hostname } from \"node:os\";\nimport { describeError } from \"../buffer-turn-helpers.js\";\nimport { log } from \"../logger.js\";\nimport { selfDeps } from \"./self-deps.js\";\nimport { TurnIngestionCoordinator, type TurnIngestionDeps } from \"./turn-ingestion.js\";\nimport type { ExtractionRunResult } from \"./extraction-run.js\";\nimport type { Orchestrator } from \"../orchestrator.js\";\n\nexport type DrainSessionStatus = \"drained\" | \"deferred\" | \"failed\" | \"skipped\";\n\nexport interface DrainSessionOutcome {\n key: string;\n status: DrainSessionStatus;\n /** Turns the claim held when the drain started. */\n turnsAtStart: number;\n /** Turns still in the claim when the drain stopped. */\n turnsRemaining: number;\n /** Facts the extraction persisted during this run. */\n persistedCount: number;\n /** Durable outputs (memories + entities) the extraction wrote. */\n durableOutputCount: number;\n /** Why the session was skipped or deferred (machine-readable). */\n reason?: string;\n}\n\nexport interface BufferDrainRunnerOptions {\n /** Identity of this drainer; owns the lease it takes. */\n ownerId: string;\n /** Lease lifetime in ms. The heartbeat keeps it alive while draining. */\n leaseMs?: number;\n /** Cancels the run at the next chunk boundary. */\n signal?: AbortSignal;\n /** Progress callback (per session, and per claim transition). */\n onEvent?: (event: DrainRunnerEvent) => void;\n}\n\n/** A failed drain run: the reason a chunk or the session could not finish. */\nexport type DrainExtractionError = Error;\n\nexport type DrainRunnerEvent =\n | { type: \"session_started\"; key: string; turns: number }\n | { type: \"session_finished\"; key: string; outcome: DrainSessionOutcome };\n\nconst DEFAULT_LEASE_MS = 120_000;\n\n/**\n * A `BufferStorage` view of one drain claim: the claim file IS the buffer.\n * Writes are the drain's progress (what is left to extract), so every\n * successfully extracted chunk is durably removed before the next one runs.\n */\nclass ClaimBufferStorage implements BufferStorage {\n constructor(\n private readonly claims: BufferDrainClaims,\n private readonly key: string,\n private readonly ownerId: string,\n private readonly entry: BufferEntryState,\n ) {}\n\n async loadBuffer(): Promise<BufferState> {\n const entries: NonNullable<BufferState[\"entries\"]> = Object.create(null);\n entries[this.key] = {\n turns: this.entry.turns,\n retainedTurns: this.entry.retainedTurns,\n lastExtractionAt: this.entry.lastExtractionAt,\n extractionCount: this.entry.extractionCount,\n };\n return {\n turns: this.entry.turns,\n lastExtractionAt: this.entry.lastExtractionAt,\n extractionCount: this.entry.extractionCount,\n entries,\n };\n }\n\n async saveBuffer(state: BufferState): Promise<void> {\n // Whole-state fallback (the claim covers one session): persist the entry.\n const entry = state.entries?.[this.key];\n await this.claims.writeEntry(this.key, this.ownerId, entry ?? { turns: [], lastExtractionAt: null, extractionCount: 0 }, this.entry);\n }\n\n async saveBufferSession(key: string, entry: BufferEntryState): Promise<void> {\n await this.claims.writeEntry(key, this.ownerId, entry, key === this.key ? this.entry : undefined);\n }\n\n async deleteBufferSession(): Promise<void> {\n // The claim is removed by the ack path, never by a buffer eviction: the\n // drain decides when the session is finished.\n }\n}\n\nexport class BufferDrainRunner {\n constructor(private readonly orchestrator: Orchestrator) {}\n\n /** The claim store of this orchestrator's memory root. */\n get claims(): BufferDrainClaims {\n return this.orchestrator.storage.bufferDrainClaims();\n }\n\n /**\n * Drain one claimed session. The caller owns the lease (it may have taken\n * it already); this method verifies ownership before touching content.\n */\n async drainSession(key: string, options: BufferDrainRunnerOptions): Promise<DrainSessionOutcome> {\n const claims = this.claims;\n const leaseMs = options.leaseMs ?? DEFAULT_LEASE_MS;\n const lease: DrainLease = {\n ownerId: options.ownerId,\n pid: process.pid,\n host: hostname(),\n acquiredAt: new Date().toISOString(),\n heartbeatAt: new Date().toISOString(),\n leaseMs,\n };\n const claim = await claims.load(key);\n if (!claim) {\n return { key, status: \"skipped\", turnsAtStart: 0, turnsRemaining: 0, persistedCount: 0, durableOutputCount: 0, reason: \"not_claimed\" };\n }\n const turnsAtStart = claim.entry.turns.length + (claim.entry.retainedTurns?.length ?? 0);\n options.onEvent?.({ type: \"session_started\", key, turns: turnsAtStart });\n\n // Take the lease unless this drainer already holds it.\n const held = await claims.adopt(key, lease);\n if (held === \"busy\") {\n const outcome: DrainSessionOutcome = {\n key,\n status: \"skipped\",\n turnsAtStart,\n turnsRemaining: turnsAtStart,\n persistedCount: 0,\n durableOutputCount: 0,\n reason: \"claimed_by_another_drain\",\n };\n options.onEvent?.({ type: \"session_finished\", key, outcome });\n return outcome;\n }\n\n // The claim is the buffer for this run: every successful chunk is\n // removed from it, so a kill leaves exactly the un-extracted turns.\n // The swap covers the whole extraction (its clear path reads the live\n // buffer), so progress lands in the claim, not in a session file.\n const claimStorage = new ClaimBufferStorage(claims, key, options.ownerId, claim.entry);\n const coordinator = new TurnIngestionCoordinator(selfDeps<TurnIngestionDeps>(this.orchestrator));\n\n // The claim's turns (retained first, like the live buffer's order).\n const turns = [...(claim.entry.retainedTurns ?? []), ...claim.entry.turns];\n if (turns.length === 0) {\n await claims.ack(key, options.ownerId);\n const outcome: DrainSessionOutcome = {\n key,\n status: \"drained\",\n turnsAtStart,\n turnsRemaining: 0,\n persistedCount: 0,\n durableOutputCount: 0,\n };\n options.onEvent?.({ type: \"session_finished\", key, outcome });\n return outcome;\n }\n\n // Keep the lease alive while a long extraction runs; a lost lease means\n // another drainer took the claim, so this run must stop instead of\n // writing progress into a claim it no longer owns.\n const abort = new AbortController();\n const signal = options.signal ? AbortSignal.any([options.signal, abort.signal]) : abort.signal;\n const heartbeat = setInterval(() => {\n void claims\n .heartbeat(key, options.ownerId, leaseMs)\n .then((state) => {\n if (state === \"lost\") abort.abort(new Error(`buffer drain: lease lost for session ${key}`));\n })\n .catch((err: Error) => {\n // A heartbeat that cannot be renewed is a lease that cannot be\n // held: another drainer may adopt the claim, so stop this run\n // cleanly at the next chunk boundary (the next run resumes it).\n abort.abort(new Error(`buffer drain: lease heartbeat failed for session ${key}: ${describeError(err)}`));\n });\n }, Math.max(1_000, Math.floor(leaseMs / 3)));\n heartbeat.unref?.();\n\n const settledResult = await this.orchestrator.withBufferStorage(claimStorage, async () => {\n const swapTurns = this.orchestrator.buffer.getTurns(key);\n const { promise, resolve } = Promise.withResolvers<{ error?: unknown; result?: ExtractionRunResult }>();\n let settled = false;\n void coordinator\n .queueBufferedExtraction(swapTurns, \"trigger_mode\", {\n bufferKey: key,\n clearBufferAfterExtraction: true,\n // The drain owns this session's content: the daemon's own dedupe\n // gate must not skip it, and the thresholds do not apply to a\n // backlog.\n skipDedupeCheck: true,\n skipCharThreshold: true,\n skipUserTurnThreshold: true,\n abortSignal: signal,\n onTaskSettled: (error, result) => {\n if (settled) return;\n settled = true;\n resolve({ error, result });\n },\n })\n .catch((error: DrainExtractionError) => {\n if (settled) return;\n settled = true;\n resolve({ error });\n });\n return await promise;\n });\n clearInterval(heartbeat);\n const remaining = await claims.load(key);\n const turnsRemaining = remaining\n ? remaining.entry.turns.length + (remaining.entry.retainedTurns?.length ?? 0)\n : 0;\n const result = settledResult.result;\n const persistedCount = result?.persistedCount ?? 0;\n const durableOutputCount = result?.durableOutputCount ?? 0;\n\n let status: DrainSessionStatus;\n let reason: string | undefined;\n if (turnsRemaining === 0) {\n // Everything extracted (or dropped with a recovery side-file): the\n // claim is finished and the session file is gone for good.\n await claims.ack(key, options.ownerId);\n status = \"drained\";\n } else if (settledResult.error) {\n // A failed run keeps the remaining turns for the next attempt.\n await claims.releaseLease(key, options.ownerId);\n status = \"failed\";\n reason = describeError(settledResult.error);\n } else {\n // Deferred: provider breaker / backoff / a chunk still pending. The\n // content stays claimed and the next run resumes it.\n await claims.releaseLease(key, options.ownerId);\n status = \"deferred\";\n reason = result?.reason ?? \"deferred\";\n }\n log.info(\n `buffer drain: session ${key} ${status} (${turnsRemaining} turn(s) remaining)`,\n );\n const outcome: DrainSessionOutcome = {\n key,\n status,\n turnsAtStart,\n turnsRemaining,\n persistedCount,\n durableOutputCount,\n };\n if (reason !== undefined) outcome.reason = reason;\n options.onEvent?.({ type: \"session_finished\", key, outcome });\n return outcome;\n }\n\n /** Claim a session file for the drain. Returns false when it is not claimable. */\n async claim(key: string, ownerId: string, leaseMs = DEFAULT_LEASE_MS): Promise<boolean> {\n const lease: DrainLease = {\n ownerId,\n pid: process.pid,\n host: hostname(),\n acquiredAt: new Date().toISOString(),\n heartbeatAt: new Date().toISOString(),\n leaseMs,\n };\n return (await this.claims.claimFromSessionFile(key, lease)) === \"claimed\";\n }\n\n /** Sessions with buffered turns, claimed or not (CLI scan). */\n async scan(): Promise<{ key: string; turns: number; claimed: boolean }[]> {\n const sessions = await this.orchestrator.storage.loadBuffer();\n const entries = sessions.entries ?? {};\n const out: { key: string; turns: number; claimed: boolean }[] = [];\n const seen = new Set<string>();\n for (const [key, entry] of Object.entries(entries)) {\n seen.add(key);\n const claim = this.claims.isClaimed(key) ? await this.claims.load(key) : null;\n const turns = claim\n ? claim.entry.turns.length + (claim.entry.retainedTurns?.length ?? 0)\n : entry.turns.length + (entry.retainedTurns?.length ?? 0);\n out.push({ key, turns, claimed: claim !== null });\n }\n // Claims the buffer state no longer lists (drained by an earlier run\n // whose claim file outlived its session file).\n for (const listed of await this.claims.list()) {\n if (seen.has(listed.key)) continue;\n out.push({ key: listed.key, turns: listed.turnCount, claimed: true });\n }\n return out;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,SAAS,gBAAgB;AA2CzB,IAAM,mBAAmB;AAOzB,IAAM,qBAAN,MAAkD;AAAA,EAChD,YACmB,QACA,KACA,SACA,OACjB;AAJiB;AACA;AACA;AACA;AAAA,EAChB;AAAA,EAJgB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGnB,MAAM,aAAmC;AACvC,UAAM,UAA+C,uBAAO,OAAO,IAAI;AACvE,YAAQ,KAAK,GAAG,IAAI;AAAA,MAClB,OAAO,KAAK,MAAM;AAAA,MAClB,eAAe,KAAK,MAAM;AAAA,MAC1B,kBAAkB,KAAK,MAAM;AAAA,MAC7B,iBAAiB,KAAK,MAAM;AAAA,IAC9B;AACA,WAAO;AAAA,MACL,OAAO,KAAK,MAAM;AAAA,MAClB,kBAAkB,KAAK,MAAM;AAAA,MAC7B,iBAAiB,KAAK,MAAM;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WAAW,OAAmC;AAElD,UAAM,QAAQ,MAAM,UAAU,KAAK,GAAG;AACtC,UAAM,KAAK,OAAO,WAAW,KAAK,KAAK,KAAK,SAAS,SAAS,EAAE,OAAO,CAAC,GAAG,kBAAkB,MAAM,iBAAiB,EAAE,GAAG,KAAK,KAAK;AAAA,EACrI;AAAA,EAEA,MAAM,kBAAkB,KAAa,OAAwC;AAC3E,UAAM,KAAK,OAAO,WAAW,KAAK,KAAK,SAAS,OAAO,QAAQ,KAAK,MAAM,KAAK,QAAQ,MAAS;AAAA,EAClG;AAAA,EAEA,MAAM,sBAAqC;AAAA,EAG3C;AACF;AAEO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA6B,cAA4B;AAA5B;AAAA,EAA6B;AAAA,EAA7B;AAAA;AAAA,EAG7B,IAAI,SAA4B;AAC9B,WAAO,KAAK,aAAa,QAAQ,kBAAkB;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAa,KAAa,SAAiE;AAC/F,UAAM,SAAS,KAAK;AACpB,UAAM,UAAU,QAAQ,WAAW;AACnC,UAAM,QAAoB;AAAA,MACxB,SAAS,QAAQ;AAAA,MACjB,KAAK,QAAQ;AAAA,MACb,MAAM,SAAS;AAAA,MACf,aAAY,oBAAI,KAAK,GAAE,YAAY;AAAA,MACnC,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,MACpC;AAAA,IACF;AACA,UAAM,QAAQ,MAAM,OAAO,KAAK,GAAG;AACnC,QAAI,CAAC,OAAO;AACV,aAAO,EAAE,KAAK,QAAQ,WAAW,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,QAAQ,cAAc;AAAA,IACvI;AACA,UAAM,eAAe,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,eAAe,UAAU;AACtF,YAAQ,UAAU,EAAE,MAAM,mBAAmB,KAAK,OAAO,aAAa,CAAC;AAGvE,UAAM,OAAO,MAAM,OAAO,MAAM,KAAK,KAAK;AAC1C,QAAI,SAAS,QAAQ;AACnB,YAAMA,WAA+B;AAAA,QACnC;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,QACA,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,QACpB,QAAQ;AAAA,MACV;AACA,cAAQ,UAAU,EAAE,MAAM,oBAAoB,KAAK,SAAAA,SAAQ,CAAC;AAC5D,aAAOA;AAAA,IACT;AAMA,UAAM,eAAe,IAAI,mBAAmB,QAAQ,KAAK,QAAQ,SAAS,MAAM,KAAK;AACrF,UAAM,cAAc,IAAI,yBAAyB,SAA4B,KAAK,YAAY,CAAC;AAG/F,UAAM,QAAQ,CAAC,GAAI,MAAM,MAAM,iBAAiB,CAAC,GAAI,GAAG,MAAM,MAAM,KAAK;AACzE,QAAI,MAAM,WAAW,GAAG;AACtB,YAAM,OAAO,IAAI,KAAK,QAAQ,OAAO;AACrC,YAAMA,WAA+B;AAAA,QACnC;AAAA,QACA,QAAQ;AAAA,QACR;AAAA,QACA,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,oBAAoB;AAAA,MACtB;AACA,cAAQ,UAAU,EAAE,MAAM,oBAAoB,KAAK,SAAAA,SAAQ,CAAC;AAC5D,aAAOA;AAAA,IACT;AAKA,UAAM,QAAQ,IAAI,gBAAgB;AAClC,UAAM,SAAS,QAAQ,SAAS,YAAY,IAAI,CAAC,QAAQ,QAAQ,MAAM,MAAM,CAAC,IAAI,MAAM;AACxF,UAAM,YAAY,YAAY,MAAM;AAClC,WAAK,OACF,UAAU,KAAK,QAAQ,SAAS,OAAO,EACvC,KAAK,CAAC,UAAU;AACf,YAAI,UAAU,OAAQ,OAAM,MAAM,IAAI,MAAM,wCAAwC,GAAG,EAAE,CAAC;AAAA,MAC5F,CAAC,EACA,MAAM,CAAC,QAAe;AAIrB,cAAM,MAAM,IAAI,MAAM,oDAAoD,GAAG,KAAK,cAAc,GAAG,CAAC,EAAE,CAAC;AAAA,MACzG,CAAC;AAAA,IACL,GAAG,KAAK,IAAI,KAAO,KAAK,MAAM,UAAU,CAAC,CAAC,CAAC;AAC3C,cAAU,QAAQ;AAElB,UAAM,gBAAgB,MAAM,KAAK,aAAa,kBAAkB,cAAc,YAAY;AACxF,YAAM,YAAY,KAAK,aAAa,OAAO,SAAS,GAAG;AACvD,YAAM,EAAE,SAAS,QAAQ,IAAI,QAAQ,cAAiE;AACtG,UAAI,UAAU;AACd,WAAK,YACF,wBAAwB,WAAW,gBAAgB;AAAA,QAClD,WAAW;AAAA,QACX,4BAA4B;AAAA;AAAA;AAAA;AAAA,QAI5B,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,uBAAuB;AAAA,QACvB,aAAa;AAAA,QACb,eAAe,CAAC,OAAOC,YAAW;AAChC,cAAI,QAAS;AACb,oBAAU;AACV,kBAAQ,EAAE,OAAO,QAAAA,QAAO,CAAC;AAAA,QAC3B;AAAA,MACF,CAAC,EACA,MAAM,CAAC,UAAgC;AACtC,YAAI,QAAS;AACb,kBAAU;AACV,gBAAQ,EAAE,MAAM,CAAC;AAAA,MACnB,CAAC;AACH,aAAO,MAAM;AAAA,IACf,CAAC;AACD,kBAAc,SAAS;AACvB,UAAM,YAAY,MAAM,OAAO,KAAK,GAAG;AACvC,UAAM,iBAAiB,YACnB,UAAU,MAAM,MAAM,UAAU,UAAU,MAAM,eAAe,UAAU,KACzE;AACJ,UAAM,SAAS,cAAc;AAC7B,UAAM,iBAAiB,QAAQ,kBAAkB;AACjD,UAAM,qBAAqB,QAAQ,sBAAsB;AAEzD,QAAI;AACJ,QAAI;AACJ,QAAI,mBAAmB,GAAG;AAGxB,YAAM,OAAO,IAAI,KAAK,QAAQ,OAAO;AACrC,eAAS;AAAA,IACX,WAAW,cAAc,OAAO;AAE9B,YAAM,OAAO,aAAa,KAAK,QAAQ,OAAO;AAC9C,eAAS;AACT,eAAS,cAAc,cAAc,KAAK;AAAA,IAC5C,OAAO;AAGL,YAAM,OAAO,aAAa,KAAK,QAAQ,OAAO;AAC9C,eAAS;AACT,eAAS,QAAQ,UAAU;AAAA,IAC7B;AACA,QAAI;AAAA,MACF,yBAAyB,GAAG,IAAI,MAAM,KAAK,cAAc;AAAA,IAC3D;AACA,UAAM,UAA+B;AAAA,MACnC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,QAAI,WAAW,OAAW,SAAQ,SAAS;AAC3C,YAAQ,UAAU,EAAE,MAAM,oBAAoB,KAAK,QAAQ,CAAC;AAC5D,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,MAAM,MAAM,KAAa,SAAiB,UAAU,kBAAoC;AACtF,UAAM,QAAoB;AAAA,MACxB;AAAA,MACA,KAAK,QAAQ;AAAA,MACb,MAAM,SAAS;AAAA,MACf,aAAY,oBAAI,KAAK,GAAE,YAAY;AAAA,MACnC,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,MACpC;AAAA,IACF;AACA,WAAQ,MAAM,KAAK,OAAO,qBAAqB,KAAK,KAAK,MAAO;AAAA,EAClE;AAAA;AAAA,EAGA,MAAM,OAAoE;AACxE,UAAM,WAAW,MAAM,KAAK,aAAa,QAAQ,WAAW;AAC5D,UAAM,UAAU,SAAS,WAAW,CAAC;AACrC,UAAM,MAA0D,CAAC;AACjE,UAAM,OAAO,oBAAI,IAAY;AAC7B,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,WAAK,IAAI,GAAG;AACZ,YAAM,QAAQ,KAAK,OAAO,UAAU,GAAG,IAAI,MAAM,KAAK,OAAO,KAAK,GAAG,IAAI;AACzE,YAAM,QAAQ,QACV,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,eAAe,UAAU,KACjE,MAAM,MAAM,UAAU,MAAM,eAAe,UAAU;AACzD,UAAI,KAAK,EAAE,KAAK,OAAO,SAAS,UAAU,KAAK,CAAC;AAAA,IAClD;AAGA,eAAW,UAAU,MAAM,KAAK,OAAO,KAAK,GAAG;AAC7C,UAAI,KAAK,IAAI,OAAO,GAAG,EAAG;AAC1B,UAAI,KAAK,EAAE,KAAK,OAAO,KAAK,OAAO,OAAO,WAAW,SAAS,KAAK,CAAC;AAAA,IACtE;AACA,WAAO;AAAA,EACT;AACF;","names":["outcome","result"]}
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chunked trigger-drain for the extraction pipeline.
|
|
3
|
-
*
|
|
4
|
-
* Split out of `turn-ingestion.ts`: that file is at the structural ratchet's
|
|
5
|
-
* line cap (issue #1995), and the drain is a self-contained unit — it only
|
|
6
|
-
* needs the host's `runExtraction`, the buffer drop, the storage side-file
|
|
7
|
-
* copy and the preemption hook.
|
|
8
|
-
*/
|
|
1
|
+
/** Chunked trigger-drain for the extraction pipeline. */
|
|
9
2
|
import type { BufferTurn } from "../types.js";
|
|
10
3
|
import type { ExtractionPreemptHandle } from "./extraction-queue-coordinator.js";
|
|
11
4
|
import type { ExtractionRunCoordinator, ExtractionRunResult } from "./extraction-run.js";
|
|
@@ -27,6 +20,8 @@ export interface ExtractionDrainDeps {
|
|
|
27
20
|
extractionChunkDropAfterFailures: number;
|
|
28
21
|
};
|
|
29
22
|
extractionWindowBudgetChars?(): number;
|
|
23
|
+
/** Rendered-size oracle: the exact character count the extraction renderer */
|
|
24
|
+
measureRenderedTurns?(turns: readonly BufferTurn[]): number;
|
|
30
25
|
runExtraction(turns: BufferTurn[], options: RunOptions): Promise<ExtractionRunResult>;
|
|
31
26
|
getStorage(): Promise<{
|
|
32
27
|
saveDroppedExtractionChunk(bufferKey: string, reason: string, turns: readonly BufferTurn[]): Promise<string>;
|
|
@@ -38,14 +33,7 @@ export interface ExtractionDrainDeps {
|
|
|
38
33
|
};
|
|
39
34
|
}
|
|
40
35
|
export declare class ExtractionDrain {
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Consecutive failed attempts on the head chunk, per buffer key. In memory on
|
|
44
|
-
* purpose (a restart re-counts from zero). Bound to the chunk's content: a
|
|
45
|
-
* count recorded for one chunk never applies to a different one, so a force
|
|
46
|
-
* flush that clears a failing chunk cannot make unrelated content inherit its
|
|
47
|
-
* failures.
|
|
48
|
-
*/
|
|
36
|
+
/** Consecutive failed attempts on the head chunk, per buffer key. In memory on */
|
|
49
37
|
private readonly failures;
|
|
50
38
|
/**
|
|
51
39
|
* Buffer key to the first turn of the chunk a qualified window stopped on.
|
|
@@ -55,7 +43,12 @@ export declare class ExtractionDrain {
|
|
|
55
43
|
* window drains; one entry per key.
|
|
56
44
|
*/
|
|
57
45
|
private readonly qualified;
|
|
58
|
-
|
|
46
|
+
/** The claim drain runs with `dropFailedChunks: false`: a chunk that keeps */
|
|
47
|
+
private readonly dropFailedChunks;
|
|
48
|
+
private readonly deps;
|
|
49
|
+
constructor(deps: ExtractionDrainDeps, options?: {
|
|
50
|
+
dropFailedChunks?: boolean;
|
|
51
|
+
});
|
|
59
52
|
/** Characters the coordinator would count for this window: user/assistant text, trimmed and capped per turn, context-only turns left out. */
|
|
60
53
|
private windowChars;
|
|
61
54
|
private failureCount;
|
|
@@ -82,9 +75,49 @@ export declare class ExtractionDrain {
|
|
|
82
75
|
* concurrent automatic extractions cannot clobber each other's registration).
|
|
83
76
|
*/
|
|
84
77
|
run(turns: BufferTurn[], runOptions: DrainRunOptions, preemptable?: boolean, preemptHandle?: ExtractionPreemptHandle): Promise<ExtractionRunResult>;
|
|
78
|
+
/** Chunking plan for one trigger-drain window. Accepted-capture groups */
|
|
79
|
+
private chunkPlan;
|
|
80
|
+
/** Automatic chunking needs a clearable window, no fail-closed/forced
|
|
81
|
+
* caller, and a real budget to chunk against. */
|
|
82
|
+
private chunkable;
|
|
83
|
+
/** A native group clears its turns by identity (a pinned capture can sit
|
|
84
|
+
* in front); a drop must find them the same way. */
|
|
85
|
+
private identityCleared;
|
|
86
|
+
/** Eligibility (minimum user turns and characters) belongs to the whole
|
|
87
|
+
* window: a window that never qualified keeps the single-run path, which
|
|
88
|
+
* judges it exactly as before. */
|
|
89
|
+
private windowBelowThreshold;
|
|
90
|
+
/** The window qualified as a whole; its chunks must not be re-judged one by
|
|
91
|
+
* one (an assistant-only or short chunk would be cleared unextracted). */
|
|
92
|
+
private runChunked;
|
|
93
|
+
/** retention replaces theirs (retained turns do not pile up across chunks) */
|
|
94
|
+
private chunkOptionsFor;
|
|
95
|
+
/** A chunk-local abort controller so a fail-closed flush can abort the
|
|
96
|
+
* next chunk instead of waiting behind the whole window. */
|
|
97
|
+
private armChunkPreempt;
|
|
98
|
+
/** An abort error is rethrown (the chunk-local abort leaves the outer
|
|
99
|
+
* signal untouched, so the host gets the preemption reason it looks for,
|
|
100
|
+
* as it does for the first chunk). */
|
|
101
|
+
private rethrowChunkAbort;
|
|
102
|
+
/** A chunk whose extraction THREW: count the failure; below the drop
|
|
103
|
+
* threshold (or on a no-drop drain) rethrow so the window is retained;
|
|
104
|
+
* at the threshold a chunk that keeps throwing is dropped like one that
|
|
105
|
+
* keeps failing, so later chunks are not stuck behind it. */
|
|
106
|
+
private settleThrownChunk;
|
|
107
|
+
/** Map one chunk result to the drain-loop action: drained chunks continue
|
|
108
|
+
* to the next chunk; breaker/backoff retention and provider faults keep
|
|
109
|
+
* everything for retry without counting a chunk failure. */
|
|
110
|
+
private settleVerdict;
|
|
111
|
+
/** (live drains, recovery copy first) or keep it as durable retryable */
|
|
112
|
+
private settleFailedChunk;
|
|
113
|
+
/** Greedy chunking sized by the RENDERED conversation (the oracle the model */
|
|
114
|
+
private chunkByRenderedSize;
|
|
85
115
|
/** Side-file copy first (content survives a failed drop), then remove the failing chunk from the buffer. Never throws:
|
|
86
116
|
* the drop must not fail the extraction task that already settled its result. */
|
|
87
117
|
private dropFailedChunk;
|
|
118
|
+
/** The recovery side-file copy for a dropped chunk. null = the copy could
|
|
119
|
+
* not be written — the caller must keep the only buffered copy. */
|
|
120
|
+
private saveRecoveryCopy;
|
|
88
121
|
}
|
|
89
122
|
export {};
|
|
90
123
|
//# sourceMappingURL=extraction-drain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-drain.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-drain.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extraction-drain.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-drain.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAOzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,KAAK,UAAU,GAAG,UAAU,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E,4FAA4F;AAC5F,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,OAAO,CAAC;IACpC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,uBAAuB,EAAE,OAAO,CAAC;IACjC,sBAAsB,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QACN,sBAAsB,EAAE,MAAM,CAAC;QAC/B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,gCAAgC,EAAE,MAAM,CAAC;KAC1C,CAAC;IACF,2BAA2B,CAAC,IAAI,MAAM,CAAC;IACvC,8EAA8E;IAC9E,oBAAoB,CAAC,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAAC;IAC5D,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtF,UAAU,IAAI,OAAO,CAAC;QACpB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KAC9G,CAAC,CAAC;IACH,MAAM,EAAE;QACN,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,OAAO,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,OAAO,CAAA;SAAE,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;KACpB,CAAC;CACH;AA6BD,qBAAa,eAAe;IAC1B,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6D;IAEtF;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IAEvD,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAE3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAE/B,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;IAK/E,6IAA6I;IAC7I,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IAKvB;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,GAAG,CACP,KAAK,EAAE,UAAU,EAAE,EACnB,UAAU,EAAE,eAAe,EAC3B,WAAW,UAAQ,EACnB,aAAa,CAAC,EAAE,uBAAuB,GACtC,OAAO,CAAC,mBAAmB,CAAC;IAe/B,0EAA0E;IAC1E,OAAO,CAAC,SAAS;IAejB;sDACkD;IAClD,OAAO,CAAC,SAAS;IAWjB;yDACqD;IACrD,OAAO,CAAC,eAAe;IAIvB;;uCAEmC;IACnC,OAAO,CAAC,oBAAoB;IAQ5B;+EAC2E;YAC7D,UAAU;IA0DxB,8EAA8E;IAC9E,OAAO,CAAC,eAAe;IAsBvB;iEAC6D;IAC7D,OAAO,CAAC,eAAe;IAMvB;;2CAEuC;IACvC,OAAO,CAAC,iBAAiB;IAKzB;;;kEAG8D;YAChD,iBAAiB;IA4B/B;;iEAE6D;IAC7D,OAAO,CAAC,aAAa;IAoBrB,yEAAyE;YAC3D,iBAAiB;IAuB/B,+EAA+E;IAC/E,OAAO,CAAC,mBAAmB;IAe3B;sFACkF;YACpE,eAAe;IA6B7B;wEACoE;YACtD,gBAAgB;CAgB/B"}
|
|
@@ -62,6 +62,13 @@ export declare class ExtractionQueueCoordinator {
|
|
|
62
62
|
private accepting;
|
|
63
63
|
/** Buffer keys with a task currently running (per-key exclusion). */
|
|
64
64
|
private readonly activeKeys;
|
|
65
|
+
/**
|
|
66
|
+
* Buffer keys with a claim DECISION in flight (daemon backlog scheduler).
|
|
67
|
+
* A reservation is taken synchronously BEFORE the async claim/decision so
|
|
68
|
+
* no queued task for the key can start past the gate while the decision is
|
|
69
|
+
* unsettled; selection skips reserved keys until release.
|
|
70
|
+
*/
|
|
71
|
+
private readonly reservedKeys;
|
|
65
72
|
/** Preempt slots of the currently running tasks, keyed by slot identity. */
|
|
66
73
|
private readonly preemptSlots;
|
|
67
74
|
private preemptSeq;
|
|
@@ -80,6 +87,17 @@ export declare class ExtractionQueueCoordinator {
|
|
|
80
87
|
* builds each task closure and hands it here with its buffer key.
|
|
81
88
|
*/
|
|
82
89
|
enqueue(task: ExtractionQueueTask, options?: ExtractionQueueEnqueueOptions): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Synchronously reserve `key` so no task for it starts until the key's
|
|
92
|
+
* owner (the backlog scheduler's claim decision) settles and releases.
|
|
93
|
+
* Returns false when the key is active, queued, or already reserved —
|
|
94
|
+
* single-threaded JS makes this check+add atomic.
|
|
95
|
+
*/
|
|
96
|
+
tryReserveKey(key: string): boolean;
|
|
97
|
+
/** Settle a reservation: the key's decision is made and enqueued work (if
|
|
98
|
+
* any) now carries the key authority itself. Idempotent; wakes a parked
|
|
99
|
+
* processor waiting only on this release. */
|
|
100
|
+
releaseKeyReservation(key: string): void;
|
|
83
101
|
preemptRunning(preferredKey?: string): void;
|
|
84
102
|
runPreemptable<T>(preempt: ExtractionPreemptHandle | undefined, preemptable: boolean, parent: AbortSignal | undefined, run: (signal: AbortSignal) => Promise<T>): Promise<T>;
|
|
85
103
|
/** Stop new producers from entering the queue. */
|
|
@@ -95,7 +113,7 @@ export declare class ExtractionQueueCoordinator {
|
|
|
95
113
|
* that push raw tasks and assert drain semantics directly.
|
|
96
114
|
*/
|
|
97
115
|
processQueue(): Promise<void>;
|
|
98
|
-
/** Take the next queue entry whose key is not already running (FIFO within a key). */
|
|
116
|
+
/** Take the next queue entry whose key is not already running or reserved (FIFO within a key). */
|
|
99
117
|
private takeRunnable;
|
|
100
118
|
/** Run one entry with its own preempt slot; failures are classified + logged. */
|
|
101
119
|
private runEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-queue-coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-queue-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH;mEACmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC7B,mDAAmD;IACnD,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvF,MAAM,WAAW,6BAA6B;IAC5C,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAYD;;;GAGG;AACH,qBAAa,0BAA0B;IACrC,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,mDAAmD;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,wEAAwE;IACxE,OAAO,CAAC,IAAI,CAAC,CAAa;gBAEd,WAAW,SAAI;IAI3B,mDAAmD;IACnD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,2EAA2E;IAC3E,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,gEAAgE;IAChE,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,6BAA6B,GAAG,OAAO;IAwBpF,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAY3C,cAAc,CAAC,CAAC,EACd,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC;IAWb,kDAAkD;IAClD,aAAa,IAAI,IAAI;IAIrB,uEAAuE;IACvE,eAAe,IAAI,IAAI;IAIvB,mEAAmE;IAC7D,aAAa,CAAC,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjE;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"extraction-queue-coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-queue-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAKH;mEACmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC7B,mDAAmD;IACnD,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,2EAA2E;AAC3E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvF,MAAM,WAAW,6BAA6B;IAC5C,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAYD;;;GAGG;AACH,qBAAa,0BAA0B;IACrC,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,mDAAmD;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAQ;IACzB,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,wEAAwE;IACxE,OAAO,CAAC,IAAI,CAAC,CAAa;gBAEd,WAAW,SAAI;IAI3B,mDAAmD;IACnD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,2EAA2E;IAC3E,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,gEAAgE;IAChE,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,6BAA6B,GAAG,OAAO;IAwBpF;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAgBnC;;iDAE6C;IAC7C,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAaxC,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAY3C,cAAc,CAAC,CAAC,EACd,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC;IAWb,kDAAkD;IAClD,aAAa,IAAI,IAAI;IAIrB,uEAAuE;IACvE,eAAe,IAAI,IAAI;IAIvB,mEAAmE;IAC7D,aAAa,CAAC,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjE;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCnC,kGAAkG;IAClG,OAAO,CAAC,YAAY;IAWpB,iFAAiF;YACnE,QAAQ;IAatB,OAAO,CAAC,mBAAmB;IAa3B;;;;;;;;;;;;;;;;OAgBG;IACH,yBAAyB,CACvB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,GAAG,WAAW,GAC3B,IAAI;IAgBP;;;;;OAKG;IACG,WAAW,CAAC,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/D;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKpE,+EAA+E;IAC/E,KAAK,IAAI,mBAAmB,GAAG,SAAS;IAIxC;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;CAG3C"}
|
|
@@ -62,10 +62,18 @@ export interface ExtractionRunCoordinatorDeps {
|
|
|
62
62
|
force?: boolean;
|
|
63
63
|
}) => Promise<TierMigrationCycleSummary>;
|
|
64
64
|
recordProcessedExtractionFingerprint: (storage: StorageManager, fingerprint: string, preloadedMeta?: Awaited<ReturnType<StorageManager["loadMeta"]>>) => Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Orchestrator-wide provider resilience state. Absent for a standalone
|
|
67
|
+
* coordinator (own breaker); the orchestrator passes ITS breaker so every
|
|
68
|
+
* isolated claim-backed drain accumulates failures toward the same
|
|
69
|
+
* threshold and honors a foreground-opened breaker (review round).
|
|
70
|
+
*/
|
|
71
|
+
providerBreaker?: ProviderCircuitBreaker;
|
|
65
72
|
}
|
|
66
73
|
import { capExtractionRetryStateEntries, computeExtractionRetryNextEligibleMs, deriveSourceConnector, deriveTopicsFromExtraction } from "./extraction-run-helpers.js";
|
|
67
74
|
import type { ExtractionResilienceStatus } from "./extraction-run-helpers.js";
|
|
68
75
|
import type { ExtractionPersistResult } from "./extraction-persist.js";
|
|
76
|
+
import { ProviderCircuitBreaker } from "./provider-breaker.js";
|
|
69
77
|
export { capExtractionRetryStateEntries, computeExtractionRetryNextEligibleMs, deriveSourceConnector, deriveTopicsFromExtraction, };
|
|
70
78
|
export type { ExtractionResilienceStatus };
|
|
71
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-run.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-run.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAA2B,KAAK,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAiC,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EAClC,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAa,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC;CACjE;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,KAAK,EAAE,MAAM;CAK1B;AAED;;wEAEwE;AACxE,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,WAAW,CAAC;IAC7B,aAAa,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACvD,gBAAgB,EAAE,MAAM,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC;IACnE,YAAY,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,mBAAmB,CAAC,CAAC;IAEhF,iBAAiB,EAAE,CACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,cAAc,EACvB,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,EACrC,aAAa,CAAC,EAAE,uBAAuB,EACvC,aAAa,CAAC,EAAE,MAAM,EACtB,qBAAqB,CAAC,EAAE,wBAAwB,GAAG,IAAI,EACvD,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,8BAA8B,EAC1C,aAAa,CAAC,EAAE,4BAA4B,KACzC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEtC,8BAA8B,EAAE,CAC9B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,oBAAoB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,0BAA0B,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAC;IACzE,2BAA2B,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/E,aAAa,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC7E,6BAA6B,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9G,0BAA0B,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,qBAAqB,EAAE,CACrB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,YAAY,GAAG,aAAa,GAAG,QAAQ,EAChD,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,KACE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,oCAAoC,EAAE,CACpC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,KAC5D,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"extraction-run.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extraction task queueing — the scope-group and execution-context pieces of
|
|
3
|
+
* the turn-ingestion coordinator, split out to keep that module inside the
|
|
4
|
+
* house source-size cap (issue #1995).
|
|
5
|
+
*/
|
|
6
|
+
import type { SmartBuffer } from "../buffer.js";
|
|
7
|
+
import type { ResolvedScopeProfilePlan } from "../namespaces/scope-profiles.js";
|
|
8
|
+
import type { BufferTurn, CodingContext } from "../types.js";
|
|
9
|
+
import type { ExtractionDrain } from "./extraction-drain.js";
|
|
10
|
+
import type { TurnIngestionDeps } from "./turn-ingestion.js";
|
|
11
|
+
/**
|
|
12
|
+
* Isolated per-task execution context (claim-backed backlog drain).
|
|
13
|
+
* Bound at enqueue time and read ONLY inside the enqueued closure, so the
|
|
14
|
+
* task runs against its own buffer/extraction/drain no matter which async
|
|
15
|
+
* context the coordinator's processor executes it from. Absent for live
|
|
16
|
+
* work, which keeps the shared orchestrator state.
|
|
17
|
+
*/
|
|
18
|
+
export interface ExtractionTaskExecutionContext {
|
|
19
|
+
/** The task's own buffer (a claim-backed SmartBuffer). */
|
|
20
|
+
buffer: SmartBuffer;
|
|
21
|
+
/**
|
|
22
|
+
* The task's own chunked drain; its deps carry the isolated runExtraction +
|
|
23
|
+
* buffer (claim tasks build one with `dropFailedChunks: false` — the
|
|
24
|
+
* no-drop backlog policy).
|
|
25
|
+
*/
|
|
26
|
+
drain: ExtractionDrain;
|
|
27
|
+
}
|
|
28
|
+
/** Queue options the capture-scope grouping forwards to the coordinator. */
|
|
29
|
+
export interface CaptureScopeGroupQueueOptions {
|
|
30
|
+
deadlineMs?: number;
|
|
31
|
+
abortSignal?: AbortSignal;
|
|
32
|
+
writeNamespaceOverride?: string;
|
|
33
|
+
principalOverride?: string;
|
|
34
|
+
scopeProfileWritePlan?: ResolvedScopeProfilePlan | null;
|
|
35
|
+
codingContext?: CodingContext;
|
|
36
|
+
onExtractionQueued?: (extraction: Promise<void>) => void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Buffer-approved captures skip threshold/dedupe rechecks, not provider
|
|
40
|
+
* retry cooldowns. Scope and staleness are enforced at the shared
|
|
41
|
+
* queueBufferedExtraction boundary.
|
|
42
|
+
*/
|
|
43
|
+
export declare function queueBufferedCaptureScopeGroups(queueBufferedExtraction: TurnIngestionDeps["queueBufferedExtraction"], extractionTurns: BufferTurn[], bufferKey: string, options: CaptureScopeGroupQueueOptions): void;
|
|
44
|
+
//# sourceMappingURL=extraction-task-queueing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-task-queueing.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-task-queueing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,8BAA8B;IAC7C,0DAA0D;IAC1D,MAAM,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,4EAA4E;AAC5E,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACxD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,uBAAuB,EAAE,iBAAiB,CAAC,yBAAyB,CAAC,EACrE,eAAe,EAAE,UAAU,EAAE,EAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,6BAA6B,GACrC,IAAI,CAiCN"}
|
|
@@ -1,46 +1,44 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MaintenanceScheduler
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-XPZM7GP6.js";
|
|
4
|
+
import "../chunk-J72ZY7NU.js";
|
|
5
|
+
import "../chunk-VSJ3ARFS.js";
|
|
5
6
|
import "../chunk-666A3MOW.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-GHHQLSSY.js";
|
|
7
|
+
import "../chunk-LYOCAUI6.js";
|
|
8
8
|
import "../chunk-5KBIOI4G.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-ICBUTKLL.js";
|
|
10
|
+
import "../chunk-QVZZE6VH.js";
|
|
11
|
+
import "../chunk-X4DHAXFO.js";
|
|
12
12
|
import "../chunk-KJTKLXTH.js";
|
|
13
13
|
import "../chunk-2DQ2XREU.js";
|
|
14
14
|
import "../chunk-J5WI4QRP.js";
|
|
15
15
|
import "../chunk-EWMRFW3F.js";
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-7WFY2L5J.js";
|
|
17
|
+
import "../chunk-2R44BBPK.js";
|
|
18
18
|
import "../chunk-OGXXGHW6.js";
|
|
19
19
|
import "../chunk-YUTT4ZTI.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-T6OZW2WR.js";
|
|
24
|
-
import "../chunk-QEDLJDHP.js";
|
|
20
|
+
import "../chunk-U6IL4724.js";
|
|
21
|
+
import "../chunk-UAOJVQXC.js";
|
|
22
|
+
import "../chunk-5RW247F5.js";
|
|
25
23
|
import "../chunk-U4LUIE6Y.js";
|
|
24
|
+
import "../chunk-T6OZW2WR.js";
|
|
26
25
|
import "../chunk-5YQXWVCP.js";
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-NHWDTOBN.js";
|
|
30
|
-
import "../chunk-UHVXE24Y.js";
|
|
26
|
+
import "../chunk-QEDLJDHP.js";
|
|
27
|
+
import "../chunk-S73ZVU37.js";
|
|
31
28
|
import "../chunk-QGVCFVX6.js";
|
|
29
|
+
import "../chunk-UHVXE24Y.js";
|
|
32
30
|
import "../chunk-IGOW4TJE.js";
|
|
33
|
-
import "../chunk-ZOBYTRBU.js";
|
|
34
31
|
import "../chunk-G6OFEGUR.js";
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-VNTQU6KB.js";
|
|
33
|
+
import "../chunk-JEX2JL3U.js";
|
|
34
|
+
import "../chunk-U2A56LLF.js";
|
|
35
|
+
import "../chunk-DOJBV6WR.js";
|
|
36
|
+
import "../chunk-PFUXPTBT.js";
|
|
37
37
|
import "../chunk-CYEPCZN5.js";
|
|
38
38
|
import "../chunk-DLZGSZVC.js";
|
|
39
39
|
import "../chunk-OVZIYLBZ.js";
|
|
40
|
-
import "../chunk-EXYT52NR.js";
|
|
41
|
-
import "../chunk-DOJBV6WR.js";
|
|
42
|
-
import "../chunk-PFUXPTBT.js";
|
|
43
40
|
import "../chunk-WNEVEMJ3.js";
|
|
41
|
+
import "../chunk-EXYT52NR.js";
|
|
44
42
|
import "../chunk-Y5NLBXPV.js";
|
|
45
43
|
import "../chunk-TFA6HPOA.js";
|
|
46
44
|
import "../chunk-F4TWWUMP.js";
|
|
@@ -58,14 +56,15 @@ import "../chunk-WXPBDEMW.js";
|
|
|
58
56
|
import "../chunk-AAD2ZS6P.js";
|
|
59
57
|
import "../chunk-BV2BRHD4.js";
|
|
60
58
|
import "../chunk-ZIKENA2C.js";
|
|
59
|
+
import "../chunk-3ONXXHQO.js";
|
|
61
60
|
import "../chunk-YXZG5TVN.js";
|
|
62
61
|
import "../chunk-3OUGSOJP.js";
|
|
63
62
|
import "../chunk-SCU65EZI.js";
|
|
64
|
-
import "../chunk-3ONXXHQO.js";
|
|
65
|
-
import "../chunk-3WU7XOFN.js";
|
|
66
63
|
import "../chunk-P4GUQSK3.js";
|
|
67
64
|
import "../chunk-4LZ7SVKM.js";
|
|
68
65
|
import "../chunk-YHTG64XV.js";
|
|
66
|
+
import "../chunk-3WU7XOFN.js";
|
|
67
|
+
import "../chunk-G7D6GZ5J.js";
|
|
69
68
|
import "../chunk-ER7XANP3.js";
|
|
70
69
|
import "../chunk-M5GVCJSJ.js";
|
|
71
70
|
import "../chunk-RBOJCG4T.js";
|
|
@@ -73,32 +72,33 @@ import "../chunk-IAYUTGF2.js";
|
|
|
73
72
|
import "../chunk-5WITETWU.js";
|
|
74
73
|
import "../chunk-6CIAGZ6X.js";
|
|
75
74
|
import "../chunk-7CT3AI52.js";
|
|
76
|
-
import "../chunk-G7D6GZ5J.js";
|
|
77
75
|
import "../chunk-7VLBZKNB.js";
|
|
78
76
|
import "../chunk-Y33KJ556.js";
|
|
79
|
-
import "../chunk-
|
|
80
|
-
import "../chunk-IUM3VSHI.js";
|
|
77
|
+
import "../chunk-WBN66HPI.js";
|
|
81
78
|
import "../chunk-NWA6IXR3.js";
|
|
82
79
|
import "../chunk-VILPVT4S.js";
|
|
83
80
|
import "../chunk-AF2XMJKD.js";
|
|
84
81
|
import "../chunk-OR42ZI54.js";
|
|
85
|
-
import "../chunk-
|
|
82
|
+
import "../chunk-IUM3VSHI.js";
|
|
86
83
|
import "../chunk-C64XATK7.js";
|
|
87
84
|
import "../chunk-42JKGUFJ.js";
|
|
88
|
-
import "../chunk-
|
|
85
|
+
import "../chunk-23G5P7TA.js";
|
|
86
|
+
import "../chunk-OUBEJWVI.js";
|
|
89
87
|
import "../chunk-AVVCPA7U.js";
|
|
90
88
|
import "../chunk-I55KAVET.js";
|
|
91
89
|
import "../chunk-L2EXJQJP.js";
|
|
92
90
|
import "../chunk-45GF7Y3V.js";
|
|
93
91
|
import "../chunk-YIJECSIX.js";
|
|
94
92
|
import "../chunk-E2AWJ7KQ.js";
|
|
93
|
+
import "../chunk-W5BIQOAJ.js";
|
|
95
94
|
import "../chunk-HADD45AR.js";
|
|
96
95
|
import "../chunk-RNFMFC37.js";
|
|
97
96
|
import "../chunk-C5C7IJ4Q.js";
|
|
97
|
+
import "../chunk-TBBDFYXW.js";
|
|
98
98
|
import "../chunk-YCVB7X56.js";
|
|
99
|
+
import "../chunk-TOTT6S2V.js";
|
|
99
100
|
import "../chunk-PQVCH2AE.js";
|
|
100
101
|
import "../chunk-PJKTFXE2.js";
|
|
101
|
-
import "../chunk-W5BIQOAJ.js";
|
|
102
102
|
import "../chunk-V4XE263I.js";
|
|
103
103
|
import "../chunk-YBA52OKG.js";
|
|
104
104
|
import "../chunk-2D7BTSDW.js";
|
|
@@ -118,8 +118,8 @@ import "../chunk-7RJUVTVF.js";
|
|
|
118
118
|
import "../chunk-AL3UYZ5N.js";
|
|
119
119
|
import "../chunk-RL6NEVXT.js";
|
|
120
120
|
import "../chunk-YET735EZ.js";
|
|
121
|
-
import "../chunk-PWPIERBM.js";
|
|
122
121
|
import "../chunk-YO2JEX2Z.js";
|
|
122
|
+
import "../chunk-PWPIERBM.js";
|
|
123
123
|
import "../chunk-KQUSP6LB.js";
|
|
124
124
|
import "../chunk-5FVVY2EB.js";
|
|
125
125
|
import "../chunk-BTNNL7ZW.js";
|
|
@@ -26,6 +26,7 @@ import { type ReplayTurn } from "../replay/types.js";
|
|
|
26
26
|
import { SessionObserverState } from "../session-observer-state.js";
|
|
27
27
|
import { TranscriptManager } from "../transcript.js";
|
|
28
28
|
import type { BufferTurn, PluginConfig, SourceConnectorProvenance } from "../types.js";
|
|
29
|
+
import { type ExtractionTaskExecutionContext } from "./extraction-task-queueing.js";
|
|
29
30
|
import { type ResolvedScopeProfilePlan } from "../namespaces/scope-profiles.js";
|
|
30
31
|
import { type BulkImportBatchIngestResult } from "../orchestrator.js";
|
|
31
32
|
/**
|
|
@@ -160,11 +161,6 @@ export declare class TurnIngestionCoordinator {
|
|
|
160
161
|
}): Promise<void>;
|
|
161
162
|
/** #3251 buffered capture: durable scope-pinned admission; await settles at durability. */
|
|
162
163
|
private ingestReplayBatchBuffered;
|
|
163
|
-
/**
|
|
164
|
-
* Buffer-approved captures skip threshold/dedupe rechecks, not provider retry cooldowns.
|
|
165
|
-
* Scope and staleness are enforced at the shared queueBufferedExtraction boundary.
|
|
166
|
-
*/
|
|
167
|
-
private queueBufferedCaptureScopeGroups;
|
|
168
164
|
/**
|
|
169
165
|
* Ingest a batch of bulk-import turns (#460). Like ingestReplayBatch, this
|
|
170
166
|
* normalizes user/assistant turns into the extraction buffer and awaits
|
|
@@ -227,6 +223,14 @@ export declare class TurnIngestionCoordinator {
|
|
|
227
223
|
abortSignal?: AbortSignal;
|
|
228
224
|
/** Automatic buffered work only. Replay and import must not set this. */
|
|
229
225
|
preemptable?: boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Invoked when the queued closure has FULLY exited (after settlement).
|
|
228
|
+
* Settlement can fire before the closure exits — e.g. an abort listener
|
|
229
|
+
* settles while persistence is still in flight — so callers that
|
|
230
|
+
* release resources on settlement (claim leases) can use this to wait
|
|
231
|
+
* for the actual task exit first.
|
|
232
|
+
*/
|
|
233
|
+
onTaskExit?: () => void;
|
|
230
234
|
/** Fail-closed force-flush only. Not implied by failOnExtractionFailure. */
|
|
231
235
|
preemptRunning?: boolean;
|
|
232
236
|
writeNamespaceOverride?: string;
|
|
@@ -237,6 +241,8 @@ export declare class TurnIngestionCoordinator {
|
|
|
237
241
|
*/
|
|
238
242
|
principalOverride?: string;
|
|
239
243
|
scopeProfileWritePlan?: ResolvedScopeProfilePlan | null;
|
|
244
|
+
/** Isolated per-task execution context (claim-backed backlog drain). */
|
|
245
|
+
execution?: ExtractionTaskExecutionContext;
|
|
240
246
|
}): Promise<void>;
|
|
241
247
|
/**
|
|
242
248
|
* Passive correction capture (issue #1581) — detects corrections expressed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turn-ingestion.d.ts","sourceRoot":"","sources":["../../src/orchestration/turn-ingestion.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"turn-ingestion.d.ts","sourceRoot":"","sources":["../../src/orchestration/turn-ingestion.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -196,7 +196,20 @@ export declare class Orchestrator {
|
|
|
196
196
|
private get dependencyPropagationDelivery();
|
|
197
197
|
readonly extractionQueueCoordinator: ExtractionQueueCoordinator;
|
|
198
198
|
private _extractionRunCoordinator;
|
|
199
|
+
private _providerBreaker;
|
|
200
|
+
/** One breaker per orchestrator: foreground and every isolated claim-backed
|
|
201
|
+
* drain accumulate toward the same threshold and honor each other's open
|
|
202
|
+
* state (review round — isolated coordinators must not reset
|
|
203
|
+
* provider resilience). */
|
|
204
|
+
private get providerBreaker();
|
|
205
|
+
/** The run-coordinator deps bundle, parameterized by its buffer accessor so
|
|
206
|
+
* an isolated claim-backed drain can bind its own SmartBuffer (the daemon
|
|
207
|
+
* backlog scheduler) while live extraction keeps `this.buffer`. */
|
|
208
|
+
private extractionRunDeps;
|
|
199
209
|
private get extractionRunCoordinator();
|
|
210
|
+
/** An extraction run coordinator bound to `buffer` — per drain task, so a
|
|
211
|
+
* claim-backed drain never shares the live buffer's mutable state. */
|
|
212
|
+
extractionRunCoordinatorForBuffer(buffer: SmartBuffer): ExtractionRunCoordinator;
|
|
200
213
|
private _consolidationRunCoordinator;
|
|
201
214
|
private get consolidationRunCoordinator();
|
|
202
215
|
private _extractionPersistCoordinator;
|