@remnic/core 9.69.42 → 9.69.44

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 (566) hide show
  1. package/dist/access-admin-ops-surface.d.ts +16 -14
  2. package/dist/access-admin-ops-surface.js +33 -25
  3. package/dist/access-authorization-probe.d.ts +16 -14
  4. package/dist/access-authorization-probe.js +34 -26
  5. package/dist/access-boundary.d.ts +16 -14
  6. package/dist/access-boundary.js +33 -25
  7. package/dist/access-cli.js +93 -83
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +2 -1
  10. package/dist/access-extraction-force-flush.d.ts +16 -14
  11. package/dist/access-extraction-force-flush.js +33 -25
  12. package/dist/access-health-types.d.ts +2 -1
  13. package/dist/access-http-briefing.d.ts +16 -14
  14. package/dist/access-http-briefing.js +34 -26
  15. package/dist/access-http-lcm-compaction.d.ts +16 -14
  16. package/dist/access-http-lifecycle-flush.d.ts +16 -14
  17. package/dist/access-http-offline-stream.d.ts +16 -14
  18. package/dist/access-http-query.d.ts +3 -2
  19. package/dist/access-http-query.js +35 -27
  20. package/dist/access-http.d.ts +17 -15
  21. package/dist/access-http.js +55 -45
  22. package/dist/access-identity-continuity-surface.d.ts +12 -11
  23. package/dist/access-identity-continuity-surface.js +33 -25
  24. package/dist/access-lcm-surface.d.ts +16 -14
  25. package/dist/access-lcm-surface.js +33 -25
  26. package/dist/access-mcp-output-schemas.js +1 -1
  27. package/dist/access-mcp-shared-context-tools.d.ts +16 -14
  28. package/dist/access-mcp.d.ts +16 -14
  29. package/dist/access-mcp.js +45 -36
  30. package/dist/access-memory-search-fanout.d.ts +3 -2
  31. package/dist/{access-namespace-preflight-ShnAJ9uL.d.ts → access-namespace-preflight-CE-RrXKu.d.ts} +1 -1
  32. package/dist/access-namespace-preflight.d.ts +4 -3
  33. package/dist/access-namespace-preflight.js +33 -25
  34. package/dist/access-observe-transcript.d.ts +12 -11
  35. package/dist/access-observe-write-category.d.ts +5 -3
  36. package/dist/access-observe-write-category.js +4 -4
  37. package/dist/access-observe-write-surface.d.ts +16 -14
  38. package/dist/access-observe-write-surface.js +33 -25
  39. package/dist/access-offline-manifest.d.ts +12 -11
  40. package/dist/access-operations-batch.js +35 -28
  41. package/dist/access-operations.d.ts +17 -15
  42. package/dist/access-operations.js +41 -33
  43. package/dist/access-recall-concurrency.d.ts +16 -14
  44. package/dist/access-recall-concurrency.js +33 -25
  45. package/dist/access-recall-response.d.ts +16 -14
  46. package/dist/access-recall-response.js +33 -25
  47. package/dist/access-recall-surface.d.ts +16 -14
  48. package/dist/access-recall-surface.js +33 -25
  49. package/dist/access-schema.d.ts +10 -2
  50. package/dist/access-schema.js +5 -3
  51. package/dist/{access-service-DjG_e2cM.d.ts → access-service-Cww3xAAy.d.ts} +13 -10
  52. package/dist/access-service-helpers.d.ts +16 -14
  53. package/dist/access-service.d.ts +16 -14
  54. package/dist/access-service.js +33 -25
  55. package/dist/access-surface-catalog.d.ts +16 -14
  56. package/dist/access-surface-catalog.js +39 -27
  57. package/dist/access-surface-catalog.js.map +1 -1
  58. package/dist/access-wearables-meetings-surface.d.ts +5 -4
  59. package/dist/action-confidence.d.ts +2 -1
  60. package/dist/active-memory-bridge.d.ts +2 -1
  61. package/dist/active-recall.d.ts +2 -1
  62. package/dist/active-recall.js +5 -3
  63. package/dist/active-recall.js.map +1 -1
  64. package/dist/activity/digest.d.ts +2 -1
  65. package/dist/ambient-provenance.d.ts +2 -1
  66. package/dist/artifact-search.d.ts +2 -1
  67. package/dist/background-generation.d.ts +2 -1
  68. package/dist/behavior-learner.d.ts +2 -1
  69. package/dist/behavior-signals.d.ts +2 -1
  70. package/dist/bootstrap.d.ts +12 -11
  71. package/dist/briefing-window.d.ts +3 -2
  72. package/dist/briefing.d.ts +3 -2
  73. package/dist/briefing.js +8 -8
  74. package/dist/buffer-surprise-report.d.ts +2 -1
  75. package/dist/buffer-turn-helpers.d.ts +2 -1
  76. package/dist/buffer.d.ts +3 -2
  77. package/dist/bulk-import/index.d.ts +4 -3
  78. package/dist/calibration.d.ts +2 -1
  79. package/dist/capabilities.d.ts +2 -1
  80. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
  81. package/dist/{catalog-BhuXaQHx.d.ts → catalog-Ya3DDn_T.d.ts} +1 -1
  82. package/dist/causal-behavior.d.ts +2 -1
  83. package/dist/causal-consolidation.d.ts +2 -1
  84. package/dist/causal-consolidation.js +9 -9
  85. package/dist/causal-trajectory-graph.d.ts +2 -1
  86. package/dist/{chunk-QVSRE355.js → chunk-2AV75BJW.js} +29 -1
  87. package/dist/chunk-2AV75BJW.js.map +1 -0
  88. package/dist/{chunk-WNPRRBOE.js → chunk-2HDLDBJW.js} +2 -2
  89. package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
  90. package/dist/chunk-2WMXZYMS.js +25 -0
  91. package/dist/chunk-2WMXZYMS.js.map +1 -0
  92. package/dist/{chunk-FSUFKIFS.js → chunk-2YIUUXNK.js} +2 -2
  93. package/dist/{chunk-OP722LOG.js → chunk-3254BYQV.js} +1 -1
  94. package/dist/{chunk-IUTYNDFS.js → chunk-3K64PLY3.js} +293 -43
  95. package/dist/chunk-3K64PLY3.js.map +1 -0
  96. package/dist/{chunk-CQ4BTPX6.js → chunk-3YQ7VLP3.js} +2 -2
  97. package/dist/{chunk-ZFU6QNRN.js → chunk-4WMGRLTV.js} +2 -2
  98. package/dist/{chunk-U26LB4WA.js → chunk-5AJZ7EUW.js} +2 -2
  99. package/dist/chunk-5KVT6G5U.js +31 -0
  100. package/dist/chunk-5KVT6G5U.js.map +1 -0
  101. package/dist/{chunk-WN2OXGGH.js → chunk-66YUOI53.js} +1 -1
  102. package/dist/chunk-66YUOI53.js.map +1 -0
  103. package/dist/{chunk-R45VFSEV.js → chunk-7F47R4H4.js} +2 -2
  104. package/dist/{chunk-2EYZ32LH.js → chunk-7RGX7BMF.js} +24 -2
  105. package/dist/{chunk-2EYZ32LH.js.map → chunk-7RGX7BMF.js.map} +1 -1
  106. package/dist/{chunk-LVFI5LG7.js → chunk-A7GQBJP5.js} +7 -7
  107. package/dist/chunk-AS2NOPDM.js +30 -0
  108. package/dist/chunk-AS2NOPDM.js.map +1 -0
  109. package/dist/{chunk-CTETTVDN.js → chunk-BZDK5EOD.js} +2 -2
  110. package/dist/{chunk-PLJ2MQFT.js → chunk-C3YEB7CR.js} +7 -7
  111. package/dist/{chunk-XJLTQTAO.js → chunk-D7UUB33A.js} +2 -2
  112. package/dist/{chunk-DMTSKY4W.js → chunk-DABSYX7V.js} +3 -3
  113. package/dist/{chunk-3RLWUW7G.js → chunk-DDGQDNQW.js} +2 -2
  114. package/dist/{chunk-ZGXHTV5Y.js → chunk-EOXCOZ6L.js} +2 -2
  115. package/dist/{chunk-EAARGPWI.js → chunk-F3TURDFG.js} +3 -1
  116. package/dist/chunk-F3TURDFG.js.map +1 -0
  117. package/dist/{chunk-DLPMOSNH.js → chunk-GKKLI23D.js} +2 -2
  118. package/dist/{chunk-I65KB36L.js → chunk-GMU7MAHS.js} +9 -9
  119. package/dist/{chunk-JC2OBYYD.js → chunk-HKQAI6XI.js} +2 -2
  120. package/dist/{chunk-ETE3SGAH.js → chunk-IAGEEVQL.js} +2 -2
  121. package/dist/{chunk-HO2P3FAX.js → chunk-IOTYIECA.js} +19 -15
  122. package/dist/chunk-IOTYIECA.js.map +1 -0
  123. package/dist/{chunk-GIM2AGFL.js → chunk-IWHNT35B.js} +3 -3
  124. package/dist/{chunk-AHHFBJX7.js → chunk-JDL5BYYF.js} +3 -3
  125. package/dist/{chunk-K27INAPR.js → chunk-JMBTNVMW.js} +2 -2
  126. package/dist/{chunk-ZOGKZ2XT.js → chunk-JUOJGZPV.js} +6 -2
  127. package/dist/chunk-JUOJGZPV.js.map +1 -0
  128. package/dist/{chunk-L732NBPR.js → chunk-K3IVJ5ML.js} +96 -42
  129. package/dist/chunk-K3IVJ5ML.js.map +1 -0
  130. package/dist/{chunk-JMAP6L6Q.js → chunk-KDLOKVX7.js} +2 -2
  131. package/dist/chunk-KIW3OOZE.js +39 -0
  132. package/dist/chunk-KIW3OOZE.js.map +1 -0
  133. package/dist/{chunk-HK44SV6K.js → chunk-KORQWGUA.js} +2 -2
  134. package/dist/{chunk-VDX2J7OX.js → chunk-KQAFEZQX.js} +2 -2
  135. package/dist/{chunk-4IGOLIWM.js → chunk-L63M2PE4.js} +2 -2
  136. package/dist/{chunk-BIANISES.js → chunk-LD22AAJI.js} +2 -2
  137. package/dist/chunk-LVTT5AUG.js +79 -0
  138. package/dist/chunk-LVTT5AUG.js.map +1 -0
  139. package/dist/{chunk-RXYO6NA6.js → chunk-M6FKXOYV.js} +2 -2
  140. package/dist/{chunk-LCVYO3ON.js → chunk-MOL7JK4F.js} +2 -2
  141. package/dist/{chunk-VNQRRUNS.js → chunk-O6ZSWHVR.js} +2 -3
  142. package/dist/chunk-O6ZSWHVR.js.map +1 -0
  143. package/dist/chunk-OCX7OWOC.js +95 -0
  144. package/dist/chunk-OCX7OWOC.js.map +1 -0
  145. package/dist/{chunk-HPMCKAET.js → chunk-OGAKUA7I.js} +2 -2
  146. package/dist/{chunk-AOGICQMH.js → chunk-PF7LQ22G.js} +3 -3
  147. package/dist/{chunk-AUSRUOMQ.js → chunk-PW4HTWXL.js} +2 -2
  148. package/dist/{chunk-ZYRAY5FL.js → chunk-QCTXQ2HW.js} +2 -2
  149. package/dist/chunk-QZ4U67KO.js +98 -0
  150. package/dist/chunk-QZ4U67KO.js.map +1 -0
  151. package/dist/{chunk-G3NTZZWT.js → chunk-R3H2AXO2.js} +2 -2
  152. package/dist/{chunk-HSJU6JFT.js → chunk-ROXDOKLM.js} +12 -6
  153. package/dist/chunk-ROXDOKLM.js.map +1 -0
  154. package/dist/{chunk-OCWFKD5Q.js → chunk-SUS64JER.js} +2 -2
  155. package/dist/{chunk-RTXHUVOD.js → chunk-SZV2L2IG.js} +10 -10
  156. package/dist/{chunk-AIVRD66I.js → chunk-T3F2HWIG.js} +2 -2
  157. package/dist/chunk-TE6S7KDF.js +47 -0
  158. package/dist/chunk-TE6S7KDF.js.map +1 -0
  159. package/dist/{chunk-KJQ4Y2PY.js → chunk-VDLNQVYW.js} +8 -8
  160. package/dist/{chunk-N7B6V7SG.js → chunk-VHANUT45.js} +5 -5
  161. package/dist/{chunk-E4FRR4MA.js → chunk-VJXMFBVR.js} +2 -2
  162. package/dist/{chunk-Q62GA5U2.js → chunk-VW5TGNJN.js} +2 -2
  163. package/dist/{chunk-Q62GA5U2.js.map → chunk-VW5TGNJN.js.map} +1 -1
  164. package/dist/chunk-VYDGHJIN.js +17 -0
  165. package/dist/chunk-VYDGHJIN.js.map +1 -0
  166. package/dist/{chunk-GWNSKQDA.js → chunk-W44T2KHG.js} +3 -3
  167. package/dist/{chunk-2UINSKQC.js → chunk-W6YDAIVB.js} +12 -6
  168. package/dist/chunk-W6YDAIVB.js.map +1 -0
  169. package/dist/{chunk-GWEZNCGA.js → chunk-WJPR2XUN.js} +2 -2
  170. package/dist/{chunk-2PDMIPMP.js → chunk-WLHPCAVD.js} +6 -6
  171. package/dist/chunk-WLHPCAVD.js.map +1 -0
  172. package/dist/{chunk-KCKXOS4Y.js → chunk-WNMVUWI7.js} +3 -3
  173. package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
  174. package/dist/{chunk-LWF6GOII.js → chunk-XK76RJBN.js} +2 -2
  175. package/dist/{chunk-AAX22E4K.js → chunk-XLPZN3A5.js} +2 -2
  176. package/dist/{chunk-VBK6SRNE.js → chunk-XOCGC3FJ.js} +2 -2
  177. package/dist/{chunk-ADARR5KF.js → chunk-Y77UTH7F.js} +42 -39
  178. package/dist/chunk-Y77UTH7F.js.map +1 -0
  179. package/dist/chunk-YE4JBZO5.js +44 -0
  180. package/dist/chunk-YE4JBZO5.js.map +1 -0
  181. package/dist/{chunk-AAAFZW3U.js → chunk-ZBSP4BSN.js} +2 -2
  182. package/dist/{chunk-VVX5PZFS.js → chunk-ZHXSOMYH.js} +2 -2
  183. package/dist/{chunk-7PSRCGWT.js → chunk-ZVQ5HF77.js} +2 -2
  184. package/dist/{cli-Cx9s_VRn.d.ts → cli-Cl7bKIWJ.d.ts} +5 -5
  185. package/dist/cli.d.ts +18 -16
  186. package/dist/cli.js +77 -67
  187. package/dist/coding/export-okf-codegraph.d.ts +2 -1
  188. package/dist/coding/export-okf-codegraph.js +7 -7
  189. package/dist/coding/pre-action-gate.d.ts +2 -1
  190. package/dist/compounding/engine.d.ts +3 -2
  191. package/dist/compounding/engine.js +8 -8
  192. package/dist/compounding/preference-consolidator.d.ts +2 -1
  193. package/dist/compression-optimizer.d.ts +2 -1
  194. package/dist/config.d.ts +2 -1
  195. package/dist/config.js +5 -3
  196. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  197. package/dist/connectors/codex-materialize-runner.js +8 -8
  198. package/dist/connectors/codex-materialize.d.ts +2 -1
  199. package/dist/connectors/index.d.ts +2 -1
  200. package/dist/connectors/index.js +8 -8
  201. package/dist/consolidation-provenance-check.d.ts +3 -2
  202. package/dist/consolidation-undo.d.ts +3 -2
  203. package/dist/contradiction/index.d.ts +5 -4
  204. package/dist/converge-config.d.ts +2 -1
  205. package/dist/convergence-refresh.d.ts +3 -2
  206. package/dist/convergence-refresh.js +10 -10
  207. package/dist/conversation-index/backend.d.ts +2 -1
  208. package/dist/conversation-index/chunker.d.ts +2 -1
  209. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  210. package/dist/conversation-index/indexer.d.ts +2 -1
  211. package/dist/conversation-index/search.d.ts +2 -1
  212. package/dist/corpus-watermark.d.ts +2 -1
  213. package/dist/corpus-watermark.js +10 -10
  214. package/dist/cross-lingual-recall.d.ts +2 -1
  215. package/dist/day-summary.d.ts +2 -1
  216. package/dist/deep-recall-config.d.ts +11 -1
  217. package/dist/deep-recall-config.js +6 -3
  218. package/dist/deep-recall-http-glue.d.ts +16 -14
  219. package/dist/deep-recall-http-glue.js +5 -5
  220. package/dist/deep-recall-mcp-tools.d.ts +16 -14
  221. package/dist/deep-recall-policy-llm.d.ts +3 -2
  222. package/dist/deep-recall-seeds.d.ts +2 -1
  223. package/dist/delinearize.d.ts +2 -1
  224. package/dist/dependency-propagation-config.d.ts +2 -1
  225. package/dist/{dependency-propagation-delivery-C2QFQ97b.d.ts → dependency-propagation-delivery-CggS9BFT.d.ts} +1 -1
  226. package/dist/direct-answer-wiring.d.ts +2 -1
  227. package/dist/direct-answer.d.ts +2 -1
  228. package/dist/embedding-fallback.d.ts +2 -1
  229. package/dist/enrichment/index.d.ts +2 -1
  230. package/dist/entity-origin-fields.d.ts +2 -1
  231. package/dist/entity-retrieval.d.ts +3 -2
  232. package/dist/entity-retrieval.js +8 -8
  233. package/dist/entity-schema.d.ts +2 -1
  234. package/dist/episodic-context.d.ts +2 -1
  235. package/dist/eval-trajectory-contracts.d.ts +2 -1
  236. package/dist/eval-trajectory-store.d.ts +2 -1
  237. package/dist/eval-trajectory.d.ts +2 -1
  238. package/dist/explicit-capture.d.ts +12 -11
  239. package/dist/external-wiki-access.d.ts +16 -14
  240. package/dist/external-wiki-access.js +34 -26
  241. package/dist/external-wiki-collection-registration.d.ts +2 -1
  242. package/dist/external-wiki-collection.d.ts +2 -1
  243. package/dist/external-wiki-mcp-tools.d.ts +16 -14
  244. package/dist/extraction-error-classification.d.ts +2 -1
  245. package/dist/extraction-faithfulness.d.ts +3 -2
  246. package/dist/extraction-judge-telemetry.d.ts +3 -2
  247. package/dist/extraction-judge-training.d.ts +3 -2
  248. package/dist/extraction-judge.d.ts +3 -2
  249. package/dist/extraction-liveness.d.ts +2 -1
  250. package/dist/extraction-normalization.d.ts +2 -1
  251. package/dist/extraction-prompt.d.ts +2 -1
  252. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  253. package/dist/extraction-source-grounding.d.ts +2 -1
  254. package/dist/extraction-span-config.d.ts +2 -1
  255. package/dist/extraction-span-materialize.d.ts +2 -1
  256. package/dist/extraction.d.ts +3 -2
  257. package/dist/extraction.js +8 -8
  258. package/dist/fallback-llm-codex-subscription.d.ts +2 -1
  259. package/dist/fallback-llm.d.ts +2 -1
  260. package/dist/{generic-recall-paths-CeKQsQEn.d.ts → generic-recall-paths-CoXPSnCw.d.ts} +1 -1
  261. package/dist/graph-append-error.d.ts +2 -1
  262. package/dist/graph-dashboard-diff.d.ts +2 -1
  263. package/dist/graph-dashboard-key.d.ts +2 -1
  264. package/dist/graph-dashboard-parser.d.ts +2 -1
  265. package/dist/graph-edge-reinforcement.d.ts +2 -1
  266. package/dist/graph-jsonl.d.ts +2 -1
  267. package/dist/graph-path-reconstruction.d.ts +2 -1
  268. package/dist/graph-path-scoring.d.ts +2 -1
  269. package/dist/graph-snapshot.d.ts +2 -1
  270. package/dist/graph.d.ts +2 -1
  271. package/dist/harmonic-retrieval.js +1 -1
  272. package/dist/importance.d.ts +2 -1
  273. package/dist/importers/index.d.ts +2 -1
  274. package/dist/importers/test-utils.d.ts +2 -1
  275. package/dist/in-flight-reads.d.ts +2 -1
  276. package/dist/{index-Bau-Wl0H.d.ts → index-fdw_oK5a.d.ts} +3 -3
  277. package/dist/index.d.ts +29 -27
  278. package/dist/index.js +109 -86
  279. package/dist/intent.d.ts +2 -1
  280. package/dist/lcm/engine.d.ts +2 -1
  281. package/dist/lcm/engine.js +3 -3
  282. package/dist/lcm/index.d.ts +2 -1
  283. package/dist/lcm/index.js +11 -11
  284. package/dist/lcm/tools.d.ts +2 -1
  285. package/dist/lifecycle.d.ts +2 -1
  286. package/dist/live-connectors-runner.d.ts +2 -1
  287. package/dist/{local-llm-Bj-m01Ro.d.ts → local-llm-3-jtw52a.d.ts} +1 -1
  288. package/dist/local-llm-config.js +1 -1
  289. package/dist/local-llm-helpers.d.ts +3 -2
  290. package/dist/local-llm.d.ts +3 -2
  291. package/dist/local-model-endpoint.d.ts +2 -1
  292. package/dist/location/index.d.ts +6 -5
  293. package/dist/location/index.js +10 -10
  294. package/dist/maintenance/memory-governance.d.ts +2 -1
  295. package/dist/maintenance/memory-governance.js +8 -8
  296. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  297. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
  298. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  299. package/dist/maintenance/rebuild-memory-projection.js +9 -9
  300. package/dist/{maintenance-Ye-y-c7f.d.ts → maintenance-DgeeH0a1.d.ts} +3 -3
  301. package/dist/mcp-memory-inspector-app.d.ts +18 -16
  302. package/dist/mcp-read-only-tools.js +1 -1
  303. package/dist/memory-action-policy.d.ts +2 -1
  304. package/dist/memory-cache.d.ts +2 -1
  305. package/dist/memory-controller.d.ts +2 -1
  306. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  307. package/dist/memory-projection-store.d.ts +2 -1
  308. package/dist/memory-provenance.d.ts +2 -1
  309. package/dist/memory-snapshot.d.ts +2 -1
  310. package/dist/memory-subject-cli.d.ts +16 -14
  311. package/dist/memory-subject.d.ts +16 -14
  312. package/dist/memory-worth-outcomes.d.ts +3 -2
  313. package/dist/models-json.d.ts +2 -1
  314. package/dist/namespaces/migrate.d.ts +4 -3
  315. package/dist/namespaces/migrate.js +9 -9
  316. package/dist/namespaces/principal.d.ts +2 -1
  317. package/dist/namespaces/search.d.ts +2 -1
  318. package/dist/namespaces/search.js +4 -4
  319. package/dist/namespaces/storage.d.ts +4 -3
  320. package/dist/namespaces/storage.js +8 -8
  321. package/dist/native-knowledge.d.ts +2 -1
  322. package/dist/offline-sync-impression-drain.d.ts +2 -1
  323. package/dist/operator-doctor-corpus.d.ts +2 -1
  324. package/dist/operator-doctor-corpus.js +11 -11
  325. package/dist/operator-doctor-replica.d.ts +2 -1
  326. package/dist/operator-toolkit.d.ts +4 -3
  327. package/dist/operator-toolkit.js +20 -19
  328. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  329. package/dist/orchestration/maintenance.d.ts +5 -4
  330. package/dist/orchestration/maintenance.js +16 -16
  331. package/dist/{orchestrator-fFDDYUUV.d.ts → orchestrator-VXWKdatm.d.ts} +10 -10
  332. package/dist/orchestrator.d.ts +12 -11
  333. package/dist/orchestrator.js +93 -83
  334. package/dist/patterns-cli.d.ts +2 -1
  335. package/dist/{pipeline-D_j5n_Ih.d.ts → pipeline-CwXZBKR5.d.ts} +1 -1
  336. package/dist/policy-runtime.d.ts +2 -1
  337. package/dist/proactive-contention.d.ts +3 -2
  338. package/dist/provenance.d.ts +2 -1
  339. package/dist/{public-http-CjiSqxUx.d.ts → public-http-DdmM4scJ.d.ts} +1 -1
  340. package/dist/{qmd-CnxVjKrv.d.ts → qmd-DOLTPIQg.d.ts} +1 -1
  341. package/dist/qmd-preflight.d.ts +3 -2
  342. package/dist/qmd-recall-cache.d.ts +2 -1
  343. package/dist/qmd.d.ts +3 -2
  344. package/dist/recall-concurrency-config.d.ts +2 -1
  345. package/dist/recall-disclosure-escalation.d.ts +2 -1
  346. package/dist/recall-explain-renderer.d.ts +2 -1
  347. package/dist/recall-explain-renderer.js +3 -3
  348. package/dist/recall-memory-map.d.ts +2 -1
  349. package/dist/recall-navigate-access.d.ts +2 -1
  350. package/dist/recall-navigate-access.js +2 -2
  351. package/dist/recall-navigate-budget.js +3 -13
  352. package/dist/recall-navigate-budget.js.map +1 -1
  353. package/dist/recall-navigate-disclosure.d.ts +2 -1
  354. package/dist/recall-navigate-disclosure.js +4 -23
  355. package/dist/recall-navigate-disclosure.js.map +1 -1
  356. package/dist/recall-navigate-traverse.js +4 -37
  357. package/dist/recall-navigate-traverse.js.map +1 -1
  358. package/dist/recall-navigate-window.js +4 -26
  359. package/dist/recall-navigate-window.js.map +1 -1
  360. package/dist/recall-navigate.d.ts +2 -1
  361. package/dist/recall-navigate.js +2 -2
  362. package/dist/recall-navigation-config.d.ts +34 -0
  363. package/dist/recall-navigation-config.js +16 -0
  364. package/dist/recall-navigation-config.js.map +1 -0
  365. package/dist/recall-navigation-http-glue.d.ts +171 -0
  366. package/dist/recall-navigation-http-glue.js +9 -0
  367. package/dist/recall-navigation-http-glue.js.map +1 -0
  368. package/dist/recall-navigation-mcp-tools.d.ts +162 -0
  369. package/dist/recall-navigation-mcp-tools.js +8 -0
  370. package/dist/recall-navigation-mcp-tools.js.map +1 -0
  371. package/dist/recall-navigation-operations.d.ts +2 -0
  372. package/dist/recall-navigation-operations.js +245 -0
  373. package/dist/recall-navigation-operations.js.map +1 -0
  374. package/dist/recall-navigation-renderer.d.ts +36 -0
  375. package/dist/recall-navigation-renderer.js +8 -0
  376. package/dist/recall-navigation-renderer.js.map +1 -0
  377. package/dist/recall-navigation.d.ts +121 -0
  378. package/dist/recall-navigation.js +249 -0
  379. package/dist/recall-navigation.js.map +1 -0
  380. package/dist/recall-planner-llm.d.ts +2 -1
  381. package/dist/recall-state-view-admission.d.ts +3 -2
  382. package/dist/recall-state-view-anchors.d.ts +2 -1
  383. package/dist/recall-state.d.ts +2 -1
  384. package/dist/recall-tag-filter.d.ts +2 -1
  385. package/dist/recall-timings.d.ts +2 -1
  386. package/dist/recall-xray-cli.d.ts +2 -1
  387. package/dist/recall-xray-cli.js +4 -4
  388. package/dist/recall-xray-renderer.d.ts +2 -1
  389. package/dist/recall-xray-renderer.js +3 -3
  390. package/dist/recall-xray.d.ts +3 -2
  391. package/dist/recall-xray.js +2 -2
  392. package/dist/reconcile/cursor.d.ts +2 -1
  393. package/dist/reconcile/manifest.d.ts +2 -1
  394. package/dist/reconcile/plan.d.ts +2 -1
  395. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  396. package/dist/replay/normalizers/claude.d.ts +2 -1
  397. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  398. package/dist/replay/normalizers/shared.d.ts +2 -1
  399. package/dist/replay/runner.d.ts +2 -1
  400. package/dist/replay/types.d.ts +2 -1
  401. package/dist/replica-divergence.d.ts +2 -1
  402. package/dist/replica-peers-config.d.ts +2 -1
  403. package/dist/resolve-auth-token.d.ts +2 -1
  404. package/dist/resume-bundles.js +6 -4
  405. package/dist/retrieval-agents.d.ts +3 -2
  406. package/dist/retrieval-tiers.d.ts +2 -1
  407. package/dist/routing/engine.d.ts +2 -1
  408. package/dist/routing/store.d.ts +2 -1
  409. package/dist/salvage-envelope.d.ts +2 -1
  410. package/dist/{scope-profiles-BajH5zAT.d.ts → scope-profiles-C564-hrv.d.ts} +1 -1
  411. package/dist/search/embed-helper.d.ts +2 -1
  412. package/dist/search/factory.d.ts +2 -1
  413. package/dist/search/factory.js +3 -3
  414. package/dist/search/index.d.ts +2 -1
  415. package/dist/search/index.js +7 -7
  416. package/dist/search/lancedb-backend.d.ts +2 -1
  417. package/dist/search/meilisearch-backend.d.ts +2 -1
  418. package/dist/search/noop-backend.d.ts +2 -1
  419. package/dist/search/orama-backend.d.ts +2 -1
  420. package/dist/search/port.d.ts +2 -1
  421. package/dist/search/remote-backend.d.ts +2 -1
  422. package/dist/{semantic-consolidation-Bu6d3O7R.d.ts → semantic-consolidation-g6x-ShY8.d.ts} +1 -1
  423. package/dist/semantic-consolidation.d.ts +3 -2
  424. package/dist/semantic-consolidation.js +9 -9
  425. package/dist/semantic-rule-promotion.js +8 -8
  426. package/dist/semantic-rule-verifier.d.ts +2 -1
  427. package/dist/semantic-rule-verifier.js +8 -8
  428. package/dist/{service-ChFwWtLS.d.ts → service-CaCOk0rd.d.ts} +2 -2
  429. package/dist/session-observer-bands.d.ts +2 -1
  430. package/dist/session-observer-state.d.ts +2 -1
  431. package/dist/shared-context/manager.d.ts +2 -1
  432. package/dist/signal.d.ts +2 -1
  433. package/dist/source-agent-qualifier.d.ts +2 -1
  434. package/dist/source-agent-qualifier.js +8 -8
  435. package/dist/standup/build.js +8 -8
  436. package/dist/{storage-BDKQdsmB.d.ts → storage-C9nsZX5Q.d.ts} +1 -1
  437. package/dist/storage.d.ts +3 -2
  438. package/dist/storage.js +7 -7
  439. package/dist/subject-config.d.ts +2 -1
  440. package/dist/summarizer.d.ts +2 -1
  441. package/dist/summary-snapshot.d.ts +2 -1
  442. package/dist/support-passport/index.d.ts +19 -17
  443. package/dist/support-passport/index.js +36 -28
  444. package/dist/{tagging-CwK6um2q.d.ts → tagging-BA4RFdH3.d.ts} +2 -2
  445. package/dist/temporal-supersession.d.ts +3 -2
  446. package/dist/temporal-timeline-recall.d.ts +2 -1
  447. package/dist/temporal-validity.d.ts +2 -1
  448. package/dist/threading.d.ts +2 -1
  449. package/dist/tier-migration.d.ts +3 -2
  450. package/dist/tier-routing.d.ts +2 -1
  451. package/dist/topics.d.ts +2 -1
  452. package/dist/transcript.d.ts +2 -1
  453. package/dist/transfer/backup.js +2 -2
  454. package/dist/transfer/capsule-export.js +2 -2
  455. package/dist/transfer/capsule-import.js +2 -2
  456. package/dist/transfer/export-okf.d.ts +2 -1
  457. package/dist/transfer/export-okf.js +8 -8
  458. package/dist/trust-score-stage.d.ts +2 -1
  459. package/dist/trust-score.d.ts +2 -1
  460. package/dist/{types-B65IoepH.d.ts → types-Sps-lg5I.d.ts} +2 -1
  461. package/dist/types.d.ts +2 -1
  462. package/dist/types.js +1 -1
  463. package/dist/utility-runtime.d.ts +2 -1
  464. package/dist/verified-recall.js +8 -8
  465. package/dist/who-knows-cli.d.ts +16 -14
  466. package/dist/who-knows-cli.js +9 -9
  467. package/dist/who-knows.d.ts +16 -14
  468. package/dist/who-knows.js +8 -8
  469. package/dist/write-envelope.d.ts +2 -1
  470. package/package.json +2 -2
  471. package/src/access-boundary.ts +2 -0
  472. package/src/access-category-alias.test.ts +57 -0
  473. package/src/access-http.ts +3 -3
  474. package/src/access-mcp-output-schemas.ts +30 -0
  475. package/src/access-mcp.ts +3 -3
  476. package/src/access-observe-write-category.ts +20 -1
  477. package/src/access-operations.ts +2 -0
  478. package/src/access-schema.ts +10 -0
  479. package/src/access-service.ts +13 -23
  480. package/src/access-surface-catalog.test.ts +30 -2
  481. package/src/access-surface-catalog.ts +4 -0
  482. package/src/cli/recall-navigation-commands.ts +85 -0
  483. package/src/cli.ts +2 -2
  484. package/src/config.ts +4 -0
  485. package/src/deep-recall-config.ts +32 -0
  486. package/src/index.ts +1 -2
  487. package/src/local-llm-config.test.ts +21 -0
  488. package/src/local-llm-config.ts +1 -2
  489. package/src/mcp-read-only-tools.ts +2 -0
  490. package/src/orchestration/recall-internal.ts +4 -4
  491. package/src/recall-navigation-config.test.ts +56 -0
  492. package/src/recall-navigation-config.ts +107 -0
  493. package/src/recall-navigation-http-glue.ts +141 -0
  494. package/src/recall-navigation-mcp-tools.ts +60 -0
  495. package/src/recall-navigation-operations.ts +111 -0
  496. package/src/recall-navigation-renderer.ts +49 -0
  497. package/src/recall-navigation-surface.test.ts +474 -0
  498. package/src/recall-navigation.test.ts +405 -0
  499. package/src/recall-navigation.ts +429 -0
  500. package/src/recall-xray.ts +1 -1
  501. package/src/types.ts +2 -0
  502. package/dist/chunk-2PDMIPMP.js.map +0 -1
  503. package/dist/chunk-2UINSKQC.js.map +0 -1
  504. package/dist/chunk-ADARR5KF.js.map +0 -1
  505. package/dist/chunk-EAARGPWI.js.map +0 -1
  506. package/dist/chunk-HO2P3FAX.js.map +0 -1
  507. package/dist/chunk-HSJU6JFT.js.map +0 -1
  508. package/dist/chunk-IUTYNDFS.js.map +0 -1
  509. package/dist/chunk-L732NBPR.js.map +0 -1
  510. package/dist/chunk-QVSRE355.js.map +0 -1
  511. package/dist/chunk-RSSLDMFX.js +0 -14
  512. package/dist/chunk-RSSLDMFX.js.map +0 -1
  513. package/dist/chunk-VNQRRUNS.js.map +0 -1
  514. package/dist/chunk-WN2OXGGH.js.map +0 -1
  515. package/dist/chunk-ZOGKZ2XT.js.map +0 -1
  516. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  517. /package/dist/{chunk-WNPRRBOE.js.map → chunk-2HDLDBJW.js.map} +0 -0
  518. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
  519. /package/dist/{chunk-FSUFKIFS.js.map → chunk-2YIUUXNK.js.map} +0 -0
  520. /package/dist/{chunk-OP722LOG.js.map → chunk-3254BYQV.js.map} +0 -0
  521. /package/dist/{chunk-CQ4BTPX6.js.map → chunk-3YQ7VLP3.js.map} +0 -0
  522. /package/dist/{chunk-ZFU6QNRN.js.map → chunk-4WMGRLTV.js.map} +0 -0
  523. /package/dist/{chunk-U26LB4WA.js.map → chunk-5AJZ7EUW.js.map} +0 -0
  524. /package/dist/{chunk-R45VFSEV.js.map → chunk-7F47R4H4.js.map} +0 -0
  525. /package/dist/{chunk-LVFI5LG7.js.map → chunk-A7GQBJP5.js.map} +0 -0
  526. /package/dist/{chunk-CTETTVDN.js.map → chunk-BZDK5EOD.js.map} +0 -0
  527. /package/dist/{chunk-PLJ2MQFT.js.map → chunk-C3YEB7CR.js.map} +0 -0
  528. /package/dist/{chunk-XJLTQTAO.js.map → chunk-D7UUB33A.js.map} +0 -0
  529. /package/dist/{chunk-DMTSKY4W.js.map → chunk-DABSYX7V.js.map} +0 -0
  530. /package/dist/{chunk-3RLWUW7G.js.map → chunk-DDGQDNQW.js.map} +0 -0
  531. /package/dist/{chunk-ZGXHTV5Y.js.map → chunk-EOXCOZ6L.js.map} +0 -0
  532. /package/dist/{chunk-DLPMOSNH.js.map → chunk-GKKLI23D.js.map} +0 -0
  533. /package/dist/{chunk-I65KB36L.js.map → chunk-GMU7MAHS.js.map} +0 -0
  534. /package/dist/{chunk-JC2OBYYD.js.map → chunk-HKQAI6XI.js.map} +0 -0
  535. /package/dist/{chunk-ETE3SGAH.js.map → chunk-IAGEEVQL.js.map} +0 -0
  536. /package/dist/{chunk-GIM2AGFL.js.map → chunk-IWHNT35B.js.map} +0 -0
  537. /package/dist/{chunk-AHHFBJX7.js.map → chunk-JDL5BYYF.js.map} +0 -0
  538. /package/dist/{chunk-K27INAPR.js.map → chunk-JMBTNVMW.js.map} +0 -0
  539. /package/dist/{chunk-JMAP6L6Q.js.map → chunk-KDLOKVX7.js.map} +0 -0
  540. /package/dist/{chunk-HK44SV6K.js.map → chunk-KORQWGUA.js.map} +0 -0
  541. /package/dist/{chunk-VDX2J7OX.js.map → chunk-KQAFEZQX.js.map} +0 -0
  542. /package/dist/{chunk-4IGOLIWM.js.map → chunk-L63M2PE4.js.map} +0 -0
  543. /package/dist/{chunk-BIANISES.js.map → chunk-LD22AAJI.js.map} +0 -0
  544. /package/dist/{chunk-RXYO6NA6.js.map → chunk-M6FKXOYV.js.map} +0 -0
  545. /package/dist/{chunk-LCVYO3ON.js.map → chunk-MOL7JK4F.js.map} +0 -0
  546. /package/dist/{chunk-HPMCKAET.js.map → chunk-OGAKUA7I.js.map} +0 -0
  547. /package/dist/{chunk-AOGICQMH.js.map → chunk-PF7LQ22G.js.map} +0 -0
  548. /package/dist/{chunk-AUSRUOMQ.js.map → chunk-PW4HTWXL.js.map} +0 -0
  549. /package/dist/{chunk-ZYRAY5FL.js.map → chunk-QCTXQ2HW.js.map} +0 -0
  550. /package/dist/{chunk-G3NTZZWT.js.map → chunk-R3H2AXO2.js.map} +0 -0
  551. /package/dist/{chunk-OCWFKD5Q.js.map → chunk-SUS64JER.js.map} +0 -0
  552. /package/dist/{chunk-RTXHUVOD.js.map → chunk-SZV2L2IG.js.map} +0 -0
  553. /package/dist/{chunk-AIVRD66I.js.map → chunk-T3F2HWIG.js.map} +0 -0
  554. /package/dist/{chunk-KJQ4Y2PY.js.map → chunk-VDLNQVYW.js.map} +0 -0
  555. /package/dist/{chunk-N7B6V7SG.js.map → chunk-VHANUT45.js.map} +0 -0
  556. /package/dist/{chunk-E4FRR4MA.js.map → chunk-VJXMFBVR.js.map} +0 -0
  557. /package/dist/{chunk-GWNSKQDA.js.map → chunk-W44T2KHG.js.map} +0 -0
  558. /package/dist/{chunk-GWEZNCGA.js.map → chunk-WJPR2XUN.js.map} +0 -0
  559. /package/dist/{chunk-KCKXOS4Y.js.map → chunk-WNMVUWI7.js.map} +0 -0
  560. /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
  561. /package/dist/{chunk-LWF6GOII.js.map → chunk-XK76RJBN.js.map} +0 -0
  562. /package/dist/{chunk-AAX22E4K.js.map → chunk-XLPZN3A5.js.map} +0 -0
  563. /package/dist/{chunk-VBK6SRNE.js.map → chunk-XOCGC3FJ.js.map} +0 -0
  564. /package/dist/{chunk-AAAFZW3U.js.map → chunk-ZBSP4BSN.js.map} +0 -0
  565. /package/dist/{chunk-VVX5PZFS.js.map → chunk-ZHXSOMYH.js.map} +0 -0
  566. /package/dist/{chunk-7PSRCGWT.js.map → chunk-ZVQ5HF77.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  hasMemoryData
3
- } from "./chunk-DLPMOSNH.js";
3
+ } from "./chunk-GKKLI23D.js";
4
4
  import {
5
5
  resolveNamespaceStorageRoot
6
- } from "./chunk-CQ4BTPX6.js";
6
+ } from "./chunk-3YQ7VLP3.js";
7
7
  import {
8
8
  getConfiguredNamespaces
9
9
  } from "./chunk-OQQXGYMX.js";
@@ -724,4 +724,4 @@ export {
724
724
  runNamespaceMaintenancePlan,
725
725
  runNamespaceMaintenanceBatchPlan
726
726
  };
727
- //# sourceMappingURL=chunk-GIM2AGFL.js.map
727
+ //# sourceMappingURL=chunk-IWHNT35B.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  NamespaceStorageRouter
3
- } from "./chunk-CQ4BTPX6.js";
3
+ } from "./chunk-3YQ7VLP3.js";
4
4
  import {
5
5
  namespaceCollectionName
6
- } from "./chunk-AIVRD66I.js";
6
+ } from "./chunk-T3F2HWIG.js";
7
7
  import {
8
8
  isSafeRouteNamespace
9
9
  } from "./chunk-PCXDUHQH.js";
@@ -213,4 +213,4 @@ export {
213
213
  verifyNamespaces,
214
214
  runNamespaceMigration
215
215
  };
216
- //# sourceMappingURL=chunk-AHHFBJX7.js.map
216
+ //# sourceMappingURL=chunk-JDL5BYYF.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-NHLLKEKK.js";
12
12
  import {
13
13
  parseConfig
14
- } from "./chunk-2UINSKQC.js";
14
+ } from "./chunk-W6YDAIVB.js";
15
15
  import {
16
16
  resolveObjectiveStateStoreDir,
17
17
  validateObjectiveStateSnapshot
@@ -268,4 +268,4 @@ export {
268
268
  recordResumeBundle,
269
269
  getResumeBundleStatus
270
270
  };
271
- //# sourceMappingURL=chunk-K27INAPR.js.map
271
+ //# sourceMappingURL=chunk-JMBTNVMW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isValidCapsuleSince
3
- } from "./chunk-VDX2J7OX.js";
3
+ } from "./chunk-KQAFEZQX.js";
4
4
  import {
5
5
  CAPSULE_ID_PATTERN
6
6
  } from "./chunk-WEHSQBFR.js";
@@ -212,6 +212,9 @@ var MEMORY_CATEGORY_ALIAS_TO_CANONICAL = {
212
212
  function isMemoryCategoryAlias(value) {
213
213
  return Object.prototype.hasOwnProperty.call(MEMORY_CATEGORY_ALIAS_TO_CANONICAL, value);
214
214
  }
215
+ function canonicalCategoryForAlias(value) {
216
+ return isMemoryCategoryAlias(value) ? MEMORY_CATEGORY_ALIAS_TO_CANONICAL[value] : void 0;
217
+ }
215
218
  function categoryAliasCoercion(rawCategory) {
216
219
  return rawCategory !== void 0 && isMemoryCategoryAlias(rawCategory) ? { from: rawCategory, to: "fact" } : void 0;
217
220
  }
@@ -536,6 +539,7 @@ export {
536
539
  observeRequestSchema,
537
540
  deepRecallRequestSchema,
538
541
  isMemoryCategoryAlias,
542
+ canonicalCategoryForAlias,
539
543
  categoryAliasCoercion,
540
544
  retainedCategoryAlias,
541
545
  reapplyCategoryCoercion,
@@ -559,4 +563,4 @@ export {
559
563
  actionConfidenceRequestSchema,
560
564
  validateRequest
561
565
  };
562
- //# sourceMappingURL=chunk-ZOGKZ2XT.js.map
566
+ //# sourceMappingURL=chunk-JUOJGZPV.js.map
@@ -0,0 +1 @@
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\";\n\nimport type { MemoryCategory } from \"./types.js\";\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 cwdSchema = z.string().trim().min(1, \"cwd must be non-empty when provided\").max(2048).optional();\nconst projectTagSchema = z\n .string()\n .trim()\n .min(1, \"projectTag must be non-empty when provided\")\n .max(256)\n .optional();\nconst deadlineMsSchema = z.number().finite().min(0).max(Number.MAX_SAFE_INTEGER).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: cwdSchema,\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: projectTagSchema,\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 * #1952 — per-call opt-in to state-aware recall views for this recall.\n * ORs with the `recallStateViews` config flag; a change-intent query\n * (e.g. \"when did\", \"used to\", \"switched\") is still required for any\n * effect, so this can never perturb ordinary recalls.\n */\n stateView: 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: cwdSchema,\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: projectTagSchema,\n});\n\n// ---------------------------------------------------------------------------\n// Deep recall (issue #2332)\n// ---------------------------------------------------------------------------\n\nexport const deepRecallRequestSchema = z.object({\n query: z.string().trim().min(1, \"query is required\").max(2000),\n /** Optional policy-step ceiling; validated against the configured maximum in the service. */\n maxSteps: z.union([z.number().int().min(0), z.string()]).optional(),\n namespace: namespaceSchema,\n sessionKey: z.string().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Memory store / suggestion submit\n// ---------------------------------------------------------------------------\n\nconst writeContentSchema = z.string().min(1, \"content is required\").max(50000);\n// ---------------------------------------------------------------------------\n// Category wire contract (issue #2829): truthful input/output modeling.\n// ---------------------------------------------------------------------------\n\n/** Canonical input spellings — exactly the `MemoryCategory` union. */\nconst MEMORY_CATEGORY_CANONICAL_INPUT = [\n \"fact\", \"preference\", \"correction\", \"entity\", \"decision\",\n \"relationship\", \"principle\", \"commitment\", \"moment\", \"skill\", \"rule\", \"procedure\",\n \"reasoning_trace\",\n] as const satisfies readonly MemoryCategory[];\n\n/**\n * Compatibility alias spellings admitted on input. The four project-shaped\n * categories fleet telemetry actually shows do not exist in the taxonomy;\n * they parse to the canonical \"fact\". Exact match only — no trimming, no\n * case folding, so near-misses like `projection` or `Project_State` reject\n * like any other invalid category, with the full valid list in the error.\n */\nconst MEMORY_CATEGORY_ALIAS_INPUT = [\n \"project\",\n \"project_state\",\n \"project-state\",\n \"project_update\",\n] as const;\n\nexport type MemoryCategoryAlias = (typeof MEMORY_CATEGORY_ALIAS_INPUT)[number];\n\nconst MEMORY_CATEGORY_ALIAS_TO_CANONICAL: Readonly<\n Record<MemoryCategoryAlias, Extract<MemoryCategory, \"fact\">>\n> = {\n project: \"fact\",\n project_state: \"fact\",\n \"project-state\": \"fact\",\n project_update: \"fact\",\n};\n\nexport function isMemoryCategoryAlias(value: string): value is MemoryCategoryAlias {\n return Object.prototype.hasOwnProperty.call(MEMORY_CATEGORY_ALIAS_TO_CANONICAL, value);\n}\n\n/**\n * Canonical category for an accepted alias spelling; undefined for anything\n * else (canonical spellings and near-misses map to nothing). Service-boundary\n * consumers that receive `category` without a prior wire parse use this to\n * match the transport contract (#2962).\n */\nexport function canonicalCategoryForAlias(value: string): \"fact\" | undefined {\n return isMemoryCategoryAlias(value) ? MEMORY_CATEGORY_ALIAS_TO_CANONICAL[value] : undefined;\n}\n\n/** Coercion diagnostic for a write whose input category was a compat alias. */\nexport interface CategoryAliasCoercion {\n from: MemoryCategoryAlias;\n to: \"fact\";\n}\n\n/** Boundary-derived coercion note for a retained raw spelling. */\nexport function categoryAliasCoercion(rawCategory: string | undefined): CategoryAliasCoercion | undefined {\n return rawCategory !== undefined && isMemoryCategoryAlias(rawCategory)\n ? { from: rawCategory, to: \"fact\" }\n : undefined;\n}\n\n/**\n * Recover the retained alias spelling from a pre-parse raw envelope: the\n * `rawCategory` minted by a previous parse of the same schema (the HTTP/MCP\n * validate-then-dispatch double pass), or — for single-parse callers like the\n * CLI store command — the as-yet-untransformed alias still sitting on\n * `category` (issue #2889). A minted `rawCategory` always wins: it names the\n * spelling the transform actually canonicalized.\n */\nexport function retainedCategoryAlias(rawInput: unknown): MemoryCategoryAlias | undefined {\n if (!rawInput || typeof rawInput !== \"object\") return undefined;\n const envelope = rawInput as Record<string, unknown>;\n const minted = envelope.rawCategory;\n if (typeof minted === \"string\" && isMemoryCategoryAlias(minted)) return minted;\n const category = envelope.category;\n return typeof category === \"string\" && isMemoryCategoryAlias(category) ? category : undefined;\n}\n\n/**\n * An idempotent replay returns the FIRST request's stored response, whose\n * coercion note names that request's spelling. Rewrite the note from the\n * CURRENT request's retained spelling so every response identifies what its\n * caller actually sent; the stored idempotent result is reused untouched.\n */\nexport function reapplyCategoryCoercion<T extends object>(\n response: T,\n categoryCoercion: CategoryAliasCoercion | undefined,\n): T & { categoryCoercion?: CategoryAliasCoercion } {\n const restamped: T & { categoryCoercion?: CategoryAliasCoercion } = { ...response };\n if (categoryCoercion !== undefined) {\n restamped.categoryCoercion = categoryCoercion;\n } else {\n delete restamped.categoryCoercion;\n }\n return restamped;\n}\n\nconst categoryWireSchema = z.enum(\n [...MEMORY_CATEGORY_CANONICAL_INPUT, ...MEMORY_CATEGORY_ALIAS_INPUT],\n {\n errorMap: () => ({\n message:\n `category must be one of: ${[...MEMORY_CATEGORY_CANONICAL_INPUT, ...MEMORY_CATEGORY_ALIAS_INPUT].join(\", \")}; ` +\n 'for project state/facts use \"fact\"',\n }),\n },\n);\n\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\nconst memoryStoreRequestShape = z.object({\n schemaVersion: schemaVersionSchema,\n idempotencyKey: idempotencyKeySchema,\n dryRun: dryRunSchema,\n sessionKey: sessionKeySchema,\n content: writeContentSchema,\n category: categoryWireSchema.optional(),\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: cwdSchema,\n projectTag: projectTagSchema,\n});\n\n/**\n * Parsed memory-store request (issue #2829): the category transform maps\n * compat aliases to the canonical \"fact\" DURING parsing, so the output type\n * stays the finite `MemoryCategory` union — never an alias spelling. The raw\n * spelling travels separately on `rawCategory`, minted only by the transform\n * (zod strips it from client bodies), for the write surface's coercion note\n * and idempotent-replay rebuild.\n */\nexport type MemoryStoreParsedRequest = Omit<z.infer<typeof memoryStoreRequestShape>, \"category\"> & {\n category?: MemoryCategory;\n rawCategory?: MemoryCategoryAlias;\n};\n\nexport const memoryStoreRequestSchema = memoryStoreRequestShape.transform(\n (request): MemoryStoreParsedRequest => {\n if (request.category === undefined || !isMemoryCategoryAlias(request.category)) {\n // Spread so the narrowed canonical category, not the wide wire union,\n // becomes the output type.\n return { ...request, category: request.category };\n }\n return {\n ...request,\n category: MEMORY_CATEGORY_ALIAS_TO_CANONICAL[request.category],\n rawCategory: request.category,\n };\n },\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 cwd: cwdSchema,\n projectTag: projectTagSchema,\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 extractionForceFlushRequestSchema = z.object({\n sessionKey: z.string().trim().min(1, \"sessionKey is required\").max(512),\n namespace: namespaceSchema,\n cwd: cwdSchema,\n projectTag: projectTagSchema,\n deadlineMs: deadlineMsSchema,\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 includeLocation: z.boolean().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 ExtractionForceFlushRequest = z.infer<typeof extractionForceFlushRequestSchema>;\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 | \"extractionForceFlush\"\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 \"extractionForceFlush\" ? ExtractionForceFlushRequest\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 extractionForceFlush: extractionForceFlushRequestSchema,\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(stripNullsExceptCodingContext(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\nfunction stripNullsExceptCodingContext(data: unknown): unknown {\n if (!data || typeof data !== \"object\" || Array.isArray(data)) return data;\n const cleaned: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n if (value === null && key !== \"codingContext\") continue;\n cleaned[key] = value;\n }\n return cleaned;\n}\n\n"],"mappings":"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","names":[]}
@@ -7,22 +7,22 @@ import {
7
7
  import {
8
8
  openclawReplayNormalizer
9
9
  } from "./chunk-H4CKS5B2.js";
10
- import {
11
- importMarkdownBundle
12
- } from "./chunk-HDDRVXX4.js";
13
- import {
14
- importSqlite
15
- } from "./chunk-PYHOAXTI.js";
16
10
  import {
17
11
  exportJsonBundle
18
12
  } from "./chunk-UP6MOYCB.js";
19
13
  import {
20
14
  exportOkfBundle,
21
15
  parseIncludeStatus
22
- } from "./chunk-JC2OBYYD.js";
16
+ } from "./chunk-HKQAI6XI.js";
23
17
  import {
24
18
  exportSqlite
25
19
  } from "./chunk-BV2TIZ4F.js";
20
+ import {
21
+ importMarkdownBundle
22
+ } from "./chunk-HDDRVXX4.js";
23
+ import {
24
+ importSqlite
25
+ } from "./chunk-PYHOAXTI.js";
26
26
  import {
27
27
  detectImportFormat
28
28
  } from "./chunk-OZKVVUJB.js";
@@ -31,7 +31,7 @@ import {
31
31
  } from "./chunk-2DL3OFLD.js";
32
32
  import {
33
33
  backupMemoryDir
34
- } from "./chunk-BXLOS5AJ.js";
34
+ } from "./chunk-2NLLXCJG.js";
35
35
  import {
36
36
  exportMarkdownBundle
37
37
  } from "./chunk-765K3SAT.js";
@@ -53,12 +53,9 @@ import {
53
53
  import {
54
54
  WebDavServer
55
55
  } from "./chunk-PYIFUBRK.js";
56
- import {
57
- migrateObservations
58
- } from "./chunk-IIFFC3RL.js";
59
56
  import {
60
57
  rebuildMemoryLifecycleLedger
61
- } from "./chunk-ZFU6QNRN.js";
58
+ } from "./chunk-4WMGRLTV.js";
62
59
  import {
63
60
  rebuildObservations
64
61
  } from "./chunk-DQTCGVFK.js";
@@ -66,11 +63,8 @@ import {
66
63
  archiveObservations
67
64
  } from "./chunk-YLBE6PLR.js";
68
65
  import {
69
- getBulkImportSource,
70
- listBulkImportSources,
71
- registerBulkImportSource,
72
- runBulkImportPipeline
73
- } from "./chunk-HSSERO3E.js";
66
+ migrateObservations
67
+ } from "./chunk-IIFFC3RL.js";
74
68
  import {
75
69
  lintOkfDir
76
70
  } from "./chunk-UJX4I26O.js";
@@ -78,8 +72,11 @@ import {
78
72
  runCompatChecks
79
73
  } from "./chunk-2524MOWK.js";
80
74
  import {
81
- searchVerifiedEpisodes
82
- } from "./chunk-AAAFZW3U.js";
75
+ getBulkImportSource,
76
+ listBulkImportSources,
77
+ registerBulkImportSource,
78
+ runBulkImportPipeline
79
+ } from "./chunk-HSSERO3E.js";
83
80
  import {
84
81
  getUtilityLearningStatus,
85
82
  learnUtilityPromotionWeights
@@ -88,20 +85,23 @@ import {
88
85
  getUtilityTelemetryStatus,
89
86
  recordUtilityTelemetryEvent
90
87
  } from "./chunk-EBA5DA77.js";
88
+ import {
89
+ searchVerifiedEpisodes
90
+ } from "./chunk-ZBSP4BSN.js";
91
91
  import {
92
92
  ThreadingManager
93
93
  } from "./chunk-OJP3N7UK.js";
94
94
  import {
95
95
  promoteSemanticRuleFromMemory
96
- } from "./chunk-LCVYO3ON.js";
96
+ } from "./chunk-MOL7JK4F.js";
97
97
  import {
98
98
  searchVerifiedSemanticRules
99
- } from "./chunk-G3NTZZWT.js";
99
+ } from "./chunk-R3H2AXO2.js";
100
100
  import {
101
101
  buildResumeBundleFromState,
102
102
  getResumeBundleStatus,
103
103
  recordResumeBundle
104
- } from "./chunk-K27INAPR.js";
104
+ } from "./chunk-JMBTNVMW.js";
105
105
  import {
106
106
  getWorkProductLedgerStatus,
107
107
  recordWorkProductLedgerEntry,
@@ -112,7 +112,7 @@ import {
112
112
  } from "./chunk-AM4T6CHX.js";
113
113
  import {
114
114
  parseXrayCliOptions
115
- } from "./chunk-GWNSKQDA.js";
115
+ } from "./chunk-W44T2KHG.js";
116
116
  import {
117
117
  collectPatternMemories,
118
118
  explainPatternMemory,
@@ -134,7 +134,7 @@ import {
134
134
  runOperatorInventory,
135
135
  runOperatorRepair,
136
136
  runOperatorSetup
137
- } from "./chunk-KJQ4Y2PY.js";
137
+ } from "./chunk-VDLNQVYW.js";
138
138
  import {
139
139
  analyzeSessionIntegrity,
140
140
  applySessionRepair,
@@ -173,7 +173,7 @@ import {
173
173
  rebuildMemoryProjection,
174
174
  repairMemoryProjection,
175
175
  verifyMemoryProjection
176
- } from "./chunk-DMTSKY4W.js";
176
+ } from "./chunk-DABSYX7V.js";
177
177
  import {
178
178
  GraphDashboardServer
179
179
  } from "./chunk-EZ25VE3G.js";
@@ -197,7 +197,7 @@ import {
197
197
  } from "./chunk-6TBIWIAG.js";
198
198
  import {
199
199
  parseConfig
200
- } from "./chunk-2UINSKQC.js";
200
+ } from "./chunk-W6YDAIVB.js";
201
201
  import {
202
202
  applyManagedRegion,
203
203
  expandVaultTemplateTokens,
@@ -210,7 +210,7 @@ import {
210
210
  import {
211
211
  EngramAccessHttpServer,
212
212
  MeetingsInputError
213
- } from "./chunk-HO2P3FAX.js";
213
+ } from "./chunk-IOTYIECA.js";
214
214
  import {
215
215
  WearablesInputError
216
216
  } from "./chunk-V7IZKJI3.js";
@@ -220,13 +220,10 @@ import {
220
220
  loadChatSession,
221
221
  processChatMessage,
222
222
  sessionBelongsToPrincipal
223
- } from "./chunk-HSJU6JFT.js";
224
- import {
225
- parseDeepRecallMaxSteps
226
- } from "./chunk-2EYZ32LH.js";
223
+ } from "./chunk-ROXDOKLM.js";
227
224
  import {
228
225
  EngramAccessService
229
- } from "./chunk-IUTYNDFS.js";
226
+ } from "./chunk-3K64PLY3.js";
230
227
  import {
231
228
  WorkStorage
232
229
  } from "./chunk-MPC7TYTZ.js";
@@ -246,27 +243,27 @@ import {
246
243
  parseRecallExplainFormat,
247
244
  renderRecallExplain,
248
245
  renderXray
249
- } from "./chunk-AUSRUOMQ.js";
246
+ } from "./chunk-PW4HTWXL.js";
250
247
  import {
251
248
  readAggregateExtractionWatermark
252
- } from "./chunk-WNPRRBOE.js";
249
+ } from "./chunk-2HDLDBJW.js";
253
250
  import {
254
251
  getObjectiveStateStoreStatus
255
252
  } from "./chunk-HM7RHKS4.js";
256
253
  import {
257
254
  searchHarmonicRetrieval
258
- } from "./chunk-OP722LOG.js";
255
+ } from "./chunk-3254BYQV.js";
259
256
  import {
260
257
  listMemoryGovernanceRuns,
261
258
  readMemoryGovernanceRunArtifact,
262
259
  restoreMemoryGovernanceRun,
263
260
  runMemoryGovernance
264
- } from "./chunk-U26LB4WA.js";
261
+ } from "./chunk-5AJZ7EUW.js";
265
262
  import {
266
263
  listNamespaces,
267
264
  runNamespaceMigration,
268
265
  verifyNamespaces
269
- } from "./chunk-AHHFBJX7.js";
266
+ } from "./chunk-JDL5BYYF.js";
270
267
  import {
271
268
  getCueAnchorStoreStatus
272
269
  } from "./chunk-BMWN7B3Y.js";
@@ -278,7 +275,7 @@ import {
278
275
  } from "./chunk-5FAGCOZD.js";
279
276
  import {
280
277
  meetingIdDate
281
- } from "./chunk-I65KB36L.js";
278
+ } from "./chunk-GMU7MAHS.js";
282
279
  import {
283
280
  isValidTranscriptDate
284
281
  } from "./chunk-UHVXE24Y.js";
@@ -289,7 +286,7 @@ import {
289
286
  import {
290
287
  RECALL_DISCLOSURE_LEVELS,
291
288
  isRecallDisclosure
292
- } from "./chunk-WN2OXGGH.js";
289
+ } from "./chunk-66YUOI53.js";
293
290
  import {
294
291
  normalizeProjectionPreview
295
292
  } from "./chunk-SCU65EZI.js";
@@ -307,6 +304,9 @@ import {
307
304
  import {
308
305
  renderExtractionLivenessStats
309
306
  } from "./chunk-3SG4FGDV.js";
307
+ import {
308
+ parseDeepRecallMaxSteps
309
+ } from "./chunk-7RGX7BMF.js";
310
310
  import {
311
311
  SKILL_FILE_NAME,
312
312
  SKILL_IMPORT_SOURCE,
@@ -1244,6 +1244,59 @@ function registerDeepRecallCommands(cmd, orchestrator) {
1244
1244
  });
1245
1245
  }
1246
1246
 
1247
+ // src/cli/recall-navigation-commands.ts
1248
+ function parseLimit(raw) {
1249
+ if (raw === void 0 || raw === null) return void 0;
1250
+ const value = typeof raw === "string" ? Number(raw) : raw;
1251
+ if (typeof value !== "number" || !Number.isFinite(value) || !Number.isInteger(value) || value < 1) {
1252
+ throw new Error(`--limit must be a positive integer; got ${JSON.stringify(raw)}`);
1253
+ }
1254
+ return value;
1255
+ }
1256
+ function registerRecallNavigationCommands(cmd, orchestrator) {
1257
+ const run = async (args, action) => {
1258
+ const memoryId = String(args[0] ?? "");
1259
+ const options = args[args.length - 1] ?? {};
1260
+ const sessionKey = typeof options.sessionKey === "string" ? options.sessionKey : "";
1261
+ if (memoryId.length === 0 || sessionKey.length === 0) {
1262
+ console.error("usage: navigate <expand|traverse> <memoryId> --session-key <key> [--namespace <ns>]");
1263
+ process.exitCode = 1;
1264
+ return;
1265
+ }
1266
+ let limit;
1267
+ try {
1268
+ limit = action === "traverse" ? parseLimit(options.limit) : void 0;
1269
+ } catch (err) {
1270
+ console.error(err instanceof Error ? err.message : String(err));
1271
+ process.exitCode = 1;
1272
+ return;
1273
+ }
1274
+ const service = new EngramAccessService(orchestrator);
1275
+ try {
1276
+ const result = await service.recallNavigate({
1277
+ action,
1278
+ memoryId,
1279
+ sessionKey,
1280
+ ...action === "expand" && typeof options.disclosure === "string" ? { disclosure: options.disclosure } : {},
1281
+ ...action === "traverse" && typeof options.relation === "string" ? { relation: options.relation } : {},
1282
+ ...limit !== void 0 ? { limit } : {},
1283
+ ...typeof options.namespace === "string" && options.namespace.length > 0 ? { namespace: options.namespace } : {}
1284
+ });
1285
+ if (options.json === true) {
1286
+ console.log(JSON.stringify(result, null, 2));
1287
+ } else {
1288
+ console.log(result.rendered);
1289
+ }
1290
+ if (!result.ok) process.exitCode = 1;
1291
+ } catch (err) {
1292
+ console.error(err instanceof Error ? err.message : String(err));
1293
+ process.exitCode = 1;
1294
+ }
1295
+ };
1296
+ cmd.command("navigate expand <memoryId>").description("Re-render a served memory at deeper disclosure (issue #1956)").option("--session-key <key>", "Session key whose recent recalls authorize the id (required)").option("--disclosure <level>", "Target depth: section or raw (default raw)").option("--namespace <ns>", "Namespace to scope the read to").option("--json", "JSON output (items + budget + disclosure spend)").action(async (...args) => run(args, "expand"));
1297
+ cmd.command("navigate traverse <memoryId>").description("Follow typed links from a served memory; neighbors as chunk summaries (issue #1956)").option("--session-key <key>", "Session key whose recent recalls authorize the id (required)").option("--relation <type>", "Optional relation filter (supports, contradicts, elaborates, ...)").option("--limit <n>", "Optional cap on returned neighbors").option("--namespace <ns>", "Namespace to scope the read to").option("--json", "JSON output (items + budget + disclosure spend)").action(async (...args) => run(args, "traverse"));
1298
+ }
1299
+
1247
1300
  // src/okf/sweep.ts
1248
1301
  import fs from "fs";
1249
1302
  import path from "path";
@@ -6248,7 +6301,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
6248
6301
  }
6249
6302
  }
6250
6303
  if (sourceArchive.endsWith(".enc")) {
6251
- const { isEncryptedCapsuleFile } = await import("./capsule-crypto-YO5QJ6L3.js");
6304
+ const { isEncryptedCapsuleFile } = await import("./capsule-crypto-7FJQINUR.js");
6252
6305
  const encDetected = await isEncryptedCapsuleFile(sourceArchive).catch(() => true);
6253
6306
  if (encDetected) {
6254
6307
  throw new Error(
@@ -6411,7 +6464,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
6411
6464
  const { parseExportBundle } = await import("./transfer/types.js");
6412
6465
  let decryptedBuf;
6413
6466
  try {
6414
- const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-YO5QJ6L3.js");
6467
+ const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-7FJQINUR.js");
6415
6468
  decryptedBuf = await decryptCapsuleFileInMemory(archivePath, memoryDir);
6416
6469
  } catch (decErr) {
6417
6470
  const msg = decErr instanceof Error ? decErr.message : String(decErr);
@@ -7334,6 +7387,7 @@ ${doc.content}` : doc.content,
7334
7387
  registerOkfCommands(cmd, orchestrator);
7335
7388
  registerDeepRecallCommands(cmd, orchestrator);
7336
7389
  registerTimelineCommands(cmd, orchestrator);
7390
+ registerRecallNavigationCommands(cmd, orchestrator);
7337
7391
  cmd.command("trust-zone-promote").description("Dry-run or apply a trust-zone promotion with provenance enforcement").requiredOption("--record-id <recordId>", "Source trust-zone record id").requiredOption("--target-zone <targetZone>", "Promotion target zone (working|trusted)").requiredOption("--reason <reason>", "Human-readable promotion reason").option("--recorded-at <isoTimestamp>", "Promotion timestamp (defaults to now)").option("--summary <summary>", "Optional replacement summary for the promoted record").option("--dry-run", "Show the promotion plan without writing the promoted record").action(async (...args) => {
7338
7392
  const options = args[0] ?? {};
7339
7393
  const result = await runTrustZonePromoteCliCommand({
@@ -9683,4 +9737,4 @@ export {
9683
9737
  listMemoryMarkdownFilePaths,
9684
9738
  registerCli
9685
9739
  };
9686
- //# sourceMappingURL=chunk-L732NBPR.js.map
9740
+ //# sourceMappingURL=chunk-K3IVJ5ML.js.map