@remnic/core 9.4.2 → 9.5.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 +5 -5
- package/dist/access-admin-ops-surface.js +26 -26
- package/dist/access-boundary.d.ts +26 -7
- package/dist/access-boundary.js +31 -27
- package/dist/access-cli.js +79 -77
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +51 -5
- package/dist/access-http.js +38 -36
- package/dist/access-identity-continuity-surface.d.ts +4 -4
- package/dist/access-identity-continuity-surface.js +26 -26
- package/dist/access-lcm-surface.d.ts +5 -5
- package/dist/access-lcm-surface.js +26 -26
- package/dist/access-mcp.d.ts +15 -5
- package/dist/access-mcp.js +35 -33
- package/dist/access-observe-write-surface.d.ts +5 -5
- package/dist/access-observe-write-surface.js +26 -26
- package/dist/access-operations-batch.js +31 -30
- package/dist/access-operations.d.ts +7 -7
- package/dist/access-operations.js +33 -32
- package/dist/access-recall-surface.d.ts +5 -5
- package/dist/access-recall-surface.js +26 -26
- package/dist/access-schema.js +4 -4
- package/dist/{access-service-m-2VO_Ig.d.ts → access-service-DZX0sYAv.d.ts} +3 -3
- package/dist/access-service.d.ts +5 -5
- package/dist/access-service.js +26 -26
- package/dist/access-surface-catalog.d.ts +5 -5
- package/dist/access-surface-catalog.js +1 -0
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-token-capabilities.d.ts +174 -0
- package/dist/access-token-capabilities.js +33 -0
- 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 +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/{auto-sync-HMHQHUAG.js → auto-sync-G6IU7L6C.js} +3 -3
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +4 -4
- package/dist/briefing.d.ts +1 -1
- package/dist/briefing.js +7 -7
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer.d.ts +1 -1
- package/dist/calibration.d.ts +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/{capsule-crypto-CZJSLEFG.js → capsule-crypto-RAARDY3M.js} +2 -2
- package/dist/capsule-crypto-RAARDY3M.js.map +1 -0
- package/dist/{catalog-BxWokdC2.d.ts → catalog-DoH2b0OR.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-behavior.js +5 -5
- package/dist/causal-chain.js +3 -3
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +11 -11
- package/dist/causal-retrieval.js +3 -3
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-7QWMTOIF.js → chunk-2B7DP7AP.js} +31 -31
- package/dist/{chunk-4BFRBP45.js → chunk-2JFDHI2K.js} +2 -2
- package/dist/{chunk-OHDJ34CC.js → chunk-2SFEFR5I.js} +2 -2
- package/dist/{chunk-E2SPGGUI.js → chunk-4OKLXWDZ.js} +13 -6
- package/dist/chunk-4OKLXWDZ.js.map +1 -0
- package/dist/{chunk-ILFJ7AVS.js → chunk-4WNLSSHL.js} +35 -21
- package/dist/chunk-4WNLSSHL.js.map +1 -0
- package/dist/{chunk-YDSWRD33.js → chunk-5K5VEDFY.js} +4 -4
- package/dist/{chunk-CZAZX7JP.js → chunk-7BAJAXGB.js} +4 -4
- package/dist/{chunk-CXLNZXG5.js → chunk-7XGSIUP5.js} +1 -1
- package/dist/{chunk-ZPOROUTX.js → chunk-AOYJVCFN.js} +5 -5
- package/dist/{chunk-IC6QX5TC.js → chunk-BGMSRN6I.js} +5 -5
- package/dist/{chunk-5QZDMSSN.js → chunk-CXEL3Y22.js} +70 -70
- package/dist/{chunk-M5QKGHCR.js → chunk-CYWCKFCL.js} +5 -5
- package/dist/{chunk-2U2A5HF4.js → chunk-D2XYYU5Q.js} +5 -5
- package/dist/chunk-D7FOKIY5.js +173 -0
- package/dist/chunk-D7FOKIY5.js.map +1 -0
- package/dist/{chunk-DGYCWCQ7.js → chunk-DZSAXE3T.js} +2 -2
- package/dist/{chunk-2BFLDH5F.js → chunk-EEIROWEG.js} +2 -2
- package/dist/{chunk-6ZIETXZ2.js → chunk-H5PFR5ZT.js} +2 -2
- package/dist/{chunk-2FOD2YY3.js → chunk-I74ZEBMA.js} +236 -103
- package/dist/chunk-I74ZEBMA.js.map +1 -0
- package/dist/chunk-IC2TCZJ2.js +54 -0
- package/dist/chunk-IC2TCZJ2.js.map +1 -0
- package/dist/{chunk-66FLU5BT.js → chunk-II6WHCCW.js} +6 -6
- package/dist/{chunk-YPEMNNNY.js → chunk-ITWTKT2R.js} +6 -6
- package/dist/{chunk-AKUCU7CI.js → chunk-JI5AVXYO.js} +5 -5
- package/dist/{chunk-27FLVMDC.js → chunk-KMF67QDQ.js} +7 -7
- package/dist/{chunk-FLVL4L3L.js → chunk-KTULX4YO.js} +4 -4
- package/dist/{chunk-FZGGZAAU.js → chunk-L2QJQSHL.js} +146 -2
- package/dist/chunk-L2QJQSHL.js.map +1 -0
- package/dist/{chunk-4P4626RY.js → chunk-L4UZBJNM.js} +4 -4
- package/dist/{chunk-JLR3JSTL.js → chunk-L6V3WJ55.js} +3 -3
- package/dist/{chunk-6BISDEN6.js → chunk-LNHJ32NK.js} +14 -14
- package/dist/{chunk-437S3G37.js → chunk-LNQUAJNC.js} +1 -1
- package/dist/{chunk-LOR6ZM5R.js → chunk-MFDJ63U5.js} +2 -2
- package/dist/{chunk-HRCACVHL.js → chunk-NFTABV56.js} +2 -2
- package/dist/{chunk-OUMTBFSQ.js → chunk-NKCPUHCI.js} +5 -5
- package/dist/{chunk-KCJ5H6XQ.js → chunk-ODSYJXDU.js} +2 -2
- package/dist/{chunk-2QSZNTDO.js → chunk-RKNJBZ55.js} +4 -4
- package/dist/{chunk-NG7YBCJO.js → chunk-SNBEVJBX.js} +4 -4
- package/dist/{chunk-CZAA5N5S.js → chunk-SNNIUDRS.js} +2 -2
- package/dist/{chunk-P6SYWE4G.js → chunk-STCCFQU5.js} +9 -9
- package/dist/{chunk-X4A62ET7.js → chunk-TI7IHDBQ.js} +17 -17
- package/dist/{chunk-BGTAL46Y.js → chunk-TV7C3HCB.js} +2 -2
- package/dist/{chunk-EPGWWCZF.js → chunk-UBGAOYBP.js} +6 -6
- package/dist/{chunk-M7GGMGMZ.js → chunk-UDCDGP6A.js} +15 -15
- package/dist/{chunk-2MR3MFQB.js → chunk-UPSAT4PY.js} +2 -2
- package/dist/{chunk-CGS7UKWM.js → chunk-VCW74PNH.js} +2 -2
- package/dist/{chunk-DR6PEJU3.js → chunk-VWEWK2BM.js} +44 -59
- package/dist/chunk-VWEWK2BM.js.map +1 -0
- package/dist/{chunk-CLX5VDNY.js → chunk-Y4RKAQZ7.js} +4 -4
- package/dist/{chunk-EZ25VE3G.js → chunk-YNDLCWXS.js} +4 -4
- package/dist/{cli-EiBBOt3r.d.ts → cli-1dghPCO2.d.ts} +3 -3
- package/dist/cli.d.ts +6 -6
- package/dist/cli.js +57 -55
- package/dist/compounding/engine.d.ts +1 -1
- package/dist/compounding/engine.js +7 -7
- 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 +7 -7
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +11 -9
- package/dist/consolidation-provenance-check.d.ts +1 -1
- package/dist/consolidation-undo.d.ts +1 -1
- package/dist/contradiction/index.d.ts +1 -1
- 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/dashboard-runtime.js +2 -2
- 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 +1 -1
- package/dist/entity-retrieval.js +7 -7
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +4 -4
- 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.d.ts +1 -1
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/{first-start-migration-DY6YCRC2.js → first-start-migration-VBJQL6OI.js} +5 -5
- 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/identity-continuity.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/index.d.ts +13 -10
- package/dist/index.js +115 -93
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/engine.js +2 -2
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +2 -2
- 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.d.ts +1 -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 +8 -8
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -7
- package/dist/maintenance/rebuild-memory-projection.js +9 -9
- package/dist/mcp-memory-inspector-app.d.ts +5 -5
- package/dist/mcp-read-only-tools.d.ts +16 -0
- package/dist/mcp-read-only-tools.js +8 -0
- package/dist/mcp-read-only-tools.js.map +1 -0
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- 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 +1 -1
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +2 -2
- package/dist/namespaces/migrate.js +17 -17
- 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 +2 -2
- package/dist/namespaces/storage.js +7 -7
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +1 -1
- package/dist/operator-toolkit.js +22 -22
- package/dist/orchestration/compression-guideline-coordinator.d.ts +1 -1
- package/dist/orchestration/maintenance.d.ts +2 -2
- package/dist/orchestration/maintenance.js +9 -9
- package/dist/{orchestrator-B2Y28Z9t.d.ts → orchestrator-Dh3WSW_O.d.ts} +3 -3
- package/dist/orchestrator.d.ts +4 -4
- package/dist/orchestrator.js +81 -79
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/{qmd-Db9mOkzB.d.ts → qmd-DoUVxqND.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/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.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-renderer.d.ts +1 -1
- package/dist/recall-xray.d.ts +1 -1
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/resume-bundles.js +2 -2
- 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/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/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/orama-backend.js +2 -2
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-BDVIbLRw.d.ts → semantic-consolidation-Dof1865o.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +9 -9
- package/dist/semantic-rule-promotion.js +7 -7
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +8 -8
- 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.d.ts +1 -1
- package/dist/storage.js +6 -6
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/temporal-supersession.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 +1 -1
- package/dist/tier-routing.d.ts +1 -1
- package/dist/{tier-stats-TG6GUZ6N.js → tier-stats-5XF4UBRQ.js} +4 -4
- package/dist/tokens.d.ts +17 -2
- package/dist/tokens.js +3 -1
- 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 +3 -3
- package/dist/transfer/capsule-import.js +3 -3
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-ljkd82rn.d.ts → types-C7HUgOuA.d.ts} +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +8 -8
- package/package.json +2 -2
- package/src/access-boundary.test.ts +62 -0
- package/src/access-boundary.ts +165 -126
- package/src/access-http.test.ts +781 -0
- package/src/access-http.ts +334 -108
- package/src/access-mcp.test.ts +264 -0
- package/src/access-mcp.ts +45 -70
- package/src/access-operations-batch.ts +35 -12
- package/src/access-surface-catalog.test.ts +22 -14
- package/src/access-surface-catalog.ts +6 -3
- package/src/access-token-capabilities.test.ts +844 -0
- package/src/access-token-capabilities.ts +391 -0
- package/src/chat/chat-mcp.test.ts +232 -0
- package/src/chat/chat-session.ts +34 -0
- package/src/index.ts +14 -0
- package/src/mcp-read-only-tools.ts +61 -0
- package/src/tokens.ts +32 -3
- package/dist/chunk-2FOD2YY3.js.map +0 -1
- package/dist/chunk-DR6PEJU3.js.map +0 -1
- package/dist/chunk-E2SPGGUI.js.map +0 -1
- package/dist/chunk-FZGGZAAU.js.map +0 -1
- package/dist/chunk-ILFJ7AVS.js.map +0 -1
- /package/dist/{capsule-crypto-CZJSLEFG.js.map → access-token-capabilities.js.map} +0 -0
- /package/dist/{auto-sync-HMHQHUAG.js.map → auto-sync-G6IU7L6C.js.map} +0 -0
- /package/dist/{chunk-7QWMTOIF.js.map → chunk-2B7DP7AP.js.map} +0 -0
- /package/dist/{chunk-4BFRBP45.js.map → chunk-2JFDHI2K.js.map} +0 -0
- /package/dist/{chunk-OHDJ34CC.js.map → chunk-2SFEFR5I.js.map} +0 -0
- /package/dist/{chunk-YDSWRD33.js.map → chunk-5K5VEDFY.js.map} +0 -0
- /package/dist/{chunk-CZAZX7JP.js.map → chunk-7BAJAXGB.js.map} +0 -0
- /package/dist/{chunk-CXLNZXG5.js.map → chunk-7XGSIUP5.js.map} +0 -0
- /package/dist/{chunk-ZPOROUTX.js.map → chunk-AOYJVCFN.js.map} +0 -0
- /package/dist/{chunk-IC6QX5TC.js.map → chunk-BGMSRN6I.js.map} +0 -0
- /package/dist/{chunk-5QZDMSSN.js.map → chunk-CXEL3Y22.js.map} +0 -0
- /package/dist/{chunk-M5QKGHCR.js.map → chunk-CYWCKFCL.js.map} +0 -0
- /package/dist/{chunk-2U2A5HF4.js.map → chunk-D2XYYU5Q.js.map} +0 -0
- /package/dist/{chunk-DGYCWCQ7.js.map → chunk-DZSAXE3T.js.map} +0 -0
- /package/dist/{chunk-2BFLDH5F.js.map → chunk-EEIROWEG.js.map} +0 -0
- /package/dist/{chunk-6ZIETXZ2.js.map → chunk-H5PFR5ZT.js.map} +0 -0
- /package/dist/{chunk-66FLU5BT.js.map → chunk-II6WHCCW.js.map} +0 -0
- /package/dist/{chunk-YPEMNNNY.js.map → chunk-ITWTKT2R.js.map} +0 -0
- /package/dist/{chunk-AKUCU7CI.js.map → chunk-JI5AVXYO.js.map} +0 -0
- /package/dist/{chunk-27FLVMDC.js.map → chunk-KMF67QDQ.js.map} +0 -0
- /package/dist/{chunk-FLVL4L3L.js.map → chunk-KTULX4YO.js.map} +0 -0
- /package/dist/{chunk-4P4626RY.js.map → chunk-L4UZBJNM.js.map} +0 -0
- /package/dist/{chunk-JLR3JSTL.js.map → chunk-L6V3WJ55.js.map} +0 -0
- /package/dist/{chunk-6BISDEN6.js.map → chunk-LNHJ32NK.js.map} +0 -0
- /package/dist/{chunk-437S3G37.js.map → chunk-LNQUAJNC.js.map} +0 -0
- /package/dist/{chunk-LOR6ZM5R.js.map → chunk-MFDJ63U5.js.map} +0 -0
- /package/dist/{chunk-HRCACVHL.js.map → chunk-NFTABV56.js.map} +0 -0
- /package/dist/{chunk-OUMTBFSQ.js.map → chunk-NKCPUHCI.js.map} +0 -0
- /package/dist/{chunk-KCJ5H6XQ.js.map → chunk-ODSYJXDU.js.map} +0 -0
- /package/dist/{chunk-2QSZNTDO.js.map → chunk-RKNJBZ55.js.map} +0 -0
- /package/dist/{chunk-NG7YBCJO.js.map → chunk-SNBEVJBX.js.map} +0 -0
- /package/dist/{chunk-CZAA5N5S.js.map → chunk-SNNIUDRS.js.map} +0 -0
- /package/dist/{chunk-P6SYWE4G.js.map → chunk-STCCFQU5.js.map} +0 -0
- /package/dist/{chunk-X4A62ET7.js.map → chunk-TI7IHDBQ.js.map} +0 -0
- /package/dist/{chunk-BGTAL46Y.js.map → chunk-TV7C3HCB.js.map} +0 -0
- /package/dist/{chunk-EPGWWCZF.js.map → chunk-UBGAOYBP.js.map} +0 -0
- /package/dist/{chunk-M7GGMGMZ.js.map → chunk-UDCDGP6A.js.map} +0 -0
- /package/dist/{chunk-2MR3MFQB.js.map → chunk-UPSAT4PY.js.map} +0 -0
- /package/dist/{chunk-CGS7UKWM.js.map → chunk-VCW74PNH.js.map} +0 -0
- /package/dist/{chunk-CLX5VDNY.js.map → chunk-Y4RKAQZ7.js.map} +0 -0
- /package/dist/{chunk-EZ25VE3G.js.map → chunk-YNDLCWXS.js.map} +0 -0
- /package/dist/{first-start-migration-DY6YCRC2.js.map → first-start-migration-VBJQL6OI.js.map} +0 -0
- /package/dist/{tier-stats-TG6GUZ6N.js.map → tier-stats-5XF4UBRQ.js.map} +0 -0
package/src/index.ts
CHANGED
|
@@ -992,6 +992,20 @@ export {
|
|
|
992
992
|
type TokenStore,
|
|
993
993
|
} from "./tokens.js";
|
|
994
994
|
|
|
995
|
+
export {
|
|
996
|
+
TOKEN_CAPABILITIES_VERSION,
|
|
997
|
+
capabilityAllowsNamespace,
|
|
998
|
+
capabilityAllowsOp,
|
|
999
|
+
isCapabilityRestricted,
|
|
1000
|
+
isValidNamespaceValue,
|
|
1001
|
+
normalizeCapabilities,
|
|
1002
|
+
tokenCapabilityStore,
|
|
1003
|
+
validateCapabilitiesForMint,
|
|
1004
|
+
type TokenCapabilities,
|
|
1005
|
+
} from "./access-token-capabilities.js";
|
|
1006
|
+
|
|
1007
|
+
export { OPERATION_NAMES, type OperationName } from "./access-boundary.js";
|
|
1008
|
+
|
|
995
1009
|
// ---------------------------------------------------------------------------
|
|
996
1010
|
// Codex materializer (#378)
|
|
997
1011
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conservative allowlist of canonical MCP tool suffixes that are
|
|
3
|
+
* unambiguously read-only. Tools in this set are tagged with
|
|
4
|
+
* `annotations: { readOnlyHint: true }` so ChatGPT (and other MCP
|
|
5
|
+
* clients that honor the hint) can skip per-call confirmation.
|
|
6
|
+
*
|
|
7
|
+
* The list is suffix-based so it covers both the `remnic.*` and
|
|
8
|
+
* `engram.*` naming forms. Anything not on it stays unannotated:
|
|
9
|
+
* uncertainty is resolved as "might mutate".
|
|
10
|
+
*
|
|
11
|
+
* Excluded by construction: anything that writes, runs a pipeline,
|
|
12
|
+
* flushes, applies, records, imports, or destructively deletes.
|
|
13
|
+
*/
|
|
14
|
+
export const MCP_READ_ONLY_TOOL_SUFFIXES: Readonly<Record<string, true>> = {
|
|
15
|
+
recall: true,
|
|
16
|
+
recall_explain: true,
|
|
17
|
+
recall_tier_explain: true,
|
|
18
|
+
recall_xray: true,
|
|
19
|
+
briefing: true,
|
|
20
|
+
wearables_status: true,
|
|
21
|
+
transcript_day: true,
|
|
22
|
+
transcript_search: true,
|
|
23
|
+
transcript_memories: true,
|
|
24
|
+
action_confidence: true,
|
|
25
|
+
capsule_list: true,
|
|
26
|
+
procedural_stats: true,
|
|
27
|
+
memory_get: true,
|
|
28
|
+
memory_timeline: true,
|
|
29
|
+
entity_get: true,
|
|
30
|
+
review_queue_list: true,
|
|
31
|
+
lcm_search: true,
|
|
32
|
+
continuity_incident_list: true,
|
|
33
|
+
identity_anchor_get: true,
|
|
34
|
+
memory_identity: true,
|
|
35
|
+
memory_search: true,
|
|
36
|
+
memory_profile: true,
|
|
37
|
+
memory_entities_list: true,
|
|
38
|
+
memory_questions: true,
|
|
39
|
+
memory_last_recall: true,
|
|
40
|
+
memory_intent_debug: true,
|
|
41
|
+
memory_qmd_debug: true,
|
|
42
|
+
memory_graph_explain: true,
|
|
43
|
+
graph_snapshot: true,
|
|
44
|
+
review_list: true,
|
|
45
|
+
profiling_report: true,
|
|
46
|
+
peer_list: true,
|
|
47
|
+
peer_get: true,
|
|
48
|
+
peer_profile_get: true,
|
|
49
|
+
console_state: true,
|
|
50
|
+
dreams_status: true,
|
|
51
|
+
codegraph_list_projects: true,
|
|
52
|
+
codegraph_index_status: true,
|
|
53
|
+
codegraph_search_graph: true,
|
|
54
|
+
codegraph_trace_path: true,
|
|
55
|
+
codegraph_detect_changes: true,
|
|
56
|
+
codegraph_query_graph: true,
|
|
57
|
+
codegraph_get_schema: true,
|
|
58
|
+
codegraph_get_snippet: true,
|
|
59
|
+
codegraph_get_architecture: true,
|
|
60
|
+
codegraph_search_code: true,
|
|
61
|
+
};
|
package/src/tokens.ts
CHANGED
|
@@ -9,11 +9,27 @@ import fs from "node:fs";
|
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
11
11
|
import { resolveHomeDir } from "./runtime/env.js";
|
|
12
|
+
import {
|
|
13
|
+
TOKEN_CAPABILITIES_VERSION,
|
|
14
|
+
normalizeCapabilities,
|
|
15
|
+
type TokenCapabilities,
|
|
16
|
+
} from "./access-token-capabilities.js";
|
|
12
17
|
|
|
13
18
|
export interface TokenEntry {
|
|
14
19
|
token: string;
|
|
15
20
|
connector: string;
|
|
16
21
|
createdAt: string;
|
|
22
|
+
/**
|
|
23
|
+
* Versioned capabilities record (issue #1837). PRESENT ⇒ the token was
|
|
24
|
+
* minted by the capability-aware path; its ops/namespaces axes are
|
|
25
|
+
* enforced (absent axis ⇒ unrestricted on that axis; empty array ⇒ deny
|
|
26
|
+
* all; non-empty ⇒ allow-list). ABSENT ⇒ a pre-feature legacy entry ⇒
|
|
27
|
+
* unrestricted (full access), purely for backward compatibility — this is
|
|
28
|
+
* the ONLY path by which full access is granted by omission. Every new
|
|
29
|
+
* token carries an explicit record (even `{ version: 1 }` for a deliberate
|
|
30
|
+
* unrestricted mint), so a new token can never silently gain full access.
|
|
31
|
+
*/
|
|
32
|
+
capabilities?: TokenCapabilities;
|
|
17
33
|
}
|
|
18
34
|
|
|
19
35
|
export interface TokenStore {
|
|
@@ -75,6 +91,9 @@ function validateTokenEntry(raw: unknown, index: number): TokenEntry {
|
|
|
75
91
|
if (typeof entry.connector !== "string" || entry.connector.length === 0) {
|
|
76
92
|
throw new Error(`invalid token entry at index ${index}: connector must be a non-empty string`);
|
|
77
93
|
}
|
|
94
|
+
const capabilities = entry.capabilities !== undefined
|
|
95
|
+
? normalizeCapabilities(entry.capabilities)
|
|
96
|
+
: undefined;
|
|
78
97
|
return {
|
|
79
98
|
token: entry.token,
|
|
80
99
|
connector: entry.connector,
|
|
@@ -82,6 +101,7 @@ function validateTokenEntry(raw: unknown, index: number): TokenEntry {
|
|
|
82
101
|
typeof entry.createdAt === "string" && entry.createdAt.length > 0
|
|
83
102
|
? entry.createdAt
|
|
84
103
|
: new Date(0).toISOString(),
|
|
104
|
+
...(capabilities ? { capabilities } : {}),
|
|
85
105
|
};
|
|
86
106
|
}
|
|
87
107
|
|
|
@@ -201,13 +221,18 @@ export function saveTokenStore(store: TokenStore, tokensPath?: string): void {
|
|
|
201
221
|
* dependent write (e.g. Hermes config.yaml) succeeds — see
|
|
202
222
|
* commitTokenEntry() to persist the candidate.
|
|
203
223
|
*/
|
|
204
|
-
export function buildTokenEntry(connector: string): TokenEntry {
|
|
224
|
+
export function buildTokenEntry(connector: string, capabilities?: TokenCapabilities): TokenEntry {
|
|
205
225
|
const prefix = TOKEN_PREFIXES[connector] ?? "remnic_xx_";
|
|
206
226
|
const token = prefix + randomBytes(24).toString("hex");
|
|
227
|
+
// Every newly-built entry carries an EXPLICIT capabilities record (issue
|
|
228
|
+
// #1837). When none is requested, record a deliberate unrestricted
|
|
229
|
+
// `{ version: 1 }` — never an omitted field — so "full access via omission"
|
|
230
|
+
// is reachable only by pre-feature legacy entries lacking the marker.
|
|
207
231
|
return {
|
|
208
232
|
token,
|
|
209
233
|
connector,
|
|
210
234
|
createdAt: new Date().toISOString(),
|
|
235
|
+
capabilities: capabilities ?? { version: TOKEN_CAPABILITIES_VERSION },
|
|
211
236
|
};
|
|
212
237
|
}
|
|
213
238
|
|
|
@@ -230,13 +255,17 @@ export function commitTokenEntry(entry: TokenEntry, tokensPath?: string): void {
|
|
|
230
255
|
saveTokenStore(store, tokensPath);
|
|
231
256
|
}
|
|
232
257
|
|
|
233
|
-
export function generateToken(
|
|
258
|
+
export function generateToken(
|
|
259
|
+
connector: string,
|
|
260
|
+
tokensPath?: string,
|
|
261
|
+
capabilities?: TokenCapabilities,
|
|
262
|
+
): TokenEntry {
|
|
234
263
|
const store = loadTokenStore(tokensPath);
|
|
235
264
|
|
|
236
265
|
// Remove existing token for this connector
|
|
237
266
|
store.tokens = store.tokens.filter((t) => t.connector !== connector);
|
|
238
267
|
|
|
239
|
-
const entry = buildTokenEntry(connector);
|
|
268
|
+
const entry = buildTokenEntry(connector, capabilities);
|
|
240
269
|
store.tokens.push(entry);
|
|
241
270
|
saveTokenStore(store, tokensPath);
|
|
242
271
|
return entry;
|