@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.
Files changed (337) hide show
  1. package/dist/access-admin-ops-surface.d.ts +5 -5
  2. package/dist/access-admin-ops-surface.js +26 -26
  3. package/dist/access-boundary.d.ts +26 -7
  4. package/dist/access-boundary.js +31 -27
  5. package/dist/access-cli.js +79 -77
  6. package/dist/access-cli.js.map +1 -1
  7. package/dist/access-http.d.ts +51 -5
  8. package/dist/access-http.js +38 -36
  9. package/dist/access-identity-continuity-surface.d.ts +4 -4
  10. package/dist/access-identity-continuity-surface.js +26 -26
  11. package/dist/access-lcm-surface.d.ts +5 -5
  12. package/dist/access-lcm-surface.js +26 -26
  13. package/dist/access-mcp.d.ts +15 -5
  14. package/dist/access-mcp.js +35 -33
  15. package/dist/access-observe-write-surface.d.ts +5 -5
  16. package/dist/access-observe-write-surface.js +26 -26
  17. package/dist/access-operations-batch.js +31 -30
  18. package/dist/access-operations.d.ts +7 -7
  19. package/dist/access-operations.js +33 -32
  20. package/dist/access-recall-surface.d.ts +5 -5
  21. package/dist/access-recall-surface.js +26 -26
  22. package/dist/access-schema.js +4 -4
  23. package/dist/{access-service-m-2VO_Ig.d.ts → access-service-DZX0sYAv.d.ts} +3 -3
  24. package/dist/access-service.d.ts +5 -5
  25. package/dist/access-service.js +26 -26
  26. package/dist/access-surface-catalog.d.ts +5 -5
  27. package/dist/access-surface-catalog.js +1 -0
  28. package/dist/access-surface-catalog.js.map +1 -1
  29. package/dist/access-token-capabilities.d.ts +174 -0
  30. package/dist/access-token-capabilities.js +33 -0
  31. package/dist/action-confidence.d.ts +1 -1
  32. package/dist/active-memory-bridge.d.ts +1 -1
  33. package/dist/active-recall.d.ts +1 -1
  34. package/dist/active-recall.js +1 -1
  35. package/dist/adapters/index.js +4 -4
  36. package/dist/adapters/registry.js +2 -2
  37. package/dist/{auto-sync-HMHQHUAG.js → auto-sync-G6IU7L6C.js} +3 -3
  38. package/dist/behavior-learner.d.ts +1 -1
  39. package/dist/behavior-signals.d.ts +1 -1
  40. package/dist/bootstrap.d.ts +4 -4
  41. package/dist/briefing.d.ts +1 -1
  42. package/dist/briefing.js +7 -7
  43. package/dist/buffer-surprise-report.d.ts +1 -1
  44. package/dist/buffer.d.ts +1 -1
  45. package/dist/calibration.d.ts +1 -1
  46. package/dist/capabilities.d.ts +1 -1
  47. package/dist/{capsule-crypto-CZJSLEFG.js → capsule-crypto-RAARDY3M.js} +2 -2
  48. package/dist/capsule-crypto-RAARDY3M.js.map +1 -0
  49. package/dist/{catalog-BxWokdC2.d.ts → catalog-DoH2b0OR.d.ts} +1 -1
  50. package/dist/causal-behavior.d.ts +1 -1
  51. package/dist/causal-behavior.js +5 -5
  52. package/dist/causal-chain.js +3 -3
  53. package/dist/causal-consolidation.d.ts +1 -1
  54. package/dist/causal-consolidation.js +11 -11
  55. package/dist/causal-retrieval.js +3 -3
  56. package/dist/causal-trajectory-graph.d.ts +1 -1
  57. package/dist/causal-trajectory.js +1 -1
  58. package/dist/{chunk-7QWMTOIF.js → chunk-2B7DP7AP.js} +31 -31
  59. package/dist/{chunk-4BFRBP45.js → chunk-2JFDHI2K.js} +2 -2
  60. package/dist/{chunk-OHDJ34CC.js → chunk-2SFEFR5I.js} +2 -2
  61. package/dist/{chunk-E2SPGGUI.js → chunk-4OKLXWDZ.js} +13 -6
  62. package/dist/chunk-4OKLXWDZ.js.map +1 -0
  63. package/dist/{chunk-ILFJ7AVS.js → chunk-4WNLSSHL.js} +35 -21
  64. package/dist/chunk-4WNLSSHL.js.map +1 -0
  65. package/dist/{chunk-YDSWRD33.js → chunk-5K5VEDFY.js} +4 -4
  66. package/dist/{chunk-CZAZX7JP.js → chunk-7BAJAXGB.js} +4 -4
  67. package/dist/{chunk-CXLNZXG5.js → chunk-7XGSIUP5.js} +1 -1
  68. package/dist/{chunk-ZPOROUTX.js → chunk-AOYJVCFN.js} +5 -5
  69. package/dist/{chunk-IC6QX5TC.js → chunk-BGMSRN6I.js} +5 -5
  70. package/dist/{chunk-5QZDMSSN.js → chunk-CXEL3Y22.js} +70 -70
  71. package/dist/{chunk-M5QKGHCR.js → chunk-CYWCKFCL.js} +5 -5
  72. package/dist/{chunk-2U2A5HF4.js → chunk-D2XYYU5Q.js} +5 -5
  73. package/dist/chunk-D7FOKIY5.js +173 -0
  74. package/dist/chunk-D7FOKIY5.js.map +1 -0
  75. package/dist/{chunk-DGYCWCQ7.js → chunk-DZSAXE3T.js} +2 -2
  76. package/dist/{chunk-2BFLDH5F.js → chunk-EEIROWEG.js} +2 -2
  77. package/dist/{chunk-6ZIETXZ2.js → chunk-H5PFR5ZT.js} +2 -2
  78. package/dist/{chunk-2FOD2YY3.js → chunk-I74ZEBMA.js} +236 -103
  79. package/dist/chunk-I74ZEBMA.js.map +1 -0
  80. package/dist/chunk-IC2TCZJ2.js +54 -0
  81. package/dist/chunk-IC2TCZJ2.js.map +1 -0
  82. package/dist/{chunk-66FLU5BT.js → chunk-II6WHCCW.js} +6 -6
  83. package/dist/{chunk-YPEMNNNY.js → chunk-ITWTKT2R.js} +6 -6
  84. package/dist/{chunk-AKUCU7CI.js → chunk-JI5AVXYO.js} +5 -5
  85. package/dist/{chunk-27FLVMDC.js → chunk-KMF67QDQ.js} +7 -7
  86. package/dist/{chunk-FLVL4L3L.js → chunk-KTULX4YO.js} +4 -4
  87. package/dist/{chunk-FZGGZAAU.js → chunk-L2QJQSHL.js} +146 -2
  88. package/dist/chunk-L2QJQSHL.js.map +1 -0
  89. package/dist/{chunk-4P4626RY.js → chunk-L4UZBJNM.js} +4 -4
  90. package/dist/{chunk-JLR3JSTL.js → chunk-L6V3WJ55.js} +3 -3
  91. package/dist/{chunk-6BISDEN6.js → chunk-LNHJ32NK.js} +14 -14
  92. package/dist/{chunk-437S3G37.js → chunk-LNQUAJNC.js} +1 -1
  93. package/dist/{chunk-LOR6ZM5R.js → chunk-MFDJ63U5.js} +2 -2
  94. package/dist/{chunk-HRCACVHL.js → chunk-NFTABV56.js} +2 -2
  95. package/dist/{chunk-OUMTBFSQ.js → chunk-NKCPUHCI.js} +5 -5
  96. package/dist/{chunk-KCJ5H6XQ.js → chunk-ODSYJXDU.js} +2 -2
  97. package/dist/{chunk-2QSZNTDO.js → chunk-RKNJBZ55.js} +4 -4
  98. package/dist/{chunk-NG7YBCJO.js → chunk-SNBEVJBX.js} +4 -4
  99. package/dist/{chunk-CZAA5N5S.js → chunk-SNNIUDRS.js} +2 -2
  100. package/dist/{chunk-P6SYWE4G.js → chunk-STCCFQU5.js} +9 -9
  101. package/dist/{chunk-X4A62ET7.js → chunk-TI7IHDBQ.js} +17 -17
  102. package/dist/{chunk-BGTAL46Y.js → chunk-TV7C3HCB.js} +2 -2
  103. package/dist/{chunk-EPGWWCZF.js → chunk-UBGAOYBP.js} +6 -6
  104. package/dist/{chunk-M7GGMGMZ.js → chunk-UDCDGP6A.js} +15 -15
  105. package/dist/{chunk-2MR3MFQB.js → chunk-UPSAT4PY.js} +2 -2
  106. package/dist/{chunk-CGS7UKWM.js → chunk-VCW74PNH.js} +2 -2
  107. package/dist/{chunk-DR6PEJU3.js → chunk-VWEWK2BM.js} +44 -59
  108. package/dist/chunk-VWEWK2BM.js.map +1 -0
  109. package/dist/{chunk-CLX5VDNY.js → chunk-Y4RKAQZ7.js} +4 -4
  110. package/dist/{chunk-EZ25VE3G.js → chunk-YNDLCWXS.js} +4 -4
  111. package/dist/{cli-EiBBOt3r.d.ts → cli-1dghPCO2.d.ts} +3 -3
  112. package/dist/cli.d.ts +6 -6
  113. package/dist/cli.js +57 -55
  114. package/dist/compounding/engine.d.ts +1 -1
  115. package/dist/compounding/engine.js +7 -7
  116. package/dist/compounding/preference-consolidator.d.ts +1 -1
  117. package/dist/compression-optimizer.d.ts +1 -1
  118. package/dist/config.d.ts +1 -1
  119. package/dist/config.js +1 -1
  120. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  121. package/dist/connectors/codex-materialize-runner.js +7 -7
  122. package/dist/connectors/codex-materialize.d.ts +1 -1
  123. package/dist/connectors/index.d.ts +1 -1
  124. package/dist/connectors/index.js +11 -9
  125. package/dist/consolidation-provenance-check.d.ts +1 -1
  126. package/dist/consolidation-undo.d.ts +1 -1
  127. package/dist/contradiction/index.d.ts +1 -1
  128. package/dist/contradiction/index.js +4 -4
  129. package/dist/conversation-index/backend.d.ts +1 -1
  130. package/dist/conversation-index/backend.js +2 -2
  131. package/dist/conversation-index/chunker.d.ts +1 -1
  132. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  133. package/dist/conversation-index/indexer.d.ts +1 -1
  134. package/dist/conversation-index/search.d.ts +1 -1
  135. package/dist/dashboard-runtime.js +2 -2
  136. package/dist/day-summary.d.ts +1 -1
  137. package/dist/delinearize.d.ts +1 -1
  138. package/dist/direct-answer-wiring.d.ts +1 -1
  139. package/dist/direct-answer.d.ts +1 -1
  140. package/dist/embedding-fallback.d.ts +1 -1
  141. package/dist/enrichment/index.d.ts +1 -1
  142. package/dist/entity-retrieval.d.ts +1 -1
  143. package/dist/entity-retrieval.js +7 -7
  144. package/dist/entity-schema.d.ts +1 -1
  145. package/dist/explicit-capture.d.ts +4 -4
  146. package/dist/extraction-faithfulness.d.ts +1 -1
  147. package/dist/extraction-judge-telemetry.d.ts +1 -1
  148. package/dist/extraction-judge-training.d.ts +1 -1
  149. package/dist/extraction-judge.d.ts +1 -1
  150. package/dist/extraction.d.ts +1 -1
  151. package/dist/fallback-llm.d.ts +1 -1
  152. package/dist/{first-start-migration-DY6YCRC2.js → first-start-migration-VBJQL6OI.js} +5 -5
  153. package/dist/graph-dashboard-diff.d.ts +1 -1
  154. package/dist/graph-dashboard-key.d.ts +1 -1
  155. package/dist/graph-dashboard-parser.d.ts +1 -1
  156. package/dist/graph-edge-reinforcement.d.ts +1 -1
  157. package/dist/graph-snapshot.d.ts +1 -1
  158. package/dist/graph.d.ts +1 -1
  159. package/dist/identity-continuity.d.ts +1 -1
  160. package/dist/importance.d.ts +1 -1
  161. package/dist/index.d.ts +13 -10
  162. package/dist/index.js +115 -93
  163. package/dist/intent.d.ts +1 -1
  164. package/dist/lcm/engine.d.ts +1 -1
  165. package/dist/lcm/engine.js +2 -2
  166. package/dist/lcm/index.d.ts +1 -1
  167. package/dist/lcm/index.js +2 -2
  168. package/dist/lcm/tools.d.ts +1 -1
  169. package/dist/lifecycle.d.ts +1 -1
  170. package/dist/live-connectors-runner.d.ts +1 -1
  171. package/dist/local-llm.d.ts +1 -1
  172. package/dist/local-model-endpoint.d.ts +1 -1
  173. package/dist/maintenance/memory-governance.d.ts +1 -1
  174. package/dist/maintenance/memory-governance.js +8 -8
  175. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -7
  176. package/dist/maintenance/rebuild-memory-projection.js +9 -9
  177. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  178. package/dist/mcp-read-only-tools.d.ts +16 -0
  179. package/dist/mcp-read-only-tools.js +8 -0
  180. package/dist/mcp-read-only-tools.js.map +1 -0
  181. package/dist/memory-action-policy.d.ts +1 -1
  182. package/dist/memory-cache.d.ts +1 -1
  183. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  184. package/dist/memory-projection-store.d.ts +1 -1
  185. package/dist/memory-provenance.d.ts +1 -1
  186. package/dist/memory-worth-outcomes.d.ts +1 -1
  187. package/dist/models-json.d.ts +1 -1
  188. package/dist/namespaces/migrate.d.ts +2 -2
  189. package/dist/namespaces/migrate.js +17 -17
  190. package/dist/namespaces/principal.d.ts +1 -1
  191. package/dist/namespaces/search.d.ts +1 -1
  192. package/dist/namespaces/search.js +9 -9
  193. package/dist/namespaces/storage.d.ts +2 -2
  194. package/dist/namespaces/storage.js +7 -7
  195. package/dist/native-knowledge.d.ts +1 -1
  196. package/dist/operator-toolkit.d.ts +1 -1
  197. package/dist/operator-toolkit.js +22 -22
  198. package/dist/orchestration/compression-guideline-coordinator.d.ts +1 -1
  199. package/dist/orchestration/maintenance.d.ts +2 -2
  200. package/dist/orchestration/maintenance.js +9 -9
  201. package/dist/{orchestrator-B2Y28Z9t.d.ts → orchestrator-Dh3WSW_O.d.ts} +3 -3
  202. package/dist/orchestrator.d.ts +4 -4
  203. package/dist/orchestrator.js +81 -79
  204. package/dist/patterns-cli.d.ts +1 -1
  205. package/dist/policy-runtime.d.ts +1 -1
  206. package/dist/provenance.d.ts +1 -1
  207. package/dist/{qmd-Db9mOkzB.d.ts → qmd-DoUVxqND.d.ts} +1 -1
  208. package/dist/qmd-preflight.d.ts +2 -2
  209. package/dist/qmd-recall-cache.d.ts +1 -1
  210. package/dist/qmd.d.ts +2 -2
  211. package/dist/recall-disclosure-escalation.d.ts +1 -1
  212. package/dist/recall-explain-renderer.d.ts +1 -1
  213. package/dist/recall-planner-llm.d.ts +1 -1
  214. package/dist/recall-state.d.ts +1 -1
  215. package/dist/recall-tag-filter.d.ts +1 -1
  216. package/dist/recall-timings.d.ts +1 -1
  217. package/dist/recall-xray-cli.d.ts +1 -1
  218. package/dist/recall-xray-renderer.d.ts +1 -1
  219. package/dist/recall-xray.d.ts +1 -1
  220. package/dist/resolve-auth-token.d.ts +1 -1
  221. package/dist/resume-bundles.js +2 -2
  222. package/dist/retrieval-agents.d.ts +2 -2
  223. package/dist/retrieval-tiers.d.ts +1 -1
  224. package/dist/routing/engine.d.ts +1 -1
  225. package/dist/routing/store.d.ts +1 -1
  226. package/dist/search/embed-helper.d.ts +1 -1
  227. package/dist/search/factory.d.ts +1 -1
  228. package/dist/search/factory.js +8 -8
  229. package/dist/search/index.d.ts +1 -1
  230. package/dist/search/index.js +12 -12
  231. package/dist/search/lancedb-backend.d.ts +1 -1
  232. package/dist/search/lancedb-backend.js +2 -2
  233. package/dist/search/meilisearch-backend.d.ts +1 -1
  234. package/dist/search/meilisearch-backend.js +2 -2
  235. package/dist/search/noop-backend.d.ts +1 -1
  236. package/dist/search/orama-backend.d.ts +1 -1
  237. package/dist/search/orama-backend.js +2 -2
  238. package/dist/search/port.d.ts +1 -1
  239. package/dist/search/remote-backend.d.ts +1 -1
  240. package/dist/{semantic-consolidation-BDVIbLRw.d.ts → semantic-consolidation-Dof1865o.d.ts} +1 -1
  241. package/dist/semantic-consolidation.d.ts +2 -2
  242. package/dist/semantic-consolidation.js +9 -9
  243. package/dist/semantic-rule-promotion.js +7 -7
  244. package/dist/semantic-rule-verifier.d.ts +1 -1
  245. package/dist/semantic-rule-verifier.js +8 -8
  246. package/dist/session-observer-bands.d.ts +1 -1
  247. package/dist/session-observer-state.d.ts +1 -1
  248. package/dist/shared-context/manager.d.ts +1 -1
  249. package/dist/signal.d.ts +1 -1
  250. package/dist/storage.d.ts +1 -1
  251. package/dist/storage.js +6 -6
  252. package/dist/summarizer.d.ts +1 -1
  253. package/dist/summary-snapshot.d.ts +1 -1
  254. package/dist/temporal-supersession.d.ts +1 -1
  255. package/dist/temporal-validity.d.ts +1 -1
  256. package/dist/threading.d.ts +1 -1
  257. package/dist/tier-migration.d.ts +1 -1
  258. package/dist/tier-routing.d.ts +1 -1
  259. package/dist/{tier-stats-TG6GUZ6N.js → tier-stats-5XF4UBRQ.js} +4 -4
  260. package/dist/tokens.d.ts +17 -2
  261. package/dist/tokens.js +3 -1
  262. package/dist/topics.d.ts +1 -1
  263. package/dist/transcript.d.ts +1 -1
  264. package/dist/transfer/backup.js +2 -2
  265. package/dist/transfer/capsule-export.js +3 -3
  266. package/dist/transfer/capsule-import.js +3 -3
  267. package/dist/trust-score-stage.d.ts +1 -1
  268. package/dist/trust-score.d.ts +1 -1
  269. package/dist/{types-ljkd82rn.d.ts → types-C7HUgOuA.d.ts} +1 -1
  270. package/dist/types.d.ts +1 -1
  271. package/dist/utility-runtime.d.ts +1 -1
  272. package/dist/verified-recall.js +8 -8
  273. package/package.json +2 -2
  274. package/src/access-boundary.test.ts +62 -0
  275. package/src/access-boundary.ts +165 -126
  276. package/src/access-http.test.ts +781 -0
  277. package/src/access-http.ts +334 -108
  278. package/src/access-mcp.test.ts +264 -0
  279. package/src/access-mcp.ts +45 -70
  280. package/src/access-operations-batch.ts +35 -12
  281. package/src/access-surface-catalog.test.ts +22 -14
  282. package/src/access-surface-catalog.ts +6 -3
  283. package/src/access-token-capabilities.test.ts +844 -0
  284. package/src/access-token-capabilities.ts +391 -0
  285. package/src/chat/chat-mcp.test.ts +232 -0
  286. package/src/chat/chat-session.ts +34 -0
  287. package/src/index.ts +14 -0
  288. package/src/mcp-read-only-tools.ts +61 -0
  289. package/src/tokens.ts +32 -3
  290. package/dist/chunk-2FOD2YY3.js.map +0 -1
  291. package/dist/chunk-DR6PEJU3.js.map +0 -1
  292. package/dist/chunk-E2SPGGUI.js.map +0 -1
  293. package/dist/chunk-FZGGZAAU.js.map +0 -1
  294. package/dist/chunk-ILFJ7AVS.js.map +0 -1
  295. /package/dist/{capsule-crypto-CZJSLEFG.js.map → access-token-capabilities.js.map} +0 -0
  296. /package/dist/{auto-sync-HMHQHUAG.js.map → auto-sync-G6IU7L6C.js.map} +0 -0
  297. /package/dist/{chunk-7QWMTOIF.js.map → chunk-2B7DP7AP.js.map} +0 -0
  298. /package/dist/{chunk-4BFRBP45.js.map → chunk-2JFDHI2K.js.map} +0 -0
  299. /package/dist/{chunk-OHDJ34CC.js.map → chunk-2SFEFR5I.js.map} +0 -0
  300. /package/dist/{chunk-YDSWRD33.js.map → chunk-5K5VEDFY.js.map} +0 -0
  301. /package/dist/{chunk-CZAZX7JP.js.map → chunk-7BAJAXGB.js.map} +0 -0
  302. /package/dist/{chunk-CXLNZXG5.js.map → chunk-7XGSIUP5.js.map} +0 -0
  303. /package/dist/{chunk-ZPOROUTX.js.map → chunk-AOYJVCFN.js.map} +0 -0
  304. /package/dist/{chunk-IC6QX5TC.js.map → chunk-BGMSRN6I.js.map} +0 -0
  305. /package/dist/{chunk-5QZDMSSN.js.map → chunk-CXEL3Y22.js.map} +0 -0
  306. /package/dist/{chunk-M5QKGHCR.js.map → chunk-CYWCKFCL.js.map} +0 -0
  307. /package/dist/{chunk-2U2A5HF4.js.map → chunk-D2XYYU5Q.js.map} +0 -0
  308. /package/dist/{chunk-DGYCWCQ7.js.map → chunk-DZSAXE3T.js.map} +0 -0
  309. /package/dist/{chunk-2BFLDH5F.js.map → chunk-EEIROWEG.js.map} +0 -0
  310. /package/dist/{chunk-6ZIETXZ2.js.map → chunk-H5PFR5ZT.js.map} +0 -0
  311. /package/dist/{chunk-66FLU5BT.js.map → chunk-II6WHCCW.js.map} +0 -0
  312. /package/dist/{chunk-YPEMNNNY.js.map → chunk-ITWTKT2R.js.map} +0 -0
  313. /package/dist/{chunk-AKUCU7CI.js.map → chunk-JI5AVXYO.js.map} +0 -0
  314. /package/dist/{chunk-27FLVMDC.js.map → chunk-KMF67QDQ.js.map} +0 -0
  315. /package/dist/{chunk-FLVL4L3L.js.map → chunk-KTULX4YO.js.map} +0 -0
  316. /package/dist/{chunk-4P4626RY.js.map → chunk-L4UZBJNM.js.map} +0 -0
  317. /package/dist/{chunk-JLR3JSTL.js.map → chunk-L6V3WJ55.js.map} +0 -0
  318. /package/dist/{chunk-6BISDEN6.js.map → chunk-LNHJ32NK.js.map} +0 -0
  319. /package/dist/{chunk-437S3G37.js.map → chunk-LNQUAJNC.js.map} +0 -0
  320. /package/dist/{chunk-LOR6ZM5R.js.map → chunk-MFDJ63U5.js.map} +0 -0
  321. /package/dist/{chunk-HRCACVHL.js.map → chunk-NFTABV56.js.map} +0 -0
  322. /package/dist/{chunk-OUMTBFSQ.js.map → chunk-NKCPUHCI.js.map} +0 -0
  323. /package/dist/{chunk-KCJ5H6XQ.js.map → chunk-ODSYJXDU.js.map} +0 -0
  324. /package/dist/{chunk-2QSZNTDO.js.map → chunk-RKNJBZ55.js.map} +0 -0
  325. /package/dist/{chunk-NG7YBCJO.js.map → chunk-SNBEVJBX.js.map} +0 -0
  326. /package/dist/{chunk-CZAA5N5S.js.map → chunk-SNNIUDRS.js.map} +0 -0
  327. /package/dist/{chunk-P6SYWE4G.js.map → chunk-STCCFQU5.js.map} +0 -0
  328. /package/dist/{chunk-X4A62ET7.js.map → chunk-TI7IHDBQ.js.map} +0 -0
  329. /package/dist/{chunk-BGTAL46Y.js.map → chunk-TV7C3HCB.js.map} +0 -0
  330. /package/dist/{chunk-EPGWWCZF.js.map → chunk-UBGAOYBP.js.map} +0 -0
  331. /package/dist/{chunk-M7GGMGMZ.js.map → chunk-UDCDGP6A.js.map} +0 -0
  332. /package/dist/{chunk-2MR3MFQB.js.map → chunk-UPSAT4PY.js.map} +0 -0
  333. /package/dist/{chunk-CGS7UKWM.js.map → chunk-VCW74PNH.js.map} +0 -0
  334. /package/dist/{chunk-CLX5VDNY.js.map → chunk-Y4RKAQZ7.js.map} +0 -0
  335. /package/dist/{chunk-EZ25VE3G.js.map → chunk-YNDLCWXS.js.map} +0 -0
  336. /package/dist/{first-start-migration-DY6YCRC2.js.map → first-start-migration-VBJQL6OI.js.map} +0 -0
  337. /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(connector: string, tokensPath?: string): TokenEntry {
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;