@remnic/core 9.69.37 → 9.69.39
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.d.ts +14 -12
- package/dist/access-admin-ops-surface.js +86 -83
- package/dist/access-authorization-probe.d.ts +14 -12
- package/dist/access-authorization-probe.js +87 -84
- package/dist/access-boundary.d.ts +14 -12
- package/dist/access-boundary.js +86 -83
- package/dist/access-cli.js +197 -191
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +2 -1
- package/dist/access-extraction-force-flush.d.ts +14 -12
- package/dist/access-extraction-force-flush.js +86 -83
- package/dist/access-health-types.d.ts +2 -1
- package/dist/access-http-briefing.d.ts +14 -12
- package/dist/access-http-briefing.js +87 -84
- package/dist/access-http-lcm-compaction.d.ts +14 -12
- package/dist/access-http-lifecycle-flush.d.ts +14 -12
- package/dist/access-http-offline-stream.d.ts +14 -12
- package/dist/access-http-query.d.ts +3 -2
- package/dist/access-http-query.js +88 -85
- package/dist/access-http.d.ts +15 -13
- package/dist/access-http.js +108 -105
- package/dist/access-identity-continuity-surface.d.ts +12 -10
- package/dist/access-identity-continuity-surface.js +86 -83
- package/dist/access-lcm-surface.d.ts +14 -12
- package/dist/access-lcm-surface.js +86 -83
- package/dist/access-mcp.d.ts +14 -12
- package/dist/access-mcp.js +97 -94
- package/dist/access-memory-search-fanout.d.ts +3 -2
- package/dist/{access-namespace-preflight-CV5cHujx.d.ts → access-namespace-preflight-DY4z6L5X.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +4 -3
- package/dist/access-namespace-preflight.js +86 -83
- package/dist/access-observe-transcript.d.ts +12 -10
- package/dist/access-observe-write-category.d.ts +37 -0
- package/dist/access-observe-write-category.js +34 -0
- package/dist/access-observe-write-surface.d.ts +17 -15
- package/dist/access-observe-write-surface.js +86 -83
- package/dist/access-offline-manifest.d.ts +12 -10
- package/dist/access-offline-manifest.js +15 -15
- package/dist/access-operations-batch.js +91 -88
- package/dist/access-operations.d.ts +17 -30
- package/dist/access-operations.js +96 -93
- package/dist/access-recall-concurrency.d.ts +14 -12
- package/dist/access-recall-concurrency.js +86 -83
- package/dist/access-recall-response.d.ts +14 -12
- package/dist/access-recall-response.js +86 -83
- package/dist/access-recall-surface.d.ts +14 -12
- package/dist/access-recall-surface.js +86 -83
- package/dist/access-schema.d.ts +210 -107
- package/dist/access-schema.js +9 -15
- package/dist/{access-service-DwHC7lcV.d.ts → access-service-MY4bsr_Q.d.ts} +101 -77
- package/dist/access-service-helpers.d.ts +14 -12
- package/dist/access-service.d.ts +14 -12
- package/dist/access-service.js +86 -83
- package/dist/access-surface-catalog.d.ts +14 -12
- package/dist/access-surface-catalog.js +88 -85
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-wearables-meetings-surface.d.ts +5 -3
- package/dist/action-confidence.d.ts +2 -1
- package/dist/active-memory-bridge.d.ts +2 -1
- package/dist/active-memory-bridge.js +3 -3
- package/dist/active-recall.d.ts +2 -1
- package/dist/active-recall.js +20 -17
- package/dist/active-recall.js.map +1 -1
- package/dist/activity/digest.d.ts +2 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/ambient-provenance.d.ts +2 -1
- package/dist/artifact-search.d.ts +2 -1
- package/dist/{auto-sync-FSRJDU63.js → auto-sync-RP4C6ZPF.js} +11 -9
- package/dist/{auto-sync-FSRJDU63.js.map → auto-sync-RP4C6ZPF.js.map} +1 -1
- package/dist/background-generation-config.d.ts +10 -0
- package/dist/background-generation-config.js +9 -0
- package/dist/background-generation.d.ts +25 -0
- package/dist/background-generation.js +11 -0
- package/dist/behavior-learner.d.ts +2 -1
- package/dist/behavior-signals.d.ts +2 -1
- package/dist/bootstrap.d.ts +12 -10
- package/dist/briefing-window.d.ts +3 -2
- package/dist/briefing.d.ts +3 -2
- package/dist/briefing.js +27 -26
- package/dist/buffer-surprise-report.d.ts +2 -1
- package/dist/buffer-turn-helpers.d.ts +2 -1
- package/dist/buffer.d.ts +3 -2
- package/dist/buffer.js +8 -8
- package/dist/bulk-import/index.d.ts +4 -3
- package/dist/calibration.d.ts +3 -1
- package/dist/calibration.js +4 -2
- package/dist/calibration.js.map +1 -1
- package/dist/capabilities.d.ts +2 -1
- package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
- package/dist/{capsule-merge-ZCXUPLNJ.js → capsule-merge-IPG4IOFP.js} +2 -2
- package/dist/{catalog-Cl4H8N89.d.ts → catalog-CW87xGx8.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +2 -1
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.d.ts +2 -1
- package/dist/causal-consolidation.js +29 -28
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.d.ts +2 -1
- package/dist/causal-trajectory-graph.js +2 -2
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-YHU5XUF4.js → chunk-27MKMTBY.js} +2 -2
- package/dist/{chunk-TK4FHQRN.js → chunk-2J3V5QEO.js} +4 -4
- package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
- package/dist/chunk-2QG4SLZI.js +44 -0
- package/dist/chunk-2QG4SLZI.js.map +1 -0
- package/dist/{chunk-TFRDUD3M.js → chunk-2ZTDRNCS.js} +2 -2
- package/dist/{chunk-PWPIERBM.js → chunk-37CAEC7E.js} +4 -4
- package/dist/{chunk-X7BCM2NA.js → chunk-3EKVN2OP.js} +2 -2
- package/dist/{chunk-S2ULTQZR.js → chunk-3N3PBBEH.js} +2 -2
- package/dist/{chunk-XCF3SFHD.js → chunk-3NPNBVFR.js} +2 -2
- package/dist/{chunk-JO5TQAKW.js → chunk-4BCHFSC7.js} +3 -3
- package/dist/{chunk-Q6D7EUSQ.js → chunk-4JVQRFZD.js} +10 -10
- package/dist/{chunk-YEDVOYL2.js → chunk-4RX5O34R.js} +2 -2
- package/dist/{chunk-JMPYZJQN.js → chunk-4RZLTZVM.js} +4 -4
- package/dist/{chunk-Q7JK6YEB.js → chunk-54NX5EG4.js} +2 -2
- package/dist/{chunk-GWK7FEUL.js → chunk-5FAGCOZD.js} +4 -4
- package/dist/{chunk-2PUE5P7C.js → chunk-5N4MZLEH.js} +5 -5
- package/dist/{chunk-B2YKTE7P.js → chunk-5SPCMAUC.js} +10 -10
- package/dist/{chunk-3OHISDDW.js → chunk-5U7K4W6K.js} +2 -2
- package/dist/{chunk-CYEMS2PG.js → chunk-5YCNDC3C.js} +3 -3
- package/dist/{chunk-PAAJWQH5.js → chunk-62D2PAAM.js} +4 -4
- package/dist/{chunk-52II7PB6.js → chunk-645WOU5I.js} +4 -4
- package/dist/chunk-6AGWBKQU.js +94 -0
- package/dist/chunk-6AGWBKQU.js.map +1 -0
- package/dist/{chunk-326KUXIR.js → chunk-6EHM2AV7.js} +6 -6
- package/dist/{chunk-YM7YN37H.js → chunk-6ET2VII7.js} +2 -2
- package/dist/chunk-6H2G7RFT.js +58 -0
- package/dist/chunk-6H2G7RFT.js.map +1 -0
- package/dist/{chunk-A2YQL2FF.js → chunk-6P4REYKL.js} +5 -5
- package/dist/{chunk-7RKBPXY6.js → chunk-6YAIN5XJ.js} +2 -2
- package/dist/{chunk-2L5FSNPC.js → chunk-A7GQBJP5.js} +10 -10
- package/dist/{chunk-UYVXIY6C.js → chunk-AAZEKXUP.js} +2 -2
- package/dist/{chunk-JR6PP7UM.js → chunk-ACY4ZPF7.js} +28 -2
- package/dist/chunk-ACY4ZPF7.js.map +1 -0
- package/dist/{chunk-IQZ6ISFX.js → chunk-AECJY3GJ.js} +2 -2
- package/dist/{chunk-76DRU7C4.js → chunk-AENM6GKU.js} +2 -2
- package/dist/{chunk-KTRXQQFN.js → chunk-B36GUU6T.js} +4 -4
- package/dist/{chunk-TLHNF6GA.js → chunk-BV4ZKIZH.js} +1 -1
- package/dist/{chunk-ZWEZXVYH.js → chunk-CEO4DONG.js} +2 -2
- package/dist/chunk-CWTCMZGE.js +858 -0
- package/dist/chunk-CWTCMZGE.js.map +1 -0
- package/dist/{chunk-ZEPVWLCN.js → chunk-CZTPU65V.js} +25 -25
- package/dist/{chunk-TRU6JBOI.js → chunk-D545Z7UH.js} +3 -3
- package/dist/{chunk-6E5GYDIE.js → chunk-DGS34QSY.js} +2 -2
- package/dist/{chunk-65RENJGB.js → chunk-E2AWJ7KQ.js} +8 -4
- package/dist/chunk-E2AWJ7KQ.js.map +1 -0
- package/dist/{chunk-6Z3WW2MW.js → chunk-ENBPQEVU.js} +3 -3
- package/dist/{chunk-DOKKRZPH.js → chunk-EYKIDK33.js} +21 -19
- package/dist/chunk-EYKIDK33.js.map +1 -0
- package/dist/{chunk-PNEDMJ53.js → chunk-F4EHXVP7.js} +2 -2
- package/dist/{chunk-JPKZTCWZ.js → chunk-FNHLI2RE.js} +3 -3
- package/dist/{chunk-D2DIYEFW.js → chunk-FWWWUPOE.js} +12 -36
- package/dist/chunk-FWWWUPOE.js.map +1 -0
- package/dist/{chunk-M3MYMWXG.js → chunk-FXHOZGSE.js} +2 -2
- package/dist/{chunk-SAKA6PPL.js → chunk-GAS7KYC7.js} +5 -5
- package/dist/{chunk-LSLCFCCQ.js → chunk-GDYU6VF4.js} +1 -1
- package/dist/chunk-GDYU6VF4.js.map +1 -0
- package/dist/{chunk-2AR5JFD7.js → chunk-GG5FHZJJ.js} +6 -6
- package/dist/{chunk-WS3WNLST.js → chunk-GI4ZBWPQ.js} +3 -3
- package/dist/{chunk-JYR4LH76.js → chunk-GMIQV6DD.js} +2 -2
- package/dist/{chunk-WIKO4SCR.js → chunk-H3TKENU4.js} +5 -5
- package/dist/{chunk-ZLN7AROH.js → chunk-HIP6DKJJ.js} +5 -5
- package/dist/{chunk-SF6RFI5Z.js → chunk-HWLIMQE2.js} +2 -2
- package/dist/{chunk-JZYECQWN.js → chunk-IL6ODG6M.js} +2 -2
- package/dist/{chunk-GNR6YEWZ.js → chunk-IQEJIOEU.js} +6 -6
- package/dist/{chunk-BICNRVEC.js → chunk-IWO6QXWJ.js} +2 -2
- package/dist/{chunk-RN3MVLW3.js → chunk-IYKZJVL5.js} +1 -1
- package/dist/chunk-IYKZJVL5.js.map +1 -0
- package/dist/{chunk-42DJ235G.js → chunk-J272ODKJ.js} +2 -2
- package/dist/{chunk-R3TLVTWW.js → chunk-JDX2OA4R.js} +3 -3
- package/dist/{chunk-G5MO3VQA.js → chunk-JKKII6GX.js} +2 -2
- package/dist/{chunk-L5OXE4PX.js → chunk-JTQR6L2N.js} +3 -3
- package/dist/{chunk-VDX2J7OX.js → chunk-KQAFEZQX.js} +2 -2
- package/dist/{chunk-AKE4GGQ3.js → chunk-KQW3YGEN.js} +2 -2
- package/dist/{chunk-LMMQKZK3.js → chunk-L63GFNKL.js} +1 -1
- package/dist/{chunk-BRZWWUCJ.js → chunk-LMLGBG6H.js} +2 -2
- package/dist/{chunk-3IXB77DA.js → chunk-LPYYY4AP.js} +318 -278
- package/dist/chunk-LPYYY4AP.js.map +1 -0
- package/dist/{chunk-YEN4TREG.js → chunk-LQNRVPTV.js} +54 -567
- package/dist/chunk-LQNRVPTV.js.map +1 -0
- package/dist/{chunk-CQ7SSBO4.js → chunk-M6HBPLBA.js} +2 -2
- package/dist/chunk-MCRVQ5YQ.js +14 -0
- package/dist/chunk-MCRVQ5YQ.js.map +1 -0
- package/dist/{chunk-3YMDY3ZF.js → chunk-MUTVRKKY.js} +16 -16
- package/dist/{chunk-FCFAYMTU.js → chunk-NXGSONWM.js} +2 -2
- package/dist/{chunk-4WGAMREC.js → chunk-O4M4BDIJ.js} +2 -2
- package/dist/{chunk-5SYI2F47.js → chunk-O76F5QPP.js} +2 -2
- package/dist/{chunk-SROIT6QY.js → chunk-OPBFP4TF.js} +28 -11
- package/dist/chunk-OPBFP4TF.js.map +1 -0
- package/dist/{chunk-7MJBKZPU.js → chunk-P4ZAEYKG.js} +68 -34
- package/dist/chunk-P4ZAEYKG.js.map +1 -0
- package/dist/{chunk-57GDHV2D.js → chunk-PCOVEDPK.js} +6 -6
- package/dist/{chunk-PPTOAHTZ.js → chunk-PGAB2V53.js} +2 -2
- package/dist/{chunk-HHDTBYDJ.js → chunk-Q432REND.js} +2 -2
- package/dist/{chunk-XAITGGX5.js → chunk-Q4AUIFUA.js} +4 -4
- package/dist/{chunk-5LLQAUMI.js → chunk-Q7CLGFA7.js} +3 -3
- package/dist/{chunk-KUK56OPR.js → chunk-QHT7MOUF.js} +12 -12
- package/dist/{chunk-W6IJMWTZ.js → chunk-QTQ6XKGT.js} +4 -4
- package/dist/{chunk-FLLORID2.js → chunk-RLJHJQUY.js} +9 -9
- package/dist/{chunk-353KGBKY.js → chunk-RW4QNB4J.js} +4 -4
- package/dist/{chunk-GWQVMKUJ.js → chunk-SCXURCVT.js} +3 -3
- package/dist/{chunk-FQXJAC3T.js → chunk-SGUDMW2K.js} +4 -4
- package/dist/{chunk-LSDEIZ76.js → chunk-TA4C3XB7.js} +6 -6
- package/dist/{chunk-YIZ2EUUL.js → chunk-TNZNSMVJ.js} +94 -94
- package/dist/{chunk-CIYUWSMZ.js → chunk-TRLOFIQC.js} +2 -2
- package/dist/{chunk-TL7NLM2L.js → chunk-TSP5WH72.js} +2 -2
- package/dist/{chunk-3K6UFW5B.js → chunk-UHRZ324M.js} +8 -8
- package/dist/{chunk-JLXWRQNR.js → chunk-UZEHHXYC.js} +170 -167
- package/dist/chunk-UZEHHXYC.js.map +1 -0
- package/dist/{chunk-A5UQ52YQ.js → chunk-UZZ7SQT3.js} +5 -5
- package/dist/{chunk-GHX5PNXW.js → chunk-VBSNUH4J.js} +2 -2
- package/dist/{chunk-MR6LQVZ5.js → chunk-VJIE4D2I.js} +3 -3
- package/dist/{chunk-OTPXEE6W.js → chunk-VSL63CFJ.js} +15 -12
- package/dist/chunk-VSL63CFJ.js.map +1 -0
- package/dist/{chunk-2JGGZICG.js → chunk-WBM2MVBK.js} +2 -2
- package/dist/{chunk-CD3C4BJN.js → chunk-WIWLX65T.js} +2 -2
- package/dist/{chunk-GDDSXVWR.js → chunk-X4TD4O2F.js} +3 -3
- package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
- package/dist/{chunk-FPQDZCUX.js → chunk-XH3HGI2N.js} +2 -2
- package/dist/{chunk-C6KRO3SU.js → chunk-XVDZFTN5.js} +4 -4
- package/dist/{chunk-3SL52JKD.js → chunk-XVZA6VXC.js} +4 -4
- package/dist/chunk-YDVAM7S4.js +221 -0
- package/dist/chunk-YDVAM7S4.js.map +1 -0
- package/dist/chunk-YFTNZMGR.js +71 -0
- package/dist/chunk-YFTNZMGR.js.map +1 -0
- package/dist/{chunk-VELCIWJZ.js → chunk-YKREX63Z.js} +19 -10
- package/dist/chunk-YKREX63Z.js.map +1 -0
- package/dist/{chunk-BLHX5FQW.js → chunk-YUW66UAH.js} +2 -2
- package/dist/{chunk-DOQLHCSS.js → chunk-ZBW7A667.js} +2 -2
- package/dist/{chunk-4DPDIOVA.js → chunk-ZEGL7YCC.js} +2 -2
- package/dist/{chunk-VVX5PZFS.js → chunk-ZHXSOMYH.js} +2 -2
- package/dist/{chunk-GCBIXUPT.js → chunk-ZMWSYUUL.js} +2 -2
- package/dist/{chunk-X2QPKLPL.js → chunk-ZZUVBZL2.js} +2 -2
- package/dist/{cli-1mzd5TM4.d.ts → cli-DGq0MNpO.d.ts} +5 -5
- package/dist/cli-fallback.d.ts +4 -2
- package/dist/cli-fallback.js +3 -1
- package/dist/cli.d.ts +16 -14
- package/dist/cli.js +139 -134
- package/dist/coding/export-okf-codegraph.d.ts +2 -1
- package/dist/coding/export-okf-codegraph.js +26 -25
- package/dist/coding/export-okf-codegraph.js.map +1 -1
- package/dist/coding/pre-action-gate.d.ts +2 -1
- package/dist/coding/pre-action-gate.js +2 -2
- package/dist/compat/codex-cli-fallback.d.ts +1 -1
- package/dist/compat/codex-cli-fallback.js +3 -1
- package/dist/compat/codex-cli-fallback.js.map +1 -1
- package/dist/compounding/engine.d.ts +3 -2
- package/dist/compounding/engine.js +27 -26
- package/dist/compounding/preference-consolidator.d.ts +2 -1
- package/dist/compression-optimizer.d.ts +2 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.js +18 -15
- package/dist/connectors/codex-materialize-runner.d.ts +2 -1
- package/dist/connectors/codex-materialize-runner.js +26 -25
- package/dist/connectors/codex-materialize.d.ts +2 -1
- package/dist/connectors/index.d.ts +2 -1
- package/dist/connectors/index.js +29 -28
- package/dist/consolidation-provenance-check.d.ts +3 -2
- package/dist/consolidation-undo.d.ts +3 -2
- package/dist/contradiction/index.d.ts +5 -3
- package/dist/contradiction/index.js +7 -7
- package/dist/{contradiction-scan-GVD4JJ7B.js → contradiction-scan-BSGKZHYJ.js} +4 -4
- package/dist/contradiction-scan-BSGKZHYJ.js.map +1 -0
- package/dist/converge-config.d.ts +2 -1
- package/dist/convergence-refresh.d.ts +3 -2
- package/dist/convergence-refresh.js +29 -28
- package/dist/conversation-index/backend.d.ts +2 -1
- package/dist/conversation-index/chunker.d.ts +2 -1
- package/dist/conversation-index/faiss-adapter.d.ts +2 -1
- package/dist/conversation-index/indexer.d.ts +2 -1
- package/dist/conversation-index/search.d.ts +2 -1
- package/dist/corpus-watermark.d.ts +2 -1
- package/dist/corpus-watermark.js +29 -28
- package/dist/cross-lingual-recall.d.ts +2 -1
- package/dist/day-summary.d.ts +2 -1
- package/dist/deep-recall-http-glue.d.ts +14 -12
- package/dist/deep-recall-http-glue.js +4 -14
- package/dist/deep-recall-mcp-tools.d.ts +14 -12
- package/dist/deep-recall-policy-llm.d.ts +3 -1
- package/dist/deep-recall-policy-llm.js +5 -3
- package/dist/deep-recall-seeds.d.ts +2 -1
- package/dist/delinearize.d.ts +2 -1
- package/dist/dependency-propagation-config.d.ts +2 -1
- package/dist/{dependency-propagation-delivery-Bua2ApHV.d.ts → dependency-propagation-delivery-Cq1ekOwV.d.ts} +1 -1
- package/dist/direct-answer-wiring.d.ts +2 -1
- package/dist/direct-answer.d.ts +2 -1
- package/dist/embedding-fallback.d.ts +2 -1
- package/dist/enrichment/index.d.ts +2 -1
- package/dist/entity-origin-fields.d.ts +2 -1
- package/dist/entity-retrieval.d.ts +3 -2
- package/dist/entity-retrieval.js +28 -27
- package/dist/entity-schema.d.ts +2 -1
- package/dist/episodic-context.d.ts +2 -1
- package/dist/eval-trajectory-contracts.d.ts +2 -1
- package/dist/eval-trajectory-store.d.ts +2 -1
- package/dist/eval-trajectory.d.ts +2 -1
- package/dist/event-order-recall.js +3 -3
- package/dist/explicit-capture.d.ts +12 -10
- package/dist/explicit-capture.js +6 -6
- package/dist/external-wiki-access.d.ts +14 -12
- package/dist/external-wiki-access.js +87 -84
- package/dist/external-wiki-collection-registration.d.ts +2 -1
- package/dist/external-wiki-collection.d.ts +2 -1
- package/dist/external-wiki-mcp-tools.d.ts +14 -12
- package/dist/extraction-error-classification.d.ts +2 -1
- package/dist/extraction-faithfulness.d.ts +3 -1
- package/dist/extraction-faithfulness.js +5 -3
- package/dist/extraction-judge-telemetry.d.ts +3 -1
- package/dist/extraction-judge-training.d.ts +3 -1
- package/dist/extraction-judge.d.ts +3 -1
- package/dist/extraction-judge.js +5 -3
- package/dist/extraction-liveness.d.ts +2 -1
- package/dist/extraction-normalization.d.ts +2 -1
- package/dist/extraction-prompt.d.ts +2 -1
- package/dist/extraction-source-grounding-rules.d.ts +2 -1
- package/dist/extraction-source-grounding.d.ts +2 -1
- package/dist/extraction-source-grounding.js +3 -3
- package/dist/extraction-span-config.d.ts +2 -1
- package/dist/extraction-span-materialize.d.ts +2 -1
- package/dist/extraction-span-materialize.js +2 -2
- package/dist/extraction.d.ts +2 -1
- package/dist/extraction.js +46 -45
- package/dist/fallback-llm-codex-subscription.d.ts +79 -0
- package/dist/fallback-llm-codex-subscription.js +22 -0
- package/dist/fallback-llm-codex-subscription.js.map +1 -0
- package/dist/fallback-llm.d.ts +5 -1
- package/dist/fallback-llm.js +4 -2
- package/dist/{first-start-migration-GZ45G5FS.js → first-start-migration-ZWMV5CX4.js} +6 -6
- package/dist/{generic-recall-paths-DJBADojG.d.ts → generic-recall-paths-BcySh_f9.d.ts} +1 -1
- package/dist/graph-append-error.d.ts +2 -1
- package/dist/graph-dashboard-diff.d.ts +2 -1
- package/dist/graph-dashboard-key.d.ts +2 -1
- package/dist/graph-dashboard-parser.d.ts +2 -1
- package/dist/{graph-edge-decay-ROSUPDX3.js → graph-edge-decay-MKIRZ762.js} +5 -5
- package/dist/graph-edge-decay-MKIRZ762.js.map +1 -0
- package/dist/graph-edge-reinforcement.d.ts +2 -1
- package/dist/graph-jsonl.d.ts +2 -1
- package/dist/graph-jsonl.js +3 -3
- package/dist/graph-path-reconstruction.d.ts +2 -1
- package/dist/graph-path-scoring.d.ts +2 -1
- package/dist/graph-snapshot.d.ts +2 -1
- package/dist/graph-snapshot.js +3 -3
- package/dist/graph.d.ts +2 -1
- package/dist/graph.js +2 -2
- package/dist/harmonic-retrieval.js +3 -3
- package/dist/importance.d.ts +2 -1
- package/dist/importers/index.d.ts +2 -1
- package/dist/importers/test-utils.d.ts +2 -1
- package/dist/in-flight-reads.d.ts +2 -1
- package/dist/{index-Bsy8ygLL.d.ts → index-DWOb4wz9.d.ts} +2 -2
- package/dist/index.d.ts +713 -705
- package/dist/index.js +419 -346
- package/dist/intent.d.ts +2 -1
- package/dist/lcm/engine.d.ts +2 -1
- package/dist/lcm/engine.js +4 -4
- package/dist/lcm/index.d.ts +2 -1
- package/dist/lcm/index.js +12 -12
- package/dist/lcm/tools.d.ts +2 -1
- package/dist/lifecycle.d.ts +2 -1
- package/dist/live-connectors-runner.d.ts +2 -1
- package/dist/local-llm-config.d.ts +7 -1
- package/dist/local-llm-config.js +12 -0
- package/dist/local-llm.d.ts +2 -1
- package/dist/local-model-endpoint.d.ts +2 -1
- package/dist/location/index.d.ts +4 -3
- package/dist/location/index.js +60 -59
- package/dist/maintenance/memory-governance.d.ts +2 -1
- package/dist/maintenance/memory-governance.js +26 -25
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +27 -26
- package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-projection.js +28 -27
- package/dist/{maintenance-DItyBwTC.d.ts → maintenance-CW9wCzMP.d.ts} +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +14 -12
- package/dist/memory-action-policy.d.ts +2 -1
- package/dist/memory-cache.d.ts +2 -1
- package/dist/memory-controller.d.ts +2 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
- package/dist/memory-projection-store.d.ts +2 -1
- package/dist/memory-provenance.d.ts +2 -1
- package/dist/memory-snapshot.d.ts +2 -1
- package/dist/memory-subject-cli.d.ts +14 -12
- package/dist/memory-subject.d.ts +14 -12
- package/dist/memory-worth-outcomes.d.ts +3 -2
- package/dist/models-json.d.ts +2 -1
- package/dist/namespaces/migrate.d.ts +4 -3
- package/dist/namespaces/migrate.js +27 -26
- package/dist/namespaces/principal.d.ts +2 -1
- package/dist/namespaces/search.d.ts +2 -1
- package/dist/namespaces/search.js +6 -6
- package/dist/namespaces/storage.d.ts +4 -3
- package/dist/namespaces/storage.js +26 -25
- package/dist/native-knowledge.d.ts +2 -1
- package/dist/offline-sync-impression-drain.d.ts +2 -1
- package/dist/offline-sync-impression-drain.js +4 -4
- package/dist/operator-doctor-corpus.d.ts +2 -1
- package/dist/operator-doctor-corpus.js +30 -29
- package/dist/operator-doctor-replica.d.ts +2 -1
- package/dist/operator-toolkit.d.ts +4 -3
- package/dist/operator-toolkit.js +53 -49
- package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
- package/dist/orchestration/maintenance.d.ts +5 -4
- package/dist/orchestration/maintenance.js +39 -38
- package/dist/{orchestrator-DBUX-aAM.d.ts → orchestrator-ComHLm49.d.ts} +22 -11
- package/dist/orchestrator.d.ts +12 -10
- package/dist/orchestrator.js +224 -218
- package/dist/patterns-cli.d.ts +2 -1
- package/dist/{pipeline-BqgcOk1Z.d.ts → pipeline-CiYcqqhl.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +2 -1
- package/dist/proactive-contention.d.ts +2 -1
- package/dist/provenance.d.ts +2 -1
- package/dist/provenance.js +2 -2
- package/dist/{public-http-CqtZ5kv3.d.ts → public-http-CuK4_Cb1.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +3 -2
- package/dist/{qmd-BD0ikV_Y.d.ts → qmd-qXD4vatU.d.ts} +1 -1
- package/dist/qmd-recall-cache.d.ts +2 -1
- package/dist/qmd.d.ts +3 -2
- package/dist/recall-concurrency-config.d.ts +2 -1
- package/dist/recall-disclosure-escalation.d.ts +2 -1
- package/dist/recall-explain-renderer.d.ts +2 -1
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-memory-map.d.ts +2 -1
- package/dist/recall-navigate-access.d.ts +2 -1
- package/dist/recall-navigate-access.js +2 -2
- package/dist/recall-navigate-disclosure.d.ts +2 -1
- package/dist/recall-navigate-disclosure.js +1 -1
- package/dist/recall-navigate.d.ts +2 -1
- package/dist/recall-navigate.js +2 -2
- package/dist/recall-planner-llm.d.ts +3 -1
- package/dist/recall-planner-llm.js +4 -2
- package/dist/recall-planner-llm.js.map +1 -1
- package/dist/recall-state-view-admission.d.ts +3 -2
- package/dist/recall-state-view-admission.js +9 -9
- package/dist/recall-state-view-anchors.d.ts +85 -0
- package/dist/recall-state-view-anchors.js +21 -0
- package/dist/recall-state-view-anchors.js.map +1 -0
- package/dist/recall-state-view-inject.js +2 -2
- package/dist/recall-state-view-render.js +2 -2
- package/dist/recall-state-view-widen.js +2 -2
- package/dist/recall-state-view-wire.js +3 -3
- package/dist/recall-state-view.d.ts +37 -1
- package/dist/recall-state-view.js +11 -3
- package/dist/recall-state.d.ts +2 -1
- package/dist/recall-tag-filter.d.ts +2 -1
- package/dist/recall-timings.d.ts +2 -1
- package/dist/recall-xray-cli.d.ts +2 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +2 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +2 -1
- package/dist/recall-xray.js +2 -2
- package/dist/reconcile/cursor.d.ts +2 -1
- package/dist/reconcile/cursor.js +2 -2
- package/dist/reconcile/manifest.d.ts +2 -1
- package/dist/reconcile/manifest.js +4 -4
- package/dist/reconcile/plan.d.ts +2 -1
- package/dist/reconcile/plan.js +2 -2
- package/dist/replay/normalizers/chatgpt.d.ts +2 -1
- package/dist/replay/normalizers/claude.d.ts +2 -1
- package/dist/replay/normalizers/openclaw.d.ts +2 -1
- package/dist/replay/normalizers/shared.d.ts +2 -1
- package/dist/replay/runner.d.ts +2 -1
- package/dist/replay/types.d.ts +2 -1
- package/dist/replica-divergence.d.ts +2 -1
- package/dist/replica-peers-config.d.ts +2 -1
- package/dist/{resolution-OHJZG45O.js → resolution-4GG3QZRJ.js} +8 -8
- package/dist/resolution-4GG3QZRJ.js.map +1 -0
- package/dist/resolve-auth-token.d.ts +2 -1
- package/dist/resume-bundles.js +19 -16
- package/dist/retrieval-agents.d.ts +3 -2
- package/dist/retrieval-tiers.d.ts +2 -1
- package/dist/routing/engine.d.ts +2 -1
- package/dist/routing/store.d.ts +2 -1
- package/dist/salvage-envelope.d.ts +2 -1
- package/dist/salvage-envelope.js +2 -2
- package/dist/schemas.d.ts +160 -160
- package/dist/{scope-profiles-BIJMsd0B.d.ts → scope-profiles-BT9rqC3w.d.ts} +1 -1
- package/dist/search/embed-helper.d.ts +2 -1
- package/dist/search/factory.d.ts +2 -1
- package/dist/search/factory.js +5 -5
- package/dist/search/index.d.ts +2 -1
- package/dist/search/index.js +13 -13
- package/dist/search/lancedb-backend.d.ts +2 -1
- package/dist/search/meilisearch-backend.d.ts +2 -1
- package/dist/search/noop-backend.d.ts +2 -1
- package/dist/search/orama-backend.d.ts +2 -1
- package/dist/search/port.d.ts +2 -1
- package/dist/search/remote-backend.d.ts +2 -1
- package/dist/{semantic-consolidation-D7sJocll.d.ts → semantic-consolidation-CmZi7thY.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +3 -2
- package/dist/semantic-consolidation.js +27 -26
- package/dist/semantic-rule-promotion.js +26 -25
- package/dist/semantic-rule-verifier.d.ts +2 -1
- package/dist/semantic-rule-verifier.js +26 -25
- package/dist/{service-fwgEngUj.d.ts → service-CLkA7AQB.d.ts} +2 -2
- package/dist/session-observer-bands.d.ts +2 -1
- package/dist/session-observer-state.d.ts +2 -1
- package/dist/shared-context/manager.d.ts +8 -7
- package/dist/signal.d.ts +2 -1
- package/dist/source-agent-qualifier.d.ts +2 -1
- package/dist/source-agent-qualifier.js +41 -40
- package/dist/standup/build.js +27 -26
- package/dist/{storage-Cbll3-Tk.d.ts → storage-wvX01lht.d.ts} +1 -1
- package/dist/storage.d.ts +3 -2
- package/dist/storage.js +25 -24
- package/dist/subject-config.d.ts +2 -1
- package/dist/subject-config.js +2 -2
- package/dist/summarizer.d.ts +2 -1
- package/dist/summarizer.js +6 -3
- package/dist/summary-snapshot.d.ts +2 -1
- package/dist/support-passport/index.d.ts +17 -15
- package/dist/support-passport/index.js +92 -89
- package/dist/temporal-supersession.d.ts +3 -2
- package/dist/temporal-timeline-recall.d.ts +2 -1
- package/dist/temporal-validity.d.ts +2 -1
- package/dist/threading.d.ts +2 -1
- package/dist/tier-migration.d.ts +3 -2
- package/dist/tier-routing.d.ts +2 -1
- package/dist/tier-routing.js +3 -3
- package/dist/{tier-stats-VK5PCO2L.js → tier-stats-LUSUUNU6.js} +4 -4
- package/dist/topics.d.ts +2 -1
- package/dist/transcript.d.ts +2 -1
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +3 -3
- package/dist/transfer/export-okf.d.ts +2 -1
- package/dist/transfer/export-okf.js +26 -25
- package/dist/transfer/types.d.ts +78 -78
- package/dist/trust-score-stage.d.ts +2 -1
- package/dist/trust-score.d.ts +2 -1
- package/dist/{types-48sPkWB0.d.ts → types-Cyr32ABj.d.ts} +3 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +2 -1
- package/dist/verified-recall.js +26 -25
- package/dist/who-knows-cli.d.ts +14 -12
- package/dist/who-knows-cli.js +27 -26
- package/dist/who-knows.d.ts +14 -12
- package/dist/who-knows.js +26 -25
- package/dist/write-envelope.d.ts +7 -1
- package/dist/write-envelope.js +1 -1
- package/package.json +2 -2
- package/src/access-boundary.ts +21 -6
- package/src/access-category-alias.test.ts +488 -51
- package/src/access-http.test.ts +249 -0
- package/src/access-http.ts +2 -0
- package/src/access-mcp.test.ts +2 -2
- package/src/access-observe-write-category.ts +25 -0
- package/src/access-observe-write-surface.ts +58 -57
- package/src/access-operations-batch.ts +28 -2
- package/src/access-operations.ts +6 -4
- package/src/access-schema.ts +106 -50
- package/src/access-service.ts +23 -9
- package/src/background-generation-config.ts +79 -0
- package/src/background-generation.test.ts +123 -0
- package/src/background-generation.ts +52 -0
- package/src/cli-fallback.ts +8 -2
- package/src/config.test.ts +172 -0
- package/src/config.ts +2 -43
- package/src/fallback-llm-codex-subscription.ts +168 -0
- package/src/fallback-llm.test.ts +46 -0
- package/src/fallback-llm.ts +60 -48
- package/src/index.ts +2 -16
- package/src/local-llm-config.ts +84 -0
- package/src/orchestration/recall-internal.ts +91 -74
- package/src/orchestration/recall-rerank-coordinator.ts +41 -4
- package/src/orchestration/recall-search-pipeline.ts +25 -18
- package/src/orchestration/recall-state-view-pipeline.test.ts +89 -0
- package/src/providers/codex-subscription.test.ts +804 -1
- package/src/providers/codex-subscription.ts +407 -65
- package/src/recall-rerank-coordinator.test.ts +153 -0
- package/src/recall-state-view-anchors.ts +163 -0
- package/src/recall-state-view-widen.ts +21 -7
- package/src/recall-state-view-zero-diff.test.ts +30 -0
- package/src/recall-state-view.test.ts +161 -0
- package/src/recall-state-view.ts +206 -35
- package/src/summarizer.ts +25 -0
- package/src/trust-score-recall-paths.test.ts +1 -1
- package/src/types.ts +3 -2
- package/src/write-envelope.ts +5 -0
- package/dist/chunk-255PC37A.js +0 -120
- package/dist/chunk-255PC37A.js.map +0 -1
- package/dist/chunk-3IXB77DA.js.map +0 -1
- package/dist/chunk-65RENJGB.js.map +0 -1
- package/dist/chunk-7MJBKZPU.js.map +0 -1
- package/dist/chunk-D2DIYEFW.js.map +0 -1
- package/dist/chunk-DOKKRZPH.js.map +0 -1
- package/dist/chunk-JLXWRQNR.js.map +0 -1
- package/dist/chunk-JR6PP7UM.js.map +0 -1
- package/dist/chunk-LSLCFCCQ.js.map +0 -1
- package/dist/chunk-OTPXEE6W.js.map +0 -1
- package/dist/chunk-RN3MVLW3.js.map +0 -1
- package/dist/chunk-SROIT6QY.js.map +0 -1
- package/dist/chunk-VELCIWJZ.js.map +0 -1
- package/dist/chunk-YEN4TREG.js.map +0 -1
- /package/dist/{capsule-crypto-YO5QJ6L3.js.map → access-observe-write-category.js.map} +0 -0
- /package/dist/{contradiction-scan-GVD4JJ7B.js.map → background-generation-config.js.map} +0 -0
- /package/dist/{graph-edge-decay-ROSUPDX3.js.map → background-generation.js.map} +0 -0
- /package/dist/{resolution-OHJZG45O.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
- /package/dist/{capsule-merge-ZCXUPLNJ.js.map → capsule-merge-IPG4IOFP.js.map} +0 -0
- /package/dist/{chunk-YHU5XUF4.js.map → chunk-27MKMTBY.js.map} +0 -0
- /package/dist/{chunk-TK4FHQRN.js.map → chunk-2J3V5QEO.js.map} +0 -0
- /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
- /package/dist/{chunk-TFRDUD3M.js.map → chunk-2ZTDRNCS.js.map} +0 -0
- /package/dist/{chunk-PWPIERBM.js.map → chunk-37CAEC7E.js.map} +0 -0
- /package/dist/{chunk-X7BCM2NA.js.map → chunk-3EKVN2OP.js.map} +0 -0
- /package/dist/{chunk-S2ULTQZR.js.map → chunk-3N3PBBEH.js.map} +0 -0
- /package/dist/{chunk-XCF3SFHD.js.map → chunk-3NPNBVFR.js.map} +0 -0
- /package/dist/{chunk-JO5TQAKW.js.map → chunk-4BCHFSC7.js.map} +0 -0
- /package/dist/{chunk-Q6D7EUSQ.js.map → chunk-4JVQRFZD.js.map} +0 -0
- /package/dist/{chunk-YEDVOYL2.js.map → chunk-4RX5O34R.js.map} +0 -0
- /package/dist/{chunk-JMPYZJQN.js.map → chunk-4RZLTZVM.js.map} +0 -0
- /package/dist/{chunk-Q7JK6YEB.js.map → chunk-54NX5EG4.js.map} +0 -0
- /package/dist/{chunk-GWK7FEUL.js.map → chunk-5FAGCOZD.js.map} +0 -0
- /package/dist/{chunk-2PUE5P7C.js.map → chunk-5N4MZLEH.js.map} +0 -0
- /package/dist/{chunk-B2YKTE7P.js.map → chunk-5SPCMAUC.js.map} +0 -0
- /package/dist/{chunk-3OHISDDW.js.map → chunk-5U7K4W6K.js.map} +0 -0
- /package/dist/{chunk-CYEMS2PG.js.map → chunk-5YCNDC3C.js.map} +0 -0
- /package/dist/{chunk-PAAJWQH5.js.map → chunk-62D2PAAM.js.map} +0 -0
- /package/dist/{chunk-52II7PB6.js.map → chunk-645WOU5I.js.map} +0 -0
- /package/dist/{chunk-326KUXIR.js.map → chunk-6EHM2AV7.js.map} +0 -0
- /package/dist/{chunk-YM7YN37H.js.map → chunk-6ET2VII7.js.map} +0 -0
- /package/dist/{chunk-A2YQL2FF.js.map → chunk-6P4REYKL.js.map} +0 -0
- /package/dist/{chunk-7RKBPXY6.js.map → chunk-6YAIN5XJ.js.map} +0 -0
- /package/dist/{chunk-2L5FSNPC.js.map → chunk-A7GQBJP5.js.map} +0 -0
- /package/dist/{chunk-UYVXIY6C.js.map → chunk-AAZEKXUP.js.map} +0 -0
- /package/dist/{chunk-IQZ6ISFX.js.map → chunk-AECJY3GJ.js.map} +0 -0
- /package/dist/{chunk-76DRU7C4.js.map → chunk-AENM6GKU.js.map} +0 -0
- /package/dist/{chunk-KTRXQQFN.js.map → chunk-B36GUU6T.js.map} +0 -0
- /package/dist/{chunk-TLHNF6GA.js.map → chunk-BV4ZKIZH.js.map} +0 -0
- /package/dist/{chunk-ZWEZXVYH.js.map → chunk-CEO4DONG.js.map} +0 -0
- /package/dist/{chunk-ZEPVWLCN.js.map → chunk-CZTPU65V.js.map} +0 -0
- /package/dist/{chunk-TRU6JBOI.js.map → chunk-D545Z7UH.js.map} +0 -0
- /package/dist/{chunk-6E5GYDIE.js.map → chunk-DGS34QSY.js.map} +0 -0
- /package/dist/{chunk-6Z3WW2MW.js.map → chunk-ENBPQEVU.js.map} +0 -0
- /package/dist/{chunk-PNEDMJ53.js.map → chunk-F4EHXVP7.js.map} +0 -0
- /package/dist/{chunk-JPKZTCWZ.js.map → chunk-FNHLI2RE.js.map} +0 -0
- /package/dist/{chunk-M3MYMWXG.js.map → chunk-FXHOZGSE.js.map} +0 -0
- /package/dist/{chunk-SAKA6PPL.js.map → chunk-GAS7KYC7.js.map} +0 -0
- /package/dist/{chunk-2AR5JFD7.js.map → chunk-GG5FHZJJ.js.map} +0 -0
- /package/dist/{chunk-WS3WNLST.js.map → chunk-GI4ZBWPQ.js.map} +0 -0
- /package/dist/{chunk-JYR4LH76.js.map → chunk-GMIQV6DD.js.map} +0 -0
- /package/dist/{chunk-WIKO4SCR.js.map → chunk-H3TKENU4.js.map} +0 -0
- /package/dist/{chunk-ZLN7AROH.js.map → chunk-HIP6DKJJ.js.map} +0 -0
- /package/dist/{chunk-SF6RFI5Z.js.map → chunk-HWLIMQE2.js.map} +0 -0
- /package/dist/{chunk-JZYECQWN.js.map → chunk-IL6ODG6M.js.map} +0 -0
- /package/dist/{chunk-GNR6YEWZ.js.map → chunk-IQEJIOEU.js.map} +0 -0
- /package/dist/{chunk-BICNRVEC.js.map → chunk-IWO6QXWJ.js.map} +0 -0
- /package/dist/{chunk-42DJ235G.js.map → chunk-J272ODKJ.js.map} +0 -0
- /package/dist/{chunk-R3TLVTWW.js.map → chunk-JDX2OA4R.js.map} +0 -0
- /package/dist/{chunk-G5MO3VQA.js.map → chunk-JKKII6GX.js.map} +0 -0
- /package/dist/{chunk-L5OXE4PX.js.map → chunk-JTQR6L2N.js.map} +0 -0
- /package/dist/{chunk-VDX2J7OX.js.map → chunk-KQAFEZQX.js.map} +0 -0
- /package/dist/{chunk-AKE4GGQ3.js.map → chunk-KQW3YGEN.js.map} +0 -0
- /package/dist/{chunk-LMMQKZK3.js.map → chunk-L63GFNKL.js.map} +0 -0
- /package/dist/{chunk-BRZWWUCJ.js.map → chunk-LMLGBG6H.js.map} +0 -0
- /package/dist/{chunk-CQ7SSBO4.js.map → chunk-M6HBPLBA.js.map} +0 -0
- /package/dist/{chunk-3YMDY3ZF.js.map → chunk-MUTVRKKY.js.map} +0 -0
- /package/dist/{chunk-FCFAYMTU.js.map → chunk-NXGSONWM.js.map} +0 -0
- /package/dist/{chunk-4WGAMREC.js.map → chunk-O4M4BDIJ.js.map} +0 -0
- /package/dist/{chunk-5SYI2F47.js.map → chunk-O76F5QPP.js.map} +0 -0
- /package/dist/{chunk-57GDHV2D.js.map → chunk-PCOVEDPK.js.map} +0 -0
- /package/dist/{chunk-PPTOAHTZ.js.map → chunk-PGAB2V53.js.map} +0 -0
- /package/dist/{chunk-HHDTBYDJ.js.map → chunk-Q432REND.js.map} +0 -0
- /package/dist/{chunk-XAITGGX5.js.map → chunk-Q4AUIFUA.js.map} +0 -0
- /package/dist/{chunk-5LLQAUMI.js.map → chunk-Q7CLGFA7.js.map} +0 -0
- /package/dist/{chunk-KUK56OPR.js.map → chunk-QHT7MOUF.js.map} +0 -0
- /package/dist/{chunk-W6IJMWTZ.js.map → chunk-QTQ6XKGT.js.map} +0 -0
- /package/dist/{chunk-FLLORID2.js.map → chunk-RLJHJQUY.js.map} +0 -0
- /package/dist/{chunk-353KGBKY.js.map → chunk-RW4QNB4J.js.map} +0 -0
- /package/dist/{chunk-GWQVMKUJ.js.map → chunk-SCXURCVT.js.map} +0 -0
- /package/dist/{chunk-FQXJAC3T.js.map → chunk-SGUDMW2K.js.map} +0 -0
- /package/dist/{chunk-LSDEIZ76.js.map → chunk-TA4C3XB7.js.map} +0 -0
- /package/dist/{chunk-YIZ2EUUL.js.map → chunk-TNZNSMVJ.js.map} +0 -0
- /package/dist/{chunk-CIYUWSMZ.js.map → chunk-TRLOFIQC.js.map} +0 -0
- /package/dist/{chunk-TL7NLM2L.js.map → chunk-TSP5WH72.js.map} +0 -0
- /package/dist/{chunk-3K6UFW5B.js.map → chunk-UHRZ324M.js.map} +0 -0
- /package/dist/{chunk-A5UQ52YQ.js.map → chunk-UZZ7SQT3.js.map} +0 -0
- /package/dist/{chunk-GHX5PNXW.js.map → chunk-VBSNUH4J.js.map} +0 -0
- /package/dist/{chunk-MR6LQVZ5.js.map → chunk-VJIE4D2I.js.map} +0 -0
- /package/dist/{chunk-2JGGZICG.js.map → chunk-WBM2MVBK.js.map} +0 -0
- /package/dist/{chunk-CD3C4BJN.js.map → chunk-WIWLX65T.js.map} +0 -0
- /package/dist/{chunk-GDDSXVWR.js.map → chunk-X4TD4O2F.js.map} +0 -0
- /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
- /package/dist/{chunk-FPQDZCUX.js.map → chunk-XH3HGI2N.js.map} +0 -0
- /package/dist/{chunk-C6KRO3SU.js.map → chunk-XVDZFTN5.js.map} +0 -0
- /package/dist/{chunk-3SL52JKD.js.map → chunk-XVZA6VXC.js.map} +0 -0
- /package/dist/{chunk-BLHX5FQW.js.map → chunk-YUW66UAH.js.map} +0 -0
- /package/dist/{chunk-DOQLHCSS.js.map → chunk-ZBW7A667.js.map} +0 -0
- /package/dist/{chunk-4DPDIOVA.js.map → chunk-ZEGL7YCC.js.map} +0 -0
- /package/dist/{chunk-VVX5PZFS.js.map → chunk-ZHXSOMYH.js.map} +0 -0
- /package/dist/{chunk-GCBIXUPT.js.map → chunk-ZMWSYUUL.js.map} +0 -0
- /package/dist/{chunk-X2QPKLPL.js.map → chunk-ZZUVBZL2.js.map} +0 -0
- /package/dist/{first-start-migration-GZ45G5FS.js.map → first-start-migration-ZWMV5CX4.js.map} +0 -0
- /package/dist/{tier-stats-VK5PCO2L.js.map → tier-stats-LUSUUNU6.js.map} +0 -0
package/src/recall-state-view.ts
CHANGED
|
@@ -8,6 +8,13 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Change-intent morphology lives here (do not grow intent.ts). A superseded
|
|
10
10
|
* memory is admitted only when its successor is also in the candidate set.
|
|
11
|
+
*
|
|
12
|
+
* #2859 — chain identities are namespace-qualified (`namespace\0id`): the
|
|
13
|
+
* same id in two namespaces never cross-anchors. The reverse chain derives
|
|
14
|
+
* from the successor's `supersedes` back-pointer when a predecessor lacks
|
|
15
|
+
* `supersededBy`, and asOf snapshot labels use the temporal validity
|
|
16
|
+
* boundary (predecessor `invalidAt` / successor `validAt`), not the
|
|
17
|
+
* `supersededAt` write time.
|
|
11
18
|
*/
|
|
12
19
|
import { coerceBooleanLike } from "./connectors/coerce.js";
|
|
13
20
|
|
|
@@ -17,14 +24,24 @@ export interface StateViewChain {
|
|
|
17
24
|
predecessorId: string;
|
|
18
25
|
successorId: string;
|
|
19
26
|
supersededAt?: string;
|
|
27
|
+
/** #2859 — namespace scope; a chain link never crosses namespaces. */
|
|
28
|
+
namespace?: string;
|
|
20
29
|
}
|
|
21
30
|
|
|
22
31
|
export interface StateViewResult {
|
|
23
32
|
id?: string;
|
|
24
33
|
docid?: string;
|
|
25
34
|
status?: string;
|
|
35
|
+
/** #2859 — namespace that owns this row; qualifies every chain identity. */
|
|
36
|
+
namespace?: string;
|
|
37
|
+
/** #2859 — back-pointer: id of the row this one replaced. */
|
|
38
|
+
supersedes?: string;
|
|
26
39
|
supersededBy?: string;
|
|
27
40
|
supersededAt?: string;
|
|
41
|
+
/** #2859 — fact validity start (frontmatter `valid_at`). */
|
|
42
|
+
validAt?: string;
|
|
43
|
+
/** #2859 — fact validity end (frontmatter `invalid_at`). */
|
|
44
|
+
invalidAt?: string;
|
|
28
45
|
stateLabel?: StateLabel;
|
|
29
46
|
}
|
|
30
47
|
|
|
@@ -66,32 +83,94 @@ export function resultStateViewId(result: StateViewResult): string {
|
|
|
66
83
|
return result.id ?? result.docid ?? "";
|
|
67
84
|
}
|
|
68
85
|
|
|
69
|
-
|
|
86
|
+
/**
|
|
87
|
+
* #2859 — namespace-qualified chain identity. Namespace fanout can surface
|
|
88
|
+
* the same id from two namespaces; every successor/admission match runs on
|
|
89
|
+
* `namespace\0id` keys so a row in one namespace can never anchor (or be
|
|
90
|
+
* anchored by) an identically-named row in another.
|
|
91
|
+
*/
|
|
92
|
+
export function stateViewKey(namespace: string | undefined, id: string): string {
|
|
93
|
+
return `${typeof namespace === "string" ? namespace : ""}\u0000${id}`;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export function resultStateViewKey(result: StateViewResult): string {
|
|
97
|
+
const id = resultStateViewId(result);
|
|
98
|
+
return id ? stateViewKey(result.namespace, id) : "";
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/** Inverse of {@link stateViewKey}: the id after the namespace separator. */
|
|
102
|
+
function stateViewIdFromKey(key: string): string {
|
|
103
|
+
const sep = key.indexOf("\u0000");
|
|
104
|
+
return sep === -1 ? key : key.slice(sep + 1);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* predecessorKey → successorKey, namespace-qualified. Precedence: explicit
|
|
109
|
+
* chains, then successor rows' `supersedes` back-pointers (#2859 — derives
|
|
110
|
+
* the reverse chain when the predecessor lacks `supersededBy`), then the
|
|
111
|
+
* predecessor's own `supersededBy` (authoritative when present).
|
|
112
|
+
*/
|
|
113
|
+
function buildSuccessorMap(
|
|
114
|
+
results: readonly StateViewResult[],
|
|
115
|
+
chains: readonly StateViewChain[],
|
|
116
|
+
): Map<string, string> {
|
|
70
117
|
const byPred = new Map<string, string>();
|
|
118
|
+
const link = (predKey: string, succKey: string, overwrite: boolean): void => {
|
|
119
|
+
if (!predKey || !succKey) return;
|
|
120
|
+
if (overwrite || !byPred.has(predKey)) byPred.set(predKey, succKey);
|
|
121
|
+
};
|
|
71
122
|
for (const chain of chains) {
|
|
72
123
|
if (chain.predecessorId && chain.successorId) {
|
|
73
|
-
|
|
124
|
+
link(
|
|
125
|
+
stateViewKey(chain.namespace, chain.predecessorId),
|
|
126
|
+
stateViewKey(chain.namespace, chain.successorId),
|
|
127
|
+
false,
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
for (const result of results) {
|
|
132
|
+
const key = resultStateViewKey(result);
|
|
133
|
+
if (key && result.supersedes) {
|
|
134
|
+
link(stateViewKey(result.namespace, result.supersedes), key, false);
|
|
74
135
|
}
|
|
75
136
|
}
|
|
76
137
|
for (const result of results) {
|
|
77
|
-
const
|
|
78
|
-
if (
|
|
138
|
+
const key = resultStateViewKey(result);
|
|
139
|
+
if (key && result.supersededBy) {
|
|
140
|
+
link(key, stateViewKey(result.namespace, result.supersededBy), true);
|
|
141
|
+
}
|
|
79
142
|
}
|
|
80
143
|
return byPred;
|
|
81
144
|
}
|
|
82
145
|
|
|
146
|
+
function successorLinkOf(
|
|
147
|
+
result: StateViewResult,
|
|
148
|
+
byPred: ReadonlyMap<string, string>,
|
|
149
|
+
): { superseded: boolean; successorKey: string | undefined } {
|
|
150
|
+
const key = resultStateViewKey(result);
|
|
151
|
+
return {
|
|
152
|
+
superseded:
|
|
153
|
+
result.status === "superseded" ||
|
|
154
|
+
Boolean(result.supersededBy) ||
|
|
155
|
+
byPred.has(key),
|
|
156
|
+
successorKey: result.supersededBy
|
|
157
|
+
? stateViewKey(result.namespace, result.supersededBy)
|
|
158
|
+
: byPred.get(key),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
83
162
|
function labelFor(
|
|
84
|
-
|
|
163
|
+
key: string,
|
|
85
164
|
result: StateViewResult,
|
|
86
165
|
byPred: Map<string, string>,
|
|
87
166
|
admittedIds: ReadonlySet<string>,
|
|
88
167
|
asOfMs: number | null,
|
|
89
168
|
): StateLabel {
|
|
90
|
-
const
|
|
91
|
-
const isPred = shouldWidenSuperseded(
|
|
169
|
+
const { successorKey } = successorLinkOf(result, byPred);
|
|
170
|
+
const isPred = shouldWidenSuperseded(successorKey, admittedIds);
|
|
92
171
|
let isSucc = false;
|
|
93
172
|
for (const [predId, succId] of byPred) {
|
|
94
|
-
if (succId ===
|
|
173
|
+
if (succId === key && admittedIds.has(predId)) {
|
|
95
174
|
isSucc = true;
|
|
96
175
|
break;
|
|
97
176
|
}
|
|
@@ -101,19 +180,25 @@ function labelFor(
|
|
|
101
180
|
if (isSucc) return "current";
|
|
102
181
|
if (result.status === "superseded") {
|
|
103
182
|
// #1952 asOf mode: the successor is legitimately absent under the
|
|
104
|
-
// historical pin
|
|
105
|
-
//
|
|
106
|
-
//
|
|
183
|
+
// historical pin (a linked successor takes the pair branches above).
|
|
184
|
+
// The row was the live fact at the snapshot when the temporal
|
|
185
|
+
// validity boundary postdates the pin ("current" relative to the
|
|
186
|
+
// snapshot); already replaced at the pin is "historical". #2859: the
|
|
187
|
+
// boundary is the fact's validity flip — `invalidAt` (the supersession
|
|
188
|
+
// pipeline sets it to the successor's valid_at) — not the
|
|
189
|
+
// `supersededAt` write time; legacy rows without a window fall back
|
|
190
|
+
// to supersededAt.
|
|
107
191
|
return asOfMs === null ? "historical" : snapshotStateLabel(result, asOfMs);
|
|
108
192
|
}
|
|
109
193
|
return "current";
|
|
110
194
|
}
|
|
111
195
|
|
|
112
196
|
function snapshotStateLabel(result: StateViewResult, asOfMs: number): StateLabel {
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
?
|
|
116
|
-
: "
|
|
197
|
+
const invalidAtMs = Date.parse(result.invalidAt ?? "");
|
|
198
|
+
const boundaryMs = Number.isFinite(invalidAtMs)
|
|
199
|
+
? invalidAtMs
|
|
200
|
+
: Date.parse(result.supersededAt ?? "");
|
|
201
|
+
return Number.isFinite(boundaryMs) && boundaryMs <= asOfMs ? "historical" : "current";
|
|
117
202
|
}
|
|
118
203
|
|
|
119
204
|
export function annotateStateView<T extends StateViewResult>(
|
|
@@ -136,26 +221,17 @@ export function annotateStateView<T extends StateViewResult>(
|
|
|
136
221
|
const byPred = buildSuccessorMap(results, chains);
|
|
137
222
|
const candidateIds = new Set<string>();
|
|
138
223
|
for (const result of results) {
|
|
139
|
-
const
|
|
140
|
-
if (
|
|
224
|
+
const key = resultStateViewKey(result);
|
|
225
|
+
if (key) candidateIds.add(key);
|
|
141
226
|
}
|
|
142
|
-
|
|
143
|
-
const isSupersededRow = (result: T): { superseded: boolean; successorId: string | undefined } => {
|
|
144
|
-
const id = resultStateViewId(result);
|
|
145
|
-
return {
|
|
146
|
-
superseded: result.status === "superseded" || Boolean(result.supersededBy) || byPred.has(id),
|
|
147
|
-
successorId: result.supersededBy ?? byPred.get(id),
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
|
|
151
227
|
let admitted: T[];
|
|
152
228
|
if (asOfMs !== null) {
|
|
153
229
|
admitted = results.slice();
|
|
154
230
|
} else {
|
|
155
231
|
admitted = [];
|
|
156
232
|
for (const result of results) {
|
|
157
|
-
const { superseded,
|
|
158
|
-
if (!superseded || shouldWidenSuperseded(
|
|
233
|
+
const { superseded, successorKey } = successorLinkOf(result, byPred);
|
|
234
|
+
if (!superseded || shouldWidenSuperseded(successorKey, candidateIds)) {
|
|
159
235
|
admitted.push(result);
|
|
160
236
|
}
|
|
161
237
|
}
|
|
@@ -163,24 +239,119 @@ export function annotateStateView<T extends StateViewResult>(
|
|
|
163
239
|
// #1952 contract: superseded never appears without its successor. A
|
|
164
240
|
// successor can itself be dropped (filtered elsewhere, or transitively
|
|
165
241
|
// orphaned), so reconcile to a fixpoint instead of trusting the first pass.
|
|
166
|
-
let admittedIds = new Set(admitted.map(
|
|
242
|
+
let admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));
|
|
167
243
|
for (let changed = true; changed; ) {
|
|
168
244
|
changed = false;
|
|
169
245
|
for (let i = admitted.length - 1; i >= 0; i -= 1) {
|
|
170
246
|
const row = admitted[i]!;
|
|
171
|
-
const { superseded,
|
|
172
|
-
if (superseded && !shouldWidenSuperseded(
|
|
247
|
+
const { superseded, successorKey } = successorLinkOf(row, byPred);
|
|
248
|
+
if (superseded && !shouldWidenSuperseded(successorKey, admittedIds)) {
|
|
173
249
|
admitted.splice(i, 1);
|
|
174
250
|
changed = true;
|
|
175
251
|
}
|
|
176
252
|
}
|
|
177
|
-
if (changed) admittedIds = new Set(admitted.map(
|
|
253
|
+
if (changed) admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));
|
|
178
254
|
}
|
|
179
255
|
}
|
|
180
256
|
|
|
181
|
-
const admittedIds = new Set(admitted.map(
|
|
257
|
+
const admittedIds = new Set(admitted.map(resultStateViewKey).filter(Boolean));
|
|
182
258
|
return admitted.map((result) => {
|
|
183
|
-
const
|
|
184
|
-
|
|
259
|
+
const key = resultStateViewKey(result);
|
|
260
|
+
const { successorKey } = successorLinkOf(result, byPred);
|
|
261
|
+
const stateLabel = labelFor(key, result, byPred, admittedIds, asOfMs);
|
|
262
|
+
if (result.supersededBy || !successorKey) return { ...result, stateLabel };
|
|
263
|
+
return { ...result, stateLabel, supersededBy: stateViewIdFromKey(successorKey) };
|
|
185
264
|
});
|
|
186
265
|
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* #2859 — drop superseded rows whose successor is not in the pool BEFORE
|
|
269
|
+
* the user cap/MMR runs, so post-cap orphan removal can never underfill
|
|
270
|
+
* the result set. Reconciles to a fixpoint (a dropped successor orphans
|
|
271
|
+
* its own predecessors). Rows with no successor links pass through in
|
|
272
|
+
* order. ponytail: repeated full-pool passes are O(n²) on one long chain;
|
|
273
|
+
* recall pools stay small, memoize per-key if pools ever grow.
|
|
274
|
+
*/
|
|
275
|
+
export function reconcileStateViewPairs<T extends StateViewResult>(results: readonly T[]): T[] {
|
|
276
|
+
const byPred = buildSuccessorMap(results, []);
|
|
277
|
+
let kept = results.slice();
|
|
278
|
+
for (let changed = true; changed; ) {
|
|
279
|
+
changed = false;
|
|
280
|
+
const keptKeys = new Set(kept.map(resultStateViewKey).filter(Boolean));
|
|
281
|
+
const next: T[] = [];
|
|
282
|
+
for (const row of kept) {
|
|
283
|
+
const { superseded, successorKey } = successorLinkOf(row, byPred);
|
|
284
|
+
if (superseded && !shouldWidenSuperseded(successorKey, keptKeys)) {
|
|
285
|
+
changed = true;
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
next.push(row);
|
|
289
|
+
}
|
|
290
|
+
if (changed) kept = next;
|
|
291
|
+
}
|
|
292
|
+
return kept;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* #2859 — packet-counting cap. A predecessor/successor chain admitted
|
|
297
|
+
* together is ONE complete evidence packet: it consumes a single slot of
|
|
298
|
+
* the user cap, and the slice never splits a packet at the boundary (no
|
|
299
|
+
* underfill from post-cap orphan removal). Rows keep their incoming
|
|
300
|
+
* (MMR) order; packets are ordered by first appearance. Call
|
|
301
|
+
* reconcileStateViewPairs first so orphans never consume a slot.
|
|
302
|
+
*/
|
|
303
|
+
export function capStateViewPackets<T extends StateViewResult>(
|
|
304
|
+
ordered: readonly T[],
|
|
305
|
+
limit: number,
|
|
306
|
+
): T[] {
|
|
307
|
+
const safeLimit =
|
|
308
|
+
typeof limit === "number" && Number.isFinite(limit) ? Math.max(0, Math.floor(limit)) : 0;
|
|
309
|
+
if (safeLimit === 0) return [];
|
|
310
|
+
if (ordered.length === 0) return [];
|
|
311
|
+
|
|
312
|
+
const byPred = buildSuccessorMap(ordered, []);
|
|
313
|
+
// Union-find over row keys; blank-key rows become per-index singletons.
|
|
314
|
+
const parent = new Map<string, string>();
|
|
315
|
+
const root = (key: string): string => {
|
|
316
|
+
let current = key;
|
|
317
|
+
for (;;) {
|
|
318
|
+
const up = parent.get(current);
|
|
319
|
+
if (up === undefined || up === current) {
|
|
320
|
+
parent.set(current, current);
|
|
321
|
+
return current;
|
|
322
|
+
}
|
|
323
|
+
current = up;
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
const union = (a: string, b: string): void => {
|
|
327
|
+
const ra = root(a);
|
|
328
|
+
const rb = root(b);
|
|
329
|
+
if (ra !== rb) parent.set(ra, rb);
|
|
330
|
+
};
|
|
331
|
+
const keys: string[] = [];
|
|
332
|
+
const keyToIndex = new Map<string, number>();
|
|
333
|
+
for (let i = 0; i < ordered.length; i += 1) {
|
|
334
|
+
// ponytail: blank-key rows must stay distinct singletons; index-keyed.
|
|
335
|
+
const key = resultStateViewKey(ordered[i]!) || `#idx${i}`;
|
|
336
|
+
keys.push(key);
|
|
337
|
+
if (!parent.has(key)) parent.set(key, key);
|
|
338
|
+
const first = keyToIndex.get(key);
|
|
339
|
+
if (first !== undefined) union(keys[first]!, key);
|
|
340
|
+
else keyToIndex.set(key, i);
|
|
341
|
+
}
|
|
342
|
+
for (const [predKey, succKey] of byPred) {
|
|
343
|
+
const predIdx = keyToIndex.get(predKey);
|
|
344
|
+
const succIdx = keyToIndex.get(succKey);
|
|
345
|
+
if (predIdx !== undefined && succIdx !== undefined) union(keys[predIdx]!, keys[succIdx]!);
|
|
346
|
+
}
|
|
347
|
+
// Packets ordered by first appearance; admit whole packets until the cap.
|
|
348
|
+
const selectedRoots = new Set<string>();
|
|
349
|
+
for (let i = 0; i < ordered.length && selectedRoots.size < safeLimit; i += 1) {
|
|
350
|
+
selectedRoots.add(root(keys[i]!));
|
|
351
|
+
}
|
|
352
|
+
const selected: T[] = [];
|
|
353
|
+
for (let i = 0; i < ordered.length; i += 1) {
|
|
354
|
+
if (selectedRoots.has(root(keys[i]!))) selected.push(ordered[i]!);
|
|
355
|
+
}
|
|
356
|
+
return selected;
|
|
357
|
+
}
|
package/src/summarizer.ts
CHANGED
|
@@ -6,6 +6,10 @@ import { LocalLlmClient } from "./local-llm.js";
|
|
|
6
6
|
import { FallbackLlmClient, fallbackLlmRuntimeContextFromConfig, gatewayTaskChainOptions } from "./fallback-llm.js";
|
|
7
7
|
import { ModelRegistry } from "./model-registry.js";
|
|
8
8
|
import { extractJsonCandidates } from "./json-extract.js";
|
|
9
|
+
import {
|
|
10
|
+
completeBackgroundGeneration,
|
|
11
|
+
parseBackgroundGenerationJson,
|
|
12
|
+
} from "./background-generation.js";
|
|
9
13
|
import type { HourlySummary, TranscriptEntry, PluginConfig, GatewayConfig } from "./types.js";
|
|
10
14
|
import type { TranscriptManager } from "./transcript.js";
|
|
11
15
|
import { readSummarySnapshot, upsertSummarySnapshot, writeSummarySnapshot } from "./summary-snapshot.js";
|
|
@@ -216,6 +220,27 @@ export class HourlySummarizer {
|
|
|
216
220
|
const hourIso = hourStart.toISOString();
|
|
217
221
|
const startTime = Date.now();
|
|
218
222
|
|
|
223
|
+
if (this.config.backgroundGeneration) {
|
|
224
|
+
try {
|
|
225
|
+
const text = await completeBackgroundGeneration(this.config, [
|
|
226
|
+
{ role: "system", content: "You are a conversation summarization system. Output valid JSON only." },
|
|
227
|
+
{ role: "user", content: `Summarize this conversation:\n\n${conversation}` },
|
|
228
|
+
]);
|
|
229
|
+
const parsed = parseBackgroundGenerationJson(text, (value) => HourlySummarySchema.parse(value));
|
|
230
|
+
if (parsed) {
|
|
231
|
+
return {
|
|
232
|
+
hour: hourIso,
|
|
233
|
+
sessionKey,
|
|
234
|
+
bullets: parsed.bullets,
|
|
235
|
+
turnCount: entries.length,
|
|
236
|
+
generatedAt: new Date().toISOString(),
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
} catch {
|
|
240
|
+
log.info("summary generation: background generation unavailable, continuing");
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
219
244
|
// Try local LLM first if enabled
|
|
220
245
|
if (this.shouldUseLocalLlm) {
|
|
221
246
|
try {
|
|
@@ -175,7 +175,7 @@ test("TrustScore quarantine excludes a contradicted memory from injection but su
|
|
|
175
175
|
|
|
176
176
|
test("X-ray capture preserves recent-scan serving while recording post-trust applied and pre-trust headroom", async () => {
|
|
177
177
|
const { orchestrator, memoryDir } = await makeOrchestrator({
|
|
178
|
-
qmdMaxResults:
|
|
178
|
+
qmdMaxResults: 1,
|
|
179
179
|
});
|
|
180
180
|
const now = Date.now();
|
|
181
181
|
try {
|
package/src/types.ts
CHANGED
|
@@ -13,6 +13,8 @@ import type { ContradictionLocalizationConfig, ContradictionScanConfig } from ".
|
|
|
13
13
|
import type { GraphPathScoringConfig } from "./graph-path-scoring-config.js";
|
|
14
14
|
export type { ContradictionLocalizationConfig, ContradictionScanConfig } from "./contradiction-config.js";
|
|
15
15
|
export type { GraphPathScoringConfig } from "./graph-path-scoring-config.js";
|
|
16
|
+
export type { BackgroundGenerationConfig } from "./background-generation-config.js";
|
|
17
|
+
import type { BackgroundGenerationConfig } from "./background-generation-config.js";
|
|
16
18
|
import type {
|
|
17
19
|
DriftDetectionSettings,
|
|
18
20
|
MemoryDriftProvenance,
|
|
@@ -685,7 +687,6 @@ export interface SemanticChunkingConfigShape {
|
|
|
685
687
|
embeddingBatchSize: number;
|
|
686
688
|
fallbackToRecursive: boolean;
|
|
687
689
|
}
|
|
688
|
-
|
|
689
690
|
export interface PluginConfig
|
|
690
691
|
extends BoundedJsonlStateConfig,
|
|
691
692
|
SecurityConfig,
|
|
@@ -695,6 +696,7 @@ export interface PluginConfig
|
|
|
695
696
|
LocalLlmConfig {
|
|
696
697
|
openaiApiKey: string | undefined;
|
|
697
698
|
openaiBaseUrl: string | undefined;
|
|
699
|
+
backgroundGeneration?: BackgroundGenerationConfig;
|
|
698
700
|
model: string;
|
|
699
701
|
reasoningEffort: ReasoningEffort;
|
|
700
702
|
triggerMode: TriggerMode;
|
|
@@ -3859,7 +3861,6 @@ export interface HourlySummary {
|
|
|
3859
3861
|
// ============================================================================
|
|
3860
3862
|
// Dreams Pipeline Telemetry (issue #678 PR 3/4)
|
|
3861
3863
|
// ============================================================================
|
|
3862
|
-
|
|
3863
3864
|
// Re-export from the authoritative source to avoid duplicate definitions.
|
|
3864
3865
|
// dreams-ledger.ts is the single source of truth; types.ts re-exports so
|
|
3865
3866
|
// callers that import from types.js continue to work unchanged.
|
package/src/write-envelope.ts
CHANGED
|
@@ -121,6 +121,11 @@ const MEMORY_CATEGORY_TABLE: Record<MemoryCategory, true> = {
|
|
|
121
121
|
reasoning_trace: true,
|
|
122
122
|
};
|
|
123
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Canonical category spellings, sorted. Runtime counterpart of the
|
|
126
|
+
* `MemoryCategory` union for error messages and cross-module consistency
|
|
127
|
+
* checks (issue #2829).
|
|
128
|
+
*/
|
|
124
129
|
export const MEMORY_CATEGORY_NAMES = Object.keys(MEMORY_CATEGORY_TABLE).sort();
|
|
125
130
|
|
|
126
131
|
export function isMemoryCategory(value: string): value is MemoryCategory {
|
package/dist/chunk-255PC37A.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
coerceBooleanLike
|
|
3
|
-
} from "./chunk-PQVCH2AE.js";
|
|
4
|
-
|
|
5
|
-
// src/recall-state-view.ts
|
|
6
|
-
var DEFAULT_RECALL_STATE_VIEWS = false;
|
|
7
|
-
var CHANGE_WORDS = ["switch", "switches", "switched", "switching", "change", "changes", "changed", "changing"];
|
|
8
|
-
var CHANGE_PHRASE_RE = /\bwhen\s+did\b|\bused\s+to\b/;
|
|
9
|
-
var CHANGE_WORD_RE = new RegExp(`\\b(?:${CHANGE_WORDS.join("|")})\\b`);
|
|
10
|
-
var EVENT_POINTER_RE = /\b(?:before|after)\s+(?:the|a|an|this|that|these|those)\b/;
|
|
11
|
-
function parseRecallStateViews(raw) {
|
|
12
|
-
return coerceBooleanLike(raw, "recallStateViews") === true;
|
|
13
|
-
}
|
|
14
|
-
function isChangeOrientedQuery(query) {
|
|
15
|
-
const lower = query.toLowerCase();
|
|
16
|
-
return CHANGE_PHRASE_RE.test(lower) || CHANGE_WORD_RE.test(lower) || EVENT_POINTER_RE.test(lower);
|
|
17
|
-
}
|
|
18
|
-
function shouldWidenSuperseded(successorId, candidateIds) {
|
|
19
|
-
return typeof successorId === "string" && successorId.length > 0 && candidateIds.has(successorId);
|
|
20
|
-
}
|
|
21
|
-
function formatSupersededPrefix(date, successorId) {
|
|
22
|
-
return `[superseded ${date} by ${successorId}]`;
|
|
23
|
-
}
|
|
24
|
-
function resultStateViewId(result) {
|
|
25
|
-
return result.id ?? result.docid ?? "";
|
|
26
|
-
}
|
|
27
|
-
function buildSuccessorMap(results, chains) {
|
|
28
|
-
const byPred = /* @__PURE__ */ new Map();
|
|
29
|
-
for (const chain of chains) {
|
|
30
|
-
if (chain.predecessorId && chain.successorId) {
|
|
31
|
-
byPred.set(chain.predecessorId, chain.successorId);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
for (const result of results) {
|
|
35
|
-
const id = resultStateViewId(result);
|
|
36
|
-
if (id && result.supersededBy) byPred.set(id, result.supersededBy);
|
|
37
|
-
}
|
|
38
|
-
return byPred;
|
|
39
|
-
}
|
|
40
|
-
function labelFor(id, result, byPred, admittedIds, asOfMs) {
|
|
41
|
-
const successorId = result.supersededBy ?? byPred.get(id);
|
|
42
|
-
const isPred = shouldWidenSuperseded(successorId, admittedIds);
|
|
43
|
-
let isSucc = false;
|
|
44
|
-
for (const [predId, succId] of byPred) {
|
|
45
|
-
if (succId === id && admittedIds.has(predId)) {
|
|
46
|
-
isSucc = true;
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (isPred && isSucc) return "transition";
|
|
51
|
-
if (isPred) return "historical";
|
|
52
|
-
if (isSucc) return "current";
|
|
53
|
-
if (result.status === "superseded") {
|
|
54
|
-
return asOfMs === null ? "historical" : snapshotStateLabel(result, asOfMs);
|
|
55
|
-
}
|
|
56
|
-
return "current";
|
|
57
|
-
}
|
|
58
|
-
function snapshotStateLabel(result, asOfMs) {
|
|
59
|
-
const supersededAtMs = Date.parse(result.supersededAt ?? "");
|
|
60
|
-
return Number.isFinite(supersededAtMs) && supersededAtMs <= asOfMs ? "historical" : "current";
|
|
61
|
-
}
|
|
62
|
-
function annotateStateView(results, query, chains, options = {}) {
|
|
63
|
-
const enabled = options.enabled === true;
|
|
64
|
-
if (!enabled || !isChangeOrientedQuery(query)) return results;
|
|
65
|
-
const asOfMs = typeof options.asOfMs === "number" && Number.isFinite(options.asOfMs) ? options.asOfMs : null;
|
|
66
|
-
const byPred = buildSuccessorMap(results, chains);
|
|
67
|
-
const candidateIds = /* @__PURE__ */ new Set();
|
|
68
|
-
for (const result of results) {
|
|
69
|
-
const id = resultStateViewId(result);
|
|
70
|
-
if (id) candidateIds.add(id);
|
|
71
|
-
}
|
|
72
|
-
const isSupersededRow = (result) => {
|
|
73
|
-
const id = resultStateViewId(result);
|
|
74
|
-
return {
|
|
75
|
-
superseded: result.status === "superseded" || Boolean(result.supersededBy) || byPred.has(id),
|
|
76
|
-
successorId: result.supersededBy ?? byPred.get(id)
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
let admitted;
|
|
80
|
-
if (asOfMs !== null) {
|
|
81
|
-
admitted = results.slice();
|
|
82
|
-
} else {
|
|
83
|
-
admitted = [];
|
|
84
|
-
for (const result of results) {
|
|
85
|
-
const { superseded, successorId } = isSupersededRow(result);
|
|
86
|
-
if (!superseded || shouldWidenSuperseded(successorId, candidateIds)) {
|
|
87
|
-
admitted.push(result);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
let admittedIds2 = new Set(admitted.map(resultStateViewId).filter(Boolean));
|
|
91
|
-
for (let changed = true; changed; ) {
|
|
92
|
-
changed = false;
|
|
93
|
-
for (let i = admitted.length - 1; i >= 0; i -= 1) {
|
|
94
|
-
const row = admitted[i];
|
|
95
|
-
const { superseded, successorId } = isSupersededRow(row);
|
|
96
|
-
if (superseded && !shouldWidenSuperseded(successorId, admittedIds2)) {
|
|
97
|
-
admitted.splice(i, 1);
|
|
98
|
-
changed = true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (changed) admittedIds2 = new Set(admitted.map(resultStateViewId).filter(Boolean));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
const admittedIds = new Set(admitted.map(resultStateViewId).filter(Boolean));
|
|
105
|
-
return admitted.map((result) => {
|
|
106
|
-
const id = resultStateViewId(result);
|
|
107
|
-
return { ...result, stateLabel: labelFor(id, result, byPred, admittedIds, asOfMs) };
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export {
|
|
112
|
-
DEFAULT_RECALL_STATE_VIEWS,
|
|
113
|
-
parseRecallStateViews,
|
|
114
|
-
isChangeOrientedQuery,
|
|
115
|
-
shouldWidenSuperseded,
|
|
116
|
-
formatSupersededPrefix,
|
|
117
|
-
resultStateViewId,
|
|
118
|
-
annotateStateView
|
|
119
|
-
};
|
|
120
|
-
//# sourceMappingURL=chunk-255PC37A.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/recall-state-view.ts"],"sourcesContent":["/**\n * Recall state views (issue #1952).\n *\n * Config key: `recallStateViews` (default false). When false, annotateStateView\n * is identity: same array reference, no `stateLabel`. config.ts is at its\n * fileSizeGrandfather ceiling, so parseConfig wiring waits for a later PR.\n * Call `parseRecallStateViews` at the recall seam when that lands.\n *\n * Change-intent morphology lives here (do not grow intent.ts). A superseded\n * memory is admitted only when its successor is also in the candidate set.\n */\nimport { coerceBooleanLike } from \"./connectors/coerce.js\";\n\nexport type StateLabel = \"current\" | \"historical\" | \"transition\";\n\nexport interface StateViewChain {\n predecessorId: string;\n successorId: string;\n supersededAt?: string;\n}\n\nexport interface StateViewResult {\n id?: string;\n docid?: string;\n status?: string;\n supersededBy?: string;\n supersededAt?: string;\n stateLabel?: StateLabel;\n}\n\nexport const DEFAULT_RECALL_STATE_VIEWS = false;\n\nconst CHANGE_WORDS = [\"switch\", \"switches\", \"switched\", \"switching\", \"change\", \"changes\", \"changed\", \"changing\"];\n\n// Phrase matches are token-bounded: \"when Didi\" must not fire the\n// \"when did\" phrase, and \"confused to\" must not fire \"used to\".\nconst CHANGE_PHRASE_RE = /\\bwhen\\s+did\\b|\\bused\\s+to\\b/;\nconst CHANGE_WORD_RE = new RegExp(`\\\\b(?:${CHANGE_WORDS.join(\"|\")})\\\\b`);\n// Bare \"before\"/\"after\" are ordinary sequencing (\"before lunch\",\n// \"after install\"). They carry change intent only when they point at a\n// specific event through a determiner (\"before the move\", \"after the\n// cutover\").\nconst EVENT_POINTER_RE = /\\b(?:before|after)\\s+(?:the|a|an|this|that|these|those)\\b/;\n\nexport function parseRecallStateViews(raw: unknown): boolean {\n return coerceBooleanLike(raw, \"recallStateViews\") === true;\n}\n\nexport function isChangeOrientedQuery(query: string): boolean {\n const lower = query.toLowerCase();\n return CHANGE_PHRASE_RE.test(lower) || CHANGE_WORD_RE.test(lower) || EVENT_POINTER_RE.test(lower);\n}\n\nexport function shouldWidenSuperseded(\n successorId: string | undefined,\n candidateIds: ReadonlySet<string>,\n): boolean {\n return typeof successorId === \"string\" && successorId.length > 0 && candidateIds.has(successorId);\n}\n\nexport function formatSupersededPrefix(date: string, successorId: string): string {\n return `[superseded ${date} by ${successorId}]`;\n}\n\nexport function resultStateViewId(result: StateViewResult): string {\n return result.id ?? result.docid ?? \"\";\n}\n\nfunction buildSuccessorMap(results: readonly StateViewResult[], chains: readonly StateViewChain[]): Map<string, string> {\n const byPred = new Map<string, string>();\n for (const chain of chains) {\n if (chain.predecessorId && chain.successorId) {\n byPred.set(chain.predecessorId, chain.successorId);\n }\n }\n for (const result of results) {\n const id = resultStateViewId(result);\n if (id && result.supersededBy) byPred.set(id, result.supersededBy);\n }\n return byPred;\n}\n\nfunction labelFor(\n id: string,\n result: StateViewResult,\n byPred: Map<string, string>,\n admittedIds: ReadonlySet<string>,\n asOfMs: number | null,\n): StateLabel {\n const successorId = result.supersededBy ?? byPred.get(id);\n const isPred = shouldWidenSuperseded(successorId, admittedIds);\n let isSucc = false;\n for (const [predId, succId] of byPred) {\n if (succId === id && admittedIds.has(predId)) {\n isSucc = true;\n break;\n }\n }\n if (isPred && isSucc) return \"transition\";\n if (isPred) return \"historical\";\n if (isSucc) return \"current\";\n if (result.status === \"superseded\") {\n // #1952 asOf mode: the successor is legitimately absent under the\n // historical pin. The row was the live fact at the snapshot when the\n // recorded supersession postdates the pin (\"current\" relative to\n // the snapshot); already replaced at the pin is \"historical\".\n return asOfMs === null ? \"historical\" : snapshotStateLabel(result, asOfMs);\n }\n return \"current\";\n}\n\nfunction snapshotStateLabel(result: StateViewResult, asOfMs: number): StateLabel {\n const supersededAtMs = Date.parse(result.supersededAt ?? \"\");\n return Number.isFinite(supersededAtMs) && supersededAtMs <= asOfMs\n ? \"historical\"\n : \"current\";\n}\n\nexport function annotateStateView<T extends StateViewResult>(\n results: T[],\n query: string,\n chains: readonly StateViewChain[],\n options: { enabled?: boolean; asOfMs?: number } = {},\n): T[] {\n const enabled = options.enabled === true;\n if (!enabled || !isChangeOrientedQuery(query)) return results;\n // #1952 asOf mode: under a historical pin the pipeline's isValidAsOf\n // gate already decided validity at the pinned instant, so a predecessor\n // must not be discarded merely because its successor is absent under\n // the same filter. A valid asOf result is never emptied here.\n const asOfMs =\n typeof options.asOfMs === \"number\" && Number.isFinite(options.asOfMs)\n ? options.asOfMs\n : null;\n\n const byPred = buildSuccessorMap(results, chains);\n const candidateIds = new Set<string>();\n for (const result of results) {\n const id = resultStateViewId(result);\n if (id) candidateIds.add(id);\n }\n\n const isSupersededRow = (result: T): { superseded: boolean; successorId: string | undefined } => {\n const id = resultStateViewId(result);\n return {\n superseded: result.status === \"superseded\" || Boolean(result.supersededBy) || byPred.has(id),\n successorId: result.supersededBy ?? byPred.get(id),\n };\n };\n\n let admitted: T[];\n if (asOfMs !== null) {\n admitted = results.slice();\n } else {\n admitted = [];\n for (const result of results) {\n const { superseded, successorId } = isSupersededRow(result);\n if (!superseded || shouldWidenSuperseded(successorId, candidateIds)) {\n admitted.push(result);\n }\n }\n\n // #1952 contract: superseded never appears without its successor. A\n // successor can itself be dropped (filtered elsewhere, or transitively\n // orphaned), so reconcile to a fixpoint instead of trusting the first pass.\n let admittedIds = new Set(admitted.map(resultStateViewId).filter(Boolean));\n for (let changed = true; changed; ) {\n changed = false;\n for (let i = admitted.length - 1; i >= 0; i -= 1) {\n const row = admitted[i]!;\n const { superseded, successorId } = isSupersededRow(row);\n if (superseded && !shouldWidenSuperseded(successorId, admittedIds)) {\n admitted.splice(i, 1);\n changed = true;\n }\n }\n if (changed) admittedIds = new Set(admitted.map(resultStateViewId).filter(Boolean));\n }\n }\n\n const admittedIds = new Set(admitted.map(resultStateViewId).filter(Boolean));\n return admitted.map((result) => {\n const id = resultStateViewId(result);\n return { ...result, stateLabel: labelFor(id, result, byPred, admittedIds, asOfMs) };\n });\n}\n"],"mappings":";;;;;AA8BO,IAAM,6BAA6B;AAE1C,IAAM,eAAe,CAAC,UAAU,YAAY,YAAY,aAAa,UAAU,WAAW,WAAW,UAAU;AAI/G,IAAM,mBAAmB;AACzB,IAAM,iBAAiB,IAAI,OAAO,SAAS,aAAa,KAAK,GAAG,CAAC,MAAM;AAKvE,IAAM,mBAAmB;AAElB,SAAS,sBAAsB,KAAuB;AAC3D,SAAO,kBAAkB,KAAK,kBAAkB,MAAM;AACxD;AAEO,SAAS,sBAAsB,OAAwB;AAC5D,QAAM,QAAQ,MAAM,YAAY;AAChC,SAAO,iBAAiB,KAAK,KAAK,KAAK,eAAe,KAAK,KAAK,KAAK,iBAAiB,KAAK,KAAK;AAClG;AAEO,SAAS,sBACd,aACA,cACS;AACT,SAAO,OAAO,gBAAgB,YAAY,YAAY,SAAS,KAAK,aAAa,IAAI,WAAW;AAClG;AAEO,SAAS,uBAAuB,MAAc,aAA6B;AAChF,SAAO,eAAe,IAAI,OAAO,WAAW;AAC9C;AAEO,SAAS,kBAAkB,QAAiC;AACjE,SAAO,OAAO,MAAM,OAAO,SAAS;AACtC;AAEA,SAAS,kBAAkB,SAAqC,QAAwD;AACtH,QAAM,SAAS,oBAAI,IAAoB;AACvC,aAAW,SAAS,QAAQ;AAC1B,QAAI,MAAM,iBAAiB,MAAM,aAAa;AAC5C,aAAO,IAAI,MAAM,eAAe,MAAM,WAAW;AAAA,IACnD;AAAA,EACF;AACA,aAAW,UAAU,SAAS;AAC5B,UAAM,KAAK,kBAAkB,MAAM;AACnC,QAAI,MAAM,OAAO,aAAc,QAAO,IAAI,IAAI,OAAO,YAAY;AAAA,EACnE;AACA,SAAO;AACT;AAEA,SAAS,SACP,IACA,QACA,QACA,aACA,QACY;AACZ,QAAM,cAAc,OAAO,gBAAgB,OAAO,IAAI,EAAE;AACxD,QAAM,SAAS,sBAAsB,aAAa,WAAW;AAC7D,MAAI,SAAS;AACb,aAAW,CAAC,QAAQ,MAAM,KAAK,QAAQ;AACrC,QAAI,WAAW,MAAM,YAAY,IAAI,MAAM,GAAG;AAC5C,eAAS;AACT;AAAA,IACF;AAAA,EACF;AACA,MAAI,UAAU,OAAQ,QAAO;AAC7B,MAAI,OAAQ,QAAO;AACnB,MAAI,OAAQ,QAAO;AACnB,MAAI,OAAO,WAAW,cAAc;AAKlC,WAAO,WAAW,OAAO,eAAe,mBAAmB,QAAQ,MAAM;AAAA,EAC3E;AACA,SAAO;AACT;AAEA,SAAS,mBAAmB,QAAyB,QAA4B;AAC/E,QAAM,iBAAiB,KAAK,MAAM,OAAO,gBAAgB,EAAE;AAC3D,SAAO,OAAO,SAAS,cAAc,KAAK,kBAAkB,SACxD,eACA;AACN;AAEO,SAAS,kBACd,SACA,OACA,QACA,UAAkD,CAAC,GAC9C;AACL,QAAM,UAAU,QAAQ,YAAY;AACpC,MAAI,CAAC,WAAW,CAAC,sBAAsB,KAAK,EAAG,QAAO;AAKtD,QAAM,SACJ,OAAO,QAAQ,WAAW,YAAY,OAAO,SAAS,QAAQ,MAAM,IAChE,QAAQ,SACR;AAEN,QAAM,SAAS,kBAAkB,SAAS,MAAM;AAChD,QAAM,eAAe,oBAAI,IAAY;AACrC,aAAW,UAAU,SAAS;AAC5B,UAAM,KAAK,kBAAkB,MAAM;AACnC,QAAI,GAAI,cAAa,IAAI,EAAE;AAAA,EAC7B;AAEA,QAAM,kBAAkB,CAAC,WAAwE;AAC/F,UAAM,KAAK,kBAAkB,MAAM;AACnC,WAAO;AAAA,MACL,YAAY,OAAO,WAAW,gBAAgB,QAAQ,OAAO,YAAY,KAAK,OAAO,IAAI,EAAE;AAAA,MAC3F,aAAa,OAAO,gBAAgB,OAAO,IAAI,EAAE;AAAA,IACnD;AAAA,EACF;AAEA,MAAI;AACJ,MAAI,WAAW,MAAM;AACnB,eAAW,QAAQ,MAAM;AAAA,EAC3B,OAAO;AACL,eAAW,CAAC;AACZ,eAAW,UAAU,SAAS;AAC5B,YAAM,EAAE,YAAY,YAAY,IAAI,gBAAgB,MAAM;AAC1D,UAAI,CAAC,cAAc,sBAAsB,aAAa,YAAY,GAAG;AACnE,iBAAS,KAAK,MAAM;AAAA,MACtB;AAAA,IACF;AAKA,QAAIA,eAAc,IAAI,IAAI,SAAS,IAAI,iBAAiB,EAAE,OAAO,OAAO,CAAC;AACzE,aAAS,UAAU,MAAM,WAAW;AAClC,gBAAU;AACV,eAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AAChD,cAAM,MAAM,SAAS,CAAC;AACtB,cAAM,EAAE,YAAY,YAAY,IAAI,gBAAgB,GAAG;AACvD,YAAI,cAAc,CAAC,sBAAsB,aAAaA,YAAW,GAAG;AAClE,mBAAS,OAAO,GAAG,CAAC;AACpB,oBAAU;AAAA,QACZ;AAAA,MACF;AACA,UAAI,QAAS,CAAAA,eAAc,IAAI,IAAI,SAAS,IAAI,iBAAiB,EAAE,OAAO,OAAO,CAAC;AAAA,IACpF;AAAA,EACF;AAEA,QAAM,cAAc,IAAI,IAAI,SAAS,IAAI,iBAAiB,EAAE,OAAO,OAAO,CAAC;AAC3E,SAAO,SAAS,IAAI,CAAC,WAAW;AAC9B,UAAM,KAAK,kBAAkB,MAAM;AACnC,WAAO,EAAE,GAAG,QAAQ,YAAY,SAAS,IAAI,QAAQ,QAAQ,aAAa,MAAM,EAAE;AAAA,EACpF,CAAC;AACH;","names":["admittedIds"]}
|