@remnic/core 9.64.4 → 9.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/dist/access-admin-ops-surface.d.ts +12 -11
  2. package/dist/access-admin-ops-surface.js +13 -13
  3. package/dist/access-authorization-probe.d.ts +12 -11
  4. package/dist/access-authorization-probe.js +14 -14
  5. package/dist/access-boundary.d.ts +12 -11
  6. package/dist/access-boundary.js +13 -13
  7. package/dist/access-cli.js +51 -49
  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 +12 -11
  11. package/dist/access-extraction-force-flush.js +13 -13
  12. package/dist/access-health-types.d.ts +2 -1
  13. package/dist/access-http-lcm-compaction.d.ts +12 -11
  14. package/dist/access-http-lifecycle-flush.d.ts +12 -11
  15. package/dist/access-http-offline-stream.d.ts +12 -11
  16. package/dist/access-http-query.d.ts +3 -2
  17. package/dist/access-http-query.js +15 -15
  18. package/dist/access-http.d.ts +13 -12
  19. package/dist/access-http.js +24 -24
  20. package/dist/access-identity-continuity-surface.d.ts +10 -9
  21. package/dist/access-identity-continuity-surface.js +13 -13
  22. package/dist/access-lcm-surface.d.ts +12 -11
  23. package/dist/access-lcm-surface.js +13 -13
  24. package/dist/access-mcp.d.ts +12 -11
  25. package/dist/access-mcp.js +18 -18
  26. package/dist/access-memory-search-fanout.d.ts +3 -2
  27. package/dist/{access-namespace-preflight-CYeI1R2_.d.ts → access-namespace-preflight-AqlR0w02.d.ts} +1 -1
  28. package/dist/access-namespace-preflight.d.ts +4 -3
  29. package/dist/access-namespace-preflight.js +13 -13
  30. package/dist/access-observe-write-surface.d.ts +12 -11
  31. package/dist/access-observe-write-surface.js +13 -13
  32. package/dist/access-offline-manifest.d.ts +10 -9
  33. package/dist/access-operations-batch.js +14 -14
  34. package/dist/access-operations.d.ts +12 -11
  35. package/dist/access-operations.js +17 -17
  36. package/dist/access-recall-concurrency.d.ts +12 -11
  37. package/dist/access-recall-concurrency.js +13 -13
  38. package/dist/access-recall-response.d.ts +12 -11
  39. package/dist/access-recall-response.js +13 -13
  40. package/dist/access-recall-surface.d.ts +12 -11
  41. package/dist/access-recall-surface.js +13 -13
  42. package/dist/{access-service-BKtdXnyk.d.ts → access-service-BHmtl9BA.d.ts} +7 -7
  43. package/dist/access-service-helpers.d.ts +12 -11
  44. package/dist/access-service.d.ts +12 -11
  45. package/dist/access-service.js +13 -13
  46. package/dist/access-surface-catalog.d.ts +12 -11
  47. package/dist/access-surface-catalog.js +15 -15
  48. package/dist/access-wearables-meetings-surface.d.ts +4 -3
  49. package/dist/action-confidence.d.ts +2 -1
  50. package/dist/active-memory-bridge.d.ts +2 -1
  51. package/dist/active-recall.d.ts +2 -1
  52. package/dist/active-recall.js +4 -2
  53. package/dist/active-recall.js.map +1 -1
  54. package/dist/ambient-provenance.d.ts +2 -1
  55. package/dist/artifact-search.d.ts +2 -1
  56. package/dist/behavior-learner.d.ts +2 -1
  57. package/dist/behavior-signals.d.ts +2 -1
  58. package/dist/bootstrap.d.ts +10 -9
  59. package/dist/briefing-window.d.ts +3 -2
  60. package/dist/briefing.d.ts +3 -2
  61. package/dist/briefing.js +5 -5
  62. package/dist/buffer-surprise-report.d.ts +2 -1
  63. package/dist/buffer-turn-helpers.d.ts +2 -1
  64. package/dist/buffer.d.ts +3 -2
  65. package/dist/bulk-import/index.d.ts +4 -3
  66. package/dist/calibration.d.ts +2 -1
  67. package/dist/capabilities.d.ts +2 -1
  68. package/dist/{catalog-CLAqQO2L.d.ts → catalog-gBoyN-IW.d.ts} +1 -1
  69. package/dist/causal-behavior.d.ts +2 -1
  70. package/dist/causal-consolidation.d.ts +2 -1
  71. package/dist/causal-consolidation.js +6 -6
  72. package/dist/causal-trajectory-graph.d.ts +2 -1
  73. package/dist/{chunk-TY35YQ6E.js → chunk-34BMUGRA.js} +2 -2
  74. package/dist/{chunk-XH4IQVTN.js → chunk-4E6IJCLC.js} +2 -2
  75. package/dist/{chunk-LZKCMK3U.js → chunk-4GD7YV4Y.js} +2 -2
  76. package/dist/chunk-7PHI6GUI.js +95 -0
  77. package/dist/chunk-7PHI6GUI.js.map +1 -0
  78. package/dist/{chunk-YXGU3MDQ.js → chunk-7PWWGYGO.js} +2 -2
  79. package/dist/{chunk-XZUCNVGE.js → chunk-A4VJKT2H.js} +8 -8
  80. package/dist/{chunk-NO7B6DRB.js → chunk-A6LBDIFS.js} +2 -2
  81. package/dist/{chunk-ON2P3SHG.js → chunk-CCP6LXQJ.js} +2 -2
  82. package/dist/{chunk-DHKV6E4A.js → chunk-CESQ4CMC.js} +2 -2
  83. package/dist/{chunk-RWLRKMZK.js → chunk-E6EQTCOQ.js} +2 -2
  84. package/dist/{chunk-DG6MJD7W.js → chunk-FFPBTNLC.js} +2 -2
  85. package/dist/{chunk-PE76XIDM.js → chunk-GOGHZVY3.js} +3 -3
  86. package/dist/{chunk-6LTCUN3T.js → chunk-GQ5OJVTM.js} +2 -2
  87. package/dist/{chunk-GVRLED7R.js → chunk-H6B6GPVH.js} +2 -2
  88. package/dist/{chunk-DA2O3F5V.js → chunk-HBKFYXBA.js} +9 -9
  89. package/dist/{chunk-DC4FJY2G.js → chunk-HDD4RRIX.js} +3 -3
  90. package/dist/{chunk-LOETWOEB.js → chunk-IWUN4RZL.js} +2 -2
  91. package/dist/{chunk-246HFJVG.js → chunk-JNSLW2O4.js} +2 -2
  92. package/dist/{chunk-VLES5S4K.js → chunk-JXMXTV6C.js} +27 -27
  93. package/dist/{chunk-7V3AZWWZ.js → chunk-K7JMKLKV.js} +9 -7
  94. package/dist/{chunk-7V3AZWWZ.js.map → chunk-K7JMKLKV.js.map} +1 -1
  95. package/dist/{chunk-TKI2WOL5.js → chunk-KLPVXLQJ.js} +2 -2
  96. package/dist/{chunk-YFQTDE7N.js → chunk-LA2MSK23.js} +2 -2
  97. package/dist/{chunk-IJXECCUV.js → chunk-LWVG6U7L.js} +2 -2
  98. package/dist/{chunk-7RAJ3GXO.js → chunk-M6L7HI7R.js} +2 -156
  99. package/dist/chunk-M6L7HI7R.js.map +1 -0
  100. package/dist/{chunk-A2IBK3TG.js → chunk-MXJU4GCA.js} +2 -2
  101. package/dist/{chunk-SB6YBB2V.js → chunk-NTERJOFA.js} +2 -2
  102. package/dist/{chunk-H5CGAD7L.js → chunk-OXL5QKTV.js} +1 -1
  103. package/dist/{chunk-EJDLQRUO.js → chunk-P4CQCL27.js} +2 -2
  104. package/dist/{chunk-44DSGZFF.js → chunk-PDKBKBC2.js} +2 -2
  105. package/dist/{chunk-7BVO64UC.js → chunk-PHX3ET3C.js} +2 -2
  106. package/dist/{chunk-PVIXAMWM.js → chunk-QCNB4BRE.js} +2 -2
  107. package/dist/{chunk-JCSUNXYJ.js → chunk-RNKNL5GQ.js} +3 -3
  108. package/dist/{chunk-3LOQN3TO.js → chunk-RQYV6M2T.js} +3 -3
  109. package/dist/{chunk-CKZHKFY3.js → chunk-RRJUMSFX.js} +3 -3
  110. package/dist/{chunk-C6AKYOFO.js → chunk-T6QMNVMO.js} +2 -2
  111. package/dist/{chunk-Z6CJLYXT.js → chunk-U56TGYVS.js} +3 -3
  112. package/dist/{chunk-MJRVF7SF.js → chunk-UPIKAT5A.js} +22 -22
  113. package/dist/{chunk-KRPE7ANR.js → chunk-VNIETTMR.js} +2 -2
  114. package/dist/{chunk-3A46U7XG.js → chunk-WHA6ISFX.js} +2 -2
  115. package/dist/chunk-XAB6STPO.js +160 -0
  116. package/dist/chunk-XAB6STPO.js.map +1 -0
  117. package/dist/{chunk-WBM5NR4E.js → chunk-Y5UT73VZ.js} +2 -2
  118. package/dist/{chunk-XACYILRA.js → chunk-YHSNAGN3.js} +8 -8
  119. package/dist/{chunk-ZSYE2QVJ.js → chunk-YIZRTHHF.js} +2 -2
  120. package/dist/{chunk-UMDZXW5J.js → chunk-YQ3CBLL4.js} +5 -85
  121. package/dist/chunk-YQ3CBLL4.js.map +1 -0
  122. package/dist/{chunk-2QI2JBLQ.js → chunk-ZAI5R6DW.js} +2 -2
  123. package/dist/{chunk-55SJFHVD.js → chunk-ZFBZ4QTS.js} +4 -4
  124. package/dist/{cli-CLvBewKf.d.ts → cli-BpwTNHTm.d.ts} +5 -5
  125. package/dist/cli.d.ts +14 -13
  126. package/dist/cli.js +43 -41
  127. package/dist/coding/pre-action-gate.d.ts +2 -1
  128. package/dist/compounding/engine.d.ts +3 -2
  129. package/dist/compounding/engine.js +5 -5
  130. package/dist/compounding/preference-consolidator.d.ts +2 -1
  131. package/dist/compression-optimizer.d.ts +2 -1
  132. package/dist/config.d.ts +2 -1
  133. package/dist/config.js +4 -2
  134. package/dist/connectors/codex-materialize-runner.d.ts +2 -1
  135. package/dist/connectors/codex-materialize-runner.js +5 -5
  136. package/dist/connectors/codex-materialize.d.ts +2 -1
  137. package/dist/connectors/index.d.ts +2 -1
  138. package/dist/connectors/index.js +5 -5
  139. package/dist/consolidation-provenance-check.d.ts +3 -2
  140. package/dist/consolidation-undo.d.ts +3 -2
  141. package/dist/contradiction/index.d.ts +3 -2
  142. package/dist/converge-config.d.ts +2 -1
  143. package/dist/convergence-refresh.d.ts +3 -2
  144. package/dist/convergence-refresh.js +7 -7
  145. package/dist/conversation-index/backend.d.ts +2 -1
  146. package/dist/conversation-index/chunker.d.ts +2 -1
  147. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  148. package/dist/conversation-index/indexer.d.ts +2 -1
  149. package/dist/conversation-index/search.d.ts +2 -1
  150. package/dist/corpus-watermark.d.ts +2 -1
  151. package/dist/corpus-watermark.js +7 -7
  152. package/dist/day-summary.d.ts +2 -1
  153. package/dist/delinearize.d.ts +2 -1
  154. package/dist/dependency-propagation-config.d.ts +2 -1
  155. package/dist/{dependency-propagation-delivery-DMqIw9Zh.d.ts → dependency-propagation-delivery-QYJ1-c2M.d.ts} +1 -1
  156. package/dist/direct-answer-wiring.d.ts +2 -1
  157. package/dist/direct-answer.d.ts +2 -1
  158. package/dist/embedding-fallback.d.ts +2 -1
  159. package/dist/enrichment/index.d.ts +2 -1
  160. package/dist/entity-origin-fields.d.ts +2 -1
  161. package/dist/entity-retrieval.d.ts +3 -2
  162. package/dist/entity-retrieval.js +5 -5
  163. package/dist/entity-schema.d.ts +2 -1
  164. package/dist/episodic-context.d.ts +2 -1
  165. package/dist/explicit-capture.d.ts +10 -9
  166. package/dist/external-wiki-access.d.ts +12 -11
  167. package/dist/external-wiki-access.js +14 -14
  168. package/dist/external-wiki-collection-registration.d.ts +2 -1
  169. package/dist/external-wiki-collection.d.ts +2 -1
  170. package/dist/external-wiki-mcp-tools.d.ts +12 -11
  171. package/dist/extraction-error-classification.d.ts +2 -1
  172. package/dist/extraction-faithfulness.d.ts +2 -1
  173. package/dist/extraction-judge-telemetry.d.ts +2 -1
  174. package/dist/extraction-judge-training.d.ts +2 -1
  175. package/dist/extraction-judge.d.ts +2 -1
  176. package/dist/extraction-liveness.d.ts +2 -1
  177. package/dist/extraction-normalization.d.ts +2 -1
  178. package/dist/extraction-prompt.d.ts +2 -1
  179. package/dist/extraction-source-grounding-rules.d.ts +2 -1
  180. package/dist/extraction-source-grounding.d.ts +2 -1
  181. package/dist/extraction.d.ts +2 -1
  182. package/dist/extraction.js +5 -5
  183. package/dist/fallback-llm.d.ts +2 -1
  184. package/dist/graph-dashboard-diff.d.ts +2 -1
  185. package/dist/graph-dashboard-key.d.ts +2 -1
  186. package/dist/graph-dashboard-parser.d.ts +2 -1
  187. package/dist/graph-edge-reinforcement.d.ts +2 -1
  188. package/dist/graph-path-reconstruction.d.ts +2 -1
  189. package/dist/graph-path-scoring.d.ts +2 -1
  190. package/dist/graph-snapshot.d.ts +2 -1
  191. package/dist/graph.d.ts +2 -1
  192. package/dist/harmonic-retrieval.js +1 -1
  193. package/dist/importance.d.ts +2 -1
  194. package/dist/importers/index.d.ts +2 -1
  195. package/dist/in-flight-reads.d.ts +2 -1
  196. package/dist/index.d.ts +22 -21
  197. package/dist/index.js +56 -53
  198. package/dist/intent.d.ts +2 -1
  199. package/dist/lcm/engine.d.ts +2 -1
  200. package/dist/lcm/index.d.ts +2 -1
  201. package/dist/lcm/tools.d.ts +2 -1
  202. package/dist/lifecycle.d.ts +2 -1
  203. package/dist/live-connectors-runner.d.ts +2 -1
  204. package/dist/local-llm.d.ts +2 -1
  205. package/dist/local-model-endpoint.d.ts +2 -1
  206. package/dist/location/index.d.ts +295 -0
  207. package/dist/location/index.js +798 -0
  208. package/dist/location/index.js.map +1 -0
  209. package/dist/maintenance/memory-governance.d.ts +2 -1
  210. package/dist/maintenance/memory-governance.js +5 -5
  211. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +3 -2
  212. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +5 -5
  213. package/dist/maintenance/rebuild-memory-projection.d.ts +3 -2
  214. package/dist/maintenance/rebuild-memory-projection.js +6 -6
  215. package/dist/{maintenance-DITiehFX.d.ts → maintenance-BjEr3WKG.d.ts} +3 -3
  216. package/dist/mcp-memory-inspector-app.d.ts +12 -11
  217. package/dist/memory-action-policy.d.ts +2 -1
  218. package/dist/memory-cache.d.ts +2 -1
  219. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  220. package/dist/memory-projection-store.d.ts +2 -1
  221. package/dist/memory-provenance.d.ts +2 -1
  222. package/dist/memory-snapshot.d.ts +2 -1
  223. package/dist/memory-worth-outcomes.d.ts +3 -2
  224. package/dist/models-json.d.ts +2 -1
  225. package/dist/namespaces/migrate.d.ts +4 -3
  226. package/dist/namespaces/migrate.js +6 -6
  227. package/dist/namespaces/principal.d.ts +2 -1
  228. package/dist/namespaces/search.d.ts +2 -1
  229. package/dist/namespaces/search.js +3 -3
  230. package/dist/namespaces/storage.d.ts +4 -3
  231. package/dist/namespaces/storage.js +5 -5
  232. package/dist/native-knowledge.d.ts +2 -1
  233. package/dist/offline-sync-impression-drain.d.ts +2 -1
  234. package/dist/operator-doctor-corpus.d.ts +2 -1
  235. package/dist/operator-doctor-corpus.js +8 -8
  236. package/dist/operator-doctor-replica.d.ts +2 -1
  237. package/dist/operator-toolkit.d.ts +4 -3
  238. package/dist/operator-toolkit.js +17 -15
  239. package/dist/orchestration/compression-guideline-coordinator.d.ts +3 -2
  240. package/dist/orchestration/maintenance.d.ts +5 -4
  241. package/dist/orchestration/maintenance.js +13 -12
  242. package/dist/{orchestrator-6fPa2l9x.d.ts → orchestrator-CC4USYcD.d.ts} +8 -8
  243. package/dist/orchestrator.d.ts +10 -9
  244. package/dist/orchestrator.js +51 -49
  245. package/dist/patterns-cli.d.ts +2 -1
  246. package/dist/{pipeline-DHpYtfM3.d.ts → pipeline-DWgAgvJN.d.ts} +1 -1
  247. package/dist/policy-runtime.d.ts +2 -1
  248. package/dist/proactive-contention.d.ts +2 -1
  249. package/dist/provenance.d.ts +2 -1
  250. package/dist/{public-http-BT36aBb-.d.ts → public-http-CkQC8VpD.d.ts} +1 -1
  251. package/dist/{qmd-BaX31tM0.d.ts → qmd-BJGhj4ta.d.ts} +1 -1
  252. package/dist/qmd-preflight.d.ts +3 -2
  253. package/dist/qmd-recall-cache.d.ts +2 -1
  254. package/dist/qmd.d.ts +3 -2
  255. package/dist/recall-concurrency-config.d.ts +2 -1
  256. package/dist/recall-disclosure-escalation.d.ts +2 -1
  257. package/dist/recall-explain-renderer.d.ts +2 -1
  258. package/dist/recall-memory-map.d.ts +2 -1
  259. package/dist/recall-planner-llm.d.ts +2 -1
  260. package/dist/recall-state.d.ts +2 -1
  261. package/dist/recall-tag-filter.d.ts +2 -1
  262. package/dist/recall-timings.d.ts +2 -1
  263. package/dist/recall-xray-cli.d.ts +2 -1
  264. package/dist/recall-xray-renderer.d.ts +2 -1
  265. package/dist/recall-xray.d.ts +2 -1
  266. package/dist/reconcile/cursor.d.ts +2 -1
  267. package/dist/reconcile/manifest.d.ts +2 -1
  268. package/dist/reconcile/plan.d.ts +2 -1
  269. package/dist/replay/normalizers/chatgpt.d.ts +2 -1
  270. package/dist/replay/normalizers/claude.d.ts +2 -1
  271. package/dist/replay/normalizers/openclaw.d.ts +2 -1
  272. package/dist/replay/normalizers/shared.d.ts +2 -1
  273. package/dist/replay/runner.d.ts +2 -1
  274. package/dist/replay/types.d.ts +2 -1
  275. package/dist/replica-divergence.d.ts +2 -1
  276. package/dist/replica-peers-config.d.ts +2 -1
  277. package/dist/resolve-auth-token.d.ts +2 -1
  278. package/dist/resume-bundles.js +5 -3
  279. package/dist/retrieval-agents.d.ts +3 -2
  280. package/dist/retrieval-tiers.d.ts +2 -1
  281. package/dist/routing/engine.d.ts +2 -1
  282. package/dist/routing/store.d.ts +2 -1
  283. package/dist/salvage-envelope.d.ts +2 -1
  284. package/dist/{scope-profiles-1hYWJ9bM.d.ts → scope-profiles-C4PdBYKc.d.ts} +1 -1
  285. package/dist/search/embed-helper.d.ts +2 -1
  286. package/dist/search/factory.d.ts +2 -1
  287. package/dist/search/factory.js +2 -2
  288. package/dist/search/index.d.ts +2 -1
  289. package/dist/search/index.js +4 -4
  290. package/dist/search/lancedb-backend.d.ts +2 -1
  291. package/dist/search/meilisearch-backend.d.ts +2 -1
  292. package/dist/search/noop-backend.d.ts +2 -1
  293. package/dist/search/orama-backend.d.ts +2 -1
  294. package/dist/search/port.d.ts +2 -1
  295. package/dist/search/remote-backend.d.ts +2 -1
  296. package/dist/{semantic-consolidation-Chmddvcg.d.ts → semantic-consolidation-5-HOmIhL.d.ts} +1 -1
  297. package/dist/semantic-consolidation.d.ts +3 -2
  298. package/dist/semantic-consolidation.js +6 -6
  299. package/dist/semantic-rule-promotion.js +5 -5
  300. package/dist/semantic-rule-verifier.d.ts +2 -1
  301. package/dist/semantic-rule-verifier.js +5 -5
  302. package/dist/{service-DMs_dCCg.d.ts → service-8pDy6w8u.d.ts} +2 -2
  303. package/dist/session-observer-bands.d.ts +2 -1
  304. package/dist/session-observer-state.d.ts +2 -1
  305. package/dist/shared-context/manager.d.ts +2 -1
  306. package/dist/signal.d.ts +2 -1
  307. package/dist/source-agent-qualifier.d.ts +2 -1
  308. package/dist/source-agent-qualifier.js +5 -5
  309. package/dist/{storage-CzorrpcN.d.ts → storage-VpDzURiA.d.ts} +1 -1
  310. package/dist/storage.d.ts +3 -2
  311. package/dist/storage.js +4 -4
  312. package/dist/summarizer.d.ts +2 -1
  313. package/dist/summary-snapshot.d.ts +2 -1
  314. package/dist/support-passport/index.d.ts +15 -14
  315. package/dist/support-passport/index.js +16 -16
  316. package/dist/temporal-supersession.d.ts +3 -2
  317. package/dist/temporal-timeline-recall.d.ts +2 -1
  318. package/dist/temporal-validity.d.ts +2 -1
  319. package/dist/threading.d.ts +2 -1
  320. package/dist/tier-migration.d.ts +3 -2
  321. package/dist/tier-routing.d.ts +2 -1
  322. package/dist/topics.d.ts +2 -1
  323. package/dist/transcript.d.ts +2 -1
  324. package/dist/trust-score-stage.d.ts +2 -1
  325. package/dist/trust-score.d.ts +2 -1
  326. package/dist/types-CM86alG1.d.ts +89 -0
  327. package/dist/{types-BP5MC8UU.d.ts → types-D9gKdB79.d.ts} +1 -23
  328. package/dist/types.d.ts +2 -1
  329. package/dist/utility-runtime.d.ts +2 -1
  330. package/dist/verified-recall.js +5 -5
  331. package/dist/who-knows-cli.d.ts +12 -11
  332. package/dist/who-knows-cli.js +6 -6
  333. package/dist/who-knows.d.ts +12 -11
  334. package/dist/who-knows.js +5 -5
  335. package/dist/write-envelope.d.ts +2 -1
  336. package/package.json +12 -2
  337. package/src/location/adapter-isolation.test.ts +44 -0
  338. package/src/location/index.ts +16 -0
  339. package/dist/chunk-7RAJ3GXO.js.map +0 -1
  340. package/dist/chunk-UMDZXW5J.js.map +0 -1
  341. /package/dist/{chunk-TY35YQ6E.js.map → chunk-34BMUGRA.js.map} +0 -0
  342. /package/dist/{chunk-XH4IQVTN.js.map → chunk-4E6IJCLC.js.map} +0 -0
  343. /package/dist/{chunk-LZKCMK3U.js.map → chunk-4GD7YV4Y.js.map} +0 -0
  344. /package/dist/{chunk-YXGU3MDQ.js.map → chunk-7PWWGYGO.js.map} +0 -0
  345. /package/dist/{chunk-XZUCNVGE.js.map → chunk-A4VJKT2H.js.map} +0 -0
  346. /package/dist/{chunk-NO7B6DRB.js.map → chunk-A6LBDIFS.js.map} +0 -0
  347. /package/dist/{chunk-ON2P3SHG.js.map → chunk-CCP6LXQJ.js.map} +0 -0
  348. /package/dist/{chunk-DHKV6E4A.js.map → chunk-CESQ4CMC.js.map} +0 -0
  349. /package/dist/{chunk-RWLRKMZK.js.map → chunk-E6EQTCOQ.js.map} +0 -0
  350. /package/dist/{chunk-DG6MJD7W.js.map → chunk-FFPBTNLC.js.map} +0 -0
  351. /package/dist/{chunk-PE76XIDM.js.map → chunk-GOGHZVY3.js.map} +0 -0
  352. /package/dist/{chunk-6LTCUN3T.js.map → chunk-GQ5OJVTM.js.map} +0 -0
  353. /package/dist/{chunk-GVRLED7R.js.map → chunk-H6B6GPVH.js.map} +0 -0
  354. /package/dist/{chunk-DA2O3F5V.js.map → chunk-HBKFYXBA.js.map} +0 -0
  355. /package/dist/{chunk-DC4FJY2G.js.map → chunk-HDD4RRIX.js.map} +0 -0
  356. /package/dist/{chunk-LOETWOEB.js.map → chunk-IWUN4RZL.js.map} +0 -0
  357. /package/dist/{chunk-246HFJVG.js.map → chunk-JNSLW2O4.js.map} +0 -0
  358. /package/dist/{chunk-VLES5S4K.js.map → chunk-JXMXTV6C.js.map} +0 -0
  359. /package/dist/{chunk-TKI2WOL5.js.map → chunk-KLPVXLQJ.js.map} +0 -0
  360. /package/dist/{chunk-YFQTDE7N.js.map → chunk-LA2MSK23.js.map} +0 -0
  361. /package/dist/{chunk-IJXECCUV.js.map → chunk-LWVG6U7L.js.map} +0 -0
  362. /package/dist/{chunk-A2IBK3TG.js.map → chunk-MXJU4GCA.js.map} +0 -0
  363. /package/dist/{chunk-SB6YBB2V.js.map → chunk-NTERJOFA.js.map} +0 -0
  364. /package/dist/{chunk-H5CGAD7L.js.map → chunk-OXL5QKTV.js.map} +0 -0
  365. /package/dist/{chunk-EJDLQRUO.js.map → chunk-P4CQCL27.js.map} +0 -0
  366. /package/dist/{chunk-44DSGZFF.js.map → chunk-PDKBKBC2.js.map} +0 -0
  367. /package/dist/{chunk-7BVO64UC.js.map → chunk-PHX3ET3C.js.map} +0 -0
  368. /package/dist/{chunk-PVIXAMWM.js.map → chunk-QCNB4BRE.js.map} +0 -0
  369. /package/dist/{chunk-JCSUNXYJ.js.map → chunk-RNKNL5GQ.js.map} +0 -0
  370. /package/dist/{chunk-3LOQN3TO.js.map → chunk-RQYV6M2T.js.map} +0 -0
  371. /package/dist/{chunk-CKZHKFY3.js.map → chunk-RRJUMSFX.js.map} +0 -0
  372. /package/dist/{chunk-C6AKYOFO.js.map → chunk-T6QMNVMO.js.map} +0 -0
  373. /package/dist/{chunk-Z6CJLYXT.js.map → chunk-U56TGYVS.js.map} +0 -0
  374. /package/dist/{chunk-MJRVF7SF.js.map → chunk-UPIKAT5A.js.map} +0 -0
  375. /package/dist/{chunk-KRPE7ANR.js.map → chunk-VNIETTMR.js.map} +0 -0
  376. /package/dist/{chunk-3A46U7XG.js.map → chunk-WHA6ISFX.js.map} +0 -0
  377. /package/dist/{chunk-WBM5NR4E.js.map → chunk-Y5UT73VZ.js.map} +0 -0
  378. /package/dist/{chunk-XACYILRA.js.map → chunk-YHSNAGN3.js.map} +0 -0
  379. /package/dist/{chunk-ZSYE2QVJ.js.map → chunk-YIZRTHHF.js.map} +0 -0
  380. /package/dist/{chunk-2QI2JBLQ.js.map → chunk-ZAI5R6DW.js.map} +0 -0
  381. /package/dist/{chunk-55SJFHVD.js.map → chunk-ZFBZ4QTS.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseEntityFile
3
- } from "./chunk-2QI2JBLQ.js";
3
+ } from "./chunk-ZAI5R6DW.js";
4
4
  import {
5
5
  inferMemoryStatus
6
6
  } from "./chunk-7RJUVTVF.js";
@@ -253,4 +253,4 @@ export {
253
253
  WHO_KNOWS_MCP_TOOLS,
254
254
  handleWhoKnowsHttpQuery
255
255
  };
256
- //# sourceMappingURL=chunk-TKI2WOL5.js.map
256
+ //# sourceMappingURL=chunk-KLPVXLQJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-JCSUNXYJ.js";
3
+ } from "./chunk-RNKNL5GQ.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-YFQTDE7N.js.map
35
+ //# sourceMappingURL=chunk-LA2MSK23.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-55SJFHVD.js";
3
+ } from "./chunk-ZFBZ4QTS.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -470,4 +470,4 @@ export {
470
470
  NamespaceSearchRouter,
471
471
  normalizeQmdResultPath
472
472
  };
473
- //# sourceMappingURL=chunk-IJXECCUV.js.map
473
+ //# sourceMappingURL=chunk-LWVG6U7L.js.map
@@ -1,8 +1,3 @@
1
- import {
2
- coerceBooleanLike,
3
- coerceNumber
4
- } from "./chunk-PQVCH2AE.js";
5
-
6
1
  // src/activity/digest.ts
7
2
  import { createHash } from "crypto";
8
3
  import path from "path";
@@ -325,152 +320,6 @@ function parseMachinesList(raw) {
325
320
  return raw.replace(/^\[/, "").replace(/\]$/, "").split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0);
326
321
  }
327
322
 
328
- // src/activity/config.ts
329
- var EXTRACTION_MODES = ["off", "smart"];
330
- var IMPORTANCE_LEVELS = ["critical", "high", "normal", "low", "trivial"];
331
- var LOOPBACK_HOSTS = { localhost: true, "127.0.0.1": true, "::1": true };
332
- function defaultActivityConfig() {
333
- return {
334
- enabled: false,
335
- timezone: "UTC",
336
- syncDays: 1,
337
- autoSyncIntervalMinutes: 15,
338
- sources: [],
339
- extractionMode: "off",
340
- sourceTrust: 0.6,
341
- autoApproveTrust: 0.8,
342
- reviewTrust: 0.5,
343
- minConfidence: 0.7,
344
- minImportance: "normal",
345
- maxMemoriesPerDay: 0
346
- };
347
- }
348
- function asRecord(value, name) {
349
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
350
- throw new TypeError(`${name} must be an object`);
351
- }
352
- return value;
353
- }
354
- function optionalString(value, name) {
355
- if (value === void 0) return void 0;
356
- if (typeof value !== "string" || value.length === 0) throw new TypeError(`${name} must be a non-empty string`);
357
- return value;
358
- }
359
- function parseUnitInterval(value, key, fallback) {
360
- if (value === void 0) return fallback;
361
- const parsed = coerceNumber(value);
362
- if (parsed === void 0 || !Number.isFinite(parsed) || parsed < 0 || parsed > 1) {
363
- throw new RangeError(`activity.${key} must be a number in [0, 1]`);
364
- }
365
- return parsed;
366
- }
367
- function validateActivityBaseUrl(baseUrl) {
368
- let parsed;
369
- try {
370
- parsed = new URL(baseUrl);
371
- } catch {
372
- throw new RangeError(`activity source baseUrl must be a valid URL: ${baseUrl}`);
373
- }
374
- if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
375
- throw new RangeError("activity source baseUrl must use HTTP or HTTPS");
376
- }
377
- const host = parsed.hostname.replace(/^\[|\]$/g, "");
378
- if (LOOPBACK_HOSTS[host] !== true && !/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(host)) {
379
- throw new RangeError(`activity source baseUrl must target a loopback host (got ${parsed.hostname})`);
380
- }
381
- return parsed;
382
- }
383
- function parseSource(value) {
384
- const raw = asRecord(value, "activity source");
385
- const machineLabel = optionalString(raw.machineLabel, "activity source machineLabel");
386
- const baseUrl = optionalString(raw.baseUrl, "activity source baseUrl");
387
- if (machineLabel === void 0 || baseUrl === void 0) {
388
- throw new TypeError("activity source requires machineLabel and baseUrl");
389
- }
390
- if (machineLabel.trim().length === 0) {
391
- throw new RangeError("activity source machineLabel must not be blank");
392
- }
393
- validateActivityBaseUrl(baseUrl);
394
- const token = optionalString(raw.token, "activity source token");
395
- return { machineLabel, baseUrl, ...token === void 0 ? {} : { token } };
396
- }
397
- function parseActivityConfig(raw) {
398
- const defaults = defaultActivityConfig();
399
- if (raw === void 0 || raw === null) {
400
- return { ...defaults };
401
- }
402
- const config = asRecord(raw, "activity");
403
- const enabledValue = coerceBooleanLike(config.enabled, "activity.enabled");
404
- if (config.enabled !== void 0 && enabledValue === void 0) {
405
- throw new TypeError("activity.enabled must be a boolean");
406
- }
407
- const timezone = optionalString(config.timezone, "activity.timezone") ?? "UTC";
408
- assertValidTimezone(timezone);
409
- const syncDaysValue = coerceNumber(config.syncDays, "activity.syncDays");
410
- if (config.syncDays !== void 0 && syncDaysValue === void 0) {
411
- throw new TypeError("activity.syncDays must be a finite number");
412
- }
413
- const syncDays = syncDaysValue ?? 1;
414
- if (!Number.isInteger(syncDays) || syncDays < 1 || syncDays > 90) {
415
- throw new RangeError("activity.syncDays must be an integer from 1 to 90");
416
- }
417
- const intervalValue = coerceNumber(config.autoSyncIntervalMinutes, "activity.autoSyncIntervalMinutes");
418
- if (config.autoSyncIntervalMinutes !== void 0 && intervalValue === void 0) {
419
- throw new TypeError("activity.autoSyncIntervalMinutes must be a finite number");
420
- }
421
- const autoSyncIntervalMinutes = intervalValue ?? 15;
422
- if (!Number.isInteger(autoSyncIntervalMinutes) || autoSyncIntervalMinutes < 1 || autoSyncIntervalMinutes > 1440) {
423
- throw new RangeError("activity.autoSyncIntervalMinutes must be an integer from 1 to 1440");
424
- }
425
- if (config.sources !== void 0 && !Array.isArray(config.sources)) {
426
- throw new TypeError("activity.sources must be an array");
427
- }
428
- const sources = (config.sources ?? []).map(parseSource);
429
- const labels = /* @__PURE__ */ new Set();
430
- for (const source of sources) {
431
- if (labels.has(source.machineLabel)) {
432
- throw new RangeError(`activity source machineLabel must be unique: ${source.machineLabel}`);
433
- }
434
- labels.add(source.machineLabel);
435
- }
436
- const enabled = enabledValue ?? false;
437
- if (enabled && sources.length === 0) throw new RangeError("activity.enabled requires at least one source");
438
- const extractionMode = config.extractionMode === void 0 ? defaults.extractionMode : config.extractionMode;
439
- if (typeof extractionMode !== "string" || !EXTRACTION_MODES.includes(extractionMode)) {
440
- throw new RangeError(`activity.extractionMode must be one of: ${EXTRACTION_MODES.join(", ")}`);
441
- }
442
- const minImportance = config.minImportance === void 0 ? defaults.minImportance : config.minImportance;
443
- if (typeof minImportance !== "string" || !IMPORTANCE_LEVELS.includes(minImportance)) {
444
- throw new RangeError(`activity.minImportance must be one of: ${IMPORTANCE_LEVELS.join(", ")}`);
445
- }
446
- const rawMaxMemoriesPerDay = config.maxMemoriesPerDay === void 0 ? defaults.maxMemoriesPerDay : config.maxMemoriesPerDay;
447
- const maxMemoriesPerDay = coerceNumber(rawMaxMemoriesPerDay);
448
- if (maxMemoriesPerDay === void 0 || !Number.isInteger(maxMemoriesPerDay) || maxMemoriesPerDay < 0) {
449
- throw new RangeError("activity.maxMemoriesPerDay must be a non-negative integer");
450
- }
451
- const autoApproveTrust = parseUnitInterval(config.autoApproveTrust, "autoApproveTrust", defaults.autoApproveTrust);
452
- const reviewTrust = parseUnitInterval(config.reviewTrust, "reviewTrust", defaults.reviewTrust);
453
- if (reviewTrust >= autoApproveTrust) {
454
- throw new RangeError(
455
- `activity.reviewTrust (${reviewTrust}) must be below autoApproveTrust (${autoApproveTrust})`
456
- );
457
- }
458
- return {
459
- enabled,
460
- timezone,
461
- syncDays,
462
- autoSyncIntervalMinutes,
463
- sources,
464
- extractionMode,
465
- sourceTrust: parseUnitInterval(config.sourceTrust, "sourceTrust", defaults.sourceTrust),
466
- autoApproveTrust,
467
- reviewTrust,
468
- minConfidence: parseUnitInterval(config.minConfidence, "minConfidence", defaults.minConfidence),
469
- minImportance,
470
- maxMemoriesPerDay
471
- };
472
- }
473
-
474
323
  export {
475
324
  ACTIVITY_DIGEST_FORMAT_VERSION,
476
325
  ACTIVITY_DIR_NAME,
@@ -483,9 +332,6 @@ export {
483
332
  hashActivityBody,
484
333
  composeActivityDigestMeta,
485
334
  serializeActivityDigest,
486
- parseActivityDigest,
487
- defaultActivityConfig,
488
- validateActivityBaseUrl,
489
- parseActivityConfig
335
+ parseActivityDigest
490
336
  };
491
- //# sourceMappingURL=chunk-7RAJ3GXO.js.map
337
+ //# sourceMappingURL=chunk-M6L7HI7R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/activity/digest.ts"],"sourcesContent":["/**\n * Deterministic screen-activity day-digest renderer (issue #1899).\n *\n * Renders a day's snapshots into markdown with YAML frontmatter, placed at\n * `<memoryDir>/activity/<date>.md` — outside the memory scan roots but inside\n * the QMD collection root (searchable, never auto-recalled). No LLM: the body\n * is a pure, byte-identical function of its inputs so an unchanged day skips\n * rewrite by contentHash. Day bucketing is DST-aware and half-open\n * [start, end) (AGENTS.md §23); sort keys are total with stable tiebreakers\n * (§12).\n */\n\nimport { createHash } from \"node:crypto\";\nimport path from \"node:path\";\n\nimport type { ActivityDayDigest, ActivityDayMeta, ActivitySnapshot } from \"./types.js\";\n\nexport const ACTIVITY_DIGEST_FORMAT_VERSION = 1;\nexport const ACTIVITY_DIR_NAME = \"activity\";\n\n/** Attribute at most this much dwell to a single snapshot (idle gaps capped). */\nconst MAX_DWELL_MS = 15 * 60_000;\n/** Notable-excerpt caps. */\nconst NOTABLE_MAX_WINDOWS = 10;\nconst NOTABLE_EXCERPT_CHARS = 280;\n\nconst DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nexport function isValidActivityDate(date: string): boolean {\n if (typeof date !== \"string\" || !DATE_PATTERN.test(date)) return false;\n // Reject impossible calendar days (e.g. 2026-02-30, 2026-13-01): the UTC\n // round-trip must reproduce the same Y-M-D, else Date normalized an overflow.\n const parsed = new Date(`${date}T00:00:00Z`);\n return Number.isFinite(parsed.getTime()) && parsed.toISOString().slice(0, 10) === date;\n}\n\nexport function activityDigestPath(memoryDir: string, date: string): string {\n if (!isValidActivityDate(date)) {\n // Never interpolate an unvalidated date into a filesystem path (a `../`\n // would escape <memoryDir>/activity/). Reject loudly.\n throw new RangeError(`Invalid activity date \"${date}\"; expected YYYY-MM-DD.`);\n }\n return path.join(memoryDir, ACTIVITY_DIR_NAME, `${date}.md`);\n}\n\n// ── DST-aware local-day window ──────────────────────────────────────────────\n\nexport function timezoneOffsetIso(instant: Date, timezone: string): string {\n const parts = new Intl.DateTimeFormat(\"en-US\", {\n timeZone: timezone,\n timeZoneName: \"longOffset\",\n }).formatToParts(instant);\n const name = parts.find((part) => part.type === \"timeZoneName\")?.value ?? \"GMT\";\n const match = name.match(/GMT([+-]\\d{2}:\\d{2})?/);\n return match?.[1] ?? \"+00:00\";\n}\n\nexport function assertValidTimezone(timezone: string): void {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: timezone });\n } catch {\n throw new RangeError(`Invalid IANA timezone \"${timezone}\".`);\n }\n}\n\nfunction zonedDayStartIso(date: string, timezone: string): string {\n // The first UTC instant whose local wall-clock is this date at 00:00. Probe\n // several instants across the day to collect every offset in play; keep an\n // offset only if constructing local midnight with it lands back on that same\n // offset (so it is genuinely local midnight, not a wall-clock that never\n // occurred), then take the EARLIEST such instant — the FIRST 00:00 across a\n // DST fall-back that repeats local midnight.\n // Probe the previous UTC day too: for zones east of UTC the requested date's\n // UTC instants all fall after local midnight, so the pre-transition offset\n // valid at the real local 00:00 is only observable on the prior UTC day.\n const prevDate = shiftIsoDate(date, -1);\n const probeOffsets = new Set(\n [\n `${prevDate}T12:00:00Z`,\n `${prevDate}T23:00:00Z`,\n `${date}T00:00:00Z`,\n `${date}T12:00:00Z`,\n `${date}T23:00:00Z`,\n ].map((iso) => timezoneOffsetIso(new Date(iso), timezone)),\n );\n let best: number | null = null;\n for (const offset of probeOffsets) {\n const candidate = Date.parse(`${date}T00:00:00${offset}`);\n if (!Number.isFinite(candidate)) continue;\n // Reject an offset whose local midnight does not actually occur (the wall\n // clock skipped by a spring-forward): the offset in effect at the candidate\n // instant must be the same offset we used to build it.\n if (timezoneOffsetIso(new Date(candidate), timezone) !== offset) continue;\n if (best === null || candidate < best) best = candidate;\n }\n if (best === null) {\n // Local midnight was skipped by a spring-forward at 00:00. Advance to the\n // first local wall-clock minute on this date that actually exists (never\n // backdating to a 00:00 that never occurred), scanning forward up to 3h.\n for (let minute = 1; minute <= 180 && best === null; minute++) {\n const hh = String(Math.floor(minute / 60)).padStart(2, \"0\");\n const mm = String(minute % 60).padStart(2, \"0\");\n for (const offset of probeOffsets) {\n const candidate = Date.parse(`${date}T${hh}:${mm}:00${offset}`);\n if (!Number.isFinite(candidate)) continue;\n if (timezoneOffsetIso(new Date(candidate), timezone) !== offset) continue;\n if (best === null || candidate < best) best = candidate;\n }\n }\n }\n if (best === null) {\n // Degenerate safety net: use the noon-derived offset for a deterministic start.\n const noon = timezoneOffsetIso(new Date(`${date}T12:00:00Z`), timezone);\n best = Date.parse(`${date}T00:00:00${noon}`);\n }\n if (best === null || !Number.isFinite(best)) {\n throw new RangeError(`activity: could not resolve a local day start for \"${date}\" in \"${timezone}\".`);\n }\n return new Date(best).toISOString();\n}\n\nfunction shiftIsoDate(date: string, days: number): string {\n const parsed = new Date(`${date}T00:00:00Z`);\n parsed.setUTCDate(parsed.getUTCDate() + days);\n return parsed.toISOString().slice(0, 10);\n}\n\nfunction nextIsoDate(date: string): string {\n return shiftIsoDate(date, 1);\n}\n\n/** Half-open [start, end) UTC ISO bounds of a local day. */\nexport function activityDayWindow(date: string, timezone: string): { startUtc: string; endUtc: string } {\n if (!isValidActivityDate(date)) {\n throw new RangeError(`Invalid activity date \"${date}\"; expected a real YYYY-MM-DD day.`);\n }\n assertValidTimezone(timezone);\n return {\n startUtc: new Date(zonedDayStartIso(date, timezone)).toISOString(),\n endUtc: new Date(zonedDayStartIso(nextIsoDate(date), timezone)).toISOString(),\n };\n}\n\n// ── Rendering ───────────────────────────────────────────────────────────────\n\nfunction sortedByTime(snapshots: ActivitySnapshot[]): ActivitySnapshot[] {\n return [...snapshots].sort((a, b) => {\n // Compare by parsed instant, not raw string, so mixed valid ISO forms\n // (Z vs offset, varying precision) still order chronologically.\n const at = Date.parse(a.capturedAtUtc);\n const bt = Date.parse(b.capturedAtUtc);\n if (at !== bt && Number.isFinite(at) && Number.isFinite(bt)) return at < bt ? -1 : 1;\n const aid = a.id ?? 0;\n const bid = b.id ?? 0;\n if (aid < bid) return -1;\n if (aid > bid) return 1;\n // Unsaved snapshots (pre-store) both default to id 0; fall back to the\n // content hash (their dedup identity), then app/window, for a total order.\n if (a.contentHash !== b.contentHash) return a.contentHash < b.contentHash ? -1 : 1;\n if (a.app !== b.app) return a.app < b.app ? -1 : 1;\n if (a.windowTitle !== b.windowTitle) return a.windowTitle < b.windowTitle ? -1 : 1;\n return 0;\n });\n}\n\n/**\n * Per-snapshot dwell (gap to that machine's next snapshot, capped), scoped per\n * capture machine so an interleaved snapshot from another machine can't steal\n * or truncate a snapshot's dwell (multi-machine days).\n */\nfunction computeDwell(snapshots: ActivitySnapshot[]): Map<ActivitySnapshot, number> {\n const byMachine = new Map<string, ActivitySnapshot[]>();\n for (const snapshot of snapshots) {\n const list = byMachine.get(snapshot.machine);\n if (list === undefined) byMachine.set(snapshot.machine, [snapshot]);\n else list.push(snapshot);\n }\n const dwell = new Map<ActivitySnapshot, number>();\n for (const list of byMachine.values()) {\n const ordered = sortedByTime(list);\n for (let index = 0; index < ordered.length; index++) {\n const current = ordered[index];\n if (current === undefined) continue;\n const next = ordered[index + 1];\n let value = 0;\n if (next !== undefined) {\n const delta = Date.parse(next.capturedAtUtc) - Date.parse(current.capturedAtUtc);\n if (Number.isFinite(delta) && delta > 0) value = Math.min(delta, MAX_DWELL_MS);\n }\n dwell.set(current, value);\n }\n }\n return dwell;\n}\n\nfunction formatDurationMinutes(ms: number): string {\n return `${Math.round(ms / 60_000)}m`;\n}\n\nfunction clockHhMm(iso: string, timezone: string): string {\n const ms = Date.parse(iso);\n if (!Number.isFinite(ms)) return \"??:??\";\n const parts = new Intl.DateTimeFormat(\"en-GB\", {\n timeZone: timezone,\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false,\n }).formatToParts(new Date(ms));\n const hour = parts.find((p) => p.type === \"hour\")?.value ?? \"00\";\n const minute = parts.find((p) => p.type === \"minute\")?.value ?? \"00\";\n return `${hour}:${minute}`;\n}\n\nfunction collapseWhitespace(text: string): string {\n return text.replace(/\\s+/g, \" \").trim();\n}\n\nfunction perAppSection(ordered: ActivitySnapshot[], dwell: Map<ActivitySnapshot, number>): string {\n const totals = new Map<string, number>();\n for (const snapshot of ordered) {\n totals.set(snapshot.app, (totals.get(snapshot.app) ?? 0) + (dwell.get(snapshot) ?? 0));\n }\n const rows = [...totals.entries()].sort((a, b) => {\n if (b[1] !== a[1]) return b[1] - a[1];\n if (a[0] < b[0]) return -1;\n if (a[0] > b[0]) return 1;\n return 0;\n });\n const lines = [\"## Per-app time\", \"\"];\n if (rows.length === 0) {\n lines.push(\"_No activity recorded._\");\n } else {\n for (const [app, ms] of rows) {\n lines.push(`- ${app}: ${formatDurationMinutes(ms)}`);\n }\n }\n return lines.join(\"\\n\");\n}\n\ninterface TimelineSpan {\n startIso: string;\n machine: string;\n app: string;\n windowTitle: string;\n browserUrl?: string;\n}\n\nfunction timelineSpans(ordered: ActivitySnapshot[]): TimelineSpan[] {\n const spans: TimelineSpan[] = [];\n for (const snapshot of ordered) {\n const last = spans[spans.length - 1];\n if (\n last !== undefined &&\n last.machine === snapshot.machine &&\n last.app === snapshot.app &&\n last.windowTitle === snapshot.windowTitle &&\n last.browserUrl === snapshot.browserUrl\n ) {\n continue;\n }\n spans.push({\n startIso: snapshot.capturedAtUtc,\n machine: snapshot.machine,\n app: snapshot.app,\n windowTitle: snapshot.windowTitle,\n ...(snapshot.browserUrl !== undefined ? { browserUrl: snapshot.browserUrl } : {}),\n });\n }\n return spans;\n}\n\nfunction timelineSection(ordered: ActivitySnapshot[], timezone: string): string {\n const lines = [\"## Timeline\", \"\"];\n const spans = timelineSpans(ordered);\n if (spans.length === 0) {\n lines.push(\"_No activity recorded._\");\n return lines.join(\"\\n\");\n }\n for (const span of spans) {\n const clock = clockHhMm(span.startIso, timezone);\n const window = collapseWhitespace(span.windowTitle);\n const url = span.browserUrl !== undefined ? ` (${collapseWhitespace(span.browserUrl)})` : \"\";\n lines.push(`- [${clock}] ${span.app}${window.length > 0 ? ` — ${window}` : \"\"}${url}`);\n }\n return lines.join(\"\\n\");\n}\n\nfunction notableSection(ordered: ActivitySnapshot[], dwell: Map<ActivitySnapshot, number>): string {\n const withDwell = ordered.map((snapshot) => ({ snapshot, dwell: dwell.get(snapshot) ?? 0 }));\n const ranked = withDwell\n .filter((entry) => collapseWhitespace(entry.snapshot.text).length > 0)\n .sort((a, b) => {\n if (b.dwell !== a.dwell) return b.dwell - a.dwell;\n const at = Date.parse(a.snapshot.capturedAtUtc);\n const bt = Date.parse(b.snapshot.capturedAtUtc);\n if (at !== bt && Number.isFinite(at) && Number.isFinite(bt)) return at < bt ? -1 : 1;\n const idDelta = (a.snapshot.id ?? 0) - (b.snapshot.id ?? 0);\n if (idDelta !== 0) return idDelta;\n if (a.snapshot.contentHash !== b.snapshot.contentHash) {\n return a.snapshot.contentHash < b.snapshot.contentHash ? -1 : 1;\n }\n return 0;\n })\n .slice(0, NOTABLE_MAX_WINDOWS);\n const lines = [\"## Notable\", \"\"];\n if (ranked.length === 0) {\n lines.push(\"_No notable text captured._\");\n return lines.join(\"\\n\");\n }\n for (const { snapshot } of ranked) {\n const excerpt = collapseWhitespace(snapshot.text).slice(0, NOTABLE_EXCERPT_CHARS);\n lines.push(`- **${snapshot.app}** — ${excerpt}`);\n }\n return lines.join(\"\\n\");\n}\n\nexport function composeActivityDigestBody(\n date: string,\n timezone: string,\n snapshots: ActivitySnapshot[],\n): string {\n assertValidTimezone(timezone);\n const ordered = sortedByTime(snapshots);\n const dwell = computeDwell(ordered);\n return [\n `# Activity — ${date}`,\n \"\",\n perAppSection(ordered, dwell),\n \"\",\n timelineSection(ordered, timezone),\n \"\",\n notableSection(ordered, dwell),\n \"\",\n ].join(\"\\n\");\n}\n\nexport function hashActivityBody(body: string): string {\n return createHash(\"sha256\").update(body, \"utf8\").digest(\"hex\");\n}\n\nexport function composeActivityDigestMeta(\n date: string,\n machines: string[],\n snapshots: ActivitySnapshot[],\n body: string,\n): ActivityDayMeta {\n const uniqueMachines = [...new Set(machines)].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));\n return {\n kind: \"activity-digest\",\n date,\n machines: uniqueMachines,\n snapshotCount: snapshots.length,\n contentHash: hashActivityBody(body),\n formatVersion: ACTIVITY_DIGEST_FORMAT_VERSION,\n };\n}\n\nexport function serializeActivityDigest(meta: ActivityDayMeta, body: string): string {\n const frontmatter = [\n \"---\",\n `kind: ${meta.kind}`,\n `date: ${meta.date}`,\n `machines: ${JSON.stringify(meta.machines)}`,\n `snapshotCount: ${meta.snapshotCount}`,\n `contentHash: ${meta.contentHash}`,\n `formatVersion: ${meta.formatVersion}`,\n \"---\",\n \"\",\n ].join(\"\\n\");\n return `${frontmatter}${body}`;\n}\n\nexport function parseActivityDigest(raw: string): ActivityDayDigest | null {\n if (typeof raw !== \"string\" || !raw.startsWith(\"---\\n\")) return null;\n const end = raw.indexOf(\"\\n---\\n\", 4);\n if (end === -1) return null;\n const frontmatter = raw.slice(4, end);\n const body = raw.slice(end + 5).replace(/^\\n/, \"\");\n const fields = new Map<string, string>();\n for (const line of frontmatter.split(\"\\n\")) {\n const idx = line.indexOf(\":\");\n if (idx === -1) continue;\n fields.set(line.slice(0, idx).trim(), line.slice(idx + 1).trim());\n }\n const date = fields.get(\"date\");\n const contentHash = fields.get(\"contentHash\");\n if (date === undefined || !isValidActivityDate(date) || contentHash === undefined) return null;\n if (fields.get(\"kind\") !== \"activity-digest\") return null;\n const machines = parseMachinesList(fields.get(\"machines\") ?? \"[]\");\n const snapshotCount = parseNonNegativeInt(fields.get(\"snapshotCount\"));\n const formatVersion = parseNonNegativeInt(fields.get(\"formatVersion\"));\n if (snapshotCount === null || formatVersion === null) return null;\n return {\n meta: {\n kind: \"activity-digest\",\n date,\n machines,\n snapshotCount,\n contentHash,\n formatVersion,\n },\n body,\n };\n}\n\nfunction parseNonNegativeInt(value: string | undefined): number | null {\n if (value === undefined) return null;\n const trimmed = value.trim();\n if (!/^\\d+$/.test(trimmed)) return null;\n const parsed = Number(trimmed);\n return Number.isSafeInteger(parsed) ? parsed : null;\n}\n\nfunction parseMachinesList(raw: string): string[] {\n try {\n const parsed: unknown = JSON.parse(raw);\n if (Array.isArray(parsed)) {\n return parsed.filter((entry): entry is string => typeof entry === \"string\");\n }\n } catch {\n // Legacy unquoted inline form (`[a, b]`) — fall through to the split parse.\n }\n return raw\n .replace(/^\\[/, \"\")\n .replace(/\\]$/, \"\")\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n}\n"],"mappings":";AAYA,SAAS,kBAAkB;AAC3B,OAAO,UAAU;AAIV,IAAM,iCAAiC;AACvC,IAAM,oBAAoB;AAGjC,IAAM,eAAe,KAAK;AAE1B,IAAM,sBAAsB;AAC5B,IAAM,wBAAwB;AAE9B,IAAM,eAAe;AAEd,SAAS,oBAAoB,MAAuB;AACzD,MAAI,OAAO,SAAS,YAAY,CAAC,aAAa,KAAK,IAAI,EAAG,QAAO;AAGjE,QAAM,SAAS,oBAAI,KAAK,GAAG,IAAI,YAAY;AAC3C,SAAO,OAAO,SAAS,OAAO,QAAQ,CAAC,KAAK,OAAO,YAAY,EAAE,MAAM,GAAG,EAAE,MAAM;AACpF;AAEO,SAAS,mBAAmB,WAAmB,MAAsB;AAC1E,MAAI,CAAC,oBAAoB,IAAI,GAAG;AAG9B,UAAM,IAAI,WAAW,0BAA0B,IAAI,yBAAyB;AAAA,EAC9E;AACA,SAAO,KAAK,KAAK,WAAW,mBAAmB,GAAG,IAAI,KAAK;AAC7D;AAIO,SAAS,kBAAkB,SAAe,UAA0B;AACzE,QAAM,QAAQ,IAAI,KAAK,eAAe,SAAS;AAAA,IAC7C,UAAU;AAAA,IACV,cAAc;AAAA,EAChB,CAAC,EAAE,cAAc,OAAO;AACxB,QAAM,OAAO,MAAM,KAAK,CAAC,SAAS,KAAK,SAAS,cAAc,GAAG,SAAS;AAC1E,QAAM,QAAQ,KAAK,MAAM,uBAAuB;AAChD,SAAO,QAAQ,CAAC,KAAK;AACvB;AAEO,SAAS,oBAAoB,UAAwB;AAC1D,MAAI;AACF,QAAI,KAAK,eAAe,SAAS,EAAE,UAAU,SAAS,CAAC;AAAA,EACzD,QAAQ;AACN,UAAM,IAAI,WAAW,0BAA0B,QAAQ,IAAI;AAAA,EAC7D;AACF;AAEA,SAAS,iBAAiB,MAAc,UAA0B;AAUhE,QAAM,WAAW,aAAa,MAAM,EAAE;AACtC,QAAM,eAAe,IAAI;AAAA,IACvB;AAAA,MACE,GAAG,QAAQ;AAAA,MACX,GAAG,QAAQ;AAAA,MACX,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,IACT,EAAE,IAAI,CAAC,QAAQ,kBAAkB,IAAI,KAAK,GAAG,GAAG,QAAQ,CAAC;AAAA,EAC3D;AACA,MAAI,OAAsB;AAC1B,aAAW,UAAU,cAAc;AACjC,UAAM,YAAY,KAAK,MAAM,GAAG,IAAI,YAAY,MAAM,EAAE;AACxD,QAAI,CAAC,OAAO,SAAS,SAAS,EAAG;AAIjC,QAAI,kBAAkB,IAAI,KAAK,SAAS,GAAG,QAAQ,MAAM,OAAQ;AACjE,QAAI,SAAS,QAAQ,YAAY,KAAM,QAAO;AAAA,EAChD;AACA,MAAI,SAAS,MAAM;AAIjB,aAAS,SAAS,GAAG,UAAU,OAAO,SAAS,MAAM,UAAU;AAC7D,YAAM,KAAK,OAAO,KAAK,MAAM,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,GAAG;AAC1D,YAAM,KAAK,OAAO,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAC9C,iBAAW,UAAU,cAAc;AACjC,cAAM,YAAY,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,MAAM,EAAE;AAC9D,YAAI,CAAC,OAAO,SAAS,SAAS,EAAG;AACjC,YAAI,kBAAkB,IAAI,KAAK,SAAS,GAAG,QAAQ,MAAM,OAAQ;AACjE,YAAI,SAAS,QAAQ,YAAY,KAAM,QAAO;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AACA,MAAI,SAAS,MAAM;AAEjB,UAAM,OAAO,kBAAkB,oBAAI,KAAK,GAAG,IAAI,YAAY,GAAG,QAAQ;AACtE,WAAO,KAAK,MAAM,GAAG,IAAI,YAAY,IAAI,EAAE;AAAA,EAC7C;AACA,MAAI,SAAS,QAAQ,CAAC,OAAO,SAAS,IAAI,GAAG;AAC3C,UAAM,IAAI,WAAW,sDAAsD,IAAI,SAAS,QAAQ,IAAI;AAAA,EACtG;AACA,SAAO,IAAI,KAAK,IAAI,EAAE,YAAY;AACpC;AAEA,SAAS,aAAa,MAAc,MAAsB;AACxD,QAAM,SAAS,oBAAI,KAAK,GAAG,IAAI,YAAY;AAC3C,SAAO,WAAW,OAAO,WAAW,IAAI,IAAI;AAC5C,SAAO,OAAO,YAAY,EAAE,MAAM,GAAG,EAAE;AACzC;AAEA,SAAS,YAAY,MAAsB;AACzC,SAAO,aAAa,MAAM,CAAC;AAC7B;AAGO,SAAS,kBAAkB,MAAc,UAAwD;AACtG,MAAI,CAAC,oBAAoB,IAAI,GAAG;AAC9B,UAAM,IAAI,WAAW,0BAA0B,IAAI,oCAAoC;AAAA,EACzF;AACA,sBAAoB,QAAQ;AAC5B,SAAO;AAAA,IACL,UAAU,IAAI,KAAK,iBAAiB,MAAM,QAAQ,CAAC,EAAE,YAAY;AAAA,IACjE,QAAQ,IAAI,KAAK,iBAAiB,YAAY,IAAI,GAAG,QAAQ,CAAC,EAAE,YAAY;AAAA,EAC9E;AACF;AAIA,SAAS,aAAa,WAAmD;AACvE,SAAO,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,MAAM;AAGnC,UAAM,KAAK,KAAK,MAAM,EAAE,aAAa;AACrC,UAAM,KAAK,KAAK,MAAM,EAAE,aAAa;AACrC,QAAI,OAAO,MAAM,OAAO,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,EAAG,QAAO,KAAK,KAAK,KAAK;AACnF,UAAM,MAAM,EAAE,MAAM;AACpB,UAAM,MAAM,EAAE,MAAM;AACpB,QAAI,MAAM,IAAK,QAAO;AACtB,QAAI,MAAM,IAAK,QAAO;AAGtB,QAAI,EAAE,gBAAgB,EAAE,YAAa,QAAO,EAAE,cAAc,EAAE,cAAc,KAAK;AACjF,QAAI,EAAE,QAAQ,EAAE,IAAK,QAAO,EAAE,MAAM,EAAE,MAAM,KAAK;AACjD,QAAI,EAAE,gBAAgB,EAAE,YAAa,QAAO,EAAE,cAAc,EAAE,cAAc,KAAK;AACjF,WAAO;AAAA,EACT,CAAC;AACH;AAOA,SAAS,aAAa,WAA8D;AAClF,QAAM,YAAY,oBAAI,IAAgC;AACtD,aAAW,YAAY,WAAW;AAChC,UAAM,OAAO,UAAU,IAAI,SAAS,OAAO;AAC3C,QAAI,SAAS,OAAW,WAAU,IAAI,SAAS,SAAS,CAAC,QAAQ,CAAC;AAAA,QAC7D,MAAK,KAAK,QAAQ;AAAA,EACzB;AACA,QAAM,QAAQ,oBAAI,IAA8B;AAChD,aAAW,QAAQ,UAAU,OAAO,GAAG;AACrC,UAAM,UAAU,aAAa,IAAI;AACjC,aAAS,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS;AACnD,YAAM,UAAU,QAAQ,KAAK;AAC7B,UAAI,YAAY,OAAW;AAC3B,YAAM,OAAO,QAAQ,QAAQ,CAAC;AAC9B,UAAI,QAAQ;AACZ,UAAI,SAAS,QAAW;AACtB,cAAM,QAAQ,KAAK,MAAM,KAAK,aAAa,IAAI,KAAK,MAAM,QAAQ,aAAa;AAC/E,YAAI,OAAO,SAAS,KAAK,KAAK,QAAQ,EAAG,SAAQ,KAAK,IAAI,OAAO,YAAY;AAAA,MAC/E;AACA,YAAM,IAAI,SAAS,KAAK;AAAA,IAC1B;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,sBAAsB,IAAoB;AACjD,SAAO,GAAG,KAAK,MAAM,KAAK,GAAM,CAAC;AACnC;AAEA,SAAS,UAAU,KAAa,UAA0B;AACxD,QAAM,KAAK,KAAK,MAAM,GAAG;AACzB,MAAI,CAAC,OAAO,SAAS,EAAE,EAAG,QAAO;AACjC,QAAM,QAAQ,IAAI,KAAK,eAAe,SAAS;AAAA,IAC7C,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV,CAAC,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC;AAC7B,QAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG,SAAS;AAC5D,QAAM,SAAS,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,QAAQ,GAAG,SAAS;AAChE,SAAO,GAAG,IAAI,IAAI,MAAM;AAC1B;AAEA,SAAS,mBAAmB,MAAsB;AAChD,SAAO,KAAK,QAAQ,QAAQ,GAAG,EAAE,KAAK;AACxC;AAEA,SAAS,cAAc,SAA6B,OAA8C;AAChG,QAAM,SAAS,oBAAI,IAAoB;AACvC,aAAW,YAAY,SAAS;AAC9B,WAAO,IAAI,SAAS,MAAM,OAAO,IAAI,SAAS,GAAG,KAAK,MAAM,MAAM,IAAI,QAAQ,KAAK,EAAE;AAAA,EACvF;AACA,QAAM,OAAO,CAAC,GAAG,OAAO,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM;AAChD,QAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAG,QAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACpC,QAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAG,QAAO;AACxB,QAAI,EAAE,CAAC,IAAI,EAAE,CAAC,EAAG,QAAO;AACxB,WAAO;AAAA,EACT,CAAC;AACD,QAAM,QAAQ,CAAC,mBAAmB,EAAE;AACpC,MAAI,KAAK,WAAW,GAAG;AACrB,UAAM,KAAK,yBAAyB;AAAA,EACtC,OAAO;AACL,eAAW,CAAC,KAAK,EAAE,KAAK,MAAM;AAC5B,YAAM,KAAK,KAAK,GAAG,KAAK,sBAAsB,EAAE,CAAC,EAAE;AAAA,IACrD;AAAA,EACF;AACA,SAAO,MAAM,KAAK,IAAI;AACxB;AAUA,SAAS,cAAc,SAA6C;AAClE,QAAM,QAAwB,CAAC;AAC/B,aAAW,YAAY,SAAS;AAC9B,UAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,QACE,SAAS,UACT,KAAK,YAAY,SAAS,WAC1B,KAAK,QAAQ,SAAS,OACtB,KAAK,gBAAgB,SAAS,eAC9B,KAAK,eAAe,SAAS,YAC7B;AACA;AAAA,IACF;AACA,UAAM,KAAK;AAAA,MACT,UAAU,SAAS;AAAA,MACnB,SAAS,SAAS;AAAA,MAClB,KAAK,SAAS;AAAA,MACd,aAAa,SAAS;AAAA,MACtB,GAAI,SAAS,eAAe,SAAY,EAAE,YAAY,SAAS,WAAW,IAAI,CAAC;AAAA,IACjF,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAEA,SAAS,gBAAgB,SAA6B,UAA0B;AAC9E,QAAM,QAAQ,CAAC,eAAe,EAAE;AAChC,QAAM,QAAQ,cAAc,OAAO;AACnC,MAAI,MAAM,WAAW,GAAG;AACtB,UAAM,KAAK,yBAAyB;AACpC,WAAO,MAAM,KAAK,IAAI;AAAA,EACxB;AACA,aAAW,QAAQ,OAAO;AACxB,UAAM,QAAQ,UAAU,KAAK,UAAU,QAAQ;AAC/C,UAAM,SAAS,mBAAmB,KAAK,WAAW;AAClD,UAAM,MAAM,KAAK,eAAe,SAAY,KAAK,mBAAmB,KAAK,UAAU,CAAC,MAAM;AAC1F,UAAM,KAAK,MAAM,KAAK,KAAK,KAAK,GAAG,GAAG,OAAO,SAAS,IAAI,WAAM,MAAM,KAAK,EAAE,GAAG,GAAG,EAAE;AAAA,EACvF;AACA,SAAO,MAAM,KAAK,IAAI;AACxB;AAEA,SAAS,eAAe,SAA6B,OAA8C;AACjG,QAAM,YAAY,QAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,OAAO,MAAM,IAAI,QAAQ,KAAK,EAAE,EAAE;AAC3F,QAAM,SAAS,UACZ,OAAO,CAAC,UAAU,mBAAmB,MAAM,SAAS,IAAI,EAAE,SAAS,CAAC,EACpE,KAAK,CAAC,GAAG,MAAM;AACd,QAAI,EAAE,UAAU,EAAE,MAAO,QAAO,EAAE,QAAQ,EAAE;AAC5C,UAAM,KAAK,KAAK,MAAM,EAAE,SAAS,aAAa;AAC9C,UAAM,KAAK,KAAK,MAAM,EAAE,SAAS,aAAa;AAC9C,QAAI,OAAO,MAAM,OAAO,SAAS,EAAE,KAAK,OAAO,SAAS,EAAE,EAAG,QAAO,KAAK,KAAK,KAAK;AACnF,UAAM,WAAW,EAAE,SAAS,MAAM,MAAM,EAAE,SAAS,MAAM;AACzD,QAAI,YAAY,EAAG,QAAO;AAC1B,QAAI,EAAE,SAAS,gBAAgB,EAAE,SAAS,aAAa;AACrD,aAAO,EAAE,SAAS,cAAc,EAAE,SAAS,cAAc,KAAK;AAAA,IAChE;AACA,WAAO;AAAA,EACT,CAAC,EACA,MAAM,GAAG,mBAAmB;AAC/B,QAAM,QAAQ,CAAC,cAAc,EAAE;AAC/B,MAAI,OAAO,WAAW,GAAG;AACvB,UAAM,KAAK,6BAA6B;AACxC,WAAO,MAAM,KAAK,IAAI;AAAA,EACxB;AACA,aAAW,EAAE,SAAS,KAAK,QAAQ;AACjC,UAAM,UAAU,mBAAmB,SAAS,IAAI,EAAE,MAAM,GAAG,qBAAqB;AAChF,UAAM,KAAK,OAAO,SAAS,GAAG,aAAQ,OAAO,EAAE;AAAA,EACjD;AACA,SAAO,MAAM,KAAK,IAAI;AACxB;AAEO,SAAS,0BACd,MACA,UACA,WACQ;AACR,sBAAoB,QAAQ;AAC5B,QAAM,UAAU,aAAa,SAAS;AACtC,QAAM,QAAQ,aAAa,OAAO;AAClC,SAAO;AAAA,IACL,qBAAgB,IAAI;AAAA,IACpB;AAAA,IACA,cAAc,SAAS,KAAK;AAAA,IAC5B;AAAA,IACA,gBAAgB,SAAS,QAAQ;AAAA,IACjC;AAAA,IACA,eAAe,SAAS,KAAK;AAAA,IAC7B;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEO,SAAS,iBAAiB,MAAsB;AACrD,SAAO,WAAW,QAAQ,EAAE,OAAO,MAAM,MAAM,EAAE,OAAO,KAAK;AAC/D;AAEO,SAAS,0BACd,MACA,UACA,WACA,MACiB;AACjB,QAAM,iBAAiB,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,MAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAE;AACzF,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,UAAU;AAAA,IACV,eAAe,UAAU;AAAA,IACzB,aAAa,iBAAiB,IAAI;AAAA,IAClC,eAAe;AAAA,EACjB;AACF;AAEO,SAAS,wBAAwB,MAAuB,MAAsB;AACnF,QAAM,cAAc;AAAA,IAClB;AAAA,IACA,SAAS,KAAK,IAAI;AAAA,IAClB,SAAS,KAAK,IAAI;AAAA,IAClB,aAAa,KAAK,UAAU,KAAK,QAAQ,CAAC;AAAA,IAC1C,kBAAkB,KAAK,aAAa;AAAA,IACpC,gBAAgB,KAAK,WAAW;AAAA,IAChC,kBAAkB,KAAK,aAAa;AAAA,IACpC;AAAA,IACA;AAAA,EACF,EAAE,KAAK,IAAI;AACX,SAAO,GAAG,WAAW,GAAG,IAAI;AAC9B;AAEO,SAAS,oBAAoB,KAAuC;AACzE,MAAI,OAAO,QAAQ,YAAY,CAAC,IAAI,WAAW,OAAO,EAAG,QAAO;AAChE,QAAM,MAAM,IAAI,QAAQ,WAAW,CAAC;AACpC,MAAI,QAAQ,GAAI,QAAO;AACvB,QAAM,cAAc,IAAI,MAAM,GAAG,GAAG;AACpC,QAAM,OAAO,IAAI,MAAM,MAAM,CAAC,EAAE,QAAQ,OAAO,EAAE;AACjD,QAAM,SAAS,oBAAI,IAAoB;AACvC,aAAW,QAAQ,YAAY,MAAM,IAAI,GAAG;AAC1C,UAAM,MAAM,KAAK,QAAQ,GAAG;AAC5B,QAAI,QAAQ,GAAI;AAChB,WAAO,IAAI,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,KAAK,MAAM,MAAM,CAAC,EAAE,KAAK,CAAC;AAAA,EAClE;AACA,QAAM,OAAO,OAAO,IAAI,MAAM;AAC9B,QAAM,cAAc,OAAO,IAAI,aAAa;AAC5C,MAAI,SAAS,UAAa,CAAC,oBAAoB,IAAI,KAAK,gBAAgB,OAAW,QAAO;AAC1F,MAAI,OAAO,IAAI,MAAM,MAAM,kBAAmB,QAAO;AACrD,QAAM,WAAW,kBAAkB,OAAO,IAAI,UAAU,KAAK,IAAI;AACjE,QAAM,gBAAgB,oBAAoB,OAAO,IAAI,eAAe,CAAC;AACrE,QAAM,gBAAgB,oBAAoB,OAAO,IAAI,eAAe,CAAC;AACrE,MAAI,kBAAkB,QAAQ,kBAAkB,KAAM,QAAO;AAC7D,SAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,oBAAoB,OAA0C;AACrE,MAAI,UAAU,OAAW,QAAO;AAChC,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,CAAC,QAAQ,KAAK,OAAO,EAAG,QAAO;AACnC,QAAM,SAAS,OAAO,OAAO;AAC7B,SAAO,OAAO,cAAc,MAAM,IAAI,SAAS;AACjD;AAEA,SAAS,kBAAkB,KAAuB;AAChD,MAAI;AACF,UAAM,SAAkB,KAAK,MAAM,GAAG;AACtC,QAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,aAAO,OAAO,OAAO,CAAC,UAA2B,OAAO,UAAU,QAAQ;AAAA,IAC5E;AAAA,EACF,QAAQ;AAAA,EAER;AACA,SAAO,IACJ,QAAQ,OAAO,EAAE,EACjB,QAAQ,OAAO,EAAE,EACjB,MAAM,GAAG,EACT,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,EAC3B,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC;AACvC;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-2QI2JBLQ.js";
3
+ } from "./chunk-ZAI5R6DW.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-A2IBK3TG.js.map
122
+ //# sourceMappingURL=chunk-MXJU4GCA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listNamespaces
3
- } from "./chunk-CKZHKFY3.js";
3
+ } from "./chunk-RRJUMSFX.js";
4
4
  import {
5
5
  capabilityAllowsNamespace
6
6
  } from "./chunk-MZWSOLMT.js";
@@ -282,4 +282,4 @@ export {
282
282
  computeServiceCorpusWatermarks,
283
283
  computeServiceCorpusCensus
284
284
  };
285
- //# sourceMappingURL=chunk-SB6YBB2V.js.map
285
+ //# sourceMappingURL=chunk-NTERJOFA.js.map
@@ -296,4 +296,4 @@ async function searchHarmonicRetrieval(options) {
296
296
  export {
297
297
  searchHarmonicRetrieval
298
298
  };
299
- //# sourceMappingURL=chunk-H5CGAD7L.js.map
299
+ //# sourceMappingURL=chunk-OXL5QKTV.js.map
@@ -2,7 +2,7 @@ import {
2
2
  SupportPassportError,
3
3
  SupportPassportOwnerCreateGrantRequestSchema,
4
4
  getOperation
5
- } from "./chunk-XACYILRA.js";
5
+ } from "./chunk-YHSNAGN3.js";
6
6
 
7
7
  // src/support-passport/access-http.ts
8
8
  var OWNER_ROOT = "/engram/v1/support-passport";
@@ -137,4 +137,4 @@ export {
137
137
  SUPPORT_PASSPORT_OWNER_HTTP_ROUTES,
138
138
  handleSupportPassportOwnerHttp
139
139
  };
140
- //# sourceMappingURL=chunk-EJDLQRUO.js.map
140
+ //# sourceMappingURL=chunk-P4CQCL27.js.map
@@ -3,7 +3,7 @@ import {
3
3
  getOperation,
4
4
  operationRequiresAuthorizedNamespace,
5
5
  operationUsesPrincipalNamespace
6
- } from "./chunk-XACYILRA.js";
6
+ } from "./chunk-YHSNAGN3.js";
7
7
  import {
8
8
  assertOperationAuthorizationAllowed
9
9
  } from "./chunk-MZWSOLMT.js";
@@ -60,4 +60,4 @@ export {
60
60
  authorizationProbeNamespaces,
61
61
  authorizationProbeRequiresPrincipalNamespace
62
62
  };
63
- //# sourceMappingURL=chunk-44DSGZFF.js.map
63
+ //# sourceMappingURL=chunk-PDKBKBC2.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-RDFF2NAU.js";
5
5
  import {
6
6
  StorageManager
7
- } from "./chunk-2QI2JBLQ.js";
7
+ } from "./chunk-ZAI5R6DW.js";
8
8
  import {
9
9
  excludeSupportPassportPrivateMemories
10
10
  } from "./chunk-XDL5CYZN.js";
@@ -138,4 +138,4 @@ export {
138
138
  runCodexMaterialize,
139
139
  runPostConsolidationMaterialize
140
140
  };
141
- //# sourceMappingURL=chunk-7BVO64UC.js.map
141
+ //# sourceMappingURL=chunk-PHX3ET3C.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-UYCIS6V5.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-2QI2JBLQ.js";
10
+ } from "./chunk-ZAI5R6DW.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-PVIXAMWM.js.map
1286
+ //# sourceMappingURL=chunk-QCNB4BRE.js.map
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  listMemoryGovernanceRuns,
9
9
  readMemoryGovernanceRunArtifact
10
- } from "./chunk-3A46U7XG.js";
10
+ } from "./chunk-WHA6ISFX.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-2QI2JBLQ.js";
13
+ } from "./chunk-ZAI5R6DW.js";
14
14
  import {
15
15
  normalizeProjectionPreview,
16
16
  normalizeProjectionTags
@@ -1005,4 +1005,4 @@ export {
1005
1005
  verifyMemoryProjection,
1006
1006
  repairMemoryProjection
1007
1007
  };
1008
- //# sourceMappingURL=chunk-JCSUNXYJ.js.map
1008
+ //# sourceMappingURL=chunk-RNKNL5GQ.js.map
@@ -25,10 +25,10 @@ import {
25
25
  } from "./chunk-GEULB2VI.js";
26
26
  import {
27
27
  getOperation
28
- } from "./chunk-XACYILRA.js";
28
+ } from "./chunk-YHSNAGN3.js";
29
29
  import {
30
30
  WHO_KNOWS_MCP_TOOLS
31
- } from "./chunk-TKI2WOL5.js";
31
+ } from "./chunk-KLPVXLQJ.js";
32
32
  import {
33
33
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
34
34
  } from "./chunk-XDL5CYZN.js";
@@ -3955,4 +3955,4 @@ export {
3955
3955
  MCP_SUPPORTED_PROTOCOL_VERSIONS,
3956
3956
  EngramMcpServer
3957
3957
  };
3958
- //# sourceMappingURL=chunk-3LOQN3TO.js.map
3958
+ //# sourceMappingURL=chunk-RQYV6M2T.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  NamespaceStorageRouter
3
- } from "./chunk-GVRLED7R.js";
3
+ } from "./chunk-H6B6GPVH.js";
4
4
  import {
5
5
  namespaceCollectionName
6
- } from "./chunk-IJXECCUV.js";
6
+ } from "./chunk-LWVG6U7L.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-CKZHKFY3.js.map
216
+ //# sourceMappingURL=chunk-RRJUMSFX.js.map
@@ -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-XACYILRA.js";
4
+ } from "./chunk-YHSNAGN3.js";
5
5
  import {
6
6
  SUPPORT_PASSPORT_SOURCE_MEMORY_ID_MAX_LENGTH
7
7
  } from "./chunk-XDL5CYZN.js";
@@ -343,4 +343,4 @@ export {
343
343
  parseSupportPassportModelJob,
344
344
  SupportPassportModelBridge
345
345
  };
346
- //# sourceMappingURL=chunk-C6AKYOFO.js.map
346
+ //# sourceMappingURL=chunk-T6QMNVMO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  externalWikiSearchOperation
3
- } from "./chunk-WBM5NR4E.js";
3
+ } from "./chunk-Y5UT73VZ.js";
4
4
  import {
5
5
  memoryStoreRequestSchema
6
6
  } from "./chunk-5HK3CJAR.js";
@@ -10,7 +10,7 @@ import {
10
10
  DELTA_SUBCOMMANDS,
11
11
  defineOperation,
12
12
  isCodegraphToolName
13
- } from "./chunk-XACYILRA.js";
13
+ } from "./chunk-YHSNAGN3.js";
14
14
  import {
15
15
  serializeMutations,
16
16
  withHeldFileLock
@@ -1818,4 +1818,4 @@ export {
1818
1818
  codegraphIngestTracesOperation,
1819
1819
  REGISTERED_OPERATIONS
1820
1820
  };
1821
- //# sourceMappingURL=chunk-Z6CJLYXT.js.map
1821
+ //# sourceMappingURL=chunk-U56TGYVS.js.map
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  ActivityStore,
15
15
  MaintenanceScheduler
16
- } from "./chunk-7V3AZWWZ.js";
16
+ } from "./chunk-K7JMKLKV.js";
17
17
  import {
18
18
  runPeerProfileReasoner
19
19
  } from "./chunk-I74SUMNI.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  CompoundingEngine,
34
34
  defaultTierMigrationCycleBudget
35
- } from "./chunk-PVIXAMWM.js";
35
+ } from "./chunk-QCNB4BRE.js";
36
36
  import {
37
37
  SharedContextManager
38
38
  } from "./chunk-VI637ILW.js";
@@ -200,7 +200,7 @@ import {
200
200
  buildEntityRecallSection,
201
201
  entityRecentTranscriptLookbackHours,
202
202
  readRecentEntityTranscriptEntries
203
- } from "./chunk-KRPE7ANR.js";
203
+ } from "./chunk-VNIETTMR.js";
204
204
  import {
205
205
  formatDaySummaryMemories
206
206
  } from "./chunk-LVXBC6YB.js";
@@ -209,14 +209,14 @@ import {
209
209
  } from "./chunk-VY47VI2T.js";
210
210
  import {
211
211
  refreshConvergedNamespaces
212
- } from "./chunk-YFQTDE7N.js";
212
+ } from "./chunk-LA2MSK23.js";
213
213
  import {
214
214
  builtInConnectorPackageSpecifier,
215
215
  ensureBuiltInWearableConnectors,
216
216
  getWearableConnector,
217
217
  listWearableConnectors,
218
218
  screenCandidateFact
219
- } from "./chunk-VLES5S4K.js";
219
+ } from "./chunk-JXMXTV6C.js";
220
220
  import {
221
221
  normalizeReplaySessionKey
222
222
  } from "./chunk-AJVLDJU6.js";
@@ -226,14 +226,14 @@ import {
226
226
  import {
227
227
  compareVerifiedEpisodeResults,
228
228
  searchVerifiedEpisodes
229
- } from "./chunk-NO7B6DRB.js";
229
+ } from "./chunk-A6LBDIFS.js";
230
230
  import {
231
231
  ThreadingManager
232
232
  } from "./chunk-OJP3N7UK.js";
233
233
  import {
234
234
  compareVerifiedSemanticRuleResults,
235
235
  searchVerifiedSemanticRules
236
- } from "./chunk-A2IBK3TG.js";
236
+ } from "./chunk-MXJU4GCA.js";
237
237
  import {
238
238
  searchWorkProductLedgerEntries
239
239
  } from "./chunk-NRLELHAY.js";
@@ -246,17 +246,17 @@ import {
246
246
  import {
247
247
  runNamespaceMaintenanceFanout,
248
248
  summarizeNamespaceMaintenanceHealth
249
- } from "./chunk-XZUCNVGE.js";
249
+ } from "./chunk-A4VJKT2H.js";
250
250
  import {
251
251
  planNamespaceMaintenance
252
- } from "./chunk-PE76XIDM.js";
252
+ } from "./chunk-GOGHZVY3.js";
253
253
  import {
254
254
  isAboveImportanceThreshold,
255
255
  scoreImportance
256
256
  } from "./chunk-UOBPK2OS.js";
257
257
  import {
258
258
  searchHarmonicRetrieval
259
- } from "./chunk-H5CGAD7L.js";
259
+ } from "./chunk-OXL5QKTV.js";
260
260
  import {
261
261
  EXTRACTION_JUDGE_VERDICT_CATEGORY,
262
262
  recordJudgeVerdict
@@ -287,7 +287,7 @@ import {
287
287
  materializeAfterSemanticConsolidation,
288
288
  parseConsolidationResponse,
289
289
  parseOperatorAwareConsolidationResponse
290
- } from "./chunk-246HFJVG.js";
290
+ } from "./chunk-JNSLW2O4.js";
291
291
  import {
292
292
  BootstrapEngine
293
293
  } from "./chunk-MYVPLJOO.js";
@@ -305,7 +305,7 @@ import {
305
305
  } from "./chunk-6TBIWIAG.js";
306
306
  import {
307
307
  detectMeetings
308
- } from "./chunk-UMDZXW5J.js";
308
+ } from "./chunk-YQ3CBLL4.js";
309
309
  import {
310
310
  compileCorrectionRule,
311
311
  correctionsFilePath,
@@ -316,7 +316,7 @@ import {
316
316
  activityDayWindow,
317
317
  isValidActivityDate,
318
318
  timezoneOffsetIso
319
- } from "./chunk-7RAJ3GXO.js";
319
+ } from "./chunk-M6L7HI7R.js";
320
320
  import {
321
321
  AMBIENT_CAPTURE_PROMPT_RULE,
322
322
  isHighImpactPersonalFact
@@ -330,14 +330,14 @@ import {
330
330
  } from "./chunk-KD3QD3A5.js";
331
331
  import {
332
332
  MeetingsInputError
333
- } from "./chunk-DA2O3F5V.js";
333
+ } from "./chunk-HBKFYXBA.js";
334
334
  import {
335
335
  WearablesInputError,
336
336
  describeErrorForOperator
337
337
  } from "./chunk-V7IZKJI3.js";
338
338
  import {
339
339
  NamespaceCatalog
340
- } from "./chunk-ON2P3SHG.js";
340
+ } from "./chunk-CCP6LXQJ.js";
341
341
  import {
342
342
  recordDreamsPhaseRun
343
343
  } from "./chunk-EQWEIIKQ.js";
@@ -354,7 +354,7 @@ import {
354
354
  filterRecallCandidates,
355
355
  isGenericRecallExcludedPath,
356
356
  isTopLevelArchivePath
357
- } from "./chunk-XACYILRA.js";
357
+ } from "./chunk-YHSNAGN3.js";
358
358
  import {
359
359
  importCapsule
360
360
  } from "./chunk-PMVPCZJZ.js";
@@ -411,7 +411,7 @@ import {
411
411
  } from "./chunk-7ZNJN5WZ.js";
412
412
  import {
413
413
  NamespaceStorageRouter
414
- } from "./chunk-GVRLED7R.js";
414
+ } from "./chunk-H6B6GPVH.js";
415
415
  import {
416
416
  GraphIndex
417
417
  } from "./chunk-YMOPYG3K.js";
@@ -467,7 +467,7 @@ import {
467
467
  } from "./chunk-GPFZFCRN.js";
468
468
  import {
469
469
  buildChainFollowupGenerator
470
- } from "./chunk-LOETWOEB.js";
470
+ } from "./chunk-IWUN4RZL.js";
471
471
  import {
472
472
  QmdResultResolver,
473
473
  StorageManager,
@@ -486,7 +486,7 @@ import {
486
486
  reconstructFusionInputs,
487
487
  selfDeps,
488
488
  serializeFusionDay
489
- } from "./chunk-2QI2JBLQ.js";
489
+ } from "./chunk-ZAI5R6DW.js";
490
490
  import {
491
491
  bodyIsEscaped,
492
492
  decodeTranscriptBody,
@@ -503,12 +503,12 @@ import {
503
503
  import {
504
504
  NamespaceSearchRouter,
505
505
  namespaceCollectionName
506
- } from "./chunk-IJXECCUV.js";
506
+ } from "./chunk-LWVG6U7L.js";
507
507
  import {
508
508
  createConversationIndexRuntime,
509
509
  createSearchBackend,
510
510
  isSearchBackendEnabled
511
- } from "./chunk-55SJFHVD.js";
511
+ } from "./chunk-ZFBZ4QTS.js";
512
512
  import {
513
513
  NoopSearchBackend
514
514
  } from "./chunk-CYEPCZN5.js";
@@ -27418,4 +27418,4 @@ export {
27418
27418
  blendGraphExpandedRecallScore,
27419
27419
  Orchestrator
27420
27420
  };
27421
- //# sourceMappingURL=chunk-MJRVF7SF.js.map
27421
+ //# sourceMappingURL=chunk-UPIKAT5A.js.map
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-7ZNJN5WZ.js";
24
24
  import {
25
25
  compareEntityTimestamps
26
- } from "./chunk-2QI2JBLQ.js";
26
+ } from "./chunk-ZAI5R6DW.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-KRPE7ANR.js.map
921
+ //# sourceMappingURL=chunk-VNIETTMR.js.map