@remnic/core 9.69.49 → 9.69.50

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 (486) hide show
  1. package/dist/access-admin-ops-surface.d.ts +15 -14
  2. package/dist/access-admin-ops-surface.js +23 -23
  3. package/dist/access-authorization-probe.d.ts +15 -14
  4. package/dist/access-authorization-probe.js +24 -24
  5. package/dist/access-boundary.d.ts +15 -14
  6. package/dist/access-boundary.js +23 -23
  7. package/dist/access-cli.js +74 -73
  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 +15 -14
  11. package/dist/access-extraction-force-flush.js +23 -23
  12. package/dist/access-health-types.d.ts +2 -1
  13. package/dist/access-http-briefing.d.ts +15 -14
  14. package/dist/access-http-briefing.js +24 -24
  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 +3 -2
  19. package/dist/access-http-query.js +25 -25
  20. package/dist/access-http.d.ts +16 -15
  21. package/dist/access-http.js +40 -40
  22. package/dist/access-identity-continuity-surface.d.ts +12 -11
  23. package/dist/access-identity-continuity-surface.js +23 -23
  24. package/dist/access-lcm-surface.d.ts +15 -14
  25. package/dist/access-lcm-surface.js +23 -23
  26. package/dist/access-mcp-shared-context-tools.d.ts +15 -14
  27. package/dist/access-mcp.d.ts +15 -14
  28. package/dist/access-mcp.js +32 -32
  29. package/dist/access-memory-search-fanout.d.ts +3 -2
  30. package/dist/{access-namespace-preflight-DqRw_g-8.d.ts → access-namespace-preflight-C1q3XuAc.d.ts} +1 -1
  31. package/dist/access-namespace-preflight.d.ts +4 -3
  32. package/dist/access-namespace-preflight.js +23 -23
  33. package/dist/access-observe-transcript.d.ts +12 -11
  34. package/dist/access-observe-write-category.d.ts +4 -3
  35. package/dist/access-observe-write-category.js +4 -4
  36. package/dist/access-observe-write-surface.d.ts +15 -14
  37. package/dist/access-observe-write-surface.js +23 -23
  38. package/dist/access-offline-manifest.d.ts +12 -11
  39. package/dist/access-operations-batch.js +24 -24
  40. package/dist/access-operations.d.ts +15 -14
  41. package/dist/access-operations.js +31 -31
  42. package/dist/access-recall-concurrency.d.ts +15 -14
  43. package/dist/access-recall-concurrency.js +23 -23
  44. package/dist/access-recall-response.d.ts +15 -14
  45. package/dist/access-recall-response.js +23 -23
  46. package/dist/access-recall-surface.d.ts +15 -14
  47. package/dist/access-recall-surface.js +23 -23
  48. package/dist/access-schema.d.ts +2 -1
  49. package/dist/access-schema.js +3 -3
  50. package/dist/{access-service-70VHaltr.d.ts → access-service-BZaC-RZw.d.ts} +9 -9
  51. package/dist/access-service-helpers.d.ts +15 -14
  52. package/dist/access-service.d.ts +15 -14
  53. package/dist/access-service.js +23 -23
  54. package/dist/access-surface-catalog.d.ts +15 -14
  55. package/dist/access-surface-catalog.js +25 -25
  56. package/dist/access-wearables-meetings-surface.d.ts +5 -4
  57. package/dist/action-confidence.d.ts +2 -1
  58. package/dist/active-memory-bridge.d.ts +2 -1
  59. package/dist/active-recall.d.ts +2 -1
  60. package/dist/active-recall.js +2 -1
  61. package/dist/active-recall.js.map +1 -1
  62. package/dist/activity/digest.d.ts +2 -1
  63. package/dist/ambient-provenance.d.ts +2 -1
  64. package/dist/artifact-search.d.ts +2 -1
  65. package/dist/background-generation.d.ts +2 -1
  66. package/dist/behavior-learner.d.ts +2 -1
  67. package/dist/behavior-signals.d.ts +2 -1
  68. package/dist/bootstrap.d.ts +12 -11
  69. package/dist/briefing-window.d.ts +3 -2
  70. package/dist/briefing.d.ts +3 -2
  71. package/dist/briefing.js +7 -7
  72. package/dist/buffer-surprise-report.d.ts +2 -1
  73. package/dist/buffer-turn-helpers.d.ts +2 -1
  74. package/dist/buffer.d.ts +3 -2
  75. package/dist/bulk-import/index.d.ts +4 -3
  76. package/dist/calibration.d.ts +2 -1
  77. package/dist/capabilities.d.ts +2 -1
  78. package/dist/{catalog-Byi9prz9.d.ts → catalog-DK2eHhax.d.ts} +1 -1
  79. package/dist/causal-behavior.d.ts +2 -1
  80. package/dist/causal-consolidation.d.ts +2 -1
  81. package/dist/causal-consolidation.js +8 -8
  82. package/dist/causal-trajectory-graph.d.ts +2 -1
  83. package/dist/{chunk-QQA6VTOY.js → chunk-3MIZ2EKQ.js} +2 -2
  84. package/dist/{chunk-PAQ7YGJY.js → chunk-3RZB7TYL.js} +2 -2
  85. package/dist/{chunk-FVRZDZ7J.js → chunk-3SI3FFTW.js} +2 -2
  86. package/dist/{chunk-WNMVUWI7.js → chunk-3UQIS2GC.js} +2 -2
  87. package/dist/{chunk-FLZJMXFV.js → chunk-42BV46XS.js} +2 -2
  88. package/dist/{chunk-ZYZW46HZ.js → chunk-4FWNMN5R.js} +4 -4
  89. package/dist/chunk-4KQIWY4A.js +197 -0
  90. package/dist/chunk-4KQIWY4A.js.map +1 -0
  91. package/dist/{chunk-EBLKS57G.js → chunk-4PXFLDMJ.js} +2 -2
  92. package/dist/{chunk-XQFHKPNB.js → chunk-4SDO74N2.js} +2 -2
  93. package/dist/{chunk-YOC3EEZH.js → chunk-56C7OO3N.js} +13 -13
  94. package/dist/{chunk-76RTJ533.js → chunk-6525YIYL.js} +3 -3
  95. package/dist/{chunk-PSQRBCGR.js → chunk-AL7OLBL7.js} +2 -2
  96. package/dist/{chunk-WGCASEEQ.js → chunk-AYGWJ2UK.js} +2 -2
  97. package/dist/{chunk-JUOJGZPV.js → chunk-AYP2FZFA.js} +2 -2
  98. package/dist/{chunk-6DYCSSHN.js → chunk-BHI5ILU5.js} +2 -2
  99. package/dist/{chunk-LE2UESGS.js → chunk-BOTSR5S3.js} +2 -2
  100. package/dist/{chunk-5WIGM42T.js → chunk-C3PKRFZ4.js} +2 -2
  101. package/dist/{chunk-AJLQH4RO.js → chunk-D2XUSZ24.js} +9 -9
  102. package/dist/{chunk-P36WML7L.js → chunk-D6WX5FEF.js} +2 -2
  103. package/dist/{chunk-LLFMZYFS.js → chunk-D7QX26FF.js} +2 -2
  104. package/dist/{chunk-6VLOKESS.js → chunk-DH536WT2.js} +2 -2
  105. package/dist/{chunk-KHLNIDWB.js → chunk-DNO6QWCB.js} +2 -2
  106. package/dist/{chunk-UB4UVALS.js → chunk-E73SVGJA.js} +2 -2
  107. package/dist/{chunk-BHXY5FXL.js → chunk-ECLY4NZA.js} +2 -2
  108. package/dist/{chunk-OTGIAJQ2.js → chunk-EZV43XBD.js} +2 -2
  109. package/dist/{chunk-2WMXZYMS.js → chunk-F5V7KRQS.js} +2 -2
  110. package/dist/{chunk-SKYYPVBW.js → chunk-FO6IK4IF.js} +8 -8
  111. package/dist/{chunk-Z2OKRO3E.js → chunk-HRCWDO6S.js} +2 -2
  112. package/dist/{chunk-PZHN7R35.js → chunk-IC3PM3YO.js} +2 -2
  113. package/dist/{chunk-KQAFEZQX.js → chunk-IPLYGWQF.js} +5 -5
  114. package/dist/{chunk-RBHQA2UU.js → chunk-IST6MBYC.js} +36 -36
  115. package/dist/{chunk-N57PUWUE.js → chunk-IYHHCSF6.js} +30 -30
  116. package/dist/{chunk-U3ZRHNNG.js → chunk-JHUODJRW.js} +2 -2
  117. package/dist/{chunk-C3YEB7CR.js → chunk-JOP7W24J.js} +4 -4
  118. package/dist/{chunk-DHTOYRDE.js → chunk-JTPAXDSX.js} +2 -2
  119. package/dist/{chunk-LX32KV2C.js → chunk-KOEDSRF5.js} +2 -2
  120. package/dist/{chunk-JI5Q6EOY.js → chunk-LR7KUQ2W.js} +5 -5
  121. package/dist/{chunk-YKWWG3CM.js → chunk-MECKA6G2.js} +2 -2
  122. package/dist/{chunk-YA5M7OC4.js → chunk-ML5FW2RO.js} +2 -2
  123. package/dist/{chunk-T3OLYUU6.js → chunk-MQMZO23A.js} +2 -2
  124. package/dist/{chunk-RS53SDCA.js → chunk-MVMNEU65.js} +2 -2
  125. package/dist/{chunk-SNOAFXKX.js → chunk-OLJYDGGP.js} +9 -1
  126. package/dist/chunk-OLJYDGGP.js.map +1 -0
  127. package/dist/{chunk-7VTQETLT.js → chunk-OP5IBPHP.js} +2 -2
  128. package/dist/{chunk-TUSY4KRE.js → chunk-OQZYHCWM.js} +16 -16
  129. package/dist/{chunk-JVM3CEGL.js → chunk-PA5EOTRR.js} +3 -3
  130. package/dist/{chunk-K26LFJE4.js → chunk-PMLFPVYJ.js} +2 -2
  131. package/dist/{chunk-EST3J4LX.js → chunk-PPNFKQ6D.js} +2 -2
  132. package/dist/{chunk-DNAD57VY.js → chunk-PQWICTRO.js} +1 -1
  133. package/dist/chunk-PQWICTRO.js.map +1 -0
  134. package/dist/{chunk-EHUUXLLA.js → chunk-QSP4Y73Q.js} +2 -2
  135. package/dist/{chunk-AIKUSXIS.js → chunk-QXQCPNKA.js} +4 -4
  136. package/dist/{chunk-HIBNECBQ.js → chunk-QZDUNK6V.js} +6 -6
  137. package/dist/{chunk-UE7L4EDU.js → chunk-SRMBMMTK.js} +3 -3
  138. package/dist/{chunk-T3F2HWIG.js → chunk-TZ44E732.js} +2 -2
  139. package/dist/{chunk-ZDGSHXJU.js → chunk-UI6R2YUB.js} +1 -1
  140. package/dist/{chunk-NDWBT2VV.js → chunk-UVEBBXB5.js} +2 -2
  141. package/dist/{chunk-AOMVOC2E.js → chunk-W6V7JN2E.js} +3 -3
  142. package/dist/{chunk-4WSR7MYV.js → chunk-X6B2QWXW.js} +2 -2
  143. package/dist/{chunk-WHSNLCRO.js → chunk-XTMABIFW.js} +2 -2
  144. package/dist/{chunk-IIDXU2CY.js → chunk-XUKUMBP3.js} +2 -2
  145. package/dist/{chunk-SYJZUVTN.js → chunk-ZBAQMSEY.js} +3 -3
  146. package/dist/{chunk-3MX4GWJO.js → chunk-ZUNYFDI4.js} +2 -2
  147. package/dist/{cli-CdJiBilM.d.ts → cli-BHDMJqJS.d.ts} +5 -5
  148. package/dist/cli.d.ts +17 -16
  149. package/dist/cli.js +59 -58
  150. package/dist/coding/export-okf-codegraph.d.ts +2 -1
  151. package/dist/coding/export-okf-codegraph.js +6 -6
  152. package/dist/coding/pre-action-gate.d.ts +2 -1
  153. package/dist/compounding/engine.d.ts +3 -2
  154. package/dist/compounding/engine.js +7 -7
  155. package/dist/compounding/preference-consolidator.d.ts +2 -1
  156. package/dist/compression-optimizer.d.ts +2 -1
  157. package/dist/config.d.ts +2 -1
  158. package/dist/config.js +2 -1
  159. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  160. package/dist/connectors/codex-materialize-runner.js +7 -7
  161. package/dist/connectors/codex-materialize.d.ts +2 -1
  162. package/dist/connectors/index.d.ts +2 -1
  163. package/dist/connectors/index.js +7 -7
  164. package/dist/consolidation-provenance-check.d.ts +3 -2
  165. package/dist/consolidation-undo.d.ts +3 -2
  166. package/dist/contradiction/index.d.ts +5 -4
  167. package/dist/converge-config.d.ts +2 -1
  168. package/dist/convergence-refresh.d.ts +3 -2
  169. package/dist/convergence-refresh.js +9 -9
  170. package/dist/conversation-index/backend.d.ts +2 -1
  171. package/dist/conversation-index/chunker.d.ts +2 -1
  172. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  173. package/dist/conversation-index/indexer.d.ts +2 -1
  174. package/dist/conversation-index/search.d.ts +2 -1
  175. package/dist/corpus-watermark.d.ts +2 -1
  176. package/dist/corpus-watermark.js +9 -9
  177. package/dist/cross-lingual-recall.d.ts +2 -1
  178. package/dist/day-summary.d.ts +2 -1
  179. package/dist/deep-recall-http-glue.d.ts +15 -14
  180. package/dist/deep-recall-http-glue.js +4 -4
  181. package/dist/deep-recall-mcp-tools.d.ts +15 -14
  182. package/dist/deep-recall-policy-llm.d.ts +3 -2
  183. package/dist/deep-recall-seeds.d.ts +2 -1
  184. package/dist/delinearize.d.ts +2 -1
  185. package/dist/dependency-propagation-config.d.ts +2 -1
  186. package/dist/{dependency-propagation-delivery-BgHy44WX.d.ts → dependency-propagation-delivery-BMkR4gmY.d.ts} +1 -1
  187. package/dist/direct-answer-wiring.d.ts +2 -1
  188. package/dist/direct-answer.d.ts +2 -1
  189. package/dist/embedding-fallback.d.ts +2 -1
  190. package/dist/enrichment/index.d.ts +2 -1
  191. package/dist/entity-origin-fields.d.ts +2 -1
  192. package/dist/entity-retrieval.d.ts +3 -2
  193. package/dist/entity-retrieval.js +7 -7
  194. package/dist/entity-schema.d.ts +2 -1
  195. package/dist/episodic-context.d.ts +2 -1
  196. package/dist/eval-trajectory-contracts.d.ts +2 -1
  197. package/dist/eval-trajectory-store.d.ts +2 -1
  198. package/dist/eval-trajectory.d.ts +2 -1
  199. package/dist/explicit-capture.d.ts +12 -11
  200. package/dist/external-wiki-access.d.ts +15 -14
  201. package/dist/external-wiki-access.js +24 -24
  202. package/dist/external-wiki-collection-registration.d.ts +2 -1
  203. package/dist/external-wiki-collection.d.ts +2 -1
  204. package/dist/external-wiki-mcp-tools.d.ts +15 -14
  205. package/dist/extraction-error-classification.d.ts +2 -1
  206. package/dist/extraction-evidence-class.d.ts +2 -1
  207. package/dist/extraction-faithfulness.d.ts +3 -2
  208. package/dist/extraction-judge-telemetry.d.ts +3 -2
  209. package/dist/extraction-judge-training.d.ts +3 -2
  210. package/dist/extraction-judge.d.ts +3 -2
  211. package/dist/extraction-liveness.d.ts +2 -1
  212. package/dist/extraction-normalization.d.ts +2 -1
  213. package/dist/extraction-prompt.d.ts +2 -1
  214. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  215. package/dist/extraction-source-grounding.d.ts +2 -1
  216. package/dist/extraction-span-config.d.ts +2 -1
  217. package/dist/extraction-span-materialize.d.ts +2 -1
  218. package/dist/extraction-span-wire.d.ts +2 -1
  219. package/dist/extraction.d.ts +3 -2
  220. package/dist/extraction.js +7 -7
  221. package/dist/fallback-llm-codex-subscription.d.ts +2 -1
  222. package/dist/fallback-llm.d.ts +2 -1
  223. package/dist/{generic-recall-paths-BoueWXYr.d.ts → generic-recall-paths-BCRtXU32.d.ts} +1 -1
  224. package/dist/graph-append-error.d.ts +2 -1
  225. package/dist/graph-dashboard-diff.d.ts +2 -1
  226. package/dist/graph-dashboard-key.d.ts +2 -1
  227. package/dist/graph-dashboard-parser.d.ts +2 -1
  228. package/dist/graph-edge-reinforcement.d.ts +2 -1
  229. package/dist/graph-jsonl.d.ts +2 -1
  230. package/dist/graph-path-reconstruction.d.ts +2 -1
  231. package/dist/graph-path-scoring.d.ts +2 -1
  232. package/dist/graph-snapshot.d.ts +2 -1
  233. package/dist/graph.d.ts +2 -1
  234. package/dist/harmonic-retrieval.js +1 -1
  235. package/dist/importance.d.ts +2 -1
  236. package/dist/importers/index.d.ts +2 -1
  237. package/dist/importers/test-utils.d.ts +2 -1
  238. package/dist/in-flight-reads.d.ts +2 -1
  239. package/dist/{index-cwbrXoxe.d.ts → index-DMNTW4W6.d.ts} +3 -3
  240. package/dist/index.d.ts +27 -26
  241. package/dist/index.js +112 -76
  242. package/dist/intent.d.ts +2 -1
  243. package/dist/lcm/engine.d.ts +2 -1
  244. package/dist/lcm/index.d.ts +2 -1
  245. package/dist/lcm/index.js +3 -3
  246. package/dist/lcm/tools.d.ts +2 -1
  247. package/dist/lifecycle.d.ts +2 -1
  248. package/dist/live-connectors-runner.d.ts +2 -1
  249. package/dist/{local-llm-B0vd_rp9.d.ts → local-llm-BXYC-mbU.d.ts} +1 -1
  250. package/dist/local-llm-helpers.d.ts +3 -2
  251. package/dist/local-llm.d.ts +3 -2
  252. package/dist/local-model-endpoint.d.ts +2 -1
  253. package/dist/location/index.d.ts +6 -5
  254. package/dist/location/index.js +9 -9
  255. package/dist/maintenance/memory-governance.d.ts +2 -1
  256. package/dist/maintenance/memory-governance.js +7 -7
  257. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  258. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -7
  259. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  260. package/dist/maintenance/rebuild-memory-projection.js +8 -8
  261. package/dist/{maintenance-DJgQkoLh.d.ts → maintenance-zJiLsKBY.d.ts} +3 -3
  262. package/dist/mcp-memory-inspector-app.d.ts +15 -14
  263. package/dist/memory-action-policy.d.ts +2 -1
  264. package/dist/memory-browse-http-glue.d.ts +15 -14
  265. package/dist/memory-browse-mcp-tools.d.ts +15 -14
  266. package/dist/memory-browse-operations.js +24 -24
  267. package/dist/memory-browse.d.ts +2 -1
  268. package/dist/memory-cache.d.ts +2 -1
  269. package/dist/memory-controller.d.ts +2 -1
  270. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  271. package/dist/memory-projection-store.d.ts +2 -1
  272. package/dist/memory-provenance.d.ts +2 -1
  273. package/dist/memory-snapshot.d.ts +2 -1
  274. package/dist/memory-subject-cli.d.ts +15 -14
  275. package/dist/memory-subject.d.ts +15 -14
  276. package/dist/memory-worth-outcomes.d.ts +3 -2
  277. package/dist/models-json.d.ts +2 -1
  278. package/dist/namespaces/migrate.d.ts +4 -3
  279. package/dist/namespaces/migrate.js +8 -8
  280. package/dist/namespaces/principal.d.ts +2 -1
  281. package/dist/namespaces/search.d.ts +2 -1
  282. package/dist/namespaces/search.js +3 -3
  283. package/dist/namespaces/storage.d.ts +4 -3
  284. package/dist/namespaces/storage.js +7 -7
  285. package/dist/native-knowledge.d.ts +2 -1
  286. package/dist/offline-sync-impression-drain.d.ts +2 -1
  287. package/dist/operator-doctor-corpus.d.ts +2 -1
  288. package/dist/operator-doctor-corpus.js +10 -10
  289. package/dist/operator-doctor-replica.d.ts +2 -1
  290. package/dist/operator-toolkit.d.ts +4 -3
  291. package/dist/operator-toolkit.js +17 -16
  292. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  293. package/dist/orchestration/maintenance.d.ts +5 -4
  294. package/dist/orchestration/maintenance.js +15 -15
  295. package/dist/{orchestrator-Kx5zwNUm.d.ts → orchestrator-BTqT3F6X.d.ts} +10 -10
  296. package/dist/orchestrator.d.ts +12 -11
  297. package/dist/orchestrator.js +74 -73
  298. package/dist/patterns-cli.d.ts +2 -1
  299. package/dist/{pipeline-9SYxxign.d.ts → pipeline-CgO2Sd4O.d.ts} +1 -1
  300. package/dist/policy-runtime.d.ts +2 -1
  301. package/dist/proactive-contention.d.ts +3 -2
  302. package/dist/provenance.d.ts +2 -1
  303. package/dist/{public-http-Bvol6Jr4.d.ts → public-http-Dk1EA9ix.d.ts} +1 -1
  304. package/dist/{qmd-DjwuG9Xa.d.ts → qmd-CwxtVz64.d.ts} +1 -1
  305. package/dist/qmd-preflight.d.ts +3 -2
  306. package/dist/qmd-recall-cache.d.ts +2 -1
  307. package/dist/qmd.d.ts +3 -2
  308. package/dist/recall-concurrency-config.d.ts +2 -1
  309. package/dist/recall-disclosure-escalation.d.ts +2 -1
  310. package/dist/recall-explain-renderer.d.ts +2 -1
  311. package/dist/recall-explain-renderer.js +3 -3
  312. package/dist/recall-memory-map.d.ts +2 -1
  313. package/dist/recall-navigate-access.d.ts +2 -1
  314. package/dist/recall-navigate-access.js +2 -2
  315. package/dist/recall-navigate-disclosure.d.ts +2 -1
  316. package/dist/recall-navigate-disclosure.js +2 -2
  317. package/dist/recall-navigate.d.ts +2 -1
  318. package/dist/recall-navigate.js +2 -2
  319. package/dist/recall-navigation-http-glue.d.ts +15 -14
  320. package/dist/recall-navigation-mcp-tools.d.ts +15 -14
  321. package/dist/recall-navigation-operations.js +24 -24
  322. package/dist/recall-navigation-renderer.d.ts +2 -1
  323. package/dist/recall-navigation.d.ts +2 -1
  324. package/dist/recall-navigation.js +23 -23
  325. package/dist/recall-planner-llm.d.ts +2 -1
  326. package/dist/recall-recognition-tier.d.ts +121 -0
  327. package/dist/recall-recognition-tier.js +42 -0
  328. package/dist/recall-recognition-tier.js.map +1 -0
  329. package/dist/recall-state-view-admission.d.ts +3 -2
  330. package/dist/recall-state-view-anchors.d.ts +2 -1
  331. package/dist/recall-state.d.ts +2 -1
  332. package/dist/recall-tag-filter.d.ts +2 -1
  333. package/dist/recall-timings.d.ts +2 -1
  334. package/dist/recall-xray-cli.d.ts +2 -1
  335. package/dist/recall-xray-cli.js +4 -4
  336. package/dist/recall-xray-renderer.d.ts +2 -1
  337. package/dist/recall-xray-renderer.js +3 -3
  338. package/dist/recall-xray.d.ts +2 -1
  339. package/dist/recall-xray.js +2 -2
  340. package/dist/reconcile/cursor.d.ts +2 -1
  341. package/dist/reconcile/manifest.d.ts +2 -1
  342. package/dist/reconcile/plan.d.ts +2 -1
  343. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  344. package/dist/replay/normalizers/claude.d.ts +2 -1
  345. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  346. package/dist/replay/normalizers/shared.d.ts +2 -1
  347. package/dist/replay/runner.d.ts +2 -1
  348. package/dist/replay/types.d.ts +2 -1
  349. package/dist/replica-divergence.d.ts +2 -1
  350. package/dist/replica-peers-config.d.ts +2 -1
  351. package/dist/resolve-auth-token.d.ts +2 -1
  352. package/dist/resume-bundles.js +3 -2
  353. package/dist/retrieval-agents.d.ts +3 -2
  354. package/dist/retrieval-tiers.d.ts +2 -1
  355. package/dist/routing/engine.d.ts +2 -1
  356. package/dist/routing/store.d.ts +2 -1
  357. package/dist/salvage-envelope.d.ts +2 -1
  358. package/dist/{scope-profiles-DPegZtRf.d.ts → scope-profiles-Bg1rB-Dp.d.ts} +1 -1
  359. package/dist/search/embed-helper.d.ts +2 -1
  360. package/dist/search/factory.d.ts +2 -1
  361. package/dist/search/factory.js +2 -2
  362. package/dist/search/index.d.ts +2 -1
  363. package/dist/search/index.js +4 -4
  364. package/dist/search/lancedb-backend.d.ts +2 -1
  365. package/dist/search/meilisearch-backend.d.ts +2 -1
  366. package/dist/search/noop-backend.d.ts +2 -1
  367. package/dist/search/orama-backend.d.ts +2 -1
  368. package/dist/search/port.d.ts +2 -1
  369. package/dist/search/remote-backend.d.ts +2 -1
  370. package/dist/{semantic-consolidation-DMzhKRYl.d.ts → semantic-consolidation-DEzRyeyn.d.ts} +1 -1
  371. package/dist/semantic-consolidation.d.ts +3 -2
  372. package/dist/semantic-consolidation.js +8 -8
  373. package/dist/semantic-rule-promotion.js +7 -7
  374. package/dist/semantic-rule-verifier.d.ts +2 -1
  375. package/dist/semantic-rule-verifier.js +7 -7
  376. package/dist/{service-E99KuPvi.d.ts → service-DGEIDOeD.d.ts} +2 -2
  377. package/dist/session-observer-bands.d.ts +2 -1
  378. package/dist/session-observer-state.d.ts +2 -1
  379. package/dist/shared-context/manager.d.ts +2 -1
  380. package/dist/signal.d.ts +2 -1
  381. package/dist/source-agent-qualifier.d.ts +2 -1
  382. package/dist/source-agent-qualifier.js +7 -7
  383. package/dist/standup/build.js +7 -7
  384. package/dist/{storage-BS7ux8F7.d.ts → storage-DNQWtOSM.d.ts} +1 -1
  385. package/dist/storage.d.ts +3 -2
  386. package/dist/storage.js +6 -6
  387. package/dist/subject-config.d.ts +2 -1
  388. package/dist/summarizer.d.ts +2 -1
  389. package/dist/summary-snapshot.d.ts +2 -1
  390. package/dist/support-passport/index.d.ts +18 -17
  391. package/dist/support-passport/index.js +26 -26
  392. package/dist/{tagging-BhOEcSXP.d.ts → tagging-CPVwgadt.d.ts} +2 -2
  393. package/dist/temporal-supersession.d.ts +3 -2
  394. package/dist/temporal-timeline-recall.d.ts +2 -1
  395. package/dist/temporal-validity.d.ts +2 -1
  396. package/dist/threading.d.ts +2 -1
  397. package/dist/tier-migration.d.ts +3 -2
  398. package/dist/tier-routing.d.ts +2 -1
  399. package/dist/topics.d.ts +2 -1
  400. package/dist/transcript.d.ts +2 -1
  401. package/dist/transfer/autodetect.js +1 -1
  402. package/dist/transfer/backup.js +1 -1
  403. package/dist/transfer/capsule-export.js +2 -2
  404. package/dist/transfer/export-okf.d.ts +2 -1
  405. package/dist/transfer/export-okf.js +7 -7
  406. package/dist/trust-score-stage.d.ts +2 -1
  407. package/dist/trust-score.d.ts +2 -1
  408. package/dist/{types-DQ2H8gAC.d.ts → types-DCB90q3g.d.ts} +2 -1
  409. package/dist/types.d.ts +2 -1
  410. package/dist/types.js +1 -1
  411. package/dist/utility-runtime.d.ts +2 -1
  412. package/dist/verified-recall.js +7 -7
  413. package/dist/who-knows-cli.d.ts +15 -14
  414. package/dist/who-knows-cli.js +8 -8
  415. package/dist/who-knows.d.ts +15 -14
  416. package/dist/who-knows.js +7 -7
  417. package/dist/write-envelope.d.ts +2 -1
  418. package/package.json +2 -2
  419. package/src/config.ts +5 -0
  420. package/src/index.ts +1 -0
  421. package/src/lifecycle/seed-graduation.test.ts +424 -0
  422. package/src/lifecycle/seed-graduation.ts +376 -0
  423. package/src/recall-recognition-tier.test.ts +306 -0
  424. package/src/recall-recognition-tier.ts +375 -0
  425. package/src/testing/subjects/seed-graduation.test.ts +128 -0
  426. package/src/types.ts +2 -0
  427. package/dist/chunk-DNAD57VY.js.map +0 -1
  428. package/dist/chunk-SNOAFXKX.js.map +0 -1
  429. /package/dist/{chunk-QQA6VTOY.js.map → chunk-3MIZ2EKQ.js.map} +0 -0
  430. /package/dist/{chunk-PAQ7YGJY.js.map → chunk-3RZB7TYL.js.map} +0 -0
  431. /package/dist/{chunk-FVRZDZ7J.js.map → chunk-3SI3FFTW.js.map} +0 -0
  432. /package/dist/{chunk-WNMVUWI7.js.map → chunk-3UQIS2GC.js.map} +0 -0
  433. /package/dist/{chunk-FLZJMXFV.js.map → chunk-42BV46XS.js.map} +0 -0
  434. /package/dist/{chunk-ZYZW46HZ.js.map → chunk-4FWNMN5R.js.map} +0 -0
  435. /package/dist/{chunk-EBLKS57G.js.map → chunk-4PXFLDMJ.js.map} +0 -0
  436. /package/dist/{chunk-XQFHKPNB.js.map → chunk-4SDO74N2.js.map} +0 -0
  437. /package/dist/{chunk-YOC3EEZH.js.map → chunk-56C7OO3N.js.map} +0 -0
  438. /package/dist/{chunk-76RTJ533.js.map → chunk-6525YIYL.js.map} +0 -0
  439. /package/dist/{chunk-PSQRBCGR.js.map → chunk-AL7OLBL7.js.map} +0 -0
  440. /package/dist/{chunk-WGCASEEQ.js.map → chunk-AYGWJ2UK.js.map} +0 -0
  441. /package/dist/{chunk-JUOJGZPV.js.map → chunk-AYP2FZFA.js.map} +0 -0
  442. /package/dist/{chunk-6DYCSSHN.js.map → chunk-BHI5ILU5.js.map} +0 -0
  443. /package/dist/{chunk-LE2UESGS.js.map → chunk-BOTSR5S3.js.map} +0 -0
  444. /package/dist/{chunk-5WIGM42T.js.map → chunk-C3PKRFZ4.js.map} +0 -0
  445. /package/dist/{chunk-AJLQH4RO.js.map → chunk-D2XUSZ24.js.map} +0 -0
  446. /package/dist/{chunk-P36WML7L.js.map → chunk-D6WX5FEF.js.map} +0 -0
  447. /package/dist/{chunk-LLFMZYFS.js.map → chunk-D7QX26FF.js.map} +0 -0
  448. /package/dist/{chunk-6VLOKESS.js.map → chunk-DH536WT2.js.map} +0 -0
  449. /package/dist/{chunk-KHLNIDWB.js.map → chunk-DNO6QWCB.js.map} +0 -0
  450. /package/dist/{chunk-UB4UVALS.js.map → chunk-E73SVGJA.js.map} +0 -0
  451. /package/dist/{chunk-BHXY5FXL.js.map → chunk-ECLY4NZA.js.map} +0 -0
  452. /package/dist/{chunk-OTGIAJQ2.js.map → chunk-EZV43XBD.js.map} +0 -0
  453. /package/dist/{chunk-2WMXZYMS.js.map → chunk-F5V7KRQS.js.map} +0 -0
  454. /package/dist/{chunk-SKYYPVBW.js.map → chunk-FO6IK4IF.js.map} +0 -0
  455. /package/dist/{chunk-Z2OKRO3E.js.map → chunk-HRCWDO6S.js.map} +0 -0
  456. /package/dist/{chunk-PZHN7R35.js.map → chunk-IC3PM3YO.js.map} +0 -0
  457. /package/dist/{chunk-KQAFEZQX.js.map → chunk-IPLYGWQF.js.map} +0 -0
  458. /package/dist/{chunk-RBHQA2UU.js.map → chunk-IST6MBYC.js.map} +0 -0
  459. /package/dist/{chunk-N57PUWUE.js.map → chunk-IYHHCSF6.js.map} +0 -0
  460. /package/dist/{chunk-U3ZRHNNG.js.map → chunk-JHUODJRW.js.map} +0 -0
  461. /package/dist/{chunk-C3YEB7CR.js.map → chunk-JOP7W24J.js.map} +0 -0
  462. /package/dist/{chunk-DHTOYRDE.js.map → chunk-JTPAXDSX.js.map} +0 -0
  463. /package/dist/{chunk-LX32KV2C.js.map → chunk-KOEDSRF5.js.map} +0 -0
  464. /package/dist/{chunk-JI5Q6EOY.js.map → chunk-LR7KUQ2W.js.map} +0 -0
  465. /package/dist/{chunk-YKWWG3CM.js.map → chunk-MECKA6G2.js.map} +0 -0
  466. /package/dist/{chunk-YA5M7OC4.js.map → chunk-ML5FW2RO.js.map} +0 -0
  467. /package/dist/{chunk-T3OLYUU6.js.map → chunk-MQMZO23A.js.map} +0 -0
  468. /package/dist/{chunk-RS53SDCA.js.map → chunk-MVMNEU65.js.map} +0 -0
  469. /package/dist/{chunk-7VTQETLT.js.map → chunk-OP5IBPHP.js.map} +0 -0
  470. /package/dist/{chunk-TUSY4KRE.js.map → chunk-OQZYHCWM.js.map} +0 -0
  471. /package/dist/{chunk-JVM3CEGL.js.map → chunk-PA5EOTRR.js.map} +0 -0
  472. /package/dist/{chunk-K26LFJE4.js.map → chunk-PMLFPVYJ.js.map} +0 -0
  473. /package/dist/{chunk-EST3J4LX.js.map → chunk-PPNFKQ6D.js.map} +0 -0
  474. /package/dist/{chunk-EHUUXLLA.js.map → chunk-QSP4Y73Q.js.map} +0 -0
  475. /package/dist/{chunk-AIKUSXIS.js.map → chunk-QXQCPNKA.js.map} +0 -0
  476. /package/dist/{chunk-HIBNECBQ.js.map → chunk-QZDUNK6V.js.map} +0 -0
  477. /package/dist/{chunk-UE7L4EDU.js.map → chunk-SRMBMMTK.js.map} +0 -0
  478. /package/dist/{chunk-T3F2HWIG.js.map → chunk-TZ44E732.js.map} +0 -0
  479. /package/dist/{chunk-ZDGSHXJU.js.map → chunk-UI6R2YUB.js.map} +0 -0
  480. /package/dist/{chunk-NDWBT2VV.js.map → chunk-UVEBBXB5.js.map} +0 -0
  481. /package/dist/{chunk-AOMVOC2E.js.map → chunk-W6V7JN2E.js.map} +0 -0
  482. /package/dist/{chunk-4WSR7MYV.js.map → chunk-X6B2QWXW.js.map} +0 -0
  483. /package/dist/{chunk-WHSNLCRO.js.map → chunk-XTMABIFW.js.map} +0 -0
  484. /package/dist/{chunk-IIDXU2CY.js.map → chunk-XUKUMBP3.js.map} +0 -0
  485. /package/dist/{chunk-SYJZUVTN.js.map → chunk-ZBAQMSEY.js.map} +0 -0
  486. /package/dist/{chunk-3MX4GWJO.js.map → chunk-ZUNYFDI4.js.map} +0 -0
@@ -4,20 +4,21 @@ import {
4
4
  } from "./chunk-27MKMTBY.js";
5
5
  import {
6
6
  buildExtensionsBlockForConsolidation
7
- } from "./chunk-RS53SDCA.js";
7
+ } from "./chunk-MVMNEU65.js";
8
8
  import "./chunk-5JMAGU26.js";
9
9
  import "./chunk-B7RWBZXW.js";
10
10
  import {
11
11
  runPostConsolidationMaterialize
12
- } from "./chunk-YKWWG3CM.js";
12
+ } from "./chunk-MECKA6G2.js";
13
13
  import "./chunk-3UXOZBHV.js";
14
14
  import "./chunk-PIWFNPQT.js";
15
- import "./chunk-AJLQH4RO.js";
16
- import "./chunk-46WM6JX2.js";
15
+ import "./chunk-D2XUSZ24.js";
17
16
  import "./chunk-UHVXE24Y.js";
17
+ import "./chunk-46WM6JX2.js";
18
18
  import "./chunk-D5F7TKMH.js";
19
- import "./chunk-T3F2HWIG.js";
20
- import "./chunk-C3YEB7CR.js";
19
+ import "./chunk-TZ44E732.js";
20
+ import "./chunk-JOP7W24J.js";
21
+ import "./chunk-CYEPCZN5.js";
21
22
  import "./chunk-G6NQ3L4T.js";
22
23
  import "./chunk-WPGR3RW4.js";
23
24
  import "./chunk-6KTXE6A3.js";
@@ -25,13 +26,12 @@ import "./chunk-D7MAYFQP.js";
25
26
  import "./chunk-KVO2BTA4.js";
26
27
  import "./chunk-4O6WRBGE.js";
27
28
  import "./chunk-GUMZC2BO.js";
28
- import "./chunk-CYEPCZN5.js";
29
29
  import "./chunk-TFA6HPOA.js";
30
30
  import "./chunk-F4TWWUMP.js";
31
31
  import "./chunk-72A4L5JJ.js";
32
32
  import "./chunk-A7Q43EUZ.js";
33
33
  import "./chunk-S2V7RUCL.js";
34
- import "./chunk-DNAD57VY.js";
34
+ import "./chunk-PQWICTRO.js";
35
35
  import "./chunk-MRPOZBJC.js";
36
36
  import "./chunk-S2HLHAZ4.js";
37
37
  import "./chunk-DM2T26WE.js";
@@ -1,7 +1,7 @@
1
1
  import { a as GraphEdge } from './graph-DRkl22KE.js';
2
2
  import { CausalTrajectoryRecord } from './causal-trajectory.js';
3
3
  import './capabilities.js';
4
- import './types-DQ2H8gAC.js';
4
+ import './types-DCB90q3g.js';
5
5
  import './message-parts/index.js';
6
6
  import './bounded-jsonl-state.js';
7
7
  import './operator-doctor-types.js';
@@ -12,6 +12,7 @@ import './graph-path-scoring-config.js';
12
12
  import './background-generation-config.js';
13
13
  import './deep-recall-config.js';
14
14
  import './recall-navigation-config.js';
15
+ import './recall-recognition-tier.js';
15
16
  import './active-context-config.js';
16
17
  import './local-llm-config.js';
17
18
  import './semantic-merge-config.js';
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-6ET2VII7.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-AJLQH4RO.js";
10
+ } from "./chunk-D2XUSZ24.js";
11
11
  import {
12
12
  parseContinuityImprovementLoops
13
13
  } from "./chunk-LDXUBPMO.js";
@@ -1283,4 +1283,4 @@ export {
1283
1283
  defaultTierMigrationCycleBudget,
1284
1284
  CompoundingEngine
1285
1285
  };
1286
- //# sourceMappingURL=chunk-QQA6VTOY.js.map
1286
+ //# sourceMappingURL=chunk-3MIZ2EKQ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SupportPassportCreateGrantRequestSchema,
3
3
  defineOperation
4
- } from "./chunk-TUSY4KRE.js";
4
+ } from "./chunk-OQZYHCWM.js";
5
5
  import {
6
6
  SupportPassportCardCategorySchema,
7
7
  SupportPassportMemoryIdSchema,
@@ -220,4 +220,4 @@ var supportPassportGrantAskOperation = defineOperation({
220
220
  result: await ctx.service.supportPassportAskGrant(grantId, secret, question, ctx.abortSignal)
221
221
  })
222
222
  });
223
- //# sourceMappingURL=chunk-PAQ7YGJY.js.map
223
+ //# sourceMappingURL=chunk-3RZB7TYL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-TUSY4KRE.js";
3
+ } from "./chunk-OQZYHCWM.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-2Z24E5W2.js";
@@ -71,4 +71,4 @@ defineOperation({
71
71
  })
72
72
  })
73
73
  });
74
- //# sourceMappingURL=chunk-FVRZDZ7J.js.map
74
+ //# sourceMappingURL=chunk-3SI3FFTW.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7RGX7BMF.js";
4
4
  import {
5
5
  deepRecallRequestSchema
6
- } from "./chunk-JUOJGZPV.js";
6
+ } from "./chunk-AYP2FZFA.js";
7
7
  import {
8
8
  EngramAccessInputError
9
9
  } from "./chunk-2Z24E5W2.js";
@@ -40,4 +40,4 @@ async function respondDeepRecall(req, res, respondJson, readJsonBody, service, s
40
40
  export {
41
41
  respondDeepRecall
42
42
  };
43
- //# sourceMappingURL=chunk-WNMVUWI7.js.map
43
+ //# sourceMappingURL=chunk-3UQIS2GC.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-AJLQH4RO.js";
3
+ } from "./chunk-D2XUSZ24.js";
4
4
  import {
5
5
  keyring_exports,
6
6
  secureStoreDir
@@ -412,4 +412,4 @@ export {
412
412
  resolveNamespaceStorageRoot,
413
413
  NamespaceStorageRouter
414
414
  };
415
- //# sourceMappingURL=chunk-FLZJMXFV.js.map
415
+ //# sourceMappingURL=chunk-42BV46XS.js.map
@@ -43,16 +43,16 @@ import {
43
43
  } from "./chunk-WVI43D54.js";
44
44
  import {
45
45
  getOperation
46
- } from "./chunk-TUSY4KRE.js";
46
+ } from "./chunk-OQZYHCWM.js";
47
47
  import {
48
48
  WHO_KNOWS_MCP_TOOLS
49
- } from "./chunk-LX32KV2C.js";
49
+ } from "./chunk-KOEDSRF5.js";
50
50
  import {
51
51
  PROMOTION_CANDIDATES_MCP_TOOLS
52
52
  } from "./chunk-VYCOJKSX.js";
53
53
  import {
54
54
  validateRequest
55
- } from "./chunk-JUOJGZPV.js";
55
+ } from "./chunk-AYP2FZFA.js";
56
56
  import {
57
57
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
58
58
  } from "./chunk-PWPIERBM.js";
@@ -3994,4 +3994,4 @@ export {
3994
3994
  MCP_MIGRATED_OPERATIONS,
3995
3995
  EngramMcpServer
3996
3996
  };
3997
- //# sourceMappingURL=chunk-ZYZW46HZ.js.map
3997
+ //# sourceMappingURL=chunk-4FWNMN5R.js.map
@@ -0,0 +1,197 @@
1
+ import {
2
+ coerceBooleanLike,
3
+ coerceNumber
4
+ } from "./chunk-PQVCH2AE.js";
5
+ import {
6
+ log
7
+ } from "./chunk-3WCASNQZ.js";
8
+
9
+ // src/recall-recognition-tier.ts
10
+ import { promises as fsp } from "fs";
11
+ import path from "path";
12
+ var DEFAULT_RECALL_RECOGNITION_TIER = false;
13
+ var DEFAULT_RECOGNITION_INDEX_MAX_ENTRIES = 500;
14
+ var RECOGNITION_INDEX_VERSION = 1;
15
+ var RECOGNITION_INDEX_FILE = "index_recognition.json";
16
+ var RECOGNITION_PROMPT_HEADER = "Memory index \u2014 one line per memory. Name the ids that bear on the question.";
17
+ var RECOGNITION_PROMPT_FOOTER = "Answer with the relevant ids only, comma-separated. If none bear on the question, answer with nothing.";
18
+ function parseRecallRecognitionTier(raw) {
19
+ return coerceBooleanLike(raw, "recallRecognitionTier") === true;
20
+ }
21
+ function parseRecognitionIndexMaxEntries(raw) {
22
+ if (raw === void 0 || raw === null) return DEFAULT_RECOGNITION_INDEX_MAX_ENTRIES;
23
+ const n = coerceNumber(raw, "recognitionIndexMaxEntries");
24
+ if (n === void 0 || !Number.isFinite(n) || n < 1) {
25
+ throw new Error(
26
+ `Invalid recognitionIndexMaxEntries: expected an integer >= 1, got ${JSON.stringify(raw)}`
27
+ );
28
+ }
29
+ return Math.floor(n);
30
+ }
31
+ function recognitionIndexPath(memoryDir) {
32
+ return path.join(memoryDir, "state", RECOGNITION_INDEX_FILE);
33
+ }
34
+ function buildRecognitionIndex(records) {
35
+ const seen = /* @__PURE__ */ new Set();
36
+ const out = [];
37
+ for (const record of records) {
38
+ const id = typeof record.id === "string" ? record.id.trim() : "";
39
+ if (id.length === 0 || seen.has(id)) continue;
40
+ seen.add(id);
41
+ out.push({
42
+ id,
43
+ description: typeof record.description === "string" ? record.description.trim() : ""
44
+ });
45
+ }
46
+ return { version: RECOGNITION_INDEX_VERSION, entries: out };
47
+ }
48
+ async function saveRecognitionIndex(memoryDir, index) {
49
+ const file = recognitionIndexPath(memoryDir);
50
+ await fsp.mkdir(path.dirname(file), { recursive: true });
51
+ await fsp.writeFile(file, `${JSON.stringify(index, null, 2)}
52
+ `, "utf8");
53
+ }
54
+ function isRecognitionIndex(raw) {
55
+ if (typeof raw !== "object" || raw === null) return false;
56
+ const candidate = raw;
57
+ if (candidate.version !== RECOGNITION_INDEX_VERSION) return false;
58
+ if (!Array.isArray(candidate.entries)) return false;
59
+ return candidate.entries.every(
60
+ (entry) => typeof entry === "object" && entry !== null && typeof entry.id === "string" && typeof entry.description === "string"
61
+ );
62
+ }
63
+ async function loadRecognitionIndex(memoryDir) {
64
+ try {
65
+ const raw = await fsp.readFile(recognitionIndexPath(memoryDir), "utf8");
66
+ const parsed = JSON.parse(raw);
67
+ if (isRecognitionIndex(parsed)) return parsed;
68
+ log.warn(
69
+ `recognition index ignored at ${RECOGNITION_INDEX_FILE}: unexpected shape; falling back to vector search`
70
+ );
71
+ return null;
72
+ } catch {
73
+ return null;
74
+ }
75
+ }
76
+ function decideRecognitionTier(index, opts) {
77
+ const maxEntries = Math.max(1, Math.floor(opts.maxEntries));
78
+ if (index === null) {
79
+ return { tier: "vector", reason: "index_absent", entriesConsidered: 0, maxEntries };
80
+ }
81
+ if (index.entries.length > maxEntries) {
82
+ return {
83
+ tier: "vector",
84
+ reason: "index_above_threshold",
85
+ entriesConsidered: index.entries.length,
86
+ maxEntries
87
+ };
88
+ }
89
+ return {
90
+ tier: "recognition",
91
+ reason: "index_within_threshold",
92
+ entriesConsidered: index.entries.length,
93
+ maxEntries
94
+ };
95
+ }
96
+ function renderRecognitionIndex(entries) {
97
+ return entries.map((entry) => `${entry.id}: ${entry.description}`).join("\n");
98
+ }
99
+ function buildRecognitionPrompt(query, entries) {
100
+ return [
101
+ RECOGNITION_PROMPT_HEADER,
102
+ renderRecognitionIndex(entries),
103
+ `Question: ${query}`,
104
+ RECOGNITION_PROMPT_FOOTER
105
+ ].join("\n\n");
106
+ }
107
+ function dedupeOrdered(tokens) {
108
+ const seen = /* @__PURE__ */ new Set();
109
+ const out = [];
110
+ for (const token of tokens) {
111
+ if (token.length > 0 && !seen.has(token)) {
112
+ seen.add(token);
113
+ out.push(token);
114
+ }
115
+ }
116
+ return out;
117
+ }
118
+ var TRAILING_PUNCTUATION = { ".": true, ",": true, ";": true, ":": true };
119
+ function stripTrailingPunctuation(value) {
120
+ let end = value.length;
121
+ while (end > 0 && TRAILING_PUNCTUATION[value.charAt(end - 1)]) end -= 1;
122
+ return value.slice(0, end);
123
+ }
124
+ function parseRecognizerIds(output) {
125
+ if (typeof output !== "string") return [];
126
+ const text = output.trim();
127
+ if (text.length === 0) return [];
128
+ if (text.startsWith("[")) {
129
+ try {
130
+ const parsed = JSON.parse(text);
131
+ if (Array.isArray(parsed)) {
132
+ return dedupeOrdered(
133
+ parsed.filter((item) => typeof item === "string").map((item) => stripTrailingPunctuation(item.trim()).trim())
134
+ );
135
+ }
136
+ } catch {
137
+ }
138
+ }
139
+ return dedupeOrdered(
140
+ text.split(/[\s,]+/).map((token) => stripTrailingPunctuation(token.replace(/^[•\-*\d.)\]]+/, "")).trim())
141
+ );
142
+ }
143
+ async function runRecognitionTier(query, entries, recognize) {
144
+ if (entries.length === 0) {
145
+ return { ids: [], dropped: [], skipped: true };
146
+ }
147
+ const raw = parseRecognizerIds(await recognize(buildRecognitionPrompt(query, entries)));
148
+ const byId = new Map(entries.map((entry) => [entry.id, entry]));
149
+ const picked = new Set(raw.filter((token) => byId.has(token)));
150
+ return {
151
+ ids: entries.filter((entry) => picked.has(entry.id)).map((entry) => entry.id),
152
+ dropped: dedupeOrdered(raw.filter((token) => !byId.has(token))),
153
+ skipped: false
154
+ };
155
+ }
156
+ async function recallViaRecognitionTier(args) {
157
+ const index = await loadRecognitionIndex(args.memoryDir);
158
+ const decision = decideRecognitionTier(index, { maxEntries: args.maxEntries });
159
+ if (index === null || decision.tier === "vector") {
160
+ return { decision, ids: [], vectorResults: await args.vectorSearch() };
161
+ }
162
+ try {
163
+ const run = await runRecognitionTier(args.query, index.entries, args.recognize);
164
+ return { decision, ids: run.ids, vectorResults: [] };
165
+ } catch (err) {
166
+ log.warn(
167
+ `recognition tier degraded to vector search: recognizer failed${err instanceof Error ? ` (${err.message})` : ""}`
168
+ );
169
+ return {
170
+ decision,
171
+ ids: [],
172
+ vectorResults: await args.vectorSearch(),
173
+ degraded: "recognizer_unavailable"
174
+ };
175
+ }
176
+ }
177
+
178
+ export {
179
+ DEFAULT_RECALL_RECOGNITION_TIER,
180
+ DEFAULT_RECOGNITION_INDEX_MAX_ENTRIES,
181
+ RECOGNITION_INDEX_VERSION,
182
+ RECOGNITION_PROMPT_HEADER,
183
+ RECOGNITION_PROMPT_FOOTER,
184
+ parseRecallRecognitionTier,
185
+ parseRecognitionIndexMaxEntries,
186
+ recognitionIndexPath,
187
+ buildRecognitionIndex,
188
+ saveRecognitionIndex,
189
+ loadRecognitionIndex,
190
+ decideRecognitionTier,
191
+ renderRecognitionIndex,
192
+ buildRecognitionPrompt,
193
+ parseRecognizerIds,
194
+ runRecognitionTier,
195
+ recallViaRecognitionTier
196
+ };
197
+ //# sourceMappingURL=chunk-4KQIWY4A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/recall-recognition-tier.ts"],"sourcesContent":["/**\n * Full-index recognition tier (issue #2975, foundation slice).\n *\n * distill-kura's recall does not search — it recognizes: the entire\n * namespace index (one line per memory: id + description) goes into a\n * single prompt and a small model names which entries bear on the\n * question. Keyword/vector search misses same-subject-different-words\n * cases; a recognizer that reads the whole index cannot miss what it\n * can see (~500 entries ≈ 6k tokens, sub-second locally).\n *\n * This slice ships the deterministic tier machinery only — nothing on\n * the live recall path reads it yet, so recall behavior is unchanged:\n * - a compact per-namespace index persisted at\n * `<namespace memoryDir>/state/index_recognition.json` with\n * build/save/load; loading is total: missing, corrupt, wrong-shape,\n * or future-version indexes all yield `null`, never an error;\n * - the tier decision, pure on (index, maxEntries): index present and\n * at or under the entry threshold → recognition; absent or above →\n * the vector tier, no error thrown;\n * - the runner: renders the FULL index into one prompt, asks the\n * recognizer for ids, keeps only ids the index actually carries, and\n * returns them in index order — never recognizer order;\n * - loud degradation: a recognizer that fails falls back to vector\n * search labeled `recognizer_unavailable` (quiet degradation is\n * worse than degradation).\n *\n * Determinism rules:\n * - the decision is a pure function of (index, maxEntries) — no clock,\n * no I/O, no locale;\n * - an empty index short-circuits: no model call, zero candidates;\n * - the prompt and the returned ids are byte-identical across runs\n * with unchanged inputs.\n *\n * Host contract for the wiring slices:\n * - maintenance slice: build/save the index at memory write time from\n * each memory's id + description line (a recognition trigger — proper\n * nouns, numbers, landmines, the conclusion reached — not a summary),\n * serializing writes the way temporal-index does (op chain + lock);\n * saveRecognitionIndex here is single-writer and does not lock;\n * - recall slice: for each recalled namespace call\n * recallViaRecognitionTier with the recognizer (one small-model call)\n * and the existing vector search as the fallback; expand picks\n * through the graph neighborhood, merge through the normal pipeline\n * (filters → rerank → budget), and record tier = recognition plus any\n * degraded fallback in xray;\n * - config keys recallRecognitionTier (default false) and\n * recognitionIndexMaxEntries (default 500) gate the wiring.\n */\nimport { promises as fsp } from \"node:fs\";\nimport path from \"node:path\";\nimport { coerceBooleanLike, coerceNumber } from \"./connectors/coerce.js\";\nimport { log } from \"./logger.js\";\n\nexport const DEFAULT_RECALL_RECOGNITION_TIER = false;\nexport const DEFAULT_RECOGNITION_INDEX_MAX_ENTRIES = 500;\nexport const RECOGNITION_INDEX_VERSION = 1;\nconst RECOGNITION_INDEX_FILE = \"index_recognition.json\";\n\nexport const RECOGNITION_PROMPT_HEADER =\n \"Memory index — one line per memory. Name the ids that bear on the question.\";\nexport const RECOGNITION_PROMPT_FOOTER =\n \"Answer with the relevant ids only, comma-separated. If none bear on the question, answer with nothing.\";\n\nexport interface RecognitionIndexEntry {\n /** Stable memory id. Candidates always come back in index order. */\n id: string;\n /** One-line recognition trigger; not a summary (issue #2975 swap test). */\n description: string;\n}\n\nexport interface RecognitionIndex {\n version: number;\n entries: RecognitionIndexEntry[];\n}\n\n/**\n * Config fields this tier owns, mixed into `PluginConfig` (issue #2975) so\n * the keys live beside their parsers instead of growing `types.ts`.\n */\nexport interface RecognitionTierSettings {\n /** Small namespaces recall by recognizing against the whole compact index instead of vector search; parsed now, wiring lands in a later slice. Default false. */\n recallRecognitionTier: boolean;\n /** Max entries a namespace's recognition index may carry for the tier to engage (inclusive). Default 500. */\n recognitionIndexMaxEntries: number;\n}\n\nexport function parseRecallRecognitionTier(raw: unknown): boolean {\n return coerceBooleanLike(raw, \"recallRecognitionTier\") === true;\n}\n\nexport function parseRecognitionIndexMaxEntries(raw: unknown): number {\n if (raw === undefined || raw === null) return DEFAULT_RECOGNITION_INDEX_MAX_ENTRIES;\n const n = coerceNumber(raw, \"recognitionIndexMaxEntries\");\n if (n === undefined || !Number.isFinite(n) || n < 1) {\n throw new Error(\n `Invalid recognitionIndexMaxEntries: expected an integer >= 1, got ${JSON.stringify(raw)}`,\n );\n }\n return Math.floor(n);\n}\n\n/** On-disk location of a namespace's recognition index. */\nexport function recognitionIndexPath(memoryDir: string): string {\n return path.join(memoryDir, \"state\", RECOGNITION_INDEX_FILE);\n}\n\n/**\n * Normalize raw records into a recognition index: blank/whitespace ids\n * are dropped, descriptions are trimmed, and the first record for an id\n * wins. Input order is preserved — it is the recognition order.\n */\nexport function buildRecognitionIndex(\n records: ReadonlyArray<{ id?: string | null; description?: string | null }>,\n): RecognitionIndex {\n const seen = new Set<string>();\n const out: RecognitionIndexEntry[] = [];\n for (const record of records) {\n const id = typeof record.id === \"string\" ? record.id.trim() : \"\";\n if (id.length === 0 || seen.has(id)) continue;\n seen.add(id);\n out.push({\n id,\n description: typeof record.description === \"string\" ? record.description.trim() : \"\",\n });\n }\n return { version: RECOGNITION_INDEX_VERSION, entries: out };\n}\n\n/**\n * Persist a recognition index. Single-writer: the maintenance slice that\n * owns index writes must serialize calls the way temporal-index does.\n */\nexport async function saveRecognitionIndex(\n memoryDir: string,\n index: RecognitionIndex,\n): Promise<void> {\n const file = recognitionIndexPath(memoryDir);\n await fsp.mkdir(path.dirname(file), { recursive: true });\n await fsp.writeFile(file, `${JSON.stringify(index, null, 2)}\\n`, \"utf8\");\n}\n\nfunction isRecognitionIndex(raw: unknown): raw is RecognitionIndex {\n if (typeof raw !== \"object\" || raw === null) return false;\n const candidate = raw as { version?: unknown; entries?: unknown };\n if (candidate.version !== RECOGNITION_INDEX_VERSION) return false;\n if (!Array.isArray(candidate.entries)) return false;\n return candidate.entries.every(\n (entry) =>\n typeof entry === \"object\" &&\n entry !== null &&\n typeof (entry as RecognitionIndexEntry).id === \"string\" &&\n typeof (entry as RecognitionIndexEntry).description === \"string\",\n );\n}\n\n/**\n * Load a namespace's recognition index. Total: a missing, corrupt,\n * wrong-shape, or future-version file all return `null` so the caller\n * falls back to vector search without an error.\n */\nexport async function loadRecognitionIndex(memoryDir: string): Promise<RecognitionIndex | null> {\n try {\n const raw = await fsp.readFile(recognitionIndexPath(memoryDir), \"utf8\");\n const parsed: unknown = JSON.parse(raw);\n if (isRecognitionIndex(parsed)) return parsed;\n log.warn(\n `recognition index ignored at ${RECOGNITION_INDEX_FILE}: unexpected shape; falling back to vector search`,\n );\n return null;\n } catch {\n return null;\n }\n}\n\nexport type RecognitionRecallTier = \"recognition\" | \"vector\";\nexport type RecognitionTierReason =\n | \"index_absent\"\n | \"index_above_threshold\"\n | \"index_within_threshold\";\n\nexport interface RecognitionTierDecision {\n tier: RecognitionRecallTier;\n reason: RecognitionTierReason;\n /** Entries the decision considered; 0 when the index is absent. */\n entriesConsidered: number;\n /** Threshold in force. */\n maxEntries: number;\n}\n\n/**\n * Deterministic tier choice, pure on (index, maxEntries). The threshold\n * is inclusive: an index of exactly maxEntries entries still recognizes\n * (a threshold-sized index is the designed working set, not an overrun).\n */\nexport function decideRecognitionTier(\n index: RecognitionIndex | null,\n opts: { maxEntries: number },\n): RecognitionTierDecision {\n const maxEntries = Math.max(1, Math.floor(opts.maxEntries));\n if (index === null) {\n return { tier: \"vector\", reason: \"index_absent\", entriesConsidered: 0, maxEntries };\n }\n if (index.entries.length > maxEntries) {\n return {\n tier: \"vector\",\n reason: \"index_above_threshold\",\n entriesConsidered: index.entries.length,\n maxEntries,\n };\n }\n return {\n tier: \"recognition\",\n reason: \"index_within_threshold\",\n entriesConsidered: index.entries.length,\n maxEntries,\n };\n}\n\n/** Render the full index, one line per entry, in index order. */\nexport function renderRecognitionIndex(entries: ReadonlyArray<RecognitionIndexEntry>): string {\n return entries.map((entry) => `${entry.id}: ${entry.description}`).join(\"\\n\");\n}\n\n/** The single recognition prompt: header, the FULL index, the question, the answer shape. */\nexport function buildRecognitionPrompt(\n query: string,\n entries: ReadonlyArray<RecognitionIndexEntry>,\n): string {\n return [\n RECOGNITION_PROMPT_HEADER,\n renderRecognitionIndex(entries),\n `Question: ${query}`,\n RECOGNITION_PROMPT_FOOTER,\n ].join(\"\\n\\n\");\n}\n\nfunction dedupeOrdered(tokens: string[]): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const token of tokens) {\n if (token.length > 0 && !seen.has(token)) {\n seen.add(token);\n out.push(token);\n }\n }\n return out;\n}\n\nconst TRAILING_PUNCTUATION: Record<string, true> = { \".\": true, \",\": true, \";\": true, \":\": true };\n\n/**\n * Strip trailing sentence punctuation in linear time. A quantified anchored\n * regex (`/[.,;:]+$/`) backtracks polynomially on recognizer output made of\n * many separators, and that output is uncontrolled model text.\n */\nfunction stripTrailingPunctuation(value: string): string {\n let end = value.length;\n while (end > 0 && TRAILING_PUNCTUATION[value.charAt(end - 1)]) end -= 1;\n return value.slice(0, end);\n}\n\n/**\n * Parse recognizer output into ordered unique id tokens. Accepts a JSON\n * string array or comma/whitespace-separated ids, and strips sentence\n * punctuation so prose wrappers do not corrupt ids. Tokens that are not\n * real ids are dropped later by validation against the index.\n */\nexport function parseRecognizerIds(output: string | null | undefined): string[] {\n if (typeof output !== \"string\") return [];\n const text = output.trim();\n if (text.length === 0) return [];\n if (text.startsWith(\"[\")) {\n try {\n const parsed: unknown = JSON.parse(text);\n if (Array.isArray(parsed)) {\n return dedupeOrdered(\n parsed\n .filter((item): item is string => typeof item === \"string\")\n .map((item) => stripTrailingPunctuation(item.trim()).trim()),\n );\n }\n } catch {\n // Fall through to separator parsing.\n }\n }\n return dedupeOrdered(\n text\n .split(/[\\s,]+/)\n .map((token) => stripTrailingPunctuation(token.replace(/^[•\\-*\\d.)\\]]+/, \"\")).trim()),\n );\n}\n\n/** One model call over the full index; supplied by the wiring slice. */\nexport type Recognizer = (prompt: string) => Promise<string | null | undefined>;\n\nexport interface RecognitionRunResult {\n /** Recognized ids, validated against the index, in index order. */\n ids: string[];\n /** Recognizer tokens the index does not carry (hallucinated ids). */\n dropped: string[];\n /** True when no model call was made (empty index). */\n skipped: boolean;\n}\n\n/**\n * Run the recognition pass: the FULL index goes into one prompt, the\n * recognizer names ids, unknown ids are dropped, and the kept ids come\n * back in index order so downstream merging stays deterministic.\n */\nexport async function runRecognitionTier(\n query: string,\n entries: ReadonlyArray<RecognitionIndexEntry>,\n recognize: Recognizer,\n): Promise<RecognitionRunResult> {\n if (entries.length === 0) {\n return { ids: [], dropped: [], skipped: true };\n }\n const raw = parseRecognizerIds(await recognize(buildRecognitionPrompt(query, entries)));\n const byId = new Map(entries.map((entry) => [entry.id, entry]));\n const picked = new Set(raw.filter((token) => byId.has(token)));\n return {\n ids: entries.filter((entry) => picked.has(entry.id)).map((entry) => entry.id),\n dropped: dedupeOrdered(raw.filter((token) => !byId.has(token))),\n skipped: false,\n };\n}\n\nexport interface RecognitionTierOutcome<TVector> {\n decision: RecognitionTierDecision;\n /** Recognition picks, index order; empty on the vector tier. */\n ids: string[];\n /** Vector-tier results from the fallback; empty on the recognition tier. */\n vectorResults: TVector[];\n /**\n * Set when recognition was routed but the recognizer failed and the\n * vector tier served the recall instead — loud degradation.\n */\n degraded?: \"recognizer_unavailable\";\n}\n\n/**\n * The wiring-seam composition for one namespace: load the index, decide\n * the tier, then either recognize against the full index or run the\n * caller's vector search. Never throws for index problems; a failing\n * recognizer degrades to vector search labeled `recognizer_unavailable`.\n */\nexport async function recallViaRecognitionTier<TVector>(args: {\n memoryDir: string;\n query: string;\n maxEntries: number;\n recognize: Recognizer;\n vectorSearch: () => Promise<TVector[]>;\n}): Promise<RecognitionTierOutcome<TVector>> {\n const index = await loadRecognitionIndex(args.memoryDir);\n const decision = decideRecognitionTier(index, { maxEntries: args.maxEntries });\n if (index === null || decision.tier === \"vector\") {\n return { decision, ids: [], vectorResults: await args.vectorSearch() };\n }\n try {\n const run = await runRecognitionTier(args.query, index.entries, args.recognize);\n return { decision, ids: run.ids, vectorResults: [] };\n } catch (err) {\n log.warn(\n `recognition tier degraded to vector search: recognizer failed${\n err instanceof Error ? ` (${err.message})` : \"\"\n }`,\n );\n return {\n decision,\n ids: [],\n vectorResults: await args.vectorSearch(),\n degraded: \"recognizer_unavailable\",\n };\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SUPPORT_PASSPORT_DRAFT_MAX_CONTENT_CHARACTERS,
3
3
  SUPPORT_PASSPORT_DRAFT_MAX_MEMORIES
4
- } from "./chunk-TUSY4KRE.js";
4
+ } from "./chunk-OQZYHCWM.js";
5
5
  import {
6
6
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
7
7
  } from "./chunk-PWPIERBM.js";
@@ -343,4 +343,4 @@ export {
343
343
  parseSupportPassportModelJob,
344
344
  SupportPassportModelBridge
345
345
  };
346
- //# sourceMappingURL=chunk-EBLKS57G.js.map
346
+ //# sourceMappingURL=chunk-4PXFLDMJ.js.map
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-IHOXK2I6.js";
24
24
  import {
25
25
  compareEntityTimestamps
26
- } from "./chunk-AJLQH4RO.js";
26
+ } from "./chunk-D2XUSZ24.js";
27
27
  import {
28
28
  normalizeEntityName
29
29
  } from "./chunk-YXZG5TVN.js";
@@ -918,4 +918,4 @@ export {
918
918
  entityIndexVersion,
919
919
  entityRecentTranscriptLookbackHours
920
920
  };
921
- //# sourceMappingURL=chunk-XQFHKPNB.js.map
921
+ //# sourceMappingURL=chunk-4SDO74N2.js.map
@@ -18,13 +18,13 @@ import {
18
18
  } from "./chunk-3HSRWJTC.js";
19
19
  import {
20
20
  respondDeepRecall
21
- } from "./chunk-WNMVUWI7.js";
21
+ } from "./chunk-3UQIS2GC.js";
22
22
  import {
23
23
  handleSupportPassportOwnerHttp
24
- } from "./chunk-YA5M7OC4.js";
24
+ } from "./chunk-ML5FW2RO.js";
25
25
  import {
26
26
  buildSupportPassportPublicRequestHandler
27
- } from "./chunk-4WSR7MYV.js";
27
+ } from "./chunk-X6B2QWXW.js";
28
28
  import {
29
29
  handleMcpGetSse
30
30
  } from "./chunk-SRT6SHVZ.js";
@@ -37,10 +37,10 @@ import {
37
37
  processChatMessage,
38
38
  sessionBelongsToPrincipal,
39
39
  subscribeChatTranscript
40
- } from "./chunk-ZYZW46HZ.js";
40
+ } from "./chunk-4FWNMN5R.js";
41
41
  import {
42
42
  RelayMissionStoreError
43
- } from "./chunk-HIBNECBQ.js";
43
+ } from "./chunk-QZDUNK6V.js";
44
44
  import {
45
45
  executeResolution,
46
46
  isValidResolutionVerb
@@ -62,10 +62,10 @@ import {
62
62
  optionalNamespaceKindQueryParam,
63
63
  optionalQueryString,
64
64
  positiveIntQueryParam
65
- } from "./chunk-OTGIAJQ2.js";
65
+ } from "./chunk-EZV43XBD.js";
66
66
  import {
67
67
  respondBriefingHttp
68
- } from "./chunk-EHUUXLLA.js";
68
+ } from "./chunk-QSP4Y73Q.js";
69
69
  import {
70
70
  maybeHandleLifecycleFlush
71
71
  } from "./chunk-TIDEL77O.js";
@@ -76,14 +76,14 @@ import {
76
76
  authorizationProbeNamespaces,
77
77
  authorizationProbeRequiresPrincipalNamespace,
78
78
  probeOperationAuthorization
79
- } from "./chunk-WHSNLCRO.js";
79
+ } from "./chunk-XTMABIFW.js";
80
80
  import {
81
81
  getOperation,
82
82
  resolveQueryNamespaceWritablePreflight
83
- } from "./chunk-TUSY4KRE.js";
83
+ } from "./chunk-OQZYHCWM.js";
84
84
  import {
85
85
  handleWhoKnowsHttpQuery
86
- } from "./chunk-LX32KV2C.js";
86
+ } from "./chunk-KOEDSRF5.js";
87
87
  import {
88
88
  isTrustZoneName
89
89
  } from "./chunk-ROBHL3GL.js";
@@ -92,13 +92,13 @@ import {
92
92
  } from "./chunk-DEUNUKTD.js";
93
93
  import {
94
94
  isRecallDisclosure
95
- } from "./chunk-DNAD57VY.js";
95
+ } from "./chunk-PQWICTRO.js";
96
96
  import {
97
97
  CorrectionContractError
98
98
  } from "./chunk-QLK3SL7Q.js";
99
99
  import {
100
100
  validateRequest
101
- } from "./chunk-JUOJGZPV.js";
101
+ } from "./chunk-AYP2FZFA.js";
102
102
  import {
103
103
  peerManifestRevision
104
104
  } from "./chunk-S3YM4SZQ.js";
@@ -3599,4 +3599,4 @@ export {
3599
3599
  resolveDefaultAdminConsolePublicDir,
3600
3600
  EngramAccessHttpServer
3601
3601
  };
3602
- //# sourceMappingURL=chunk-YOC3EEZH.js.map
3602
+ //# sourceMappingURL=chunk-56C7OO3N.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  NamespaceStorageRouter
3
- } from "./chunk-FLZJMXFV.js";
3
+ } from "./chunk-42BV46XS.js";
4
4
  import {
5
5
  namespaceCollectionName
6
- } from "./chunk-T3F2HWIG.js";
6
+ } from "./chunk-TZ44E732.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-76RTJ533.js.map
216
+ //# sourceMappingURL=chunk-6525YIYL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  defineOperation
3
- } from "./chunk-TUSY4KRE.js";
3
+ } from "./chunk-OQZYHCWM.js";
4
4
  import {
5
5
  EngramAccessInputError
6
6
  } from "./chunk-2Z24E5W2.js";
@@ -92,4 +92,4 @@ defineOperation({
92
92
  };
93
93
  }
94
94
  });
95
- //# sourceMappingURL=chunk-PSQRBCGR.js.map
95
+ //# sourceMappingURL=chunk-AL7OLBL7.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KJTKLXTH.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-AJLQH4RO.js";
6
+ } from "./chunk-D2XUSZ24.js";
7
7
  import {
8
8
  assertInjectedStorageRooted
9
9
  } from "./chunk-SGHGCFVV.js";
@@ -260,4 +260,4 @@ export {
260
260
  backupExistingLedger,
261
261
  rebuildMemoryLifecycleLedger
262
262
  };
263
- //# sourceMappingURL=chunk-WGCASEEQ.js.map
263
+ //# sourceMappingURL=chunk-AYGWJ2UK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isValidCapsuleSince
3
- } from "./chunk-KQAFEZQX.js";
3
+ } from "./chunk-IPLYGWQF.js";
4
4
  import {
5
5
  CAPSULE_ID_PATTERN
6
6
  } from "./chunk-WEHSQBFR.js";
@@ -563,4 +563,4 @@ export {
563
563
  actionConfidenceRequestSchema,
564
564
  validateRequest
565
565
  };
566
- //# sourceMappingURL=chunk-JUOJGZPV.js.map
566
+ //# sourceMappingURL=chunk-AYP2FZFA.js.map
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-3UXOZBHV.js";
15
15
  import {
16
16
  StorageManager
17
- } from "./chunk-AJLQH4RO.js";
17
+ } from "./chunk-D2XUSZ24.js";
18
18
  import {
19
19
  OKF_PROFILE_TYPE,
20
20
  okfTypeForMemory
@@ -272,4 +272,4 @@ export {
272
272
  exportOkfBundle,
273
273
  firstHeading
274
274
  };
275
- //# sourceMappingURL=chunk-6DYCSSHN.js.map
275
+ //# sourceMappingURL=chunk-BHI5ILU5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-AJLQH4RO.js";
3
+ } from "./chunk-D2XUSZ24.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-LE2UESGS.js.map
122
+ //# sourceMappingURL=chunk-BOTSR5S3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFrontmatter
3
- } from "./chunk-AJLQH4RO.js";
3
+ } from "./chunk-D2XUSZ24.js";
4
4
  import {
5
5
  activityDigestPath,
6
6
  isValidActivityDate
@@ -199,4 +199,4 @@ export {
199
199
  buildStandup,
200
200
  standupHelp
201
201
  };
202
- //# sourceMappingURL=chunk-5WIGM42T.js.map
202
+ //# sourceMappingURL=chunk-C3PKRFZ4.js.map
@@ -1,9 +1,3 @@
1
- import {
2
- TombstoneStore,
3
- applyTombstoneResurrectionGate,
4
- buildRetiredFactTombstoneInputs,
5
- collectRetiredMemoriesForRebuild
6
- } from "./chunk-46WM6JX2.js";
7
1
  import {
8
2
  WEARABLES_DIR_NAME,
9
3
  escapeSegmentText,
@@ -15,16 +9,22 @@ import {
15
9
  unescapeSegmentText,
16
10
  unescapeSpeakerLabel
17
11
  } from "./chunk-UHVXE24Y.js";
12
+ import {
13
+ TombstoneStore,
14
+ applyTombstoneResurrectionGate,
15
+ buildRetiredFactTombstoneInputs,
16
+ collectRetiredMemoriesForRebuild
17
+ } from "./chunk-46WM6JX2.js";
18
18
  import {
19
19
  normalizeQmdResultPath
20
- } from "./chunk-T3F2HWIG.js";
20
+ } from "./chunk-TZ44E732.js";
21
21
  import {
22
22
  withholdToolScopedFromSharedNamespace
23
23
  } from "./chunk-S2V7RUCL.js";
24
24
  import {
25
25
  SPECULATIVE_TTL_DAYS,
26
26
  confidenceTier
27
- } from "./chunk-DNAD57VY.js";
27
+ } from "./chunk-PQWICTRO.js";
28
28
  import {
29
29
  rewriteProjectedEntityReferences,
30
30
  rewriteProjectedMemoryEntityReference
@@ -11338,4 +11338,4 @@ export {
11338
11338
  isValidBufferSurpriseEvent,
11339
11339
  StorageManager3 as StorageManager
11340
11340
  };
11341
- //# sourceMappingURL=chunk-AJLQH4RO.js.map
11341
+ //# sourceMappingURL=chunk-D2XUSZ24.js.map