@remnic/core 9.69.36 → 9.69.38
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 +77 -74
- package/dist/access-authorization-probe.d.ts +14 -12
- package/dist/access-authorization-probe.js +78 -75
- package/dist/access-boundary.d.ts +14 -12
- package/dist/access-boundary.js +77 -74
- package/dist/access-cli.js +180 -170
- 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 +77 -74
- package/dist/access-health-types.d.ts +2 -1
- package/dist/access-http-briefing.d.ts +14 -12
- package/dist/access-http-briefing.js +78 -75
- 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 +79 -76
- package/dist/access-http.d.ts +15 -13
- package/dist/access-http.js +97 -94
- package/dist/access-identity-continuity-surface.d.ts +12 -10
- package/dist/access-identity-continuity-surface.js +77 -74
- package/dist/access-lcm-surface.d.ts +14 -12
- package/dist/access-lcm-surface.js +77 -74
- package/dist/access-mcp.d.ts +14 -12
- package/dist/access-mcp.js +86 -83
- package/dist/access-memory-search-fanout.d.ts +3 -2
- package/dist/{access-namespace-preflight-D8qri11P.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 +77 -74
- 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 +77 -74
- package/dist/access-offline-manifest.d.ts +12 -10
- package/dist/access-offline-manifest.js +15 -15
- package/dist/access-operations-batch.js +80 -77
- package/dist/access-operations.d.ts +17 -30
- package/dist/access-operations.js +85 -82
- package/dist/access-recall-concurrency.d.ts +14 -12
- package/dist/access-recall-concurrency.js +77 -74
- package/dist/access-recall-response.d.ts +14 -12
- package/dist/access-recall-response.js +77 -74
- package/dist/access-recall-surface.d.ts +14 -12
- package/dist/access-recall-surface.js +77 -74
- package/dist/access-schema.d.ts +214 -111
- package/dist/access-schema.js +7 -13
- package/dist/{access-service-Cl_x57xR.d.ts → access-service-gBcdRUHY.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 +77 -74
- package/dist/access-surface-catalog.d.ts +14 -12
- package/dist/access-surface-catalog.js +79 -76
- 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 -16
- 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-4YFATLFQ.js → auto-sync-RP4C6ZPF.js} +12 -10
- package/dist/{auto-sync-4YFATLFQ.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/background-generation.js.map +1 -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 +25 -24
- 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 +5 -3
- package/dist/calibration.js.map +1 -1
- package/dist/capabilities.d.ts +2 -1
- package/dist/{capsule-merge-ZCXUPLNJ.js → capsule-merge-IPG4IOFP.js} +2 -2
- package/dist/{catalog-Bq1AxZwF.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 +27 -26
- 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.js +1 -1
- package/dist/{chunk-LO4UKPKX.js → chunk-27MKMTBY.js} +2 -2
- package/dist/{chunk-TK4FHQRN.js → chunk-2J3V5QEO.js} +4 -4
- package/dist/{chunk-DVOBLPSQ.js → chunk-2MT4ADLQ.js} +15 -39
- package/dist/chunk-2MT4ADLQ.js.map +1 -0
- package/dist/{chunk-JSRVXI6E.js → chunk-2OGTN37H.js} +10 -10
- package/dist/{chunk-DK4X5B6I.js → chunk-2PTNJTBE.js} +2 -2
- package/dist/chunk-2QG4SLZI.js +44 -0
- package/dist/chunk-2QG4SLZI.js.map +1 -0
- package/dist/{chunk-27IOSH2W.js → chunk-375ARKRS.js} +32 -11
- package/dist/chunk-375ARKRS.js.map +1 -0
- package/dist/{chunk-PWPIERBM.js → chunk-37CAEC7E.js} +4 -4
- package/dist/{chunk-S2ULTQZR.js → chunk-3N3PBBEH.js} +2 -2
- package/dist/{chunk-ZTG4P7NZ.js → chunk-3OYSIVOO.js} +168 -168
- package/dist/{chunk-ZBEGS7OB.js → chunk-474DL7UB.js} +3 -3
- package/dist/{chunk-YNN26CIZ.js → chunk-4B3HBIFX.js} +2 -2
- package/dist/{chunk-HC4GFLMQ.js → chunk-4BCHFSC7.js} +3 -3
- package/dist/{chunk-YEDVOYL2.js → chunk-4RX5O34R.js} +2 -2
- package/dist/{chunk-W6IJMWTZ.js → chunk-5AERZWJD.js} +2 -2
- package/dist/{chunk-XPJNT6PI.js → chunk-5N4MZLEH.js} +10 -6
- package/dist/chunk-5N4MZLEH.js.map +1 -0
- package/dist/{chunk-UBG4GAEP.js → chunk-5U7K4W6K.js} +6 -2
- package/dist/chunk-5U7K4W6K.js.map +1 -0
- package/dist/{chunk-PAAJWQH5.js → chunk-62D2PAAM.js} +4 -4
- package/dist/{chunk-JHZCXUQI.js → chunk-62QIQEUC.js} +157 -154
- package/dist/chunk-62QIQEUC.js.map +1 -0
- package/dist/{chunk-52II7PB6.js → chunk-645WOU5I.js} +4 -4
- 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-FVJ4D6L7.js → chunk-6PRY6CLC.js} +4 -4
- package/dist/{chunk-GLZH5VEN.js → chunk-6ZMNTRU3.js} +2 -2
- package/dist/{chunk-Z7ACR6MJ.js → chunk-74AHCL56.js} +3 -3
- package/dist/{chunk-5VAF4ID4.js → chunk-7S53BPTU.js} +25 -25
- package/dist/{chunk-EEBQFG5E.js → chunk-A6CKMIPK.js} +14 -14
- package/dist/chunk-A6CXG5WI.js +51 -0
- package/dist/chunk-A6CXG5WI.js.map +1 -0
- package/dist/{chunk-JR6PP7UM.js → chunk-ACY4ZPF7.js} +28 -2
- package/dist/chunk-ACY4ZPF7.js.map +1 -0
- package/dist/{chunk-2YLMUME2.js → chunk-AECJY3GJ.js} +2 -2
- package/dist/{chunk-NPNSKE76.js → chunk-B36GUU6T.js} +4 -4
- package/dist/{chunk-Y63ZFP4X.js → chunk-BJEJUOGM.js} +2 -2
- package/dist/{chunk-7CBKAQIG.js → chunk-BOADKFN4.js} +28 -4
- package/dist/chunk-BOADKFN4.js.map +1 -0
- package/dist/{chunk-TLHNF6GA.js → chunk-BV4ZKIZH.js} +1 -1
- package/dist/{chunk-3FJKJ5UZ.js → chunk-BX4EOMKT.js} +2 -2
- package/dist/{chunk-6J6K3STG.js → chunk-BYZKLEWG.js} +15 -12
- package/dist/chunk-BYZKLEWG.js.map +1 -0
- package/dist/{chunk-BJETIR53.js → chunk-CBFYCDYO.js} +3 -3
- 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-WPDKBUWX.js → chunk-DPMTLJCT.js} +2 -2
- package/dist/{chunk-65RENJGB.js → chunk-E2AWJ7KQ.js} +8 -4
- package/dist/chunk-E2AWJ7KQ.js.map +1 -0
- package/dist/{chunk-LYDJRF45.js → chunk-EY5JAWZC.js} +2 -2
- package/dist/{chunk-R4OCGPSH.js → chunk-FJMYMJLR.js} +2 -2
- package/dist/{chunk-OS2AT2JU.js → chunk-G43PMSME.js} +27 -10
- package/dist/chunk-G43PMSME.js.map +1 -0
- package/dist/{chunk-YXLUTALO.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-UDZYNIDJ.js → chunk-GGAXFTNH.js} +2 -2
- package/dist/{chunk-QURNMKME.js → chunk-GQQVEH6V.js} +6 -6
- package/dist/{chunk-J7PB5UQ4.js → chunk-GT4ZHOKT.js} +3 -3
- package/dist/{chunk-WIKO4SCR.js → chunk-H3TKENU4.js} +5 -5
- package/dist/{chunk-ZLN7AROH.js → chunk-HIP6DKJJ.js} +5 -5
- package/dist/{chunk-UYUCCQ46.js → chunk-HVS7TH2Y.js} +2 -2
- package/dist/{chunk-Z3O53WZR.js → chunk-IWO6QXWJ.js} +2 -2
- package/dist/{chunk-4MDKNUV4.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-JR6H5CYS.js → chunk-JA2QJOAX.js} +2 -2
- package/dist/{chunk-R3TLVTWW.js → chunk-JDX2OA4R.js} +3 -3
- package/dist/chunk-JE26AUX6.js +16 -0
- package/dist/chunk-JE26AUX6.js.map +1 -0
- package/dist/{chunk-AJTG3CP7.js → chunk-JHU4EYDV.js} +11 -1
- package/dist/chunk-JHU4EYDV.js.map +1 -0
- package/dist/{chunk-HXSAWV3A.js → chunk-JNSENHV5.js} +6 -6
- package/dist/{chunk-RRZKTSFG.js → chunk-JPOX2AJB.js} +2 -2
- package/dist/{chunk-TKFSXDOB.js → chunk-K5DA5TRG.js} +9 -9
- package/dist/{chunk-AZSKROVQ.js → chunk-KDFDXEXZ.js} +2 -2
- package/dist/{chunk-AKE4GGQ3.js → chunk-KQW3YGEN.js} +2 -2
- package/dist/{chunk-B3O3IRZN.js → chunk-L63GFNKL.js} +1 -1
- package/dist/{chunk-YEN4TREG.js → chunk-LQNRVPTV.js} +54 -567
- package/dist/chunk-LQNRVPTV.js.map +1 -0
- package/dist/{chunk-YJ6VCDMZ.js → chunk-M6HBPLBA.js} +2 -2
- package/dist/chunk-MCRVQ5YQ.js +14 -0
- package/dist/chunk-MCRVQ5YQ.js.map +1 -0
- package/dist/{chunk-L2WQVSKP.js → chunk-MLWMR2GE.js} +2 -2
- package/dist/{chunk-WHHEPAO3.js → chunk-NWMUSKED.js} +8 -8
- package/dist/chunk-OEBLZZKK.js +53 -0
- package/dist/chunk-OEBLZZKK.js.map +1 -0
- package/dist/{chunk-JRWW7GM6.js → chunk-OKO57IXB.js} +7 -7
- package/dist/{chunk-L2QLDZJC.js → chunk-P4ZAEYKG.js} +67 -33
- package/dist/chunk-P4ZAEYKG.js.map +1 -0
- package/dist/{chunk-MPAJFFP3.js → chunk-PGAB2V53.js} +5 -5
- package/dist/{chunk-MPAJFFP3.js.map → chunk-PGAB2V53.js.map} +1 -1
- package/dist/{chunk-VYXDUPYE.js → chunk-PPQEP4OH.js} +2 -2
- package/dist/{chunk-LEMD7WZJ.js → chunk-QHT7MOUF.js} +70 -25
- package/dist/chunk-QHT7MOUF.js.map +1 -0
- package/dist/chunk-QJ2AX6DU.js +19 -0
- package/dist/chunk-QJ2AX6DU.js.map +1 -0
- package/dist/{chunk-Q4AUIFUA.js → chunk-QMWKENNK.js} +4 -4
- package/dist/{chunk-XCOV45MO.js → chunk-R4VAUNNC.js} +3 -3
- package/dist/{chunk-353KGBKY.js → chunk-RW4QNB4J.js} +4 -4
- package/dist/{chunk-FQXJAC3T.js → chunk-SGUDMW2K.js} +4 -4
- package/dist/{chunk-S5G2LAL7.js → chunk-SV4Z2S67.js} +4 -4
- package/dist/{chunk-HUT2JR6I.js → chunk-T32B72QX.js} +3 -3
- package/dist/{chunk-OQ7SSRXP.js → chunk-TRHBQVVO.js} +23 -17
- package/dist/chunk-TRHBQVVO.js.map +1 -0
- package/dist/{chunk-LMCD5W5B.js → chunk-TRLOFIQC.js} +2 -2
- package/dist/{chunk-JZ2CHRLB.js → chunk-TTSJ7WUC.js} +2 -2
- package/dist/{chunk-CNV2A557.js → chunk-TUKGXQ5T.js} +3 -3
- package/dist/{chunk-QATYVTP7.js → chunk-UIOIDW3L.js} +2 -2
- package/dist/{chunk-776GVKL7.js → chunk-ULDBGA5W.js} +2 -2
- package/dist/{chunk-NN4JEFON.js → chunk-UQNYPK7G.js} +3 -3
- package/dist/{chunk-A5UQ52YQ.js → chunk-UZZ7SQT3.js} +5 -5
- package/dist/{chunk-F6IVBYFS.js → chunk-V6G2PSXA.js} +72 -72
- package/dist/{chunk-RUXPVSML.js → chunk-VHOSM5G4.js} +6 -6
- package/dist/{chunk-QBLDCI6E.js → chunk-VMNCZ627.js} +2 -2
- package/dist/{chunk-P3ONDDIJ.js → chunk-VV4ZVUE6.js} +2 -2
- package/dist/{chunk-A7GQBJP5.js → chunk-X2NFFBTO.js} +4 -4
- package/dist/{chunk-ECKG5WSI.js → chunk-XGRXQR6T.js} +2 -2
- package/dist/{chunk-LNDLXMH6.js → chunk-XN6XT6GR.js} +3 -3
- package/dist/{chunk-C6KRO3SU.js → chunk-XVDZFTN5.js} +4 -4
- package/dist/chunk-XVZA6VXC.js +160 -0
- package/dist/chunk-XVZA6VXC.js.map +1 -0
- package/dist/{chunk-2BQ4ZIWC.js → chunk-XWLLFKHM.js} +8 -8
- package/dist/chunk-YFTNZMGR.js +71 -0
- package/dist/chunk-YFTNZMGR.js.map +1 -0
- package/dist/{chunk-EZ25VE3G.js → chunk-YNDLCWXS.js} +4 -4
- package/dist/{chunk-BNGHPYZU.js → chunk-YUW66UAH.js} +3 -3
- package/dist/{chunk-5JG5EBVL.js → chunk-ZEGL7YCC.js} +2 -2
- package/dist/{chunk-PHP3MUGF.js → chunk-ZKZFFWLV.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-p813oxbm.d.ts → cli-BNg-TAlz.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 +125 -119
- package/dist/coding/export-okf-codegraph.d.ts +2 -1
- package/dist/coding/export-okf-codegraph.js +24 -23
- 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 +25 -24
- 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 -14
- package/dist/connectors/codex-materialize-runner.d.ts +2 -1
- package/dist/connectors/codex-materialize-runner.js +24 -23
- package/dist/connectors/codex-materialize.d.ts +2 -1
- package/dist/connectors/index.d.ts +2 -1
- package/dist/connectors/index.js +27 -26
- 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 +27 -26
- 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 +27 -26
- package/dist/cross-lingual-recall.d.ts +2 -1
- package/dist/dashboard-runtime.js +2 -2
- 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 +2 -12
- 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/deep-recall.js +2 -2
- package/dist/delinearize.d.ts +2 -1
- package/dist/dependency-propagation-config.d.ts +2 -1
- package/dist/{dependency-propagation-delivery-DLiAtj25.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 +26 -25
- 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 +78 -75
- 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 +6 -4
- package/dist/extraction-liveness.d.ts +2 -1
- package/dist/extraction-normalization.d.ts +2 -1
- package/dist/extraction-normalization.js +2 -2
- package/dist/extraction-prompt.d.ts +12 -2
- package/dist/extraction-prompt.js +7 -3
- package/dist/extraction-source-grounding-rules.d.ts +4 -2
- package/dist/extraction-source-grounding-rules.js +1 -1
- package/dist/extraction-source-grounding.d.ts +3 -2
- package/dist/extraction-source-grounding.js +4 -4
- package/dist/extraction-span-config.d.ts +16 -0
- package/dist/extraction-span-config.js +15 -0
- package/dist/extraction-span-config.js.map +1 -0
- package/dist/extraction-span-materialize.d.ts +106 -0
- package/dist/extraction-span-materialize.js +30 -0
- package/dist/extraction-span-materialize.js.map +1 -0
- package/dist/extraction-span-slice.js +3 -12
- package/dist/extraction-span-slice.js.map +1 -1
- package/dist/extraction-span-source-hash.js +4 -46
- package/dist/extraction-span-source-hash.js.map +1 -1
- package/dist/extraction-span-validate.js +3 -15
- package/dist/extraction-span-validate.js.map +1 -1
- package/dist/extraction.d.ts +8 -1
- package/dist/extraction.js +48 -43
- 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-L3UFX5CU.js → first-start-migration-ZWMV5CX4.js} +4 -4
- package/dist/{generic-recall-paths-DbitKJI5.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-reinforcement.d.ts +2 -1
- package/dist/graph-jsonl.d.ts +2 -1
- 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.d.ts +2 -1
- 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-BINUgPFo.d.ts → index-DWOb4wz9.d.ts} +2 -2
- package/dist/index.d.ts +712 -704
- package/dist/index.js +368 -299
- package/dist/intent.d.ts +2 -1
- package/dist/lcm/engine.d.ts +2 -1
- package/dist/lcm/engine.js +2 -2
- package/dist/lcm/index.d.ts +2 -1
- package/dist/lcm/index.js +7 -7
- 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 +24 -23
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +25 -24
- package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
- package/dist/maintenance/rebuild-memory-projection.js +26 -25
- package/dist/{maintenance-ag1gYztC.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 +25 -24
- package/dist/namespaces/principal.d.ts +2 -1
- package/dist/namespaces/search.d.ts +2 -1
- package/dist/namespaces/search.js +4 -4
- package/dist/namespaces/storage.d.ts +4 -3
- package/dist/namespaces/storage.js +24 -23
- 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 +28 -27
- package/dist/operator-doctor-replica.d.ts +2 -1
- package/dist/operator-toolkit.d.ts +4 -3
- package/dist/operator-toolkit.js +49 -44
- package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
- package/dist/orchestration/maintenance.d.ts +5 -4
- package/dist/orchestration/maintenance.js +37 -36
- package/dist/{orchestrator-Cf3G-3Ed.d.ts → orchestrator-DocO0_hw.d.ts} +9 -9
- package/dist/orchestrator.d.ts +12 -10
- package/dist/orchestrator.js +208 -198
- package/dist/patterns-cli.d.ts +2 -1
- package/dist/{pipeline-AwB03fw_.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-C3bLjE-L.d.ts → public-http-C0FoTiL_.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +3 -2
- package/dist/{qmd-Bfaydrfm.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 +6 -6
- 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 +12 -2
- package/dist/reconcile/manifest.js +8 -6
- 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 -15
- 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 +370 -160
- package/dist/schemas.js +1 -1
- package/dist/{scope-profiles-nxTKvjE-.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 +3 -3
- package/dist/search/index.d.ts +2 -1
- package/dist/search/index.js +7 -7
- 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-C83DVakV.d.ts → semantic-consolidation-CmZi7thY.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +3 -2
- package/dist/semantic-consolidation.js +25 -24
- package/dist/semantic-rule-promotion.js +24 -23
- package/dist/semantic-rule-verifier.d.ts +2 -1
- package/dist/semantic-rule-verifier.js +24 -23
- package/dist/{service-q-xtOoAr.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 +40 -39
- package/dist/standup/build.js +25 -24
- package/dist/{storage-Ca0MbTfm.d.ts → storage-wvX01lht.d.ts} +1 -1
- package/dist/storage.d.ts +3 -2
- package/dist/storage.js +23 -22
- 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 +83 -80
- 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/capsule-import.js +1 -1
- package/dist/transfer/export-okf.d.ts +2 -1
- package/dist/transfer/export-okf.js +24 -23
- package/dist/transfer/types.d.ts +98 -98
- package/dist/trust-score-stage.d.ts +2 -1
- package/dist/trust-score.d.ts +2 -1
- package/dist/{types-yDgWDkrJ.d.ts → types-Cyr32ABj.d.ts} +51 -10
- 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 +24 -23
- package/dist/who-knows-cli.d.ts +14 -12
- package/dist/who-knows-cli.js +25 -24
- package/dist/who-knows.d.ts +14 -12
- package/dist/who-knows.js +24 -23
- package/dist/write-envelope.d.ts +7 -1
- package/dist/write-envelope.js +1 -1
- package/package.json +42 -2
- package/src/access-boundary.ts +21 -6
- package/src/access-category-alias.test.ts +488 -51
- package/src/access-http.test.ts +292 -5
- package/src/access-http.ts +4 -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 +4 -45
- package/src/extraction-prompt.ts +37 -3
- package/src/extraction-source-grounding-rules.ts +46 -9
- package/src/extraction-source-grounding.ts +2 -1
- package/src/extraction-span-config.ts +81 -0
- package/src/extraction-span-materialize.test.ts +376 -0
- package/src/extraction-span-materialize.ts +241 -0
- package/src/extraction.ts +70 -25
- 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/providers/codex-subscription.test.ts +804 -1
- package/src/providers/codex-subscription.ts +407 -65
- package/src/reconcile/manifest.test.ts +11 -1
- package/src/reconcile/manifest.ts +12 -0
- package/src/schemas.ts +14 -0
- package/src/source-agent-qualifier.ts +5 -1
- package/src/summarizer.ts +25 -0
- package/src/testing/subjects/extraction-lifecycle.test.ts +27 -10
- package/src/types.ts +12 -11
- package/src/write-envelope.ts +5 -0
- package/dist/chunk-27IOSH2W.js.map +0 -1
- package/dist/chunk-4MDKNUV4.js.map +0 -1
- package/dist/chunk-65RENJGB.js.map +0 -1
- package/dist/chunk-6J6K3STG.js.map +0 -1
- package/dist/chunk-7CBKAQIG.js.map +0 -1
- package/dist/chunk-AJTG3CP7.js.map +0 -1
- package/dist/chunk-DVOBLPSQ.js.map +0 -1
- package/dist/chunk-JHZCXUQI.js.map +0 -1
- package/dist/chunk-JR6PP7UM.js.map +0 -1
- package/dist/chunk-L2QLDZJC.js.map +0 -1
- package/dist/chunk-LEMD7WZJ.js.map +0 -1
- package/dist/chunk-LSLCFCCQ.js.map +0 -1
- package/dist/chunk-OQ7SSRXP.js.map +0 -1
- package/dist/chunk-OS2AT2JU.js.map +0 -1
- package/dist/chunk-UBG4GAEP.js.map +0 -1
- package/dist/chunk-XPJNT6PI.js.map +0 -1
- package/dist/chunk-YEN4TREG.js.map +0 -1
- /package/dist/{contradiction-scan-GVD4JJ7B.js.map → access-observe-write-category.js.map} +0 -0
- /package/dist/{resolution-OHJZG45O.js.map → background-generation-config.js.map} +0 -0
- /package/dist/{capsule-merge-ZCXUPLNJ.js.map → capsule-merge-IPG4IOFP.js.map} +0 -0
- /package/dist/{chunk-LO4UKPKX.js.map → chunk-27MKMTBY.js.map} +0 -0
- /package/dist/{chunk-TK4FHQRN.js.map → chunk-2J3V5QEO.js.map} +0 -0
- /package/dist/{chunk-JSRVXI6E.js.map → chunk-2OGTN37H.js.map} +0 -0
- /package/dist/{chunk-DK4X5B6I.js.map → chunk-2PTNJTBE.js.map} +0 -0
- /package/dist/{chunk-PWPIERBM.js.map → chunk-37CAEC7E.js.map} +0 -0
- /package/dist/{chunk-S2ULTQZR.js.map → chunk-3N3PBBEH.js.map} +0 -0
- /package/dist/{chunk-ZTG4P7NZ.js.map → chunk-3OYSIVOO.js.map} +0 -0
- /package/dist/{chunk-ZBEGS7OB.js.map → chunk-474DL7UB.js.map} +0 -0
- /package/dist/{chunk-YNN26CIZ.js.map → chunk-4B3HBIFX.js.map} +0 -0
- /package/dist/{chunk-HC4GFLMQ.js.map → chunk-4BCHFSC7.js.map} +0 -0
- /package/dist/{chunk-YEDVOYL2.js.map → chunk-4RX5O34R.js.map} +0 -0
- /package/dist/{chunk-W6IJMWTZ.js.map → chunk-5AERZWJD.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-FVJ4D6L7.js.map → chunk-6PRY6CLC.js.map} +0 -0
- /package/dist/{chunk-GLZH5VEN.js.map → chunk-6ZMNTRU3.js.map} +0 -0
- /package/dist/{chunk-Z7ACR6MJ.js.map → chunk-74AHCL56.js.map} +0 -0
- /package/dist/{chunk-5VAF4ID4.js.map → chunk-7S53BPTU.js.map} +0 -0
- /package/dist/{chunk-EEBQFG5E.js.map → chunk-A6CKMIPK.js.map} +0 -0
- /package/dist/{chunk-2YLMUME2.js.map → chunk-AECJY3GJ.js.map} +0 -0
- /package/dist/{chunk-NPNSKE76.js.map → chunk-B36GUU6T.js.map} +0 -0
- /package/dist/{chunk-Y63ZFP4X.js.map → chunk-BJEJUOGM.js.map} +0 -0
- /package/dist/{chunk-TLHNF6GA.js.map → chunk-BV4ZKIZH.js.map} +0 -0
- /package/dist/{chunk-3FJKJ5UZ.js.map → chunk-BX4EOMKT.js.map} +0 -0
- /package/dist/{chunk-BJETIR53.js.map → chunk-CBFYCDYO.js.map} +0 -0
- /package/dist/{chunk-ZWEZXVYH.js.map → chunk-CEO4DONG.js.map} +0 -0
- /package/dist/{chunk-WPDKBUWX.js.map → chunk-DPMTLJCT.js.map} +0 -0
- /package/dist/{chunk-LYDJRF45.js.map → chunk-EY5JAWZC.js.map} +0 -0
- /package/dist/{chunk-R4OCGPSH.js.map → chunk-FJMYMJLR.js.map} +0 -0
- /package/dist/{chunk-YXLUTALO.js.map → chunk-GAS7KYC7.js.map} +0 -0
- /package/dist/{chunk-UDZYNIDJ.js.map → chunk-GGAXFTNH.js.map} +0 -0
- /package/dist/{chunk-QURNMKME.js.map → chunk-GQQVEH6V.js.map} +0 -0
- /package/dist/{chunk-J7PB5UQ4.js.map → chunk-GT4ZHOKT.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-UYUCCQ46.js.map → chunk-HVS7TH2Y.js.map} +0 -0
- /package/dist/{chunk-Z3O53WZR.js.map → chunk-IWO6QXWJ.js.map} +0 -0
- /package/dist/{chunk-42DJ235G.js.map → chunk-J272ODKJ.js.map} +0 -0
- /package/dist/{chunk-JR6H5CYS.js.map → chunk-JA2QJOAX.js.map} +0 -0
- /package/dist/{chunk-R3TLVTWW.js.map → chunk-JDX2OA4R.js.map} +0 -0
- /package/dist/{chunk-HXSAWV3A.js.map → chunk-JNSENHV5.js.map} +0 -0
- /package/dist/{chunk-RRZKTSFG.js.map → chunk-JPOX2AJB.js.map} +0 -0
- /package/dist/{chunk-TKFSXDOB.js.map → chunk-K5DA5TRG.js.map} +0 -0
- /package/dist/{chunk-AZSKROVQ.js.map → chunk-KDFDXEXZ.js.map} +0 -0
- /package/dist/{chunk-AKE4GGQ3.js.map → chunk-KQW3YGEN.js.map} +0 -0
- /package/dist/{chunk-B3O3IRZN.js.map → chunk-L63GFNKL.js.map} +0 -0
- /package/dist/{chunk-YJ6VCDMZ.js.map → chunk-M6HBPLBA.js.map} +0 -0
- /package/dist/{chunk-L2WQVSKP.js.map → chunk-MLWMR2GE.js.map} +0 -0
- /package/dist/{chunk-WHHEPAO3.js.map → chunk-NWMUSKED.js.map} +0 -0
- /package/dist/{chunk-JRWW7GM6.js.map → chunk-OKO57IXB.js.map} +0 -0
- /package/dist/{chunk-VYXDUPYE.js.map → chunk-PPQEP4OH.js.map} +0 -0
- /package/dist/{chunk-Q4AUIFUA.js.map → chunk-QMWKENNK.js.map} +0 -0
- /package/dist/{chunk-XCOV45MO.js.map → chunk-R4VAUNNC.js.map} +0 -0
- /package/dist/{chunk-353KGBKY.js.map → chunk-RW4QNB4J.js.map} +0 -0
- /package/dist/{chunk-FQXJAC3T.js.map → chunk-SGUDMW2K.js.map} +0 -0
- /package/dist/{chunk-S5G2LAL7.js.map → chunk-SV4Z2S67.js.map} +0 -0
- /package/dist/{chunk-HUT2JR6I.js.map → chunk-T32B72QX.js.map} +0 -0
- /package/dist/{chunk-LMCD5W5B.js.map → chunk-TRLOFIQC.js.map} +0 -0
- /package/dist/{chunk-JZ2CHRLB.js.map → chunk-TTSJ7WUC.js.map} +0 -0
- /package/dist/{chunk-CNV2A557.js.map → chunk-TUKGXQ5T.js.map} +0 -0
- /package/dist/{chunk-QATYVTP7.js.map → chunk-UIOIDW3L.js.map} +0 -0
- /package/dist/{chunk-776GVKL7.js.map → chunk-ULDBGA5W.js.map} +0 -0
- /package/dist/{chunk-NN4JEFON.js.map → chunk-UQNYPK7G.js.map} +0 -0
- /package/dist/{chunk-A5UQ52YQ.js.map → chunk-UZZ7SQT3.js.map} +0 -0
- /package/dist/{chunk-F6IVBYFS.js.map → chunk-V6G2PSXA.js.map} +0 -0
- /package/dist/{chunk-RUXPVSML.js.map → chunk-VHOSM5G4.js.map} +0 -0
- /package/dist/{chunk-QBLDCI6E.js.map → chunk-VMNCZ627.js.map} +0 -0
- /package/dist/{chunk-P3ONDDIJ.js.map → chunk-VV4ZVUE6.js.map} +0 -0
- /package/dist/{chunk-A7GQBJP5.js.map → chunk-X2NFFBTO.js.map} +0 -0
- /package/dist/{chunk-ECKG5WSI.js.map → chunk-XGRXQR6T.js.map} +0 -0
- /package/dist/{chunk-LNDLXMH6.js.map → chunk-XN6XT6GR.js.map} +0 -0
- /package/dist/{chunk-C6KRO3SU.js.map → chunk-XVDZFTN5.js.map} +0 -0
- /package/dist/{chunk-2BQ4ZIWC.js.map → chunk-XWLLFKHM.js.map} +0 -0
- /package/dist/{chunk-EZ25VE3G.js.map → chunk-YNDLCWXS.js.map} +0 -0
- /package/dist/{chunk-BNGHPYZU.js.map → chunk-YUW66UAH.js.map} +0 -0
- /package/dist/{chunk-5JG5EBVL.js.map → chunk-ZEGL7YCC.js.map} +0 -0
- /package/dist/{chunk-PHP3MUGF.js.map → chunk-ZKZFFWLV.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-L3UFX5CU.js.map → first-start-migration-ZWMV5CX4.js.map} +0 -0
- /package/dist/{tier-stats-VK5PCO2L.js.map → tier-stats-LUSUUNU6.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/access-operations-batch.ts"],"sourcesContent":["/**\n * Batch migration of remaining access-surface handlers through the boundary\n * (issue #1525 / #1668). Each operation routes MCP/HTTP/CLI dispatch through\n * the shared validation + error-mapping layer in access-boundary.ts.\n *\n * Strict per-tool Zod schemas replace the earlier permissive looseSchema (#1668).\n * Each schema validates known field types; .passthrough() tolerates MCP client\n * context injection (cwd/projectTag/sessionKey) without silent type coercion.\n * The stripNulls preprocessor handles the OpenAI-schema null-for-absent gotcha.\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport { z } from \"zod\";\nimport type { DreamsPhase, RecallDisclosure, RecallPlanMode } from \"./types.js\";\nimport type { RemnicChatGptMemoryInspectorInput } from \"./mcp-memory-inspector-app.js\";\nimport { defineOperation } from \"./access-boundary.js\";\nimport { EngramAccessForbiddenError } from \"./access-errors.js\";\nimport { type ObserveRequest, observeRequestSchema, type RecallRequest, recallRequestSchema } from \"./access-schema.js\";\nimport { EngramAccessInputError, type EngramAccessService } from \"./access-service.js\";\nimport { enforceNamespaceAllowList, tokenCapabilityStore } from \"./access-token-capabilities.js\";\nimport { projectTagProjectId } from \"./coding/coding-namespace.js\";\nimport {\n parseNamespacePreflightWriteOp,\n resolveAuthorizedNamespaceWritablePreflight,\n type EngramAccessNamespaceWritableRequest,\n} from \"./access-namespace-preflight.js\";\nimport { expandTildePath } from \"./utils/path.js\";\nimport { resolvePrincipal } from \"./namespaces/principal.js\";\nimport { getRecallTimingStatus, isRecallTimingsOperator } from \"./recall-timings.js\";\nimport { validateBriefingFormat } from \"./briefing.js\";\nimport {\n buildChatGptMemoryInspectorActionRequest,\n buildChatGptMemoryInspectorResult,\n} from \"./mcp-memory-inspector-app.js\";\nimport { listPairs, isDefaultReviewNamespace, readPair } from \"./contradiction/contradiction-review.js\";\nimport { executeResolution, isValidResolutionVerb } from \"./contradiction/resolution.js\";\nimport { runContradictionScan } from \"./contradiction/contradiction-scan.js\";\nimport { runPreferenceDriftScan } from \"./preferences/preference-drift.js\";\nimport { runGraphEdgeDecayMaintenanceAcrossNamespaces } from \"./maintenance/graph-edge-decay.js\";\nimport { normalizeDreamsStatusWindowHours } from \"./maintenance/dreams-ledger.js\";\n\n// ---------------------------------------------------------------------------\n// Shared helpers\n// ---------------------------------------------------------------------------\n\nfunction stripNulls(data: unknown): unknown {\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) {\n const obj = data as Record<string, unknown>;\n const cleaned: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (value !== null) cleaned[key] = value;\n }\n return cleaned;\n }\n return data;\n}\n\nfunction strictSchema<T extends z.ZodRawShape>(shape: T): z.ZodType<Record<string, unknown>> {\n return z.preprocess(stripNulls, z.object(shape).passthrough()) as unknown as z.ZodType<Record<string, unknown>>;\n}\n\n/**\n * stripNulls, but keys listed in `preserve` keep their null values. Used by\n * boundary schemas whose wire contract treats an explicit `null` as a\n * meaningful value (e.g. recall `codingContext: null` clears the session\n * context — it must not be collapsed into \"absent\").\n */\nfunction stripNullsExcept(data: unknown, preserve: readonly string[]): unknown {\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) {\n const cleaned: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n if (value !== null || preserve.includes(key)) cleaned[key] = value;\n }\n return cleaned;\n }\n return data;\n}\n\n\nfunction optStr(v: unknown): string | undefined { return typeof v === \"string\" ? v : undefined; }\nfunction reqStr(v: unknown, field: string): string {\n if (typeof v !== \"string\" || v.length === 0) throw new EngramAccessInputError(field + \" is required and must be a non-empty string\");\n return v;\n}\nfunction defStr(v: unknown, d: string): string { return typeof v === \"string\" ? v : d; }\nfunction optNum(v: unknown): number | undefined { return typeof v === \"number\" && Number.isFinite(v) ? v : undefined; }\nfunction optBool(v: unknown): boolean | undefined { return typeof v === \"boolean\" ? v : undefined; }\nfunction optStrArr(v: unknown): string[] | undefined { return Array.isArray(v) && v.every((x) => typeof x === \"string\") ? v : undefined; }\n\nconst S = {\n str: z.string().optional(),\n num: z.number().optional(),\n // Accept numbers and numeric strings (MCP clients sometimes send \"7\" for 7).\n flexNum: z.union([z.number(), z.string()]).optional(),\n bool: z.boolean().optional(),\n strArr: z.array(z.string()).optional(),\n};\n\n// === RECALL ===\n// Issue #2482: the boundary validates against the SAME canonical zod schema\n// the HTTP transport uses (recallRequestSchema). No parallel field list, no\n// silent defaults — a missing `query` or a bad enum is a 400 at the boundary.\n// `codingContext: null` survives the null-strip (explicit session-context\n// clear); every other null is the MCP null-for-absent idiom.\ndefineOperation({\n name: \"recall\",\n description: \"Semantic recall.\",\n schema: z.preprocess((data) => stripNullsExcept(data, [\"codingContext\"]), recallRequestSchema) as unknown as z.ZodType<RecallRequest>,\n handler: async (input, ctx) => ({\n result: await ctx.service.recall({\n ...input,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n ...(ctx.sourceConnector ? { sourceConnector: ctx.sourceConnector } : {}),\n ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}),\n }),\n }),\n});\ndefineOperation({ name: \"recall_explain\", description: \"Explain recall plan.\", schema: strictSchema({ sessionKey: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.recallExplain({ sessionKey: optStr(input.sessionKey), namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"set_coding_context\", description: \"Set coding context.\", schema: z.preprocess((data) => stripNullsExcept(data, [\"codingContext\"]), z.object({ sessionKey: S.str, codingContext: z.union([z.null(), z.object({ projectId: S.str, branch: z.union([z.string(), z.null()]).optional(), rootPath: S.str, defaultBranch: z.union([z.string(), z.null()]).optional() }).passthrough()]).optional(), projectTag: S.str }).passthrough()) as unknown as z.ZodType<Record<string, unknown>>, // codingContext: null = clear context (preserved).\n handler: async (input, ctx) => {\n const sessionKey = defStr(input.sessionKey, \"\");\n const projectTag = optStr(input.projectTag);\n const hasProjectTag = projectTag !== undefined && projectTag.trim().length > 0;\n const hasCodingContext = \"codingContext\" in input;\n if (!hasCodingContext && hasProjectTag) { const tag = projectTag!.trim(); const pid = projectTagProjectId(tag); ctx.service.setCodingContext({ sessionKey, codingContext: { projectId: pid, branch: null, rootPath: pid, defaultBranch: null } }); return { result: { ok: true } }; }\n if (!hasCodingContext && !hasProjectTag) throw new EngramAccessInputError(\"set_coding_context requires either codingContext or projectTag\");\n const rawCtx = (input as Record<string, unknown>).codingContext;\n let codingContext: { projectId: string; branch: string | null; rootPath: string; defaultBranch: string | null } | null = null;\n if (rawCtx !== null) { if (typeof rawCtx !== \"object\") throw new EngramAccessInputError(\"codingContext must be an object or null\"); const o = rawCtx as Record<string, unknown>; const branch = o.branch === null ? null : optStr(o.branch); const dB = o.defaultBranch === null ? null : optStr(o.defaultBranch); if (branch === undefined) throw new EngramAccessInputError(\"codingContext.branch must be a string or null\"); if (dB === undefined) throw new EngramAccessInputError(\"codingContext.defaultBranch must be a string or null\"); codingContext = { projectId: defStr(o.projectId, \"\"), branch, rootPath: defStr(o.rootPath, \"\"), defaultBranch: dB }; }\n ctx.service.setCodingContext({ sessionKey, codingContext });\n return { result: { ok: true } };\n },\n});\ndefineOperation({ name: \"recall_tier_explain\", description: \"Explain recall tiers.\", schema: strictSchema({ sessionKey: S.str, namespace: S.str }), handler: async (input, ctx) => { const sk = optStr(input.sessionKey); const ns = optStr(input.namespace); return { result: await ctx.service.recallTierExplain(sk && sk.length > 0 ? sk : undefined, ns && ns.length > 0 ? ns : undefined, ctx.authenticatedPrincipal) }; } });\ndefineOperation({ name: \"recall_xray\", description: \"X-ray recall.\", schema: strictSchema({ query: S.str, sessionKey: S.str, namespace: S.str, budget: z.unknown().optional(), disclosure: S.str }),\n handler: async (input, ctx) => {\n let budget: number | undefined;\n if (input.budget !== undefined) { const p = typeof input.budget === \"number\" ? input.budget : typeof input.budget === \"string\" ? Number(input.budget) : undefined; if (p === undefined || !Number.isFinite(p) || p <= 0 || !Number.isInteger(p)) throw new EngramAccessInputError(\"recall_xray: budget expects a positive integer\"); budget = p; }\n const dr = optStr(input.disclosure);\n return { result: await ctx.service.recallXray({ query: defStr(input.query, \"\"), sessionKey: optStr(input.sessionKey), namespace: optStr(input.namespace), budget, authenticatedPrincipal: ctx.authenticatedPrincipal, sourceConnector: ctx.sourceConnector, ...(dr && dr !== \"\" ? { disclosure: dr as RecallDisclosure } : {}), ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}) }) };\n },\n});\ndefineOperation({ name: \"who_knows\", description: \"Rank entities by demonstrated expertise for a topic (#2057).\", schema: strictSchema({ topic: S.str, limit: S.flexNum, namespace: S.str }),\n handler: async (input, ctx) => {\n const topic = defStr(input.topic, \"\");\n let limit: number | undefined;\n if (input.limit !== undefined) { const p = typeof input.limit === \"number\" ? input.limit : Number(input.limit); if (!Number.isInteger(p) || p < 1) throw new EngramAccessInputError(\"who_knows: limit expects a positive integer\"); limit = p; }\n return { result: await ctx.service.whoKnows({ topic, ...(limit !== undefined ? { limit } : {}), namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) };\n },\n});\ndefineOperation({ name: \"promotion_candidates\", description: \"List agent-subject reuse-signaled promotion candidates (#2372).\", schema: strictSchema({ namespace: S.str, targetNamespace: S.str, limit: S.flexNum }),\n handler: async (input, ctx) => {\n let limit: number | undefined;\n if (input.limit !== undefined) { const p = typeof input.limit === \"number\" ? input.limit : Number(input.limit); if (!Number.isInteger(p) || p < 1 || p > 100) throw new EngramAccessInputError(\"promotion_candidates: limit expects an integer in [1, 100]\"); limit = p; }\n return { result: await ctx.service.promotionCandidates({ ...(limit !== undefined ? { limit } : {}), namespace: optStr(input.namespace), targetNamespace: optStr(input.targetNamespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) };\n },\n});\ndefineOperation({ name: \"namespace_writable\", description: \"Read-only preflight: is a namespace writable for the caller's principal?\", allowedByOps: [\"namespace_writable\", \"observe\", \"memory_store\"], schema: strictSchema({ namespace: S.str, sessionKey: S.str, op: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => {\n const writeOp = parseNamespacePreflightWriteOp(optStr(input.op));\n const namespace = optStr(input.namespace);\n const request: EngramAccessNamespaceWritableRequest = {\n sessionKey: optStr(input.sessionKey),\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n cwd: optStr(input.cwd),\n projectTag: optStr(input.projectTag),\n ...(namespace ? { namespace } : {}),\n };\n return {\n result: await resolveAuthorizedNamespaceWritablePreflight(\n tokenCapabilityStore.getStore(),\n request,\n ctx.service.configRef.defaultNamespace,\n writeOp,\n (preflightRequest) => ctx.service.namespaceWritablePreflight(preflightRequest),\n ),\n };\n} });\n\n// === WEARABLES ===\ndefineOperation({ name: \"wearables_status\", description: \"Wearables status.\", schema: strictSchema({ namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.wearablesStatus({ authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }) });\ndefineOperation({ name: \"wearables_sync\", description: \"Sync wearables.\", schema: strictSchema({ source: S.str, date: S.str, days: S.flexNum, forceMemories: S.bool, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => { const summaries = await ctx.service.wearablesSync({ source: optStr(input.source), date: optStr(input.date), days: typeof input.days === \"number\" ? input.days : typeof input.days === \"string\" && Number.isFinite(Number(input.days)) ? Number(input.days) : undefined, forceMemories: optBool(input.forceMemories), authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }); return { result: { summaries } }; } });\ndefineOperation({ name: \"transcript_day\", description: \"Transcript for a day.\", schema: strictSchema({ date: S.str, source: S.str, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => { const d = defStr(input.date, \"\"); if (d.trim().length === 0) throw new EngramAccessInputError(\"transcript_day: date is required (YYYY-MM-DD)\"); const transcripts = await ctx.service.wearablesTranscriptDay({ date: d, source: optStr(input.source), authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }); return { result: { transcripts } }; } });\ndefineOperation({ name: \"transcript_search\", description: \"Search transcripts.\", schema: strictSchema({ query: S.str, source: S.str, from: S.str, to: S.str, limit: S.flexNum, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => { const q = defStr(input.query, \"\"); if (q.trim().length === 0) throw new EngramAccessInputError(\"transcript_search: query is required\"); const results = await ctx.service.wearablesTranscriptSearch({ query: q, source: optStr(input.source), from: optStr(input.from), to: optStr(input.to), limit: typeof input.limit === \"number\" ? input.limit : typeof input.limit === \"string\" && Number.isFinite(Number(input.limit)) ? Number(input.limit) : undefined, authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }); return { result: { results } }; } });\ndefineOperation({ name: \"transcript_memories\", description: \"Transcript memories.\", schema: strictSchema({ source: S.str, date: S.str, limit: S.flexNum, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => { const memories = await ctx.service.wearablesTranscriptMemories({ source: optStr(input.source), date: optStr(input.date), limit: typeof input.limit === \"number\" ? input.limit : typeof input.limit === \"string\" && Number.isFinite(Number(input.limit)) ? Number(input.limit) : undefined, authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }); return { result: { memories } }; } });\n\n// === MEETINGS (issue #1900) ===\ndefineOperation({ name: \"meetings_list\", description: \"List stored meeting records (all days, or one day).\", schema: strictSchema({ date: S.str, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => { const d = optStr(input.date); return { result: await ctx.service.meetingsList(d && d.length > 0 ? d : undefined, { authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }; } });\ndefineOperation({ name: \"meetings_get\", description: \"Get a stored meeting record by id.\", schema: strictSchema({ id: S.str, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.meetingsGet(reqStr(input.id, \"id\"), { authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }) });\ndefineOperation({ name: \"meetings_build\", description: \"Detect + fuse + store a day's meetings.\", schema: strictSchema({ date: S.str, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.meetingsBuild(reqStr(input.date, \"date\"), { authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }) });\n// === DEEP RECALL (issue #2332) — budgeted REFINE/EXPAND/STOP retrieval ===\ndefineOperation({ name: \"deep_recall\", description: \"Budgeted multi-hop deep recall over the anchor graph.\", schema: strictSchema({ query: S.str, maxSteps: S.flexNum, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => { const q = defStr(input.query, \"\"); if (q.trim().length === 0) throw new EngramAccessInputError(\"deep_recall: query is required\"); return { result: await ctx.service.deepRecall({ query: q, maxSteps: typeof input.maxSteps === \"number\" ? input.maxSteps : typeof input.maxSteps === \"string\" && Number.isFinite(Number(input.maxSteps)) ? Number(input.maxSteps) : undefined, authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }; } });\n\n// === ACTION CONFIDENCE + INSPECTOR + CAPSULE ===\ndefineOperation({ name: \"action_confidence\", description: \"Action confidence.\", schema: strictSchema({ intendedAction: S.str, confidence: S.num, risk: S.str, contextReadiness: S.str, currentContextScopes: S.strArr, userRules: z.array(z.unknown()).optional(), retrievedMemories: z.array(z.unknown()).optional() }), handler: async (input, ctx) => { const req: Record<string, unknown> = {}; if (input.intendedAction !== undefined) req.intendedAction = optStr(input.intendedAction); if (input.confidence !== undefined) req.confidence = optNum(input.confidence); if (input.risk !== undefined) req.risk = optStr(input.risk) as \"low\" | \"medium\" | \"high\" | \"irreversible\" | \"restricted\" | undefined; if (input.contextReadiness !== undefined) req.contextReadiness = optStr(input.contextReadiness) as \"none\" | \"partial\" | \"sufficient\" | undefined; if (input.currentContextScopes !== undefined) req.currentContextScopes = optStrArr(input.currentContextScopes); if (input.userRules !== undefined) req.userRules = input.userRules; if (input.retrievedMemories !== undefined) req.retrievedMemories = input.retrievedMemories; return { result: await ctx.service.actionConfidence(req) }; } });\ndefineOperation({ name: \"chatgpt_memory_inspector\", description: \"Memory inspector.\", schema: strictSchema({ query: S.str, sessionKey: S.str, namespace: S.str, currentContextScopes: S.strArr, allowUnverifiedPreview: S.bool }),\n handler: async (input, ctx) => {\n const q = defStr(input.query, \"\");\n if (q.trim().length === 0) throw new EngramAccessInputError(\"chatgpt_memory_inspector requires a non-empty query string\");\n const ii: RemnicChatGptMemoryInspectorInput = { query: q.trim() };\n if (typeof input.sessionKey === \"string\" && input.sessionKey.trim().length > 0) ii.sessionKey = input.sessionKey;\n if (typeof input.namespace === \"string\" && input.namespace.trim().length > 0) ii.namespace = input.namespace;\n if (input.currentContextScopes !== undefined) ii.currentContextScopes = input.currentContextScopes as string[];\n if (input.allowUnverifiedPreview !== undefined) ii.allowUnverifiedPreview = input.allowUnverifiedPreview as boolean;\n const rsk = ii.sessionKey ?? (ctx.authenticatedPrincipal ? \"remnic:chatgpt-memory-inspector:\" + randomUUID() : undefined);\n const xr = await ctx.service.recallXray({ query: ii.query, sessionKey: rsk, namespace: ii.namespace, currentContextScopes: ii.currentContextScopes, authenticatedPrincipal: ctx.authenticatedPrincipal, ...(ctx.sourceConnector ? { sourceConnector: ctx.sourceConnector } : {}), mode: \"full\", disclosure: \"chunk\", includeRecall: true, ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}) });\n const x = xr.snapshotFound === true ? (xr.snapshot ?? null) : null;\n const r = xr.recall ?? { query: ii.query, namespace: ii.namespace ?? x?.namespace ?? \"global\", context: \"\", count: 0, memoryIds: [], results: [], fallbackUsed: false, sourcesUsed: [], disclosure: \"chunk\" as const };\n const ac = await ctx.service.actionConfidence(buildChatGptMemoryInspectorActionRequest(ii, r, x));\n return { result: buildChatGptMemoryInspectorResult(ii, r, x, ac) };\n },\n});\ndefineOperation({ name: \"day_summary\", description: \"Day summary.\", schema: strictSchema({ memories: S.str, sessionKey: S.str, namespace: S.str, timeZone: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => { const req: Record<string, unknown> = {}; if (input.memories !== undefined) req.memories = optStr(input.memories); if (input.sessionKey !== undefined) req.sessionKey = optStr(input.sessionKey); if (input.namespace !== undefined) req.namespace = optStr(input.namespace); if (input.timeZone !== undefined) req.timeZone = optStr(input.timeZone); const summary = await ctx.service.daySummary(req); return { result: summary ?? {} }; } });\ndefineOperation({ name: \"capsule_export\", description: \"Export capsule.\", schema: strictSchema({ name: S.str, namespace: S.str, since: S.str, includeKinds: S.strArr, peerIds: S.strArr, includeTranscripts: S.bool, encrypt: S.bool, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.capsuleExport({ name: optStr(input.name) ?? \"\", namespace: optStr(input.namespace), since: optStr(input.since), includeKinds: optStrArr(input.includeKinds), peerIds: optStrArr(input.peerIds), includeTranscripts: optBool(input.includeTranscripts as unknown), encrypt: optBool(input.encrypt as unknown), principal: ctx.authenticatedPrincipal } as unknown as Parameters<EngramAccessService[\"capsuleExport\"]>[0]) }) });\ndefineOperation({ name: \"capsule_import\", description: \"Import capsule.\", schema: strictSchema({ archivePath: S.str, namespace: S.str, mode: S.str, passphrase: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.capsuleImport({ archivePath: expandTildePath(optStr(input.archivePath) ?? \"\"), namespace: optStr(input.namespace), mode: optStr(input.mode) as \"skip\" | \"overwrite\" | \"fork\" | undefined, passphrase: optStr(input.passphrase), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"capsule_list\", description: \"List capsules.\", schema: strictSchema({ namespace: S.str, sessionKey: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => {\n const rp = ctx.authenticatedPrincipal ?? (typeof input.sessionKey === \"string\" && input.sessionKey.length > 0 && ctx.service.configRef ? resolvePrincipal(input.sessionKey, ctx.service.configRef) : undefined);\n return { result: await ctx.service.capsuleList({ namespace: optStr(input.namespace), principal: rp }) };\n} });\n\n// === GOVERNANCE ===\ndefineOperation({ name: \"memory_governance_run\", description: \"Run governance.\", schema: strictSchema({ namespace: S.str, mode: S.str, recentDays: S.num, maxMemories: S.num, batchSize: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.governanceRun({ namespace: optStr(input.namespace), mode: optStr(input.mode) === \"apply\" ? \"apply\" : \"shadow\", recentDays: optNum(input.recentDays), maxMemories: optNum(input.maxMemories), batchSize: optNum(input.batchSize), authenticatedPrincipal: ctx.authenticatedPrincipal }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"entity_synthesis_run\", description: \"Bulk-drain the entity synthesis queue (issue #2136).\", schema: strictSchema({ namespace: S.str, maxEntities: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.entitySynthesisRun({ namespace: optStr(input.namespace), maxEntities: input.maxEntities === undefined ? undefined : (input.maxEntities as number), authenticatedPrincipal: ctx.authenticatedPrincipal }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"procedure_mining_run\", description: \"Run procedure mining.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.procedureMiningRun({ namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"pattern_reinforcement_run\", description: \"Run pattern reinforcement.\", schema: strictSchema({ namespace: S.str, force: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.patternReinforcementRun({ namespace: optStr(input.namespace), force: input.force === true, authenticatedPrincipal: ctx.authenticatedPrincipal }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"procedural_stats\", description: \"Procedural stats.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.procedureStats({ namespace: optStr(input.namespace) }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"procedure_library_maintenance\", description: \"Run procedure library maintenance (issue #2370): shadow-first merge / repair-flag / retire from outcome telemetry. apply=true plus procedural.maintenance.enabled required for writes.\", schema: strictSchema({ namespace: S.str, apply: S.bool, dryRun: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.procedureLibraryMaintenance({ namespace: optStr(input.namespace), apply: input.apply === true, dryRun: input.dryRun === true, authenticatedPrincipal: ctx.authenticatedPrincipal }, ctx.authenticatedPrincipal) }) });\n\n// === MEMORY/ENTITY/OBSERVE/LCM ===\ndefineOperation({ name: \"memory_timeline\", description: \"Memory timeline.\", schema: strictSchema({ memoryId: S.str, namespace: S.str, limit: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.memoryTimeline(optStr(input.memoryId) ?? \"\", optStr(input.namespace), optNum(input.limit) ?? 200, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"suggestion_submit\", description: \"Submit suggestion.\", schema: strictSchema({ schemaVersion: S.num, idempotencyKey: S.str, dryRun: S.bool, sessionKey: S.str, content: S.str, category: S.str, confidence: S.num, namespace: S.str, tags: S.strArr, entityRef: S.str, ttl: S.str, sourceReason: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.suggestionSubmit({ schemaVersion: optNum(input.schemaVersion), idempotencyKey: optStr(input.idempotencyKey), dryRun: input.dryRun === true, sessionKey: optStr(input.sessionKey), authenticatedPrincipal: ctx.authenticatedPrincipal, ...(ctx.sourceConnector ? { sourceConnector: ctx.sourceConnector } : {}), content: optStr(input.content) ?? \"\", category: optStr(input.category), confidence: optNum(input.confidence), namespace: optStr(input.namespace), tags: optStrArr(input.tags), entityRef: optStr(input.entityRef), ttl: optStr(input.ttl), sourceReason: optStr(input.sourceReason), cwd: optStr(input.cwd), projectTag: optStr(input.projectTag) }) }) });\ndefineOperation({ name: \"entity_get\", description: \"Get entity.\", schema: strictSchema({ name: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.entityGet(optStr(input.name) ?? \"\", optStr(input.namespace)) }) });\ndefineOperation({ name: \"review_queue_list\", description: \"List review queue.\", schema: strictSchema({ runId: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.reviewQueue(optStr(input.runId) ?? \"\", optStr(input.namespace), ctx.authenticatedPrincipal) }) });\n// Issue #2482: observe validates through the canonical observeRequestSchema\n// (same as HTTP/MCP wire validation). Nullable wire fields (parts /\n// sourceFormat) map to undefined for the service's cleaned message form.\ndefineOperation({\n name: \"observe\",\n description: \"Observe messages.\",\n schema: z.preprocess(stripNulls, observeRequestSchema) as unknown as z.ZodType<ObserveRequest>,\n handler: async (input, ctx) => ({\n result: await ctx.service.observe(\n {\n sessionKey: input.sessionKey,\n messages: input.messages.map((message) => ({\n role: message.role,\n content: message.content,\n ...(message.parts ? { parts: message.parts } : {}),\n ...(message.rawContent !== undefined ? { rawContent: message.rawContent } : {}),\n ...(message.sourceFormat ? { sourceFormat: message.sourceFormat } : {}),\n })),\n skipExtraction: input.skipExtraction === true,\n idempotencyKey: input.idempotencyKey,\n namespace: input.namespace,\n authenticatedPrincipal: ctx.authenticatedPrincipal,\n cwd: input.cwd,\n projectTag: input.projectTag,\n ...(ctx.sourceConnector ? { sourceConnector: ctx.sourceConnector } : {}),\n },\n ctx.hooks?.enforceWriteQuota ? { enforceWriteQuota: ctx.hooks.enforceWriteQuota } : undefined,\n ),\n }),\n});\ndefineOperation({ name: \"lcm_search\", description: \"Search LCM.\", schema: strictSchema({ query: S.str, sessionKey: S.str, sessionPrefix: S.str, namespace: S.str, limit: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.lcmSearch({ query: defStr(input.query, \"\"), sessionKey: optStr(input.sessionKey), sessionPrefix: optStr(input.sessionPrefix), namespace: optStr(input.namespace), limit: optNum(input.limit), authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"lcm_compaction_flush\", description: \"Flush LCM compaction.\", schema: strictSchema({ sessionKey: S.str, namespace: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.lcmCompactionFlush({ sessionKey: optStr(input.sessionKey) ?? \"\", namespace: optStr(input.namespace), cwd: optStr(input.cwd), projectTag: optStr(input.projectTag), authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"extraction_force_flush\", description: \"Force-drain a session extraction buffer.\", schema: strictSchema({ sessionKey: S.str, namespace: S.str, cwd: S.str, projectTag: S.str, deadlineMs: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.extractionForceFlush({ sessionKey: optStr(input.sessionKey) ?? \"\", namespace: optStr(input.namespace), cwd: optStr(input.cwd), projectTag: optStr(input.projectTag), deadlineMs: optNum(input.deadlineMs), authenticatedPrincipal: ctx.authenticatedPrincipal, onCommitted: ctx.hooks?.recordWriteCommit, ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}) }) }) });\ndefineOperation({ name: \"lcm_compaction_record\", description: \"Record LCM compaction.\", schema: strictSchema({ sessionKey: S.str, namespace: S.str, tokensBefore: S.num, tokensAfter: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.lcmCompactionRecord({ sessionKey: optStr(input.sessionKey) ?? \"\", namespace: optStr(input.namespace), tokensBefore: optNum(input.tokensBefore) ?? 0, tokensAfter: optNum(input.tokensAfter) ?? 0, authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\n\n// === CONTINUITY/IDENTITY ===\ndefineOperation({ name: \"continuity_audit_generate\", description: \"Continuity audit.\", fleetWide: true, schema: strictSchema({ period: S.str, key: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.continuityAuditGenerate({ period: optStr(input.period) === \"monthly\" ? \"monthly\" : optStr(input.period) === \"weekly\" ? \"weekly\" : undefined, key: optStr(input.key) }) }) });\ndefineOperation({ name: \"continuity_incident_open\", description: \"Open incident.\", schema: strictSchema({ symptom: S.str, namespace: S.str, triggerWindow: S.str, suspectedCause: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.continuityIncidentOpen({ symptom: optStr(input.symptom) ?? \"\", namespace: optStr(input.namespace), triggerWindow: optStr(input.triggerWindow), suspectedCause: optStr(input.suspectedCause), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"continuity_incident_close\", description: \"Close incident.\", schema: strictSchema({ id: S.str, namespace: S.str, fixApplied: S.str, verificationResult: S.str, preventiveRule: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.continuityIncidentClose({ id: optStr(input.id) ?? \"\", namespace: optStr(input.namespace), fixApplied: optStr(input.fixApplied) ?? \"\", verificationResult: optStr(input.verificationResult) ?? \"\", preventiveRule: optStr(input.preventiveRule), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"continuity_incident_list\", description: \"List incidents.\", schema: strictSchema({ state: S.str, namespace: S.str, limit: S.num }), handler: async (input, ctx) => { const st = optStr(input.state); return { result: await ctx.service.continuityIncidentList({ state: st === \"closed\" ? \"closed\" : st === \"all\" ? \"all\" : st === \"open\" ? \"open\" : undefined, namespace: optStr(input.namespace), limit: optNum(input.limit), principal: ctx.authenticatedPrincipal }) }; } });\ndefineOperation({ name: \"continuity_loop_add_or_update\", description: \"Add/update loop.\", schema: strictSchema({ id: S.str, cadence: S.str, purpose: S.str, status: S.str, killCondition: S.str, namespace: S.str, lastReviewed: S.str, notes: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.continuityLoopAddOrUpdate({ id: optStr(input.id) ?? \"\", cadence: (optStr(input.cadence) as \"daily\" | \"weekly\" | \"monthly\" | \"quarterly\") ?? \"weekly\", purpose: optStr(input.purpose) ?? \"\", status: (optStr(input.status) as \"active\" | \"paused\" | \"retired\") ?? \"active\", killCondition: optStr(input.killCondition) ?? \"\", namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal, lastReviewed: optStr(input.lastReviewed), notes: optStr(input.notes) }) }) });\ndefineOperation({ name: \"continuity_loop_review\", description: \"Review loop.\", schema: strictSchema({ id: S.str, namespace: S.str, status: S.str, notes: S.str, reviewedAt: S.str }), handler: async (input, ctx) => { const st = optStr(input.status); return { result: await ctx.service.continuityLoopReview({ id: optStr(input.id) ?? \"\", namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal, status: st === \"active\" || st === \"paused\" || st === \"retired\" ? st as \"active\" | \"paused\" | \"retired\" : undefined, notes: optStr(input.notes), reviewedAt: optStr(input.reviewedAt) }) }; } });\ndefineOperation({ name: \"identity_anchor_get\", description: \"Get identity anchor.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.identityAnchorGet({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"identity_anchor_update\", description: \"Update identity anchor.\", schema: strictSchema({ namespace: S.str, identityTraits: S.str, communicationPreferences: S.str, operatingPrinciples: S.str, continuityNotes: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.identityAnchorUpdate({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal, identityTraits: optStr(input.identityTraits), communicationPreferences: optStr(input.communicationPreferences), operatingPrinciples: optStr(input.operatingPrinciples), continuityNotes: optStr(input.continuityNotes) }) }) });\ndefineOperation({ name: \"memory_identity\", description: \"Memory identity.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.memoryIdentity({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }) });\n\n// === WORK/SHARED ===\ndefineOperation({ name: \"work_task\", description: \"Manage work task.\", schema: strictSchema({ action: S.str, id: S.str, title: S.str, description: S.str, status: S.str, priority: S.str, owner: S.str, assignee: S.str, projectId: S.str, tags: S.strArr, dueAt: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.workTask({ action: (optStr(input.action) as \"update\" | \"list\" | \"get\" | \"create\" | \"delete\" | \"transition\") ?? \"list\", id: optStr(input.id), title: optStr(input.title), description: optStr(input.description), status: optStr(input.status), priority: optStr(input.priority), owner: optStr(input.owner), assignee: optStr(input.assignee), projectId: optStr(input.projectId), tags: optStrArr(input.tags), dueAt: optStr(input.dueAt) }) }) });\ndefineOperation({ name: \"work_project\", description: \"Manage work project.\", schema: strictSchema({ action: S.str, id: S.str, name: S.str, description: S.str, status: S.str, owner: S.str, tags: S.strArr, taskId: S.str, projectId: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.workProject({ action: (optStr(input.action) as \"update\" | \"list\" | \"get\" | \"create\" | \"delete\" | \"link_task\") ?? \"list\", id: optStr(input.id), name: optStr(input.name), description: optStr(input.description), status: optStr(input.status), owner: optStr(input.owner), tags: optStrArr(input.tags), taskId: optStr(input.taskId), projectId: optStr(input.projectId) }) }) });\ndefineOperation({ name: \"work_board\", description: \"Manage work board.\", schema: strictSchema({ action: S.str, projectId: S.str, snapshotJson: S.str, linkToMemory: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.workBoard({ action: (optStr(input.action) as \"export_markdown\" | \"export_snapshot\" | \"import_snapshot\") ?? \"export_markdown\", projectId: optStr(input.projectId) ?? \"\", snapshotJson: optStr(input.snapshotJson) ?? \"\", linkToMemory: input.linkToMemory === true }) }) });\ndefineOperation({ name: \"shared_context_write_output\", description: \"Write shared output.\", schema: strictSchema({ agentId: S.str, title: S.str, content: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.sharedContextWriteOutput({ agentId: optStr(input.agentId) ?? \"\", title: optStr(input.title) ?? \"\", content: optStr(input.content) ?? \"\", principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"shared_feedback_record\", description: \"Record shared feedback.\", schema: strictSchema({ agent: S.str, decision: S.str, reason: S.str, date: S.str, learning: S.str, outcome: S.str, severity: S.str, confidence: S.num, workflow: S.str, tags: S.strArr, evidenceWindowStart: S.str, evidenceWindowEnd: S.str, refs: S.strArr }), handler: async (input, ctx) => { const sv = optStr(input.severity); return { result: await ctx.service.sharedFeedbackRecord({ agent: optStr(input.agent) ?? \"\", decision: (optStr(input.decision) as \"rejected\" | \"approved\" | \"approved_with_feedback\") ?? \"approved\", reason: optStr(input.reason) ?? \"\", date: optStr(input.date), learning: optStr(input.learning), outcome: optStr(input.outcome), severity: sv === \"low\" || sv === \"medium\" || sv === \"high\" ? sv as \"low\" | \"medium\" | \"high\" : undefined, confidence: optNum(input.confidence), workflow: optStr(input.workflow), tags: optStrArr(input.tags), evidenceWindowStart: optStr(input.evidenceWindowStart), evidenceWindowEnd: optStr(input.evidenceWindowEnd), refs: optStrArr(input.refs) }) }; } });\ndefineOperation({ name: \"shared_priorities_append\", description: \"Append priorities.\", schema: strictSchema({ agentId: S.str, text: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.sharedPrioritiesAppend({ agentId: optStr(input.agentId) ?? \"\", text: optStr(input.text) ?? \"\" }) }) });\ndefineOperation({ name: \"shared_context_cross_signals_run\", description: \"Run cross signals.\", fleetWide: true, schema: strictSchema({ date: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.sharedContextCrossSignalsRun({ date: optStr(input.date) }) }) });\ndefineOperation({ name: \"shared_context_curate_daily\", description: \"Curate daily.\", fleetWide: true, schema: strictSchema({ date: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.sharedContextCurateDaily({ date: optStr(input.date) }) }) });\ndefineOperation({ name: \"compounding_weekly_synthesize\", description: \"Weekly synthesize.\", fleetWide: true, schema: strictSchema({ weekId: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.compoundingWeeklySynthesize({ weekId: optStr(input.weekId) }) }) });\ndefineOperation({ name: \"compounding_promote_candidate\", description: \"Promote candidate.\", fleetWide: true, schema: strictSchema({ weekId: S.str, candidateId: S.str, dryRun: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.compoundingPromoteCandidate({ weekId: optStr(input.weekId) ?? \"\", candidateId: optStr(input.candidateId) ?? \"\", dryRun: input.dryRun === true }) }) });\ndefineOperation({ name: \"compression_guidelines_optimize\", description: \"Optimize guidelines.\", fleetWide: true, schema: strictSchema({ dryRun: S.bool, eventLimit: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.compressionGuidelinesOptimize({ dryRun: input.dryRun === true, eventLimit: optNum(input.eventLimit) }) }) });\ndefineOperation({ name: \"compression_guidelines_activate\", description: \"Activate guidelines.\", fleetWide: true, schema: strictSchema({ expectedContentHash: S.str, expectedGuidelineVersion: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.compressionGuidelinesActivate({ expectedContentHash: optStr(input.expectedContentHash), expectedGuidelineVersion: optNum(input.expectedGuidelineVersion) }) }) });\n\n// === MEMORY DEBUG/GRAPH/FEEDBACK ===\ndefineOperation({ name: \"memory_profile\", description: \"Memory profile.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.memoryProfile(optStr(input.namespace), ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"memory_entities_list\", description: \"List entities.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.memoryEntitiesList(optStr(input.namespace), ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"memory_questions\", description: \"Memory questions.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.memoryQuestions(optStr(input.namespace), ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"memory_last_recall\", description: \"Last recall.\", schema: strictSchema({ sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.lastRecallSnapshot(optStr(input.sessionKey)) }) });\ndefineOperation({ name: \"memory_intent_debug\", description: \"Debug intent.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.intentDebug(optStr(input.namespace)) }) });\ndefineOperation({ name: \"memory_qmd_debug\", description: \"Debug QMD.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.qmdDebug(optStr(input.namespace)) }) });\ndefineOperation({ name: \"memory_graph_explain\", description: \"Explain graph.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.graphExplainLastRecall(optStr(input.namespace)) }) });\ndefineOperation({ name: \"graph_snapshot\", description: \"Graph snapshot.\", schema: strictSchema({ namespace: S.str, limit: S.num, since: S.str, focusNodeId: S.str, categories: S.strArr }), handler: async (input, ctx) => ({ result: await ctx.service.graphSnapshot({ namespace: optStr(input.namespace), limit: optNum(input.limit), since: optStr(input.since), focusNodeId: optStr(input.focusNodeId), categories: optStrArr(input.categories) }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"memory_feedback\", description: \"Record feedback.\", schema: strictSchema({ memoryId: S.str, vote: S.str, note: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.memoryFeedback({ memoryId: optStr(input.memoryId) ?? \"\", vote: optStr(input.vote) === \"down\" ? \"down\" : \"up\", note: optStr(input.note) }) }) });\ndefineOperation({ name: \"memory_promote\", description: \"Promote memory.\", schema: strictSchema({ memoryId: S.str, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.memoryPromote({ memoryId: optStr(input.memoryId) ?? \"\", namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"memory_outcome\", description: \"Record outcome.\", schema: strictSchema({ memoryId: S.str, outcome: S.str, namespace: S.str, sessionKey: S.str, timestamp: S.str }), handler: async (input, ctx) => { const o = optStr(input.outcome); if (o !== \"success\" && o !== \"failure\") throw new EngramAccessInputError(\"memory_outcome: outcome must be \\\"success\\\" or \\\"failure\\\"; got \" + JSON.stringify(o)); return { result: await ctx.service.memoryOutcome({ memoryId: optStr(input.memoryId) ?? \"\", outcome: o, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey), timestamp: optStr(input.timestamp), principal: ctx.authenticatedPrincipal }) }; } });\ndefineOperation({ name: \"memory_action_apply\", description: \"Apply action.\", schema: strictSchema({ action: S.str, outcome: S.str, reason: S.str, memoryId: S.str, namespace: S.str, sessionKey: S.str, content: S.str, category: S.str, linkTargetId: S.str, linkType: S.str, linkStrength: S.num, artifactType: S.str, execute: S.bool, sourcePrompt: S.str, dryRun: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.memoryActionApply({ action: optStr(input.action) ?? \"\", outcome: optStr(input.outcome), reason: optStr(input.reason), memoryId: optStr(input.memoryId) ?? \"\", namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey), content: optStr(input.content), category: optStr(input.category), linkTargetId: optStr(input.linkTargetId), linkType: optStr(input.linkType), linkStrength: optNum(input.linkStrength), artifactType: optStr(input.artifactType), execute: optBool(input.execute), sourcePrompt: optStr(input.sourcePrompt), dryRun: input.dryRun === true, principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"context_checkpoint\", description: \"Context checkpoint.\", schema: strictSchema({ sessionKey: S.str, context: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.contextCheckpoint({ sessionKey: optStr(input.sessionKey) ?? \"\", context: optStr(input.context) ?? \"\", namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"briefing\", description: \"Daily briefing.\", schema: strictSchema({ since: S.str, focus: S.str, namespace: S.str, format: S.str, maxFollowups: S.num }), handler: async (input, ctx) => { const rf = optStr(input.format); const fe = validateBriefingFormat(rf); if (fe) throw new EngramAccessInputError(fe); return { result: await ctx.service.briefing({ since: optStr(input.since), focus: optStr(input.focus), namespace: optStr(input.namespace), format: rf as \"json\" | \"markdown\" | undefined, maxFollowups: optNum(input.maxFollowups), principal: ctx.authenticatedPrincipal }) }; } });\n\n// === CONTRADICTION/REVIEW ===\ndefineOperation({ name: \"review_list\", description: \"List review pairs.\", schema: strictSchema({ filter: S.str, namespace: S.str, limit: S.num }),\n handler: async (input, ctx) => {\n const VF = new Set([\"all\", \"unresolved\", \"contradicts\", \"independent\", \"duplicates\", \"needs-user\"]);\n const rf = optStr(input.filter) ?? \"unresolved\";\n if (!VF.has(rf)) throw new EngramAccessInputError(\"Invalid filter '\" + rf + \"'. Valid: \" + [...VF].join(\", \"));\n const ns = optStr(input.namespace);\n const resolved = await ctx.service.getReadableStorageForNamespace(ns, ctx.authenticatedPrincipal);\n const rn = ctx.service.configRef.namespacesEnabled ? resolved.namespace : undefined;\n const iun = Boolean(rn && isDefaultReviewNamespace(ctx.service.configRef.defaultNamespace, ns, rn));\n return { result: await listPairs(ctx.service.memoryDir, { filter: rf as \"all\" | \"unresolved\" | \"contradicts\" | \"independent\" | \"duplicates\" | \"needs-user\", namespace: rn, includeUnscopedForNamespace: iun, limit: optNum(input.limit) ?? 50 }) };\n },\n});\ndefineOperation({ name: \"review_resolve\", description: \"Resolve pair.\", schema: strictSchema({ pairId: S.str, verb: S.str, mergedMemoryId: S.str, mergedContent: S.str }),\n handler: async (input, ctx) => {\n const pid = defStr(input.pairId, \"\"); const vb = defStr(input.verb, \"\");\n if (!pid) throw new EngramAccessInputError(\"pairId is required\");\n if (!vb) throw new EngramAccessInputError(\"verb is required\");\n if (!isValidResolutionVerb(vb)) throw new EngramAccessInputError(\"Invalid verb: \" + vb);\n // Per-token namespace enforcement (issue #1850 round 9): review_resolve\n // selects its target BY pairId, so the affected namespace comes from the\n // record — NOT a request param that the MCP-over-HTTP tools/call gate\n // (toolAcceptsNamespace) already enforces (this tool's schema carries no\n // `namespace` property). A namespace-scoped bearer must not mutate a\n // contradiction pair in a namespace outside its allow-list. Load the pair\n // to learn its namespace, enforce the token's scope via the SAME\n // effective-namespace chokepoint the HTTP review/resolve route uses\n // (enforceNamespaceAllowList maps undefined → default, so a scoped token\n // whose allow-list INCLUDES the default can resolve a legacy pair), and\n // fail closed BEFORE dispatching the (mutating) resolution. A missing pair\n // falls through to executeResolution's existing not-found result. No-op for\n // unrestricted/legacy tokens. Mirrors access-http.ts review/resolve exactly.\n const targetPair = readPair(ctx.service.memoryDir, pid);\n if (targetPair) {\n enforceNamespaceAllowList(\n tokenCapabilityStore.getStore(),\n targetPair.namespace,\n ctx.service.configRef?.defaultNamespace,\n );\n }\n return { result: await executeResolution(ctx.service.memoryDir, ctx.service.storageRef, pid, vb, { mergedMemoryId: optStr(input.mergedMemoryId), mergedContent: optStr(input.mergedContent), storageForNamespace: async (namespace) => { const r = await ctx.service.getWritableStorageForNamespace(namespace, ctx.authenticatedPrincipal); return r.storage; }, onMergedMemoryWritten: () => {} }) };\n },\n});\ndefineOperation({ name: \"contradiction_scan_run\", description: \"Run scan.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await runContradictionScan({ storage: ctx.service.storageRef, config: ctx.service.configRef, memoryDir: ctx.service.memoryDir, embeddingLookupFactory: ctx.service.embeddingLookupFactoryRef, storageForNamespace: (ns) => ctx.service.getWritableStorageForNamespace(ns ?? undefined, ctx.authenticatedPrincipal), localLlm: ctx.service.localLlmRef, fallbackLlm: ctx.service.fallbackLlmRef, namespace: optStr(input.namespace) }) }) });\ndefineOperation({ name: \"preference_drift_scan\", description: \"Run preference drift scan.\", schema: strictSchema({ namespace: S.str, apply: S.bool }), handler: async (input, ctx) => ({ result: await runPreferenceDriftScan({ storage: ctx.service.storageRef, config: ctx.service.configRef, memoryDir: ctx.service.memoryDir, embeddingLookupFactory: ctx.service.embeddingLookupFactoryRef, storageForNamespace: (ns) => ctx.service.getWritableStorageForNamespace(ns ?? undefined, ctx.authenticatedPrincipal), localLlm: ctx.service.localLlmRef, fallbackLlm: ctx.service.fallbackLlmRef, namespace: optStr(input.namespace), apply: input.apply === true }) }) });\ndefineOperation({ name: \"graph_edge_decay_run\", description: \"Run edge decay.\", fleetWide: true, schema: strictSchema({ dryRun: S.bool }), handler: async (input, ctx) => { const cfg = ctx.service.configRef; if (!cfg.graphEdgeDecayEnabled) return { result: { ranAt: new Date().toISOString(), disabled: true, reason: \"graphEdgeDecayEnabled is false\" } }; return { result: { results: await runGraphEdgeDecayMaintenanceAcrossNamespaces(ctx.service.memoryDir, { windowMs: cfg.graphEdgeDecayWindowMs, perWindow: cfg.graphEdgeDecayPerWindow, floor: cfg.graphEdgeDecayFloor, visibilityThreshold: cfg.graphEdgeDecayVisibilityThreshold, dryRun: input.dryRun === true, namespacesEnabled: cfg.namespacesEnabled === true, defaultNamespace: cfg.defaultNamespace }) } }; } });\n\n// === SUMMARIZE/PROFILING/PEERS/CONSOLE/DREAMS ===\ndefineOperation({ name: \"memory_summarize_hourly\", description: \"Hourly summarize.\", fleetWide: true, schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.memorySummarizeHourly() }) });\ndefineOperation({ name: \"conversation_index_update\", description: \"Update conv index.\", fleetWide: true, schema: strictSchema({ sessionKey: S.str, hours: S.num, embed: S.bool }), handler: async (input, ctx) => { if (input.sessionKey !== undefined && typeof input.sessionKey !== \"string\") throw new EngramAccessInputError(\"sessionKey must be a string when provided\"); return { result: await ctx.service.conversationIndexUpdate({ sessionKey: optStr(input.sessionKey), hours: optNum(input.hours), embed: optBool(input.embed) }) }; } });\ndefineOperation({ name: \"profiling_report\", description: \"Profiling report.\", schema: strictSchema({ format: S.str, limit: S.num }), handler: async (input, ctx) => { if (input.format !== undefined && typeof input.format !== \"string\") throw new EngramAccessInputError(\"format must be a string when provided\"); if (input.limit !== undefined && typeof input.limit !== \"number\") throw new EngramAccessInputError(\"limit must be a number when provided\"); return { result: await ctx.service.profilingReport({ format: optStr(input.format), limit: optNum(input.limit) }) }; } });\ndefineOperation({ name: \"live_connectors_run\", description: \"Run connectors.\", fleetWide: true, schema: strictSchema({ force: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.liveConnectorsRun({ authenticatedPrincipal: ctx.authenticatedPrincipal, force: input.force === true }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"peer_list\", description: \"List peers.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.peerList() }) });\ndefineOperation({ name: \"peer_get\", description: \"Get peer.\", schema: strictSchema({ id: S.str }), handler: async (input, ctx) => { const id = defStr(input.id, \"\"); if (!id) throw new EngramAccessInputError(\"peer_get: id is required\"); return { result: await ctx.service.peerGet(id) }; } });\ndefineOperation({ name: \"peer_set\", description: \"Set peer.\", schema: strictSchema({ id: S.str, kind: S.str, displayName: S.str, notes: S.str }), handler: async (input, ctx) => { const id = defStr(input.id, \"\"); if (!id) throw new EngramAccessInputError(\"peer_set: id is required\"); if (input.kind !== undefined && typeof input.kind !== \"string\") throw new EngramAccessInputError(\"peer_set: kind must be a string when provided\"); if (input.displayName !== undefined && typeof input.displayName !== \"string\") throw new EngramAccessInputError(\"peer_set: displayName must be a string when provided\"); if (input.notes !== undefined && typeof input.notes !== \"string\") throw new EngramAccessInputError(\"peer_set: notes must be a string when provided\"); return { result: await ctx.service.peerSet({ id, kind: optStr(input.kind), displayName: optStr(input.displayName), notes: optStr(input.notes) }) }; } });\ndefineOperation({ name: \"peer_delete\", description: \"Delete peer.\", schema: strictSchema({ id: S.str }), handler: async (input, ctx) => { const id = defStr(input.id, \"\"); if (!id) throw new EngramAccessInputError(\"peer_delete: id is required\"); return { result: await ctx.service.peerDelete(id) }; } });\ndefineOperation({ name: \"peer_profile_get\", description: \"Get peer profile.\", schema: strictSchema({ id: S.str }), handler: async (input, ctx) => { const id = defStr(input.id, \"\"); if (!id) throw new EngramAccessInputError(\"peer_profile_get: id is required\"); return { result: await ctx.service.peerProfileGet(id) }; } });\ndefineOperation({ name: \"peer_forget\", description: \"Forget peer.\", schema: strictSchema({ id: S.str, confirm: S.str }), handler: async (input, ctx) => { const id = defStr(input.id, \"\"); if (!id) throw new EngramAccessInputError(\"peer_forget: id is required\"); const c = optStr(input.confirm) ?? \"\"; if (c !== \"yes\") throw new EngramAccessInputError(\"peer_forget: confirm must be 'yes' to prevent accidental data loss\"); return { result: await ctx.service.peerForget(id, { confirm: \"yes\" }) }; } });\ndefineOperation({ name: \"console_state\", description: \"Console state.\", schema: strictSchema({ namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.consoleState(optStr(input.namespace), ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"dreams_status\", description: \"Dreams status.\", schema: strictSchema({ windowHours: S.num, namespace: S.str }), handler: async (input, ctx) => { let wh = 24; try { wh = normalizeDreamsStatusWindowHours(input.windowHours); } catch { throw new EngramAccessInputError(\"dreams_status: windowHours must be a positive integer. Got: \" + String(input.windowHours)); } return { result: await ctx.service.dreamsStatus({ windowHours: wh, namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }; } });\ndefineOperation({ name: \"dreams_run\", description: \"Run dreams.\", schema: strictSchema({ phase: S.str, dryRun: S.bool, namespace: S.str }), handler: async (input, ctx) => { const VP = [\"lightSleep\", \"rem\", \"deepSleep\"]; const ph = optStr(input.phase) ?? \"\"; if (!ph || !VP.includes(ph)) throw new EngramAccessInputError(\"dreams_run: phase must be one of: \" + VP.join(\", \")); if (input.dryRun !== undefined && typeof input.dryRun !== \"boolean\") throw new EngramAccessInputError(\"dreams_run: dryRun must be boolean\"); return { result: await ctx.service.dreamsRun({ phase: ph as DreamsPhase, dryRun: input.dryRun === true, namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }; } });\n\ndefineOperation({ name: \"correction_pending\", description: \"List pending corrections (HTTP GET).\", schema: strictSchema({ namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.correctionListPending({ namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey), principal: ctx.authenticatedPrincipal }) }) });\n\n// === HTTP-ONLY ===\ndefineOperation({ name: \"offline_sync_snapshot\", description: \"Offline sync snapshot.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.offlineSyncSnapshot() }) });\ndefineOperation({ name: \"offline_sync_files\", description: \"Offline sync files.\", schema: strictSchema({ paths: S.strArr, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncFiles({ paths: optStrArr(input.paths) ?? [], namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"offline_sync_file_content\", description: \"Read file content.\", schema: strictSchema({ path: S.str, namespace: S.str, offset: S.num, length: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncFileContent({ path: optStr(input.path) ?? \"\", namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal, offset: optNum(input.offset), length: optNum(input.length) }) }) });\ndefineOperation({ name: \"offline_sync_apply_file_content\", description: \"Apply file content.\", schema: strictSchema({ sourceId: S.str, path: S.str, sha256: S.str, bytes: S.num, mtimeMs: S.num, offset: S.num, baseSha256: S.str, content: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncApplyFileContent({ sourceId: optStr(input.sourceId) ?? \"\", path: optStr(input.path) ?? \"\", sha256: optStr(input.sha256) ?? \"\", bytes: optNum(input.bytes) ?? 0, mtimeMs: optNum(input.mtimeMs) ?? 0, offset: optNum(input.offset), baseSha256: optStr(input.baseSha256), content: Buffer.from(defStr(input.content, \"\"), \"base64\"), namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"offline_sync_apply\", description: \"Apply sync.\", schema: strictSchema({ changeset: z.unknown().optional(), namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.offlineSyncApply({ changeset: input.changeset, namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"lcm_status\", description: \"LCM status.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.lcmStatus() }) });\ndefineOperation({ name: \"memory_list\", description: \"List memories.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.memoryBrowse() }) });\ndefineOperation({\n name: \"recall_timings\",\n description: \"List recent recall timings.\",\n schema: strictSchema({}),\n handler: async (_input, ctx) => {\n if (\n !isRecallTimingsOperator(\n ctx.service.configRef,\n ctx.authenticatedPrincipal,\n ctx.operatorPrincipal,\n )\n ) {\n throw new EngramAccessForbiddenError(\"recall timings require the configured operator principal\");\n }\n return { result: getRecallTimingStatus(ctx.service.configRef) };\n },\n});\ndefineOperation({ name: \"entity_list\", description: \"List entities.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.entityList() }) });\ndefineOperation({ name: \"maintenance_status\", description: \"Maintenance status.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.maintenance() }) });\ndefineOperation({ name: \"quality_status\", description: \"Quality status.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.quality() }) });\ndefineOperation({ name: \"trust_zones_status\", description: \"Trust-zone status.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.trustZoneStatus() }) });\ndefineOperation({ name: \"trust_zones_records\", description: \"Browse trust-zone records.\", schema: strictSchema({ namespace: S.str, limit: S.num, offset: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.trustZoneBrowse({ namespace: optStr(input.namespace), limit: optNum(input.limit), offset: optNum(input.offset) }, ctx.authenticatedPrincipal) }) });\ndefineOperation({ name: \"review_disposition\", description: \"Review disposition.\", schema: strictSchema({ memoryId: S.str, status: S.str, reasonCode: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.reviewDisposition({ memoryId: optStr(input.memoryId) ?? \"\", status: (optStr(input.status) ?? \"archived\") as never, reasonCode: optStr(input.reasonCode) ?? \"\", namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"review_deck_list\", description: \"List review deck.\", schema: strictSchema({ namespace: S.str, cursor: S.str, limit: S.num }), handler: async (input, ctx) => ({ result: await ctx.service.reviewDeckList({ namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal, cursor: optStr(input.cursor), limit: optNum(input.limit) ?? 1 }) }) });\ndefineOperation({ name: \"review_deck_action\", description: \"Apply review deck action.\", schema: strictSchema({ itemId: S.str, revision: S.str, action: S.str, correctionText: S.str, idempotencyKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.reviewDeckAction({ schemaVersion: 1, itemId: reqStr(input.itemId, \"itemId\"), revision: reqStr(input.revision, \"revision\"), action: reqStr(input.action, \"action\") as \"keep\", idempotencyKey: reqStr(input.idempotencyKey, \"idempotencyKey\"), ...(optStr(input.correctionText) ? { correctionText: optStr(input.correctionText)! } : {}) } as never, { principal: ctx.authenticatedPrincipal, signal: ctx.abortSignal }) }) });\ndefineOperation({ name: \"review_deck_undo\", description: \"Undo review deck action.\", schema: strictSchema({ receiptId: S.str, expectedRevision: S.str, idempotencyKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.reviewDeckUndo({ schemaVersion: 1, receiptId: reqStr(input.receiptId, \"receiptId\"), expectedRevision: reqStr(input.expectedRevision, \"expectedRevision\"), idempotencyKey: reqStr(input.idempotencyKey, \"idempotencyKey\") }, { principal: ctx.authenticatedPrincipal, signal: ctx.abortSignal }) }) });\ndefineOperation({ name: \"trust_zones_promote\", description: \"Promote trust-zone.\", schema: strictSchema({ recordId: S.str, targetZone: S.str, promotionReason: S.str, dryRun: S.bool, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.trustZonePromote({ recordId: optStr(input.recordId) ?? \"\", targetZone: (optStr(input.targetZone) ?? \"working\") as never, promotionReason: optStr(input.promotionReason) ?? \"\", dryRun: input.dryRun === true, namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"trust_zones_demo_seed\", description: \"Demo seed.\", schema: strictSchema({ scenario: S.str, dryRun: S.bool, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.trustZoneDemoSeed({ scenario: optStr(input.scenario), dryRun: input.dryRun === true, namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\ndefineOperation({ name: \"citations_observed\", description: \"Record citations.\", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });\ndefineOperation({ name: \"contradiction_detail\", description: \"Contradiction detail.\", schema: strictSchema({ id: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await listPairs(ctx.service.memoryDir, { filter: \"all\" as const, namespace: optStr(input.namespace), includeUnscopedForNamespace: false, limit: 1 }) }) });\ndefineOperation({ name: \"offline_sync_snapshot_stream\", description: \"SSE stream.\", schema: strictSchema({}), handler: async (_i, ctx) => ({ result: await ctx.service.offlineSyncSnapshotStream() }) });\ndefineOperation({ name: \"graph_events\", description: \"SSE graph events.\", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: \"sse\" } }) });\ndefineOperation({ name: \"chat_message\", description: \"Chat message.\", schema: strictSchema({ message: S.str, chatSessionId: S.str }), handler: async (_i, _ctx) => ({ result: { ok: true } }) });\ndefineOperation({ name: \"chat_events\", description: \"SSE chat events.\", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: \"sse\" } }) });\ndefineOperation({ name: \"adapters_status\", description: \"Adapter registry metadata (issue #1850 round 5). Marker op: the HTTP transport builds the response from its own adapterRegistry, but the op still must be registered so it appears in listRegisteredOperations and enforceTokenOp can gate it for scoped tokens.\", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/reconcile/manifest.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { computeLegacyContentHash, normalizeLegacyContent } from \"../content-hash.js\";\nimport { inferMemoryStatus } from \"../memory-lifecycle-ledger-utils.js\";\nimport { DEFAULT_CITATION_FORMAT, stripCitationForTemplate } from \"../source-attribution.js\";\nimport { ContentHashIndex, type ContentHashPathEntry } from \"../storage/content-hash-index.js\";\nimport { storedContentIdentityCandidates } from \"../structured-attributes.js\";\nimport type { MemoryFrontmatter, MemoryStatus } from \"../types.js\";\nimport { RECALL_FALLBACK_DIRS } from \"../utils/category-dir.js\";\nimport {\n type ReconcileFileState,\n type ReconcilePlan,\n type ReconcilePlanEntry,\n type ReconcileSemanticAgreement,\n type ReconcileSemanticChange,\n compareReconcilePlanEntries,\n semanticAgreementKey,\n summarizeReconcilePlan,\n} from \"./plan.js\";\n\nexport const RECONCILE_MANIFEST_FORMAT = \"remnic-reconcile-manifest\";\nexport const RECONCILE_MANIFEST_SCHEMA_VERSION = 1;\nexport const CONTENT_HASH_NORMALIZER_VERSION = 4;\n/**\n * Version of the identity-resolution LOGIC (alias recovery, candidate\n * ordering), independent of the content normalizer: a cached manifest entry\n * written before an identity-resolution change carries an older value and is\n * reparsed even when its normalizerVersion still matches (issue #2367\n * review round 2). Bump when parsedMemoryIdentity's output shape or\n * semantics change.\n */\nexport const IDENTITY_RESOLUTION_VERSION = 2;\n\nexport interface ReconcileMemoryIdentity {\n id: string;\n category: string;\n contentHash: string;\n /**\n * Recovered current-normalizer identities for a record whose persisted hash\n * is ambiguous under the legacy normalizer (issue #2367). The persisted\n * hash stays primary; these participate in duplicate bucketing so a\n * replica carrying the current form of the same fact still collapses.\n */\n contentHashAliases?: readonly string[];\n /** See IDENTITY_RESOLUTION_VERSION; absent on pre-versioning cache entries. */\n normalizerVersion?: number;\n identityResolutionVersion?: number;\n status: MemoryStatus;\n}\n\nexport interface ReconcileManifestFile extends ReconcileFileState {\n memory?: ReconcileMemoryIdentity;\n /** Present on sha-only (negative) entries so an upgrade re-parses them. */\n normalizerVersion?: number;\n identityResolutionVersion?: number;\n}\n\ntype ActiveFactManifestFile = ReconcileManifestFile & { memory: ReconcileMemoryIdentity };\n\nexport interface ReconcileManifest {\n format: typeof RECONCILE_MANIFEST_FORMAT;\n schemaVersion: typeof RECONCILE_MANIFEST_SCHEMA_VERSION;\n files: ReconcileManifestFile[];\n}\n\nexport type ReconcileMemoryParser = (raw: string) => { frontmatter: MemoryFrontmatter; content: string } | null;\n\nexport interface BuildReconcileManifestOptions {\n files: Iterable<ReconcileFileState>;\n readFile: (file: ReconcileFileState) => Promise<Buffer | string | null>;\n parseMemory: ReconcileMemoryParser;\n cachedFiles?: Iterable<ReconcileManifestFile>;\n citationTemplate?: string;\n}\n\nconst SHA256_PATTERN = /^[a-f0-9]{64}$/i;\nconst MEMORY_DIRS = new Set(RECALL_FALLBACK_DIRS);\n\nfunction isMemoryPath(filePath: string): boolean {\n if (!filePath.endsWith(\".md\")) return false;\n const segments = filePath.split(\"/\");\n let index = 0;\n if (segments[index] === \"cold\" || segments[index] === \"archive\") index += 1;\n return MEMORY_DIRS.has(segments[index] ?? \"\");\n}\n\nfunction parsedMemoryIdentity(\n filePath: string,\n raw: Buffer | string,\n parseMemory: ReconcileMemoryParser,\n citationTemplate: string\n): ReconcileMemoryIdentity | undefined {\n if (!isMemoryPath(filePath)) return undefined;\n const parsed = parseMemory(Buffer.isBuffer(raw) ? raw.toString(\"utf8\") : raw);\n if (!parsed?.frontmatter.id) return undefined;\n\n const storedHash =\n parsed.frontmatter.contentHash && SHA256_PATTERN.test(parsed.frontmatter.contentHash)\n ? parsed.frontmatter.contentHash.toLowerCase()\n : undefined;\n const candidates = storedContentIdentityCandidates(parsed.content, (content) =>\n stripCitationForTemplate(content, citationTemplate)\n );\n const bodyHash = ContentHashIndex.computeHash(candidates[0] ?? \"\");\n const currentMatch = candidates.find((content) => ContentHashIndex.computeHash(content) === storedHash);\n const legacyMatch = [...candidates].reverse().find((content) => computeLegacyContentHash(content) === storedHash);\n let contentHash: string;\n let contentHashAliases: string[] | undefined;\n if (currentMatch) {\n contentHash = ContentHashIndex.computeHash(currentMatch);\n } else if (legacyMatch && normalizeLegacyContent(legacyMatch).length > 0) {\n // A non-empty legacy equality is ambiguous (issue #2367): the persisted\n // hash may be an explicit contentHashSource identity that merely collides\n // with the body's ASCII skeleton under the lossy legacy normalizer, and\n // nothing in the record proves which it is. Keep the persisted hash as\n // the primary identity and expose the recovered current identity as an\n // alias so replicas carrying either form still collapse.\n contentHash = storedHash ?? bodyHash;\n const recovered = ContentHashIndex.computeHash(legacyMatch);\n if (recovered !== contentHash) contentHashAliases = [recovered];\n } else {\n // An EMPTY legacy skeleton identifies nothing (every non-ASCII body maps\n // to it), so preserving it would collapse unrelated records. Recovering\n // the current identity here is repair, not replacement.\n contentHash = legacyMatch ? ContentHashIndex.computeHash(legacyMatch) : (storedHash ?? bodyHash);\n }\n\n return {\n id: parsed.frontmatter.id,\n category: parsed.frontmatter.category,\n contentHash,\n ...(contentHashAliases ? { contentHashAliases } : {}),\n normalizerVersion: CONTENT_HASH_NORMALIZER_VERSION,\n identityResolutionVersion: IDENTITY_RESOLUTION_VERSION,\n status: inferMemoryStatus(parsed.frontmatter, filePath),\n };\n}\n\n/**\n * Stable fingerprint of the citation template that `parsedMemoryIdentity` uses\n * to strip inline attribution before hashing. A persisted identity cache is\n * only reusable while this matches: identical file content under a different\n * template yields a different `contentHash`, which would silently change\n * duplicate and conflict decisions on a warm plan.\n */\nexport function citationTemplateFingerprint(citationTemplate?: string): string {\n return createHash(\"sha256\")\n .update(citationTemplate ?? DEFAULT_CITATION_FORMAT)\n .digest(\"hex\")\n .slice(0, 16);\n}\n\n/**\n * Structural guard for identities read back from an on-disk cache. A cache file\n * is untrusted JSON: without this an entry carrying `memory: null` survives the\n * loader's cast and then throws when the hit path dereferences\n * `memory.normalizerVersion`, aborting a manifest build that should instead\n * fall back to a cold parse.\n */\nexport function isReconcileMemoryIdentity(value: unknown): value is ReconcileMemoryIdentity {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const memory = value as Record<string, unknown>;\n if (typeof memory.id !== \"string\") return false;\n if (typeof memory.category !== \"string\") return false;\n if (typeof memory.contentHash !== \"string\" || !SHA256_PATTERN.test(memory.contentHash)) return false;\n if (typeof memory.status !== \"string\") return false;\n if (memory.normalizerVersion !== undefined && typeof memory.normalizerVersion !== \"number\") return false;\n if (memory.identityResolutionVersion !== undefined && typeof memory.identityResolutionVersion !== \"number\") {\n return false;\n }\n if (\n memory.contentHashAliases !== undefined &&\n (!Array.isArray(memory.contentHashAliases) ||\n memory.contentHashAliases.some((alias) => typeof alias !== \"string\" || !SHA256_PATTERN.test(alias)))\n ) {\n return false;\n }\n return true;\n}\n\n/** A cache hit is valid only when the entry was built by the current parser.\n * Positive hits carry versions on `memory`; sha-only negatives stamp the same\n * versions on the entry itself. Unversioned negatives are pre-upgrade leftovers\n * and must miss so a newer parser can recognize an identity it previously skipped. */\nexport function isCachedIdentityReusable(cached: ReconcileManifestFile): boolean {\n if (cached.memory !== undefined) {\n return (\n cached.memory.normalizerVersion === CONTENT_HASH_NORMALIZER_VERSION &&\n cached.memory.identityResolutionVersion === IDENTITY_RESOLUTION_VERSION\n );\n }\n return (\n cached.normalizerVersion === CONTENT_HASH_NORMALIZER_VERSION &&\n cached.identityResolutionVersion === IDENTITY_RESOLUTION_VERSION\n );\n}\n\nexport async function buildReconcileManifestFile(\n file: ReconcileFileState,\n readFile: (file: ReconcileFileState) => Promise<Buffer | string | null>,\n parseMemory: ReconcileMemoryParser,\n citationTemplate = DEFAULT_CITATION_FORMAT\n): Promise<ReconcileManifestFile> {\n let raw: Buffer | string | null = null;\n let readFailed = false;\n if (isMemoryPath(file.path)) {\n try {\n raw = await readFile(file);\n } catch {\n readFailed = true;\n raw = null;\n }\n }\n if (raw !== null && createHash(\"sha256\").update(raw).digest(\"hex\") !== file.sha256.toLowerCase()) {\n raw = null;\n }\n const memory = raw === null ? undefined : parsedMemoryIdentity(file.path, raw, parseMemory, citationTemplate);\n // A thrown read is not a negative identity. Stamping versions here would\n // make the next warm cycle treat the failure as \"this file has no id\".\n if (readFailed) return { ...file };\n return {\n ...file,\n ...(memory\n ? { memory }\n : {\n normalizerVersion: CONTENT_HASH_NORMALIZER_VERSION,\n identityResolutionVersion: IDENTITY_RESOLUTION_VERSION,\n }),\n };\n}\n\n/** Read-batch size for manifest builds. Uncached files are independent (a\n * per-file read + sha256 + frontmatter parse); processing them in bounded\n * batches amortizes the per-file promise/async-hook overhead that dominates\n * boot-scale corpus builds (measured: ~66% of CPU in async_hooks._propagate +\n * GC at ~100k files) and overlaps IO waits, while the bound keeps memory flat.\n * Order is preserved: results land in input order regardless of completion\n * order, so the manifest output is byte-identical to the sequential form. */\nconst MANIFEST_BUILD_BATCH_SIZE = 50;\n\nexport async function buildReconcileManifest(options: BuildReconcileManifestOptions): Promise<ReconcileManifest> {\n const cachedByPath = new Map<string, ReconcileManifestFile>();\n for (const cached of options.cachedFiles ?? []) {\n cachedByPath.set(cached.path, cached);\n }\n\n const allFiles = [...options.files];\n // Every result — cache hit or rebuild — is stored at its own input index.\n // Pushing hits onto a dense array while rebuilds are assigned by index\n // silently drops entries whenever a miss precedes a hit: the rebuild lands\n // on the slot the hit already occupied.\n const files: ReconcileManifestFile[] = new Array(allFiles.length);\n // Cache hits stay on a synchronous fast path (no promise allocation, no\n // Promise.all — a fully-cached rebuild must not regress); only the uncached\n // entries ride the bounded batches.\n const uncached: Array<{ index: number; file: ReconcileFileState }> = [];\n for (let i = 0; i < allFiles.length; i += 1) {\n const file = allFiles[i]!;\n const cached = cachedByPath.get(file.path);\n if (\n cached !== undefined &&\n cached.sha256.toLowerCase() === file.sha256.toLowerCase() &&\n isCachedIdentityReusable(cached)\n ) {\n files[i] = {\n ...file,\n ...(cached.memory\n ? { memory: cached.memory }\n : {\n normalizerVersion: cached.normalizerVersion,\n identityResolutionVersion: cached.identityResolutionVersion,\n }),\n };\n } else {\n uncached.push({ index: i, file });\n }\n }\n for (let i = 0; i < uncached.length; i += MANIFEST_BUILD_BATCH_SIZE) {\n const batch = uncached.slice(i, i + MANIFEST_BUILD_BATCH_SIZE);\n const results = await Promise.all(\n batch.map(({ file }) =>\n buildReconcileManifestFile(file, options.readFile, options.parseMemory, options.citationTemplate)\n )\n );\n for (let j = 0; j < batch.length; j += 1) {\n files[batch[j]!.index] = results[j]!;\n }\n }\n files.sort((left, right) => (left.path < right.path ? -1 : left.path > right.path ? 1 : 0));\n return {\n format: RECONCILE_MANIFEST_FORMAT,\n schemaVersion: RECONCILE_MANIFEST_SCHEMA_VERSION,\n files,\n };\n}\n\nfunction activeFactByPath(manifest: ReconcileManifest | undefined): Map<string, ActiveFactManifestFile> {\n const result = new Map<string, ActiveFactManifestFile>();\n for (const file of manifest?.files ?? []) {\n if (file.memory?.category === \"fact\" && file.memory.status === \"active\") {\n result.set(file.path, file as ActiveFactManifestFile);\n }\n }\n return result;\n}\n\nfunction memoryIdentityHashes(memory: ReconcileMemoryIdentity): string[] {\n return [memory.contentHash, ...(memory.contentHashAliases ?? [])];\n}\n\nfunction contentHashRows(files: Iterable<ActiveFactManifestFile>, contentHash: string): ContentHashPathEntry[] {\n const rows: ContentHashPathEntry[] = [];\n for (const file of files) {\n rows.push({ path: file.path, contentHash });\n }\n return rows;\n}\n\nfunction classifySemanticChange(\n current: ReconcileSemanticAgreement,\n prior: ReconcileSemanticAgreement | undefined\n): ReconcileSemanticChange {\n if (!prior) return \"unchanged\";\n const localChanged = current.local.sha256 !== prior.local.sha256;\n const peerChanged = current.peer.sha256 !== prior.peer.sha256;\n if (localChanged && peerChanged) return \"both_modified\";\n if (localChanged) return \"local_changed\";\n if (peerChanged) return \"peer_changed\";\n return \"unchanged\";\n}\n\nexport function collapseActiveFactDuplicates(\n plan: ReconcilePlan,\n localManifests: ReadonlyMap<string, ReconcileManifest>,\n peerManifests: ReadonlyMap<string, ReconcileManifest>,\n priorSemanticAgreements?: ReadonlyMap<string, readonly ReconcileSemanticAgreement[]>\n): ReconcilePlan {\n const entriesByNamespace = new Map<string, ReconcilePlanEntry[]>();\n for (const entry of plan.entries) {\n const entries = entriesByNamespace.get(entry.namespace) ?? [];\n entries.push({ ...entry });\n entriesByNamespace.set(entry.namespace, entries);\n }\n\n let changed = false;\n for (const namespace of new Set([...localManifests.keys(), ...peerManifests.keys()])) {\n const entries = entriesByNamespace.get(namespace) ?? [];\n const localManifest = localManifests.get(namespace);\n const peerManifest = peerManifests.get(namespace);\n const localByPath = activeFactByPath(localManifest);\n const peerByPath = activeFactByPath(peerManifest);\n const localFilesByPath = new Map((localManifest?.files ?? []).map((file) => [file.path, file]));\n const peerFilesByPath = new Map((peerManifest?.files ?? []).map((file) => [file.path, file]));\n const priorSemanticByPathPair = new Map(\n (priorSemanticAgreements?.get(namespace) ?? []).map((agreement) => [semanticAgreementKey(agreement), agreement])\n );\n const localByHash = new Map<string, ActiveFactManifestFile[]>();\n const peerByHash = new Map<string, ActiveFactManifestFile[]>();\n\n for (const file of localByPath.values()) {\n for (const hash of memoryIdentityHashes(file.memory)) {\n const bucket = localByHash.get(hash) ?? [];\n bucket.push(file);\n localByHash.set(hash, bucket);\n }\n }\n for (const file of peerByPath.values()) {\n for (const hash of memoryIdentityHashes(file.memory)) {\n const bucket = peerByHash.get(hash) ?? [];\n bucket.push(file);\n peerByHash.set(hash, bucket);\n }\n }\n\n const removed = new Set<ReconcilePlanEntry>();\n const replacements: ReconcilePlanEntry[] = [];\n const processedPathPairs = new Set<string>();\n for (const hash of new Set([...localByHash.keys(), ...peerByHash.keys()])) {\n const localCandidates = (localByHash.get(hash) ?? []).filter((file) => {\n const opposite = peerFilesByPath.get(file.path);\n const activeOpposite = peerByPath.get(file.path);\n return (\n opposite === undefined ||\n (activeOpposite !== undefined && memoryIdentityHashes(activeOpposite.memory).includes(hash))\n );\n });\n const peerCandidates = (peerByHash.get(hash) ?? []).filter((file) => {\n const opposite = localFilesByPath.get(file.path);\n const activeOpposite = localByPath.get(file.path);\n return (\n opposite === undefined ||\n (activeOpposite !== undefined && memoryIdentityHashes(activeOpposite.memory).includes(hash))\n );\n });\n const localPath = ContentHashIndex.resolvePathByHash(hash, contentHashRows(localCandidates, hash));\n const peerPath = ContentHashIndex.resolvePathByHash(hash, contentHashRows(peerCandidates, hash));\n\n if (localPath && peerPath && localPath !== peerPath) {\n const pathPair = `${localPath}\\0${peerPath}`;\n if (processedPathPairs.has(pathPair)) continue;\n processedPathPairs.add(pathPair);\n const localFile = localByPath.get(localPath);\n const peerFile = peerByPath.get(peerPath);\n if (!localFile || !peerFile) continue;\n const duplicatePaths = new Set([\n ...localCandidates.map((file) => file.path),\n ...peerCandidates.map((file) => file.path),\n ]);\n const authoritativeSamePathEntries = new Set(\n entries.filter(\n (entry) =>\n duplicatePaths.has(entry.path) &&\n localFilesByPath.has(entry.path) &&\n peerFilesByPath.has(entry.path) &&\n entry.action !== \"identical\"\n )\n );\n if (authoritativeSamePathEntries.size > 0) {\n for (const entry of entries) {\n if (\n duplicatePaths.has(entry.path) &&\n !authoritativeSamePathEntries.has(entry) &&\n (entry.action === \"pull\" || entry.action === \"push\" || entry.action === \"identical\")\n ) {\n removed.add(entry);\n changed = true;\n }\n }\n continue;\n }\n const unsafeEntry = entries.some(\n (entry) => duplicatePaths.has(entry.path) && (entry.action === \"suppress\" || entry.action === \"conflict\")\n );\n if (unsafeEntry) continue;\n for (const entry of entries) {\n if (\n duplicatePaths.has(entry.path) &&\n (entry.action === \"pull\" || entry.action === \"push\" || entry.action === \"identical\")\n ) {\n removed.add(entry);\n }\n }\n const semanticAgreement: ReconcileSemanticAgreement = {\n local: { path: localPath, sha256: localFile.sha256 },\n peer: { path: peerPath, sha256: peerFile.sha256 },\n };\n replacements.push({\n path: localPath < peerPath ? localPath : peerPath,\n namespace,\n action: \"identical\",\n reason: \"semantic_duplicate\",\n semanticAgreement,\n semanticChange: classifySemanticChange(\n semanticAgreement,\n priorSemanticByPathPair.get(semanticAgreementKey(semanticAgreement))\n ),\n });\n changed = true;\n continue;\n }\n\n const sameSideEntries = entries.filter((entry) => {\n if (localPath && entry.reason === \"local_only\") {\n return localCandidates.some((file) => file.path === entry.path);\n }\n if (peerPath && entry.reason === \"peer_only\") {\n return peerCandidates.some((file) => file.path === entry.path);\n }\n return false;\n });\n const canonicalPath = localPath ?? peerPath;\n const hasSharedCanonical = localPath !== undefined && localPath === peerPath;\n if (!canonicalPath || sameSideEntries.length === 0 || (!hasSharedCanonical && sameSideEntries.length < 2)) {\n continue;\n }\n for (const entry of sameSideEntries) {\n if (entry.path !== canonicalPath) {\n removed.add(entry);\n changed = true;\n }\n }\n }\n\n if (removed.size > 0 || replacements.length > 0) {\n entriesByNamespace.set(\n namespace,\n [...entries.filter((entry) => !removed.has(entry)), ...replacements].sort(compareReconcilePlanEntries)\n );\n }\n }\n\n if (!changed) return plan;\n const entries = [...entriesByNamespace.values()].flat().sort(compareReconcilePlanEntries);\n return {\n entries,\n byNamespace: summarizeReconcilePlan(entries),\n converged: entries.every((entry) => entry.action === \"identical\"),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,kBAAkB;AAmBpB,IAAM,4BAA4B;AAClC,IAAM,oCAAoC;AAC1C,IAAM,kCAAkC;AASxC,IAAM,8BAA8B;AA4C3C,IAAM,iBAAiB;AACvB,IAAM,cAAc,IAAI,IAAI,oBAAoB;AAEhD,SAAS,aAAa,UAA2B;AAC/C,MAAI,CAAC,SAAS,SAAS,KAAK,EAAG,QAAO;AACtC,QAAM,WAAW,SAAS,MAAM,GAAG;AACnC,MAAI,QAAQ;AACZ,MAAI,SAAS,KAAK,MAAM,UAAU,SAAS,KAAK,MAAM,UAAW,UAAS;AAC1E,SAAO,YAAY,IAAI,SAAS,KAAK,KAAK,EAAE;AAC9C;AAEA,SAAS,qBACP,UACA,KACA,aACA,kBACqC;AACrC,MAAI,CAAC,aAAa,QAAQ,EAAG,QAAO;AACpC,QAAM,SAAS,YAAY,OAAO,SAAS,GAAG,IAAI,IAAI,SAAS,MAAM,IAAI,GAAG;AAC5E,MAAI,CAAC,QAAQ,YAAY,GAAI,QAAO;AAEpC,QAAM,aACJ,OAAO,YAAY,eAAe,eAAe,KAAK,OAAO,YAAY,WAAW,IAChF,OAAO,YAAY,YAAY,YAAY,IAC3C;AACN,QAAM,aAAa;AAAA,IAAgC,OAAO;AAAA,IAAS,CAAC,YAClE,yBAAyB,SAAS,gBAAgB;AAAA,EACpD;AACA,QAAM,WAAW,iBAAiB,YAAY,WAAW,CAAC,KAAK,EAAE;AACjE,QAAM,eAAe,WAAW,KAAK,CAAC,YAAY,iBAAiB,YAAY,OAAO,MAAM,UAAU;AACtG,QAAM,cAAc,CAAC,GAAG,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,yBAAyB,OAAO,MAAM,UAAU;AAChH,MAAI;AACJ,MAAI;AACJ,MAAI,cAAc;AAChB,kBAAc,iBAAiB,YAAY,YAAY;AAAA,EACzD,WAAW,eAAe,uBAAuB,WAAW,EAAE,SAAS,GAAG;AAOxE,kBAAc,cAAc;AAC5B,UAAM,YAAY,iBAAiB,YAAY,WAAW;AAC1D,QAAI,cAAc,YAAa,sBAAqB,CAAC,SAAS;AAAA,EAChE,OAAO;AAIL,kBAAc,cAAc,iBAAiB,YAAY,WAAW,IAAK,cAAc;AAAA,EACzF;AAEA,SAAO;AAAA,IACL,IAAI,OAAO,YAAY;AAAA,IACvB,UAAU,OAAO,YAAY;AAAA,IAC7B;AAAA,IACA,GAAI,qBAAqB,EAAE,mBAAmB,IAAI,CAAC;AAAA,IACnD,mBAAmB;AAAA,IACnB,2BAA2B;AAAA,IAC3B,QAAQ,kBAAkB,OAAO,aAAa,QAAQ;AAAA,EACxD;AACF;AASO,SAAS,4BAA4B,kBAAmC;AAC7E,SAAO,WAAW,QAAQ,EACvB,OAAO,oBAAoB,uBAAuB,EAClD,OAAO,KAAK,EACZ,MAAM,GAAG,EAAE;AAChB;AASO,SAAS,0BAA0B,OAAkD;AAC1F,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,EAAG,QAAO;AACxE,QAAM,SAAS;AACf,MAAI,OAAO,OAAO,OAAO,SAAU,QAAO;AAC1C,MAAI,OAAO,OAAO,aAAa,SAAU,QAAO;AAChD,MAAI,OAAO,OAAO,gBAAgB,YAAY,CAAC,eAAe,KAAK,OAAO,WAAW,EAAG,QAAO;AAC/F,MAAI,OAAO,OAAO,WAAW,SAAU,QAAO;AAC9C,MAAI,OAAO,sBAAsB,UAAa,OAAO,OAAO,sBAAsB,SAAU,QAAO;AACnG,MAAI,OAAO,8BAA8B,UAAa,OAAO,OAAO,8BAA8B,UAAU;AAC1G,WAAO;AAAA,EACT;AACA,MACE,OAAO,uBAAuB,WAC7B,CAAC,MAAM,QAAQ,OAAO,kBAAkB,KACvC,OAAO,mBAAmB,KAAK,CAAC,UAAU,OAAO,UAAU,YAAY,CAAC,eAAe,KAAK,KAAK,CAAC,IACpG;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAMO,SAAS,yBAAyB,QAAwC;AAC/E,MAAI,OAAO,WAAW,QAAW;AAC/B,WACE,OAAO,OAAO,sBAAsB,mCACpC,OAAO,OAAO,8BAA8B;AAAA,EAEhD;AACA,SACE,OAAO,sBAAsB,mCAC7B,OAAO,8BAA8B;AAEzC;AAEA,eAAsB,2BACpB,MACA,UACA,aACA,mBAAmB,yBACa;AAChC,MAAI,MAA8B;AAClC,MAAI,aAAa;AACjB,MAAI,aAAa,KAAK,IAAI,GAAG;AAC3B,QAAI;AACF,YAAM,MAAM,SAAS,IAAI;AAAA,IAC3B,QAAQ;AACN,mBAAa;AACb,YAAM;AAAA,IACR;AAAA,EACF;AACA,MAAI,QAAQ,QAAQ,WAAW,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,KAAK,MAAM,KAAK,OAAO,YAAY,GAAG;AAChG,UAAM;AAAA,EACR;AACA,QAAM,SAAS,QAAQ,OAAO,SAAY,qBAAqB,KAAK,MAAM,KAAK,aAAa,gBAAgB;AAG5G,MAAI,WAAY,QAAO,EAAE,GAAG,KAAK;AACjC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAI,SACA,EAAE,OAAO,IACT;AAAA,MACE,mBAAmB;AAAA,MACnB,2BAA2B;AAAA,IAC7B;AAAA,EACN;AACF;AASA,IAAM,4BAA4B;AAElC,eAAsB,uBAAuB,SAAoE;AAC/G,QAAM,eAAe,oBAAI,IAAmC;AAC5D,aAAW,UAAU,QAAQ,eAAe,CAAC,GAAG;AAC9C,iBAAa,IAAI,OAAO,MAAM,MAAM;AAAA,EACtC;AAEA,QAAM,WAAW,CAAC,GAAG,QAAQ,KAAK;AAKlC,QAAM,QAAiC,IAAI,MAAM,SAAS,MAAM;AAIhE,QAAM,WAA+D,CAAC;AACtE,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,GAAG;AAC3C,UAAM,OAAO,SAAS,CAAC;AACvB,UAAM,SAAS,aAAa,IAAI,KAAK,IAAI;AACzC,QACE,WAAW,UACX,OAAO,OAAO,YAAY,MAAM,KAAK,OAAO,YAAY,KACxD,yBAAyB,MAAM,GAC/B;AACA,YAAM,CAAC,IAAI;AAAA,QACT,GAAG;AAAA,QACH,GAAI,OAAO,SACP,EAAE,QAAQ,OAAO,OAAO,IACxB;AAAA,UACE,mBAAmB,OAAO;AAAA,UAC1B,2BAA2B,OAAO;AAAA,QACpC;AAAA,MACN;AAAA,IACF,OAAO;AACL,eAAS,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;AAAA,IAClC;AAAA,EACF;AACA,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,2BAA2B;AACnE,UAAM,QAAQ,SAAS,MAAM,GAAG,IAAI,yBAAyB;AAC7D,UAAM,UAAU,MAAM,QAAQ;AAAA,MAC5B,MAAM;AAAA,QAAI,CAAC,EAAE,KAAK,MAChB,2BAA2B,MAAM,QAAQ,UAAU,QAAQ,aAAa,QAAQ,gBAAgB;AAAA,MAClG;AAAA,IACF;AACA,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;AACxC,YAAM,MAAM,CAAC,EAAG,KAAK,IAAI,QAAQ,CAAC;AAAA,IACpC;AAAA,EACF;AACA,QAAM,KAAK,CAAC,MAAM,UAAW,KAAK,OAAO,MAAM,OAAO,KAAK,KAAK,OAAO,MAAM,OAAO,IAAI,CAAE;AAC1F,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,eAAe;AAAA,IACf;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,UAA8E;AACtG,QAAM,SAAS,oBAAI,IAAoC;AACvD,aAAW,QAAQ,UAAU,SAAS,CAAC,GAAG;AACxC,QAAI,KAAK,QAAQ,aAAa,UAAU,KAAK,OAAO,WAAW,UAAU;AACvE,aAAO,IAAI,KAAK,MAAM,IAA8B;AAAA,IACtD;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBAAqB,QAA2C;AACvE,SAAO,CAAC,OAAO,aAAa,GAAI,OAAO,sBAAsB,CAAC,CAAE;AAClE;AAEA,SAAS,gBAAgB,OAAyC,aAA6C;AAC7G,QAAM,OAA+B,CAAC;AACtC,aAAW,QAAQ,OAAO;AACxB,SAAK,KAAK,EAAE,MAAM,KAAK,MAAM,YAAY,CAAC;AAAA,EAC5C;AACA,SAAO;AACT;AAEA,SAAS,uBACP,SACA,OACyB;AACzB,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,eAAe,QAAQ,MAAM,WAAW,MAAM,MAAM;AAC1D,QAAM,cAAc,QAAQ,KAAK,WAAW,MAAM,KAAK;AACvD,MAAI,gBAAgB,YAAa,QAAO;AACxC,MAAI,aAAc,QAAO;AACzB,MAAI,YAAa,QAAO;AACxB,SAAO;AACT;AAEO,SAAS,6BACd,MACA,gBACA,eACA,yBACe;AACf,QAAM,qBAAqB,oBAAI,IAAkC;AACjE,aAAW,SAAS,KAAK,SAAS;AAChC,UAAMA,WAAU,mBAAmB,IAAI,MAAM,SAAS,KAAK,CAAC;AAC5D,IAAAA,SAAQ,KAAK,EAAE,GAAG,MAAM,CAAC;AACzB,uBAAmB,IAAI,MAAM,WAAWA,QAAO;AAAA,EACjD;AAEA,MAAI,UAAU;AACd,aAAW,aAAa,oBAAI,IAAI,CAAC,GAAG,eAAe,KAAK,GAAG,GAAG,cAAc,KAAK,CAAC,CAAC,GAAG;AACpF,UAAMA,WAAU,mBAAmB,IAAI,SAAS,KAAK,CAAC;AACtD,UAAM,gBAAgB,eAAe,IAAI,SAAS;AAClD,UAAM,eAAe,cAAc,IAAI,SAAS;AAChD,UAAM,cAAc,iBAAiB,aAAa;AAClD,UAAM,aAAa,iBAAiB,YAAY;AAChD,UAAM,mBAAmB,IAAI,KAAK,eAAe,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC;AAC9F,UAAM,kBAAkB,IAAI,KAAK,cAAc,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC;AAC5F,UAAM,0BAA0B,IAAI;AAAA,OACjC,yBAAyB,IAAI,SAAS,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,SAAS,GAAG,SAAS,CAAC;AAAA,IACjH;AACA,UAAM,cAAc,oBAAI,IAAsC;AAC9D,UAAM,aAAa,oBAAI,IAAsC;AAE7D,eAAW,QAAQ,YAAY,OAAO,GAAG;AACvC,iBAAW,QAAQ,qBAAqB,KAAK,MAAM,GAAG;AACpD,cAAM,SAAS,YAAY,IAAI,IAAI,KAAK,CAAC;AACzC,eAAO,KAAK,IAAI;AAChB,oBAAY,IAAI,MAAM,MAAM;AAAA,MAC9B;AAAA,IACF;AACA,eAAW,QAAQ,WAAW,OAAO,GAAG;AACtC,iBAAW,QAAQ,qBAAqB,KAAK,MAAM,GAAG;AACpD,cAAM,SAAS,WAAW,IAAI,IAAI,KAAK,CAAC;AACxC,eAAO,KAAK,IAAI;AAChB,mBAAW,IAAI,MAAM,MAAM;AAAA,MAC7B;AAAA,IACF;AAEA,UAAM,UAAU,oBAAI,IAAwB;AAC5C,UAAM,eAAqC,CAAC;AAC5C,UAAM,qBAAqB,oBAAI,IAAY;AAC3C,eAAW,QAAQ,oBAAI,IAAI,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,WAAW,KAAK,CAAC,CAAC,GAAG;AACzE,YAAM,mBAAmB,YAAY,IAAI,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS;AACrE,cAAM,WAAW,gBAAgB,IAAI,KAAK,IAAI;AAC9C,cAAM,iBAAiB,WAAW,IAAI,KAAK,IAAI;AAC/C,eACE,aAAa,UACZ,mBAAmB,UAAa,qBAAqB,eAAe,MAAM,EAAE,SAAS,IAAI;AAAA,MAE9F,CAAC;AACD,YAAM,kBAAkB,WAAW,IAAI,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS;AACnE,cAAM,WAAW,iBAAiB,IAAI,KAAK,IAAI;AAC/C,cAAM,iBAAiB,YAAY,IAAI,KAAK,IAAI;AAChD,eACE,aAAa,UACZ,mBAAmB,UAAa,qBAAqB,eAAe,MAAM,EAAE,SAAS,IAAI;AAAA,MAE9F,CAAC;AACD,YAAM,YAAY,iBAAiB,kBAAkB,MAAM,gBAAgB,iBAAiB,IAAI,CAAC;AACjG,YAAM,WAAW,iBAAiB,kBAAkB,MAAM,gBAAgB,gBAAgB,IAAI,CAAC;AAE/F,UAAI,aAAa,YAAY,cAAc,UAAU;AACnD,cAAM,WAAW,GAAG,SAAS,KAAK,QAAQ;AAC1C,YAAI,mBAAmB,IAAI,QAAQ,EAAG;AACtC,2BAAmB,IAAI,QAAQ;AAC/B,cAAM,YAAY,YAAY,IAAI,SAAS;AAC3C,cAAM,WAAW,WAAW,IAAI,QAAQ;AACxC,YAAI,CAAC,aAAa,CAAC,SAAU;AAC7B,cAAM,iBAAiB,oBAAI,IAAI;AAAA,UAC7B,GAAG,gBAAgB,IAAI,CAAC,SAAS,KAAK,IAAI;AAAA,UAC1C,GAAG,eAAe,IAAI,CAAC,SAAS,KAAK,IAAI;AAAA,QAC3C,CAAC;AACD,cAAM,+BAA+B,IAAI;AAAA,UACvCA,SAAQ;AAAA,YACN,CAAC,UACC,eAAe,IAAI,MAAM,IAAI,KAC7B,iBAAiB,IAAI,MAAM,IAAI,KAC/B,gBAAgB,IAAI,MAAM,IAAI,KAC9B,MAAM,WAAW;AAAA,UACrB;AAAA,QACF;AACA,YAAI,6BAA6B,OAAO,GAAG;AACzC,qBAAW,SAASA,UAAS;AAC3B,gBACE,eAAe,IAAI,MAAM,IAAI,KAC7B,CAAC,6BAA6B,IAAI,KAAK,MACtC,MAAM,WAAW,UAAU,MAAM,WAAW,UAAU,MAAM,WAAW,cACxE;AACA,sBAAQ,IAAI,KAAK;AACjB,wBAAU;AAAA,YACZ;AAAA,UACF;AACA;AAAA,QACF;AACA,cAAM,cAAcA,SAAQ;AAAA,UAC1B,CAAC,UAAU,eAAe,IAAI,MAAM,IAAI,MAAM,MAAM,WAAW,cAAc,MAAM,WAAW;AAAA,QAChG;AACA,YAAI,YAAa;AACjB,mBAAW,SAASA,UAAS;AAC3B,cACE,eAAe,IAAI,MAAM,IAAI,MAC5B,MAAM,WAAW,UAAU,MAAM,WAAW,UAAU,MAAM,WAAW,cACxE;AACA,oBAAQ,IAAI,KAAK;AAAA,UACnB;AAAA,QACF;AACA,cAAM,oBAAgD;AAAA,UACpD,OAAO,EAAE,MAAM,WAAW,QAAQ,UAAU,OAAO;AAAA,UACnD,MAAM,EAAE,MAAM,UAAU,QAAQ,SAAS,OAAO;AAAA,QAClD;AACA,qBAAa,KAAK;AAAA,UAChB,MAAM,YAAY,WAAW,YAAY;AAAA,UACzC;AAAA,UACA,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR;AAAA,UACA,gBAAgB;AAAA,YACd;AAAA,YACA,wBAAwB,IAAI,qBAAqB,iBAAiB,CAAC;AAAA,UACrE;AAAA,QACF,CAAC;AACD,kBAAU;AACV;AAAA,MACF;AAEA,YAAM,kBAAkBA,SAAQ,OAAO,CAAC,UAAU;AAChD,YAAI,aAAa,MAAM,WAAW,cAAc;AAC9C,iBAAO,gBAAgB,KAAK,CAAC,SAAS,KAAK,SAAS,MAAM,IAAI;AAAA,QAChE;AACA,YAAI,YAAY,MAAM,WAAW,aAAa;AAC5C,iBAAO,eAAe,KAAK,CAAC,SAAS,KAAK,SAAS,MAAM,IAAI;AAAA,QAC/D;AACA,eAAO;AAAA,MACT,CAAC;AACD,YAAM,gBAAgB,aAAa;AACnC,YAAM,qBAAqB,cAAc,UAAa,cAAc;AACpE,UAAI,CAAC,iBAAiB,gBAAgB,WAAW,KAAM,CAAC,sBAAsB,gBAAgB,SAAS,GAAI;AACzG;AAAA,MACF;AACA,iBAAW,SAAS,iBAAiB;AACnC,YAAI,MAAM,SAAS,eAAe;AAChC,kBAAQ,IAAI,KAAK;AACjB,oBAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAEA,QAAI,QAAQ,OAAO,KAAK,aAAa,SAAS,GAAG;AAC/C,yBAAmB;AAAA,QACjB;AAAA,QACA,CAAC,GAAGA,SAAQ,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,GAAG,YAAY,EAAE,KAAK,2BAA2B;AAAA,MACvG;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,QAAS,QAAO;AACrB,QAAM,UAAU,CAAC,GAAG,mBAAmB,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,2BAA2B;AACxF,SAAO;AAAA,IACL;AAAA,IACA,aAAa,uBAAuB,OAAO;AAAA,IAC3C,WAAW,QAAQ,MAAM,CAAC,UAAU,MAAM,WAAW,WAAW;AAAA,EAClE;AACF;","names":["entries"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/source-agent-qualifier.ts"],"sourcesContent":["/**\n * Source-agent qualifier helpers for extraction (#2183).\n *\n * Pure leaf module: imports only types and sibling leaf/orchestration helpers,\n * never `extraction.ts`, so it introduces no cycle (extraction-run.ts only\n * type-imports extraction.ts).\n */\nimport { resolvePipelineProcessingCapabilities } from \"./capabilities.js\";\nimport { applyExtractionSourceGrounding } from \"./extraction-source-grounding.js\";\nimport type { ExtractionGroundingRoleSources } from \"./extraction-source-grounding.js\";\nimport { isValidConnectorId } from \"./connectors/index.js\";\nimport { CONNECTOR_LABEL_MAX_LENGTH, knownConnectorIds } from \"./connectors/label.js\";\nimport { deriveSourceConnector } from \"./orchestration/extraction-run.js\";\nimport type { BufferTurn, ExtractionResult, PluginConfig } from \"./types.js\";\n\n\nexport function resolveSourceConnector(turns: readonly BufferTurn[]): string | undefined {\n const contributing = turns.filter((turn) => turn.extractionContextOnly !== true);\n const derived = deriveSourceConnector(contributing);\n if (derived === undefined || !isValidConnectorId(derived)) return undefined;\n return /[\\u0000-\\u001F\\u007F]/.test(derived) ? undefined : derived;\n}\n\n// Same bound as the recall renderer (CONNECTOR_LABEL_MAX_LENGTH) but a DIFFERENT\n// policy: recall TRUNCATES past the bound (a truncated display label cannot\n// mislead), while the prompt SUPPRESSES (a truncated id could collide with a\n// different connector). Do not \"fix\" this inconsistency — it is deliberate.\nexport function headerConnector(connector: string | undefined): string | undefined {\n return connector !== undefined && connector.length <= CONNECTOR_LABEL_MAX_LENGTH ? connector : undefined;\n}\n\nexport function renderExtractionConversation(\n boundedTurns: readonly BufferTurn[],\n sourceConnector: string | undefined,\n): { conversation: string; renderedConversation: string } {\n const renderedConversation = boundedTurns\n .map((t) => `[${t.extractionContextOnly === true ? `context ${t.role}` : t.role}] ${t.content}`)\n .join(\"\\n\\n\");\n const conversation = sourceConnector === undefined\n ? renderedConversation\n : `Source agent: ${sourceConnector}\\n\\nTool and command instructions in this conversation apply to the ${sourceConnector} agent unless they are clearly universal.\\n\\n${renderedConversation}`;\n return { conversation, renderedConversation };\n}\n\nexport interface ExtractionGroundingContext {\n groundingSource: string;\n assertionSource: string;\n roleAssertionSources?: ExtractionGroundingRoleSources;\n messageTimestamp: Date | undefined;\n sourceConnector?: string;\n /** Input came from an always-on recorder (issue #2294); the proactive\n * second pass reads it so its prompts carry the same media warning. */\n ambientCapture?: boolean;\n scopeClassificationEnabled?: boolean;\n}\n\nexport function applyGroundingWithConnector(\n config: PluginConfig,\n result: ExtractionResult,\n ctx: ExtractionGroundingContext,\n): ExtractionResult {\n const caps = resolvePipelineProcessingCapabilities(config);\n const options = { sourceGrounding: caps.sourceGrounding, anchorTemporalExpressions: caps.delinearize };\n const known = buildKnownConnectors(ctx.sourceConnector);\n // Scope-forcing is decoupled from strip/restore (runs without a trusted\n // connector) but gated on the capability: flag off = byte-identical pre-#2183.\n const scoped = ctx.scopeClassificationEnabled === false\n ? result\n : forceProjectScopeOnAnyQualifier(result, known);\n if (ctx.sourceConnector === undefined) {\n return applyExtractionSourceGrounding(scoped, ctx.groundingSource, ctx.assertionSource, ctx.roleAssertionSources, ctx.messageTimestamp, options);\n }\n const prepared = prepareTrustedConnectorQualifier(scoped, ctx.sourceConnector, known);\n const grounded = applyExtractionSourceGrounding(prepared.result, ctx.groundingSource, ctx.assertionSource, ctx.roleAssertionSources, ctx.messageTimestamp, options);\n return restoreTrustedConnectorQualifier(grounded);\n}\n\nfunction buildKnownConnectors(trusted: string | undefined): Set<string> {\n const known = new Set<string>();\n for (const id of knownConnectorIds()) known.add(id.toLowerCase());\n if (trusted !== undefined) known.add(trusted.toLowerCase());\n return known;\n}\n\n/**\n * Parse a leading agent qualifier from fact text. ONE parser, ONE boundary\n * rule, ONE case policy (case-insensitive), ONE definition of \"agent\" (the name\n * must be a known connector ID). Returns the matched agent and the remaining\n * text, or undefined. Both scope-forcing and strip/restore consume this single\n * result so they can never disagree (#2183 round-11).\n */\nfunction parseLeadingQualifier(content: string, known: ReadonlySet<string>): { agent: string; rest: string } | undefined {\n const lower = content.toLowerCase();\n for (const lead of [\"in \", \"for \"]) {\n if (!lower.startsWith(lead)) continue;\n const m = lower.slice(lead.length).match(/^([a-z0-9][a-z0-9._-]*)\\s*,/u);\n if (m && known.has(m[1])) {\n const consumed = lead.length + m[0].length;\n return { agent: m[1], rest: content.slice(consumed).replace(/^[\\s,.;:]+/u, \"\") };\n }\n }\n const pm = lower.match(/^([a-z0-9][a-z0-9._-]*)'s(?![\\p{L}\\p{N}])/u);\n if (pm && known.has(pm[1])) {\n return { agent: pm[1], rest: content.slice(pm[0].length).replace(/^[\\s,.;:]+/u, \"\") };\n }\n return undefined;\n}\n\n/**\n * Force \"project\" scope on any fact whose content starts with a recognised\n * agent qualifier (a known connector name). A qualifier is evidence the fact is\n * agent-tied; which connector it names does not matter.\n */\nfunction forceProjectScopeOnAnyQualifier(result: ExtractionResult, known: ReadonlySet<string>): ExtractionResult {\n let any = false;\n const facts = result.facts.map((fact) => {\n if (fact.scope === \"project\") return fact;\n if (parseLeadingQualifier(fact.content, known) === undefined) return fact;\n any = true;\n return { ...fact, scope: \"project\" as const };\n });\n return any ? { ...result, facts } : result;\n}\n\nconst RESTORE_KEY = \"_qo\";\n\n/**\n * Strip the TRUSTED connector's qualifier for the grounding pass. Uses the same\n * parseLeadingQualifier as scope-forcing, but only strips when the matched agent\n * IS the trusted connector. Each stripped fact carries its original content\n * positionally for collision-free restore.\n */\nfunction prepareTrustedConnectorQualifier(\n result: ExtractionResult,\n trustedConnector: string,\n known: ReadonlySet<string>,\n): { result: ExtractionResult } {\n const trusted = trustedConnector.toLowerCase();\n const facts = result.facts.map((fact) => {\n const parsed = parseLeadingQualifier(fact.content, known);\n if (parsed === undefined || parsed.agent !== trusted) return fact;\n return { ...fact, content: parsed.rest, [RESTORE_KEY]: fact.content };\n }) as ExtractionResult[\"facts\"];\n return { result: { ...result, facts } };\n}\n\nfunction restoreTrustedConnectorQualifier(grounded: ExtractionResult): ExtractionResult {\n let touched = false;\n const facts = grounded.facts.map((fact) => {\n const record = fact as unknown as Record<string, unknown>;\n const original = record[RESTORE_KEY];\n if (typeof original !== \"string\") return fact;\n touched = true;\n const rest = { ...record };\n delete rest[RESTORE_KEY];\n return { ...rest, content: original } as ExtractionResult[\"facts\"][number];\n });\n return touched ? { ...grounded, facts } : grounded;\n}\n"],"mappings":"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","names":[]}
|