@remnic/core 9.65.8 → 9.66.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 (637) hide show
  1. package/dist/access-admin-ops-surface.d.ts +11 -12
  2. package/dist/access-admin-ops-surface.js +49 -46
  3. package/dist/access-authorization-probe.d.ts +11 -12
  4. package/dist/access-authorization-probe.js +50 -47
  5. package/dist/access-boundary.d.ts +11 -12
  6. package/dist/access-boundary.js +49 -46
  7. package/dist/access-citation-namespace.js +3 -3
  8. package/dist/access-cli.js +111 -106
  9. package/dist/access-cli.js.map +1 -1
  10. package/dist/access-coding-context-resolution.d.ts +1 -2
  11. package/dist/access-coding-context-resolution.js +2 -2
  12. package/dist/access-extraction-force-flush.d.ts +11 -12
  13. package/dist/access-extraction-force-flush.js +49 -46
  14. package/dist/access-health-types.d.ts +1 -2
  15. package/dist/access-http-lcm-compaction.d.ts +11 -12
  16. package/dist/access-http-lifecycle-flush.d.ts +11 -12
  17. package/dist/access-http-offline-stream.d.ts +11 -12
  18. package/dist/access-http-query.d.ts +2 -3
  19. package/dist/access-http-query.js +51 -48
  20. package/dist/access-http.d.ts +12 -13
  21. package/dist/access-http.js +68 -65
  22. package/dist/access-identity-continuity-surface.d.ts +9 -10
  23. package/dist/access-identity-continuity-surface.js +49 -46
  24. package/dist/access-lcm-surface.d.ts +11 -12
  25. package/dist/access-lcm-surface.js +49 -46
  26. package/dist/access-mcp-output-schemas.js +1 -1
  27. package/dist/access-mcp.d.ts +11 -12
  28. package/dist/access-mcp.js +62 -59
  29. package/dist/access-memory-search-fanout.d.ts +2 -3
  30. package/dist/{access-namespace-preflight-CpAOrS-9.d.ts → access-namespace-preflight-CLWUoMyW.d.ts} +1 -1
  31. package/dist/access-namespace-preflight.d.ts +3 -4
  32. package/dist/access-namespace-preflight.js +49 -46
  33. package/dist/access-observe-write-surface.d.ts +11 -12
  34. package/dist/access-observe-write-surface.js +49 -46
  35. package/dist/access-offline-manifest.d.ts +9 -10
  36. package/dist/access-offline-manifest.js +15 -15
  37. package/dist/access-operations-batch.js +54 -51
  38. package/dist/access-operations.d.ts +17 -18
  39. package/dist/access-operations.js +59 -56
  40. package/dist/access-recall-concurrency.d.ts +11 -12
  41. package/dist/access-recall-concurrency.js +49 -46
  42. package/dist/access-recall-response.d.ts +11 -12
  43. package/dist/access-recall-response.js +49 -46
  44. package/dist/access-recall-surface.d.ts +11 -12
  45. package/dist/access-recall-surface.js +49 -46
  46. package/dist/access-schema.d.ts +83 -83
  47. package/dist/access-schema.js +7 -7
  48. package/dist/{access-service-Diu61Cfv.d.ts → access-service-CEUE1Isj.d.ts} +66 -66
  49. package/dist/access-service-helpers.d.ts +11 -12
  50. package/dist/access-service.d.ts +11 -12
  51. package/dist/access-service.js +49 -46
  52. package/dist/access-surface-catalog.d.ts +11 -12
  53. package/dist/access-surface-catalog.js +53 -48
  54. package/dist/access-surface-catalog.js.map +1 -1
  55. package/dist/access-wearables-meetings-surface.d.ts +3 -4
  56. package/dist/action-confidence.d.ts +1 -2
  57. package/dist/active-memory-bridge.d.ts +1 -2
  58. package/dist/active-memory-bridge.js +2 -2
  59. package/dist/active-recall.d.ts +1 -2
  60. package/dist/active-recall.js +11 -11
  61. package/dist/ambient-provenance.d.ts +1 -2
  62. package/dist/artifact-search.d.ts +1 -2
  63. package/dist/{auto-sync-2YPITIWN.js → auto-sync-Q6Q2FVSC.js} +9 -9
  64. package/dist/behavior-learner.d.ts +1 -2
  65. package/dist/behavior-signals.d.ts +1 -2
  66. package/dist/bootstrap.d.ts +9 -10
  67. package/dist/briefing-window.d.ts +2 -3
  68. package/dist/briefing.d.ts +2 -3
  69. package/dist/briefing.js +23 -23
  70. package/dist/buffer-surprise-report.d.ts +1 -2
  71. package/dist/buffer-turn-helpers.d.ts +1 -2
  72. package/dist/buffer.d.ts +2 -3
  73. package/dist/buffer.js +20 -4
  74. package/dist/bulk-import/index.d.ts +3 -4
  75. package/dist/calibration.d.ts +1 -2
  76. package/dist/calibration.js +1 -1
  77. package/dist/capabilities.d.ts +1 -2
  78. package/dist/{capsule-merge-SGIVB3WA.js → capsule-merge-SEHERWWP.js} +4 -4
  79. package/dist/{catalog-9f-vEQLS.d.ts → catalog-D1HgugTA.d.ts} +1 -1
  80. package/dist/causal-behavior.d.ts +1 -2
  81. package/dist/causal-consolidation.d.ts +1 -2
  82. package/dist/causal-consolidation.js +24 -24
  83. package/dist/causal-trajectory-graph.d.ts +1 -2
  84. package/dist/{chunk-LEPOP46W.js → chunk-227UFSEQ.js} +4 -4
  85. package/dist/{chunk-NPFUNWNX.js → chunk-23CVL7HS.js} +2 -2
  86. package/dist/{chunk-PO7NXBG2.js → chunk-2GF27PGH.js} +5 -5
  87. package/dist/{chunk-MY2BC6UE.js → chunk-2LBAFHOQ.js} +11 -11
  88. package/dist/{chunk-AZMLH5UT.js → chunk-33MFRY25.js} +2 -2
  89. package/dist/{chunk-UEBDCMOO.js → chunk-3TSU662L.js} +3 -3
  90. package/dist/{chunk-CAMNRAJF.js → chunk-4FHRZD5T.js} +2 -2
  91. package/dist/{chunk-FP7YTTVO.js → chunk-4OFKZAJG.js} +2 -1
  92. package/dist/chunk-4OFKZAJG.js.map +1 -0
  93. package/dist/{chunk-S5XOSTYM.js → chunk-4STAANV7.js} +3 -3
  94. package/dist/{chunk-LKYIOCWL.js → chunk-56IV4J5W.js} +546 -96
  95. package/dist/chunk-56IV4J5W.js.map +1 -0
  96. package/dist/{chunk-4F4AQFWL.js → chunk-6CEGSTBD.js} +10 -10
  97. package/dist/{chunk-JYSN42VN.js → chunk-6QDXA26G.js} +235 -181
  98. package/dist/chunk-6QDXA26G.js.map +1 -0
  99. package/dist/{chunk-MDD2RINF.js → chunk-6RUHELWR.js} +3 -3
  100. package/dist/{chunk-WNXYT4MK.js → chunk-72OIT7KS.js} +4 -4
  101. package/dist/{chunk-KQAFEZQX.js → chunk-7LCGFUMB.js} +4 -4
  102. package/dist/{chunk-SNOIKAHM.js → chunk-7UTDHQZ5.js} +3 -3
  103. package/dist/{chunk-5HK3CJAR.js → chunk-7XOG75AU.js} +3 -3
  104. package/dist/{chunk-7BDZTALN.js → chunk-AJTG3CP7.js} +12 -2
  105. package/dist/chunk-AJTG3CP7.js.map +1 -0
  106. package/dist/{chunk-2LWQSV6A.js → chunk-AL3UYZ5N.js} +3 -2
  107. package/dist/chunk-AL3UYZ5N.js.map +1 -0
  108. package/dist/{chunk-UPFNQJC7.js → chunk-CN4VKV3S.js} +2 -2
  109. package/dist/{chunk-PMVPCZJZ.js → chunk-CTCGHNWN.js} +6 -6
  110. package/dist/{chunk-EGBDFJ36.js → chunk-DD5JFCWM.js} +2 -2
  111. package/dist/{chunk-XBGHAAKR.js → chunk-DDX6KIXF.js} +2 -2
  112. package/dist/{chunk-JIYDRBVZ.js → chunk-DJORULH3.js} +2 -2
  113. package/dist/{chunk-UENKPWCS.js → chunk-DMEHOEC7.js} +6 -6
  114. package/dist/{chunk-7KQB4EBS.js → chunk-DUAJKRR2.js} +2 -2
  115. package/dist/{chunk-XDL5CYZN.js → chunk-EEOUMG3J.js} +2 -1
  116. package/dist/{chunk-XDL5CYZN.js.map → chunk-EEOUMG3J.js.map} +1 -1
  117. package/dist/{chunk-SEEJOGQX.js → chunk-EFQCDJZ2.js} +4 -4
  118. package/dist/{chunk-Q57GOHLF.js → chunk-EGALNSZ4.js} +3 -3
  119. package/dist/{chunk-KCT36JAW.js → chunk-ESNFSSO4.js} +2 -2
  120. package/dist/{chunk-XQ3HXAQH.js → chunk-ET2CNMLD.js} +4 -4
  121. package/dist/{chunk-PU56CXZA.js → chunk-EZSCW4EM.js} +2 -2
  122. package/dist/{chunk-HMZKGHMD.js → chunk-FESUGFIL.js} +3 -3
  123. package/dist/{chunk-3A2NJP2U.js → chunk-FKKGCGYL.js} +3 -3
  124. package/dist/{chunk-BWGCOLEL.js → chunk-FTTJRVB7.js} +2 -2
  125. package/dist/{chunk-ODU2CNNX.js → chunk-FYWLSFFS.js} +2 -2
  126. package/dist/{chunk-W2BAGGEW.js → chunk-GEJKYA7D.js} +33 -24
  127. package/dist/{chunk-W2BAGGEW.js.map → chunk-GEJKYA7D.js.map} +1 -1
  128. package/dist/chunk-GSKINLAK.js +267 -0
  129. package/dist/chunk-GSKINLAK.js.map +1 -0
  130. package/dist/{chunk-3PKAS6VL.js → chunk-GX6FTSYH.js} +2 -2
  131. package/dist/{chunk-76DIF5KT.js → chunk-H7VDIF2V.js} +2 -2
  132. package/dist/{chunk-F7XUD3PL.js → chunk-HJXA6ZM7.js} +2 -2
  133. package/dist/{chunk-4QEYREAV.js → chunk-HNPE66LB.js} +2 -2
  134. package/dist/{chunk-P36Z4JRA.js → chunk-I5VB44ZK.js} +2 -2
  135. package/dist/{chunk-EUYWQ7TS.js → chunk-IEZ6CGTW.js} +2 -2
  136. package/dist/{chunk-OXRRJXPR.js → chunk-IHGMRDEE.js} +275 -1678
  137. package/dist/chunk-IHGMRDEE.js.map +1 -0
  138. package/dist/{chunk-5DHKCO52.js → chunk-IVIAHQBR.js} +2 -2
  139. package/dist/{chunk-TFR3HG4K.js → chunk-J3OND5QT.js} +4 -4
  140. package/dist/{chunk-UW5NPZJ2.js → chunk-JALOAKSZ.js} +59 -7
  141. package/dist/chunk-JALOAKSZ.js.map +1 -0
  142. package/dist/{chunk-5ACCD4L7.js → chunk-JRRQ747T.js} +7 -7
  143. package/dist/{chunk-V4IDF3EZ.js → chunk-JTWZKNUH.js} +5 -5
  144. package/dist/chunk-K66OY4EI.js +202 -0
  145. package/dist/chunk-K66OY4EI.js.map +1 -0
  146. package/dist/{chunk-XAB6STPO.js → chunk-KODXCHXJ.js} +17 -3
  147. package/dist/chunk-KODXCHXJ.js.map +1 -0
  148. package/dist/{chunk-KZIF6XHX.js → chunk-KXIXO76C.js} +28 -15
  149. package/dist/chunk-KXIXO76C.js.map +1 -0
  150. package/dist/{chunk-5RWZH6PH.js → chunk-L4X4PJYK.js} +2 -2
  151. package/dist/{chunk-UTQUEHC7.js → chunk-LUDBXTBJ.js} +8 -8
  152. package/dist/{chunk-XNWXSGHS.js → chunk-MAH64N55.js} +28 -10
  153. package/dist/chunk-MAH64N55.js.map +1 -0
  154. package/dist/{chunk-LDKPDODJ.js → chunk-ME35HVDJ.js} +2 -2
  155. package/dist/{chunk-DPCXDG7G.js → chunk-MJRGVXPQ.js} +2 -2
  156. package/dist/{chunk-773TRRGT.js → chunk-MJUCDM3C.js} +2 -2
  157. package/dist/{chunk-T6ILXUAH.js → chunk-MN5NOOI7.js} +2 -2
  158. package/dist/{chunk-AHPIFKNG.js → chunk-N4F7ZSSG.js} +2 -2
  159. package/dist/{chunk-JOZUBF4A.js → chunk-NACLNNFQ.js} +2 -2
  160. package/dist/{chunk-LC2BDILZ.js → chunk-NBP4EX5N.js} +2 -2
  161. package/dist/{chunk-ZVPVTPGI.js → chunk-NNZFPYYX.js} +4 -4
  162. package/dist/{chunk-DA7ITC5Z.js → chunk-O57GM3FR.js} +2 -2
  163. package/dist/{chunk-7VZFRUQU.js → chunk-O7ERGZDA.js} +5 -5
  164. package/dist/{chunk-3SZD4CYO.js → chunk-OAJMQKQR.js} +3 -3
  165. package/dist/{chunk-HSZMX3ZJ.js → chunk-ODW5GDFE.js} +2 -2
  166. package/dist/{chunk-7WOWGRAU.js → chunk-PEBH5DCK.js} +10 -7
  167. package/dist/{chunk-7WOWGRAU.js.map → chunk-PEBH5DCK.js.map} +1 -1
  168. package/dist/{chunk-J2WC5LF4.js → chunk-QBC33MPY.js} +2 -1
  169. package/dist/{chunk-T7XP6IZE.js → chunk-QCRJMU5V.js} +2 -2
  170. package/dist/chunk-QJCWK2A7.js +1466 -0
  171. package/dist/chunk-QJCWK2A7.js.map +1 -0
  172. package/dist/{chunk-YEUXERJ6.js → chunk-RDGKVH6T.js} +7 -3
  173. package/dist/{chunk-YEUXERJ6.js.map → chunk-RDGKVH6T.js.map} +1 -1
  174. package/dist/{chunk-OA2O2GJ4.js → chunk-RZ3IZIJG.js} +3 -3
  175. package/dist/{chunk-UL4MKZHI.js → chunk-SN4JXNLL.js} +2 -2
  176. package/dist/chunk-TB2MJRI6.js +866 -0
  177. package/dist/chunk-TB2MJRI6.js.map +1 -0
  178. package/dist/{chunk-7PHI6GUI.js → chunk-TEZ2HTC7.js} +42 -2
  179. package/dist/chunk-TEZ2HTC7.js.map +1 -0
  180. package/dist/{chunk-CPA5NBHN.js → chunk-TNGH4ZYI.js} +2 -2
  181. package/dist/{chunk-F3NVYTTA.js → chunk-TNXNECAN.js} +6 -6
  182. package/dist/{chunk-BEC4YBNA.js → chunk-TVW4C7PV.js} +2 -2
  183. package/dist/{chunk-UFKPQBXH.js → chunk-U62OK7BB.js} +2 -2
  184. package/dist/{chunk-AX7UXCHJ.js → chunk-UYA36DQ7.js} +2 -1
  185. package/dist/chunk-UYA36DQ7.js.map +1 -0
  186. package/dist/{chunk-DEACDKE3.js → chunk-VCKWULAK.js} +112 -87
  187. package/dist/chunk-VCKWULAK.js.map +1 -0
  188. package/dist/chunk-VOSWUO3K.js +100 -0
  189. package/dist/chunk-VOSWUO3K.js.map +1 -0
  190. package/dist/{chunk-TUHBYJXL.js → chunk-VQ4AMTGZ.js} +1 -1
  191. package/dist/{chunk-3BCULS4U.js → chunk-VQNRICAQ.js} +145 -507
  192. package/dist/chunk-VQNRICAQ.js.map +1 -0
  193. package/dist/{chunk-H2YSH3DG.js → chunk-WKAXBXVA.js} +2 -2
  194. package/dist/{chunk-HRHO3ZNG.js → chunk-WKJFIMVN.js} +2 -2
  195. package/dist/{chunk-SXIMQLGV.js → chunk-WVGXCBOC.js} +2 -2
  196. package/dist/{chunk-CRML27CO.js → chunk-X5YYSAZX.js} +4 -4
  197. package/dist/{chunk-FZEEWOI2.js → chunk-XJJYSX6F.js} +2 -2
  198. package/dist/{chunk-U7EW2W4W.js → chunk-XKNHFDTT.js} +26 -6
  199. package/dist/chunk-XKNHFDTT.js.map +1 -0
  200. package/dist/{chunk-UG6VXIOK.js → chunk-XSTNGNJP.js} +2 -2
  201. package/dist/{chunk-YDPAE2RD.js → chunk-YFLLGRXO.js} +2 -2
  202. package/dist/{chunk-LPNCR4QK.js → chunk-YXFCALVT.js} +12 -12
  203. package/dist/{chunk-Q4WONDMJ.js → chunk-YYGZJPOK.js} +2 -2
  204. package/dist/{chunk-GTO56JY5.js → chunk-ZJPM7GZ3.js} +2 -2
  205. package/dist/{chunk-LOXHYCVS.js → chunk-ZW4VXELZ.js} +2 -2
  206. package/dist/{cli-O3F-ht3i.d.ts → cli-BEkm2MEf.d.ts} +5 -5
  207. package/dist/cli.d.ts +13 -14
  208. package/dist/cli.js +90 -85
  209. package/dist/coding/export-okf-codegraph.d.ts +56 -0
  210. package/dist/coding/export-okf-codegraph.js +526 -0
  211. package/dist/coding/export-okf-codegraph.js.map +1 -0
  212. package/dist/coding/pre-action-gate.d.ts +1 -2
  213. package/dist/compounding/engine.d.ts +2 -3
  214. package/dist/compounding/engine.js +24 -24
  215. package/dist/compounding/preference-consolidator.d.ts +1 -2
  216. package/dist/compression-optimizer.d.ts +1 -2
  217. package/dist/config.d.ts +1 -2
  218. package/dist/config.js +11 -11
  219. package/dist/connectors/codex-materialize-runner.d.ts +1 -2
  220. package/dist/connectors/codex-materialize-runner.js +23 -23
  221. package/dist/connectors/codex-materialize.d.ts +1 -2
  222. package/dist/connectors/index.d.ts +1 -2
  223. package/dist/connectors/index.js +23 -23
  224. package/dist/consolidation-provenance-check.d.ts +2 -3
  225. package/dist/consolidation-provenance-check.js +4 -4
  226. package/dist/consolidation-undo.d.ts +2 -3
  227. package/dist/consolidation-undo.js +3 -3
  228. package/dist/contradiction/index.d.ts +3 -4
  229. package/dist/contradiction/index.js +9 -9
  230. package/dist/{contradiction-scan-AKUWPX5N.js → contradiction-scan-NOYMFG66.js} +3 -3
  231. package/dist/converge-config.d.ts +1 -2
  232. package/dist/convergence-refresh.d.ts +2 -3
  233. package/dist/convergence-refresh.js +25 -25
  234. package/dist/conversation-index/backend.d.ts +1 -2
  235. package/dist/conversation-index/backend.js +2 -2
  236. package/dist/conversation-index/chunker.d.ts +1 -2
  237. package/dist/conversation-index/faiss-adapter.d.ts +1 -2
  238. package/dist/conversation-index/indexer.d.ts +1 -2
  239. package/dist/conversation-index/search.d.ts +1 -2
  240. package/dist/corpus-watermark.d.ts +1 -2
  241. package/dist/corpus-watermark.js +25 -25
  242. package/dist/cross-lingual-recall.d.ts +1 -2
  243. package/dist/day-summary.d.ts +1 -2
  244. package/dist/delinearize.d.ts +1 -2
  245. package/dist/dependency-propagation-config.d.ts +1 -2
  246. package/dist/{dependency-propagation-delivery-CL6RWXTA.d.ts → dependency-propagation-delivery-BCpeo14F.d.ts} +1 -1
  247. package/dist/direct-answer-wiring.d.ts +1 -2
  248. package/dist/direct-answer.d.ts +1 -2
  249. package/dist/embedding-fallback.d.ts +1 -2
  250. package/dist/enrichment/index.d.ts +1 -2
  251. package/dist/entity-origin-fields.d.ts +1 -2
  252. package/dist/entity-retrieval.d.ts +2 -3
  253. package/dist/entity-retrieval.js +23 -23
  254. package/dist/entity-schema.d.ts +1 -2
  255. package/dist/episodic-context.d.ts +1 -2
  256. package/dist/eval-trajectory-contracts.d.ts +1 -2
  257. package/dist/eval-trajectory-store.d.ts +1 -2
  258. package/dist/eval-trajectory.d.ts +1 -2
  259. package/dist/explicit-capture.d.ts +9 -10
  260. package/dist/explicit-capture.js +11 -11
  261. package/dist/external-wiki-access.d.ts +11 -12
  262. package/dist/external-wiki-access.js +50 -47
  263. package/dist/external-wiki-collection-registration.d.ts +1 -2
  264. package/dist/external-wiki-collection.d.ts +1 -2
  265. package/dist/external-wiki-mcp-tools.d.ts +11 -12
  266. package/dist/extraction-error-classification.d.ts +1 -2
  267. package/dist/extraction-faithfulness.d.ts +1 -2
  268. package/dist/extraction-faithfulness.js +2 -2
  269. package/dist/extraction-judge-telemetry.d.ts +1 -2
  270. package/dist/extraction-judge-training.d.ts +1 -2
  271. package/dist/extraction-judge.d.ts +1 -2
  272. package/dist/extraction-judge.js +2 -2
  273. package/dist/extraction-liveness.d.ts +1 -2
  274. package/dist/extraction-normalization.d.ts +1 -2
  275. package/dist/extraction-prompt.d.ts +1 -2
  276. package/dist/extraction-source-grounding-rules.d.ts +1 -2
  277. package/dist/extraction-source-grounding.d.ts +1 -2
  278. package/dist/extraction.d.ts +1 -2
  279. package/dist/extraction.js +32 -29
  280. package/dist/fallback-llm.d.ts +7 -2
  281. package/dist/fallback-llm.js +1 -1
  282. package/dist/{first-start-migration-4NETATFF.js → first-start-migration-KHIMCBIC.js} +3 -3
  283. package/dist/graph-dashboard-diff.d.ts +1 -2
  284. package/dist/graph-dashboard-key.d.ts +1 -2
  285. package/dist/graph-dashboard-parser.d.ts +1 -2
  286. package/dist/graph-edge-reinforcement.d.ts +1 -2
  287. package/dist/graph-path-reconstruction.d.ts +1 -2
  288. package/dist/graph-path-scoring.d.ts +1 -2
  289. package/dist/graph-snapshot.d.ts +1 -2
  290. package/dist/graph.d.ts +1 -2
  291. package/dist/harmonic-retrieval.js +1 -1
  292. package/dist/importance.d.ts +1 -2
  293. package/dist/importers/index.d.ts +1 -2
  294. package/dist/in-flight-reads.d.ts +1 -2
  295. package/dist/{index-C7Xep6S9.d.ts → index-D_pyMUaP.d.ts} +2 -2
  296. package/dist/index.d.ts +929 -700
  297. package/dist/index.js +167 -132
  298. package/dist/intent.d.ts +1 -2
  299. package/dist/lcm/engine.d.ts +1 -2
  300. package/dist/lcm/index.d.ts +1 -2
  301. package/dist/lcm/tools.d.ts +1 -2
  302. package/dist/lifecycle.d.ts +1 -2
  303. package/dist/live-connectors-runner.d.ts +1 -2
  304. package/dist/local-llm.d.ts +1 -2
  305. package/dist/local-model-endpoint.d.ts +1 -2
  306. package/dist/location/index.d.ts +315 -6
  307. package/dist/location/index.js +151 -19
  308. package/dist/maintenance/memory-governance.d.ts +1 -2
  309. package/dist/maintenance/memory-governance.js +23 -23
  310. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -3
  311. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +23 -23
  312. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -3
  313. package/dist/maintenance/rebuild-memory-projection.js +24 -24
  314. package/dist/{maintenance-CJ-xqFp0.d.ts → maintenance-DDUX9d6D.d.ts} +3 -3
  315. package/dist/mcp-memory-inspector-app.d.ts +11 -12
  316. package/dist/mcp-read-only-tools.js +1 -1
  317. package/dist/memory-action-policy.d.ts +1 -2
  318. package/dist/memory-cache.d.ts +1 -2
  319. package/dist/memory-controller.d.ts +1 -2
  320. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -2
  321. package/dist/memory-projection-mutations.js +3 -3
  322. package/dist/memory-projection-store.d.ts +1 -2
  323. package/dist/memory-projection-store.js +1 -1
  324. package/dist/memory-provenance.d.ts +1 -2
  325. package/dist/memory-snapshot.d.ts +1 -2
  326. package/dist/memory-subject-cli.d.ts +11 -12
  327. package/dist/memory-subject.d.ts +11 -12
  328. package/dist/memory-subject.js +4 -4
  329. package/dist/memory-worth-outcomes.d.ts +2 -3
  330. package/dist/models-json.d.ts +1 -2
  331. package/dist/namespaces/migrate.d.ts +3 -4
  332. package/dist/namespaces/migrate.js +24 -24
  333. package/dist/namespaces/principal.d.ts +1 -2
  334. package/dist/namespaces/search.d.ts +1 -2
  335. package/dist/namespaces/search.js +5 -5
  336. package/dist/namespaces/storage.d.ts +3 -4
  337. package/dist/namespaces/storage.js +23 -23
  338. package/dist/native-knowledge.d.ts +1 -2
  339. package/dist/offline-sync-file-io.js +3 -3
  340. package/dist/offline-sync-impression-drain.d.ts +1 -2
  341. package/dist/offline-sync-impression-drain.js +9 -9
  342. package/dist/offline-sync.js +4 -4
  343. package/dist/operator-doctor-corpus.d.ts +1 -2
  344. package/dist/operator-doctor-corpus.js +26 -26
  345. package/dist/operator-doctor-replica.d.ts +1 -2
  346. package/dist/operator-toolkit.d.ts +3 -4
  347. package/dist/operator-toolkit.js +42 -42
  348. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -3
  349. package/dist/orchestration/maintenance.d.ts +4 -5
  350. package/dist/orchestration/maintenance.js +37 -36
  351. package/dist/{orchestrator-BsntWxLy.d.ts → orchestrator-3F4jihCo.d.ts} +8 -8
  352. package/dist/orchestrator.d.ts +9 -10
  353. package/dist/orchestrator.js +111 -106
  354. package/dist/page-versioning.js +3 -3
  355. package/dist/patterns-cli.d.ts +1 -2
  356. package/dist/{pipeline-CVoysPm2.d.ts → pipeline-CB1dj6Uh.d.ts} +1 -1
  357. package/dist/policy-runtime.d.ts +1 -2
  358. package/dist/proactive-contention.d.ts +1 -2
  359. package/dist/provenance.d.ts +1 -2
  360. package/dist/{public-http-CuOxlTC2.d.ts → public-http-34-JIAGQ.d.ts} +1 -1
  361. package/dist/{purge-GB7PZHT2.js → purge-OP6BEDFY.js} +2 -2
  362. package/dist/{qmd-DWMAGA5l.d.ts → qmd-edLLZXc5.d.ts} +1 -1
  363. package/dist/qmd-preflight.d.ts +2 -3
  364. package/dist/qmd-recall-cache.d.ts +1 -2
  365. package/dist/qmd.d.ts +2 -3
  366. package/dist/recall-concurrency-config.d.ts +1 -2
  367. package/dist/recall-disclosure-escalation.d.ts +1 -2
  368. package/dist/recall-explain-renderer.d.ts +1 -2
  369. package/dist/recall-memory-map.d.ts +1 -2
  370. package/dist/recall-planner-llm.d.ts +1 -2
  371. package/dist/recall-planner-llm.js +1 -1
  372. package/dist/recall-state.d.ts +1 -2
  373. package/dist/recall-tag-filter.d.ts +1 -2
  374. package/dist/recall-timings.d.ts +1 -2
  375. package/dist/recall-xray-cli.d.ts +1 -2
  376. package/dist/recall-xray-renderer.d.ts +1 -2
  377. package/dist/recall-xray.d.ts +1 -2
  378. package/dist/reconcile/cursor.d.ts +1 -2
  379. package/dist/reconcile/manifest.d.ts +1 -2
  380. package/dist/reconcile/manifest.js +4 -4
  381. package/dist/reconcile/plan.d.ts +1 -2
  382. package/dist/replay/normalizers/chatgpt.d.ts +1 -2
  383. package/dist/replay/normalizers/claude.d.ts +1 -2
  384. package/dist/replay/normalizers/openclaw.d.ts +1 -2
  385. package/dist/replay/normalizers/shared.d.ts +1 -2
  386. package/dist/replay/runner.d.ts +1 -2
  387. package/dist/replay/types.d.ts +1 -2
  388. package/dist/replica-divergence.d.ts +1 -2
  389. package/dist/replica-peers-config.d.ts +1 -2
  390. package/dist/{resolution-XWBPKYFB.js → resolution-4DLI3IOR.js} +10 -10
  391. package/dist/resolve-auth-token.d.ts +1 -2
  392. package/dist/resume-bundles.js +12 -12
  393. package/dist/retrieval-agents.d.ts +2 -3
  394. package/dist/retrieval-tiers.d.ts +1 -2
  395. package/dist/routing/engine.d.ts +1 -2
  396. package/dist/routing/store.d.ts +1 -2
  397. package/dist/salvage-envelope.d.ts +1 -2
  398. package/dist/salvage-envelope.js +6 -6
  399. package/dist/schemas.d.ts +639 -174
  400. package/dist/schemas.js +3 -1
  401. package/dist/{scope-profiles-CPWkW_dI.d.ts → scope-profiles-BF2lu81V.d.ts} +1 -1
  402. package/dist/search/document-scanner.js +1 -1
  403. package/dist/search/embed-helper.d.ts +1 -2
  404. package/dist/search/factory.d.ts +1 -2
  405. package/dist/search/factory.js +4 -4
  406. package/dist/search/index.d.ts +1 -2
  407. package/dist/search/index.js +4 -4
  408. package/dist/search/lancedb-backend.d.ts +1 -2
  409. package/dist/search/lancedb-backend.js +1 -1
  410. package/dist/search/meilisearch-backend.d.ts +1 -2
  411. package/dist/search/meilisearch-backend.js +1 -1
  412. package/dist/search/noop-backend.d.ts +1 -2
  413. package/dist/search/orama-backend.d.ts +1 -2
  414. package/dist/search/orama-backend.js +1 -1
  415. package/dist/search/port.d.ts +1 -2
  416. package/dist/search/remote-backend.d.ts +1 -2
  417. package/dist/secure-store/index.js +3 -3
  418. package/dist/{semantic-consolidation-CNFVBXFc.d.ts → semantic-consolidation-5OuWXBRt.d.ts} +1 -1
  419. package/dist/semantic-consolidation.d.ts +2 -3
  420. package/dist/semantic-consolidation.js +24 -24
  421. package/dist/semantic-rule-promotion.js +23 -23
  422. package/dist/semantic-rule-verifier.d.ts +1 -2
  423. package/dist/semantic-rule-verifier.js +23 -23
  424. package/dist/{service-Bb-JIdQ0.d.ts → service-CrqEhLXD.d.ts} +2 -2
  425. package/dist/session-observer-bands.d.ts +1 -2
  426. package/dist/session-observer-state.d.ts +1 -2
  427. package/dist/shared-context/manager.d.ts +7 -8
  428. package/dist/signal.d.ts +1 -2
  429. package/dist/source-agent-qualifier.d.ts +1 -2
  430. package/dist/source-agent-qualifier.js +30 -27
  431. package/dist/standup/build.d.ts +16 -0
  432. package/dist/standup/build.js +17 -0
  433. package/dist/standup/build.js.map +1 -0
  434. package/dist/{storage-CukrlNKk.d.ts → storage-BQn-xnxm.d.ts} +1 -1
  435. package/dist/storage.d.ts +2 -3
  436. package/dist/storage.js +22 -22
  437. package/dist/subject-config.d.ts +1 -2
  438. package/dist/subject-config.js +5 -5
  439. package/dist/summarizer.d.ts +1 -2
  440. package/dist/summarizer.js +2 -2
  441. package/dist/summary-snapshot.d.ts +1 -2
  442. package/dist/support-passport/index.d.ts +16 -17
  443. package/dist/support-passport/index.js +52 -49
  444. package/dist/temporal-supersession.d.ts +2 -3
  445. package/dist/temporal-timeline-recall.d.ts +1 -2
  446. package/dist/temporal-validity.d.ts +1 -2
  447. package/dist/threading.d.ts +1 -2
  448. package/dist/tier-migration.d.ts +2 -3
  449. package/dist/tier-routing.d.ts +1 -2
  450. package/dist/tier-routing.js +2 -2
  451. package/dist/{tier-stats-4B5IJ3NE.js → tier-stats-2TOW3QNL.js} +3 -3
  452. package/dist/topics.d.ts +1 -2
  453. package/dist/transcript.d.ts +1 -2
  454. package/dist/transfer/capsule-export.js +2 -2
  455. package/dist/transfer/capsule-import.js +5 -5
  456. package/dist/transfer/export-okf.d.ts +39 -0
  457. package/dist/transfer/export-okf.js +112 -0
  458. package/dist/transfer/export-okf.js.map +1 -0
  459. package/dist/transfer/types.d.ts +78 -78
  460. package/dist/trust-score-stage.d.ts +1 -2
  461. package/dist/trust-score.d.ts +1 -2
  462. package/dist/{types-djxQlxJ7.d.ts → types-BRpcNjHZ.d.ts} +117 -2
  463. package/dist/types.d.ts +1 -2
  464. package/dist/utility-runtime.d.ts +1 -2
  465. package/dist/verified-recall.js +23 -23
  466. package/dist/who-knows-cli.d.ts +11 -12
  467. package/dist/who-knows-cli.js +24 -24
  468. package/dist/who-knows.d.ts +11 -12
  469. package/dist/who-knows.js +23 -23
  470. package/dist/write-envelope.d.ts +1 -2
  471. package/dist/write-envelope.js +5 -5
  472. package/package.json +34 -3
  473. package/src/access-admin-ops-surface.ts +6 -1
  474. package/src/access-boundary.ts +1 -0
  475. package/src/access-http.ts +3 -1
  476. package/src/access-mcp-output-schemas.ts +1 -0
  477. package/src/access-mcp.ts +3 -3
  478. package/src/access-operations.ts +1 -0
  479. package/src/access-service-offline-file-content.test.ts +63 -0
  480. package/src/access-surface-catalog.ts +2 -0
  481. package/src/activity/config.test.ts +1 -0
  482. package/src/activity/config.ts +21 -1
  483. package/src/activity/index.ts +1 -0
  484. package/src/activity/timeline/build.ts +279 -0
  485. package/src/activity/timeline/categories.ts +111 -0
  486. package/src/activity/timeline/classify.ts +110 -0
  487. package/src/activity/timeline/corrections.ts +145 -0
  488. package/src/activity/timeline/index.ts +6 -0
  489. package/src/activity/timeline/timeline.test.ts +277 -0
  490. package/src/activity/timeline/types.ts +106 -0
  491. package/src/activity/types.ts +6 -0
  492. package/src/cli/okf-commands.ts +45 -0
  493. package/src/cli.ts +2 -2
  494. package/src/coding/export-okf-codegraph.test.ts +381 -0
  495. package/src/coding/export-okf-codegraph.ts +565 -0
  496. package/src/config.test.ts +1 -0
  497. package/src/extraction-prompt-safety.test.ts +14 -2
  498. package/src/extraction.ts +21 -1
  499. package/src/fallback-llm.test.ts +134 -0
  500. package/src/fallback-llm.ts +77 -5
  501. package/src/location/access-operations.ts +17 -8
  502. package/src/location/backfill.ts +137 -0
  503. package/src/location/config.test.ts +3 -0
  504. package/src/location/config.ts +46 -2
  505. package/src/location/http-glue.ts +1 -1
  506. package/src/location/index.ts +3 -0
  507. package/src/location/intervals.ts +1 -0
  508. package/src/location/matching.test.ts +65 -0
  509. package/src/location/matching.ts +354 -0
  510. package/src/location/mcp-tools.ts +2 -1
  511. package/src/location/surfaces.test.ts +15 -2
  512. package/src/location/surfaces.ts +95 -18
  513. package/src/location/tagging.test.ts +119 -0
  514. package/src/location/tagging.ts +277 -0
  515. package/src/location/types.ts +23 -1
  516. package/src/mcp-read-only-tools.ts +1 -0
  517. package/src/memory-projection-store.ts +3 -1
  518. package/src/okf/cli.ts +18 -5
  519. package/src/okf/config.ts +5 -0
  520. package/src/okf/index-files.test.ts +60 -0
  521. package/src/okf/index-files.ts +114 -0
  522. package/src/okf/render.ts +133 -0
  523. package/src/okf/type-mapping.test.ts +3 -0
  524. package/src/okf/type-mapping.ts +2 -0
  525. package/src/orchestration/extraction-run.ts +2 -1
  526. package/src/orchestration/generic-recall-paths.ts +4 -3
  527. package/src/schemas.ts +17 -1
  528. package/src/standup/access-operations.ts +14 -0
  529. package/src/standup/build.test.ts +34 -0
  530. package/src/standup/build.ts +115 -0
  531. package/src/standup/http-glue.ts +15 -0
  532. package/src/standup/mcp-tools.ts +16 -0
  533. package/src/support-passport/card-projection.ts +1 -0
  534. package/src/support-passport/card-service-commit-forwarding.test.ts +1 -0
  535. package/src/support-passport/card-service.test.ts +75 -1
  536. package/src/support-passport/card-service.ts +6 -3
  537. package/src/support-passport/card-state.ts +5 -1
  538. package/src/support-passport/offline-sync-guard.ts +14 -1
  539. package/src/transfer/export-okf.test.ts +164 -0
  540. package/src/transfer/export-okf.ts +286 -0
  541. package/dist/chunk-2LWQSV6A.js.map +0 -1
  542. package/dist/chunk-3BCULS4U.js.map +0 -1
  543. package/dist/chunk-7BDZTALN.js.map +0 -1
  544. package/dist/chunk-7PHI6GUI.js.map +0 -1
  545. package/dist/chunk-AX7UXCHJ.js.map +0 -1
  546. package/dist/chunk-DEACDKE3.js.map +0 -1
  547. package/dist/chunk-FP7YTTVO.js.map +0 -1
  548. package/dist/chunk-JYSN42VN.js.map +0 -1
  549. package/dist/chunk-KZIF6XHX.js.map +0 -1
  550. package/dist/chunk-LKYIOCWL.js.map +0 -1
  551. package/dist/chunk-OXRRJXPR.js.map +0 -1
  552. package/dist/chunk-U7EW2W4W.js.map +0 -1
  553. package/dist/chunk-UW5NPZJ2.js.map +0 -1
  554. package/dist/chunk-XAB6STPO.js.map +0 -1
  555. package/dist/chunk-XNWXSGHS.js.map +0 -1
  556. package/dist/types-CM86alG1.d.ts +0 -89
  557. /package/dist/{auto-sync-2YPITIWN.js.map → auto-sync-Q6Q2FVSC.js.map} +0 -0
  558. /package/dist/{capsule-merge-SGIVB3WA.js.map → capsule-merge-SEHERWWP.js.map} +0 -0
  559. /package/dist/{chunk-LEPOP46W.js.map → chunk-227UFSEQ.js.map} +0 -0
  560. /package/dist/{chunk-NPFUNWNX.js.map → chunk-23CVL7HS.js.map} +0 -0
  561. /package/dist/{chunk-PO7NXBG2.js.map → chunk-2GF27PGH.js.map} +0 -0
  562. /package/dist/{chunk-MY2BC6UE.js.map → chunk-2LBAFHOQ.js.map} +0 -0
  563. /package/dist/{chunk-AZMLH5UT.js.map → chunk-33MFRY25.js.map} +0 -0
  564. /package/dist/{chunk-UEBDCMOO.js.map → chunk-3TSU662L.js.map} +0 -0
  565. /package/dist/{chunk-CAMNRAJF.js.map → chunk-4FHRZD5T.js.map} +0 -0
  566. /package/dist/{chunk-S5XOSTYM.js.map → chunk-4STAANV7.js.map} +0 -0
  567. /package/dist/{chunk-4F4AQFWL.js.map → chunk-6CEGSTBD.js.map} +0 -0
  568. /package/dist/{chunk-MDD2RINF.js.map → chunk-6RUHELWR.js.map} +0 -0
  569. /package/dist/{chunk-WNXYT4MK.js.map → chunk-72OIT7KS.js.map} +0 -0
  570. /package/dist/{chunk-KQAFEZQX.js.map → chunk-7LCGFUMB.js.map} +0 -0
  571. /package/dist/{chunk-SNOIKAHM.js.map → chunk-7UTDHQZ5.js.map} +0 -0
  572. /package/dist/{chunk-5HK3CJAR.js.map → chunk-7XOG75AU.js.map} +0 -0
  573. /package/dist/{chunk-UPFNQJC7.js.map → chunk-CN4VKV3S.js.map} +0 -0
  574. /package/dist/{chunk-PMVPCZJZ.js.map → chunk-CTCGHNWN.js.map} +0 -0
  575. /package/dist/{chunk-EGBDFJ36.js.map → chunk-DD5JFCWM.js.map} +0 -0
  576. /package/dist/{chunk-XBGHAAKR.js.map → chunk-DDX6KIXF.js.map} +0 -0
  577. /package/dist/{chunk-JIYDRBVZ.js.map → chunk-DJORULH3.js.map} +0 -0
  578. /package/dist/{chunk-UENKPWCS.js.map → chunk-DMEHOEC7.js.map} +0 -0
  579. /package/dist/{chunk-7KQB4EBS.js.map → chunk-DUAJKRR2.js.map} +0 -0
  580. /package/dist/{chunk-SEEJOGQX.js.map → chunk-EFQCDJZ2.js.map} +0 -0
  581. /package/dist/{chunk-Q57GOHLF.js.map → chunk-EGALNSZ4.js.map} +0 -0
  582. /package/dist/{chunk-KCT36JAW.js.map → chunk-ESNFSSO4.js.map} +0 -0
  583. /package/dist/{chunk-XQ3HXAQH.js.map → chunk-ET2CNMLD.js.map} +0 -0
  584. /package/dist/{chunk-PU56CXZA.js.map → chunk-EZSCW4EM.js.map} +0 -0
  585. /package/dist/{chunk-HMZKGHMD.js.map → chunk-FESUGFIL.js.map} +0 -0
  586. /package/dist/{chunk-3A2NJP2U.js.map → chunk-FKKGCGYL.js.map} +0 -0
  587. /package/dist/{chunk-BWGCOLEL.js.map → chunk-FTTJRVB7.js.map} +0 -0
  588. /package/dist/{chunk-ODU2CNNX.js.map → chunk-FYWLSFFS.js.map} +0 -0
  589. /package/dist/{chunk-3PKAS6VL.js.map → chunk-GX6FTSYH.js.map} +0 -0
  590. /package/dist/{chunk-76DIF5KT.js.map → chunk-H7VDIF2V.js.map} +0 -0
  591. /package/dist/{chunk-F7XUD3PL.js.map → chunk-HJXA6ZM7.js.map} +0 -0
  592. /package/dist/{chunk-4QEYREAV.js.map → chunk-HNPE66LB.js.map} +0 -0
  593. /package/dist/{chunk-P36Z4JRA.js.map → chunk-I5VB44ZK.js.map} +0 -0
  594. /package/dist/{chunk-EUYWQ7TS.js.map → chunk-IEZ6CGTW.js.map} +0 -0
  595. /package/dist/{chunk-5DHKCO52.js.map → chunk-IVIAHQBR.js.map} +0 -0
  596. /package/dist/{chunk-TFR3HG4K.js.map → chunk-J3OND5QT.js.map} +0 -0
  597. /package/dist/{chunk-5ACCD4L7.js.map → chunk-JRRQ747T.js.map} +0 -0
  598. /package/dist/{chunk-V4IDF3EZ.js.map → chunk-JTWZKNUH.js.map} +0 -0
  599. /package/dist/{chunk-5RWZH6PH.js.map → chunk-L4X4PJYK.js.map} +0 -0
  600. /package/dist/{chunk-UTQUEHC7.js.map → chunk-LUDBXTBJ.js.map} +0 -0
  601. /package/dist/{chunk-LDKPDODJ.js.map → chunk-ME35HVDJ.js.map} +0 -0
  602. /package/dist/{chunk-DPCXDG7G.js.map → chunk-MJRGVXPQ.js.map} +0 -0
  603. /package/dist/{chunk-773TRRGT.js.map → chunk-MJUCDM3C.js.map} +0 -0
  604. /package/dist/{chunk-T6ILXUAH.js.map → chunk-MN5NOOI7.js.map} +0 -0
  605. /package/dist/{chunk-AHPIFKNG.js.map → chunk-N4F7ZSSG.js.map} +0 -0
  606. /package/dist/{chunk-JOZUBF4A.js.map → chunk-NACLNNFQ.js.map} +0 -0
  607. /package/dist/{chunk-LC2BDILZ.js.map → chunk-NBP4EX5N.js.map} +0 -0
  608. /package/dist/{chunk-ZVPVTPGI.js.map → chunk-NNZFPYYX.js.map} +0 -0
  609. /package/dist/{chunk-DA7ITC5Z.js.map → chunk-O57GM3FR.js.map} +0 -0
  610. /package/dist/{chunk-7VZFRUQU.js.map → chunk-O7ERGZDA.js.map} +0 -0
  611. /package/dist/{chunk-3SZD4CYO.js.map → chunk-OAJMQKQR.js.map} +0 -0
  612. /package/dist/{chunk-HSZMX3ZJ.js.map → chunk-ODW5GDFE.js.map} +0 -0
  613. /package/dist/{chunk-J2WC5LF4.js.map → chunk-QBC33MPY.js.map} +0 -0
  614. /package/dist/{chunk-T7XP6IZE.js.map → chunk-QCRJMU5V.js.map} +0 -0
  615. /package/dist/{chunk-OA2O2GJ4.js.map → chunk-RZ3IZIJG.js.map} +0 -0
  616. /package/dist/{chunk-UL4MKZHI.js.map → chunk-SN4JXNLL.js.map} +0 -0
  617. /package/dist/{chunk-CPA5NBHN.js.map → chunk-TNGH4ZYI.js.map} +0 -0
  618. /package/dist/{chunk-F3NVYTTA.js.map → chunk-TNXNECAN.js.map} +0 -0
  619. /package/dist/{chunk-BEC4YBNA.js.map → chunk-TVW4C7PV.js.map} +0 -0
  620. /package/dist/{chunk-UFKPQBXH.js.map → chunk-U62OK7BB.js.map} +0 -0
  621. /package/dist/{chunk-TUHBYJXL.js.map → chunk-VQ4AMTGZ.js.map} +0 -0
  622. /package/dist/{chunk-H2YSH3DG.js.map → chunk-WKAXBXVA.js.map} +0 -0
  623. /package/dist/{chunk-HRHO3ZNG.js.map → chunk-WKJFIMVN.js.map} +0 -0
  624. /package/dist/{chunk-SXIMQLGV.js.map → chunk-WVGXCBOC.js.map} +0 -0
  625. /package/dist/{chunk-CRML27CO.js.map → chunk-X5YYSAZX.js.map} +0 -0
  626. /package/dist/{chunk-FZEEWOI2.js.map → chunk-XJJYSX6F.js.map} +0 -0
  627. /package/dist/{chunk-UG6VXIOK.js.map → chunk-XSTNGNJP.js.map} +0 -0
  628. /package/dist/{chunk-YDPAE2RD.js.map → chunk-YFLLGRXO.js.map} +0 -0
  629. /package/dist/{chunk-LPNCR4QK.js.map → chunk-YXFCALVT.js.map} +0 -0
  630. /package/dist/{chunk-Q4WONDMJ.js.map → chunk-YYGZJPOK.js.map} +0 -0
  631. /package/dist/{chunk-GTO56JY5.js.map → chunk-ZJPM7GZ3.js.map} +0 -0
  632. /package/dist/{chunk-LOXHYCVS.js.map → chunk-ZW4VXELZ.js.map} +0 -0
  633. /package/dist/{contradiction-scan-AKUWPX5N.js.map → contradiction-scan-NOYMFG66.js.map} +0 -0
  634. /package/dist/{first-start-migration-4NETATFF.js.map → first-start-migration-KHIMCBIC.js.map} +0 -0
  635. /package/dist/{purge-GB7PZHT2.js.map → purge-OP6BEDFY.js.map} +0 -0
  636. /package/dist/{resolution-XWBPKYFB.js.map → resolution-4DLI3IOR.js.map} +0 -0
  637. /package/dist/{tier-stats-4B5IJ3NE.js.map → tier-stats-2TOW3QNL.js.map} +0 -0
@@ -6,14 +6,14 @@ import {
6
6
  loadSyncState,
7
7
  syncWearableSource,
8
8
  wearableSourceLabel
9
- } from "./chunk-UEBDCMOO.js";
9
+ } from "./chunk-3TSU662L.js";
10
10
  import {
11
11
  CompressionGuidelineCoordinator
12
12
  } from "./chunk-UXREWVW4.js";
13
13
  import {
14
14
  ActivityStore,
15
15
  MaintenanceScheduler
16
- } from "./chunk-LPNCR4QK.js";
16
+ } from "./chunk-YXFCALVT.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-3SZD4CYO.js";
35
+ } from "./chunk-OAJMQKQR.js";
36
36
  import {
37
37
  SharedContextManager
38
38
  } from "./chunk-VI637ILW.js";
@@ -58,13 +58,13 @@ import {
58
58
  } from "./chunk-YRFAYOFQ.js";
59
59
  import {
60
60
  decideTierTransition
61
- } from "./chunk-EGBDFJ36.js";
61
+ } from "./chunk-DD5JFCWM.js";
62
62
  import {
63
63
  TmtBuilder
64
64
  } from "./chunk-ECZU5BJH.js";
65
65
  import {
66
66
  HourlySummarizer
67
- } from "./chunk-EUYWQ7TS.js";
67
+ } from "./chunk-IEZ6CGTW.js";
68
68
  import {
69
69
  buildTargetedFactRecallSection,
70
70
  shouldRecallTargetedFactEvidence
@@ -157,10 +157,10 @@ import {
157
157
  } from "./chunk-OH7QLI6W.js";
158
158
  import {
159
159
  ExtractionEngine
160
- } from "./chunk-U7EW2W4W.js";
160
+ } from "./chunk-XKNHFDTT.js";
161
161
  import {
162
162
  parseMemoryActionEligibilityContext
163
- } from "./chunk-7BDZTALN.js";
163
+ } from "./chunk-AJTG3CP7.js";
164
164
  import {
165
165
  ModelRegistry
166
166
  } from "./chunk-WLZYGLJ4.js";
@@ -173,7 +173,7 @@ import {
173
173
  getVerdictKind,
174
174
  judgeFactDurability,
175
175
  validateProcedureExtraction
176
- } from "./chunk-HSZMX3ZJ.js";
176
+ } from "./chunk-ODW5GDFE.js";
177
177
  import {
178
178
  buildEventOrderRecallSection
179
179
  } from "./chunk-645WOU5I.js";
@@ -191,7 +191,7 @@ import {
191
191
  buildEntityRecallSection,
192
192
  entityRecentTranscriptLookbackHours,
193
193
  readRecentEntityTranscriptEntries
194
- } from "./chunk-PU56CXZA.js";
194
+ } from "./chunk-EZSCW4EM.js";
195
195
  import {
196
196
  planEpisodeWindowsWithFallback
197
197
  } from "./chunk-T3GIETKV.js";
@@ -206,14 +206,14 @@ import {
206
206
  } from "./chunk-LVXBC6YB.js";
207
207
  import {
208
208
  refreshConvergedNamespaces
209
- } from "./chunk-AZMLH5UT.js";
209
+ } from "./chunk-33MFRY25.js";
210
210
  import {
211
211
  builtInConnectorPackageSpecifier,
212
212
  ensureBuiltInWearableConnectors,
213
213
  getWearableConnector,
214
214
  listWearableConnectors,
215
215
  screenCandidateFact
216
- } from "./chunk-JYSN42VN.js";
216
+ } from "./chunk-6QDXA26G.js";
217
217
  import {
218
218
  RoutingRulesStore
219
219
  } from "./chunk-TBUEE7XF.js";
@@ -223,14 +223,14 @@ import {
223
223
  import {
224
224
  compareVerifiedEpisodeResults,
225
225
  searchVerifiedEpisodes
226
- } from "./chunk-GTO56JY5.js";
226
+ } from "./chunk-ZJPM7GZ3.js";
227
227
  import {
228
228
  ThreadingManager
229
229
  } from "./chunk-OJP3N7UK.js";
230
230
  import {
231
231
  compareVerifiedSemanticRuleResults,
232
232
  searchVerifiedSemanticRules
233
- } from "./chunk-P36Z4JRA.js";
233
+ } from "./chunk-I5VB44ZK.js";
234
234
  import {
235
235
  searchWorkProductLedgerEntries
236
236
  } from "./chunk-NRLELHAY.js";
@@ -243,17 +243,17 @@ import {
243
243
  import {
244
244
  runNamespaceMaintenanceFanout,
245
245
  summarizeNamespaceMaintenanceHealth
246
- } from "./chunk-MY2BC6UE.js";
246
+ } from "./chunk-2LBAFHOQ.js";
247
247
  import {
248
248
  planNamespaceMaintenance
249
- } from "./chunk-WNXYT4MK.js";
249
+ } from "./chunk-72OIT7KS.js";
250
250
  import {
251
251
  isAboveImportanceThreshold,
252
252
  scoreImportance
253
253
  } from "./chunk-UOBPK2OS.js";
254
254
  import {
255
255
  searchHarmonicRetrieval
256
- } from "./chunk-TUHBYJXL.js";
256
+ } from "./chunk-VQ4AMTGZ.js";
257
257
  import {
258
258
  EXTRACTION_JUDGE_VERDICT_CATEGORY,
259
259
  recordJudgeVerdict
@@ -281,7 +281,7 @@ import {
281
281
  materializeAfterSemanticConsolidation,
282
282
  parseConsolidationResponse,
283
283
  parseOperatorAwareConsolidationResponse
284
- } from "./chunk-UPFNQJC7.js";
284
+ } from "./chunk-CN4VKV3S.js";
285
285
  import {
286
286
  semanticChunkContent
287
287
  } from "./chunk-2GBFKHBZ.js";
@@ -290,7 +290,7 @@ import {
290
290
  } from "./chunk-6TBIWIAG.js";
291
291
  import {
292
292
  SmartBuffer
293
- } from "./chunk-JOZUBF4A.js";
293
+ } from "./chunk-NACLNNFQ.js";
294
294
  import {
295
295
  buildRecallQueryPolicy
296
296
  } from "./chunk-C6WMSXCJ.js";
@@ -312,7 +312,7 @@ import {
312
312
  } from "./chunk-MI2OTWV5.js";
313
313
  import {
314
314
  detectMeetings
315
- } from "./chunk-7WOWGRAU.js";
315
+ } from "./chunk-PEBH5DCK.js";
316
316
  import {
317
317
  compileCorrectionRule,
318
318
  correctionsFilePath,
@@ -325,19 +325,14 @@ import {
325
325
  } from "./chunk-QW27DOHG.js";
326
326
  import {
327
327
  MeetingsInputError
328
- } from "./chunk-KZIF6XHX.js";
328
+ } from "./chunk-KXIXO76C.js";
329
329
  import {
330
330
  WearablesInputError,
331
331
  describeErrorForOperator
332
332
  } from "./chunk-V7IZKJI3.js";
333
333
  import {
334
334
  NamespaceCatalog
335
- } from "./chunk-3PKAS6VL.js";
336
- import {
337
- activityDayWindow,
338
- isValidActivityDate,
339
- timezoneOffsetIso
340
- } from "./chunk-M6L7HI7R.js";
335
+ } from "./chunk-GX6FTSYH.js";
341
336
  import {
342
337
  recordDreamsPhaseRun
343
338
  } from "./chunk-EQWEIIKQ.js";
@@ -354,10 +349,10 @@ import {
354
349
  filterRecallCandidates,
355
350
  isGenericRecallExcludedPath,
356
351
  isTopLevelArchivePath
357
- } from "./chunk-OXRRJXPR.js";
352
+ } from "./chunk-IHGMRDEE.js";
358
353
  import {
359
354
  importCapsule
360
- } from "./chunk-PMVPCZJZ.js";
355
+ } from "./chunk-CTCGHNWN.js";
361
356
  import {
362
357
  isCodingGraphInstalled
363
358
  } from "./chunk-VQ7B2Q6M.js";
@@ -397,7 +392,7 @@ import {
397
392
  } from "./chunk-IVKIODHO.js";
398
393
  import {
399
394
  shouldSkipImplicitExtraction
400
- } from "./chunk-CRML27CO.js";
395
+ } from "./chunk-X5YYSAZX.js";
401
396
  import {
402
397
  boundRecallContextComposition,
403
398
  composeRecallContext,
@@ -408,7 +403,7 @@ import {
408
403
  } from "./chunk-7ZNJN5WZ.js";
409
404
  import {
410
405
  NamespaceStorageRouter
411
- } from "./chunk-F7XUD3PL.js";
406
+ } from "./chunk-HJXA6ZM7.js";
412
407
  import {
413
408
  GraphIndex
414
409
  } from "./chunk-YMOPYG3K.js";
@@ -452,7 +447,7 @@ import {
452
447
  throwIfRecallAborted,
453
448
  tokenizeRecallQuery,
454
449
  utcDateKeysForLocalDay
455
- } from "./chunk-YEUXERJ6.js";
450
+ } from "./chunk-RDGKVH6T.js";
456
451
  import {
457
452
  inferIntentFromText,
458
453
  intentCompatibilityScore,
@@ -465,7 +460,7 @@ import {
465
460
  } from "./chunk-TBBDFYXW.js";
466
461
  import {
467
462
  buildChainFollowupGenerator
468
- } from "./chunk-HMZKGHMD.js";
463
+ } from "./chunk-FESUGFIL.js";
469
464
  import {
470
465
  QmdResultResolver,
471
466
  StorageManager,
@@ -484,7 +479,7 @@ import {
484
479
  reconstructFusionInputs,
485
480
  selfDeps,
486
481
  serializeFusionDay
487
- } from "./chunk-W2BAGGEW.js";
482
+ } from "./chunk-GEJKYA7D.js";
488
483
  import {
489
484
  bodyIsEscaped,
490
485
  decodeTranscriptBody,
@@ -501,12 +496,12 @@ import {
501
496
  import {
502
497
  NamespaceSearchRouter,
503
498
  namespaceCollectionName
504
- } from "./chunk-ODU2CNNX.js";
499
+ } from "./chunk-FYWLSFFS.js";
505
500
  import {
506
501
  createConversationIndexRuntime,
507
502
  createSearchBackend,
508
503
  isSearchBackendEnabled
509
- } from "./chunk-4QEYREAV.js";
504
+ } from "./chunk-HNPE66LB.js";
510
505
  import {
511
506
  NoopSearchBackend
512
507
  } from "./chunk-CYEPCZN5.js";
@@ -529,15 +524,7 @@ import {
529
524
  applyFaithfulnessVerdict,
530
525
  createFaithfulnessCounters,
531
526
  runFaithfulnessGateBatch
532
- } from "./chunk-UG6VXIOK.js";
533
- import {
534
- TAG_LIMITS,
535
- composeMemoryEnvelope,
536
- isMemoryCategory
537
- } from "./chunk-H2YSH3DG.js";
538
- import {
539
- normalizeTags
540
- } from "./chunk-BT7NVCML.js";
527
+ } from "./chunk-XSTNGNJP.js";
541
528
  import {
542
529
  checkCorpusReadAbort
543
530
  } from "./chunk-5GINB5LC.js";
@@ -559,7 +546,7 @@ import {
559
546
  requestEntityCanonicalIdReconcile,
560
547
  requestEntityCanonicalIdReconcileSync,
561
548
  withRawEntityPageMutation
562
- } from "./chunk-ZVPVTPGI.js";
549
+ } from "./chunk-NNZFPYYX.js";
563
550
  import {
564
551
  applyTemporalSupersession,
565
552
  applyTemporalSupersessionPrimaryMutation,
@@ -572,6 +559,14 @@ import {
572
559
  isValidAsOf,
573
560
  isValidityExpiredNow
574
561
  } from "./chunk-6CIAGZ6X.js";
562
+ import {
563
+ TAG_LIMITS,
564
+ composeMemoryEnvelope,
565
+ isMemoryCategory
566
+ } from "./chunk-WKAXBXVA.js";
567
+ import {
568
+ normalizeTags
569
+ } from "./chunk-BT7NVCML.js";
575
570
  import {
576
571
  buildQmdRecallCacheKey,
577
572
  getCachedQmdRecall,
@@ -581,7 +576,7 @@ import {
581
576
  FallbackLlmClient,
582
577
  fallbackLlmRuntimeContextFromConfig,
583
578
  gatewayTaskChainOptions
584
- } from "./chunk-UW5NPZJ2.js";
579
+ } from "./chunk-JALOAKSZ.js";
585
580
  import {
586
581
  estimateTokenCount
587
582
  } from "./chunk-TOTT6S2V.js";
@@ -591,6 +586,11 @@ import {
591
586
  import {
592
587
  buildProcedurePersistBody
593
588
  } from "./chunk-QDW3E4RD.js";
589
+ import {
590
+ activityDayWindow,
591
+ isValidActivityDate,
592
+ timezoneOffsetIso
593
+ } from "./chunk-M6L7HI7R.js";
594
594
  import {
595
595
  searchCausalTrajectories
596
596
  } from "./chunk-GPFZFCRN.js";
@@ -598,7 +598,7 @@ import {
598
598
  evaluateSubjectGuard,
599
599
  isSharedPromotionTarget,
600
600
  resolveWriteSubject
601
- } from "./chunk-LDKPDODJ.js";
601
+ } from "./chunk-ME35HVDJ.js";
602
602
  import {
603
603
  parseOriginClass
604
604
  } from "./chunk-6Q3ZTEF6.js";
@@ -632,27 +632,30 @@ import {
632
632
  getConfiguredNamespaces,
633
633
  resolveNamespaceFromStorageDir,
634
634
  resolveScopePlan
635
- } from "./chunk-Q57GOHLF.js";
635
+ } from "./chunk-EGALNSZ4.js";
636
636
  import {
637
637
  attachCitation,
638
638
  hasCitationForTemplate,
639
639
  stripCitationForTemplate
640
640
  } from "./chunk-J6A3CX5N.js";
641
- import {
642
- assertPathInsideRoot
643
- } from "./chunk-GCASGYIO.js";
644
641
  import {
645
642
  inferMemoryStatus,
646
643
  isActiveMemoryStatus,
647
644
  toMemoryPathRel
648
645
  } from "./chunk-7RJUVTVF.js";
646
+ import {
647
+ openBetterSqlite3
648
+ } from "./chunk-RL6NEVXT.js";
649
+ import {
650
+ assertPathInsideRoot
651
+ } from "./chunk-GCASGYIO.js";
649
652
  import {
650
653
  excludeSupportPassportPrivateMemories,
651
654
  isSupportPassportPrivateMemory
652
- } from "./chunk-XDL5CYZN.js";
655
+ } from "./chunk-EEOUMG3J.js";
653
656
  import {
654
657
  ContentHashIndex
655
- } from "./chunk-BEC4YBNA.js";
658
+ } from "./chunk-TVW4C7PV.js";
656
659
  import {
657
660
  normalizeAttributePairs,
658
661
  stripAttributesSuffix
@@ -709,7 +712,7 @@ import {
709
712
  import {
710
713
  lcmSessionKeyForNamespace,
711
714
  resolveCodingNamespaceOverlay
712
- } from "./chunk-J2WC5LF4.js";
715
+ } from "./chunk-QBC33MPY.js";
713
716
  import {
714
717
  expandTildePath
715
718
  } from "./chunk-EYIEWJNI.js";
@@ -737,16 +740,16 @@ import {
737
740
  } from "./chunk-FF4KLI5W.js";
738
741
  import {
739
742
  SecureStoreLockedError
740
- } from "./chunk-XQ3HXAQH.js";
741
- import {
742
- isErrnoCode
743
- } from "./chunk-5UZXUTVO.js";
743
+ } from "./chunk-ET2CNMLD.js";
744
744
  import {
745
745
  ALL_CATEGORY_DIRS,
746
746
  ALL_CATEGORY_KEYS,
747
747
  RECALL_FALLBACK_DIRS,
748
748
  getCategoryDir
749
749
  } from "./chunk-VS2IYZRU.js";
750
+ import {
751
+ isErrnoCode
752
+ } from "./chunk-5UZXUTVO.js";
750
753
  import {
751
754
  log
752
755
  } from "./chunk-3WCASNQZ.js";
@@ -2303,7 +2306,7 @@ var RecallRerankCoordinator = class _RecallRerankCoordinator {
2303
2306
  namespaces,
2304
2307
  {
2305
2308
  readNamespaceMemories: async (ns) => (await this.getStorage(ns)).readAllMemories(),
2306
- readMemoryFrontmatter: async (path34, preferredNamespace) => {
2309
+ readMemoryFrontmatter: async (path35, preferredNamespace) => {
2307
2310
  if (!fallbackReader) {
2308
2311
  for (const ns of namespaces) {
2309
2312
  try {
@@ -2315,7 +2318,7 @@ var RecallRerankCoordinator = class _RecallRerankCoordinator {
2315
2318
  }
2316
2319
  if (!fallbackReader) return null;
2317
2320
  const memory = await this.readQmdResultMemory(
2318
- path34,
2321
+ path35,
2319
2322
  fallbackReader,
2320
2323
  namespaces,
2321
2324
  preferredNamespace
@@ -15629,7 +15632,7 @@ var OrchestratorInitCoordinator = class {
15629
15632
  if (signal.aborted) return;
15630
15633
  if (lifecycleCaps.lifecyclePolicy && resolveQmdCapabilities(this.deps.config).qmdTierMigration) {
15631
15634
  try {
15632
- const { runFirstStartMigration } = await import("./first-start-migration-4NETATFF.js");
15635
+ const { runFirstStartMigration } = await import("./first-start-migration-KHIMCBIC.js");
15633
15636
  const result = await runFirstStartMigration({
15634
15637
  storage: this.deps.storage,
15635
15638
  config: this.deps.config,
@@ -15652,7 +15655,7 @@ var OrchestratorInitCoordinator = class {
15652
15655
  if (signal.aborted) return;
15653
15656
  if (!this.deps.wearablesAutoSyncHandle && this.deps.config.wearables.enabled && this.deps.config.wearables.autoSyncEnabled && Object.values(this.deps.config.wearables.sources).some((source) => source.enabled)) {
15654
15657
  try {
15655
- const { startWearablesAutoSync } = await import("./auto-sync-2YPITIWN.js");
15658
+ const { startWearablesAutoSync } = await import("./auto-sync-Q6Q2FVSC.js");
15656
15659
  if (signal.aborted) return;
15657
15660
  this.deps.wearablesAutoSyncHandle = startWearablesAutoSync(
15658
15661
  {
@@ -22298,9 +22301,9 @@ function readStructuralSymbol(entry) {
22298
22301
  const rec = entry;
22299
22302
  const symbol = typeof rec.symbol === "string" ? rec.symbol.trim() : "";
22300
22303
  if (!symbol) return null;
22301
- const path34 = typeof rec.path === "string" && rec.path.length > 0 ? rec.path : void 0;
22304
+ const path35 = typeof rec.path === "string" && rec.path.length > 0 ? rec.path : void 0;
22302
22305
  const kind = typeof rec.kind === "string" && rec.kind.length > 0 ? rec.kind : void 0;
22303
- const item = path34 !== void 0 && kind !== void 0 ? { symbol, path: path34, kind } : path34 !== void 0 ? { symbol, path: path34 } : kind !== void 0 ? { symbol, kind } : { symbol };
22306
+ const item = path35 !== void 0 && kind !== void 0 ? { symbol, path: path35, kind } : path35 !== void 0 ? { symbol, path: path35 } : kind !== void 0 ? { symbol, kind } : { symbol };
22304
22307
  return item;
22305
22308
  }
22306
22309
  function classifySpawnError(err) {
@@ -25864,6 +25867,438 @@ function publisherForConnector(connectorId) {
25864
25867
  return publisherFor(hostIdForConnector(connectorId));
25865
25868
  }
25866
25869
 
25870
+ // src/activity/timeline/categories.ts
25871
+ var TIMELINE_RESERVED_UNKNOWN = "system.unknown";
25872
+ var TIMELINE_RESERVED_IDLE = "system.idle";
25873
+ var TIMELINE_RESERVED_PAUSE = "system.pause";
25874
+ var COLOR_PATTERN = /^#[0-9a-fA-F]{6}$/;
25875
+ function isTimelineCategoryId(id) {
25876
+ const parts = id.split(".");
25877
+ if (parts.length === 0) return false;
25878
+ for (const part of parts) {
25879
+ if (part.length === 0) return false;
25880
+ const first = part.charCodeAt(0);
25881
+ if (first < 97 || first > 122) return false;
25882
+ for (let i = 1; i < part.length; i += 1) {
25883
+ const code = part.charCodeAt(i);
25884
+ const ok = code >= 97 && code <= 122 || code >= 48 && code <= 57 || code === 45;
25885
+ if (!ok) return false;
25886
+ }
25887
+ }
25888
+ return true;
25889
+ }
25890
+ var DEFAULT_TIMELINE_CATEGORIES = [
25891
+ { id: "development", name: "Development", color: "#3b82f6", description: "Editors, terminals, IDEs, and code forges.", order: 10 },
25892
+ { id: "communication", name: "Communication", color: "#f59e0b", description: "Mail, chat, and meetings.", order: 20 },
25893
+ { id: "browsing", name: "Browsing", color: "#6366f1", description: "Web browsing without a more specific domain match.", order: 30 },
25894
+ { id: "documents", name: "Documents", color: "#10b981", description: "Writing, notes, and PDFs.", order: 40 },
25895
+ { id: "design", name: "Design & Media", color: "#ec4899", description: "Design, audio, and video tools.", order: 50 },
25896
+ { id: "data", name: "Data & Analysis", color: "#84cc16", description: "Spreadsheets, dashboards, and databases.", order: 60 },
25897
+ { id: "admin", name: "Admin", color: "#64748b", description: "File managers, settings, and system utilities.", order: 70 },
25898
+ { id: "entertainment", name: "Entertainment", color: "#ef4444", description: "Video, music, and games.", order: 80 },
25899
+ { id: TIMELINE_RESERVED_UNKNOWN, name: "Uncategorized", color: "#9ca3af", description: "Activity with no matching classification signal. Kept visible, never silently reassigned.", order: 990, system: true },
25900
+ { id: TIMELINE_RESERVED_IDLE, name: "Idle", color: "#d1d5db", description: "Derived gap between cards where no activity was observed.", order: 991, system: true, idle: true },
25901
+ { id: TIMELINE_RESERVED_PAUSE, name: "Paused", color: "#a78bfa", description: "User-declared pause interval.", order: 992, system: true }
25902
+ ];
25903
+ function validateTimelineCategories(categories) {
25904
+ if (!Array.isArray(categories) || categories.length === 0) {
25905
+ throw new RangeError("timeline categories must be a non-empty array");
25906
+ }
25907
+ const seen = /* @__PURE__ */ new Set();
25908
+ for (const category of categories) {
25909
+ if (typeof category.id !== "string" || !isTimelineCategoryId(category.id)) {
25910
+ throw new RangeError(`timeline category id must be dotted kebab-case: ${String(category.id)}`);
25911
+ }
25912
+ if (seen.has(category.id)) {
25913
+ throw new RangeError(`timeline category id must be unique: ${category.id}`);
25914
+ }
25915
+ seen.add(category.id);
25916
+ if (typeof category.name !== "string" || category.name.length === 0) {
25917
+ throw new RangeError(`timeline category ${category.id}: name must be a non-empty string`);
25918
+ }
25919
+ if (typeof category.color !== "string" || !COLOR_PATTERN.test(category.color)) {
25920
+ throw new RangeError(`timeline category ${category.id}: color must be #RRGGBB`);
25921
+ }
25922
+ if (typeof category.description !== "string" || category.description.length === 0) {
25923
+ throw new RangeError(`timeline category ${category.id}: description must be a non-empty string`);
25924
+ }
25925
+ if (!Number.isInteger(category.order)) {
25926
+ throw new RangeError(`timeline category ${category.id}: order must be an integer`);
25927
+ }
25928
+ const isReserved = category.id === TIMELINE_RESERVED_UNKNOWN || category.id === TIMELINE_RESERVED_IDLE || category.id === TIMELINE_RESERVED_PAUSE;
25929
+ if (isReserved && category.system !== true) {
25930
+ throw new RangeError(`timeline category ${category.id} is reserved and must set system: true`);
25931
+ }
25932
+ if (!isReserved) {
25933
+ if (category.id.startsWith("system.")) {
25934
+ throw new RangeError(`timeline category id namespace "system." is reserved: ${category.id}`);
25935
+ }
25936
+ if (category.system === true || category.idle === true) {
25937
+ throw new RangeError(`timeline category ${category.id}: only reserved categories may set system/idle flags`);
25938
+ }
25939
+ }
25940
+ }
25941
+ const idle = categories.find((category) => category.id === TIMELINE_RESERVED_IDLE);
25942
+ if (idle !== void 0 && idle.idle !== true) {
25943
+ throw new RangeError(`timeline category ${TIMELINE_RESERVED_IDLE} must set idle: true`);
25944
+ }
25945
+ for (const reserved of [TIMELINE_RESERVED_UNKNOWN, TIMELINE_RESERVED_IDLE, TIMELINE_RESERVED_PAUSE]) {
25946
+ if (!categories.some((category) => category.id === reserved)) {
25947
+ throw new RangeError(`timeline categories must include the reserved "${reserved}" category`);
25948
+ }
25949
+ }
25950
+ }
25951
+ function sortTimelineCategories(categories) {
25952
+ return [...categories].sort((a, b) => a.order - b.order || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
25953
+ }
25954
+
25955
+ // src/activity/timeline/classify.ts
25956
+ var DOMAIN_CONFIDENCE = 0.85;
25957
+ var APP_CONFIDENCE = 0.9;
25958
+ var TITLE_CONFIDENCE = 0.7;
25959
+ var UNKNOWN_CONFIDENCE = 0;
25960
+ var RULES = [
25961
+ { categoryId: "development", domains: ["github.com", "gitlab.com", "stackoverflow.com", "linear.app", "atlassian.net"] },
25962
+ { categoryId: "communication", domains: ["mail.google.com", "gmail.com", "outlook.com", "outlook.office.com", "slack.com"] },
25963
+ { categoryId: "design", domains: ["figma.com", "canva.com"] },
25964
+ { categoryId: "documents", domains: ["docs.google.com", "notion.so", "dropbox.com"] },
25965
+ { categoryId: "entertainment", domains: ["youtube.com", "netflix.com", "spotify.com"] },
25966
+ { categoryId: "data", domains: ["metabase", "tableau", "grafana"] },
25967
+ { categoryId: "development", apps: ["code", "cursor", "neovim", "vim", "emacs", "xcode", "intellij", "terminal", "iterm", "warp", "wezterm", "kitty", "alacritty", "zed", "sublime", "datagrip"] },
25968
+ { categoryId: "communication", apps: ["slack", "discord", "teams", "mail", "outlook", "thunderbird", "messages", "signal", "whatsapp", "telegram", "zoom", "facetime", "meet"] },
25969
+ { categoryId: "design", apps: ["figma", "sketch", "photoshop", "illustrator", "indesign", "premiere", "after effects", "davinci", "blender", "ableton", "logic pro", "final cut"] },
25970
+ { categoryId: "documents", apps: ["word", "pages", "notion", "obsidian", "notes", "typora", "bear", "preview", "acrobat"] },
25971
+ { categoryId: "data", apps: ["excel", "numbers", "sheets", "tableau"] },
25972
+ { categoryId: "admin", apps: ["finder", "settings", "system preferences", "activity monitor", "files", "explorer"] },
25973
+ { categoryId: "entertainment", apps: ["spotify", "music", "youtube", "vlc", "quicktime", "steam", "netflix", "podcast", "tv"] },
25974
+ { categoryId: "browsing", apps: ["chrome", "safari", "firefox", "edge", "arc", "brave", "browser"] },
25975
+ { categoryId: "development", titles: ["pull request", "merge conflict", "terminal \u2014", "repository"] },
25976
+ { categoryId: "communication", titles: ["inbox"] },
25977
+ { categoryId: "data", titles: ["spreadsheet", "pivot table"] }
25978
+ ];
25979
+ function classifyTimelineObservation(observation, categories) {
25980
+ const app = observation.app.toLowerCase();
25981
+ const title = observation.windowTitle.toLowerCase();
25982
+ const domain = observation.browserUrl === void 0 ? "" : hostOf(observation.browserUrl);
25983
+ for (const rule of RULES) {
25984
+ if (rule.domains !== void 0 && domain !== "" && rule.domains.some((pattern) => domain.includes(pattern))) {
25985
+ return checkedRule(rule, DOMAIN_CONFIDENCE, categories);
25986
+ }
25987
+ }
25988
+ for (const rule of RULES) {
25989
+ if (rule.apps !== void 0 && rule.apps.some((pattern) => app.includes(pattern))) {
25990
+ return checkedRule(rule, APP_CONFIDENCE, categories);
25991
+ }
25992
+ }
25993
+ for (const rule of RULES) {
25994
+ if (rule.titles !== void 0 && rule.titles.some((pattern) => title.includes(pattern))) {
25995
+ return checkedRule(rule, TITLE_CONFIDENCE, categories);
25996
+ }
25997
+ }
25998
+ return { categoryId: TIMELINE_RESERVED_UNKNOWN, confidence: UNKNOWN_CONFIDENCE };
25999
+ }
26000
+ function checkedRule(rule, confidence, categories) {
26001
+ if (!categories.some((category) => category.id === rule.categoryId)) {
26002
+ throw new RangeError(`timeline classification rule targets unknown category: ${rule.categoryId}`);
26003
+ }
26004
+ return { categoryId: rule.categoryId, confidence };
26005
+ }
26006
+ function hostOf(url) {
26007
+ try {
26008
+ return new URL(url).hostname.toLowerCase();
26009
+ } catch {
26010
+ return url.toLowerCase();
26011
+ }
26012
+ }
26013
+
26014
+ // src/activity/timeline/build.ts
26015
+ import { createHash as createHash9 } from "crypto";
26016
+ var TIMELINE_FORMAT_VERSION = 1;
26017
+ var TIMELINE_MERGE_GAP_MS = 12e4;
26018
+ var TIMELINE_MAX_DWELL_MS = 15 * 6e4;
26019
+ function canonicalMs(iso) {
26020
+ const parsed = Date.parse(iso);
26021
+ return Number.isFinite(parsed) ? parsed : Number.NaN;
26022
+ }
26023
+ function isoOf(ms) {
26024
+ return new Date(ms).toISOString();
26025
+ }
26026
+ function evidenceKeyOf(observation) {
26027
+ return `${observation.machine}|${isoOf(canonicalMs(observation.capturedAtUtc))}|${observation.contentHash}`;
26028
+ }
26029
+ function stableCardId(identity) {
26030
+ return `tlc_${createHash9("sha256").update(identity, "utf8").digest("hex").slice(0, 16)}`;
26031
+ }
26032
+ function formatDurationMinutes(ms) {
26033
+ return `${Math.round(ms / 6e4)}m`;
26034
+ }
26035
+ function unionIntervals(intervals) {
26036
+ const sorted = [...intervals].sort((a, b) => a[0] - b[0] || a[1] - b[1]);
26037
+ const merged = [];
26038
+ for (const interval of sorted) {
26039
+ const last = merged[merged.length - 1];
26040
+ if (last !== void 0 && interval[0] <= last[1]) {
26041
+ last[1] = Math.max(last[1], interval[1]);
26042
+ } else {
26043
+ merged.push([interval[0], interval[1]]);
26044
+ }
26045
+ }
26046
+ return merged;
26047
+ }
26048
+ function subtractInterval(start, end, cutStart, cutEnd) {
26049
+ if (cutEnd <= start || cutStart >= end) return [[start, end]];
26050
+ const pieces = [];
26051
+ if (cutStart > start) pieces.push([start, cutStart]);
26052
+ if (cutEnd < end) pieces.push([cutEnd, end]);
26053
+ return pieces;
26054
+ }
26055
+ function mergeTrack(machine, track, pauses) {
26056
+ const cards = [];
26057
+ let current = [];
26058
+ const pauseStartsAfter = (fromMs, toMs) => pauses.some(([ps, pe]) => ps >= fromMs && ps < toMs && pe > ps);
26059
+ for (const observation of track) {
26060
+ const last = current[current.length - 1];
26061
+ if (last !== void 0) {
26062
+ const gap = canonicalMs(observation.capturedAtUtc) - canonicalMs(last.capturedAtUtc);
26063
+ const sameKey = observation.app === last.app && observation.windowTitle === last.windowTitle;
26064
+ const pauseBetween = pauseStartsAfter(canonicalMs(last.capturedAtUtc), canonicalMs(observation.capturedAtUtc));
26065
+ if (!sameKey || gap > TIMELINE_MERGE_GAP_MS || pauseBetween) {
26066
+ cards.push({ machine, observations: current });
26067
+ current = [];
26068
+ }
26069
+ }
26070
+ current.push(observation);
26071
+ }
26072
+ if (current.length > 0) cards.push({ machine, observations: current });
26073
+ return cards;
26074
+ }
26075
+ function buildTimelineDay(input) {
26076
+ const categories = input.categories ?? DEFAULT_TIMELINE_CATEGORIES;
26077
+ validateTimelineCategories(categories);
26078
+ const window = activityDayWindow(input.date, input.timezone);
26079
+ const dayStartMs = Date.parse(window.startUtc);
26080
+ const dayEndMs = Date.parse(window.endUtc);
26081
+ const observations = input.observations.filter((observation) => Number.isFinite(canonicalMs(observation.capturedAtUtc))).filter((observation) => {
26082
+ const ms = canonicalMs(observation.capturedAtUtc);
26083
+ return ms >= dayStartMs && ms < dayEndMs;
26084
+ });
26085
+ for (const pause of input.pauses ?? []) {
26086
+ const startMs = canonicalMs(pause.startUtc);
26087
+ const endMs = canonicalMs(pause.endUtc);
26088
+ if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || startMs >= endMs) {
26089
+ throw new RangeError("timeline pause must be a valid half-open [startUtc, endUtc) interval");
26090
+ }
26091
+ }
26092
+ const pauseIntervals = unionIntervals(
26093
+ (input.pauses ?? []).map((pause) => [canonicalMs(pause.startUtc), canonicalMs(pause.endUtc)]).map(([startMs, endMs]) => [Math.max(startMs, dayStartMs), Math.min(endMs, dayEndMs)]).filter(([startMs, endMs]) => endMs > startMs)
26094
+ );
26095
+ const tracks = /* @__PURE__ */ new Map();
26096
+ for (const observation of observations) {
26097
+ const track = tracks.get(observation.machine) ?? [];
26098
+ track.push(observation);
26099
+ tracks.set(observation.machine, track);
26100
+ }
26101
+ for (const track of tracks.values()) {
26102
+ track.sort(
26103
+ (a, b) => canonicalMs(a.capturedAtUtc) - canonicalMs(b.capturedAtUtc) || (a.contentHash < b.contentHash ? -1 : a.contentHash > b.contentHash ? 1 : 0)
26104
+ );
26105
+ }
26106
+ const cards = [];
26107
+ const machines = [...tracks.keys()].sort();
26108
+ for (const machine of machines) {
26109
+ const track = tracks.get(machine) ?? [];
26110
+ const merged = mergeTrack(machine, track, pauseIntervals);
26111
+ const trackIntervals = [];
26112
+ for (let index = 0; index < merged.length; index++) {
26113
+ const group = merged[index];
26114
+ const first = group.observations[0];
26115
+ const last = group.observations[group.observations.length - 1];
26116
+ const startMs = canonicalMs(first.capturedAtUtc);
26117
+ const lastMs = canonicalMs(last.capturedAtUtc);
26118
+ const nextObsMs = index + 1 < merged.length ? canonicalMs(merged[index + 1].observations[0].capturedAtUtc) : Number.POSITIVE_INFINITY;
26119
+ const pauseStartMs = pauseIntervals.find(([ps]) => ps > lastMs)?.[0] ?? Number.POSITIVE_INFINITY;
26120
+ const endMs = Math.max(lastMs, Math.min(lastMs + TIMELINE_MAX_DWELL_MS, nextObsMs, pauseStartMs, dayEndMs));
26121
+ trackIntervals.push([startMs, endMs]);
26122
+ const evidenceIds = group.observations.map((observation) => observation.id);
26123
+ const classification = classifyTimelineObservation(first, categories);
26124
+ cards.push({
26125
+ id: stableCardId(`activity|${machine}|${evidenceKeyOf(first)}|${evidenceKeyOf(last)}`),
26126
+ kind: "activity",
26127
+ title: first.windowTitle.length > 0 ? first.windowTitle : first.app,
26128
+ summary: `${first.app} \xB7 ${machine} \xB7 ${evidenceIds.length} obs \xB7 ${formatDurationMinutes(endMs - startMs)}`,
26129
+ categoryId: classification.categoryId,
26130
+ confidence: classification.confidence,
26131
+ startUtc: isoOf(startMs),
26132
+ endUtc: isoOf(endMs),
26133
+ dayKey: input.date,
26134
+ timezone: input.timezone,
26135
+ machine,
26136
+ evidenceIds,
26137
+ evidenceRange: { firstKey: evidenceKeyOf(first), lastKey: evidenceKeyOf(last) }
26138
+ });
26139
+ }
26140
+ for (let index = 0; index + 1 < trackIntervals.length; index++) {
26141
+ const gapStart = trackIntervals[index][1];
26142
+ const gapEnd = trackIntervals[index + 1][0];
26143
+ if (gapEnd <= gapStart) continue;
26144
+ let pieces = [[gapStart, gapEnd]];
26145
+ for (const [pauseStart, pauseEnd] of pauseIntervals) {
26146
+ pieces = pieces.flatMap(([start, end]) => subtractInterval(start, end, pauseStart, pauseEnd));
26147
+ }
26148
+ for (const [start, end] of pieces) {
26149
+ cards.push({
26150
+ id: stableCardId(`idle|${machine}|${isoOf(start)}|${isoOf(end)}`),
26151
+ kind: "idle",
26152
+ title: "Idle",
26153
+ summary: `${formatDurationMinutes(end - start)} gap on ${machine}`,
26154
+ categoryId: TIMELINE_RESERVED_IDLE,
26155
+ confidence: 1,
26156
+ startUtc: isoOf(start),
26157
+ endUtc: isoOf(end),
26158
+ dayKey: input.date,
26159
+ timezone: input.timezone,
26160
+ machine,
26161
+ evidenceIds: [],
26162
+ evidenceRange: null
26163
+ });
26164
+ }
26165
+ }
26166
+ }
26167
+ for (const [pauseStart, pauseEnd] of pauseIntervals) {
26168
+ const reason = (input.pauses ?? []).find((pause) => canonicalMs(pause.startUtc) === pauseStart)?.reason;
26169
+ cards.push({
26170
+ id: stableCardId(`pause|${isoOf(pauseStart)}|${isoOf(pauseEnd)}`),
26171
+ kind: "pause",
26172
+ title: "Paused",
26173
+ summary: reason === void 0 ? `${formatDurationMinutes(pauseEnd - pauseStart)} user pause` : `${formatDurationMinutes(pauseEnd - pauseStart)} user pause \u2014 ${reason}`,
26174
+ categoryId: TIMELINE_RESERVED_PAUSE,
26175
+ confidence: 1,
26176
+ startUtc: isoOf(pauseStart),
26177
+ endUtc: isoOf(pauseEnd),
26178
+ dayKey: input.date,
26179
+ timezone: input.timezone,
26180
+ machine: null,
26181
+ evidenceIds: [],
26182
+ evidenceRange: null
26183
+ });
26184
+ }
26185
+ cards.sort((a, b) => a.startUtc < b.startUtc ? -1 : a.startUtc > b.startUtc ? 1 : a.endUtc < b.endUtc ? -1 : a.endUtc > b.endUtc ? 1 : (a.machine ?? "") < (b.machine ?? "") ? -1 : (a.machine ?? "") > (b.machine ?? "") ? 1 : a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
26186
+ return {
26187
+ formatVersion: TIMELINE_FORMAT_VERSION,
26188
+ date: input.date,
26189
+ timezone: input.timezone,
26190
+ startUtc: window.startUtc,
26191
+ endUtc: window.endUtc,
26192
+ cards
26193
+ };
26194
+ }
26195
+ function serializeTimelineDay(day) {
26196
+ return JSON.stringify(day);
26197
+ }
26198
+
26199
+ // src/activity/timeline/corrections.ts
26200
+ import { mkdirSync } from "fs";
26201
+ import path32 from "path";
26202
+ function timelineCorrectionDatabasePath(memoryDir) {
26203
+ return path32.join(memoryDir, "state", "activity-timeline.sqlite");
26204
+ }
26205
+ function rowToCorrection(row) {
26206
+ return {
26207
+ cardId: row.card_id,
26208
+ categoryId: row.category_id ?? void 0,
26209
+ title: row.title ?? void 0,
26210
+ editedAtUtc: row.edited_at_utc
26211
+ };
26212
+ }
26213
+ var TimelineCorrectionStore = class _TimelineCorrectionStore {
26214
+ db;
26215
+ constructor(db) {
26216
+ this.db = db;
26217
+ }
26218
+ static open(memoryDir) {
26219
+ mkdirSync(path32.join(memoryDir, "state"), { recursive: true });
26220
+ const db = openBetterSqlite3(timelineCorrectionDatabasePath(memoryDir));
26221
+ db.pragma("journal_mode = WAL");
26222
+ db.pragma("busy_timeout = 5000");
26223
+ db.exec(`
26224
+ CREATE TABLE IF NOT EXISTS timeline_corrections (
26225
+ card_id TEXT PRIMARY KEY,
26226
+ category_id TEXT,
26227
+ title TEXT,
26228
+ edited_at_utc TEXT NOT NULL
26229
+ );
26230
+ `);
26231
+ return new _TimelineCorrectionStore(db);
26232
+ }
26233
+ /**
26234
+ * Persist one correction. `categoryId`, when set, must exist in `categories`
26235
+ * (defaults to the built-in registry) — an unknown category is a malformed
26236
+ * edit and must fail rather than silently strand the card.
26237
+ */
26238
+ upsert(correction, categories = DEFAULT_TIMELINE_CATEGORIES) {
26239
+ validateTimelineCategories(categories);
26240
+ if (typeof correction.cardId !== "string" || correction.cardId.length === 0) {
26241
+ throw new RangeError("timeline correction requires a non-empty cardId");
26242
+ }
26243
+ if (typeof correction.editedAtUtc !== "string" || Number.isNaN(Date.parse(correction.editedAtUtc))) {
26244
+ throw new RangeError("timeline correction requires a valid editedAtUtc instant");
26245
+ }
26246
+ if (correction.categoryId === void 0 && correction.title === void 0 || correction.title !== void 0 && correction.title.length === 0) {
26247
+ throw new RangeError("timeline correction must set a categoryId and/or a non-empty title");
26248
+ }
26249
+ if (correction.categoryId !== void 0 && !categories.some((category) => category.id === correction.categoryId)) {
26250
+ throw new RangeError(`timeline correction targets unknown category: ${correction.categoryId}`);
26251
+ }
26252
+ this.db.prepare(
26253
+ `INSERT INTO timeline_corrections (card_id, category_id, title, edited_at_utc)
26254
+ VALUES (?, ?, ?, ?)
26255
+ ON CONFLICT(card_id) DO UPDATE SET category_id = excluded.category_id, title = excluded.title, edited_at_utc = excluded.edited_at_utc`
26256
+ ).run(correction.cardId, correction.categoryId ?? null, correction.title ?? null, correction.editedAtUtc);
26257
+ }
26258
+ get(cardId) {
26259
+ const row = this.db.prepare("SELECT card_id, category_id, title, edited_at_utc FROM timeline_corrections WHERE card_id = ?").get(cardId);
26260
+ return row === void 0 ? void 0 : rowToCorrection(row);
26261
+ }
26262
+ /** All corrections ordered by card id (deterministic listing). */
26263
+ list() {
26264
+ return this.db.prepare("SELECT card_id, category_id, title, edited_at_utc FROM timeline_corrections ORDER BY card_id ASC").all().map((row) => rowToCorrection(row));
26265
+ }
26266
+ /** Explicitly reset a card to its derived values; true when a correction existed. */
26267
+ reset(cardId) {
26268
+ return this.db.prepare("DELETE FROM timeline_corrections WHERE card_id = ?").run(cardId).changes > 0;
26269
+ }
26270
+ close() {
26271
+ this.db.close();
26272
+ }
26273
+ };
26274
+ function applyTimelineCorrections(cards, corrections) {
26275
+ const byCardId = new Map(corrections.map((correction) => [correction.cardId, correction]));
26276
+ return cards.map((card) => {
26277
+ const correction = byCardId.get(card.id);
26278
+ if (correction === void 0) return card;
26279
+ return {
26280
+ id: card.id,
26281
+ kind: card.kind,
26282
+ title: correction.title ?? card.title,
26283
+ summary: card.summary,
26284
+ categoryId: correction.categoryId ?? card.categoryId,
26285
+ confidence: 1,
26286
+ startUtc: card.startUtc,
26287
+ endUtc: card.endUtc,
26288
+ dayKey: card.dayKey,
26289
+ timezone: card.timezone,
26290
+ machine: card.machine,
26291
+ evidenceIds: card.evidenceIds,
26292
+ evidenceRange: card.evidenceRange,
26293
+ manualEdit: {
26294
+ ...correction.categoryId !== void 0 ? { categoryId: correction.categoryId } : {},
26295
+ ...correction.title !== void 0 ? { title: correction.title } : {},
26296
+ editedAtUtc: correction.editedAtUtc
26297
+ }
26298
+ };
26299
+ });
26300
+ }
26301
+
25867
26302
  // src/activity/memory-gen.ts
25868
26303
  var ACTIVITY_ALLOWED_CATEGORIES = {
25869
26304
  decision: true,
@@ -26121,9 +26556,9 @@ async function generateActivityMemories(date, digestBody, config, deps) {
26121
26556
  }
26122
26557
 
26123
26558
  // src/session-summaries/index.ts
26124
- import { createHash as createHash9 } from "crypto";
26559
+ import { createHash as createHash10 } from "crypto";
26125
26560
  import { lstat as lstat3, mkdir as mkdir7, readFile as readFile7, readdir as readdir4, rename, rm, stat as stat4, writeFile as writeFile7 } from "fs/promises";
26126
- import path32 from "path";
26561
+ import path33 from "path";
26127
26562
 
26128
26563
  // src/session-summaries/adapters.ts
26129
26564
  var VALID_ROLES = /* @__PURE__ */ new Set(["user", "assistant", "tool", "system", "other"]);
@@ -26623,12 +27058,12 @@ var DEFAULT_MAX_FILES = 5e3;
26623
27058
  var DEFAULT_MAX_SESSIONS = 500;
26624
27059
  var SUPPORTED_EXTENSIONS = /* @__PURE__ */ new Set([".json", ".jsonl"]);
26625
27060
  function shortHash(value, length = 16) {
26626
- return createHash9("sha256").update(value).digest("hex").slice(0, length);
27061
+ return createHash10("sha256").update(value).digest("hex").slice(0, length);
26627
27062
  }
26628
27063
  async function listTranscriptFiles(root, maxFiles) {
26629
27064
  const out = [];
26630
27065
  let truncated = false;
26631
- const entrySortKey = (entryName, isDirectory) => isDirectory ? `${entryName}${path32.sep}` : entryName;
27066
+ const entrySortKey = (entryName, isDirectory) => isDirectory ? `${entryName}${path33.sep}` : entryName;
26632
27067
  async function visit(dir) {
26633
27068
  if (truncated) return;
26634
27069
  const entries = (await readdir4(dir, { withFileTypes: true })).sort(
@@ -26638,13 +27073,13 @@ async function listTranscriptFiles(root, maxFiles) {
26638
27073
  if (truncated) return;
26639
27074
  if (entry.name.startsWith(".")) continue;
26640
27075
  if (entry.isSymbolicLink()) continue;
26641
- const fullPath = path32.join(dir, entry.name);
27076
+ const fullPath = path33.join(dir, entry.name);
26642
27077
  if (entry.isDirectory()) {
26643
27078
  await visit(fullPath);
26644
27079
  continue;
26645
27080
  }
26646
27081
  if (!entry.isFile()) continue;
26647
- const ext = path32.extname(entry.name).toLowerCase();
27082
+ const ext = path33.extname(entry.name).toLowerCase();
26648
27083
  if (!SUPPORTED_EXTENSIONS.has(ext)) continue;
26649
27084
  out.push(fullPath);
26650
27085
  if (out.length > maxFiles) {
@@ -26671,7 +27106,7 @@ function normalizeInputDir(inputDir) {
26671
27106
  if (typeof inputDir !== "string" || inputDir.trim().length === 0) {
26672
27107
  throw new Error("inputDir must be a non-empty string");
26673
27108
  }
26674
- return path32.resolve(expandTildePath(inputDir.trim()));
27109
+ return path33.resolve(expandTildePath(inputDir.trim()));
26675
27110
  }
26676
27111
  function initRoleCounts() {
26677
27112
  return {
@@ -26828,11 +27263,11 @@ async function collectLocalSessionSummaries(options) {
26828
27263
  continue;
26829
27264
  }
26830
27265
  seenFileHashes.add(fileHash);
26831
- const fileExtension = path32.extname(filePath).toLowerCase();
27266
+ const fileExtension = path33.extname(filePath).toLowerCase();
26832
27267
  const parsed = await adapter.parseFile(
26833
27268
  {
26834
27269
  content,
26835
- fileName: path32.basename(filePath),
27270
+ fileName: path33.basename(filePath),
26836
27271
  fileExtension,
26837
27272
  fileRef: fileHash
26838
27273
  },
@@ -26888,7 +27323,7 @@ async function collectLocalSessionSummaries(options) {
26888
27323
  }
26889
27324
  async function readRedactionConfig(pathLike) {
26890
27325
  if (!pathLike) return void 0;
26891
- const raw = await readFile7(path32.resolve(expandTildePath(pathLike)), "utf-8");
27326
+ const raw = await readFile7(path33.resolve(expandTildePath(pathLike)), "utf-8");
26892
27327
  const parsed = JSON.parse(raw);
26893
27328
  if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
26894
27329
  throw new Error("redaction config must be a JSON object");
@@ -26901,15 +27336,15 @@ function toJsonl(drafts) {
26901
27336
  }
26902
27337
  function defaultDraftOutputPath(memoryDir, generatedAt) {
26903
27338
  const stamp = generatedAt.replace(/[:.]/g, "-");
26904
- return path32.join(
26905
- path32.resolve(expandTildePath(memoryDir)),
27339
+ return path33.join(
27340
+ path33.resolve(expandTildePath(memoryDir)),
26906
27341
  "state",
26907
27342
  "session-summary-drafts",
26908
27343
  `session-summaries-${stamp}.jsonl`
26909
27344
  );
26910
27345
  }
26911
27346
  async function writeDrafts(filePath, drafts) {
26912
- await mkdir7(path32.dirname(filePath), { recursive: true });
27347
+ await mkdir7(path33.dirname(filePath), { recursive: true });
26913
27348
  const tempPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
26914
27349
  try {
26915
27350
  await writeFile7(tempPath, toJsonl(drafts), "utf-8");
@@ -26927,7 +27362,7 @@ async function runLocalSessionSummaryCliCommand(options) {
26927
27362
  });
26928
27363
  const wroteFiles = [];
26929
27364
  if (options.output) {
26930
- const outputPath = path32.resolve(expandTildePath(options.output));
27365
+ const outputPath = path33.resolve(expandTildePath(options.output));
26931
27366
  await writeDrafts(outputPath, report.drafts);
26932
27367
  wroteFiles.push(outputPath);
26933
27368
  }
@@ -26962,19 +27397,19 @@ async function runLocalSessionSummaryCliCommand(options) {
26962
27397
 
26963
27398
  // src/transfer/capsule-fork.ts
26964
27399
  import { lstat as lstat4, mkdir as mkdir8, readFile as readFile8, realpath as realpath3, writeFile as writeFile8 } from "fs/promises";
26965
- import path33 from "path";
27400
+ import path34 from "path";
26966
27401
  async function forkCapsule(opts) {
26967
27402
  validateForkId(opts.forkId);
26968
- const rootAbs = path33.resolve(opts.targetRoot);
27403
+ const rootAbs = path34.resolve(opts.targetRoot);
26969
27404
  await assertIsDirectoryNotSymlink(rootAbs, "forkCapsule", "targetRoot");
26970
- const forkDirAbs = path33.join(rootAbs, "forks", opts.forkId);
27405
+ const forkDirAbs = path34.join(rootAbs, "forks", opts.forkId);
26971
27406
  const forkEntryExists = await pathEntryExists(forkDirAbs);
26972
27407
  if (forkEntryExists) {
26973
27408
  throw new Error(
26974
27409
  `forkCapsule: fork path already exists \u2014 forkId "${opts.forkId}" is already in use at: ${forkDirAbs}`
26975
27410
  );
26976
27411
  }
26977
- const archiveAbs = path33.resolve(opts.sourceArchive);
27412
+ const archiveAbs = path34.resolve(opts.sourceArchive);
26978
27413
  const importResult = await importCapsule({
26979
27414
  archivePath: archiveAbs,
26980
27415
  root: rootAbs,
@@ -26996,10 +27431,10 @@ async function forkCapsule(opts) {
26996
27431
  importedRecords: importResult.imported.length,
26997
27432
  skippedRecords: importResult.skipped.length
26998
27433
  };
26999
- const lineagePath = path33.join(forkDirAbs, "lineage.json");
27434
+ const lineagePath = path34.join(forkDirAbs, "lineage.json");
27000
27435
  const rootReal = await realpath3(rootAbs);
27001
27436
  await assertRealpathInsideRoot(rootReal, lineagePath, `forks/${opts.forkId}/lineage.json`, "forkCapsule");
27002
- await mkdir8(path33.dirname(lineagePath), { recursive: true });
27437
+ await mkdir8(path34.dirname(lineagePath), { recursive: true });
27003
27438
  await writeFile8(lineagePath, JSON.stringify(lineage, null, 2) + "\n", "utf-8");
27004
27439
  return {
27005
27440
  archivePath: archiveAbs,
@@ -27013,11 +27448,11 @@ async function readForkLineage(targetRoot, forkId) {
27013
27448
  if (typeof forkId !== "string" || forkId.length === 0 || forkId.length > 64 || !CAPSULE_ID_PATTERN.test(forkId)) {
27014
27449
  return null;
27015
27450
  }
27016
- const rootAbs = path33.resolve(targetRoot);
27451
+ const rootAbs = path34.resolve(targetRoot);
27017
27452
  const rootReal = await realpath3(rootAbs).catch(() => rootAbs);
27018
- const lineagePath = path33.join(rootReal, "forks", forkId, "lineage.json");
27019
- const rel = path33.relative(rootReal, lineagePath);
27020
- if (rel.startsWith("..") || path33.isAbsolute(rel)) {
27453
+ const lineagePath = path34.join(rootReal, "forks", forkId, "lineage.json");
27454
+ const rel = path34.relative(rootReal, lineagePath);
27455
+ if (rel.startsWith("..") || path34.isAbsolute(rel)) {
27021
27456
  return null;
27022
27457
  }
27023
27458
  if (!await isLineagePathContained(rootReal, lineagePath)) {
@@ -27058,19 +27493,19 @@ async function pathEntryExists(absPath) {
27058
27493
  async function isLineagePathContained(rootReal, lineagePath) {
27059
27494
  let existing = lineagePath;
27060
27495
  const suffix = [];
27061
- while (existing !== path33.dirname(existing)) {
27496
+ while (existing !== path34.dirname(existing)) {
27062
27497
  const st = await lstat4(existing).catch(() => null);
27063
27498
  if (st !== null) break;
27064
- suffix.unshift(path33.basename(existing));
27065
- existing = path33.dirname(existing);
27499
+ suffix.unshift(path34.basename(existing));
27500
+ existing = path34.dirname(existing);
27066
27501
  }
27067
27502
  const existingReal = await realpath3(existing).catch(() => existing);
27068
- const targetReal = suffix.length > 0 ? path33.join(existingReal, ...suffix) : existingReal;
27069
- const rel = path33.relative(rootReal, targetReal);
27503
+ const targetReal = suffix.length > 0 ? path34.join(existingReal, ...suffix) : existingReal;
27504
+ const rel = path34.relative(rootReal, targetReal);
27070
27505
  if (rel === "") return true;
27071
27506
  if (rel === "..") return false;
27072
- if (rel.startsWith(`..${path33.sep}`)) return false;
27073
- if (path33.isAbsolute(rel)) return false;
27507
+ if (rel.startsWith(`..${path34.sep}`)) return false;
27508
+ if (path34.isAbsolute(rel)) return false;
27074
27509
  return true;
27075
27510
  }
27076
27511
 
@@ -27155,6 +27590,21 @@ export {
27155
27590
  getTaxonomyFilePath,
27156
27591
  WearablesService,
27157
27592
  locateTranscriptPath,
27593
+ TIMELINE_RESERVED_UNKNOWN,
27594
+ TIMELINE_RESERVED_IDLE,
27595
+ TIMELINE_RESERVED_PAUSE,
27596
+ DEFAULT_TIMELINE_CATEGORIES,
27597
+ validateTimelineCategories,
27598
+ sortTimelineCategories,
27599
+ classifyTimelineObservation,
27600
+ TIMELINE_FORMAT_VERSION,
27601
+ TIMELINE_MERGE_GAP_MS,
27602
+ TIMELINE_MAX_DWELL_MS,
27603
+ buildTimelineDay,
27604
+ serializeTimelineDay,
27605
+ timelineCorrectionDatabasePath,
27606
+ TimelineCorrectionStore,
27607
+ applyTimelineCorrections,
27158
27608
  isEligibleActivityFact,
27159
27609
  generateActivityMemories,
27160
27610
  fuseMeeting,
@@ -27190,4 +27640,4 @@ export {
27190
27640
  blendGraphExpandedRecallScore,
27191
27641
  Orchestrator
27192
27642
  };
27193
- //# sourceMappingURL=chunk-LKYIOCWL.js.map
27643
+ //# sourceMappingURL=chunk-56IV4J5W.js.map