@remnic/core 9.69.46 → 9.69.48

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 (601) hide show
  1. package/dist/access-admin-ops-surface.d.ts +15 -14
  2. package/dist/access-admin-ops-surface.js +43 -42
  3. package/dist/access-authorization-probe.d.ts +15 -14
  4. package/dist/access-authorization-probe.js +44 -43
  5. package/dist/access-boundary.d.ts +15 -14
  6. package/dist/access-boundary.js +43 -42
  7. package/dist/access-cli.js +120 -115
  8. package/dist/access-cli.js.map +1 -1
  9. package/dist/access-coding-context-resolution.d.ts +1 -1
  10. package/dist/access-extraction-force-flush.d.ts +15 -14
  11. package/dist/access-extraction-force-flush.js +43 -42
  12. package/dist/access-health-types.d.ts +1 -1
  13. package/dist/access-http-briefing.d.ts +15 -14
  14. package/dist/access-http-briefing.js +44 -43
  15. package/dist/access-http-lcm-compaction.d.ts +15 -14
  16. package/dist/access-http-lifecycle-flush.d.ts +15 -14
  17. package/dist/access-http-offline-stream.d.ts +15 -14
  18. package/dist/access-http-query.d.ts +2 -2
  19. package/dist/access-http-query.js +45 -44
  20. package/dist/access-http.d.ts +16 -15
  21. package/dist/access-http.js +68 -64
  22. package/dist/access-identity-continuity-surface.d.ts +11 -11
  23. package/dist/access-identity-continuity-surface.js +43 -42
  24. package/dist/access-lcm-surface.d.ts +15 -14
  25. package/dist/access-lcm-surface.js +43 -42
  26. package/dist/access-mcp-output-schemas.js +1 -1
  27. package/dist/access-mcp-shared-context-tools.d.ts +15 -14
  28. package/dist/access-mcp.d.ts +15 -14
  29. package/dist/access-mcp.js +56 -53
  30. package/dist/access-memory-search-fanout.d.ts +2 -2
  31. package/dist/{access-namespace-preflight-DDnsN22V.d.ts → access-namespace-preflight-CetF9ziA.d.ts} +1 -1
  32. package/dist/access-namespace-preflight.d.ts +3 -3
  33. package/dist/access-namespace-preflight.js +43 -42
  34. package/dist/access-observe-transcript.d.ts +11 -11
  35. package/dist/access-observe-write-category.d.ts +3 -3
  36. package/dist/access-observe-write-category.js +4 -4
  37. package/dist/access-observe-write-surface.d.ts +15 -14
  38. package/dist/access-observe-write-surface.js +43 -42
  39. package/dist/access-offline-manifest.d.ts +11 -11
  40. package/dist/access-offline-manifest.js +2 -2
  41. package/dist/access-operations-batch.js +45 -44
  42. package/dist/access-operations.d.ts +16 -15
  43. package/dist/access-operations.js +52 -50
  44. package/dist/access-recall-concurrency.d.ts +15 -14
  45. package/dist/access-recall-concurrency.js +43 -42
  46. package/dist/access-recall-response.d.ts +15 -14
  47. package/dist/access-recall-response.js +43 -42
  48. package/dist/access-recall-surface.d.ts +15 -14
  49. package/dist/access-recall-surface.js +43 -42
  50. package/dist/access-schema.d.ts +114 -114
  51. package/dist/access-schema.js +3 -3
  52. package/dist/{access-service-DGynYlbE.d.ts → access-service-DUkTWyZS.d.ts} +77 -74
  53. package/dist/access-service-helpers.d.ts +15 -14
  54. package/dist/access-service.d.ts +15 -14
  55. package/dist/access-service.js +43 -42
  56. package/dist/access-surface-catalog.d.ts +15 -14
  57. package/dist/access-surface-catalog.js +51 -44
  58. package/dist/access-surface-catalog.js.map +1 -1
  59. package/dist/access-wearables-meetings-surface.d.ts +4 -4
  60. package/dist/action-confidence.d.ts +1 -1
  61. package/dist/active-memory-bridge.d.ts +1 -1
  62. package/dist/active-recall.d.ts +1 -1
  63. package/dist/active-recall.js +3 -2
  64. package/dist/active-recall.js.map +1 -1
  65. package/dist/activity/digest.d.ts +1 -1
  66. package/dist/adapters/index.js +4 -4
  67. package/dist/adapters/registry.js +2 -2
  68. package/dist/ambient-provenance.d.ts +1 -1
  69. package/dist/artifact-search.d.ts +1 -1
  70. package/dist/background-generation.d.ts +1 -1
  71. package/dist/behavior-learner.d.ts +1 -1
  72. package/dist/behavior-signals.d.ts +1 -1
  73. package/dist/bootstrap.d.ts +11 -11
  74. package/dist/briefing-window.d.ts +2 -2
  75. package/dist/briefing.d.ts +2 -2
  76. package/dist/briefing.js +13 -13
  77. package/dist/buffer-surprise-report.d.ts +1 -1
  78. package/dist/buffer-turn-helpers.d.ts +1 -1
  79. package/dist/buffer.d.ts +2 -2
  80. package/dist/buffer.js +5 -5
  81. package/dist/bulk-import/index.d.ts +3 -3
  82. package/dist/calibration.d.ts +1 -1
  83. package/dist/capabilities.d.ts +1 -1
  84. package/dist/{catalog-Dl2hYqpS.d.ts → catalog-Bns9zpl3.d.ts} +1 -1
  85. package/dist/causal-behavior.d.ts +1 -1
  86. package/dist/causal-consolidation.d.ts +1 -1
  87. package/dist/causal-consolidation.js +14 -14
  88. package/dist/causal-trajectory-graph.d.ts +1 -1
  89. package/dist/{chunk-N46SNYMC.js → chunk-2B2RHLHI.js} +2 -2
  90. package/dist/{chunk-F5V7KRQS.js → chunk-2WMXZYMS.js} +2 -2
  91. package/dist/{chunk-KF57IQFX.js → chunk-32ZBIGID.js} +19 -15
  92. package/dist/chunk-32ZBIGID.js.map +1 -0
  93. package/dist/{chunk-ORQ7AZMU.js → chunk-3RKVSECD.js} +8 -8
  94. package/dist/{chunk-3NYM6JA4.js → chunk-4LPIVP77.js} +2 -2
  95. package/dist/{chunk-PW4HTWXL.js → chunk-55XWRL6F.js} +2 -2
  96. package/dist/{chunk-GGY7WKMB.js → chunk-5KBI2MOC.js} +1 -1
  97. package/dist/{chunk-IXMWTNNY.js → chunk-6A6HSXWV.js} +2 -2
  98. package/dist/{chunk-P7S7BVBJ.js → chunk-7DU2F7LM.js} +3 -3
  99. package/dist/{chunk-4HTQ76O4.js → chunk-7SJCSDQ3.js} +2 -2
  100. package/dist/{chunk-U4ESGVZ2.js → chunk-7YUX52XZ.js} +3 -3
  101. package/dist/{chunk-FMEP2RB5.js → chunk-B4WI7OF2.js} +2 -2
  102. package/dist/{chunk-EUP4AXIW.js → chunk-B6VDWDFN.js} +2 -2
  103. package/dist/{chunk-UOREPQ3C.js → chunk-BIXELUIR.js} +2 -2
  104. package/dist/{chunk-GYYLZOSO.js → chunk-BMBAA2M5.js} +13 -6
  105. package/dist/chunk-BMBAA2M5.js.map +1 -0
  106. package/dist/{chunk-AYZHHMTK.js → chunk-BNX2TUSF.js} +2 -2
  107. package/dist/{chunk-5ZXGH2ZL.js → chunk-BXOPUJ3W.js} +2 -2
  108. package/dist/{chunk-TE6B2UU6.js → chunk-CD7VTZIG.js} +2 -2
  109. package/dist/{chunk-EC5SVM6H.js → chunk-DE4ZGH2N.js} +2 -2
  110. package/dist/{chunk-YFVIA5A6.js → chunk-DRLZB3CN.js} +2 -2
  111. package/dist/{chunk-SRRZZHA5.js → chunk-EGOWY342.js} +2 -2
  112. package/dist/chunk-EIB4FJVR.js +46 -0
  113. package/dist/chunk-EIB4FJVR.js.map +1 -0
  114. package/dist/{chunk-W44T2KHG.js → chunk-EWBDJQ5Y.js} +3 -3
  115. package/dist/{chunk-JMBTNVMW.js → chunk-FGRJJBFO.js} +2 -2
  116. package/dist/{chunk-F3TURDFG.js → chunk-FPB5LQWW.js} +4 -1
  117. package/dist/{chunk-F3TURDFG.js.map → chunk-FPB5LQWW.js.map} +1 -1
  118. package/dist/{chunk-WGZHSQDV.js → chunk-G2XZFGYN.js} +4 -4
  119. package/dist/{chunk-CFIHVWYZ.js → chunk-GGROFIYX.js} +2 -2
  120. package/dist/{chunk-XLZZLUWL.js → chunk-HG74GEVY.js} +2 -2
  121. package/dist/chunk-HMDYSGY6.js +54 -0
  122. package/dist/chunk-HMDYSGY6.js.map +1 -0
  123. package/dist/{chunk-WUUGE7QC.js → chunk-HS75MCQF.js} +4 -4
  124. package/dist/{chunk-DO6R3LIE.js → chunk-I6IJDTRP.js} +2 -2
  125. package/dist/{chunk-7ZNJN5WZ.js → chunk-IHOXK2I6.js} +55 -6
  126. package/dist/chunk-IHOXK2I6.js.map +1 -0
  127. package/dist/{chunk-2NKY7OC6.js → chunk-IMJPJY7V.js} +2 -2
  128. package/dist/{chunk-TZ44E732.js → chunk-IO7K7GES.js} +2 -2
  129. package/dist/{chunk-7BNB7KHB.js → chunk-JIURESYF.js} +7 -7
  130. package/dist/{chunk-AYP2FZFA.js → chunk-JUOJGZPV.js} +2 -2
  131. package/dist/{chunk-4XTSKGLX.js → chunk-JYXLW22X.js} +3 -3
  132. package/dist/{chunk-HXDXR2FH.js → chunk-KPYMORPQ.js} +41 -31
  133. package/dist/chunk-KPYMORPQ.js.map +1 -0
  134. package/dist/{chunk-IPLYGWQF.js → chunk-KQAFEZQX.js} +5 -5
  135. package/dist/{chunk-AN2O4KZY.js → chunk-KVIMQAER.js} +2 -2
  136. package/dist/chunk-LI4APB6M.js +218 -0
  137. package/dist/chunk-LI4APB6M.js.map +1 -0
  138. package/dist/{chunk-VGRVJ6Z6.js → chunk-LIAM7U2J.js} +2 -2
  139. package/dist/{chunk-S3SND7SO.js → chunk-LIDJWAQV.js} +2 -2
  140. package/dist/{chunk-T5NI5K46.js → chunk-LYMJ36UI.js} +2 -2
  141. package/dist/{chunk-UGGOQKO6.js → chunk-MKJFPIVG.js} +93 -51
  142. package/dist/chunk-MKJFPIVG.js.map +1 -0
  143. package/dist/{chunk-UEJY6ZTQ.js → chunk-MKLDZNBD.js} +2 -2
  144. package/dist/{chunk-QUFJ3NJE.js → chunk-MNG536IS.js} +20 -20
  145. package/dist/{chunk-SW42MMAH.js → chunk-MQT3WP3F.js} +2 -2
  146. package/dist/{chunk-5EHPB6RL.js → chunk-MUNR43V3.js} +2 -2
  147. package/dist/{chunk-OV7GJ4KW.js → chunk-NNFB4CU4.js} +2 -2
  148. package/dist/{chunk-47C6DF43.js → chunk-OS4JVTHR.js} +3 -3
  149. package/dist/{chunk-W6YDAIVB.js → chunk-OSTXIFZW.js} +13 -2
  150. package/dist/chunk-OSTXIFZW.js.map +1 -0
  151. package/dist/chunk-P3YNEMYY.js +212 -0
  152. package/dist/chunk-P3YNEMYY.js.map +1 -0
  153. package/dist/{chunk-JOP7W24J.js → chunk-PA67GXYJ.js} +8 -8
  154. package/dist/{chunk-FSH6KRKO.js → chunk-PPJLJD2D.js} +2 -2
  155. package/dist/{chunk-AG6PANBG.js → chunk-PXJ6HE2W.js} +11 -11
  156. package/dist/{chunk-DDBLZJRV.js → chunk-QB4VXCFN.js} +2 -2
  157. package/dist/{chunk-L63M2PE4.js → chunk-QGAKUOKU.js} +2 -2
  158. package/dist/{chunk-YUQPUK6H.js → chunk-QLCMOHRE.js} +2 -2
  159. package/dist/{chunk-Q4AUIFUA.js → chunk-QMWKENNK.js} +4 -4
  160. package/dist/{chunk-66QOUYNS.js → chunk-R32AEEU3.js} +174 -57
  161. package/dist/chunk-R32AEEU3.js.map +1 -0
  162. package/dist/{chunk-TNQR7N52.js → chunk-S3YM4SZQ.js} +2 -1
  163. package/dist/chunk-S3YM4SZQ.js.map +1 -0
  164. package/dist/{chunk-RW4QNB4J.js → chunk-S45INSV3.js} +3 -1
  165. package/dist/{chunk-RW4QNB4J.js.map → chunk-S45INSV3.js.map} +1 -1
  166. package/dist/{chunk-EEHQY7ER.js → chunk-SK6HEQTW.js} +2 -2
  167. package/dist/{chunk-PGAB2V53.js → chunk-SMBWBEE7.js} +2 -2
  168. package/dist/{chunk-62NYUFNH.js → chunk-SS33RR4F.js} +8 -8
  169. package/dist/{chunk-4ECS33D4.js → chunk-T3T5HTZZ.js} +2 -2
  170. package/dist/{chunk-KG2OOAFF.js → chunk-TQSCR5DU.js} +6 -6
  171. package/dist/{chunk-D5DTZBTV.js → chunk-TW4MXM7H.js} +6 -6
  172. package/dist/chunk-TW4MXM7H.js.map +1 -0
  173. package/dist/{chunk-AS2NOPDM.js → chunk-V7IONNTJ.js} +2 -2
  174. package/dist/{chunk-HYWPUYLO.js → chunk-VV5GCNKG.js} +2 -2
  175. package/dist/{chunk-Y3XHIWVP.js → chunk-WL3PGPGU.js} +2 -2
  176. package/dist/{chunk-3UQIS2GC.js → chunk-WNMVUWI7.js} +2 -2
  177. package/dist/{chunk-66YUOI53.js → chunk-WQW6KPVC.js} +1 -1
  178. package/dist/chunk-WQW6KPVC.js.map +1 -0
  179. package/dist/{chunk-2AV75BJW.js → chunk-WVI43D54.js} +24 -1
  180. package/dist/chunk-WVI43D54.js.map +1 -0
  181. package/dist/{chunk-WOBMSMUK.js → chunk-WYU66IVZ.js} +3 -3
  182. package/dist/{chunk-A7GQBJP5.js → chunk-X2NFFBTO.js} +4 -4
  183. package/dist/{chunk-CWMMKFO7.js → chunk-XEHLYA5Z.js} +3 -3
  184. package/dist/{chunk-JIWZVOQM.js → chunk-XKHRNAK7.js} +2 -2
  185. package/dist/{chunk-VW5TGNJN.js → chunk-XXLH6KFO.js} +2 -2
  186. package/dist/chunk-XYGINDIJ.js +74 -0
  187. package/dist/chunk-XYGINDIJ.js.map +1 -0
  188. package/dist/{chunk-J5OXWG66.js → chunk-XZUHXKM3.js} +2 -2
  189. package/dist/{chunk-K4KE5MYE.js → chunk-Y5VT7BIT.js} +2 -2
  190. package/dist/{chunk-S7KDHFF2.js → chunk-YXWMZAAN.js} +2 -2
  191. package/dist/{chunk-EAZ3YZKN.js → chunk-ZEIJQ4I3.js} +2 -2
  192. package/dist/{cli-Cik3H7q1.d.ts → cli-Bbndoc6k.d.ts} +5 -5
  193. package/dist/cli.d.ts +17 -16
  194. package/dist/cli.js +90 -85
  195. package/dist/coding/export-okf-codegraph.d.ts +1 -1
  196. package/dist/coding/export-okf-codegraph.js +12 -12
  197. package/dist/coding/pre-action-gate.d.ts +1 -1
  198. package/dist/compounding/engine.d.ts +2 -2
  199. package/dist/compounding/engine.js +13 -13
  200. package/dist/compounding/preference-consolidator.d.ts +1 -1
  201. package/dist/compression-optimizer.d.ts +1 -1
  202. package/dist/config.d.ts +1 -1
  203. package/dist/config.js +3 -2
  204. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  205. package/dist/connectors/codex-materialize-runner.js +13 -13
  206. package/dist/connectors/codex-materialize.d.ts +1 -1
  207. package/dist/connectors/index.d.ts +1 -1
  208. package/dist/connectors/index.js +13 -13
  209. package/dist/consolidation-provenance-check.d.ts +2 -2
  210. package/dist/consolidation-undo.d.ts +2 -2
  211. package/dist/contradiction/index.d.ts +4 -4
  212. package/dist/converge-config.d.ts +1 -1
  213. package/dist/convergence-refresh.d.ts +2 -2
  214. package/dist/convergence-refresh.js +15 -15
  215. package/dist/conversation-index/backend.d.ts +1 -1
  216. package/dist/conversation-index/chunker.d.ts +1 -1
  217. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  218. package/dist/conversation-index/indexer.d.ts +1 -1
  219. package/dist/conversation-index/search.d.ts +1 -1
  220. package/dist/corpus-watermark.d.ts +1 -1
  221. package/dist/corpus-watermark.js +15 -15
  222. package/dist/cross-lingual-recall.d.ts +1 -1
  223. package/dist/day-summary.d.ts +1 -1
  224. package/dist/deep-recall-http-glue.d.ts +15 -14
  225. package/dist/deep-recall-http-glue.js +4 -4
  226. package/dist/deep-recall-mcp-tools.d.ts +15 -14
  227. package/dist/deep-recall-policy-llm.d.ts +2 -2
  228. package/dist/deep-recall-seeds.d.ts +1 -1
  229. package/dist/deep-recall.js +2 -2
  230. package/dist/delinearize.d.ts +1 -1
  231. package/dist/dependency-propagation-config.d.ts +1 -1
  232. package/dist/{dependency-propagation-delivery-BXaUoVUf.d.ts → dependency-propagation-delivery-B-LvcDaq.d.ts} +1 -1
  233. package/dist/direct-answer-wiring.d.ts +1 -1
  234. package/dist/direct-answer.d.ts +1 -1
  235. package/dist/embedding-fallback.d.ts +1 -1
  236. package/dist/enrichment/index.d.ts +1 -1
  237. package/dist/entity-origin-fields.d.ts +1 -1
  238. package/dist/entity-retrieval.d.ts +2 -2
  239. package/dist/entity-retrieval.js +14 -14
  240. package/dist/entity-schema.d.ts +1 -1
  241. package/dist/episodic-context.d.ts +1 -1
  242. package/dist/eval-trajectory-contracts.d.ts +1 -1
  243. package/dist/eval-trajectory-store.d.ts +1 -1
  244. package/dist/eval-trajectory.d.ts +1 -1
  245. package/dist/explicit-capture.d.ts +11 -11
  246. package/dist/external-wiki-access.d.ts +15 -14
  247. package/dist/external-wiki-access.js +44 -43
  248. package/dist/external-wiki-collection-registration.d.ts +1 -1
  249. package/dist/external-wiki-collection.d.ts +1 -1
  250. package/dist/external-wiki-mcp-tools.d.ts +15 -14
  251. package/dist/extraction-error-classification.d.ts +1 -1
  252. package/dist/extraction-evidence-class.d.ts +142 -0
  253. package/dist/extraction-evidence-class.js +113 -0
  254. package/dist/extraction-evidence-class.js.map +1 -0
  255. package/dist/extraction-faithfulness.d.ts +2 -2
  256. package/dist/extraction-judge-telemetry.d.ts +2 -2
  257. package/dist/extraction-judge-training.d.ts +2 -2
  258. package/dist/extraction-judge.d.ts +2 -2
  259. package/dist/extraction-liveness.d.ts +1 -1
  260. package/dist/extraction-normalization.d.ts +1 -1
  261. package/dist/extraction-prompt.d.ts +1 -1
  262. package/dist/extraction-source-grounding-rules.d.ts +1 -1
  263. package/dist/extraction-source-grounding.d.ts +1 -1
  264. package/dist/extraction-source-grounding.js +2 -2
  265. package/dist/extraction-span-config.d.ts +1 -1
  266. package/dist/extraction-span-materialize.d.ts +1 -1
  267. package/dist/extraction-span-wire.d.ts +1 -1
  268. package/dist/extraction.d.ts +2 -2
  269. package/dist/extraction.js +21 -21
  270. package/dist/fallback-llm-codex-subscription.d.ts +1 -1
  271. package/dist/fallback-llm.d.ts +1 -1
  272. package/dist/{generic-recall-paths-BkVVEoeO.d.ts → generic-recall-paths-Bfc7zigS.d.ts} +1 -1
  273. package/dist/graph-append-error.d.ts +1 -1
  274. package/dist/graph-dashboard-diff.d.ts +1 -1
  275. package/dist/graph-dashboard-key.d.ts +1 -1
  276. package/dist/graph-dashboard-parser.d.ts +1 -1
  277. package/dist/graph-edge-reinforcement.d.ts +1 -1
  278. package/dist/graph-jsonl.d.ts +1 -1
  279. package/dist/graph-path-reconstruction.d.ts +1 -1
  280. package/dist/graph-path-scoring.d.ts +1 -1
  281. package/dist/graph-snapshot.d.ts +1 -1
  282. package/dist/graph.d.ts +1 -1
  283. package/dist/harmonic-retrieval.js +1 -1
  284. package/dist/importance.d.ts +1 -1
  285. package/dist/importers/index.d.ts +1 -1
  286. package/dist/importers/test-utils.d.ts +1 -1
  287. package/dist/in-flight-reads.d.ts +1 -1
  288. package/dist/{index-Zb6SUV4R.d.ts → index-C7IA1DxB.d.ts} +3 -3
  289. package/dist/index.d.ts +798 -707
  290. package/dist/index.js +184 -134
  291. package/dist/intent.d.ts +1 -1
  292. package/dist/lcm/engine.d.ts +1 -1
  293. package/dist/lcm/engine.js +2 -2
  294. package/dist/lcm/index.d.ts +1 -1
  295. package/dist/lcm/index.js +7 -7
  296. package/dist/lcm/tools.d.ts +1 -1
  297. package/dist/lifecycle.d.ts +1 -1
  298. package/dist/live-connectors-runner.d.ts +1 -1
  299. package/dist/{local-llm-DdrhmecM.d.ts → local-llm-DH4tWtck.d.ts} +1 -1
  300. package/dist/local-llm-helpers.d.ts +2 -2
  301. package/dist/local-llm.d.ts +2 -2
  302. package/dist/local-llm.js +2 -2
  303. package/dist/local-model-endpoint.d.ts +1 -1
  304. package/dist/location/index.d.ts +5 -5
  305. package/dist/location/index.js +15 -15
  306. package/dist/maintenance/memory-governance.d.ts +1 -1
  307. package/dist/maintenance/memory-governance.js +13 -13
  308. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
  309. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +13 -13
  310. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
  311. package/dist/maintenance/rebuild-memory-projection.js +14 -14
  312. package/dist/{maintenance-Du_VRvVg.d.ts → maintenance-n6yeTQhR.d.ts} +4 -4
  313. package/dist/mcp-memory-inspector-app.d.ts +15 -14
  314. package/dist/mcp-read-only-tools.js +1 -1
  315. package/dist/memory-action-policy.d.ts +1 -1
  316. package/dist/memory-browse-http-glue.d.ts +170 -0
  317. package/dist/memory-browse-http-glue.js +9 -0
  318. package/dist/memory-browse-http-glue.js.map +1 -0
  319. package/dist/memory-browse-mcp-tools.d.ts +160 -0
  320. package/dist/memory-browse-mcp-tools.js +8 -0
  321. package/dist/memory-browse-mcp-tools.js.map +1 -0
  322. package/dist/memory-browse-operations.d.ts +2 -0
  323. package/dist/memory-browse-operations.js +246 -0
  324. package/dist/memory-browse-operations.js.map +1 -0
  325. package/dist/memory-browse.d.ts +113 -0
  326. package/dist/memory-browse.js +49 -0
  327. package/dist/memory-browse.js.map +1 -0
  328. package/dist/memory-cache.d.ts +1 -1
  329. package/dist/memory-controller.d.ts +1 -1
  330. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  331. package/dist/memory-projection-store.d.ts +1 -1
  332. package/dist/memory-provenance.d.ts +1 -1
  333. package/dist/memory-snapshot.d.ts +1 -1
  334. package/dist/memory-subject-cli.d.ts +15 -14
  335. package/dist/memory-subject.d.ts +15 -14
  336. package/dist/memory-worth-outcomes.d.ts +2 -2
  337. package/dist/models-json.d.ts +1 -1
  338. package/dist/namespaces/migrate.d.ts +3 -3
  339. package/dist/namespaces/migrate.js +14 -14
  340. package/dist/namespaces/principal.d.ts +1 -1
  341. package/dist/namespaces/search.d.ts +1 -1
  342. package/dist/namespaces/search.js +6 -6
  343. package/dist/namespaces/storage.d.ts +3 -3
  344. package/dist/namespaces/storage.js +13 -13
  345. package/dist/native-knowledge.d.ts +1 -1
  346. package/dist/offline-sync-impression-drain.d.ts +1 -1
  347. package/dist/operator-doctor-corpus.d.ts +1 -1
  348. package/dist/operator-doctor-corpus.js +16 -16
  349. package/dist/operator-doctor-replica.d.ts +1 -1
  350. package/dist/operator-toolkit.d.ts +3 -3
  351. package/dist/operator-toolkit.js +23 -22
  352. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  353. package/dist/orchestration/maintenance.d.ts +4 -4
  354. package/dist/orchestration/maintenance.js +23 -23
  355. package/dist/{orchestrator-D9U3Zgjp.d.ts → orchestrator-Cirjo3ZB.d.ts} +10 -10
  356. package/dist/orchestrator.d.ts +11 -11
  357. package/dist/orchestrator.js +122 -117
  358. package/dist/patterns-cli.d.ts +1 -1
  359. package/dist/{pipeline-4lqKJZ_0.d.ts → pipeline-DK79FrgH.d.ts} +1 -1
  360. package/dist/policy-runtime.d.ts +1 -1
  361. package/dist/proactive-contention.d.ts +2 -2
  362. package/dist/provenance.d.ts +77 -2
  363. package/dist/provenance.js +7 -3
  364. package/dist/{public-http-AabioFLh.d.ts → public-http-DaHHhWRR.d.ts} +1 -1
  365. package/dist/{qmd-DnoWaXKb.d.ts → qmd-BT0ErlRS.d.ts} +1 -1
  366. package/dist/qmd-preflight.d.ts +2 -2
  367. package/dist/qmd-recall-cache.d.ts +1 -1
  368. package/dist/qmd.d.ts +2 -2
  369. package/dist/qmd.js +4 -4
  370. package/dist/recall-concurrency-config.d.ts +1 -1
  371. package/dist/recall-context-composition.d.ts +43 -3
  372. package/dist/recall-context-composition.js +5 -1
  373. package/dist/recall-disclosure-escalation.d.ts +1 -1
  374. package/dist/recall-explain-renderer.d.ts +1 -1
  375. package/dist/recall-explain-renderer.js +3 -3
  376. package/dist/recall-memory-map.d.ts +1 -1
  377. package/dist/recall-navigate-access.d.ts +1 -1
  378. package/dist/recall-navigate-access.js +2 -2
  379. package/dist/recall-navigate-disclosure.d.ts +1 -1
  380. package/dist/recall-navigate-disclosure.js +2 -2
  381. package/dist/recall-navigate.d.ts +1 -1
  382. package/dist/recall-navigate.js +2 -2
  383. package/dist/recall-navigation-http-glue.d.ts +15 -14
  384. package/dist/recall-navigation-mcp-tools.d.ts +15 -14
  385. package/dist/recall-navigation-operations.js +44 -43
  386. package/dist/recall-navigation-renderer.d.ts +1 -1
  387. package/dist/recall-navigation.d.ts +1 -1
  388. package/dist/recall-navigation.js +43 -42
  389. package/dist/recall-planner-llm.d.ts +1 -1
  390. package/dist/recall-state-view-admission.d.ts +2 -2
  391. package/dist/recall-state-view-admission.js +5 -5
  392. package/dist/recall-state-view-anchors.d.ts +1 -1
  393. package/dist/recall-state.d.ts +1 -1
  394. package/dist/recall-tag-filter.d.ts +1 -1
  395. package/dist/recall-timings.d.ts +1 -1
  396. package/dist/recall-xray-cli.d.ts +1 -1
  397. package/dist/recall-xray-cli.js +4 -4
  398. package/dist/recall-xray-renderer.d.ts +1 -1
  399. package/dist/recall-xray-renderer.js +3 -3
  400. package/dist/recall-xray.d.ts +1 -1
  401. package/dist/recall-xray.js +2 -2
  402. package/dist/reconcile/cursor.d.ts +1 -1
  403. package/dist/reconcile/manifest.d.ts +4 -1
  404. package/dist/reconcile/manifest.js +1 -1
  405. package/dist/reconcile/plan.d.ts +1 -1
  406. package/dist/replay/normalizers/chatgpt.d.ts +1 -1
  407. package/dist/replay/normalizers/claude.d.ts +1 -1
  408. package/dist/replay/normalizers/openclaw.d.ts +1 -1
  409. package/dist/replay/normalizers/shared.d.ts +1 -1
  410. package/dist/replay/runner.d.ts +1 -1
  411. package/dist/replay/types.d.ts +1 -1
  412. package/dist/replica-divergence.d.ts +1 -1
  413. package/dist/replica-peers-config.d.ts +1 -1
  414. package/dist/resolve-auth-token.d.ts +1 -1
  415. package/dist/resume-bundles.js +4 -3
  416. package/dist/retrieval-agents.d.ts +2 -2
  417. package/dist/retrieval-tiers.d.ts +1 -1
  418. package/dist/routing/engine.d.ts +1 -1
  419. package/dist/routing/store.d.ts +1 -1
  420. package/dist/salvage-envelope.d.ts +1 -1
  421. package/dist/schemas.d.ts +160 -160
  422. package/dist/{scope-profiles-crazXegZ.d.ts → scope-profiles-BgPQx9iE.d.ts} +1 -1
  423. package/dist/search/embed-helper.d.ts +1 -1
  424. package/dist/search/factory.d.ts +1 -1
  425. package/dist/search/factory.js +5 -5
  426. package/dist/search/index.d.ts +1 -1
  427. package/dist/search/index.js +9 -9
  428. package/dist/search/lancedb-backend.d.ts +1 -1
  429. package/dist/search/meilisearch-backend.d.ts +1 -1
  430. package/dist/search/noop-backend.d.ts +1 -1
  431. package/dist/search/orama-backend.d.ts +1 -1
  432. package/dist/search/port.d.ts +1 -1
  433. package/dist/search/remote-backend.d.ts +1 -1
  434. package/dist/{semantic-consolidation-B09JI9WM.d.ts → semantic-consolidation-BrAWKVcm.d.ts} +1 -1
  435. package/dist/semantic-consolidation.d.ts +2 -2
  436. package/dist/semantic-consolidation.js +14 -14
  437. package/dist/semantic-rule-promotion.js +13 -13
  438. package/dist/semantic-rule-verifier.d.ts +1 -1
  439. package/dist/semantic-rule-verifier.js +13 -13
  440. package/dist/{service-ByjbCuj7.d.ts → service-CqHOTg87.d.ts} +2 -2
  441. package/dist/session-observer-bands.d.ts +1 -1
  442. package/dist/session-observer-state.d.ts +1 -1
  443. package/dist/shared-context/manager.d.ts +7 -7
  444. package/dist/signal.d.ts +1 -1
  445. package/dist/source-agent-qualifier.d.ts +1 -1
  446. package/dist/source-agent-qualifier.js +17 -17
  447. package/dist/standing-memory-block.d.ts +77 -0
  448. package/dist/standing-memory-block.js +40 -0
  449. package/dist/standing-memory-block.js.map +1 -0
  450. package/dist/standup/build.js +13 -13
  451. package/dist/{storage-CbdF077z.d.ts → storage-mD2YQ8_2.d.ts} +1 -1
  452. package/dist/storage.d.ts +2 -2
  453. package/dist/storage.js +12 -12
  454. package/dist/subject-config.d.ts +1 -1
  455. package/dist/summarizer.d.ts +1 -1
  456. package/dist/summarizer.js +3 -3
  457. package/dist/summary-snapshot.d.ts +1 -1
  458. package/dist/support-passport/index.d.ts +18 -17
  459. package/dist/support-passport/index.js +46 -45
  460. package/dist/{tagging-CF7DNV7_.d.ts → tagging-CiAVA-ID.d.ts} +2 -2
  461. package/dist/temporal-supersession.d.ts +2 -2
  462. package/dist/temporal-timeline-recall.d.ts +1 -1
  463. package/dist/temporal-timeline-recall.js +2 -2
  464. package/dist/temporal-validity.d.ts +1 -1
  465. package/dist/threading.d.ts +1 -1
  466. package/dist/tier-migration.d.ts +2 -2
  467. package/dist/tier-routing.d.ts +1 -1
  468. package/dist/topics.d.ts +1 -1
  469. package/dist/transcript.d.ts +1 -1
  470. package/dist/transfer/autodetect.js +1 -1
  471. package/dist/transfer/backup.js +1 -1
  472. package/dist/transfer/capsule-export.js +2 -2
  473. package/dist/transfer/export-okf.d.ts +1 -1
  474. package/dist/transfer/export-okf.js +13 -13
  475. package/dist/transfer/types.d.ts +78 -78
  476. package/dist/trust-score-stage.d.ts +1 -1
  477. package/dist/trust-score.d.ts +1 -1
  478. package/dist/{types-nmhnJpxx.d.ts → types-DgDaoY61.d.ts} +6 -0
  479. package/dist/types.d.ts +1 -1
  480. package/dist/types.js +1 -1
  481. package/dist/utility-runtime.d.ts +1 -1
  482. package/dist/verified-recall.js +13 -13
  483. package/dist/who-knows-cli.d.ts +15 -14
  484. package/dist/who-knows-cli.js +14 -14
  485. package/dist/who-knows.d.ts +15 -14
  486. package/dist/who-knows.js +13 -13
  487. package/dist/write-envelope.d.ts +1 -1
  488. package/package.json +2 -2
  489. package/src/access-boundary.ts +3 -0
  490. package/src/access-http.ts +2 -2
  491. package/src/access-mcp-output-schemas.ts +25 -0
  492. package/src/access-mcp.ts +3 -3
  493. package/src/access-operations.ts +2 -0
  494. package/src/access-service.ts +6 -1
  495. package/src/access-surface-catalog.test.ts +20 -0
  496. package/src/access-surface-catalog.ts +6 -0
  497. package/src/activity/timeline/index.ts +1 -0
  498. package/src/activity/timeline/journal-recap.test.ts +17 -0
  499. package/src/activity/timeline/journal-recap.ts +19 -6
  500. package/src/activity/timeline/recap-export-range.test.ts +289 -0
  501. package/src/activity/timeline/recap-export-range.ts +169 -0
  502. package/src/activity/timeline/recap-export.test.ts +73 -1
  503. package/src/activity/timeline/recap-export.ts +57 -4
  504. package/src/cli/memory-browse-commands.ts +77 -0
  505. package/src/cli.ts +2 -2
  506. package/src/config.ts +11 -0
  507. package/src/extraction-evidence-class.test.ts +355 -0
  508. package/src/extraction-evidence-class.ts +241 -0
  509. package/src/index.ts +1 -0
  510. package/src/mcp-read-only-tools.ts +3 -0
  511. package/src/memory-browse-http-glue.ts +93 -0
  512. package/src/memory-browse-mcp-tools.ts +57 -0
  513. package/src/memory-browse-operations.ts +88 -0
  514. package/src/memory-browse-surface.test.ts +500 -0
  515. package/src/memory-browse.ts +316 -0
  516. package/src/provenance.ts +3 -3
  517. package/src/recall-context-composition.test.ts +66 -0
  518. package/src/recall-context-composition.ts +102 -2
  519. package/src/reconcile/manifest.test.ts +27 -0
  520. package/src/reconcile/manifest.ts +7 -0
  521. package/src/standing-memory-block.test.ts +262 -0
  522. package/src/standing-memory-block.ts +331 -0
  523. package/src/types.ts +6 -0
  524. package/dist/chunk-2AV75BJW.js.map +0 -1
  525. package/dist/chunk-66QOUYNS.js.map +0 -1
  526. package/dist/chunk-66YUOI53.js.map +0 -1
  527. package/dist/chunk-7ZNJN5WZ.js.map +0 -1
  528. package/dist/chunk-D5DTZBTV.js.map +0 -1
  529. package/dist/chunk-GYYLZOSO.js.map +0 -1
  530. package/dist/chunk-HXDXR2FH.js.map +0 -1
  531. package/dist/chunk-KF57IQFX.js.map +0 -1
  532. package/dist/chunk-TNQR7N52.js.map +0 -1
  533. package/dist/chunk-UGGOQKO6.js.map +0 -1
  534. package/dist/chunk-W6YDAIVB.js.map +0 -1
  535. /package/dist/{chunk-N46SNYMC.js.map → chunk-2B2RHLHI.js.map} +0 -0
  536. /package/dist/{chunk-F5V7KRQS.js.map → chunk-2WMXZYMS.js.map} +0 -0
  537. /package/dist/{chunk-ORQ7AZMU.js.map → chunk-3RKVSECD.js.map} +0 -0
  538. /package/dist/{chunk-3NYM6JA4.js.map → chunk-4LPIVP77.js.map} +0 -0
  539. /package/dist/{chunk-PW4HTWXL.js.map → chunk-55XWRL6F.js.map} +0 -0
  540. /package/dist/{chunk-GGY7WKMB.js.map → chunk-5KBI2MOC.js.map} +0 -0
  541. /package/dist/{chunk-IXMWTNNY.js.map → chunk-6A6HSXWV.js.map} +0 -0
  542. /package/dist/{chunk-P7S7BVBJ.js.map → chunk-7DU2F7LM.js.map} +0 -0
  543. /package/dist/{chunk-4HTQ76O4.js.map → chunk-7SJCSDQ3.js.map} +0 -0
  544. /package/dist/{chunk-U4ESGVZ2.js.map → chunk-7YUX52XZ.js.map} +0 -0
  545. /package/dist/{chunk-FMEP2RB5.js.map → chunk-B4WI7OF2.js.map} +0 -0
  546. /package/dist/{chunk-EUP4AXIW.js.map → chunk-B6VDWDFN.js.map} +0 -0
  547. /package/dist/{chunk-UOREPQ3C.js.map → chunk-BIXELUIR.js.map} +0 -0
  548. /package/dist/{chunk-AYZHHMTK.js.map → chunk-BNX2TUSF.js.map} +0 -0
  549. /package/dist/{chunk-5ZXGH2ZL.js.map → chunk-BXOPUJ3W.js.map} +0 -0
  550. /package/dist/{chunk-TE6B2UU6.js.map → chunk-CD7VTZIG.js.map} +0 -0
  551. /package/dist/{chunk-EC5SVM6H.js.map → chunk-DE4ZGH2N.js.map} +0 -0
  552. /package/dist/{chunk-YFVIA5A6.js.map → chunk-DRLZB3CN.js.map} +0 -0
  553. /package/dist/{chunk-SRRZZHA5.js.map → chunk-EGOWY342.js.map} +0 -0
  554. /package/dist/{chunk-W44T2KHG.js.map → chunk-EWBDJQ5Y.js.map} +0 -0
  555. /package/dist/{chunk-JMBTNVMW.js.map → chunk-FGRJJBFO.js.map} +0 -0
  556. /package/dist/{chunk-WGZHSQDV.js.map → chunk-G2XZFGYN.js.map} +0 -0
  557. /package/dist/{chunk-CFIHVWYZ.js.map → chunk-GGROFIYX.js.map} +0 -0
  558. /package/dist/{chunk-XLZZLUWL.js.map → chunk-HG74GEVY.js.map} +0 -0
  559. /package/dist/{chunk-WUUGE7QC.js.map → chunk-HS75MCQF.js.map} +0 -0
  560. /package/dist/{chunk-DO6R3LIE.js.map → chunk-I6IJDTRP.js.map} +0 -0
  561. /package/dist/{chunk-2NKY7OC6.js.map → chunk-IMJPJY7V.js.map} +0 -0
  562. /package/dist/{chunk-TZ44E732.js.map → chunk-IO7K7GES.js.map} +0 -0
  563. /package/dist/{chunk-7BNB7KHB.js.map → chunk-JIURESYF.js.map} +0 -0
  564. /package/dist/{chunk-AYP2FZFA.js.map → chunk-JUOJGZPV.js.map} +0 -0
  565. /package/dist/{chunk-4XTSKGLX.js.map → chunk-JYXLW22X.js.map} +0 -0
  566. /package/dist/{chunk-IPLYGWQF.js.map → chunk-KQAFEZQX.js.map} +0 -0
  567. /package/dist/{chunk-AN2O4KZY.js.map → chunk-KVIMQAER.js.map} +0 -0
  568. /package/dist/{chunk-VGRVJ6Z6.js.map → chunk-LIAM7U2J.js.map} +0 -0
  569. /package/dist/{chunk-S3SND7SO.js.map → chunk-LIDJWAQV.js.map} +0 -0
  570. /package/dist/{chunk-T5NI5K46.js.map → chunk-LYMJ36UI.js.map} +0 -0
  571. /package/dist/{chunk-UEJY6ZTQ.js.map → chunk-MKLDZNBD.js.map} +0 -0
  572. /package/dist/{chunk-QUFJ3NJE.js.map → chunk-MNG536IS.js.map} +0 -0
  573. /package/dist/{chunk-SW42MMAH.js.map → chunk-MQT3WP3F.js.map} +0 -0
  574. /package/dist/{chunk-5EHPB6RL.js.map → chunk-MUNR43V3.js.map} +0 -0
  575. /package/dist/{chunk-OV7GJ4KW.js.map → chunk-NNFB4CU4.js.map} +0 -0
  576. /package/dist/{chunk-47C6DF43.js.map → chunk-OS4JVTHR.js.map} +0 -0
  577. /package/dist/{chunk-JOP7W24J.js.map → chunk-PA67GXYJ.js.map} +0 -0
  578. /package/dist/{chunk-FSH6KRKO.js.map → chunk-PPJLJD2D.js.map} +0 -0
  579. /package/dist/{chunk-AG6PANBG.js.map → chunk-PXJ6HE2W.js.map} +0 -0
  580. /package/dist/{chunk-DDBLZJRV.js.map → chunk-QB4VXCFN.js.map} +0 -0
  581. /package/dist/{chunk-L63M2PE4.js.map → chunk-QGAKUOKU.js.map} +0 -0
  582. /package/dist/{chunk-YUQPUK6H.js.map → chunk-QLCMOHRE.js.map} +0 -0
  583. /package/dist/{chunk-Q4AUIFUA.js.map → chunk-QMWKENNK.js.map} +0 -0
  584. /package/dist/{chunk-EEHQY7ER.js.map → chunk-SK6HEQTW.js.map} +0 -0
  585. /package/dist/{chunk-PGAB2V53.js.map → chunk-SMBWBEE7.js.map} +0 -0
  586. /package/dist/{chunk-62NYUFNH.js.map → chunk-SS33RR4F.js.map} +0 -0
  587. /package/dist/{chunk-4ECS33D4.js.map → chunk-T3T5HTZZ.js.map} +0 -0
  588. /package/dist/{chunk-KG2OOAFF.js.map → chunk-TQSCR5DU.js.map} +0 -0
  589. /package/dist/{chunk-AS2NOPDM.js.map → chunk-V7IONNTJ.js.map} +0 -0
  590. /package/dist/{chunk-HYWPUYLO.js.map → chunk-VV5GCNKG.js.map} +0 -0
  591. /package/dist/{chunk-Y3XHIWVP.js.map → chunk-WL3PGPGU.js.map} +0 -0
  592. /package/dist/{chunk-3UQIS2GC.js.map → chunk-WNMVUWI7.js.map} +0 -0
  593. /package/dist/{chunk-WOBMSMUK.js.map → chunk-WYU66IVZ.js.map} +0 -0
  594. /package/dist/{chunk-A7GQBJP5.js.map → chunk-X2NFFBTO.js.map} +0 -0
  595. /package/dist/{chunk-CWMMKFO7.js.map → chunk-XEHLYA5Z.js.map} +0 -0
  596. /package/dist/{chunk-JIWZVOQM.js.map → chunk-XKHRNAK7.js.map} +0 -0
  597. /package/dist/{chunk-VW5TGNJN.js.map → chunk-XXLH6KFO.js.map} +0 -0
  598. /package/dist/{chunk-J5OXWG66.js.map → chunk-XZUHXKM3.js.map} +0 -0
  599. /package/dist/{chunk-K4KE5MYE.js.map → chunk-Y5VT7BIT.js.map} +0 -0
  600. /package/dist/{chunk-S7KDHFF2.js.map → chunk-YXWMZAAN.js.map} +0 -0
  601. /package/dist/{chunk-EAZ3YZKN.js.map → chunk-ZEIJQ4I3.js.map} +0 -0
@@ -1,7 +1,3 @@
1
- import {
2
- CAPSULE_SCHEMA_VERSION,
3
- EXPORT_FORMAT
4
- } from "./chunk-J4EB7DNW.js";
5
1
  import {
6
2
  CAPSULE_ID_PATTERN,
7
3
  CapsuleBlockSchema,
@@ -11,6 +7,10 @@ import {
11
7
  import {
12
8
  encryptCapsuleFile
13
9
  } from "./chunk-X7Y7WX73.js";
10
+ import {
11
+ CAPSULE_SCHEMA_VERSION,
12
+ EXPORT_FORMAT
13
+ } from "./chunk-J4EB7DNW.js";
14
14
  import {
15
15
  DEFAULT_TRANSFER_EXCLUDE_DIRS,
16
16
  computeTransferOutputRel
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-IPLYGWQF.js.map
264
+ //# sourceMappingURL=chunk-KQAFEZQX.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7T4TOGMS.js";
4
4
  import {
5
5
  defineOperation
6
- } from "./chunk-HXDXR2FH.js";
6
+ } from "./chunk-KPYMORPQ.js";
7
7
 
8
8
  // src/external-wiki-access.ts
9
9
  import { z } from "zod";
@@ -26,4 +26,4 @@ var externalWikiSearchOperation = defineOperation({
26
26
  export {
27
27
  externalWikiSearchOperation
28
28
  };
29
- //# sourceMappingURL=chunk-AN2O4KZY.js.map
29
+ //# sourceMappingURL=chunk-KVIMQAER.js.map
@@ -0,0 +1,218 @@
1
+ import {
2
+ coerceBooleanLike,
3
+ coerceNumber
4
+ } from "./chunk-PQVCH2AE.js";
5
+
6
+ // src/standing-memory-block.ts
7
+ var DEFAULT_RECALL_STANDING_BLOCK = false;
8
+ var DEFAULT_STANDING_BLOCK_FRESH_DAYS = 14;
9
+ var DEFAULT_STANDING_BLOCK_MAX_CHARS = 2048;
10
+ var DEFAULT_STANDING_BLOCK_HOOK_CHARS = 96;
11
+ var STANDING_BLOCK_HEADER = "## Standing Memory (Remnic)";
12
+ var STANDING_BLOCK_INSTRUCTION = "Use this standing index for orientation. It changes only when the memory store changes.";
13
+ var STANDING_BLOCK_TRIMMED_MARKER = "- ...(older lines trimmed)";
14
+ function standingHookLedgerKey(description, hookMaxChars) {
15
+ return `${description}\0${hookMaxChars}`;
16
+ }
17
+ var ISO_DATE_RE = /\b\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2})?/;
18
+ var CLOCK_TIME_RE = /\b\d{1,2}:\d{2}(?::\d{2})?\b/;
19
+ var RELATIVE_DATE_RE = /\b(?:today|tonight|tomorrow|yesterday|this\s+(?:morning|afternoon|evening|week|month|year))\b/i;
20
+ var COUNTER_RE = /\b(?:count|total|entries|memories|items)\s*[:=]\s*\d+\b/i;
21
+ function lintStandingBlockVolatility(text) {
22
+ const matches = [];
23
+ for (const [kind, re] of [
24
+ ["iso-date", ISO_DATE_RE],
25
+ ["clock-time", CLOCK_TIME_RE],
26
+ ["relative-date", RELATIVE_DATE_RE],
27
+ ["counter", COUNTER_RE]
28
+ ]) {
29
+ const hit = text.match(re);
30
+ if (hit) matches.push({ kind, token: hit[0] });
31
+ }
32
+ return matches;
33
+ }
34
+ var StandingBlockError = class extends Error {
35
+ constructor(message) {
36
+ super(message);
37
+ this.name = "StandingBlockError";
38
+ }
39
+ };
40
+ var StandingBlockVolatilityError = class extends StandingBlockError {
41
+ matches;
42
+ constructor(matches) {
43
+ super(
44
+ `standing memory block refused: volatile content busts the prefix cache (${matches.map((m) => `${m.kind}:${JSON.stringify(m.token)}`).join(", ")})`
45
+ );
46
+ this.name = "StandingBlockVolatilityError";
47
+ this.matches = matches;
48
+ }
49
+ };
50
+ var StandingBlockBudgetError = class extends StandingBlockError {
51
+ constructor(maxChars) {
52
+ super(
53
+ `standing memory block does not fit: pinned lines alone exceed maxChars=${maxChars}; raise standingBlockMaxChars or unpin entries`
54
+ );
55
+ this.name = "StandingBlockBudgetError";
56
+ }
57
+ };
58
+ function parseRecallStandingBlock(raw) {
59
+ return coerceBooleanLike(raw, "recallStandingBlock") === true;
60
+ }
61
+ function parseStandingBlockFreshDays(raw) {
62
+ if (raw === void 0 || raw === null) return DEFAULT_STANDING_BLOCK_FRESH_DAYS;
63
+ const n = coerceNumber(raw, "standingBlockFreshDays");
64
+ if (n === void 0 || !Number.isFinite(n) || n < 0) {
65
+ throw new Error(`Invalid standingBlockFreshDays: expected a number >= 0, got ${JSON.stringify(raw)}`);
66
+ }
67
+ return n;
68
+ }
69
+ function parseStandingBlockMaxChars(raw) {
70
+ if (raw === void 0 || raw === null) return DEFAULT_STANDING_BLOCK_MAX_CHARS;
71
+ const n = coerceNumber(raw, "standingBlockMaxChars");
72
+ if (n === void 0 || !Number.isFinite(n) || n < 1) {
73
+ throw new Error(`Invalid standingBlockMaxChars: expected an integer >= 1, got ${JSON.stringify(raw)}`);
74
+ }
75
+ return Math.floor(n);
76
+ }
77
+ function mechanicalHook(description, budget) {
78
+ if (description.length <= budget) return description;
79
+ const cut = description.slice(0, budget);
80
+ const lastSpace = cut.lastIndexOf(" ");
81
+ const base = lastSpace > Math.floor(budget * 0.6) ? cut.slice(0, lastSpace) : cut;
82
+ return `${base.replace(/[\s,;:]+$/, "")}...`;
83
+ }
84
+ var BAND_RANK = { pinned: 0, fresh: 1, compressed: 2 };
85
+ function validateEntries(entries) {
86
+ if (!Array.isArray(entries)) {
87
+ throw new StandingBlockError("standing memory block entries must be an array");
88
+ }
89
+ const seen = /* @__PURE__ */ new Set();
90
+ const validated = /* @__PURE__ */ new Map();
91
+ for (const entry of entries) {
92
+ if (typeof entry !== "object" || entry === null) {
93
+ throw new StandingBlockError(`standing memory block entry must be an object, got ${JSON.stringify(entry)}`);
94
+ }
95
+ const id = typeof entry.id === "string" ? entry.id.trim() : "";
96
+ const description = typeof entry.description === "string" ? entry.description.trim() : "";
97
+ if (id.length === 0) {
98
+ throw new StandingBlockError("standing memory block entry requires a non-empty id");
99
+ }
100
+ if (description.length === 0) {
101
+ throw new StandingBlockError(`standing memory block entry ${id} requires a non-empty description`);
102
+ }
103
+ if (seen.has(id)) {
104
+ throw new StandingBlockError(`standing memory block entry ids must be unique; duplicate: ${id}`);
105
+ }
106
+ if (entry.lastChangedAt !== void 0 && Number.isNaN(Date.parse(entry.lastChangedAt))) {
107
+ throw new StandingBlockError(
108
+ `standing memory block entry ${id} has an unparseable lastChangedAt: ${JSON.stringify(entry.lastChangedAt)}`
109
+ );
110
+ }
111
+ seen.add(id);
112
+ validated.set(id, { ...entry, id, description });
113
+ }
114
+ return validated;
115
+ }
116
+ function buildStandingMemoryBlock(input) {
117
+ const freshDays = input.freshDays ?? DEFAULT_STANDING_BLOCK_FRESH_DAYS;
118
+ const maxChars = input.maxChars ?? DEFAULT_STANDING_BLOCK_MAX_CHARS;
119
+ const hookMaxChars = input.hookMaxChars ?? DEFAULT_STANDING_BLOCK_HOOK_CHARS;
120
+ if (!Number.isFinite(input.nowMs)) {
121
+ throw new StandingBlockError("standing memory block requires a finite nowMs");
122
+ }
123
+ if (!(freshDays >= 0) || !Number.isFinite(freshDays)) {
124
+ throw new StandingBlockError("standing memory block requires freshDays >= 0");
125
+ }
126
+ if (!(maxChars >= 1) || !Number.isFinite(maxChars)) {
127
+ throw new StandingBlockError("standing memory block requires maxChars >= 1");
128
+ }
129
+ if (!(hookMaxChars >= 1) || !Number.isFinite(hookMaxChars)) {
130
+ throw new StandingBlockError("standing memory block requires hookMaxChars >= 1");
131
+ }
132
+ const entries = validateEntries(input.entries);
133
+ const ledger = new Map(input.ledger ?? []);
134
+ if (entries.size === 0) {
135
+ return {
136
+ text: "",
137
+ lines: [],
138
+ ledger,
139
+ bandCounts: { pinned: 0, fresh: 0, compressed: 0, dropped: 0 }
140
+ };
141
+ }
142
+ const freshCutoff = input.nowMs - freshDays * 864e5;
143
+ const layered = [];
144
+ for (const entry of entries.values()) {
145
+ let band;
146
+ if (entry.pinned === true) {
147
+ band = "pinned";
148
+ } else if (typeof entry.lastChangedAt === "string" && Date.parse(entry.lastChangedAt) >= freshCutoff && Date.parse(entry.lastChangedAt) <= input.nowMs) {
149
+ band = "fresh";
150
+ } else {
151
+ band = "compressed";
152
+ }
153
+ if (band !== "compressed") {
154
+ layered.push({ id: entry.id, band, line: `- ${entry.description}` });
155
+ continue;
156
+ }
157
+ const key = standingHookLedgerKey(entry.description, hookMaxChars);
158
+ const cached = ledger.get(key);
159
+ const hook = cached ?? mechanicalHook(entry.description, hookMaxChars);
160
+ if (cached === void 0) ledger.set(key, hook);
161
+ layered.push({ id: entry.id, band, line: `- ${hook}` });
162
+ }
163
+ layered.sort(
164
+ (a, b) => BAND_RANK[a.band] - BAND_RANK[b.band] || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0)
165
+ );
166
+ const render = (keep2, withMarker) => {
167
+ const body = layered.slice(0, keep2).map((item) => item.line);
168
+ if (withMarker) body.push(STANDING_BLOCK_TRIMMED_MARKER);
169
+ const lines = [STANDING_BLOCK_HEADER, "", ...body, "", STANDING_BLOCK_INSTRUCTION];
170
+ return { text: lines.join("\n"), lines };
171
+ };
172
+ const pinnedCount = layered.filter((item) => item.band === "pinned").length;
173
+ let keep = layered.length;
174
+ let rendered = render(keep, false);
175
+ while (rendered.text.length > maxChars && keep > pinnedCount) {
176
+ keep -= 1;
177
+ rendered = render(keep, true);
178
+ }
179
+ if (rendered.text.length > maxChars) {
180
+ throw new StandingBlockBudgetError(maxChars);
181
+ }
182
+ const volatility = lintStandingBlockVolatility(rendered.text);
183
+ if (volatility.length > 0) {
184
+ throw new StandingBlockVolatilityError(volatility);
185
+ }
186
+ const kept = layered.slice(0, keep);
187
+ return {
188
+ text: rendered.text,
189
+ lines: rendered.lines,
190
+ ledger,
191
+ bandCounts: {
192
+ pinned: kept.filter((item) => item.band === "pinned").length,
193
+ fresh: kept.filter((item) => item.band === "fresh").length,
194
+ compressed: kept.filter((item) => item.band === "compressed").length,
195
+ dropped: layered.length - keep
196
+ }
197
+ };
198
+ }
199
+
200
+ export {
201
+ DEFAULT_RECALL_STANDING_BLOCK,
202
+ DEFAULT_STANDING_BLOCK_FRESH_DAYS,
203
+ DEFAULT_STANDING_BLOCK_MAX_CHARS,
204
+ DEFAULT_STANDING_BLOCK_HOOK_CHARS,
205
+ STANDING_BLOCK_HEADER,
206
+ STANDING_BLOCK_INSTRUCTION,
207
+ STANDING_BLOCK_TRIMMED_MARKER,
208
+ standingHookLedgerKey,
209
+ lintStandingBlockVolatility,
210
+ StandingBlockError,
211
+ StandingBlockVolatilityError,
212
+ StandingBlockBudgetError,
213
+ parseRecallStandingBlock,
214
+ parseStandingBlockFreshDays,
215
+ parseStandingBlockMaxChars,
216
+ buildStandingMemoryBlock
217
+ };
218
+ //# sourceMappingURL=chunk-LI4APB6M.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/standing-memory-block.ts"],"sourcesContent":["/**\n * Prefix-cache-stable standing memory block (issue #2971, foundation slice).\n *\n * A standing block is a compact, byte-stable index over pinned/high-value\n * memories that a host injects as the FIRST part of the system prompt, so\n * the LLM prefix cache survives across turns. Measured motivation\n * (distill-kura, local OpenAI-compatible server): an identical 4k-token\n * prefix reprices at 0.14 s vs 0.68 s cold, and one changed word at the\n * front costs the whole cache. So the block contains no clock, no date,\n * and no counter — and the builder REFUSES, at build time, any block that\n * carries one instead of discovering slow turns weeks later.\n *\n * Determinism rules (byte-identical between rebuilds):\n * - line order is band rank, then id codepoint order — never wall clock,\n * never insertion order, never locale collation;\n * - `nowMs` classifies bands but never renders into the text;\n * - the trimmed-tail marker is a constant string (no count of dropped\n * lines, which would itself be a counter).\n *\n * Host contract for the full feature (later wiring slices):\n * - rebuild only when the underlying store changes (store version), not\n * per turn and not on a timer — band edges must not drift mid-session;\n * - inject the standing block BEFORE per-turn dynamic recall and any\n * ticking content (persona with a clock), see docs/config-reference.md;\n * - selection of which memories qualify (pinned/high-value) happens\n * before this builder — it only layers and renders what it is given;\n * - on build failure (volatility, budget) skip injection and log — the\n * dynamic recall surface must not go blank.\n *\n * Pure: no I/O, inputs never mutated, the returned ledger is a fresh Map.\n */\nimport { coerceBooleanLike, coerceNumber } from \"./connectors/coerce.js\";\n\nexport const DEFAULT_RECALL_STANDING_BLOCK = false;\nexport const DEFAULT_STANDING_BLOCK_FRESH_DAYS = 14;\nexport const DEFAULT_STANDING_BLOCK_MAX_CHARS = 2048;\n/** ~24-token recognition hook at the repo's 4-chars-per-token Latin headroom. */\nexport const DEFAULT_STANDING_BLOCK_HOOK_CHARS = 96;\n\nexport const STANDING_BLOCK_HEADER = \"## Standing Memory (Remnic)\";\nexport const STANDING_BLOCK_INSTRUCTION =\n \"Use this standing index for orientation. It changes only when the memory store changes.\";\nexport const STANDING_BLOCK_TRIMMED_MARKER = \"- ...(older lines trimmed)\";\n\nexport type StandingBand = \"pinned\" | \"fresh\" | \"compressed\";\n\nexport interface StandingMemoryEntry {\n /** Stable document id. Total order within a band is id codepoint order. */\n id: string;\n /** The one-line description to stand in the index. */\n description: string;\n /** Pinned entries render in full, first band, never trimmed away. */\n pinned?: boolean;\n /** ISO timestamp of the last content change; drives the fresh band. */\n lastChangedAt?: string;\n}\n\n/** Cache of compressed hooks keyed on `${description}\\u0000${hookMaxChars}`. */\nexport type StandingHookLedger = ReadonlyMap<string, string>;\n\nexport function standingHookLedgerKey(description: string, hookMaxChars: number): string {\n return `${description}\\u0000${hookMaxChars}`;\n}\n\nexport interface StandingBlockBandCounts {\n pinned: number;\n fresh: number;\n compressed: number;\n dropped: number;\n}\n\nexport interface StandingMemoryBlock {\n /** Full block text (header + lines + instruction). Empty string for no entries. */\n text: string;\n /** Lines without a trailing newline; empty for no entries. */\n lines: string[];\n /** Ledger including hooks generated this build. Fresh Map; input never mutated. */\n ledger: StandingHookLedger;\n bandCounts: StandingBlockBandCounts;\n}\n\nexport type StandingVolatilityKind = \"iso-date\" | \"clock-time\" | \"relative-date\" | \"counter\";\n\nexport interface StandingVolatilityMatch {\n kind: StandingVolatilityKind;\n token: string;\n}\n\nconst ISO_DATE_RE = /\\b\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2})?/;\nconst CLOCK_TIME_RE = /\\b\\d{1,2}:\\d{2}(?::\\d{2})?\\b/;\nconst RELATIVE_DATE_RE =\n /\\b(?:today|tonight|tomorrow|yesterday|this\\s+(?:morning|afternoon|evening|week|month|year))\\b/i;\nconst COUNTER_RE = /\\b(?:count|total|entries|memories|items)\\s*[:=]\\s*\\d+\\b/i;\n\n/**\n * Build-time volatility lint. Returns every cache-busting token class found:\n * ISO dates/datetimes, clock times, relative date words, and index counters.\n * Refusal is the designed behavior (a memory surface skips the block and\n * logs) — a silently repricing prefix is the failure this catches.\n */\nexport function lintStandingBlockVolatility(text: string): StandingVolatilityMatch[] {\n const matches: StandingVolatilityMatch[] = [];\n for (const [kind, re] of [\n [\"iso-date\", ISO_DATE_RE],\n [\"clock-time\", CLOCK_TIME_RE],\n [\"relative-date\", RELATIVE_DATE_RE],\n [\"counter\", COUNTER_RE],\n ] as const) {\n const hit = text.match(re);\n if (hit) matches.push({ kind, token: hit[0] });\n }\n return matches;\n}\n\nexport class StandingBlockError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"StandingBlockError\";\n }\n}\n\nexport class StandingBlockVolatilityError extends StandingBlockError {\n readonly matches: readonly StandingVolatilityMatch[];\n constructor(matches: readonly StandingVolatilityMatch[]) {\n super(\n `standing memory block refused: volatile content busts the prefix cache (${matches\n .map((m) => `${m.kind}:${JSON.stringify(m.token)}`)\n .join(\", \")})`,\n );\n this.name = \"StandingBlockVolatilityError\";\n this.matches = matches;\n }\n}\n\nexport class StandingBlockBudgetError extends StandingBlockError {\n constructor(maxChars: number) {\n super(\n `standing memory block does not fit: pinned lines alone exceed maxChars=${maxChars}; raise standingBlockMaxChars or unpin entries`,\n );\n this.name = \"StandingBlockBudgetError\";\n }\n}\n\nexport function parseRecallStandingBlock(raw: unknown): boolean {\n return coerceBooleanLike(raw, \"recallStandingBlock\") === true;\n}\n\nexport function parseStandingBlockFreshDays(raw: unknown): number {\n if (raw === undefined || raw === null) return DEFAULT_STANDING_BLOCK_FRESH_DAYS;\n const n = coerceNumber(raw, \"standingBlockFreshDays\");\n if (n === undefined || !Number.isFinite(n) || n < 0) {\n throw new Error(`Invalid standingBlockFreshDays: expected a number >= 0, got ${JSON.stringify(raw)}`);\n }\n return n;\n}\n\nexport function parseStandingBlockMaxChars(raw: unknown): number {\n if (raw === undefined || raw === null) return DEFAULT_STANDING_BLOCK_MAX_CHARS;\n const n = coerceNumber(raw, \"standingBlockMaxChars\");\n if (n === undefined || !Number.isFinite(n) || n < 1) {\n throw new Error(`Invalid standingBlockMaxChars: expected an integer >= 1, got ${JSON.stringify(raw)}`);\n }\n return Math.floor(n);\n}\n\n/**\n * Mechanical hook: deterministic first-cut of the description to the char\n * budget at a word boundary. This is also the fallback when no model is\n * reachable for compression — the standing surface never goes blank because\n * a model is down. Model-generated hooks arrive pre-seeded in the ledger.\n */\nfunction mechanicalHook(description: string, budget: number): string {\n if (description.length <= budget) return description;\n const cut = description.slice(0, budget);\n const lastSpace = cut.lastIndexOf(\" \");\n const base = lastSpace > Math.floor(budget * 0.6) ? cut.slice(0, lastSpace) : cut;\n return `${base.replace(/[\\s,;:]+$/, \"\")}...`;\n}\n\ninterface LayeredEntry {\n id: string;\n band: StandingBand;\n line: string;\n}\n\nconst BAND_RANK: Record<StandingBand, number> = { pinned: 0, fresh: 1, compressed: 2 };\n\nfunction validateEntries(entries: readonly StandingMemoryEntry[]): Map<string, StandingMemoryEntry> {\n if (!Array.isArray(entries)) {\n throw new StandingBlockError(\"standing memory block entries must be an array\");\n }\n const seen = new Set<string>();\n const validated = new Map<string, StandingMemoryEntry>();\n for (const entry of entries) {\n if (typeof entry !== \"object\" || entry === null) {\n throw new StandingBlockError(`standing memory block entry must be an object, got ${JSON.stringify(entry)}`);\n }\n const id = typeof entry.id === \"string\" ? entry.id.trim() : \"\";\n const description = typeof entry.description === \"string\" ? entry.description.trim() : \"\";\n if (id.length === 0) {\n throw new StandingBlockError(\"standing memory block entry requires a non-empty id\");\n }\n if (description.length === 0) {\n throw new StandingBlockError(`standing memory block entry ${id} requires a non-empty description`);\n }\n if (seen.has(id)) {\n throw new StandingBlockError(`standing memory block entry ids must be unique; duplicate: ${id}`);\n }\n if (entry.lastChangedAt !== undefined && Number.isNaN(Date.parse(entry.lastChangedAt))) {\n throw new StandingBlockError(\n `standing memory block entry ${id} has an unparseable lastChangedAt: ${JSON.stringify(entry.lastChangedAt)}`,\n );\n }\n seen.add(id);\n validated.set(id, { ...entry, id, description });\n }\n return validated;\n}\n\nexport interface StandingMemoryBlockInput {\n entries: readonly StandingMemoryEntry[];\n /**\n * Evaluation instant for the fresh band. Hosts must key rebuilds on the\n * store version, not on this clock, or band edges drift per turn.\n */\n nowMs: number;\n freshDays?: number;\n maxChars?: number;\n hookMaxChars?: number;\n ledger?: StandingHookLedger;\n}\n\nexport function buildStandingMemoryBlock(input: StandingMemoryBlockInput): StandingMemoryBlock {\n const freshDays = input.freshDays ?? DEFAULT_STANDING_BLOCK_FRESH_DAYS;\n const maxChars = input.maxChars ?? DEFAULT_STANDING_BLOCK_MAX_CHARS;\n const hookMaxChars = input.hookMaxChars ?? DEFAULT_STANDING_BLOCK_HOOK_CHARS;\n if (!Number.isFinite(input.nowMs)) {\n throw new StandingBlockError(\"standing memory block requires a finite nowMs\");\n }\n if (!(freshDays >= 0) || !Number.isFinite(freshDays)) {\n throw new StandingBlockError(\"standing memory block requires freshDays >= 0\");\n }\n if (!(maxChars >= 1) || !Number.isFinite(maxChars)) {\n throw new StandingBlockError(\"standing memory block requires maxChars >= 1\");\n }\n if (!(hookMaxChars >= 1) || !Number.isFinite(hookMaxChars)) {\n throw new StandingBlockError(\"standing memory block requires hookMaxChars >= 1\");\n }\n\n const entries = validateEntries(input.entries);\n const ledger = new Map(input.ledger ?? []);\n if (entries.size === 0) {\n return {\n text: \"\",\n lines: [],\n ledger,\n bandCounts: { pinned: 0, fresh: 0, compressed: 0, dropped: 0 },\n };\n }\n\n const freshCutoff = input.nowMs - freshDays * 86_400_000;\n const layered: LayeredEntry[] = [];\n for (const entry of entries.values()) {\n let band: StandingBand;\n if (entry.pinned === true) {\n band = \"pinned\";\n } else if (\n typeof entry.lastChangedAt === \"string\" &&\n Date.parse(entry.lastChangedAt) >= freshCutoff &&\n Date.parse(entry.lastChangedAt) <= input.nowMs\n ) {\n band = \"fresh\";\n } else {\n band = \"compressed\";\n }\n if (band !== \"compressed\") {\n layered.push({ id: entry.id, band, line: `- ${entry.description}` });\n continue;\n }\n const key = standingHookLedgerKey(entry.description, hookMaxChars);\n const cached = ledger.get(key);\n const hook = cached ?? mechanicalHook(entry.description, hookMaxChars);\n if (cached === undefined) ledger.set(key, hook);\n layered.push({ id: entry.id, band, line: `- ${hook}` });\n }\n\n // Band rank, then id codepoint order. Never localeCompare: collation is\n // ICU-dependent and this text must be byte-identical across rebuilds.\n layered.sort(\n (a, b) =>\n BAND_RANK[a.band] - BAND_RANK[b.band] || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0),\n );\n\n const render = (keep: number, withMarker: boolean): { text: string; lines: string[] } => {\n const body = layered.slice(0, keep).map((item) => item.line);\n if (withMarker) body.push(STANDING_BLOCK_TRIMMED_MARKER);\n const lines = [STANDING_BLOCK_HEADER, \"\", ...body, \"\", STANDING_BLOCK_INSTRUCTION];\n return { text: lines.join(\"\\n\"), lines };\n };\n\n const pinnedCount = layered.filter((item) => item.band === \"pinned\").length;\n let keep = layered.length;\n let rendered = render(keep, false);\n // Mechanical trim: drop from the tail. The sort puts compressed lines\n // last, so oldest-band hooks go first and pinned lines are never reached.\n while (rendered.text.length > maxChars && keep > pinnedCount) {\n keep -= 1;\n rendered = render(keep, true);\n }\n if (rendered.text.length > maxChars) {\n throw new StandingBlockBudgetError(maxChars);\n }\n\n const volatility = lintStandingBlockVolatility(rendered.text);\n if (volatility.length > 0) {\n throw new StandingBlockVolatilityError(volatility);\n }\n\n const kept = layered.slice(0, keep);\n return {\n text: rendered.text,\n lines: rendered.lines,\n ledger,\n bandCounts: {\n pinned: kept.filter((item) => item.band === \"pinned\").length,\n fresh: kept.filter((item) => item.band === \"fresh\").length,\n compressed: kept.filter((item) => item.band === \"compressed\").length,\n dropped: layered.length - keep,\n },\n };\n}\n"],"mappings":"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","names":["keep"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-QUFJ3NJE.js";
3
+ } from "./chunk-MNG536IS.js";
4
4
  import {
5
5
  getCachedRuleMemories,
6
6
  setCachedRuleMemories
@@ -119,4 +119,4 @@ export {
119
119
  compareVerifiedSemanticRuleResults,
120
120
  searchVerifiedSemanticRules
121
121
  };
122
- //# sourceMappingURL=chunk-VGRVJ6Z6.js.map
122
+ //# sourceMappingURL=chunk-LIAM7U2J.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  computeCorpusWatermarks,
6
6
  resolveCorpusNamespaceRoots
7
- } from "./chunk-SW42MMAH.js";
7
+ } from "./chunk-MQT3WP3F.js";
8
8
 
9
9
  // src/operator-doctor-corpus.ts
10
10
  var DIGEST_PREFIX_LENGTH = 12;
@@ -78,4 +78,4 @@ export {
78
78
  corpusWatermarksFromCheck,
79
79
  summarizeCorpusAndReplica
80
80
  };
81
- //# sourceMappingURL=chunk-S3SND7SO.js.map
81
+ //# sourceMappingURL=chunk-LIDJWAQV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-CWMMKFO7.js";
3
+ } from "./chunk-XEHLYA5Z.js";
4
4
 
5
5
  // src/convergence-refresh.ts
6
6
  async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
32
32
  export {
33
33
  refreshConvergedNamespaces
34
34
  };
35
- //# sourceMappingURL=chunk-T5NI5K46.js.map
35
+ //# sourceMappingURL=chunk-LYMJ36UI.js.map
@@ -1,6 +1,3 @@
1
- import {
2
- chatgptReplayNormalizer
3
- } from "./chunk-MMACM5G2.js";
4
1
  import {
5
2
  claudeReplayNormalizer
6
3
  } from "./chunk-54BGIBCR.js";
@@ -8,21 +5,21 @@ import {
8
5
  openclawReplayNormalizer
9
6
  } from "./chunk-H4CKS5B2.js";
10
7
  import {
11
- importSqlite
12
- } from "./chunk-PYHOAXTI.js";
13
- import {
14
- exportJsonBundle
15
- } from "./chunk-UP6MOYCB.js";
8
+ chatgptReplayNormalizer
9
+ } from "./chunk-MMACM5G2.js";
16
10
  import {
17
11
  exportOkfBundle,
18
12
  parseIncludeStatus
19
- } from "./chunk-CFIHVWYZ.js";
13
+ } from "./chunk-GGROFIYX.js";
20
14
  import {
21
15
  exportSqlite
22
16
  } from "./chunk-BV2TIZ4F.js";
23
17
  import {
24
18
  importMarkdownBundle
25
19
  } from "./chunk-HDDRVXX4.js";
20
+ import {
21
+ importSqlite
22
+ } from "./chunk-PYHOAXTI.js";
26
23
  import {
27
24
  detectImportFormat
28
25
  } from "./chunk-OZKVVUJB.js";
@@ -35,6 +32,9 @@ import {
35
32
  import {
36
33
  exportMarkdownBundle
37
34
  } from "./chunk-765K3SAT.js";
35
+ import {
36
+ exportJsonBundle
37
+ } from "./chunk-UP6MOYCB.js";
38
38
  import {
39
39
  buildReplayNormalizerRegistry,
40
40
  clampBatchSize,
@@ -53,9 +53,6 @@ import {
53
53
  import {
54
54
  WebDavServer
55
55
  } from "./chunk-PYIFUBRK.js";
56
- import {
57
- rebuildMemoryLifecycleLedger
58
- } from "./chunk-SRRZZHA5.js";
59
56
  import {
60
57
  rebuildObservations
61
58
  } from "./chunk-DQTCGVFK.js";
@@ -66,17 +63,20 @@ import {
66
63
  migrateObservations
67
64
  } from "./chunk-IIFFC3RL.js";
68
65
  import {
69
- getBulkImportSource,
70
- listBulkImportSources,
71
- registerBulkImportSource,
72
- runBulkImportPipeline
73
- } from "./chunk-HSSERO3E.js";
66
+ rebuildMemoryLifecycleLedger
67
+ } from "./chunk-EGOWY342.js";
74
68
  import {
75
69
  lintOkfDir
76
70
  } from "./chunk-UJX4I26O.js";
77
71
  import {
78
72
  runCompatChecks
79
73
  } from "./chunk-2524MOWK.js";
74
+ import {
75
+ getBulkImportSource,
76
+ listBulkImportSources,
77
+ registerBulkImportSource,
78
+ runBulkImportPipeline
79
+ } from "./chunk-HSSERO3E.js";
80
80
  import {
81
81
  getUtilityLearningStatus,
82
82
  learnUtilityPromotionWeights
@@ -87,21 +87,21 @@ import {
87
87
  } from "./chunk-EBA5DA77.js";
88
88
  import {
89
89
  searchVerifiedEpisodes
90
- } from "./chunk-4ECS33D4.js";
90
+ } from "./chunk-T3T5HTZZ.js";
91
91
  import {
92
92
  ThreadingManager
93
93
  } from "./chunk-OJP3N7UK.js";
94
94
  import {
95
95
  promoteSemanticRuleFromMemory
96
- } from "./chunk-3NYM6JA4.js";
96
+ } from "./chunk-4LPIVP77.js";
97
97
  import {
98
98
  searchVerifiedSemanticRules
99
- } from "./chunk-VGRVJ6Z6.js";
99
+ } from "./chunk-LIAM7U2J.js";
100
100
  import {
101
101
  buildResumeBundleFromState,
102
102
  getResumeBundleStatus,
103
103
  recordResumeBundle
104
- } from "./chunk-JMBTNVMW.js";
104
+ } from "./chunk-FGRJJBFO.js";
105
105
  import {
106
106
  getWorkProductLedgerStatus,
107
107
  recordWorkProductLedgerEntry,
@@ -112,16 +112,7 @@ import {
112
112
  } from "./chunk-AM4T6CHX.js";
113
113
  import {
114
114
  parseXrayCliOptions
115
- } from "./chunk-W44T2KHG.js";
116
- import {
117
- collectPatternMemories,
118
- explainPatternMemory,
119
- parsePatternsExplainOptions,
120
- parsePatternsListOptions,
121
- parseStrictCliDate,
122
- renderPatternExplain,
123
- renderPatternsList
124
- } from "./chunk-3T74IZB3.js";
115
+ } from "./chunk-EWBDJQ5Y.js";
125
116
  import {
126
117
  readRuntimePolicySnapshot,
127
118
  sanitizeRuntimePolicyValues
@@ -134,12 +125,21 @@ import {
134
125
  runOperatorInventory,
135
126
  runOperatorRepair,
136
127
  runOperatorSetup
137
- } from "./chunk-62NYUFNH.js";
128
+ } from "./chunk-SS33RR4F.js";
138
129
  import {
139
130
  analyzeSessionIntegrity,
140
131
  applySessionRepair,
141
132
  planSessionRepair
142
133
  } from "./chunk-KFY3SGN7.js";
134
+ import {
135
+ collectPatternMemories,
136
+ explainPatternMemory,
137
+ parsePatternsExplainOptions,
138
+ parsePatternsListOptions,
139
+ parseStrictCliDate,
140
+ renderPatternExplain,
141
+ renderPatternsList
142
+ } from "./chunk-3T74IZB3.js";
143
143
  import {
144
144
  GITHUB_CONNECTOR_ID,
145
145
  GMAIL_CONNECTOR_ID,
@@ -173,7 +173,7 @@ import {
173
173
  rebuildMemoryProjection,
174
174
  repairMemoryProjection,
175
175
  verifyMemoryProjection
176
- } from "./chunk-CWMMKFO7.js";
176
+ } from "./chunk-XEHLYA5Z.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-W6YDAIVB.js";
200
+ } from "./chunk-OSTXIFZW.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-KF57IQFX.js";
213
+ } from "./chunk-32ZBIGID.js";
214
214
  import {
215
215
  WearablesInputError
216
216
  } from "./chunk-V7IZKJI3.js";
@@ -220,10 +220,10 @@ import {
220
220
  loadChatSession,
221
221
  processChatMessage,
222
222
  sessionBelongsToPrincipal
223
- } from "./chunk-GYYLZOSO.js";
223
+ } from "./chunk-BMBAA2M5.js";
224
224
  import {
225
225
  EngramAccessService
226
- } from "./chunk-HXDXR2FH.js";
226
+ } from "./chunk-KPYMORPQ.js";
227
227
  import {
228
228
  WorkStorage
229
229
  } from "./chunk-MPC7TYTZ.js";
@@ -236,34 +236,34 @@ import {
236
236
  migrateSessionTranscripts,
237
237
  planSessionTranscriptMigration
238
238
  } from "./chunk-P5FPO2BR.js";
239
- import {
240
- journalPath
241
- } from "./chunk-EC5SVM6H.js";
242
239
  import {
243
240
  parseRecallExplainFormat,
244
241
  renderRecallExplain,
245
242
  renderXray
246
- } from "./chunk-PW4HTWXL.js";
243
+ } from "./chunk-55XWRL6F.js";
247
244
  import {
248
245
  readAggregateExtractionWatermark
249
- } from "./chunk-DDBLZJRV.js";
246
+ } from "./chunk-QB4VXCFN.js";
250
247
  import {
251
248
  getObjectiveStateStoreStatus
252
249
  } from "./chunk-HM7RHKS4.js";
250
+ import {
251
+ journalPath
252
+ } from "./chunk-DE4ZGH2N.js";
253
253
  import {
254
254
  searchHarmonicRetrieval
255
- } from "./chunk-GGY7WKMB.js";
255
+ } from "./chunk-5KBI2MOC.js";
256
256
  import {
257
257
  listMemoryGovernanceRuns,
258
258
  readMemoryGovernanceRunArtifact,
259
259
  restoreMemoryGovernanceRun,
260
260
  runMemoryGovernance
261
- } from "./chunk-S7KDHFF2.js";
261
+ } from "./chunk-YXWMZAAN.js";
262
262
  import {
263
263
  listNamespaces,
264
264
  runNamespaceMigration,
265
265
  verifyNamespaces
266
- } from "./chunk-47C6DF43.js";
266
+ } from "./chunk-OS4JVTHR.js";
267
267
  import {
268
268
  getCueAnchorStoreStatus
269
269
  } from "./chunk-BMWN7B3Y.js";
@@ -275,18 +275,18 @@ import {
275
275
  } from "./chunk-5FAGCOZD.js";
276
276
  import {
277
277
  meetingIdDate
278
- } from "./chunk-QUFJ3NJE.js";
278
+ } from "./chunk-MNG536IS.js";
279
279
  import {
280
280
  isValidTranscriptDate
281
281
  } from "./chunk-UHVXE24Y.js";
282
+ import {
283
+ RECALL_DISCLOSURE_LEVELS,
284
+ isRecallDisclosure
285
+ } from "./chunk-WQW6KPVC.js";
282
286
  import {
283
287
  OKF_RESERVED_BASENAMES,
284
288
  okfTypeForCategory
285
289
  } from "./chunk-PCEYGOSL.js";
286
- import {
287
- RECALL_DISCLOSURE_LEVELS,
288
- isRecallDisclosure
289
- } from "./chunk-66YUOI53.js";
290
290
  import {
291
291
  normalizeProjectionPreview
292
292
  } from "./chunk-SCU65EZI.js";
@@ -1297,6 +1297,47 @@ function registerRecallNavigationCommands(cmd, orchestrator) {
1297
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
1298
  }
1299
1299
 
1300
+ // src/cli/memory-browse-commands.ts
1301
+ function registerMemoryBrowseCommands(cmd, orchestrator) {
1302
+ const run = async (args, verb) => {
1303
+ const options = args[args.length - 1] ?? {};
1304
+ const pattern = typeof args[0] === "string" && args[0].length > 0 ? args[0] : typeof options.pattern === "string" ? options.pattern : "";
1305
+ if (verb === "find" && pattern.trim().length === 0) {
1306
+ console.error("usage: browse <ls|tree|find> [path] [--pattern <glob>] [--depth <n>] [--namespace <ns>] [--json]");
1307
+ process.exitCode = 1;
1308
+ return;
1309
+ }
1310
+ const depth = verb === "tree" && options.depth !== void 0 ? Number(options.depth) : void 0;
1311
+ if (depth !== void 0 && (!Number.isFinite(depth) || !Number.isInteger(depth) || depth < 1 || depth > 4)) {
1312
+ console.error("--depth must be an integer between 1 and 4");
1313
+ process.exitCode = 1;
1314
+ return;
1315
+ }
1316
+ const service = new EngramAccessService(orchestrator);
1317
+ try {
1318
+ const result = await service.memoryStoreBrowse({
1319
+ verb,
1320
+ ...typeof args[0] === "string" && args[0].length > 0 ? { path: args[0] } : {},
1321
+ ...depth !== void 0 ? { depth } : {},
1322
+ ...verb === "find" ? { pattern } : {},
1323
+ ...typeof options.namespace === "string" && options.namespace.length > 0 ? { namespace: options.namespace } : {}
1324
+ });
1325
+ if (options.json === true) {
1326
+ console.log(JSON.stringify(result, null, 2));
1327
+ } else {
1328
+ console.log(result.rendered);
1329
+ }
1330
+ if (!result.ok) process.exitCode = 1;
1331
+ } catch (err) {
1332
+ console.error(err instanceof Error ? err.message : String(err));
1333
+ process.exitCode = 1;
1334
+ }
1335
+ };
1336
+ cmd.command("browse ls [path]").description("List children of a store path in your namespace (issue #2978)").option("--namespace <ns>", "Namespace to scope the browse to").option("--json", "JSON output (entries + counts + truncated flag)").action(async (...args) => run(args, "ls"));
1337
+ cmd.command("browse tree [path]").description("Depth-limited store tree under one path (issue #2978)").option("--depth <n>", "Expansion depth, 1-4 (default 1)").option("--namespace <ns>", "Namespace to scope the browse to").option("--json", "JSON output (entries + counts + truncated flag)").action(async (...args) => run(args, "tree"));
1338
+ cmd.command("browse find <pattern>").description("Deterministic name/path glob or substring lookup (issue #2978)").option("--namespace <ns>", "Namespace to scope the browse to").option("--json", "JSON output (entries + counts + truncated flag)").action(async (...args) => run(args, "find"));
1339
+ }
1340
+
1300
1341
  // src/okf/sweep.ts
1301
1342
  import fs from "fs";
1302
1343
  import path from "path";
@@ -7388,6 +7429,7 @@ ${doc.content}` : doc.content,
7388
7429
  registerDeepRecallCommands(cmd, orchestrator);
7389
7430
  registerTimelineCommands(cmd, orchestrator);
7390
7431
  registerRecallNavigationCommands(cmd, orchestrator);
7432
+ registerMemoryBrowseCommands(cmd, orchestrator);
7391
7433
  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) => {
7392
7434
  const options = args[0] ?? {};
7393
7435
  const result = await runTrustZonePromoteCliCommand({
@@ -9737,4 +9779,4 @@ export {
9737
9779
  listMemoryMarkdownFilePaths,
9738
9780
  registerCli
9739
9781
  };
9740
- //# sourceMappingURL=chunk-UGGOQKO6.js.map
9782
+ //# sourceMappingURL=chunk-MKJFPIVG.js.map