@remnic/core 10.0.65 → 10.0.67

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 (262) hide show
  1. package/dist/access-admin-ops-surface.js +16 -16
  2. package/dist/access-authorization-probe.js +17 -17
  3. package/dist/access-boundary.js +16 -16
  4. package/dist/access-cli.js +61 -61
  5. package/dist/access-extraction-force-flush.js +16 -16
  6. package/dist/access-http-briefing.js +17 -17
  7. package/dist/access-http-query.js +18 -18
  8. package/dist/access-http.js +33 -33
  9. package/dist/access-identity-continuity-surface.js +16 -16
  10. package/dist/access-lcm-surface.js +16 -16
  11. package/dist/access-mcp.js +26 -26
  12. package/dist/access-namespace-preflight.js +16 -16
  13. package/dist/access-observe-write-surface.js +16 -16
  14. package/dist/access-operations-batch.js +17 -17
  15. package/dist/access-operations.js +24 -24
  16. package/dist/access-recall-concurrency.js +16 -16
  17. package/dist/access-recall-diagnostics.js +2 -2
  18. package/dist/access-recall-response.js +16 -16
  19. package/dist/access-recall-surface.js +16 -16
  20. package/dist/access-service.js +16 -16
  21. package/dist/access-surface-catalog.js +18 -18
  22. package/dist/active-recall.js +3 -3
  23. package/dist/briefing.js +3 -3
  24. package/dist/buffer.js +2 -2
  25. package/dist/causal-consolidation.js +4 -4
  26. package/dist/{chunk-KISOMGY2.js → chunk-3RHU5MD7.js} +2 -2
  27. package/dist/{chunk-3LSTL6EY.js → chunk-4MPAKYZU.js} +2 -2
  28. package/dist/{chunk-OVL5AD3N.js → chunk-4NV7O76Q.js} +2 -2
  29. package/dist/{chunk-BH7NVSEC.js → chunk-4SOWMA55.js} +3 -3
  30. package/dist/{chunk-GROHOWR5.js → chunk-5MGKGEL7.js} +2 -2
  31. package/dist/{chunk-ZPLQ27MY.js → chunk-5UM4H64E.js} +2 -2
  32. package/dist/{chunk-2DNFRLLL.js → chunk-5Y6VA6X2.js} +2 -2
  33. package/dist/{chunk-GRAUQXQB.js → chunk-6WKWL53V.js} +13 -13
  34. package/dist/{chunk-HOR4RMUM.js → chunk-75DCOS6I.js} +24 -24
  35. package/dist/{chunk-25QK3LR2.js → chunk-7O2MC42R.js} +2 -2
  36. package/dist/{chunk-7ETWIBTO.js → chunk-ADYP7HXE.js} +3 -3
  37. package/dist/{chunk-FUDKGJDN.js → chunk-AVGDYYMA.js} +2 -2
  38. package/dist/{chunk-ECF627KC.js → chunk-AYJQ644F.js} +2 -2
  39. package/dist/{chunk-T22FBDG3.js → chunk-B3MWELZ3.js} +2 -2
  40. package/dist/{chunk-DRTSPRWL.js → chunk-B4DXREWC.js} +2 -2
  41. package/dist/{chunk-5UEGL5BF.js → chunk-CI3MAAIY.js} +2 -2
  42. package/dist/{chunk-7JYK7NNY.js → chunk-CTH2CQCB.js} +2 -2
  43. package/dist/{chunk-UVHXLVFJ.js → chunk-EURPSF4Y.js} +2 -2
  44. package/dist/{chunk-VPEA63FC.js → chunk-EWJZZDRG.js} +2 -2
  45. package/dist/{chunk-BOZQAUAJ.js → chunk-EXQJMFRF.js} +2 -2
  46. package/dist/{chunk-UH6ROXFJ.js → chunk-GGD2YDS6.js} +2 -2
  47. package/dist/{chunk-5JABRT5G.js → chunk-GHHQLSSY.js} +3 -3
  48. package/dist/{chunk-N4T5FW6U.js → chunk-GJ4HU6LK.js} +2 -2
  49. package/dist/{chunk-HRRAOTOQ.js → chunk-H5DIRCZP.js} +12 -12
  50. package/dist/{chunk-434E4BTO.js → chunk-HH73M65H.js} +3 -3
  51. package/dist/{chunk-LIGZO7XN.js → chunk-HPB5TF55.js} +2 -2
  52. package/dist/{chunk-E4QIX2OB.js → chunk-IAGVM7EY.js} +2 -2
  53. package/dist/{chunk-YJQJRXUI.js → chunk-IG3EZ3TF.js} +2 -2
  54. package/dist/{chunk-KNMSD2MQ.js → chunk-IVUVQPTQ.js} +2 -2
  55. package/dist/{chunk-XOFIJGB2.js → chunk-IZBIDPMY.js} +2 -2
  56. package/dist/{chunk-HFEGRMFG.js → chunk-JLGBJ4AX.js} +7 -7
  57. package/dist/{chunk-BBHKN2CN.js → chunk-JLMOH5JA.js} +2 -2
  58. package/dist/{chunk-TPCRDPUY.js → chunk-KZSGBWOJ.js} +2 -2
  59. package/dist/{chunk-SHHZWSSE.js → chunk-KZZ5EZ7O.js} +2 -2
  60. package/dist/{chunk-2ZSRACNK.js → chunk-LFYEQK45.js} +682 -549
  61. package/dist/chunk-LFYEQK45.js.map +1 -0
  62. package/dist/{chunk-FKGLJJVS.js → chunk-LN4X2NDA.js} +2 -2
  63. package/dist/{chunk-5ZHFPUBC.js → chunk-MOIJWWNA.js} +8 -8
  64. package/dist/{chunk-KO224R36.js → chunk-NCZGGGWI.js} +2 -2
  65. package/dist/{chunk-XVQVF2TK.js → chunk-NHWDTOBN.js} +269 -230
  66. package/dist/chunk-NHWDTOBN.js.map +1 -0
  67. package/dist/{chunk-7ZTGMEXF.js → chunk-O5ZINWW3.js} +2 -2
  68. package/dist/{chunk-WWH7GJ42.js → chunk-OCK4D5PC.js} +2 -2
  69. package/dist/{chunk-G6L3REL3.js → chunk-OPFVXM2D.js} +2 -2
  70. package/dist/{chunk-FR7PK7ED.js → chunk-P4TV3TQ2.js} +2 -2
  71. package/dist/{chunk-P2EM5LKH.js → chunk-PMDOGXA2.js} +2 -2
  72. package/dist/{chunk-NM2II57L.js → chunk-PRKNAIGZ.js} +2 -1
  73. package/dist/chunk-PRKNAIGZ.js.map +1 -0
  74. package/dist/{chunk-MRF5V5CD.js → chunk-QGFR73SN.js} +2 -2
  75. package/dist/{chunk-6D3IWYNY.js → chunk-R2BIVU2Z.js} +354 -292
  76. package/dist/chunk-R2BIVU2Z.js.map +1 -0
  77. package/dist/{chunk-HG3CG557.js → chunk-RLVI2M5Q.js} +2 -2
  78. package/dist/{chunk-HHL4MX3W.js → chunk-SXTVZ6JL.js} +2 -2
  79. package/dist/{chunk-CLSKGTAT.js → chunk-TECK5IVY.js} +2 -2
  80. package/dist/{chunk-SNS3DWG6.js → chunk-TVE7W67N.js} +2 -2
  81. package/dist/{chunk-KYSSUY66.js → chunk-U2CAGMUD.js} +2 -2
  82. package/dist/{chunk-XLCEFUAU.js → chunk-UVVFPCPX.js} +2 -2
  83. package/dist/{chunk-KQJUEQ2E.js → chunk-UW6LBFYN.js} +5 -5
  84. package/dist/{chunk-SEA56G6S.js → chunk-V4XE263I.js} +1 -1
  85. package/dist/chunk-V4XE263I.js.map +1 -0
  86. package/dist/{chunk-JL5HXL25.js → chunk-V6SBA5O7.js} +3 -3
  87. package/dist/{chunk-R7WYAXPO.js → chunk-VHSQU3RO.js} +81 -42
  88. package/dist/chunk-VHSQU3RO.js.map +1 -0
  89. package/dist/{chunk-B7VD36TI.js → chunk-WHROVQ5Q.js} +3 -3
  90. package/dist/{chunk-LDHR465K.js → chunk-Y3XPSGNF.js} +2 -2
  91. package/dist/{chunk-JPY3RMG2.js → chunk-ZORS5BG5.js} +4 -4
  92. package/dist/{chunk-KXY4HW2Y.js → chunk-ZXF3O7P4.js} +2 -2
  93. package/dist/cli.js +47 -47
  94. package/dist/coding/export-okf-codegraph.js +2 -2
  95. package/dist/compounding/engine.js +4 -4
  96. package/dist/config.d.ts.map +1 -1
  97. package/dist/config.js +3 -3
  98. package/dist/connectors/codex-materialize-runner.js +3 -3
  99. package/dist/connectors/index.js +3 -3
  100. package/dist/convergence-refresh.js +5 -5
  101. package/dist/corpus-watermark.js +5 -5
  102. package/dist/entity-retrieval.js +3 -3
  103. package/dist/external-wiki-access.js +17 -17
  104. package/dist/extraction.js +6 -6
  105. package/dist/harmonic-retrieval.js +3 -3
  106. package/dist/index.js +61 -61
  107. package/dist/location/index.js +5 -5
  108. package/dist/maintenance/memory-governance.js +3 -3
  109. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  110. package/dist/maintenance/rebuild-memory-projection-runner.js +5 -5
  111. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  112. package/dist/memory-browse-operations.js +17 -17
  113. package/dist/namespaces/migrate.js +4 -4
  114. package/dist/namespaces/storage.js +3 -3
  115. package/dist/operator-doctor-corpus.js +6 -6
  116. package/dist/operator-toolkit.js +12 -12
  117. package/dist/orchestration/buffer-drain-runner.js +61 -61
  118. package/dist/orchestration/consolidation-run.d.ts.map +1 -1
  119. package/dist/orchestration/extraction-drain.d.ts +4 -4
  120. package/dist/orchestration/extraction-drain.d.ts.map +1 -1
  121. package/dist/orchestration/extraction-persist-deps.d.ts +0 -2
  122. package/dist/orchestration/extraction-persist-deps.d.ts.map +1 -1
  123. package/dist/orchestration/extraction-persist.d.ts +10 -4
  124. package/dist/orchestration/extraction-persist.d.ts.map +1 -1
  125. package/dist/orchestration/extraction-queue-coordinator.d.ts +67 -33
  126. package/dist/orchestration/extraction-queue-coordinator.d.ts.map +1 -1
  127. package/dist/orchestration/extraction-run-helpers.d.ts +3 -2
  128. package/dist/orchestration/extraction-run-helpers.d.ts.map +1 -1
  129. package/dist/orchestration/extraction-run.d.ts +4 -14
  130. package/dist/orchestration/extraction-run.d.ts.map +1 -1
  131. package/dist/orchestration/fact-dedup-window.d.ts +49 -0
  132. package/dist/orchestration/fact-dedup-window.d.ts.map +1 -0
  133. package/dist/orchestration/maintenance.js +13 -13
  134. package/dist/orchestration/provider-breaker.d.ts +58 -0
  135. package/dist/orchestration/provider-breaker.d.ts.map +1 -0
  136. package/dist/orchestrator.d.ts +2 -17
  137. package/dist/orchestrator.d.ts.map +1 -1
  138. package/dist/orchestrator.js +61 -61
  139. package/dist/recall-explain-renderer.js +3 -3
  140. package/dist/recall-navigate-access.js +2 -2
  141. package/dist/recall-navigate-disclosure.js +2 -2
  142. package/dist/recall-navigate.js +2 -2
  143. package/dist/recall-navigation-operations.js +17 -17
  144. package/dist/recall-navigation.js +16 -16
  145. package/dist/recall-xray-cli.js +4 -4
  146. package/dist/recall-xray-renderer.js +3 -3
  147. package/dist/recall-xray.js +2 -2
  148. package/dist/resume-bundles.js +4 -4
  149. package/dist/semantic-consolidation.js +4 -4
  150. package/dist/semantic-rule-promotion.js +3 -3
  151. package/dist/semantic-rule-verifier.js +3 -3
  152. package/dist/source-agent-qualifier.js +5 -5
  153. package/dist/standup/build.js +3 -3
  154. package/dist/storage/profile-mutation.d.ts +25 -0
  155. package/dist/storage/profile-mutation.d.ts.map +1 -0
  156. package/dist/storage.d.ts +4 -6
  157. package/dist/storage.d.ts.map +1 -1
  158. package/dist/storage.js +2 -2
  159. package/dist/support-passport/index.js +19 -19
  160. package/dist/threading.d.ts +21 -4
  161. package/dist/threading.d.ts.map +1 -1
  162. package/dist/threading.js +1 -1
  163. package/dist/transfer/export-okf.js +3 -3
  164. package/dist/types.d.ts +2 -0
  165. package/dist/types.d.ts.map +1 -1
  166. package/dist/types.js +1 -1
  167. package/dist/verified-recall.js +3 -3
  168. package/dist/who-knows-cli.js +4 -4
  169. package/dist/who-knows.js +3 -3
  170. package/package.json +2 -2
  171. package/src/access-observe-replay-durability.test.ts +1 -1
  172. package/src/buffer-drain-handover.test.ts +3 -3
  173. package/src/buffer-drop-extraction-chunk.test.ts +0 -1
  174. package/src/config.test.ts +12 -0
  175. package/src/config.ts +2 -0
  176. package/src/connector-provenance-lifecycle.test.ts +5 -8
  177. package/src/fact-dedup-window.test.ts +116 -0
  178. package/src/faithfulness-graph-guard.test.ts +11 -6
  179. package/src/harmonic-construction.test.ts +16 -10
  180. package/src/orchestration/consolidation-profile-race.test.ts +178 -0
  181. package/src/orchestration/consolidation-run.ts +19 -7
  182. package/src/orchestration/extraction-drain.ts +10 -3
  183. package/src/orchestration/extraction-persist-deps.ts +0 -2
  184. package/src/orchestration/extraction-persist.ts +159 -148
  185. package/src/orchestration/extraction-queue-coordinator.ts +167 -56
  186. package/src/orchestration/extraction-run-helpers.ts +5 -4
  187. package/src/orchestration/extraction-run.test.ts +1 -2
  188. package/src/orchestration/extraction-run.ts +56 -99
  189. package/src/orchestration/fact-dedup-window.ts +122 -0
  190. package/src/orchestration/provider-breaker.test.ts +89 -0
  191. package/src/orchestration/provider-breaker.ts +158 -0
  192. package/src/orchestration/turn-ingestion.ts +5 -5
  193. package/src/orchestrator-extraction-queue.test.ts +179 -8
  194. package/src/orchestrator.ts +7 -23
  195. package/src/storage/profile-mutation.ts +119 -0
  196. package/src/storage-append-profile.test.ts +114 -0
  197. package/src/storage.ts +17 -48
  198. package/src/testing/orchestrator-lite.ts +1 -1
  199. package/src/threading.test.ts +153 -0
  200. package/src/threading.ts +95 -45
  201. package/src/types.ts +2 -0
  202. package/dist/chunk-2ZSRACNK.js.map +0 -1
  203. package/dist/chunk-6D3IWYNY.js.map +0 -1
  204. package/dist/chunk-NM2II57L.js.map +0 -1
  205. package/dist/chunk-R7WYAXPO.js.map +0 -1
  206. package/dist/chunk-SEA56G6S.js.map +0 -1
  207. package/dist/chunk-XVQVF2TK.js.map +0 -1
  208. /package/dist/{chunk-KISOMGY2.js.map → chunk-3RHU5MD7.js.map} +0 -0
  209. /package/dist/{chunk-3LSTL6EY.js.map → chunk-4MPAKYZU.js.map} +0 -0
  210. /package/dist/{chunk-OVL5AD3N.js.map → chunk-4NV7O76Q.js.map} +0 -0
  211. /package/dist/{chunk-BH7NVSEC.js.map → chunk-4SOWMA55.js.map} +0 -0
  212. /package/dist/{chunk-GROHOWR5.js.map → chunk-5MGKGEL7.js.map} +0 -0
  213. /package/dist/{chunk-ZPLQ27MY.js.map → chunk-5UM4H64E.js.map} +0 -0
  214. /package/dist/{chunk-2DNFRLLL.js.map → chunk-5Y6VA6X2.js.map} +0 -0
  215. /package/dist/{chunk-GRAUQXQB.js.map → chunk-6WKWL53V.js.map} +0 -0
  216. /package/dist/{chunk-HOR4RMUM.js.map → chunk-75DCOS6I.js.map} +0 -0
  217. /package/dist/{chunk-25QK3LR2.js.map → chunk-7O2MC42R.js.map} +0 -0
  218. /package/dist/{chunk-7ETWIBTO.js.map → chunk-ADYP7HXE.js.map} +0 -0
  219. /package/dist/{chunk-FUDKGJDN.js.map → chunk-AVGDYYMA.js.map} +0 -0
  220. /package/dist/{chunk-ECF627KC.js.map → chunk-AYJQ644F.js.map} +0 -0
  221. /package/dist/{chunk-T22FBDG3.js.map → chunk-B3MWELZ3.js.map} +0 -0
  222. /package/dist/{chunk-DRTSPRWL.js.map → chunk-B4DXREWC.js.map} +0 -0
  223. /package/dist/{chunk-5UEGL5BF.js.map → chunk-CI3MAAIY.js.map} +0 -0
  224. /package/dist/{chunk-7JYK7NNY.js.map → chunk-CTH2CQCB.js.map} +0 -0
  225. /package/dist/{chunk-UVHXLVFJ.js.map → chunk-EURPSF4Y.js.map} +0 -0
  226. /package/dist/{chunk-VPEA63FC.js.map → chunk-EWJZZDRG.js.map} +0 -0
  227. /package/dist/{chunk-BOZQAUAJ.js.map → chunk-EXQJMFRF.js.map} +0 -0
  228. /package/dist/{chunk-UH6ROXFJ.js.map → chunk-GGD2YDS6.js.map} +0 -0
  229. /package/dist/{chunk-5JABRT5G.js.map → chunk-GHHQLSSY.js.map} +0 -0
  230. /package/dist/{chunk-N4T5FW6U.js.map → chunk-GJ4HU6LK.js.map} +0 -0
  231. /package/dist/{chunk-HRRAOTOQ.js.map → chunk-H5DIRCZP.js.map} +0 -0
  232. /package/dist/{chunk-434E4BTO.js.map → chunk-HH73M65H.js.map} +0 -0
  233. /package/dist/{chunk-LIGZO7XN.js.map → chunk-HPB5TF55.js.map} +0 -0
  234. /package/dist/{chunk-E4QIX2OB.js.map → chunk-IAGVM7EY.js.map} +0 -0
  235. /package/dist/{chunk-YJQJRXUI.js.map → chunk-IG3EZ3TF.js.map} +0 -0
  236. /package/dist/{chunk-KNMSD2MQ.js.map → chunk-IVUVQPTQ.js.map} +0 -0
  237. /package/dist/{chunk-XOFIJGB2.js.map → chunk-IZBIDPMY.js.map} +0 -0
  238. /package/dist/{chunk-HFEGRMFG.js.map → chunk-JLGBJ4AX.js.map} +0 -0
  239. /package/dist/{chunk-BBHKN2CN.js.map → chunk-JLMOH5JA.js.map} +0 -0
  240. /package/dist/{chunk-TPCRDPUY.js.map → chunk-KZSGBWOJ.js.map} +0 -0
  241. /package/dist/{chunk-SHHZWSSE.js.map → chunk-KZZ5EZ7O.js.map} +0 -0
  242. /package/dist/{chunk-FKGLJJVS.js.map → chunk-LN4X2NDA.js.map} +0 -0
  243. /package/dist/{chunk-5ZHFPUBC.js.map → chunk-MOIJWWNA.js.map} +0 -0
  244. /package/dist/{chunk-KO224R36.js.map → chunk-NCZGGGWI.js.map} +0 -0
  245. /package/dist/{chunk-7ZTGMEXF.js.map → chunk-O5ZINWW3.js.map} +0 -0
  246. /package/dist/{chunk-WWH7GJ42.js.map → chunk-OCK4D5PC.js.map} +0 -0
  247. /package/dist/{chunk-G6L3REL3.js.map → chunk-OPFVXM2D.js.map} +0 -0
  248. /package/dist/{chunk-FR7PK7ED.js.map → chunk-P4TV3TQ2.js.map} +0 -0
  249. /package/dist/{chunk-P2EM5LKH.js.map → chunk-PMDOGXA2.js.map} +0 -0
  250. /package/dist/{chunk-MRF5V5CD.js.map → chunk-QGFR73SN.js.map} +0 -0
  251. /package/dist/{chunk-HG3CG557.js.map → chunk-RLVI2M5Q.js.map} +0 -0
  252. /package/dist/{chunk-HHL4MX3W.js.map → chunk-SXTVZ6JL.js.map} +0 -0
  253. /package/dist/{chunk-CLSKGTAT.js.map → chunk-TECK5IVY.js.map} +0 -0
  254. /package/dist/{chunk-SNS3DWG6.js.map → chunk-TVE7W67N.js.map} +0 -0
  255. /package/dist/{chunk-KYSSUY66.js.map → chunk-U2CAGMUD.js.map} +0 -0
  256. /package/dist/{chunk-XLCEFUAU.js.map → chunk-UVVFPCPX.js.map} +0 -0
  257. /package/dist/{chunk-KQJUEQ2E.js.map → chunk-UW6LBFYN.js.map} +0 -0
  258. /package/dist/{chunk-JL5HXL25.js.map → chunk-V6SBA5O7.js.map} +0 -0
  259. /package/dist/{chunk-B7VD36TI.js.map → chunk-WHROVQ5Q.js.map} +0 -0
  260. /package/dist/{chunk-LDHR465K.js.map → chunk-Y3XPSGNF.js.map} +0 -0
  261. /package/dist/{chunk-JPY3RMG2.js.map → chunk-ZORS5BG5.js.map} +0 -0
  262. /package/dist/{chunk-KXY4HW2Y.js.map → chunk-ZXF3O7P4.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/threading.ts"],"sourcesContent":["/**\n * Conversation Threading (Phase 3B)\n *\n * Groups related memories into conversation threads with auto-generated titles.\n * Thread boundary detection: new session key OR time gap > threshold.\n */\n\nimport { readdir, readFile, writeFile, mkdir, stat } from \"node:fs/promises\";\nimport { log } from \"./logger.js\";\nimport type { BufferTurn, ConversationThread } from \"./types.js\";\nimport {\n encodeStoragePathSegment,\n encodeStoragePathSegmentWithHash,\n isSafeLegacyPathSegment,\n resolveSafeStoragePath,\n} from \"./storage-paths.js\";\n\n/** Stop words for title extraction */\nconst STOP_WORDS = new Set([\n \"a\", \"an\", \"the\", \"is\", \"are\", \"was\", \"were\", \"be\", \"been\", \"being\",\n \"have\", \"has\", \"had\", \"do\", \"does\", \"did\", \"will\", \"would\", \"could\",\n \"should\", \"may\", \"might\", \"must\", \"shall\", \"can\", \"need\", \"to\", \"of\",\n \"in\", \"for\", \"on\", \"with\", \"at\", \"by\", \"from\", \"as\", \"into\", \"through\",\n \"during\", \"before\", \"after\", \"above\", \"below\", \"between\", \"this\", \"that\",\n \"these\", \"those\", \"i\", \"me\", \"my\", \"we\", \"our\", \"you\", \"your\", \"he\",\n \"she\", \"it\", \"they\", \"them\", \"their\", \"what\", \"which\", \"who\", \"how\",\n \"when\", \"where\", \"why\", \"and\", \"but\", \"or\", \"if\", \"because\", \"so\",\n \"just\", \"about\", \"like\", \"also\", \"very\", \"really\", \"here\", \"there\",\n]);\n\n/**\n * Extract top keywords from content for thread title.\n * Simple TF approach (no IDF needed for single thread).\n */\nfunction extractKeywords(content: string, maxKeywords: number = 3): string[] {\n const words = content\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, \" \")\n .split(/\\s+/)\n .filter((w) => w.length >= 4 && !STOP_WORDS.has(w));\n\n // Count frequencies\n const freq = new Map<string, number>();\n for (const word of words) {\n freq.set(word, (freq.get(word) ?? 0) + 1);\n }\n\n // Sort by frequency, take top N\n return [...freq.entries()]\n .sort((a, b) => b[1] - a[1])\n .slice(0, maxKeywords)\n .map(([word]) => word);\n}\n\n/**\n * Generate a thread title from keywords.\n */\nfunction generateTitle(keywords: string[]): string {\n if (keywords.length === 0) return \"Untitled Thread\";\n // Capitalize and join\n return keywords\n .map((k) => k.charAt(0).toUpperCase() + k.slice(1))\n .join(\", \");\n}\n\nfunction isConversationThread(value: unknown): value is ConversationThread {\n if (value === null || typeof value !== \"object\") return false;\n const candidate = value as Partial<ConversationThread>;\n return (\n typeof candidate.id === \"string\" &&\n typeof candidate.title === \"string\" &&\n typeof candidate.createdAt === \"string\" &&\n typeof candidate.updatedAt === \"string\" &&\n Array.isArray(candidate.episodeIds) &&\n Array.isArray(candidate.linkedThreadIds)\n );\n}\n\nfunction parseConversationThread(raw: string): ConversationThread | null {\n try {\n const parsed = JSON.parse(raw) as unknown;\n return isConversationThread(parsed) ? parsed : null;\n } catch {\n return null;\n }\n}\n\n/** One session's thread-run state: its current thread and last turn time. */\ninterface ThreadingRunState {\n currentThreadId: string | null;\n lastTurnTimestamp: number | null;\n}\n\nexport class ThreadingManager {\n /**\n * Per-session thread-run state. One global slot let two concurrent\n * extractions (bounded-parallel queue) interleave sessions and attach\n * turns to the wrong thread, so the run state is keyed by session.\n * Bounded: a long-lived daemon sees one entry per active session.\n */\n private readonly runStateBySession = new Map<string, ThreadingRunState>();\n /**\n * Run states with a processTurn awaiting inside them. A session parked on\n * `saveThread` can watch 512 other sessions insert and evict; dropping its\n * state mid-await loses its thread id and forks its thread, so eviction\n * never takes an in-flight state (the cap may be exceeded briefly by the\n * number of in-flight extractions, which is bounded by the queue).\n */\n private readonly inFlightRunStates = new Set<ThreadingRunState>();\n private static readonly RUN_STATE_MAX_SESSIONS = 512;\n\n private runStateFor(turn: BufferTurn): ThreadingRunState {\n const key = turn.sessionKey ?? \"\";\n let state = this.runStateBySession.get(key);\n if (state) {\n // Refresh recency: Map iteration is insertion-ordered, so re-putting a\n // touched session makes eviction true LRU instead of first-in-first-out —\n // an active session must not be the oldest entry just because it started\n // first.\n this.runStateBySession.delete(key);\n this.runStateBySession.set(key, state);\n } else {\n state = { currentThreadId: null, lastTurnTimestamp: null };\n this.runStateBySession.set(key, state);\n if (this.runStateBySession.size > ThreadingManager.RUN_STATE_MAX_SESSIONS) {\n for (const [oldestKey, oldest] of this.runStateBySession) {\n // Never evict the state being inserted: before the caller registers\n // it in-flight, every older entry can be in flight and the loop\n // would otherwise delete this turn's own state and fork the thread.\n if (oldest === state || this.inFlightRunStates.has(oldest)) continue;\n this.runStateBySession.delete(oldestKey);\n if (this.runStateBySession.size <= ThreadingManager.RUN_STATE_MAX_SESSIONS) break;\n }\n }\n }\n return state;\n }\n\n constructor(\n private readonly threadsDir: string,\n private readonly gapMinutes: number = 30,\n ) {}\n\n async ensureDirectory(): Promise<void> {\n await mkdir(this.threadsDir, { recursive: true });\n }\n\n private encodedThreadFileName(threadId: string): string {\n return `${encodeStoragePathSegment(threadId)}.json`;\n }\n\n private collisionSafeThreadFileName(threadId: string): string {\n return `${encodeStoragePathSegmentWithHash(threadId)}.json`;\n }\n\n private legacyThreadFileName(threadId: string): string | undefined {\n if (!isSafeLegacyPathSegment(threadId)) return undefined;\n const legacyFile = `${threadId}.json`;\n return legacyFile === this.encodedThreadFileName(threadId) ? undefined : legacyFile;\n }\n\n private async threadCandidateStatus(\n filePath: string,\n threadId: string,\n ): Promise<\"missing\" | \"matches\" | \"invalid\" | \"mismatches\"> {\n try {\n if (!(await stat(filePath)).isFile()) return \"mismatches\";\n const thread = parseConversationThread(await readFile(filePath, \"utf-8\"));\n if (!thread) return \"invalid\";\n return thread.id === threadId ? \"matches\" : \"mismatches\";\n } catch (err) {\n const code =\n err && typeof err === \"object\" && \"code\" in err\n ? (err as { code?: string }).code\n : undefined;\n if (code === \"ENOENT\") return \"missing\";\n throw err;\n }\n }\n\n private async threadFilePathForWrite(threadId: string): Promise<string> {\n const encodedPath = await resolveSafeStoragePath(\n this.threadsDir,\n this.encodedThreadFileName(threadId),\n );\n const encodedStatus = await this.threadCandidateStatus(encodedPath, threadId);\n if (encodedStatus === \"matches\") return encodedPath;\n\n const legacyFile = this.legacyThreadFileName(threadId);\n if (legacyFile) {\n const legacyPath = await resolveSafeStoragePath(this.threadsDir, legacyFile);\n if ((await this.threadCandidateStatus(legacyPath, threadId)) === \"matches\") {\n return legacyPath;\n }\n }\n\n if (encodedStatus === \"missing\") return encodedPath;\n\n const collisionSafePath = await resolveSafeStoragePath(\n this.threadsDir,\n this.collisionSafeThreadFileName(threadId),\n );\n const collisionSafeStatus = await this.threadCandidateStatus(collisionSafePath, threadId);\n if (collisionSafeStatus === \"mismatches\") {\n throw new Error(`thread storage path collision for thread id: ${threadId}`);\n }\n\n return collisionSafePath;\n }\n\n /**\n * Check if we should start a new thread based on session key and time gap.\n * State is per session, so the cross-session check the shared slot needed\n * is gone: different sessions never share run state at all.\n */\n shouldStartNewThread(turn: BufferTurn): boolean {\n const turnTime = new Date(turn.timestamp).getTime();\n const state = this.runStateFor(turn);\n\n // Time gap > threshold = new thread\n if (state.lastTurnTimestamp) {\n const gapMs = turnTime - state.lastTurnTimestamp;\n const gapMinutes = gapMs / (1000 * 60);\n if (gapMinutes > this.gapMinutes) {\n return true;\n }\n }\n\n // No current thread = new thread\n if (!state.currentThreadId) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Process a turn and return the thread ID it belongs to.\n * Creates a new thread if needed.\n */\n async processTurn(turn: BufferTurn, episodeIds: string[]): Promise<string> {\n await this.ensureDirectory();\n\n const turnTime = new Date(turn.timestamp).getTime();\n const state = this.runStateFor(turn);\n this.inFlightRunStates.add(state);\n try {\n if (this.shouldStartNewThread(turn)) {\n // Create new thread\n const threadId = `thread-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;\n const thread: ConversationThread = {\n id: threadId,\n title: \"New Thread\", // Will be updated later with keywords\n createdAt: turn.timestamp,\n updatedAt: turn.timestamp,\n sessionKey: turn.sessionKey,\n episodeIds: [...episodeIds],\n linkedThreadIds: [],\n };\n\n await this.saveThread(thread);\n state.currentThreadId = threadId;\n log.debug(`created new thread ${threadId}`);\n } else if (state.currentThreadId) {\n // Add episodes to current thread\n const thread = await this.loadThread(state.currentThreadId);\n if (thread) {\n for (const id of episodeIds) {\n if (!thread.episodeIds.includes(id)) {\n thread.episodeIds.push(id);\n }\n }\n thread.updatedAt = turn.timestamp;\n await this.saveThread(thread);\n }\n }\n\n state.lastTurnTimestamp = turnTime;\n\n return state.currentThreadId!;\n } finally {\n this.inFlightRunStates.delete(state);\n }\n }\n\n /**\n * Append persisted memory IDs to an existing thread.\n * Keeps IDs unique and updates the thread timestamp.\n */\n async appendEpisodeIds(threadId: string, episodeIds: string[]): Promise<void> {\n if (episodeIds.length === 0) return;\n const thread = await this.loadThread(threadId);\n if (!thread) return;\n\n let changed = false;\n for (const id of episodeIds) {\n if (!thread.episodeIds.includes(id)) {\n thread.episodeIds.push(id);\n changed = true;\n }\n }\n if (!changed) return;\n\n thread.updatedAt = new Date().toISOString();\n await this.saveThread(thread);\n }\n\n /**\n * Update thread title based on accumulated content.\n */\n async updateThreadTitle(threadId: string, content: string): Promise<void> {\n const thread = await this.loadThread(threadId);\n if (!thread) return;\n\n const keywords = extractKeywords(content);\n const title = generateTitle(keywords);\n\n if (title !== thread.title) {\n thread.title = title;\n thread.updatedAt = new Date().toISOString();\n await this.saveThread(thread);\n log.debug(`updated thread ${threadId} title: ${title}`);\n }\n }\n\n /**\n * Get all threads, sorted by updatedAt desc.\n */\n async getAllThreads(): Promise<ConversationThread[]> {\n try {\n const files = await readdir(this.threadsDir);\n const threadsById = new Map<\n string,\n { thread: ConversationThread; storagePriority: number }\n >();\n\n for (const file of files) {\n if (!file.endsWith(\".json\")) continue;\n try {\n const raw = await readFile(\n await resolveSafeStoragePath(this.threadsDir, file),\n \"utf-8\",\n );\n const thread = parseConversationThread(raw);\n if (!thread) continue;\n\n const legacyFile = this.legacyThreadFileName(thread.id);\n const storagePriority =\n file === this.encodedThreadFileName(thread.id)\n ? 3\n : file === this.collisionSafeThreadFileName(thread.id)\n ? 2\n : legacyFile && file === legacyFile\n ? 1\n : 0;\n const current = threadsById.get(thread.id);\n if (!current || storagePriority > current.storagePriority) {\n threadsById.set(thread.id, { thread, storagePriority });\n }\n } catch {\n // skip unreadable or malformed thread files\n }\n }\n\n return [...threadsById.values()].map(({ thread }) => thread).sort(\n (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(),\n );\n } catch {\n return [];\n }\n }\n\n /**\n * Get a thread by ID.\n */\n async loadThread(threadId: string): Promise<ConversationThread | null> {\n const candidates = [\n this.encodedThreadFileName(threadId),\n this.legacyThreadFileName(threadId),\n this.collisionSafeThreadFileName(threadId),\n ];\n for (const file of candidates) {\n if (!file) continue;\n try {\n const filePath = await resolveSafeStoragePath(this.threadsDir, file);\n const raw = await readFile(filePath, \"utf-8\");\n const thread = parseConversationThread(raw);\n if (thread?.id === threadId) return thread;\n } catch {\n // try the next candidate\n }\n }\n return null;\n }\n\n /**\n * Save a thread.\n */\n async saveThread(thread: ConversationThread): Promise<void> {\n await this.ensureDirectory();\n const filePath = await this.threadFilePathForWrite(thread.id);\n await writeFile(filePath, JSON.stringify(thread, null, 2), \"utf-8\");\n }\n\n /**\n * Link two threads together.\n */\n async linkThreads(threadId1: string, threadId2: string): Promise<boolean> {\n const thread1 = await this.loadThread(threadId1);\n const thread2 = await this.loadThread(threadId2);\n\n if (!thread1 || !thread2) return false;\n\n // Add bidirectional links\n if (!thread1.linkedThreadIds.includes(threadId2)) {\n thread1.linkedThreadIds.push(threadId2);\n await this.saveThread(thread1);\n }\n\n if (!thread2.linkedThreadIds.includes(threadId1)) {\n thread2.linkedThreadIds.push(threadId1);\n await this.saveThread(thread2);\n }\n\n return true;\n }\n\n /**\n * Get the current thread ID (if any). With per-session run state there is\n * no single current thread; null unless exactly one session is tracked.\n */\n getCurrentThreadId(): string | null {\n if (this.runStateBySession.size === 1) {\n return this.runStateBySession.values().next().value?.currentThreadId ?? null;\n }\n return null;\n }\n\n /**\n * Reset threading state (e.g., on plugin restart).\n */\n reset(): void {\n this.runStateBySession.clear();\n }\n}\n"],"mappings":"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","names":[]}
@@ -7,10 +7,10 @@ import {
7
7
  import {
8
8
  listMemoryGovernanceRuns,
9
9
  readMemoryGovernanceRunArtifact
10
- } from "./chunk-FR7PK7ED.js";
10
+ } from "./chunk-P4TV3TQ2.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-XVQVF2TK.js";
13
+ } from "./chunk-NHWDTOBN.js";
14
14
  import {
15
15
  normalizeProjectionPreview,
16
16
  normalizeProjectionTags
@@ -1156,4 +1156,4 @@ export {
1156
1156
  verifyMemoryProjection,
1157
1157
  repairMemoryProjection
1158
1158
  };
1159
- //# sourceMappingURL=chunk-B7VD36TI.js.map
1159
+ //# sourceMappingURL=chunk-WHROVQ5Q.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseEntityFile
3
- } from "./chunk-XVQVF2TK.js";
3
+ } from "./chunk-NHWDTOBN.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-LDHR465K.js.map
256
+ //# sourceMappingURL=chunk-Y3XPSGNF.js.map
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-D24OXEPB.js";
19
19
  import {
20
20
  RECALL_WHY_MCP_TOOLS
21
- } from "./chunk-KXY4HW2Y.js";
21
+ } from "./chunk-ZXF3O7P4.js";
22
22
  import {
23
23
  REMNIC_CHATGPT_MEMORY_INSPECTOR_MIME_TYPE,
24
24
  REMNIC_CHATGPT_MEMORY_INSPECTOR_TOOL,
@@ -49,10 +49,10 @@ import {
49
49
  } from "./chunk-KIUVEMBI.js";
50
50
  import {
51
51
  getOperation
52
- } from "./chunk-GRAUQXQB.js";
52
+ } from "./chunk-6WKWL53V.js";
53
53
  import {
54
54
  WHO_KNOWS_MCP_TOOLS
55
- } from "./chunk-LDHR465K.js";
55
+ } from "./chunk-Y3XPSGNF.js";
56
56
  import {
57
57
  PROMOTION_CANDIDATES_MCP_TOOLS
58
58
  } from "./chunk-IZJQNDGI.js";
@@ -3986,4 +3986,4 @@ export {
3986
3986
  MCP_MIGRATED_OPERATIONS,
3987
3987
  EngramMcpServer
3988
3988
  };
3989
- //# sourceMappingURL=chunk-JPY3RMG2.js.map
3989
+ //# sourceMappingURL=chunk-ZORS5BG5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4Q26RNSR.js";
4
4
  import {
5
5
  isRecallDisclosure
6
- } from "./chunk-SEA56G6S.js";
6
+ } from "./chunk-V4XE263I.js";
7
7
  import {
8
8
  EngramAccessInputError
9
9
  } from "./chunk-LGEH473S.js";
@@ -165,4 +165,4 @@ export {
165
165
  handleRecallWhyHttpQuery,
166
166
  handleRecallXrayHttpQuery
167
167
  };
168
- //# sourceMappingURL=chunk-KXY4HW2Y.js.map
168
+ //# sourceMappingURL=chunk-ZXF3O7P4.js.map
package/dist/cli.js CHANGED
@@ -91,7 +91,7 @@ import {
91
91
  runWorkProductStatusCliCommand,
92
92
  runWorkProjectCliCommand,
93
93
  runWorkTaskCliCommand
94
- } from "./chunk-HOR4RMUM.js";
94
+ } from "./chunk-75DCOS6I.js";
95
95
  import "./chunk-MMACM5G2.js";
96
96
  import "./chunk-54BGIBCR.js";
97
97
  import "./chunk-H4CKS5B2.js";
@@ -99,7 +99,7 @@ import "./chunk-FXZTL7F7.js";
99
99
  import "./chunk-HDDRVXX4.js";
100
100
  import "./chunk-PYHOAXTI.js";
101
101
  import "./chunk-UP6MOYCB.js";
102
- import "./chunk-XOFIJGB2.js";
102
+ import "./chunk-IZBIDPMY.js";
103
103
  import "./chunk-BV2TIZ4F.js";
104
104
  import "./chunk-Z734BLO3.js";
105
105
  import "./chunk-OZKVVUJB.js";
@@ -116,29 +116,29 @@ import "./chunk-WHCD4Z3D.js";
116
116
  import "./chunk-7IGMKQWK.js";
117
117
  import "./chunk-EDR6CVWZ.js";
118
118
  import "./chunk-YQJCWR4R.js";
119
- import "./chunk-KYSSUY66.js";
119
+ import "./chunk-U2CAGMUD.js";
120
120
  import "./chunk-I7TR2OCU.js";
121
121
  import "./chunk-2524MOWK.js";
122
122
  import "./chunk-HSSERO3E.js";
123
123
  import "./chunk-NOUJNHWG.js";
124
124
  import "./chunk-WLT6LTQP.js";
125
125
  import "./chunk-EOU6V4IN.js";
126
- import "./chunk-SHHZWSSE.js";
126
+ import "./chunk-KZZ5EZ7O.js";
127
127
  import "./chunk-HL4DB7TO.js";
128
- import "./chunk-R7WYAXPO.js";
129
- import "./chunk-2DNFRLLL.js";
130
- import "./chunk-SNS3DWG6.js";
131
- import "./chunk-CLSKGTAT.js";
128
+ import "./chunk-VHSQU3RO.js";
129
+ import "./chunk-5Y6VA6X2.js";
130
+ import "./chunk-TVE7W67N.js";
131
+ import "./chunk-TECK5IVY.js";
132
132
  import "./chunk-B2NXOVZN.js";
133
133
  import "./chunk-HDN7IVIO.js";
134
- import "./chunk-7ETWIBTO.js";
134
+ import "./chunk-ADYP7HXE.js";
135
135
  import "./chunk-3T74IZB3.js";
136
136
  import "./chunk-2LA3H54D.js";
137
- import "./chunk-5ZHFPUBC.js";
138
- import "./chunk-434E4BTO.js";
137
+ import "./chunk-MOIJWWNA.js";
138
+ import "./chunk-HH73M65H.js";
139
139
  import "./chunk-KFY3SGN7.js";
140
140
  import "./chunk-CMTINOFS.js";
141
- import "./chunk-DRTSPRWL.js";
141
+ import "./chunk-B4DXREWC.js";
142
142
  import "./chunk-I6ORDT54.js";
143
143
  import "./chunk-BCCG7VWM.js";
144
144
  import "./chunk-GGRRF4PZ.js";
@@ -151,7 +151,7 @@ import "./chunk-YNDLCWXS.js";
151
151
  import "./chunk-AUDJPF4N.js";
152
152
  import "./chunk-44442YCH.js";
153
153
  import "./chunk-Y4Z4I6WK.js";
154
- import "./chunk-B7VD36TI.js";
154
+ import "./chunk-WHROVQ5Q.js";
155
155
  import "./chunk-KJTKLXTH.js";
156
156
  import "./chunk-2DQ2XREU.js";
157
157
  import "./chunk-OKTXM5H4.js";
@@ -161,7 +161,7 @@ import "./chunk-YBPYIAA5.js";
161
161
  import "./chunk-6TBIWIAG.js";
162
162
  import "./chunk-C6WMSXCJ.js";
163
163
  import "./chunk-B7RWBZXW.js";
164
- import "./chunk-NM2II57L.js";
164
+ import "./chunk-PRKNAIGZ.js";
165
165
  import "./chunk-ZKOPY4WW.js";
166
166
  import "./chunk-62OKGIJA.js";
167
167
  import "./chunk-J5WI4QRP.js";
@@ -190,7 +190,7 @@ import "./chunk-G2XTGEGL.js";
190
190
  import "./chunk-27NO2KVB.js";
191
191
  import "./chunk-KFZY2OFH.js";
192
192
  import "./chunk-B32WYRXX.js";
193
- import "./chunk-HRRAOTOQ.js";
193
+ import "./chunk-H5DIRCZP.js";
194
194
  import "./chunk-V7IZKJI3.js";
195
195
  import "./chunk-XW2T4QAW.js";
196
196
  import "./chunk-64S6X4IU.js";
@@ -204,27 +204,27 @@ import "./chunk-2TGIKMMZ.js";
204
204
  import "./chunk-SDESKFKT.js";
205
205
  import "./chunk-3HSRWJTC.js";
206
206
  import "./chunk-UYUFDTIX.js";
207
- import "./chunk-HHL4MX3W.js";
208
- import "./chunk-N4T5FW6U.js";
207
+ import "./chunk-SXTVZ6JL.js";
208
+ import "./chunk-GJ4HU6LK.js";
209
209
  import "./chunk-SRT6SHVZ.js";
210
- import "./chunk-JPY3RMG2.js";
210
+ import "./chunk-ZORS5BG5.js";
211
211
  import "./chunk-TE6S7KDF.js";
212
212
  import "./chunk-MZUQVWVC.js";
213
213
  import "./chunk-EIB4FJVR.js";
214
214
  import "./chunk-A5KNZSNA.js";
215
215
  import "./chunk-HUSTM6PU.js";
216
216
  import "./chunk-D24OXEPB.js";
217
- import "./chunk-KXY4HW2Y.js";
218
- import "./chunk-KQJUEQ2E.js";
219
- import "./chunk-KNMSD2MQ.js";
220
- import "./chunk-XLCEFUAU.js";
221
- import "./chunk-BH7NVSEC.js";
222
- import "./chunk-MRF5V5CD.js";
223
- import "./chunk-OVL5AD3N.js";
224
- import "./chunk-YJQJRXUI.js";
217
+ import "./chunk-ZXF3O7P4.js";
218
+ import "./chunk-UW6LBFYN.js";
219
+ import "./chunk-IVUVQPTQ.js";
220
+ import "./chunk-UVVFPCPX.js";
221
+ import "./chunk-4SOWMA55.js";
222
+ import "./chunk-QGFR73SN.js";
223
+ import "./chunk-4NV7O76Q.js";
224
+ import "./chunk-IG3EZ3TF.js";
225
225
  import "./chunk-7T4TOGMS.js";
226
226
  import "./chunk-7YQ6ESEA.js";
227
- import "./chunk-JL5HXL25.js";
227
+ import "./chunk-V6SBA5O7.js";
228
228
  import "./chunk-6P7U3HWG.js";
229
229
  import "./chunk-PQM3B54K.js";
230
230
  import "./chunk-2RUTN7PR.js";
@@ -235,15 +235,15 @@ import "./chunk-2FLFJTCI.js";
235
235
  import "./chunk-JATHBCAV.js";
236
236
  import "./chunk-ZQUVBZI4.js";
237
237
  import "./chunk-5R627MYY.js";
238
- import "./chunk-BBHKN2CN.js";
239
- import "./chunk-5UEGL5BF.js";
238
+ import "./chunk-JLMOH5JA.js";
239
+ import "./chunk-CI3MAAIY.js";
240
240
  import "./chunk-AB3A7EFH.js";
241
241
  import "./chunk-KIUVEMBI.js";
242
- import "./chunk-T22FBDG3.js";
242
+ import "./chunk-B3MWELZ3.js";
243
243
  import "./chunk-2BPPGNAQ.js";
244
244
  import "./chunk-DJSJ4ULL.js";
245
- import "./chunk-P2EM5LKH.js";
246
- import "./chunk-GRAUQXQB.js";
245
+ import "./chunk-PMDOGXA2.js";
246
+ import "./chunk-6WKWL53V.js";
247
247
  import "./chunk-W4F3C7N7.js";
248
248
  import "./chunk-MPC7TYTZ.js";
249
249
  import "./chunk-QDZWQBLU.js";
@@ -251,7 +251,7 @@ import "./chunk-IFBSZGW3.js";
251
251
  import "./chunk-RJWL3RHB.js";
252
252
  import "./chunk-VQ7B2Q6M.js";
253
253
  import "./chunk-OGXXGHW6.js";
254
- import "./chunk-LDHR465K.js";
254
+ import "./chunk-Y3XPSGNF.js";
255
255
  import "./chunk-BANSBRNX.js";
256
256
  import "./chunk-GNVZQ5JN.js";
257
257
  import "./chunk-YN2UN7N3.js";
@@ -268,14 +268,14 @@ import "./chunk-KIW3OOZE.js";
268
268
  import "./chunk-YE4JBZO5.js";
269
269
  import "./chunk-5KVT6G5U.js";
270
270
  import "./chunk-VYDGHJIN.js";
271
- import "./chunk-TPCRDPUY.js";
271
+ import "./chunk-KZSGBWOJ.js";
272
272
  import "./chunk-7O5EW7KX.js";
273
273
  import "./chunk-H7XKCNR6.js";
274
- import "./chunk-VPEA63FC.js";
274
+ import "./chunk-EWJZZDRG.js";
275
275
  import "./chunk-SOBJ6NEY.js";
276
- import "./chunk-25QK3LR2.js";
276
+ import "./chunk-7O2MC42R.js";
277
277
  import "./chunk-AUFPPBC3.js";
278
- import "./chunk-G6L3REL3.js";
278
+ import "./chunk-OPFVXM2D.js";
279
279
  import "./chunk-B6SPPYGJ.js";
280
280
  import "./chunk-UD7UNYRD.js";
281
281
  import "./chunk-Z64TS5V4.js";
@@ -285,7 +285,7 @@ import "./chunk-IISBCCWR.js";
285
285
  import "./chunk-4PG5R6BJ.js";
286
286
  import "./chunk-BJLCV2P3.js";
287
287
  import "./chunk-2YA5N2BY.js";
288
- import "./chunk-BOZQAUAJ.js";
288
+ import "./chunk-EXQJMFRF.js";
289
289
  import "./chunk-HUDPXTXW.js";
290
290
  import "./chunk-AZEZSQ5R.js";
291
291
  import "./chunk-IHCXMYSE.js";
@@ -306,13 +306,13 @@ import "./chunk-HXFIILGF.js";
306
306
  import "./chunk-WTWQA7BB.js";
307
307
  import "./chunk-VZIAVM72.js";
308
308
  import "./chunk-HRATODNO.js";
309
- import "./chunk-KISOMGY2.js";
310
- import "./chunk-FUDKGJDN.js";
311
- import "./chunk-ZPLQ27MY.js";
309
+ import "./chunk-3RHU5MD7.js";
310
+ import "./chunk-AVGDYYMA.js";
311
+ import "./chunk-5UM4H64E.js";
312
312
  import "./chunk-UFGFMWAD.js";
313
313
  import "./chunk-LXATZLSC.js";
314
- import "./chunk-FR7PK7ED.js";
315
- import "./chunk-LIGZO7XN.js";
314
+ import "./chunk-P4TV3TQ2.js";
315
+ import "./chunk-HPB5TF55.js";
316
316
  import "./chunk-3UXOZBHV.js";
317
317
  import "./chunk-AL3TCNSJ.js";
318
318
  import "./chunk-M4IEZGCK.js";
@@ -321,7 +321,7 @@ import "./chunk-GKCXTSFF.js";
321
321
  import "./chunk-2LSZVONP.js";
322
322
  import "./chunk-DEUNUKTD.js";
323
323
  import "./chunk-LXY5VVGM.js";
324
- import "./chunk-6D3IWYNY.js";
324
+ import "./chunk-R2BIVU2Z.js";
325
325
  import "./chunk-R4ZHF4K2.js";
326
326
  import "./chunk-CSAKJVXW.js";
327
327
  import "./chunk-K2XUWZBM.js";
@@ -332,7 +332,7 @@ import "./chunk-QEDLJDHP.js";
332
332
  import "./chunk-U4LUIE6Y.js";
333
333
  import "./chunk-5YQXWVCP.js";
334
334
  import "./chunk-ZY2MNJR6.js";
335
- import "./chunk-E4QIX2OB.js";
335
+ import "./chunk-IAGVM7EY.js";
336
336
  import "./chunk-X2KO4FK5.js";
337
337
  import "./chunk-GZFKCLRC.js";
338
338
  import "./chunk-EKUI7I2X.js";
@@ -356,7 +356,7 @@ import "./chunk-ZCUTSMR2.js";
356
356
  import "./chunk-QDW3E4RD.js";
357
357
  import "./chunk-GKL6QYZO.js";
358
358
  import "./chunk-ZJP66Q4I.js";
359
- import "./chunk-XVQVF2TK.js";
359
+ import "./chunk-NHWDTOBN.js";
360
360
  import "./chunk-UHVXE24Y.js";
361
361
  import "./chunk-QGVCFVX6.js";
362
362
  import "./chunk-IGOW4TJE.js";
@@ -432,7 +432,7 @@ import "./chunk-W5BIQOAJ.js";
432
432
  import "./chunk-4Q26RNSR.js";
433
433
  import "./chunk-P4JED3ZL.js";
434
434
  import "./chunk-CTVWELNK.js";
435
- import "./chunk-SEA56G6S.js";
435
+ import "./chunk-V4XE263I.js";
436
436
  import "./chunk-YBA52OKG.js";
437
437
  import "./chunk-RMMA44HE.js";
438
438
  import "./chunk-YLXETSAH.js";
@@ -24,7 +24,7 @@ import "../chunk-FEHIOYML.js";
24
24
  import "../chunk-P32IDSHD.js";
25
25
  import {
26
26
  StorageManager
27
- } from "../chunk-XVQVF2TK.js";
27
+ } from "../chunk-NHWDTOBN.js";
28
28
  import "../chunk-UHVXE24Y.js";
29
29
  import "../chunk-QGVCFVX6.js";
30
30
  import "../chunk-IGOW4TJE.js";
@@ -100,7 +100,7 @@ import "../chunk-YCVB7X56.js";
100
100
  import "../chunk-PQVCH2AE.js";
101
101
  import "../chunk-PJKTFXE2.js";
102
102
  import "../chunk-W5BIQOAJ.js";
103
- import "../chunk-SEA56G6S.js";
103
+ import "../chunk-V4XE263I.js";
104
104
  import "../chunk-YBA52OKG.js";
105
105
  import "../chunk-JRVMCZE3.js";
106
106
  import "../chunk-BT7NVCML.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  CompoundingEngine,
3
3
  defaultTierMigrationCycleBudget
4
- } from "../chunk-5JABRT5G.js";
4
+ } from "../chunk-GHHQLSSY.js";
5
5
  import "../chunk-5KBIOI4G.js";
6
6
  import "../chunk-OGXXGHW6.js";
7
7
  import "../chunk-YUTT4ZTI.js";
8
- import "../chunk-ZPLQ27MY.js";
9
- import "../chunk-XVQVF2TK.js";
8
+ import "../chunk-5UM4H64E.js";
9
+ import "../chunk-NHWDTOBN.js";
10
10
  import "../chunk-UHVXE24Y.js";
11
11
  import "../chunk-QGVCFVX6.js";
12
12
  import "../chunk-IGOW4TJE.js";
@@ -78,7 +78,7 @@ import "../chunk-YCVB7X56.js";
78
78
  import "../chunk-PQVCH2AE.js";
79
79
  import "../chunk-PJKTFXE2.js";
80
80
  import "../chunk-W5BIQOAJ.js";
81
- import "../chunk-SEA56G6S.js";
81
+ import "../chunk-V4XE263I.js";
82
82
  import "../chunk-YBA52OKG.js";
83
83
  import "../chunk-JRVMCZE3.js";
84
84
  import "../chunk-BT7NVCML.js";
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAcV,YAAY,EAWb,MAAM,YAAY,CAAC;AAyYpB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D;AA8DD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AA4ED,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAajD,eAAO,MAAM,uBAAuB,aAclC,CAAC;AAgIH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAClD,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,YAAY,CAkwGd"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAcV,YAAY,EAWb,MAAM,YAAY,CAAC;AAyYpB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9D;AA8DD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AA4ED,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAajD,eAAO,MAAM,uBAAuB,aAclC,CAAC;AAgIH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAClD,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,YAAY,CAowGd"}
package/dist/config.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  isOpenaiApiKeyDisabled,
5
5
  parseConfig,
6
6
  resolveEnvVars
7
- } from "./chunk-NM2II57L.js";
7
+ } from "./chunk-PRKNAIGZ.js";
8
8
  import "./chunk-ZKOPY4WW.js";
9
9
  import "./chunk-62OKGIJA.js";
10
10
  import "./chunk-J5WI4QRP.js";
@@ -49,7 +49,7 @@ import "./chunk-ZCUTSMR2.js";
49
49
  import "./chunk-QDW3E4RD.js";
50
50
  import "./chunk-GKL6QYZO.js";
51
51
  import "./chunk-ZJP66Q4I.js";
52
- import "./chunk-XVQVF2TK.js";
52
+ import "./chunk-NHWDTOBN.js";
53
53
  import "./chunk-UHVXE24Y.js";
54
54
  import "./chunk-QGVCFVX6.js";
55
55
  import "./chunk-IGOW4TJE.js";
@@ -122,7 +122,7 @@ import "./chunk-YCVB7X56.js";
122
122
  import "./chunk-PQVCH2AE.js";
123
123
  import "./chunk-PJKTFXE2.js";
124
124
  import "./chunk-W5BIQOAJ.js";
125
- import "./chunk-SEA56G6S.js";
125
+ import "./chunk-V4XE263I.js";
126
126
  import "./chunk-YBA52OKG.js";
127
127
  import "./chunk-353C5UNV.js";
128
128
  import "./chunk-JRVMCZE3.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  runCodexMaterialize,
3
3
  runPostConsolidationMaterialize
4
- } from "../chunk-LIGZO7XN.js";
4
+ } from "../chunk-HPB5TF55.js";
5
5
  import "../chunk-3UXOZBHV.js";
6
6
  import "../chunk-AL3TCNSJ.js";
7
7
  import "../chunk-TOTT6S2V.js";
8
8
  import "../chunk-236PXYG7.js";
9
9
  import "../chunk-ZCUTSMR2.js";
10
10
  import "../chunk-QDW3E4RD.js";
11
- import "../chunk-XVQVF2TK.js";
11
+ import "../chunk-NHWDTOBN.js";
12
12
  import "../chunk-UHVXE24Y.js";
13
13
  import "../chunk-QGVCFVX6.js";
14
14
  import "../chunk-IGOW4TJE.js";
@@ -80,7 +80,7 @@ import "../chunk-YCVB7X56.js";
80
80
  import "../chunk-PQVCH2AE.js";
81
81
  import "../chunk-PJKTFXE2.js";
82
82
  import "../chunk-W5BIQOAJ.js";
83
- import "../chunk-SEA56G6S.js";
83
+ import "../chunk-V4XE263I.js";
84
84
  import "../chunk-YBA52OKG.js";
85
85
  import "../chunk-JRVMCZE3.js";
86
86
  import "../chunk-BT7NVCML.js";
@@ -33,7 +33,7 @@ import {
33
33
  import "../chunk-V27FK6D6.js";
34
34
  import {
35
35
  runCodexMaterialize
36
- } from "../chunk-LIGZO7XN.js";
36
+ } from "../chunk-HPB5TF55.js";
37
37
  import "../chunk-3UXOZBHV.js";
38
38
  import {
39
39
  MATERIALIZE_VERSION,
@@ -58,7 +58,7 @@ import {
58
58
  import "../chunk-236PXYG7.js";
59
59
  import "../chunk-ZCUTSMR2.js";
60
60
  import "../chunk-QDW3E4RD.js";
61
- import "../chunk-XVQVF2TK.js";
61
+ import "../chunk-NHWDTOBN.js";
62
62
  import "../chunk-UHVXE24Y.js";
63
63
  import "../chunk-QGVCFVX6.js";
64
64
  import "../chunk-IGOW4TJE.js";
@@ -133,7 +133,7 @@ import {
133
133
  } from "../chunk-PQVCH2AE.js";
134
134
  import "../chunk-PJKTFXE2.js";
135
135
  import "../chunk-W5BIQOAJ.js";
136
- import "../chunk-SEA56G6S.js";
136
+ import "../chunk-V4XE263I.js";
137
137
  import "../chunk-YBA52OKG.js";
138
138
  import "../chunk-JRVMCZE3.js";
139
139
  import "../chunk-BT7NVCML.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  refreshConvergedNamespaces
3
- } from "./chunk-WWH7GJ42.js";
4
- import "./chunk-B7VD36TI.js";
3
+ } from "./chunk-OCK4D5PC.js";
4
+ import "./chunk-WHROVQ5Q.js";
5
5
  import "./chunk-KJTKLXTH.js";
6
6
  import "./chunk-2DQ2XREU.js";
7
- import "./chunk-FR7PK7ED.js";
7
+ import "./chunk-P4TV3TQ2.js";
8
8
  import "./chunk-TBBDFYXW.js";
9
- import "./chunk-XVQVF2TK.js";
9
+ import "./chunk-NHWDTOBN.js";
10
10
  import "./chunk-UHVXE24Y.js";
11
11
  import "./chunk-QGVCFVX6.js";
12
12
  import "./chunk-IGOW4TJE.js";
@@ -78,7 +78,7 @@ import "./chunk-YCVB7X56.js";
78
78
  import "./chunk-PQVCH2AE.js";
79
79
  import "./chunk-PJKTFXE2.js";
80
80
  import "./chunk-W5BIQOAJ.js";
81
- import "./chunk-SEA56G6S.js";
81
+ import "./chunk-V4XE263I.js";
82
82
  import "./chunk-YBA52OKG.js";
83
83
  import "./chunk-JRVMCZE3.js";
84
84
  import "./chunk-BT7NVCML.js";
@@ -9,10 +9,10 @@ import {
9
9
  computeServiceCorpusWatermarks,
10
10
  digestPartitionCensus,
11
11
  resolveCorpusNamespaceRoots
12
- } from "./chunk-KISOMGY2.js";
13
- import "./chunk-FUDKGJDN.js";
14
- import "./chunk-ZPLQ27MY.js";
15
- import "./chunk-XVQVF2TK.js";
12
+ } from "./chunk-3RHU5MD7.js";
13
+ import "./chunk-AVGDYYMA.js";
14
+ import "./chunk-5UM4H64E.js";
15
+ import "./chunk-NHWDTOBN.js";
16
16
  import "./chunk-UHVXE24Y.js";
17
17
  import "./chunk-QGVCFVX6.js";
18
18
  import "./chunk-IGOW4TJE.js";
@@ -84,7 +84,7 @@ import "./chunk-YCVB7X56.js";
84
84
  import "./chunk-PQVCH2AE.js";
85
85
  import "./chunk-PJKTFXE2.js";
86
86
  import "./chunk-W5BIQOAJ.js";
87
- import "./chunk-SEA56G6S.js";
87
+ import "./chunk-V4XE263I.js";
88
88
  import "./chunk-YBA52OKG.js";
89
89
  import "./chunk-JRVMCZE3.js";
90
90
  import "./chunk-BT7NVCML.js";
@@ -3,7 +3,7 @@ import {
3
3
  entityIndexVersion,
4
4
  entityRecentTranscriptLookbackHours,
5
5
  readRecentEntityTranscriptEntries
6
- } from "./chunk-KO224R36.js";
6
+ } from "./chunk-NCZGGGWI.js";
7
7
  import "./chunk-SVH57F5Z.js";
8
8
  import "./chunk-MKYRCCSN.js";
9
9
  import "./chunk-SP4DB6SX.js";
@@ -12,7 +12,7 @@ import "./chunk-GKUA4MGB.js";
12
12
  import "./chunk-WJ6S54ES.js";
13
13
  import "./chunk-2DQ2XREU.js";
14
14
  import "./chunk-NVKO5YKP.js";
15
- import "./chunk-XVQVF2TK.js";
15
+ import "./chunk-NHWDTOBN.js";
16
16
  import "./chunk-UHVXE24Y.js";
17
17
  import "./chunk-QGVCFVX6.js";
18
18
  import "./chunk-IGOW4TJE.js";
@@ -84,7 +84,7 @@ import "./chunk-YCVB7X56.js";
84
84
  import "./chunk-PQVCH2AE.js";
85
85
  import "./chunk-PJKTFXE2.js";
86
86
  import "./chunk-W5BIQOAJ.js";
87
- import "./chunk-SEA56G6S.js";
87
+ import "./chunk-V4XE263I.js";
88
88
  import "./chunk-YBA52OKG.js";
89
89
  import "./chunk-JRVMCZE3.js";
90
90
  import "./chunk-BT7NVCML.js";