@remnic/core 10.0.65 → 10.0.67
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 +16 -16
- package/dist/access-authorization-probe.js +17 -17
- package/dist/access-boundary.js +16 -16
- package/dist/access-cli.js +61 -61
- package/dist/access-extraction-force-flush.js +16 -16
- package/dist/access-http-briefing.js +17 -17
- package/dist/access-http-query.js +18 -18
- package/dist/access-http.js +33 -33
- package/dist/access-identity-continuity-surface.js +16 -16
- package/dist/access-lcm-surface.js +16 -16
- package/dist/access-mcp.js +26 -26
- package/dist/access-namespace-preflight.js +16 -16
- package/dist/access-observe-write-surface.js +16 -16
- package/dist/access-operations-batch.js +17 -17
- package/dist/access-operations.js +24 -24
- package/dist/access-recall-concurrency.js +16 -16
- package/dist/access-recall-diagnostics.js +2 -2
- package/dist/access-recall-response.js +16 -16
- package/dist/access-recall-surface.js +16 -16
- package/dist/access-service.js +16 -16
- package/dist/access-surface-catalog.js +18 -18
- package/dist/active-recall.js +3 -3
- package/dist/briefing.js +3 -3
- package/dist/buffer.js +2 -2
- package/dist/causal-consolidation.js +4 -4
- package/dist/{chunk-KISOMGY2.js → chunk-3RHU5MD7.js} +2 -2
- package/dist/{chunk-3LSTL6EY.js → chunk-4MPAKYZU.js} +2 -2
- package/dist/{chunk-OVL5AD3N.js → chunk-4NV7O76Q.js} +2 -2
- package/dist/{chunk-BH7NVSEC.js → chunk-4SOWMA55.js} +3 -3
- package/dist/{chunk-GROHOWR5.js → chunk-5MGKGEL7.js} +2 -2
- package/dist/{chunk-ZPLQ27MY.js → chunk-5UM4H64E.js} +2 -2
- package/dist/{chunk-2DNFRLLL.js → chunk-5Y6VA6X2.js} +2 -2
- package/dist/{chunk-GRAUQXQB.js → chunk-6WKWL53V.js} +13 -13
- package/dist/{chunk-HOR4RMUM.js → chunk-75DCOS6I.js} +24 -24
- package/dist/{chunk-25QK3LR2.js → chunk-7O2MC42R.js} +2 -2
- package/dist/{chunk-7ETWIBTO.js → chunk-ADYP7HXE.js} +3 -3
- package/dist/{chunk-FUDKGJDN.js → chunk-AVGDYYMA.js} +2 -2
- package/dist/{chunk-ECF627KC.js → chunk-AYJQ644F.js} +2 -2
- package/dist/{chunk-T22FBDG3.js → chunk-B3MWELZ3.js} +2 -2
- package/dist/{chunk-DRTSPRWL.js → chunk-B4DXREWC.js} +2 -2
- package/dist/{chunk-5UEGL5BF.js → chunk-CI3MAAIY.js} +2 -2
- package/dist/{chunk-7JYK7NNY.js → chunk-CTH2CQCB.js} +2 -2
- package/dist/{chunk-UVHXLVFJ.js → chunk-EURPSF4Y.js} +2 -2
- package/dist/{chunk-VPEA63FC.js → chunk-EWJZZDRG.js} +2 -2
- package/dist/{chunk-BOZQAUAJ.js → chunk-EXQJMFRF.js} +2 -2
- package/dist/{chunk-UH6ROXFJ.js → chunk-GGD2YDS6.js} +2 -2
- package/dist/{chunk-5JABRT5G.js → chunk-GHHQLSSY.js} +3 -3
- package/dist/{chunk-N4T5FW6U.js → chunk-GJ4HU6LK.js} +2 -2
- package/dist/{chunk-HRRAOTOQ.js → chunk-H5DIRCZP.js} +12 -12
- package/dist/{chunk-434E4BTO.js → chunk-HH73M65H.js} +3 -3
- package/dist/{chunk-LIGZO7XN.js → chunk-HPB5TF55.js} +2 -2
- package/dist/{chunk-E4QIX2OB.js → chunk-IAGVM7EY.js} +2 -2
- package/dist/{chunk-YJQJRXUI.js → chunk-IG3EZ3TF.js} +2 -2
- package/dist/{chunk-KNMSD2MQ.js → chunk-IVUVQPTQ.js} +2 -2
- package/dist/{chunk-XOFIJGB2.js → chunk-IZBIDPMY.js} +2 -2
- package/dist/{chunk-HFEGRMFG.js → chunk-JLGBJ4AX.js} +7 -7
- package/dist/{chunk-BBHKN2CN.js → chunk-JLMOH5JA.js} +2 -2
- package/dist/{chunk-TPCRDPUY.js → chunk-KZSGBWOJ.js} +2 -2
- package/dist/{chunk-SHHZWSSE.js → chunk-KZZ5EZ7O.js} +2 -2
- package/dist/{chunk-2ZSRACNK.js → chunk-LFYEQK45.js} +682 -549
- package/dist/chunk-LFYEQK45.js.map +1 -0
- package/dist/{chunk-FKGLJJVS.js → chunk-LN4X2NDA.js} +2 -2
- package/dist/{chunk-5ZHFPUBC.js → chunk-MOIJWWNA.js} +8 -8
- package/dist/{chunk-KO224R36.js → chunk-NCZGGGWI.js} +2 -2
- package/dist/{chunk-XVQVF2TK.js → chunk-NHWDTOBN.js} +269 -230
- package/dist/chunk-NHWDTOBN.js.map +1 -0
- package/dist/{chunk-7ZTGMEXF.js → chunk-O5ZINWW3.js} +2 -2
- package/dist/{chunk-WWH7GJ42.js → chunk-OCK4D5PC.js} +2 -2
- package/dist/{chunk-G6L3REL3.js → chunk-OPFVXM2D.js} +2 -2
- package/dist/{chunk-FR7PK7ED.js → chunk-P4TV3TQ2.js} +2 -2
- package/dist/{chunk-P2EM5LKH.js → chunk-PMDOGXA2.js} +2 -2
- package/dist/{chunk-NM2II57L.js → chunk-PRKNAIGZ.js} +2 -1
- package/dist/chunk-PRKNAIGZ.js.map +1 -0
- package/dist/{chunk-MRF5V5CD.js → chunk-QGFR73SN.js} +2 -2
- package/dist/{chunk-6D3IWYNY.js → chunk-R2BIVU2Z.js} +354 -292
- package/dist/chunk-R2BIVU2Z.js.map +1 -0
- package/dist/{chunk-HG3CG557.js → chunk-RLVI2M5Q.js} +2 -2
- package/dist/{chunk-HHL4MX3W.js → chunk-SXTVZ6JL.js} +2 -2
- package/dist/{chunk-CLSKGTAT.js → chunk-TECK5IVY.js} +2 -2
- package/dist/{chunk-SNS3DWG6.js → chunk-TVE7W67N.js} +2 -2
- package/dist/{chunk-KYSSUY66.js → chunk-U2CAGMUD.js} +2 -2
- package/dist/{chunk-XLCEFUAU.js → chunk-UVVFPCPX.js} +2 -2
- package/dist/{chunk-KQJUEQ2E.js → chunk-UW6LBFYN.js} +5 -5
- package/dist/{chunk-SEA56G6S.js → chunk-V4XE263I.js} +1 -1
- package/dist/chunk-V4XE263I.js.map +1 -0
- package/dist/{chunk-JL5HXL25.js → chunk-V6SBA5O7.js} +3 -3
- package/dist/{chunk-R7WYAXPO.js → chunk-VHSQU3RO.js} +81 -42
- package/dist/chunk-VHSQU3RO.js.map +1 -0
- package/dist/{chunk-B7VD36TI.js → chunk-WHROVQ5Q.js} +3 -3
- package/dist/{chunk-LDHR465K.js → chunk-Y3XPSGNF.js} +2 -2
- package/dist/{chunk-JPY3RMG2.js → chunk-ZORS5BG5.js} +4 -4
- package/dist/{chunk-KXY4HW2Y.js → chunk-ZXF3O7P4.js} +2 -2
- package/dist/cli.js +47 -47
- package/dist/coding/export-okf-codegraph.js +2 -2
- package/dist/compounding/engine.js +4 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -3
- package/dist/connectors/codex-materialize-runner.js +3 -3
- package/dist/connectors/index.js +3 -3
- package/dist/convergence-refresh.js +5 -5
- package/dist/corpus-watermark.js +5 -5
- package/dist/entity-retrieval.js +3 -3
- package/dist/external-wiki-access.js +17 -17
- package/dist/extraction.js +6 -6
- package/dist/harmonic-retrieval.js +3 -3
- package/dist/index.js +61 -61
- package/dist/location/index.js +5 -5
- package/dist/maintenance/memory-governance.js +3 -3
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
- package/dist/maintenance/rebuild-memory-projection-runner.js +5 -5
- package/dist/maintenance/rebuild-memory-projection.js +4 -4
- package/dist/memory-browse-operations.js +17 -17
- package/dist/namespaces/migrate.js +4 -4
- package/dist/namespaces/storage.js +3 -3
- package/dist/operator-doctor-corpus.js +6 -6
- package/dist/operator-toolkit.js +12 -12
- package/dist/orchestration/buffer-drain-runner.js +61 -61
- package/dist/orchestration/consolidation-run.d.ts.map +1 -1
- package/dist/orchestration/extraction-drain.d.ts +4 -4
- package/dist/orchestration/extraction-drain.d.ts.map +1 -1
- package/dist/orchestration/extraction-persist-deps.d.ts +0 -2
- package/dist/orchestration/extraction-persist-deps.d.ts.map +1 -1
- package/dist/orchestration/extraction-persist.d.ts +10 -4
- package/dist/orchestration/extraction-persist.d.ts.map +1 -1
- package/dist/orchestration/extraction-queue-coordinator.d.ts +67 -33
- package/dist/orchestration/extraction-queue-coordinator.d.ts.map +1 -1
- package/dist/orchestration/extraction-run-helpers.d.ts +3 -2
- package/dist/orchestration/extraction-run-helpers.d.ts.map +1 -1
- package/dist/orchestration/extraction-run.d.ts +4 -14
- package/dist/orchestration/extraction-run.d.ts.map +1 -1
- package/dist/orchestration/fact-dedup-window.d.ts +49 -0
- package/dist/orchestration/fact-dedup-window.d.ts.map +1 -0
- package/dist/orchestration/maintenance.js +13 -13
- package/dist/orchestration/provider-breaker.d.ts +58 -0
- package/dist/orchestration/provider-breaker.d.ts.map +1 -0
- package/dist/orchestrator.d.ts +2 -17
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +61 -61
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-navigate-access.js +2 -2
- package/dist/recall-navigate-disclosure.js +2 -2
- package/dist/recall-navigate.js +2 -2
- package/dist/recall-navigation-operations.js +17 -17
- package/dist/recall-navigation.js +16 -16
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.js +2 -2
- package/dist/resume-bundles.js +4 -4
- package/dist/semantic-consolidation.js +4 -4
- package/dist/semantic-rule-promotion.js +3 -3
- package/dist/semantic-rule-verifier.js +3 -3
- package/dist/source-agent-qualifier.js +5 -5
- package/dist/standup/build.js +3 -3
- package/dist/storage/profile-mutation.d.ts +25 -0
- package/dist/storage/profile-mutation.d.ts.map +1 -0
- package/dist/storage.d.ts +4 -6
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +2 -2
- package/dist/support-passport/index.js +19 -19
- package/dist/threading.d.ts +21 -4
- package/dist/threading.d.ts.map +1 -1
- package/dist/threading.js +1 -1
- package/dist/transfer/export-okf.js +3 -3
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/verified-recall.js +3 -3
- package/dist/who-knows-cli.js +4 -4
- package/dist/who-knows.js +3 -3
- package/package.json +2 -2
- package/src/access-observe-replay-durability.test.ts +1 -1
- package/src/buffer-drain-handover.test.ts +3 -3
- package/src/buffer-drop-extraction-chunk.test.ts +0 -1
- package/src/config.test.ts +12 -0
- package/src/config.ts +2 -0
- package/src/connector-provenance-lifecycle.test.ts +5 -8
- package/src/fact-dedup-window.test.ts +116 -0
- package/src/faithfulness-graph-guard.test.ts +11 -6
- package/src/harmonic-construction.test.ts +16 -10
- package/src/orchestration/consolidation-profile-race.test.ts +178 -0
- package/src/orchestration/consolidation-run.ts +19 -7
- package/src/orchestration/extraction-drain.ts +10 -3
- package/src/orchestration/extraction-persist-deps.ts +0 -2
- package/src/orchestration/extraction-persist.ts +159 -148
- package/src/orchestration/extraction-queue-coordinator.ts +167 -56
- package/src/orchestration/extraction-run-helpers.ts +5 -4
- package/src/orchestration/extraction-run.test.ts +1 -2
- package/src/orchestration/extraction-run.ts +56 -99
- package/src/orchestration/fact-dedup-window.ts +122 -0
- package/src/orchestration/provider-breaker.test.ts +89 -0
- package/src/orchestration/provider-breaker.ts +158 -0
- package/src/orchestration/turn-ingestion.ts +5 -5
- package/src/orchestrator-extraction-queue.test.ts +179 -8
- package/src/orchestrator.ts +7 -23
- package/src/storage/profile-mutation.ts +119 -0
- package/src/storage-append-profile.test.ts +114 -0
- package/src/storage.ts +17 -48
- package/src/testing/orchestrator-lite.ts +1 -1
- package/src/threading.test.ts +153 -0
- package/src/threading.ts +95 -45
- package/src/types.ts +2 -0
- package/dist/chunk-2ZSRACNK.js.map +0 -1
- package/dist/chunk-6D3IWYNY.js.map +0 -1
- package/dist/chunk-NM2II57L.js.map +0 -1
- package/dist/chunk-R7WYAXPO.js.map +0 -1
- package/dist/chunk-SEA56G6S.js.map +0 -1
- package/dist/chunk-XVQVF2TK.js.map +0 -1
- /package/dist/{chunk-KISOMGY2.js.map → chunk-3RHU5MD7.js.map} +0 -0
- /package/dist/{chunk-3LSTL6EY.js.map → chunk-4MPAKYZU.js.map} +0 -0
- /package/dist/{chunk-OVL5AD3N.js.map → chunk-4NV7O76Q.js.map} +0 -0
- /package/dist/{chunk-BH7NVSEC.js.map → chunk-4SOWMA55.js.map} +0 -0
- /package/dist/{chunk-GROHOWR5.js.map → chunk-5MGKGEL7.js.map} +0 -0
- /package/dist/{chunk-ZPLQ27MY.js.map → chunk-5UM4H64E.js.map} +0 -0
- /package/dist/{chunk-2DNFRLLL.js.map → chunk-5Y6VA6X2.js.map} +0 -0
- /package/dist/{chunk-GRAUQXQB.js.map → chunk-6WKWL53V.js.map} +0 -0
- /package/dist/{chunk-HOR4RMUM.js.map → chunk-75DCOS6I.js.map} +0 -0
- /package/dist/{chunk-25QK3LR2.js.map → chunk-7O2MC42R.js.map} +0 -0
- /package/dist/{chunk-7ETWIBTO.js.map → chunk-ADYP7HXE.js.map} +0 -0
- /package/dist/{chunk-FUDKGJDN.js.map → chunk-AVGDYYMA.js.map} +0 -0
- /package/dist/{chunk-ECF627KC.js.map → chunk-AYJQ644F.js.map} +0 -0
- /package/dist/{chunk-T22FBDG3.js.map → chunk-B3MWELZ3.js.map} +0 -0
- /package/dist/{chunk-DRTSPRWL.js.map → chunk-B4DXREWC.js.map} +0 -0
- /package/dist/{chunk-5UEGL5BF.js.map → chunk-CI3MAAIY.js.map} +0 -0
- /package/dist/{chunk-7JYK7NNY.js.map → chunk-CTH2CQCB.js.map} +0 -0
- /package/dist/{chunk-UVHXLVFJ.js.map → chunk-EURPSF4Y.js.map} +0 -0
- /package/dist/{chunk-VPEA63FC.js.map → chunk-EWJZZDRG.js.map} +0 -0
- /package/dist/{chunk-BOZQAUAJ.js.map → chunk-EXQJMFRF.js.map} +0 -0
- /package/dist/{chunk-UH6ROXFJ.js.map → chunk-GGD2YDS6.js.map} +0 -0
- /package/dist/{chunk-5JABRT5G.js.map → chunk-GHHQLSSY.js.map} +0 -0
- /package/dist/{chunk-N4T5FW6U.js.map → chunk-GJ4HU6LK.js.map} +0 -0
- /package/dist/{chunk-HRRAOTOQ.js.map → chunk-H5DIRCZP.js.map} +0 -0
- /package/dist/{chunk-434E4BTO.js.map → chunk-HH73M65H.js.map} +0 -0
- /package/dist/{chunk-LIGZO7XN.js.map → chunk-HPB5TF55.js.map} +0 -0
- /package/dist/{chunk-E4QIX2OB.js.map → chunk-IAGVM7EY.js.map} +0 -0
- /package/dist/{chunk-YJQJRXUI.js.map → chunk-IG3EZ3TF.js.map} +0 -0
- /package/dist/{chunk-KNMSD2MQ.js.map → chunk-IVUVQPTQ.js.map} +0 -0
- /package/dist/{chunk-XOFIJGB2.js.map → chunk-IZBIDPMY.js.map} +0 -0
- /package/dist/{chunk-HFEGRMFG.js.map → chunk-JLGBJ4AX.js.map} +0 -0
- /package/dist/{chunk-BBHKN2CN.js.map → chunk-JLMOH5JA.js.map} +0 -0
- /package/dist/{chunk-TPCRDPUY.js.map → chunk-KZSGBWOJ.js.map} +0 -0
- /package/dist/{chunk-SHHZWSSE.js.map → chunk-KZZ5EZ7O.js.map} +0 -0
- /package/dist/{chunk-FKGLJJVS.js.map → chunk-LN4X2NDA.js.map} +0 -0
- /package/dist/{chunk-5ZHFPUBC.js.map → chunk-MOIJWWNA.js.map} +0 -0
- /package/dist/{chunk-KO224R36.js.map → chunk-NCZGGGWI.js.map} +0 -0
- /package/dist/{chunk-7ZTGMEXF.js.map → chunk-O5ZINWW3.js.map} +0 -0
- /package/dist/{chunk-WWH7GJ42.js.map → chunk-OCK4D5PC.js.map} +0 -0
- /package/dist/{chunk-G6L3REL3.js.map → chunk-OPFVXM2D.js.map} +0 -0
- /package/dist/{chunk-FR7PK7ED.js.map → chunk-P4TV3TQ2.js.map} +0 -0
- /package/dist/{chunk-P2EM5LKH.js.map → chunk-PMDOGXA2.js.map} +0 -0
- /package/dist/{chunk-MRF5V5CD.js.map → chunk-QGFR73SN.js.map} +0 -0
- /package/dist/{chunk-HG3CG557.js.map → chunk-RLVI2M5Q.js.map} +0 -0
- /package/dist/{chunk-HHL4MX3W.js.map → chunk-SXTVZ6JL.js.map} +0 -0
- /package/dist/{chunk-CLSKGTAT.js.map → chunk-TECK5IVY.js.map} +0 -0
- /package/dist/{chunk-SNS3DWG6.js.map → chunk-TVE7W67N.js.map} +0 -0
- /package/dist/{chunk-KYSSUY66.js.map → chunk-U2CAGMUD.js.map} +0 -0
- /package/dist/{chunk-XLCEFUAU.js.map → chunk-UVVFPCPX.js.map} +0 -0
- /package/dist/{chunk-KQJUEQ2E.js.map → chunk-UW6LBFYN.js.map} +0 -0
- /package/dist/{chunk-JL5HXL25.js.map → chunk-V6SBA5O7.js.map} +0 -0
- /package/dist/{chunk-B7VD36TI.js.map → chunk-WHROVQ5Q.js.map} +0 -0
- /package/dist/{chunk-LDHR465K.js.map → chunk-Y3XPSGNF.js.map} +0 -0
- /package/dist/{chunk-JPY3RMG2.js.map → chunk-ZORS5BG5.js.map} +0 -0
- /package/dist/{chunk-KXY4HW2Y.js.map → chunk-ZXF3O7P4.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-persist-deps.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-persist-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;IAC/C,YAAY,EAAE,MAAM,gBAAgB,CAAC;IACrC,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;IAC1E,WAAW,EAAE,MAAM,cAAc,CAAC;IAClC,MAAM,EAAE,MAAM,aAAa,CAAC;IAC5B,oBAAoB,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtD,mBAAmB,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;IACxD,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;IAC9C,
|
|
1
|
+
{"version":3,"file":"extraction-persist-deps.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-persist-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,20 @@ import { type GraphConstructionCapabilitySet, type MemoryLifecycleCapabilitySet
|
|
|
4
4
|
import type { ResolvedScopeProfilePlan } from "../namespaces/scope-profiles.js";
|
|
5
5
|
import type { ExtractionResult } from "../types.js";
|
|
6
6
|
import type { ExtractionPersistDeps } from "./extraction-persist-deps.js";
|
|
7
|
+
/** One extraction run's persist outcome: per-run values, no shared side channels (#1526). */
|
|
8
|
+
export interface ExtractionPersistResult {
|
|
9
|
+
persistedIds: string[];
|
|
10
|
+
memoryPathById: Map<string, string>;
|
|
11
|
+
/** Facts the judge deferred — drives this run's buffer retention (#562). */
|
|
12
|
+
deferredCount: number;
|
|
13
|
+
/** Persisted pending_review ids, excluded from the thread episode set (#1635). */
|
|
14
|
+
pendingReviewIds: string[];
|
|
15
|
+
}
|
|
7
16
|
export declare class ExtractionPersistCoordinator {
|
|
8
17
|
private readonly deps;
|
|
9
18
|
constructor(deps: ExtractionPersistDeps);
|
|
10
19
|
private get config();
|
|
11
20
|
private get dependencyPropagationDelivery();
|
|
12
|
-
persistExtraction(result: ExtractionResult, storage: StorageManager, threadIdForExtraction?: string | null, sourceContext?: ExtractionSourceContext, baseNamespace?: string, scopeProfileWritePlan?: ResolvedScopeProfilePlan | null, sourceText?: string, graphCaps?: GraphConstructionCapabilitySet, lifecycleCaps?: MemoryLifecycleCapabilitySet): Promise<
|
|
13
|
-
persistedIds: string[];
|
|
14
|
-
memoryPathById: Map<string, string>;
|
|
15
|
-
}>;
|
|
21
|
+
persistExtraction(result: ExtractionResult, storage: StorageManager, threadIdForExtraction?: string | null, sourceContext?: ExtractionSourceContext, baseNamespace?: string, scopeProfileWritePlan?: ResolvedScopeProfilePlan | null, sourceText?: string, graphCaps?: GraphConstructionCapabilitySet, lifecycleCaps?: MemoryLifecycleCapabilitySet): Promise<ExtractionPersistResult>;
|
|
16
22
|
}
|
|
17
23
|
//# sourceMappingURL=extraction-persist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-persist.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-persist.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"extraction-persist.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-persist.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAgBxG,OAAO,EAA6C,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAM7F,OAAO,EAUgE,KAAK,8BAA8B,EACxG,KAAK,4BAA4B,EAClC,MAAM,oBAAoB,CAAC;AAqD5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAGhF,OAAO,KAAK,EAEV,gBAAgB,EAQjB,MAAM,aAAa,CAAC;AAWrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAmB1E,6FAA6F;AAC7F,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAAa,4BAA4B;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,qBAAqB;IAE9C,OAAO,KAAK,MAAM,GAEjB;IACD,OAAO,KAAK,6BAA6B,GAGxC;IAEK,iBAAiB,CACrB,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,GAAE,8BAAuF,EAClG,aAAa,GAAE,4BAAmF,GACjG,OAAO,CAAC,uBAAuB,CAAC;CAkxFpC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Extraction queue coordinator — extracted from the orchestrator (issue #1526).
|
|
3
3
|
*
|
|
4
|
-
* Owns the background
|
|
5
|
-
*
|
|
4
|
+
* Owns the background bounded-parallel queue that drains extraction tasks
|
|
5
|
+
* while avoiding races between concurrent flush/heartbeat/bulk-import
|
|
6
6
|
* triggers:
|
|
7
|
-
* - queue state (`
|
|
7
|
+
* - queue state (`queue` + `processing` + per-task preempt slots)
|
|
8
8
|
* - the scheduling trigger (start the drain when the first task lands and
|
|
9
|
-
*
|
|
10
|
-
* - the
|
|
9
|
+
* capacity is free)
|
|
10
|
+
* - the drain loop itself (`processQueue`): up to `concurrency` tasks run
|
|
11
|
+
* at once; tasks sharing an entry `key` (a buffer/session) never run
|
|
12
|
+
* concurrently, so the same buffer is never extracted twice in parallel
|
|
11
13
|
* - failure classification (`logExtractionQueueFailure`) — issue #549:
|
|
12
14
|
* AbortError from session transitions logs at debug, real failures at
|
|
13
15
|
* error
|
|
@@ -19,41 +21,67 @@
|
|
|
19
21
|
* orchestrator builds each task closure and hands it to `enqueue`; the
|
|
20
22
|
* coordinator owns only the queue mechanics.
|
|
21
23
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
24
|
+
* Preemption is per task: each running task receives an
|
|
25
|
+
* `ExtractionPreemptHandle` at run time and registers its own abort, so two
|
|
26
|
+
* concurrent automatic extractions cannot clobber each other's registration
|
|
27
|
+
* (the previous single-slot `runningPreempt` could only hold one).
|
|
28
|
+
* `preemptRunning` aborts at most ONE armed task — the requested key's own
|
|
29
|
+
* running work when it is armed, else the most recently armed task — which
|
|
30
|
+
* is exactly the single-slot semantics generalized from one worker to N.
|
|
25
31
|
*/
|
|
32
|
+
/** Preemption registration for ONE running task. Armed work can be aborted
|
|
33
|
+
* by a fail-closed flush; disarmed work (past persist) cannot. */
|
|
34
|
+
export interface ExtractionPreemptHandle {
|
|
35
|
+
/** Register the task's abort (replacing any previous registration). */
|
|
36
|
+
arm(abort: () => void): void;
|
|
37
|
+
/** Remove the task's registration (idempotent). */
|
|
38
|
+
disarm(): void;
|
|
39
|
+
}
|
|
40
|
+
/** A queued task; the coordinator passes the task's own preempt handle. */
|
|
41
|
+
export type ExtractionQueueTask = (preempt?: ExtractionPreemptHandle) => Promise<void>;
|
|
42
|
+
export interface ExtractionQueueEnqueueOptions {
|
|
43
|
+
/** Jump the queue and preempt the running automatic work (force flush). */
|
|
44
|
+
front?: boolean;
|
|
45
|
+
/** Buffer/session key. Tasks sharing a key never run concurrently. */
|
|
46
|
+
key?: string;
|
|
47
|
+
}
|
|
26
48
|
/**
|
|
27
|
-
* Coordinates the background
|
|
28
|
-
*
|
|
49
|
+
* Coordinates the background bounded-parallel extraction queue. Owns the
|
|
50
|
+
* queue array, the per-key in-flight guard, and the per-task preempt slots.
|
|
29
51
|
*/
|
|
30
52
|
export declare class ExtractionQueueCoordinator {
|
|
53
|
+
/** Maximum tasks that run at the same time (config `extractionQueueConcurrency`). */
|
|
54
|
+
private readonly concurrency;
|
|
31
55
|
/**
|
|
32
|
-
* Background
|
|
33
|
-
*
|
|
56
|
+
* Background queue for extractions (agent_end optimization). Queue stores
|
|
57
|
+
* tasks that resolve when extraction should run.
|
|
34
58
|
*/
|
|
35
59
|
private readonly queue;
|
|
36
|
-
/** Whether the
|
|
60
|
+
/** Whether the drain loop is currently running. */
|
|
37
61
|
private processing;
|
|
38
62
|
private accepting;
|
|
39
|
-
|
|
63
|
+
/** Buffer keys with a task currently running (per-key exclusion). */
|
|
64
|
+
private readonly activeKeys;
|
|
65
|
+
/** Preempt slots of the currently running tasks, keyed by slot identity. */
|
|
66
|
+
private readonly preemptSlots;
|
|
67
|
+
private preemptSeq;
|
|
68
|
+
/** Resolves the processor's park while a new task arrives mid-drain. */
|
|
69
|
+
private wake?;
|
|
70
|
+
constructor(concurrency?: number);
|
|
40
71
|
/** Current queue depth (idle-wait + test seam). */
|
|
41
72
|
get length(): number;
|
|
42
|
-
/** Whether the
|
|
73
|
+
/** Whether the drain loop is currently running (idle-wait + test seam). */
|
|
43
74
|
get isProcessing(): boolean;
|
|
75
|
+
/** How many tasks may run at once (test seam + diagnostics). */
|
|
76
|
+
get maxConcurrency(): number;
|
|
44
77
|
/**
|
|
45
|
-
* Enqueue a task and start the
|
|
78
|
+
* Enqueue a task and start the processor when capacity is free. This is
|
|
46
79
|
* the production entry point — the orchestrator's `queueBufferedExtraction`
|
|
47
|
-
* builds each task closure and hands it here.
|
|
80
|
+
* builds each task closure and hands it here with its buffer key.
|
|
48
81
|
*/
|
|
49
|
-
enqueue(task:
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/** Automatic extraction registers this so a fail-closed flush can abort it. */
|
|
53
|
-
beginPreemptable(abort: () => void): void;
|
|
54
|
-
endPreemptable(): void;
|
|
55
|
-
preemptRunning(): void;
|
|
56
|
-
runPreemptable<T>(preemptable: boolean, parent: AbortSignal | undefined, run: (signal: AbortSignal) => Promise<T>): Promise<T>;
|
|
82
|
+
enqueue(task: ExtractionQueueTask, options?: ExtractionQueueEnqueueOptions): boolean;
|
|
83
|
+
preemptRunning(preferredKey?: string): void;
|
|
84
|
+
runPreemptable<T>(preempt: ExtractionPreemptHandle | undefined, preemptable: boolean, parent: AbortSignal | undefined, run: (signal: AbortSignal) => Promise<T>): Promise<T>;
|
|
57
85
|
/** Stop new producers from entering the queue. */
|
|
58
86
|
stopAccepting(): void;
|
|
59
87
|
/** Resume producer acceptance after an orchestrator re-initializes. */
|
|
@@ -61,16 +89,20 @@ export declare class ExtractionQueueCoordinator {
|
|
|
61
89
|
/** Stop new producers and wait for all accepted work to finish. */
|
|
62
90
|
pauseAndDrain(timeoutMs?: number): Promise<boolean>;
|
|
63
91
|
/**
|
|
64
|
-
* Background
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* semantics directly.
|
|
92
|
+
* Background queue processor. Runs up to `concurrency` tasks at a time,
|
|
93
|
+
* never two tasks with the same entry key. Called automatically when items
|
|
94
|
+
* are queued via `enqueue`; also exposed for the characterization tests
|
|
95
|
+
* that push raw tasks and assert drain semantics directly.
|
|
69
96
|
*/
|
|
70
97
|
processQueue(): Promise<void>;
|
|
98
|
+
/** Take the next queue entry whose key is not already running (FIFO within a key). */
|
|
99
|
+
private takeRunnable;
|
|
100
|
+
/** Run one entry with its own preempt slot; failures are classified + logged. */
|
|
101
|
+
private runEntry;
|
|
102
|
+
private createPreemptHandle;
|
|
71
103
|
/**
|
|
72
104
|
* Classify + log a failure from either the per-task catch inside
|
|
73
|
-
* `
|
|
105
|
+
* `runEntry` or the outer `processQueue().catch(...)` in
|
|
74
106
|
* `enqueue()`. Issue #549: `throwIfRecallAborted`
|
|
75
107
|
* (used throughout `runExtraction`) raises an Error whose `name` is
|
|
76
108
|
* `"AbortError"`. That path fires when `before_reset` aborts a
|
|
@@ -98,9 +130,11 @@ export declare class ExtractionQueueCoordinator {
|
|
|
98
130
|
* pre-extraction `this.extractionQueue.push(...)` used by the
|
|
99
131
|
* characterization tests that drive the drain manually via `processQueue`.
|
|
100
132
|
*/
|
|
101
|
-
pushRaw(task:
|
|
133
|
+
pushRaw(task: ExtractionQueueTask, options?: {
|
|
134
|
+
key?: string;
|
|
135
|
+
}): void;
|
|
102
136
|
/** Remove + return the front task (test seam for the flush deadline tests). */
|
|
103
|
-
shift():
|
|
137
|
+
shift(): ExtractionQueueTask | undefined;
|
|
104
138
|
/**
|
|
105
139
|
* Force the processor-busy flag so `enqueue` does not auto-start the
|
|
106
140
|
* drain — used by the flush deadline test to simulate a busy queue and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-queue-coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-queue-coordinator.ts"],"names":[],"mappings":"AAAA
|
|
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;IA6BnC,sFAAsF;IACtF,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,7 +62,7 @@ export declare function runExtractionPostPersistBestEffort(runDeadlineAware: (op
|
|
|
62
62
|
export interface ExtractionDeferRetentionOptions {
|
|
63
63
|
clearBufferAfterExtraction: boolean;
|
|
64
64
|
extractionJudgeShadow: boolean;
|
|
65
|
-
|
|
65
|
+
deferredCount: number;
|
|
66
66
|
normalizedTurns: BufferTurn[];
|
|
67
67
|
bufferKey: string;
|
|
68
68
|
retainDeferredTurns: (bufferKey: string, turns: BufferTurn[], max: number) => Promise<void>;
|
|
@@ -90,7 +90,8 @@ export interface ExtractionPostPersistOptions {
|
|
|
90
90
|
propagateErrors?: boolean;
|
|
91
91
|
}) => Promise<void>;
|
|
92
92
|
extractionJudgeShadow: boolean;
|
|
93
|
-
|
|
93
|
+
/** Facts this run's persist deferred to the judge — drives retention (#1523). */
|
|
94
|
+
deferredCount: number;
|
|
94
95
|
normalizedTurns: BufferTurn[];
|
|
95
96
|
bufferKey: string;
|
|
96
97
|
retainDeferredTurns: (bufferKey: string, turns: BufferTurn[], max: number) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extraction-run-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-run-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,kBAAkB,EAAE,eAAe,GAAG,SAAS,GAC9C,WAAW,GAAG,SAAS,CAGzB;AAGD,sIAAsI;AACtI,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,sBAAsB,GAAG,mBAAmB,CAInH;AAMD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAyB7E;AAED,yFAAyF;AACzF,eAAO,MAAM,kCAAkC,MAAM,CAAC;AAEtD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,sBAAsB,CAAC;CAC1C;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE;QACP,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;QACvC,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,MAAoB,GAC9B,MAAM,CAwBR;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,SAAS;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EAChF,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,UAAU,EAAE,MAAM,GACjB,CAAC,EAAE,CAIL;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,GAAG,SAAS,CActF;AAED,wBAAsB,kCAAkC,CACtD,gBAAgB,EAAE,CAChB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACjC,KAAK,EAAE,MAAM,EACb,iBAAiB,CAAC,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,KAC1D,OAAO,CAAC,OAAO,CAAC,EACrB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACvF,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,0BAA0B,EAAE,OAAO,CAAC;IACpC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,
|
|
1
|
+
{"version":3,"file":"extraction-run-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-run-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,10 +40,7 @@ export interface ExtractionRunCoordinatorDeps {
|
|
|
40
40
|
getExtraction: () => Pick<ExtractionEngine, "extract">;
|
|
41
41
|
getStorageRouter: () => Pick<NamespaceStorageRouter, "storageFor">;
|
|
42
42
|
getThreading: () => Pick<ThreadingManager, "processTurn" | "updateThreadTitle">;
|
|
43
|
-
persistExtraction: (result: ExtractionResult, storage: StorageManager, threadIdForExtraction?: string | null, sourceContext?: ExtractionSourceContext, baseNamespace?: string, scopeProfileWritePlan?: ResolvedScopeProfilePlan | null, sourceText?: string, graphCaps?: GraphConstructionCapabilitySet, lifecycleCaps?: MemoryLifecycleCapabilitySet) => Promise<
|
|
44
|
-
persistedIds: string[];
|
|
45
|
-
memoryPathById: Map<string, string>;
|
|
46
|
-
}>;
|
|
43
|
+
persistExtraction: (result: ExtractionResult, storage: StorageManager, threadIdForExtraction?: string | null, sourceContext?: ExtractionSourceContext, baseNamespace?: string, scopeProfileWritePlan?: ResolvedScopeProfilePlan | null, sourceText?: string, graphCaps?: GraphConstructionCapabilitySet, lifecycleCaps?: MemoryLifecycleCapabilitySet) => Promise<ExtractionPersistResult>;
|
|
47
44
|
maybeCapturePassiveCorrections: (turns: readonly BufferTurn[], opts: {
|
|
48
45
|
sessionKey: string;
|
|
49
46
|
principal?: string;
|
|
@@ -56,7 +53,7 @@ export interface ExtractionRunCoordinatorDeps {
|
|
|
56
53
|
getCodingContextForSession: (sessionKey: string) => CodingContext | null;
|
|
57
54
|
applyCodingNamespaceOverlay: (sessionKey: string, namespace: string) => string;
|
|
58
55
|
boxBuilderFor: (storage: StorageManager) => Pick<BoxBuilder, "onExtraction">;
|
|
59
|
-
appendPersistedThreadEpisodes: (threadId: string, ids: string[]) => Promise<void>;
|
|
56
|
+
appendPersistedThreadEpisodes: (threadId: string, ids: string[], pendingReviewIds: string[]) => Promise<void>;
|
|
60
57
|
maybeScheduleConsolidation: (nonZero: boolean) => void;
|
|
61
58
|
requestQmdMaintenance: () => void;
|
|
62
59
|
runTierMigrationCycle: (storage: StorageManager, trigger: "extraction" | "maintenance" | "manual", options?: {
|
|
@@ -64,11 +61,11 @@ export interface ExtractionRunCoordinatorDeps {
|
|
|
64
61
|
limitOverride?: number;
|
|
65
62
|
force?: boolean;
|
|
66
63
|
}) => Promise<TierMigrationCycleSummary>;
|
|
67
|
-
getLastPersistExtractionDeferredCount: () => number;
|
|
68
64
|
recordProcessedExtractionFingerprint: (storage: StorageManager, fingerprint: string, preloadedMeta?: Awaited<ReturnType<StorageManager["loadMeta"]>>) => Promise<void>;
|
|
69
65
|
}
|
|
70
66
|
import { capExtractionRetryStateEntries, computeExtractionRetryNextEligibleMs, deriveSourceConnector, deriveTopicsFromExtraction } from "./extraction-run-helpers.js";
|
|
71
67
|
import type { ExtractionResilienceStatus } from "./extraction-run-helpers.js";
|
|
68
|
+
import type { ExtractionPersistResult } from "./extraction-persist.js";
|
|
72
69
|
export { capExtractionRetryStateEntries, computeExtractionRetryNextEligibleMs, deriveSourceConnector, deriveTopicsFromExtraction, };
|
|
73
70
|
export type { ExtractionResilienceStatus };
|
|
74
71
|
/**
|
|
@@ -81,7 +78,7 @@ export declare class ExtractionRunCoordinator {
|
|
|
81
78
|
private readonly recentExtractionFingerprints;
|
|
82
79
|
private readonly extractionRetryState;
|
|
83
80
|
private readonly hydratedRetryNamespaces;
|
|
84
|
-
private providerBreaker;
|
|
81
|
+
private readonly providerBreaker;
|
|
85
82
|
constructor(deps: ExtractionRunCoordinatorDeps);
|
|
86
83
|
private get config();
|
|
87
84
|
private latestSourceValidAtFromTurns;
|
|
@@ -97,13 +94,6 @@ export declare class ExtractionRunCoordinator {
|
|
|
97
94
|
* Cross-process coherence: a fresh coordinator hydrates from the shared
|
|
98
95
|
* meta.json, so a failure persisted by another process is honored here. */
|
|
99
96
|
private hydrateRetryStateFromMeta;
|
|
100
|
-
private logBreakerTransition;
|
|
101
|
-
/** True while the breaker suppresses non-forced attempts. Flips an expired
|
|
102
|
-
* `open` breaker to `half_open`, which allows exactly one probe (the next
|
|
103
|
-
* non-forced attempt) because the extraction queue is a serial drain. */
|
|
104
|
-
private isProviderBreakerOpen;
|
|
105
|
-
private onProviderFailure;
|
|
106
|
-
private resetProviderBreakerOnSuccess;
|
|
107
97
|
/** Rebuild `meta.extractionRetryState` from the in-memory namespace mirror,
|
|
108
98
|
* bounded to the newest entries, and prune the mirror to match. */
|
|
109
99
|
private persistRetryStateToMeta;
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"extraction-run.d.ts","sourceRoot":"","sources":["../../src/orchestration/extraction-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type StorageManager } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Fact-dedup commit window (codex P2, #1526): with extractionQueueConcurrency
|
|
4
|
+
* > 1 (or daemon + external drain workers), two sessions can both pass the
|
|
5
|
+
* content-hash check at persist time and both write, producing duplicate
|
|
6
|
+
* active copies — the persist-time checks run well before the write, and
|
|
7
|
+
* writeMemory mints a fresh id per write. This module serializes the short
|
|
8
|
+
* "final recheck → write" window per storage dir (in-process chain +
|
|
9
|
+
* fail-closed cross-process fact-dedup.lock, mirroring the profile/meta lock
|
|
10
|
+
* shape: bounded, no LLM or corpus-scale work planned inside, throw BEFORE
|
|
11
|
+
* any read/write when the lock is not acquired). The persist-time check stays
|
|
12
|
+
* OUTSIDE the window exactly like the consolidation LLM call stays outside
|
|
13
|
+
* commitConsolidatedProfile.
|
|
14
|
+
*/
|
|
15
|
+
export interface FactDedupProbe {
|
|
16
|
+
hasContentHashDedup(storage: StorageManager, key: string): Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
interface FactDedupMatchOptions {
|
|
19
|
+
readonly category: string;
|
|
20
|
+
readonly contentHashDedupKey: string;
|
|
21
|
+
readonly connector?: string;
|
|
22
|
+
readonly citationEnabled: boolean;
|
|
23
|
+
readonly citationTemplate: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Connector-aware duplicate confirm: same final semantics as the persist-time
|
|
27
|
+
* check — an authoritative index miss is a clean NOT-duplicate, a hash hit or
|
|
28
|
+
* a non-authoritative/failed lookup must be confirmed against the hot+cold
|
|
29
|
+
* corpus (same category, active, same normalized content, same connector),
|
|
30
|
+
* and a corpus-scan failure fails OPEN so an unverifiable state cannot
|
|
31
|
+
* silently drop content.
|
|
32
|
+
*/
|
|
33
|
+
export declare function confirmActiveFactDuplicate(probe: FactDedupProbe, storage: StorageManager, opts: FactDedupMatchOptions): Promise<boolean>;
|
|
34
|
+
export type FactDedupWindowOutcome<T> = {
|
|
35
|
+
suppressed: true;
|
|
36
|
+
} | {
|
|
37
|
+
suppressed: false;
|
|
38
|
+
result: T;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Run `write` inside the per-dir fact-dedup window: recheck `recheck` (the
|
|
42
|
+
* SAME confirm used at persist time, now under the lock) and suppress as a
|
|
43
|
+
* duplicate when a concurrent session committed the same content first;
|
|
44
|
+
* otherwise write. Lock contention throws (fail closed) — never an unlocked
|
|
45
|
+
* write; the extraction retry path retains the accepted turns.
|
|
46
|
+
*/
|
|
47
|
+
export declare function persistUnderFactDedupWindow<T>(storageDir: string, recheck: () => Promise<boolean>, write: () => Promise<T>): Promise<FactDedupWindowOutcome<T>>;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=fact-dedup-window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fact-dedup-window.d.ts","sourceRoot":"","sources":["../../src/orchestration/fact-dedup-window.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAMpE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7E;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAiBD;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,OAAO,CAAC,CA8BlB;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAEhG;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAAC,CAAC,EACjD,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAgBpC"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MaintenanceScheduler
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-JLGBJ4AX.js";
|
|
4
|
+
import "../chunk-5MGKGEL7.js";
|
|
5
5
|
import "../chunk-666A3MOW.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-O5ZINWW3.js";
|
|
7
|
+
import "../chunk-GHHQLSSY.js";
|
|
8
8
|
import "../chunk-5KBIOI4G.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-U2CAGMUD.js";
|
|
10
|
+
import "../chunk-HH73M65H.js";
|
|
11
|
+
import "../chunk-WHROVQ5Q.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-4SOWMA55.js";
|
|
17
|
+
import "../chunk-CI3MAAIY.js";
|
|
18
18
|
import "../chunk-OGXXGHW6.js";
|
|
19
19
|
import "../chunk-YUTT4ZTI.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-5UM4H64E.js";
|
|
21
|
+
import "../chunk-P4TV3TQ2.js";
|
|
22
22
|
import "../chunk-74AY3S7U.js";
|
|
23
23
|
import "../chunk-T6OZW2WR.js";
|
|
24
24
|
import "../chunk-QEDLJDHP.js";
|
|
@@ -26,7 +26,7 @@ import "../chunk-U4LUIE6Y.js";
|
|
|
26
26
|
import "../chunk-5YQXWVCP.js";
|
|
27
27
|
import "../chunk-TBBDFYXW.js";
|
|
28
28
|
import "../chunk-TOTT6S2V.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-NHWDTOBN.js";
|
|
30
30
|
import "../chunk-UHVXE24Y.js";
|
|
31
31
|
import "../chunk-QGVCFVX6.js";
|
|
32
32
|
import "../chunk-IGOW4TJE.js";
|
|
@@ -99,7 +99,7 @@ import "../chunk-YCVB7X56.js";
|
|
|
99
99
|
import "../chunk-PQVCH2AE.js";
|
|
100
100
|
import "../chunk-PJKTFXE2.js";
|
|
101
101
|
import "../chunk-W5BIQOAJ.js";
|
|
102
|
-
import "../chunk-
|
|
102
|
+
import "../chunk-V4XE263I.js";
|
|
103
103
|
import "../chunk-YBA52OKG.js";
|
|
104
104
|
import "../chunk-2D7BTSDW.js";
|
|
105
105
|
import "../chunk-353C5UNV.js";
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ExtractionFailureClass } from "../types.js";
|
|
2
|
+
export interface ProviderBreakerConfig {
|
|
3
|
+
readonly failureThreshold: number;
|
|
4
|
+
readonly cooldownMs: number;
|
|
5
|
+
readonly authCooldownMs: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ProbeOwnerToken {
|
|
8
|
+
readonly __probeOwner: true;
|
|
9
|
+
}
|
|
10
|
+
export interface ProviderBreakerSnapshot {
|
|
11
|
+
readonly state: "closed" | "open" | "half_open";
|
|
12
|
+
readonly openUntilMs: number;
|
|
13
|
+
readonly consecutiveFailures: number;
|
|
14
|
+
readonly lastReason: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ProbeAcquisition {
|
|
17
|
+
/** True when the attempt is suppressed (breaker open, or the half-open
|
|
18
|
+
* probe is owned by another attempt). */
|
|
19
|
+
readonly suppressed: boolean;
|
|
20
|
+
/** True when THIS attempt owns the single half-open probe and must
|
|
21
|
+
* terminate it via {@link failure}/{@link success} (with its token), or
|
|
22
|
+
* release it via {@link releaseProbe} on any early exit (deadline, abort,
|
|
23
|
+
* throw). */
|
|
24
|
+
readonly probe: boolean;
|
|
25
|
+
/** Opaque ownership token; only the matching token settles or releases the
|
|
26
|
+
* probe, so attempts that bypass the gate (forced extractions) can never
|
|
27
|
+
* release another attempt's in-flight probe. */
|
|
28
|
+
readonly token?: ProbeOwnerToken;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Provider circuit breaker with single-flight half-open probe OWNERSHIP
|
|
32
|
+
* (codex P2 on #3311): under extractionQueueConcurrency > 1 several sessions
|
|
33
|
+
* can pass an expired `open` breaker in the same window, and a wall-clock
|
|
34
|
+
* reservation either expires under a live long provider attempt (600s
|
|
35
|
+
* timeouts) or pins the breaker when an attempt dies without settling. So the
|
|
36
|
+
* probe is OWNED, not timed: exactly one attempt holds it from the
|
|
37
|
+
* open→half_open flip until its terminal `failure()`/`success()`, and any
|
|
38
|
+
* early exit releases it explicitly. A released-but-unfinished probe lets the
|
|
39
|
+
* next attempt re-probe; a retry backoff still throttles that namespace.
|
|
40
|
+
*/
|
|
41
|
+
export declare class ProviderCircuitBreaker {
|
|
42
|
+
private consecutiveFailures;
|
|
43
|
+
private openUntilMs;
|
|
44
|
+
private state;
|
|
45
|
+
private lastReason;
|
|
46
|
+
private probeHeld;
|
|
47
|
+
private probeToken;
|
|
48
|
+
acquire(now: number): ProbeAcquisition;
|
|
49
|
+
/** Release an owned probe on an attempt that exits without a terminal
|
|
50
|
+
* outcome (deadline, abort, throw). Only the matching owner releases;
|
|
51
|
+
* idempotent; state stays half_open so the next attempt re-probes. */
|
|
52
|
+
releaseProbe(token?: ProbeOwnerToken): void;
|
|
53
|
+
failure(cls: ExtractionFailureClass, now: number, config: ProviderBreakerConfig, probeToken?: ProbeOwnerToken): void;
|
|
54
|
+
success(probeToken?: ProbeOwnerToken): void;
|
|
55
|
+
snapshot(): ProviderBreakerSnapshot;
|
|
56
|
+
private logTransition;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=provider-breaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-breaker.d.ts","sourceRoot":"","sources":["../../src/orchestration/provider-breaker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B;8CAC0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;kBAGc;IACd,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;qDAEiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB;IAoBtC;;2EAEuE;IACvE,YAAY,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI;IAM3C,OAAO,CAAC,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAqCpH,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAmB3C,QAAQ,IAAI,uBAAuB;IASnC,OAAO,CAAC,aAAa;CAStB"}
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import { RecallSectionCoordinator } from "./orchestration/recall-section-coordin
|
|
|
22
22
|
import { QmdResultResolver } from "./orchestration/qmd-result-resolver.js";
|
|
23
23
|
import { ContradictionLinkingCoordinator } from "./orchestration/contradiction-linking-coordinator.js";
|
|
24
24
|
import { ExtractionRunCoordinator, type ExtractionRunResult, type ExtractionResilienceStatus } from "./orchestration/extraction-run.js";
|
|
25
|
+
import { type ExtractionPersistResult } from "./orchestration/extraction-persist.js";
|
|
25
26
|
import type { ExtractionSourceContext } from "./orchestration/extraction-origin-context.js";
|
|
26
27
|
import type { GraphRecallExpansionOptions, GraphRecallExpansionResult } from "./orchestration/graph-recall-coordinator.js";
|
|
27
28
|
import { type IngestReplayBatchOptions, type TurnIngestionOptions } from "./orchestration/turn-ingestion.js";
|
|
@@ -106,19 +107,6 @@ export declare class Orchestrator {
|
|
|
106
107
|
* (rule 11) — these hang off the orchestrator instance.
|
|
107
108
|
*/
|
|
108
109
|
private faithfulnessCounters;
|
|
109
|
-
/**
|
|
110
|
-
* Side-channel: number of facts deferred in the most recent
|
|
111
|
-
* `persistExtraction` call (issue #562, PR 2). The caller reads this after
|
|
112
|
-
* `persistExtraction` returns to decide whether to retain buffer turns for
|
|
113
|
-
* the next extraction pass. Not part of the return signature because many
|
|
114
|
-
* callers already destructure `persistedIds` by position.
|
|
115
|
-
*/
|
|
116
|
-
private lastPersistExtractionDeferredCount;
|
|
117
|
-
/**
|
|
118
|
-
* Side-channel (#1635): pending_review persisted ids from the last
|
|
119
|
-
* persistExtraction; runExtraction excludes them from the thread episode set.
|
|
120
|
-
*/
|
|
121
|
-
private lastPersistExtractionPendingReviewIds;
|
|
122
110
|
private readonly _fastGatewayLlm;
|
|
123
111
|
get fastGatewayLlm(): FallbackLlmClient | null;
|
|
124
112
|
getConsoleFaithfulnessDistribution(): FaithfulnessGateCounters | undefined;
|
|
@@ -707,10 +695,7 @@ export declare class Orchestrator {
|
|
|
707
695
|
requestQmdMaintenanceForTool(reason: string): void;
|
|
708
696
|
persistExtraction(result: ExtractionResult, storage: StorageManager, threadIdForExtraction?: string | null, sourceContext?: ExtractionSourceContext, baseNamespace?: string, scopeProfileWritePlan?: ResolvedScopeProfilePlan | null,
|
|
709
697
|
/** Verbatim source turn text the facts were extracted from (faithfulness gate #1576). */
|
|
710
|
-
sourceText?: string, graphCaps?: GraphConstructionCapabilitySet, lifecycleCaps?: MemoryLifecycleCapabilitySet): Promise<
|
|
711
|
-
persistedIds: string[];
|
|
712
|
-
memoryPathById: Map<string, string>;
|
|
713
|
-
}>;
|
|
698
|
+
sourceText?: string, graphCaps?: GraphConstructionCapabilitySet, lifecycleCaps?: MemoryLifecycleCapabilitySet): Promise<ExtractionPersistResult>;
|
|
714
699
|
/**
|
|
715
700
|
* Append persisted ids to the thread episode set, excluding pending_review
|
|
716
701
|
* fact ids (#1635) so they don't re-seed predecessor edges. Fail-open like
|