@remnic/core 9.30.0 → 9.31.0
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 +10 -10
- package/dist/access-admin-ops-surface.js +50 -44
- package/dist/access-authorization-probe.d.ts +10 -10
- package/dist/access-authorization-probe.js +51 -45
- package/dist/access-boundary.d.ts +13 -11
- package/dist/access-boundary.js +50 -44
- package/dist/access-cli.js +168 -123
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.d.ts +119 -0
- package/dist/access-extraction-force-flush.js +166 -0
- package/dist/access-health-types.d.ts +1 -1
- package/dist/access-http-lcm-compaction.d.ts +47 -13
- package/dist/access-http-lcm-compaction.js +7 -3
- package/dist/access-http-lifecycle-flush.d.ts +132 -0
- package/dist/access-http-lifecycle-flush.js +9 -0
- package/dist/access-http-lifecycle-flush.js.map +1 -0
- package/dist/access-http.d.ts +11 -10
- package/dist/access-http.js +66 -59
- package/dist/access-identity-continuity-surface.d.ts +8 -8
- package/dist/access-identity-continuity-surface.js +50 -44
- package/dist/access-lcm-surface.d.ts +10 -10
- package/dist/access-lcm-surface.js +50 -44
- package/dist/access-mcp-output-schemas.js +1 -1
- package/dist/access-mcp.d.ts +16 -10
- package/dist/access-mcp.js +58 -52
- package/dist/access-memory-search-fanout.d.ts +2 -2
- package/dist/{access-namespace-preflight-VfXssvoI.d.ts → access-namespace-preflight-D4vW97H1.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -3
- package/dist/access-namespace-preflight.js +50 -44
- package/dist/access-observe-helpers.d.ts +22 -0
- package/dist/access-observe-helpers.js +10 -0
- package/dist/access-observe-helpers.js.map +1 -0
- package/dist/access-observe-write-surface.d.ts +51 -47
- package/dist/access-observe-write-surface.js +50 -44
- package/dist/access-operations-batch.js +53 -47
- package/dist/access-operations.d.ts +11 -11
- package/dist/access-operations.js +55 -49
- package/dist/access-recall-concurrency.d.ts +10 -10
- package/dist/access-recall-concurrency.js +50 -44
- package/dist/access-recall-response.d.ts +10 -10
- package/dist/access-recall-response.js +50 -44
- package/dist/access-recall-surface.d.ts +10 -10
- package/dist/access-recall-surface.js +50 -44
- package/dist/access-schema.d.ts +37 -7
- package/dist/access-schema.js +5 -3
- package/dist/{access-service-B5RwVsTV.d.ts → access-service-B6PZ_xUL.d.ts} +44 -20
- package/dist/access-service-helpers.d.ts +113 -0
- package/dist/access-service-helpers.js +8 -0
- package/dist/access-service-helpers.js.map +1 -0
- package/dist/access-service.d.ts +10 -10
- package/dist/access-service.js +50 -44
- package/dist/access-surface-catalog.d.ts +10 -10
- package/dist/access-surface-catalog.js +2 -0
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-wearables-meetings-surface.d.ts +3 -3
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/active-recall.js +1 -1
- package/dist/adapters/index.js +7 -7
- package/dist/adapters/registry.js +3 -3
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +8 -8
- package/dist/briefing.d.ts +2 -2
- package/dist/briefing.js +14 -14
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer-turn-helpers.d.ts +5 -0
- package/dist/buffer-turn-helpers.js +24 -0
- package/dist/buffer-turn-helpers.js.map +1 -0
- package/dist/buffer.d.ts +17 -4
- package/dist/buffer.js +21 -1
- package/dist/bulk-import/index.d.ts +3 -3
- package/dist/calibration.d.ts +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
- package/dist/capsule-crypto-7FJQINUR.js.map +1 -0
- package/dist/{capsule-merge-5KKJQBWQ.js → capsule-merge-2H2IUTBT.js} +4 -4
- package/dist/{catalog-V7inUQdp.d.ts → catalog-CGFYmTT8.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +19 -19
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-LEPOP46W.js → chunk-227UFSEQ.js} +4 -4
- package/dist/{chunk-GIBMDSJ2.js → chunk-27P5YVDU.js} +2 -2
- package/dist/{chunk-2SA56WMI.js → chunk-2LTDWSR6.js} +4 -4
- package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
- package/dist/{chunk-YTSNAUXN.js → chunk-3F2LKUMU.js} +22 -8
- package/dist/chunk-3F2LKUMU.js.map +1 -0
- package/dist/chunk-3QL24R5Y.js +9 -0
- package/dist/chunk-3QL24R5Y.js.map +1 -0
- package/dist/chunk-4RNZMRAV.js +60 -0
- package/dist/chunk-4RNZMRAV.js.map +1 -0
- package/dist/{chunk-6U7F52DE.js → chunk-4XHR3I67.js} +60 -60
- package/dist/chunk-5IVLTFOV.js +65 -0
- package/dist/chunk-5IVLTFOV.js.map +1 -0
- package/dist/{chunk-2EUVEDF5.js → chunk-5XA7PQ5I.js} +2 -2
- package/dist/{chunk-ALSGMEJR.js → chunk-65ZPVYTA.js} +7 -7
- package/dist/{chunk-5VQJBH2G.js → chunk-6TAUHL33.js} +2 -2
- package/dist/{chunk-HUHX2OCX.js → chunk-7DRETLP5.js} +1 -1
- package/dist/chunk-7DRETLP5.js.map +1 -0
- package/dist/{chunk-RGIWINDN.js → chunk-7G5MH4NT.js} +30 -30
- package/dist/{chunk-WVO4G37W.js → chunk-7TEZUUGM.js} +3 -3
- package/dist/{chunk-MJCGLM25.js → chunk-7VUAG236.js} +5 -5
- package/dist/{chunk-M3C2V3PV.js → chunk-AJEMDQNA.js} +12 -12
- package/dist/{chunk-RKNJBZ55.js → chunk-AU7Q3LSC.js} +7 -7
- package/dist/{chunk-ACXPX4AG.js → chunk-BR2K43MK.js} +2 -2
- package/dist/{chunk-IYZ5K7MU.js → chunk-BUE5E2HL.js} +4 -187
- package/dist/chunk-BUE5E2HL.js.map +1 -0
- package/dist/{chunk-CZRYLSSW.js → chunk-BUGVGH4N.js} +2 -2
- package/dist/{chunk-YTQNQ4KB.js → chunk-C4VQMFVM.js} +3 -3
- package/dist/{chunk-ZPSVBSOF.js → chunk-CIVDJD6P.js} +3 -3
- package/dist/{chunk-K5GB36ME.js → chunk-CZDOT5I2.js} +2 -2
- package/dist/{chunk-VI2JQPNQ.js → chunk-E4PWACUN.js} +2 -2
- package/dist/{chunk-D2ANTDGO.js → chunk-E6BMSH7U.js} +2 -2
- package/dist/{chunk-P5PXWTW7.js → chunk-EJCAV3QZ.js} +3 -3
- package/dist/{chunk-CKMO4RDY.js → chunk-EMDLM3LW.js} +4 -4
- package/dist/chunk-ER7W6H4T.js +112 -0
- package/dist/chunk-ER7W6H4T.js.map +1 -0
- package/dist/{chunk-6FUPCJUL.js → chunk-FI4F5X2V.js} +54 -54
- package/dist/chunk-FI4F5X2V.js.map +1 -0
- package/dist/{chunk-LGHKJABJ.js → chunk-GOUILH55.js} +40 -18
- package/dist/chunk-GOUILH55.js.map +1 -0
- package/dist/{chunk-G5R3D5UP.js → chunk-GTTAHHD3.js} +2 -2
- package/dist/{chunk-H5CPS5JP.js → chunk-H36LJIPD.js} +3 -3
- package/dist/{chunk-AITCS2RC.js → chunk-IJ7HK452.js} +4 -4
- package/dist/{chunk-D3LMYTBV.js → chunk-J7WZUL2K.js} +9 -9
- package/dist/{chunk-5W4ZLBEZ.js → chunk-JCFTIQBR.js} +2 -2
- package/dist/{chunk-XOZ4ALGB.js → chunk-KE353EWI.js} +3 -3
- package/dist/{chunk-W5EG6LE3.js → chunk-KIT6M7EB.js} +3 -3
- package/dist/{chunk-5W7CTZ2E.js → chunk-KQAFEZQX.js} +4 -4
- package/dist/{chunk-Z54EM5YZ.js → chunk-MAXVH44E.js} +7 -7
- package/dist/{chunk-WZFAPHIK.js → chunk-MU7ZHSZE.js} +2 -2
- package/dist/chunk-N5Z4EVOR.js +123 -0
- package/dist/chunk-N5Z4EVOR.js.map +1 -0
- package/dist/{chunk-66772WBP.js → chunk-NFXQJHJD.js} +5 -5
- package/dist/{chunk-AZ5BTEKX.js → chunk-NQUF7XKR.js} +2 -2
- package/dist/{chunk-W4FBGYGK.js → chunk-NRV4Y3PM.js} +1 -1
- package/dist/{chunk-NHWB6HG2.js → chunk-NYCGIQRA.js} +2 -2
- package/dist/{chunk-4WKA6I65.js → chunk-OGCNZPKX.js} +1119 -309
- package/dist/chunk-OGCNZPKX.js.map +1 -0
- package/dist/{chunk-QJAQNXWI.js → chunk-ONHRRJZM.js} +6 -6
- package/dist/{chunk-FDAMS4PK.js → chunk-PNPOWBGC.js} +2 -2
- package/dist/{chunk-IC6CBHCA.js → chunk-QGENAYVS.js} +2 -2
- package/dist/{chunk-GBJ4RDFR.js → chunk-QIHIHZYC.js} +66 -91
- package/dist/chunk-QIHIHZYC.js.map +1 -0
- package/dist/{chunk-PUS63Q3G.js → chunk-RUYJ7TWU.js} +517 -2011
- package/dist/chunk-RUYJ7TWU.js.map +1 -0
- package/dist/{chunk-4A6YGWQN.js → chunk-TL4TO3EA.js} +115 -120
- package/dist/chunk-TL4TO3EA.js.map +1 -0
- package/dist/{chunk-SPJXKAVF.js → chunk-U52AKICI.js} +14 -13
- package/dist/chunk-U52AKICI.js.map +1 -0
- package/dist/chunk-ULARSG5Z.js +203 -0
- package/dist/chunk-ULARSG5Z.js.map +1 -0
- package/dist/{chunk-62U4J2GN.js → chunk-UR77VKF7.js} +2 -2
- package/dist/{chunk-JCBWCYEJ.js → chunk-VANLTS5F.js} +2 -2
- package/dist/{chunk-4Z4XNEWZ.js → chunk-VCD4PSK2.js} +56 -12
- package/dist/chunk-VCD4PSK2.js.map +1 -0
- package/dist/{chunk-RMMVQQA6.js → chunk-WDISJRMG.js} +2 -2
- package/dist/{chunk-B6JDYXL7.js → chunk-WWUVONGW.js} +7 -1
- package/dist/chunk-WWUVONGW.js.map +1 -0
- package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
- package/dist/{chunk-TH2LSRMG.js → chunk-XHDIB4T4.js} +2 -2
- package/dist/{chunk-CVILPI77.js → chunk-XOQSEF7X.js} +6 -6
- package/dist/{chunk-LBOD4U5B.js → chunk-YFOMN2II.js} +6 -6
- package/dist/{chunk-RPW2NOU6.js → chunk-YIAA2X3D.js} +41 -1
- package/dist/chunk-YIAA2X3D.js.map +1 -0
- package/dist/chunk-YPC7W6GA.js +1604 -0
- package/dist/chunk-YPC7W6GA.js.map +1 -0
- package/dist/{chunk-I5NLEENJ.js → chunk-Z4SWV4VW.js} +3 -3
- package/dist/{chunk-PHWUFPCO.js → chunk-ZCPP5OW6.js} +61 -53
- package/dist/chunk-ZCPP5OW6.js.map +1 -0
- package/dist/{cli-C4GbETPC.d.ts → cli-BptUDTtp.d.ts} +5 -5
- package/dist/cli.d.ts +12 -12
- package/dist/cli.js +91 -84
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +14 -14
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +14 -14
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +17 -17
- package/dist/consolidation-provenance-check.d.ts +2 -2
- package/dist/consolidation-provenance-check.js +5 -5
- package/dist/consolidation-undo.d.ts +2 -2
- package/dist/consolidation-undo.js +3 -3
- package/dist/contradiction/index.d.ts +2 -2
- package/dist/contradiction/index.js +4 -4
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/backend.js +2 -2
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/corpus-watermark.d.ts +1 -1
- package/dist/corpus-watermark.js +26 -26
- package/dist/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +2 -2
- package/dist/entity-retrieval.js +14 -14
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +8 -8
- package/dist/extraction-error-classification.d.ts +1 -1
- package/dist/extraction-faithfulness.d.ts +1 -1
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction-liveness.d.ts +1 -1
- package/dist/extraction-source-grounding-rules.d.ts +1 -1
- package/dist/extraction-source-grounding.d.ts +15 -2
- package/dist/extraction-source-grounding.js +10 -1
- package/dist/extraction.d.ts +2 -15
- package/dist/extraction.js +5 -4
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/graph-dashboard-diff.d.ts +1 -1
- package/dist/graph-dashboard-key.d.ts +1 -1
- package/dist/graph-dashboard-parser.d.ts +1 -1
- package/dist/graph-edge-reinforcement.d.ts +1 -1
- package/dist/graph-snapshot.d.ts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/importers/index.d.ts +1 -1
- package/dist/in-flight-reads.d.ts +1 -1
- package/dist/index.d.ts +19 -19
- package/dist/index.js +215 -207
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/engine.js +3 -3
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +6 -6
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm-helpers.d.ts +7 -0
- package/dist/local-llm-helpers.js +16 -0
- package/dist/local-llm-helpers.js.map +1 -0
- package/dist/local-llm.d.ts +3 -6
- package/dist/local-llm.js +2 -1
- package/dist/local-model-endpoint.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +14 -14
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +14 -14
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +15 -15
- package/dist/{maintenance-CL30NWtc.d.ts → maintenance-b6f92bRz.d.ts} +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +10 -10
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-corpus-version.js +2 -2
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-worth-outcomes.d.ts +2 -2
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +3 -3
- package/dist/namespaces/migrate.js +24 -24
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +9 -9
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +14 -14
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/offline-sync-impression-drain.d.ts +1 -1
- package/dist/offline-sync-impression-drain.js +6 -5
- package/dist/operator-doctor-corpus.d.ts +1 -1
- package/dist/operator-doctor-corpus.js +29 -29
- package/dist/operator-doctor-replica.d.ts +1 -1
- package/dist/operator-doctor-replica.js +3 -3
- package/dist/operator-toolkit.d.ts +3 -3
- package/dist/operator-toolkit.js +38 -37
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +4 -4
- package/dist/orchestration/maintenance.js +22 -21
- package/dist/{orchestrator-CKTCRwWV.d.ts → orchestrator-3uGxC1qO.d.ts} +72 -34
- package/dist/orchestrator.d.ts +8 -8
- package/dist/orchestrator.js +167 -159
- package/dist/page-versioning.js +3 -3
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-B7wj4rRZ.d.ts → pipeline-DepuNr-m.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/proactive-contention.d.ts +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/{qmd-q9tg4dHp.d.ts → qmd-Dalr3Jby.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -2
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +2 -2
- package/dist/qmd.js +4 -4
- package/dist/recall-concurrency-config.d.ts +1 -1
- package/dist/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.d.ts +1 -1
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-memory-map.d.ts +1 -1
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-state.d.ts +1 -1
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-timings.d.ts +1 -1
- package/dist/recall-xray-cli.d.ts +1 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -1
- package/dist/recall-xray.js +2 -2
- package/dist/replay/normalizers/chatgpt.d.ts +1 -1
- package/dist/replay/normalizers/claude.d.ts +1 -1
- package/dist/replay/normalizers/openclaw.d.ts +1 -1
- package/dist/replay/normalizers/shared.d.ts +1 -1
- package/dist/replay/runner.d.ts +1 -1
- package/dist/replay/types.d.ts +1 -1
- package/dist/replica-divergence.d.ts +1 -1
- package/dist/replica-divergence.js +2 -2
- package/dist/replica-peers-config.d.ts +1 -1
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/resume-bundles.js +1 -1
- package/dist/retrieval-agents.d.ts +2 -2
- package/dist/retrieval-tiers.d.ts +1 -1
- package/dist/routing/engine.d.ts +1 -1
- package/dist/routing/store.d.ts +1 -1
- package/dist/salvage-envelope.d.ts +1 -1
- package/dist/{scope-profiles-CWDyglPM.d.ts → scope-profiles-BpiM5hTU.d.ts} +1 -1
- package/dist/search/embed-helper.d.ts +1 -1
- package/dist/search/factory.d.ts +1 -1
- package/dist/search/factory.js +8 -8
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +12 -12
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-BUE3deLn.d.ts → semantic-consolidation-CMtVrf9f.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +16 -16
- package/dist/semantic-rule-promotion.js +14 -14
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +14 -14
- package/dist/{service-CXgM0bQG.d.ts → service-DuAxwSgg.d.ts} +2 -2
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- package/dist/shared-context/manager.d.ts +1 -1
- package/dist/signal.d.ts +1 -1
- package/dist/{storage-DysJq-XH.d.ts → storage-CF0Ih8GP.d.ts} +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +13 -13
- package/dist/summarizer.d.ts +1 -1
- package/dist/summarizer.js +3 -2
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/temporal-supersession.d.ts +2 -2
- package/dist/temporal-timeline-recall.d.ts +1 -1
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +1 -1
- package/dist/tier-migration.d.ts +2 -2
- package/dist/tier-routing.d.ts +1 -1
- package/dist/tokens.js +2 -2
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +5 -5
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-aPPzhnjT.d.ts → types-BpaYvJ6v.d.ts} +22 -2
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +14 -14
- package/dist/write-envelope.d.ts +1 -1
- package/package.json +2 -2
- package/src/access-boundary.ts +3 -0
- package/src/access-cli.test.ts +93 -0
- package/src/access-cli.ts +56 -2
- package/src/access-extraction-force-flush.ts +177 -0
- package/src/access-http-extraction-force-flush.test.ts +132 -0
- package/src/access-http-lcm-compaction.ts +99 -22
- package/src/access-http-lifecycle-flush.ts +81 -0
- package/src/access-http.test.ts +227 -0
- package/src/access-http.ts +33 -40
- package/src/access-mcp-output-schemas.ts +6 -0
- package/src/access-mcp.test.ts +40 -0
- package/src/access-mcp.ts +32 -1
- package/src/access-observe-helpers.ts +180 -0
- package/src/access-observe-write-surface.ts +78 -19
- package/src/access-operations-batch.ts +2 -1
- package/src/access-schema-pi.test.ts +17 -0
- package/src/access-schema.ts +28 -11
- package/src/access-service-helpers.ts +46 -0
- package/src/access-service-observe-lcm-parity.test.ts +781 -31
- package/src/access-service-observe-scope.test.ts +88 -0
- package/src/access-service.ts +46 -128
- package/src/access-surface-catalog.test.ts +32 -0
- package/src/access-surface-catalog.ts +2 -0
- package/src/buffer-session.test.ts +148 -0
- package/src/buffer-turn-helpers.ts +152 -0
- package/src/buffer.ts +126 -201
- package/src/correction/correction-access-wiring.ts +79 -27
- package/src/correction/correction-executor.test.ts +542 -1
- package/src/correction/correction-executor.ts +309 -89
- package/src/correction/correction-planner.test.ts +35 -1
- package/src/correction/correction-planner.ts +50 -3
- package/src/correction/correction-service.ts +12 -7
- package/src/correction/correction-storage-integration.test.ts +172 -1
- package/src/correction/passive-capture.test.ts +35 -0
- package/src/correction/passive-capture.ts +17 -3
- package/src/extraction-source-grounding.ts +55 -1
- package/src/extraction-timeout.test.ts +51 -0
- package/src/extraction.ts +64 -90
- package/src/local-llm-headers-timeout.test.ts +48 -0
- package/src/local-llm-helpers.ts +58 -0
- package/src/local-llm.ts +62 -58
- package/src/orchestration/extraction-run-helpers.ts +309 -0
- package/src/orchestration/extraction-run.test.ts +350 -7
- package/src/orchestration/extraction-run.ts +327 -250
- package/src/orchestration/recall-internal-deps.ts +385 -0
- package/src/orchestration/recall-internal.ts +16 -375
- package/src/orchestration/session-context.ts +193 -18
- package/src/orchestration/turn-ingestion.ts +61 -11
- package/src/orchestrator-flush.test.ts +511 -5
- package/src/orchestrator.ts +8 -6
- package/src/types.ts +2 -2
- package/dist/chunk-4A6YGWQN.js.map +0 -1
- package/dist/chunk-4WKA6I65.js.map +0 -1
- package/dist/chunk-4Z4XNEWZ.js.map +0 -1
- package/dist/chunk-6FUPCJUL.js.map +0 -1
- package/dist/chunk-B6JDYXL7.js.map +0 -1
- package/dist/chunk-GBJ4RDFR.js.map +0 -1
- package/dist/chunk-HUHX2OCX.js.map +0 -1
- package/dist/chunk-IYZ5K7MU.js.map +0 -1
- package/dist/chunk-LGHKJABJ.js.map +0 -1
- package/dist/chunk-PHWUFPCO.js.map +0 -1
- package/dist/chunk-PUS63Q3G.js.map +0 -1
- package/dist/chunk-RPW2NOU6.js.map +0 -1
- package/dist/chunk-SPJXKAVF.js.map +0 -1
- package/dist/chunk-YTSNAUXN.js.map +0 -1
- /package/dist/{capsule-crypto-GWVG7LGC.js.map → access-extraction-force-flush.js.map} +0 -0
- /package/dist/{capsule-merge-5KKJQBWQ.js.map → capsule-merge-2H2IUTBT.js.map} +0 -0
- /package/dist/{chunk-LEPOP46W.js.map → chunk-227UFSEQ.js.map} +0 -0
- /package/dist/{chunk-GIBMDSJ2.js.map → chunk-27P5YVDU.js.map} +0 -0
- /package/dist/{chunk-2SA56WMI.js.map → chunk-2LTDWSR6.js.map} +0 -0
- /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
- /package/dist/{chunk-6U7F52DE.js.map → chunk-4XHR3I67.js.map} +0 -0
- /package/dist/{chunk-2EUVEDF5.js.map → chunk-5XA7PQ5I.js.map} +0 -0
- /package/dist/{chunk-ALSGMEJR.js.map → chunk-65ZPVYTA.js.map} +0 -0
- /package/dist/{chunk-5VQJBH2G.js.map → chunk-6TAUHL33.js.map} +0 -0
- /package/dist/{chunk-RGIWINDN.js.map → chunk-7G5MH4NT.js.map} +0 -0
- /package/dist/{chunk-WVO4G37W.js.map → chunk-7TEZUUGM.js.map} +0 -0
- /package/dist/{chunk-MJCGLM25.js.map → chunk-7VUAG236.js.map} +0 -0
- /package/dist/{chunk-M3C2V3PV.js.map → chunk-AJEMDQNA.js.map} +0 -0
- /package/dist/{chunk-RKNJBZ55.js.map → chunk-AU7Q3LSC.js.map} +0 -0
- /package/dist/{chunk-ACXPX4AG.js.map → chunk-BR2K43MK.js.map} +0 -0
- /package/dist/{chunk-CZRYLSSW.js.map → chunk-BUGVGH4N.js.map} +0 -0
- /package/dist/{chunk-YTQNQ4KB.js.map → chunk-C4VQMFVM.js.map} +0 -0
- /package/dist/{chunk-ZPSVBSOF.js.map → chunk-CIVDJD6P.js.map} +0 -0
- /package/dist/{chunk-K5GB36ME.js.map → chunk-CZDOT5I2.js.map} +0 -0
- /package/dist/{chunk-VI2JQPNQ.js.map → chunk-E4PWACUN.js.map} +0 -0
- /package/dist/{chunk-D2ANTDGO.js.map → chunk-E6BMSH7U.js.map} +0 -0
- /package/dist/{chunk-P5PXWTW7.js.map → chunk-EJCAV3QZ.js.map} +0 -0
- /package/dist/{chunk-CKMO4RDY.js.map → chunk-EMDLM3LW.js.map} +0 -0
- /package/dist/{chunk-G5R3D5UP.js.map → chunk-GTTAHHD3.js.map} +0 -0
- /package/dist/{chunk-H5CPS5JP.js.map → chunk-H36LJIPD.js.map} +0 -0
- /package/dist/{chunk-AITCS2RC.js.map → chunk-IJ7HK452.js.map} +0 -0
- /package/dist/{chunk-D3LMYTBV.js.map → chunk-J7WZUL2K.js.map} +0 -0
- /package/dist/{chunk-5W4ZLBEZ.js.map → chunk-JCFTIQBR.js.map} +0 -0
- /package/dist/{chunk-XOZ4ALGB.js.map → chunk-KE353EWI.js.map} +0 -0
- /package/dist/{chunk-W5EG6LE3.js.map → chunk-KIT6M7EB.js.map} +0 -0
- /package/dist/{chunk-5W7CTZ2E.js.map → chunk-KQAFEZQX.js.map} +0 -0
- /package/dist/{chunk-Z54EM5YZ.js.map → chunk-MAXVH44E.js.map} +0 -0
- /package/dist/{chunk-WZFAPHIK.js.map → chunk-MU7ZHSZE.js.map} +0 -0
- /package/dist/{chunk-66772WBP.js.map → chunk-NFXQJHJD.js.map} +0 -0
- /package/dist/{chunk-AZ5BTEKX.js.map → chunk-NQUF7XKR.js.map} +0 -0
- /package/dist/{chunk-W4FBGYGK.js.map → chunk-NRV4Y3PM.js.map} +0 -0
- /package/dist/{chunk-NHWB6HG2.js.map → chunk-NYCGIQRA.js.map} +0 -0
- /package/dist/{chunk-QJAQNXWI.js.map → chunk-ONHRRJZM.js.map} +0 -0
- /package/dist/{chunk-FDAMS4PK.js.map → chunk-PNPOWBGC.js.map} +0 -0
- /package/dist/{chunk-IC6CBHCA.js.map → chunk-QGENAYVS.js.map} +0 -0
- /package/dist/{chunk-62U4J2GN.js.map → chunk-UR77VKF7.js.map} +0 -0
- /package/dist/{chunk-JCBWCYEJ.js.map → chunk-VANLTS5F.js.map} +0 -0
- /package/dist/{chunk-RMMVQQA6.js.map → chunk-WDISJRMG.js.map} +0 -0
- /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
- /package/dist/{chunk-TH2LSRMG.js.map → chunk-XHDIB4T4.js.map} +0 -0
- /package/dist/{chunk-CVILPI77.js.map → chunk-XOQSEF7X.js.map} +0 -0
- /package/dist/{chunk-LBOD4U5B.js.map → chunk-YFOMN2II.js.map} +0 -0
- /package/dist/{chunk-I5NLEENJ.js.map → chunk-Z4SWV4VW.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/extraction-source-grounding.ts"],"sourcesContent":["import type { ExtractionResult } from \"./types.js\";\nimport { delinearize } from \"./delinearize.js\";\nimport {\n applyExtractionSourceGrounding as applyGroundingRules,\n filterExtractionResultBySource as filterGroundingRules,\n} from \"./extraction-source-grounding-rules.js\";\nimport type {\n ExtractionGroundingRoleSources,\n ExtractionSourceGroundingOptions,\n} from \"./extraction-source-grounding-rules.js\";\n\nexport type { ExtractionGroundingRoleSources, ExtractionSourceGroundingOptions } from \"./extraction-source-grounding-rules.js\";\n\nexport function applyExtractionSourceGrounding(\n result: ExtractionResult,\n sourceText: string,\n assertionSourceText: string = sourceText,\n roleAssertionSources: ExtractionGroundingRoleSources | undefined,\n messageTimestamp: Date | undefined,\n options: ExtractionSourceGroundingOptions,\n): ExtractionResult {\n const sourceForGrounding = (source: string | undefined): string | undefined =>\n source === undefined || !options.anchorTemporalExpressions\n ? source\n : delinearize(source, result.entities, messageTimestamp ?? new Date());\n const groundedRoleSources = roleAssertionSources === undefined\n ? undefined\n : {\n profile: sourceForGrounding(roleAssertionSources.profile),\n identity: sourceForGrounding(roleAssertionSources.identity),\n };\n return applyGroundingRules(\n result,\n sourceForGrounding(sourceText) ?? sourceText,\n sourceForGrounding(assertionSourceText) ?? assertionSourceText,\n groundedRoleSources,\n messageTimestamp,\n options,\n );\n}\n\nexport function filterExtractionResultBySource(\n result: ExtractionResult,\n source: string,\n assertionSource?: string,\n roleAssertionSources?: ExtractionGroundingRoleSources,\n eventTimeNormalizer?: (eventTime: string) => string,\n): ExtractionResult {\n return filterGroundingRules(result, source, assertionSource, roleAssertionSources, eventTimeNormalizer);\n}\n"],"mappings":";;;;;;;;;AAaO,SAASA,gCACd,QACA,YACA,sBAA8B,YAC9B,sBACA,kBACA,SACkB;AAClB,QAAM,qBAAqB,CAAC,WAC1B,WAAW,UAAa,CAAC,QAAQ,4BAC7B,SACA,YAAY,QAAQ,OAAO,UAAU,oBAAoB,oBAAI,KAAK,CAAC;AACzE,QAAM,sBAAsB,yBAAyB,SACjD,SACA;AAAA,IACA,SAAS,mBAAmB,qBAAqB,OAAO;AAAA,IACxD,UAAU,mBAAmB,qBAAqB,QAAQ;AAAA,EAC5D;AACF,SAAO;AAAA,IACL;AAAA,IACA,mBAAmB,UAAU,KAAK;AAAA,IAClC,mBAAmB,mBAAmB,KAAK;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,SAASC,gCACd,QACA,QACA,iBACA,sBACA,qBACkB;AAClB,SAAO,+BAAqB,QAAQ,QAAQ,iBAAiB,sBAAsB,mBAAmB;AACxG;","names":["applyExtractionSourceGrounding","filterExtractionResultBySource"]}
|
|
@@ -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 { 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 { 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\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 ===\ndefineOperation({ name: \"recall\", description: \"Semantic recall.\", schema: strictSchema({ query: S.str, sessionKey: S.str, namespace: S.str, topK: S.num, mode: S.str, includeDebug: S.bool, disclosure: S.str, cwd: S.str, projectTag: S.str, asOf: S.str, tags: S.strArr, tagMatch: S.str }),\n handler: async (input, ctx) => {\n let disclosure: RecallDisclosure | undefined;\n if (input.disclosure !== undefined) { if (typeof input.disclosure !== \"string\") throw new EngramAccessInputError(\"disclosure must be a string\"); disclosure = input.disclosure as RecallDisclosure; }\n if (input.cwd !== undefined && typeof input.cwd !== \"string\") throw new EngramAccessInputError(\"cwd must be a string\");\n if (input.projectTag !== undefined && typeof input.projectTag !== \"string\") throw new EngramAccessInputError(\"projectTag must be a string\");\n if (input.asOf !== undefined && typeof input.asOf !== \"string\") throw new EngramAccessInputError(\"asOf must be a string\");\n let tags: string[] | undefined;\n if (input.tags !== undefined) { if (!Array.isArray(input.tags) || !input.tags.every((t) => typeof t === \"string\")) throw new EngramAccessInputError(\"tags must be an array of strings\"); tags = input.tags; }\n let tagMatch: \"any\" | \"all\" | undefined;\n if (input.tagMatch !== undefined) { if (input.tagMatch !== \"any\" && input.tagMatch !== \"all\") throw new EngramAccessInputError(\"tagMatch must be one of: any, all\"); tagMatch = input.tagMatch; }\n const result = await ctx.service.recall({ query: typeof input.query === \"string\" ? input.query : \"\", sessionKey: optStr(input.sessionKey), authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), topK: optNum(input.topK), mode: optStr(input.mode) as RecallPlanMode | \"auto\" | undefined, includeDebug: input.includeDebug === true, disclosure, cwd: optStr(input.cwd), projectTag: optStr(input.projectTag), asOf: optStr(input.asOf), ...(tags ? { tags } : {}), ...(tagMatch ? { tagMatch } : {}), ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}) });\n return { result };\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) => { // Strip null from all fields EXCEPT codingContext (null = clear context).\n if (data !== null && typeof data === \"object\" && !Array.isArray(data)) { const o = data as Record<string, unknown>; const c: Record<string, unknown> = {}; for (const [k, v] of Object.entries(o)) { if (v !== null || k === \"codingContext\") c[k] = v; } return c; } return data; }, 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>>,\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, ...(dr && dr !== \"\" ? { disclosure: dr as RecallDisclosure } : {}), ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}) }) };\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) => ({ result: 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) }) }) });\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)\"); return { result: await ctx.service.wearablesTranscriptDay({ date: d, source: optStr(input.source), authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }; } });\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\"); return { result: 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) }) }; } });\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) => ({ result: 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) }) }) });\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\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, 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); return { result: await ctx.service.daySummary(req) }; } });\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) }) });\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) }) });\ndefineOperation({ name: \"observe\", description: \"Observe messages.\", schema: strictSchema({ sessionKey: S.str, messages: z.array(z.object({ role: z.string(), content: z.string(), parts: z.array(z.unknown()).optional(), rawContent: z.unknown().optional(), sourceFormat: z.string().optional() }).passthrough()), skipExtraction: S.bool, idempotencyKey: S.str, namespace: S.str, cwd: S.str, projectTag: S.str }),\n handler: async (input, ctx) => ({ result: await ctx.service.observe({ sessionKey: defStr(input.sessionKey, \"\"), messages: (input.messages as unknown[]).map((m: unknown) => { const r = m as Record<string, unknown>; return { role: String(r.role), content: String(r.content), parts: r.parts as unknown[], rawContent: r.rawContent as string | undefined, sourceFormat: r.sourceFormat as string | undefined }; }) as never, skipExtraction: input.skipExtraction === true, idempotencyKey: optStr(input.idempotencyKey), namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal, cwd: optStr(input.cwd), projectTag: optStr(input.projectTag), ...(ctx.sourceConnector ? { sourceConnector: ctx.sourceConnector } : {}) }, ctx.hooks?.enforceWriteQuota ? { enforceWriteQuota: ctx.hooks.enforceWriteQuota } : undefined) }),\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 }), handler: async (input, ctx) => ({ result: await ctx.service.lcmCompactionFlush({ sessionKey: optStr(input.sessionKey) ?? \"\", namespace: optStr(input.namespace), authenticatedPrincipal: ctx.authenticatedPrincipal }) }) });\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) ?? \"\" }) }) });\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: \"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: \"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/access-schema.ts"],"sourcesContent":["// Request/response schema validation for the Remnic HTTP API.\n// Uses zod for runtime validation — returns structured 400 errors with\n// field-level detail so consumers get clear feedback on malformed requests.\n\nimport { z } from \"zod\";\nimport {\n ACTION_CONFIDENCE_CONTEXT_READINESS,\n ACTION_CONFIDENCE_RISK_CATEGORIES,\n ACTION_CONFIDENCE_RULE_KINDS,\n} from \"./action-confidence.js\";\nimport { isValidCapsuleSince } from \"./transfer/capsule-export.js\";\nimport { validateArchiveRelativePath } from \"./transfer/fs-utils.js\";\nimport { CAPSULE_ID_PATTERN } from \"./transfer/types.js\";\nimport {\n OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES,\n OFFLINE_SYNC_MAX_MTIME_MS,\n} from \"./offline-sync.js\";\n\n// ---------------------------------------------------------------------------\n// Error formatting\n// ---------------------------------------------------------------------------\n\nexport interface SchemaValidationError {\n error: string;\n code: \"validation_error\";\n details: Array<{ field: string; message: string }>;\n}\n\nexport function formatZodError(error: z.ZodError): SchemaValidationError {\n return {\n error: \"request validation failed\",\n code: \"validation_error\",\n details: error.issues.map((issue) => ({\n field: issue.path.join(\".\") || \"(root)\",\n message: issue.message,\n })),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Shared fields\n// ---------------------------------------------------------------------------\n\nconst namespaceSchema = z.string().trim().max(256).optional();\nconst sessionKeySchema = z.string().trim().min(1).max(512).optional();\nconst idempotencyKeySchema = z.string().trim().min(1).max(256).optional();\nconst dryRunSchema = z.boolean().optional();\nconst schemaVersionSchema = z.number().int().optional();\nconst timeZoneSchema = z\n .string()\n .trim()\n .min(1)\n .max(128)\n .refine((value) => {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: value });\n return true;\n } catch {\n return false;\n }\n }, \"must be a valid IANA timezone\");\n\n// ---------------------------------------------------------------------------\n// Recall\n// ---------------------------------------------------------------------------\n\n/**\n * Coding-agent context (issue #569). Optional payload that connectors may\n * ship with a recall request so the project/branch namespace overlay\n * applies to that recall. All fields are validated per CLAUDE.md #51 —\n * empty-string projectId / rootPath is rejected, not silently accepted.\n */\nexport const codingContextSchema = z\n .object({\n projectId: z.string().trim().min(1, \"codingContext.projectId is required\").max(128),\n branch: z.string().trim().max(256).nullable(),\n rootPath: z.string().trim().min(1, \"codingContext.rootPath is required\").max(1024),\n defaultBranch: z.string().trim().max(256).nullable(),\n })\n .nullable();\n\n/**\n * Recall disclosure depth (issue #677). Mirrors the `RecallDisclosure`\n * type in `types.ts` — keep these in sync. Default-application happens\n * inside `EngramAccessService.recall()`; the schema only accepts/rejects.\n * Invalid values throw a structured 400 instead of silently defaulting,\n * per CLAUDE.md rule 51.\n */\nexport const recallDisclosureSchema = z.enum([\"chunk\", \"section\", \"raw\"]);\n\n/**\n * Tag-match semantics (issue #689). `any` (default when `tags` is provided\n * and `tagMatch` is omitted) admits a result when it carries at least one\n * of the filter tags. `all` requires every filter tag to be present.\n * Schema rejects unknown values up front — never silently defaults\n * (CLAUDE.md rule 51).\n */\nexport const tagMatchSchema = z.enum([\"any\", \"all\"]);\n\nexport const recallRequestSchema = z.object({\n query: z.string().min(1, \"query is required\"),\n sessionKey: sessionKeySchema,\n namespace: namespaceSchema,\n topK: z.number().int().min(0).max(200).optional(),\n mode: z.enum([\"auto\", \"no_recall\", \"minimal\", \"full\", \"graph_mode\"]).optional(),\n includeDebug: z.boolean().optional(),\n idempotencyKey: idempotencyKeySchema,\n disclosure: recallDisclosureSchema.optional(),\n codingContext: codingContextSchema.optional(),\n /** Working directory for auto git-context resolution (issue #569). */\n cwd: z.string().trim().min(1, \"cwd must be non-empty when provided\").max(2048).optional(),\n /**\n * Arbitrary project tag for non-git-based project scoping (issue #569).\n * Creates a coding context with `projectId: \"tag:<projectTag>\"`.\n */\n projectTag: z.string().trim().min(1, \"projectTag must be non-empty when provided\").max(256).optional(),\n /**\n * Historical recall pin (issue #680). ISO 8601 timestamp. The\n * schema only enforces the basic shape; the access service runs\n * `Date.parse` and emits a structured 400 on malformed input\n * (CLAUDE.md rule 51).\n */\n asOf: z.string().trim().min(1, \"asOf must be a non-empty ISO 8601 timestamp\").max(64).optional(),\n /**\n * Free-form recall tag filter (issue #689). When provided, recall results\n * whose frontmatter `tags` do not match the filter are removed before the\n * response is returned. Comparison is case-sensitive exact match.\n */\n tags: z.array(z.string().trim().min(1).max(256)).max(50).optional(),\n /**\n * Match mode for `tags` (issue #689). Defaults to `\"any\"` when `tags` is\n * provided and `tagMatch` is omitted. Ignored when `tags` is absent.\n */\n tagMatch: tagMatchSchema.optional(),\n /**\n * Include graph edges below `graphTraversalConfidenceFloor` for diagnostic\n * recall traversal (issue #681). Defaults to false.\n */\n includeLowConfidence: z.boolean().optional(),\n});\n\nexport const recallExplainRequestSchema = z.object({\n sessionKey: sessionKeySchema,\n namespace: namespaceSchema,\n});\n\n/**\n * Standalone \"set coding context\" request. Used by the HTTP endpoint\n * `POST /engram/v1/coding-context` and the MCP `remnic.set_coding_context`\n * tool (PR 7). `codingContext: null` clears the attached context.\n */\nexport const setCodingContextRequestSchema = z\n .object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n codingContext: codingContextSchema.optional(),\n /**\n * Project tag shorthand for non-git-based project scoping. When\n * `codingContext` is omitted, this becomes\n * `{ projectId: \"tag:<projectTag>\", branch: null, rootPath: \"tag:<projectTag>\", defaultBranch: null }`.\n */\n projectTag: z.string().trim().min(1, \"projectTag must be non-empty when provided\").max(256).optional(),\n })\n .superRefine((value, ctx) => {\n if (value.codingContext === undefined && value.projectTag === undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"codingContext or projectTag is required\",\n path: [\"codingContext\"],\n });\n }\n });\n\n// ---------------------------------------------------------------------------\n// Observe\n// ---------------------------------------------------------------------------\n\nconst messageSchema = z.object({\n role: z.enum([\"user\", \"assistant\"]),\n content: z.string().min(1, \"message content must be non-empty\"),\n sourceFormat: z\n .enum([\"openai\", \"anthropic\", \"openclaw\", \"pi\", \"lossless-claw\", \"remnic\"])\n .nullable()\n .optional(),\n rawContent: z.unknown().nullable().optional(),\n parts: z\n .array(\n z.object({\n ordinal: z.number().int().min(0).nullable().optional(),\n kind: z.enum([\n \"text\",\n \"tool_call\",\n \"tool_result\",\n \"patch\",\n \"file_read\",\n \"file_write\",\n \"step_start\",\n \"step_finish\",\n \"snapshot\",\n \"retry\",\n ]),\n payload: z.record(z.string(), z.unknown()),\n toolName: z.string().nullable().optional(),\n tool_name: z.string().nullable().optional(),\n filePath: z.string().nullable().optional(),\n file_path: z.string().nullable().optional(),\n createdAt: z.string().nullable().optional(),\n created_at: z.string().nullable().optional(),\n }),\n )\n .nullable()\n .optional(),\n});\n\nexport const observeRequestSchema = z.object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n messages: z.array(messageSchema).min(1, \"messages must be a non-empty array\"),\n namespace: namespaceSchema,\n skipExtraction: z.boolean().optional(),\n /**\n * Optional idempotency key for server-side dedup of retried observe POSTs\n * (issue #1649). A retry that reaches the daemon after the first attempt\n * already processed is replayed from cache instead of re-ingested. When the\n * key is reused with a DIFFERENT payload the request is rejected as a\n * conflict (same contract as memory_store/suggestion_submit).\n */\n idempotencyKey: idempotencyKeySchema,\n /** Working directory for auto git-context resolution (issue #569). */\n cwd: z.string().trim().min(1, \"cwd must be non-empty when provided\").max(2048).optional(),\n /**\n * Arbitrary project tag for non-git-based project scoping (issue #569).\n * Creates a coding context with `projectId: \"tag:<projectTag>\"`.\n */\n projectTag: z.string().trim().min(1, \"projectTag must be non-empty when provided\").max(256).optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Memory store / suggestion submit\n// ---------------------------------------------------------------------------\n\nconst writeContentSchema = z.string().min(1, \"content is required\").max(50000);\nconst categorySchema = z\n .enum([\n \"fact\", \"preference\", \"correction\", \"entity\", \"decision\",\n \"relationship\", \"principle\", \"commitment\", \"moment\", \"skill\", \"rule\", \"procedure\",\n \"reasoning_trace\",\n ])\n .optional();\nconst confidenceSchema = z.number().min(0).max(1).optional();\nconst tagsSchema = z.array(z.string().max(256)).max(50).optional();\nconst entityRefSchema = z.string().trim().max(512).optional();\nconst ttlSchema = z.string().trim().max(128).optional();\nconst sourceReasonSchema = z.string().trim().max(2000).optional();\n\nexport const memoryStoreRequestSchema = z.object({\n schemaVersion: schemaVersionSchema,\n idempotencyKey: idempotencyKeySchema,\n dryRun: dryRunSchema,\n sessionKey: sessionKeySchema,\n content: writeContentSchema,\n category: categorySchema,\n confidence: confidenceSchema,\n namespace: namespaceSchema,\n tags: tagsSchema,\n entityRef: entityRefSchema,\n ttl: ttlSchema,\n sourceReason: sourceReasonSchema,\n // Git/project context for project-scoped writes (#1434). When no explicit\n // `namespace` is given, these route the write to the same project namespace\n // recall/observe resolve from `cwd`/`projectTag` (issue #569, rule 42). Also\n // lets MCP clients that auto-inject `cwd` (e.g. Pi MCPorter) call write tools.\n cwd: z.string().trim().min(1, \"cwd must be non-empty when provided\").max(2048).optional(),\n projectTag: z\n .string()\n .trim()\n .min(1, \"projectTag must be non-empty when provided\")\n .max(256)\n .optional(),\n});\n\nexport const suggestionSubmitRequestSchema = memoryStoreRequestSchema;\n\n// ---------------------------------------------------------------------------\n// Review disposition\n// ---------------------------------------------------------------------------\n\nexport const reviewDispositionRequestSchema = z.object({\n memoryId: z.string().trim().min(1, \"memoryId is required\"),\n status: z.enum([\n \"active\", \"pending_review\", \"quarantined\", \"rejected\", \"superseded\", \"archived\",\n ]),\n reasonCode: z.string().trim().min(1, \"reasonCode is required\"),\n namespace: namespaceSchema,\n});\n\n// ---------------------------------------------------------------------------\n// Trust-zone promote\n// ---------------------------------------------------------------------------\n\nexport const trustZonePromoteRequestSchema = z.object({\n recordId: z.string().trim().min(1, \"recordId is required\"),\n targetZone: z.enum([\"working\", \"trusted\"], {\n errorMap: () => ({ message: \"targetZone must be 'working' or 'trusted'\" }),\n }),\n promotionReason: z.string().trim().min(1, \"promotionReason is required\"),\n recordedAt: z.string().trim().optional(),\n summary: z.string().trim().max(5000).optional(),\n dryRun: dryRunSchema,\n namespace: namespaceSchema,\n});\n\n// ---------------------------------------------------------------------------\n// Trust-zone demo-seed\n// ---------------------------------------------------------------------------\n\nexport const trustZoneDemoSeedRequestSchema = z.object({\n scenario: z.string().trim().max(256).optional(),\n recordedAt: z.string().trim().optional(),\n dryRun: dryRunSchema,\n namespace: namespaceSchema,\n});\n\n// ---------------------------------------------------------------------------\n// LCM search\n// ---------------------------------------------------------------------------\n\nexport const lcmSearchRequestSchema = z.object({\n query: z.string().min(1, \"query is required\"),\n sessionKey: sessionKeySchema,\n sessionPrefix: z.string().trim().min(1).max(512).optional(),\n namespace: namespaceSchema,\n limit: z.number().int().min(1).max(100).optional(),\n});\n\nexport const lcmCompactionFlushRequestSchema = z\n .object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n namespace: namespaceSchema,\n /**\n * Optional multi-namespace flush used by delegate lifecycle replay. The\n * server handles the whole list as one quota-counted write.\n */\n namespaces: z.array(z.string().trim().max(256)).min(1).max(64).optional(),\n })\n .superRefine((value, ctx) => {\n if (value.namespace !== undefined && value.namespaces !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"namespace and namespaces are mutually exclusive\",\n path: [\"namespaces\"],\n });\n }\n if (\n value.namespaces !== undefined &&\n new Set(value.namespaces).size !== value.namespaces.length\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"namespaces must not contain duplicates\",\n path: [\"namespaces\"],\n });\n }\n });\n\nexport const lcmCompactionRecordRequestSchema = z.object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n namespace: namespaceSchema,\n tokensBefore: z.number().int().min(0, \"tokensBefore must be a non-negative integer\"),\n tokensAfter: z.number().int().min(0, \"tokensAfter must be a non-negative integer\"),\n});\n\n// ---------------------------------------------------------------------------\n// Day summary\n// ---------------------------------------------------------------------------\n\nexport const daySummaryRequestSchema = z.object({\n memories: z.string().max(100000).optional(),\n sessionKey: sessionKeySchema,\n namespace: namespaceSchema,\n timeZone: timeZoneSchema.optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Capsule export\n// ---------------------------------------------------------------------------\n\nconst capsuleTopLevelSegmentSchema = z\n .string()\n .trim()\n .min(1)\n .max(128)\n .refine(\n (value) => !value.includes(\"/\") && !value.includes(\"\\\\\"),\n \"must be a top-level directory name without path separators\",\n );\n\nconst capsulePeerIdSchema = z\n .string()\n .trim()\n .min(1)\n .max(256)\n .refine(\n (value) => value !== \".\" && value !== \"..\" && !value.includes(\"/\") && !value.includes(\"\\\\\"),\n \"must be a plain peer id without path separators\",\n );\n\nconst capsuleIsoSinceSchema = z\n .string()\n .trim()\n .min(1, \"since must be a non-empty ISO 8601 timestamp\")\n .max(128)\n .refine(\n isValidCapsuleSince,\n \"since must be a valid ISO 8601 timestamp with no calendar overflow\",\n );\n\nexport const capsuleExportRequestSchema = z\n .object({\n name: z\n .string()\n .trim()\n .min(1, \"name is required\")\n .max(64, \"name must be 64 characters or fewer\")\n .regex(\n CAPSULE_ID_PATTERN,\n \"name must be alphanumeric with single dashes (no spaces, no leading/trailing dashes)\",\n ),\n namespace: namespaceSchema,\n since: capsuleIsoSinceSchema.optional(),\n includeKinds: z.array(capsuleTopLevelSegmentSchema).max(50).optional(),\n peerIds: z.array(capsulePeerIdSchema).max(100).optional(),\n includeTranscripts: z.boolean().optional(),\n encrypt: z.boolean().optional(),\n });\n\nexport const capsuleImportRequestSchema = z\n .object({\n archivePath: z.string().trim().min(1, \"archivePath is required\").max(4096),\n namespace: namespaceSchema,\n mode: z.enum([\"skip\", \"overwrite\", \"fork\"]).optional(),\n passphrase: z.string().min(1, \"passphrase must not be empty\").max(4096).optional(),\n });\n\nexport const capsuleListRequestSchema = z\n .object({\n namespace: namespaceSchema,\n sessionKey: sessionKeySchema,\n });\n\n// ---------------------------------------------------------------------------\n// Offline sync\n// ---------------------------------------------------------------------------\n\nfunction isValidOfflineSyncPath(value: string): boolean {\n try {\n validateArchiveRelativePath(value, \"path\");\n return true;\n } catch {\n return false;\n }\n}\n\nconst offlineSyncPathSchema = z\n .string()\n .trim()\n .min(1, \"path must be non-empty\")\n .max(4096)\n .refine(\n isValidOfflineSyncPath,\n \"path must be a POSIX relative path without unsafe segments\",\n );\n\nconst offlineSyncFileStateSchema = z.object({\n path: offlineSyncPathSchema,\n sha256: z.string().regex(/^[a-f0-9]{64}$/i, \"sha256 must be a 64-character hex digest\"),\n bytes: z.number().int().min(0),\n mtimeMs: z.number().finite().min(0).max(OFFLINE_SYNC_MAX_MTIME_MS),\n});\n\nconst offlineSyncBaseCapturedAtSchema = z\n .string()\n .trim()\n .min(1, \"baseCapturedAt must be non-empty when provided\")\n .max(64)\n .refine((value) => Number.isFinite(Date.parse(value)), {\n message: \"baseCapturedAt must be a valid ISO 8601 timestamp\",\n });\n\nexport const offlineSyncSnapshotRequestSchema = z.object({\n namespace: namespaceSchema,\n includeTranscripts: z.boolean().optional(),\n includeContent: z.boolean().optional(),\n baseCapturedAt: offlineSyncBaseCapturedAtSchema.optional(),\n baseFiles: z\n .array(offlineSyncFileStateSchema)\n .max(300_000, \"baseFiles must contain 300000 or fewer entries\")\n .optional(),\n});\n\nexport const offlineSyncApplyRequestSchema = z\n .object({\n namespace: namespaceSchema,\n changeset: z.unknown(),\n returnCurrentFiles: z.boolean().optional(),\n })\n .refine((value) => value.changeset !== undefined && value.changeset !== null, {\n message: \"changeset is required\",\n path: [\"changeset\"],\n });\n\nexport const offlineSyncFilesRequestSchema = z.object({\n namespace: namespaceSchema,\n includeTranscripts: z.boolean().optional(),\n paths: z\n .array(offlineSyncPathSchema)\n .max(5000, \"paths must contain 5000 or fewer entries\"),\n});\n\nexport const offlineSyncFileContentRequestSchema = z.object({\n namespace: namespaceSchema,\n includeTranscripts: z.boolean().optional(),\n path: offlineSyncPathSchema,\n offset: z.number().int().min(0).optional(),\n length: z.number().int().min(1).max(OFFLINE_SYNC_FILE_CONTENT_MAX_CHUNK_BYTES).optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Action confidence\n// ---------------------------------------------------------------------------\n\nconst nullableOptional = <T extends z.ZodTypeAny>(schema: T) =>\n schema.optional().nullable().transform((value) => value ?? undefined);\n\nconst actionConfidenceRuleSchema = z\n .object({\n kind: z.enum(ACTION_CONFIDENCE_RULE_KINDS),\n description: nullableOptional(z.string().trim().min(1).max(2000)),\n matched: nullableOptional(z.boolean()),\n })\n .strict();\n\nconst actionConfidenceMemorySchema = z\n .object({\n source: nullableOptional(z.string().trim().min(1).max(256)),\n created: nullableOptional(z.string().trim().min(1).max(128)),\n updated: nullableOptional(z.string().trim().min(1).max(128)),\n scope: nullableOptional(z.string().trim().min(1).max(512)),\n userContextScopes: nullableOptional(z.array(z.string().trim().min(1).max(128)).max(50)),\n retrievalReason: nullableOptional(z.string().trim().min(1).max(2000)),\n confidence: nullableOptional(z.number().min(0).max(1)),\n stale: nullableOptional(z.boolean()),\n corrected: nullableOptional(z.boolean()),\n correctionState: nullableOptional(z.enum([\"none\", \"correction\", \"superseded\", \"disputed\", \"forgotten\"])),\n safeToUse: nullableOptional(z.boolean()),\n safety: nullableOptional(z.enum([\"safe\", \"requires-review\", \"blocked\"])),\n safetyReasons: nullableOptional(z.array(z.string().trim().min(1).max(1000)).max(50)),\n })\n .strict();\n\nexport const actionConfidenceRequestSchema = z\n .object({\n intendedAction: nullableOptional(z.string().trim().min(1).max(1000)),\n confidence: nullableOptional(z.number().min(0).max(1)),\n risk: nullableOptional(z.enum(ACTION_CONFIDENCE_RISK_CATEGORIES)),\n contextReadiness: nullableOptional(z.enum(ACTION_CONFIDENCE_CONTEXT_READINESS)),\n currentContextScopes: nullableOptional(z.array(z.string().trim().min(1).max(128)).max(50)),\n userRules: nullableOptional(z.array(actionConfidenceRuleSchema).max(100)),\n retrievedMemories: nullableOptional(z.array(actionConfidenceMemorySchema).max(200)),\n })\n .strict();\n\n// ---------------------------------------------------------------------------\n// Inferred types\n// ---------------------------------------------------------------------------\n\nexport type RecallRequest = z.infer<typeof recallRequestSchema>;\nexport type RecallExplainRequest = z.infer<typeof recallExplainRequestSchema>;\nexport type SetCodingContextRequest = z.infer<typeof setCodingContextRequestSchema>;\nexport type ObserveRequest = z.infer<typeof observeRequestSchema>;\nexport type MemoryStoreRequest = z.infer<typeof memoryStoreRequestSchema>;\nexport type SuggestionSubmitRequest = z.infer<typeof suggestionSubmitRequestSchema>;\nexport type ReviewDispositionRequest = z.infer<typeof reviewDispositionRequestSchema>;\nexport type TrustZonePromoteRequest = z.infer<typeof trustZonePromoteRequestSchema>;\nexport type TrustZoneDemoSeedRequest = z.infer<typeof trustZoneDemoSeedRequestSchema>;\nexport type LcmSearchRequest = z.infer<typeof lcmSearchRequestSchema>;\nexport type LcmCompactionFlushRequest = z.infer<typeof lcmCompactionFlushRequestSchema>;\nexport type LcmCompactionRecordRequest = z.infer<typeof lcmCompactionRecordRequestSchema>;\nexport type DaySummaryRequest = z.infer<typeof daySummaryRequestSchema>;\nexport type CapsuleExportRequest = z.infer<typeof capsuleExportRequestSchema>;\nexport type CapsuleImportRequest = z.infer<typeof capsuleImportRequestSchema>;\nexport type CapsuleListRequest = z.infer<typeof capsuleListRequestSchema>;\nexport type OfflineSyncApplyRequest = z.infer<typeof offlineSyncApplyRequestSchema>;\nexport type OfflineSyncSnapshotRequest = z.infer<typeof offlineSyncSnapshotRequestSchema>;\nexport type OfflineSyncFilesRequest = z.infer<typeof offlineSyncFilesRequestSchema>;\nexport type OfflineSyncFileContentRequest = z.infer<typeof offlineSyncFileContentRequestSchema>;\nexport type ActionConfidenceRequest = z.infer<typeof actionConfidenceRequestSchema>;\n\n// ---------------------------------------------------------------------------\n// Validation helper\n// ---------------------------------------------------------------------------\n\nexport type SchemaName =\n | \"recall\"\n | \"recallExplain\"\n | \"setCodingContext\"\n | \"observe\"\n | \"memoryStore\"\n | \"suggestionSubmit\"\n | \"reviewDisposition\"\n | \"trustZonePromote\"\n | \"trustZoneDemoSeed\"\n | \"lcmSearch\"\n | \"lcmCompactionFlush\"\n | \"lcmCompactionRecord\"\n | \"daySummary\"\n | \"capsuleExport\"\n | \"capsuleImport\"\n | \"capsuleList\"\n | \"offlineSyncSnapshot\"\n | \"offlineSyncFiles\"\n | \"offlineSyncFileContent\"\n | \"offlineSyncApply\"\n | \"actionConfidence\";\n\nexport type SchemaTypeFor<N extends SchemaName> =\n N extends \"recall\" ? RecallRequest\n : N extends \"recallExplain\" ? RecallExplainRequest\n : N extends \"setCodingContext\" ? SetCodingContextRequest\n : N extends \"observe\" ? ObserveRequest\n : N extends \"memoryStore\" ? MemoryStoreRequest\n : N extends \"suggestionSubmit\" ? SuggestionSubmitRequest\n : N extends \"reviewDisposition\" ? ReviewDispositionRequest\n : N extends \"trustZonePromote\" ? TrustZonePromoteRequest\n : N extends \"trustZoneDemoSeed\" ? TrustZoneDemoSeedRequest\n : N extends \"lcmSearch\" ? LcmSearchRequest\n : N extends \"lcmCompactionFlush\" ? LcmCompactionFlushRequest\n : N extends \"lcmCompactionRecord\" ? LcmCompactionRecordRequest\n : N extends \"daySummary\" ? DaySummaryRequest\n : N extends \"capsuleExport\" ? CapsuleExportRequest\n : N extends \"capsuleImport\" ? CapsuleImportRequest\n : N extends \"capsuleList\" ? CapsuleListRequest\n : N extends \"offlineSyncSnapshot\" ? OfflineSyncSnapshotRequest\n : N extends \"offlineSyncFiles\" ? OfflineSyncFilesRequest\n : N extends \"offlineSyncFileContent\" ? OfflineSyncFileContentRequest\n : N extends \"offlineSyncApply\" ? OfflineSyncApplyRequest\n : N extends \"actionConfidence\" ? ActionConfidenceRequest\n : never;\n\nconst schemas: Record<SchemaName, z.ZodTypeAny> = {\n recall: recallRequestSchema,\n recallExplain: recallExplainRequestSchema,\n setCodingContext: setCodingContextRequestSchema,\n observe: observeRequestSchema,\n memoryStore: memoryStoreRequestSchema,\n suggestionSubmit: suggestionSubmitRequestSchema,\n reviewDisposition: reviewDispositionRequestSchema,\n trustZonePromote: trustZonePromoteRequestSchema,\n trustZoneDemoSeed: trustZoneDemoSeedRequestSchema,\n lcmSearch: lcmSearchRequestSchema,\n lcmCompactionFlush: lcmCompactionFlushRequestSchema,\n lcmCompactionRecord: lcmCompactionRecordRequestSchema,\n daySummary: daySummaryRequestSchema,\n capsuleExport: capsuleExportRequestSchema,\n capsuleImport: capsuleImportRequestSchema,\n capsuleList: capsuleListRequestSchema,\n offlineSyncSnapshot: offlineSyncSnapshotRequestSchema,\n offlineSyncFiles: offlineSyncFilesRequestSchema,\n offlineSyncFileContent: offlineSyncFileContentRequestSchema,\n offlineSyncApply: offlineSyncApplyRequestSchema,\n actionConfidence: actionConfidenceRequestSchema,\n};\n\n/**\n * Validate a request body against the named schema.\n * Returns `{ success: true, data }` on pass or\n * `{ success: false, error }` on failure with field-level detail.\n */\nexport function validateRequest<T = unknown>(\n schemaName: SchemaName,\n body: unknown,\n): { success: true; data: T } | { success: false; error: SchemaValidationError } {\n const schema = schemas[schemaName];\n if (!schema) {\n return {\n success: false,\n error: {\n error: `unknown schema: ${schemaName}`,\n code: \"validation_error\",\n details: [],\n },\n };\n }\n const result = schema.safeParse(body);\n if (result.success) {\n return { success: true, data: result.data as T };\n }\n return { success: false, error: formatZodError(result.error) };\n}\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|