@remnic/core 10.0.94 → 10.0.96

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 (235) hide show
  1. package/dist/abstraction-nodes.d.ts.map +1 -1
  2. package/dist/abstraction-nodes.js +7 -1
  3. package/dist/access-admin-ops-surface.js +91 -90
  4. package/dist/access-audit.js +2 -2
  5. package/dist/access-cli.js +91 -90
  6. package/dist/access-cli.js.map +1 -1
  7. package/dist/access-extraction-force-flush.js +91 -90
  8. package/dist/access-http-briefing.js +91 -90
  9. package/dist/access-http-query.js +91 -90
  10. package/dist/access-http.js +91 -90
  11. package/dist/access-identity-continuity-surface.js +91 -90
  12. package/dist/access-lcm-surface.js +91 -90
  13. package/dist/access-mcp.js +91 -90
  14. package/dist/access-observe-write-surface.js +91 -90
  15. package/dist/access-operations-batch.js +91 -90
  16. package/dist/access-operations.js +91 -90
  17. package/dist/access-recall-concurrency.js +91 -90
  18. package/dist/access-recall-response.js +91 -90
  19. package/dist/access-recall-surface.js +91 -90
  20. package/dist/access-schema.d.ts +5 -5
  21. package/dist/access-service.js +91 -90
  22. package/dist/active-recall.js +16 -16
  23. package/dist/briefing.js +15 -15
  24. package/dist/buffer.js +7 -7
  25. package/dist/calibration.js +2 -2
  26. package/dist/{capsule-merge-6IDAYTKG.js → capsule-merge-ILR35DIB.js} +10 -10
  27. package/dist/causal-consolidation.js +16 -16
  28. package/dist/{chunk-QHARXWTC.js → chunk-2LCX6TAD.js} +2 -2
  29. package/dist/{chunk-UN4RVUG2.js → chunk-2R3ACFYN.js} +3 -3
  30. package/dist/{chunk-RQFXZYTF.js → chunk-33C4BK7I.js} +4 -4
  31. package/dist/{chunk-UBEKET2V.js → chunk-3R63SXC5.js} +4 -4
  32. package/dist/{chunk-LNGELD2M.js → chunk-3VWU3KF3.js} +2 -2
  33. package/dist/{chunk-FWRXW7CZ.js → chunk-4CXK3GT3.js} +29 -29
  34. package/dist/{chunk-DNY63QWJ.js → chunk-4HK7DYOL.js} +2 -2
  35. package/dist/{chunk-LLPMMMWG.js → chunk-4IJFJQPD.js} +2 -2
  36. package/dist/{chunk-GBJUTX44.js → chunk-4WKR4P7H.js} +2 -2
  37. package/dist/{chunk-ILY5SSOM.js → chunk-53ZVHXVZ.js} +6 -6
  38. package/dist/{chunk-FQAQ63QA.js → chunk-5AJIGWY4.js} +2 -2
  39. package/dist/{chunk-CIWMTNHW.js → chunk-5NFF2TSD.js} +2 -2
  40. package/dist/{chunk-D5XG2KPS.js → chunk-7E7J7QXB.js} +2 -2
  41. package/dist/{chunk-2WCLTWV2.js → chunk-7NVK6AGC.js} +2 -2
  42. package/dist/{chunk-PC5DRBGD.js → chunk-AP4BFWSW.js} +2 -2
  43. package/dist/{chunk-CL4JU3DF.js → chunk-B7L4ZYFY.js} +3 -3
  44. package/dist/{chunk-LQ5SS4OP.js → chunk-D6IGZYTN.js} +3 -3
  45. package/dist/{chunk-XJ2S5UBF.js → chunk-DWWX3FU3.js} +3 -3
  46. package/dist/{chunk-IL3RHBWM.js → chunk-EJ23D4JG.js} +3 -3
  47. package/dist/{chunk-F4QFU5IZ.js → chunk-EZ7XJJ5L.js} +2 -2
  48. package/dist/{chunk-FZZMLGWQ.js → chunk-F4BUSX3D.js} +2 -2
  49. package/dist/{chunk-LXATZLSC.js → chunk-FL3O34XF.js} +12 -5
  50. package/dist/chunk-FL3O34XF.js.map +1 -0
  51. package/dist/{chunk-DPPLNZ3A.js → chunk-FM4P7HSW.js} +4 -4
  52. package/dist/{chunk-QDESY76F.js → chunk-FQACH7MC.js} +2 -2
  53. package/dist/{chunk-XPXHQI6N.js → chunk-FVMEZ57K.js} +2 -2
  54. package/dist/{chunk-F2XNSIPP.js → chunk-G2CGIFRP.js} +10 -3
  55. package/dist/chunk-G2CGIFRP.js.map +1 -0
  56. package/dist/{chunk-ZDV5YWID.js → chunk-GLDIMGOS.js} +6 -6
  57. package/dist/{chunk-YIXJSW5M.js → chunk-HA5DASDG.js} +3 -3
  58. package/dist/{chunk-S3S72HRM.js → chunk-HCCRWSP7.js} +2 -2
  59. package/dist/{chunk-NMGHGTVR.js → chunk-HRMOKGQM.js} +6 -6
  60. package/dist/{chunk-OUVYYKYU.js → chunk-IBKGQ6EY.js} +2 -2
  61. package/dist/{chunk-RNG7S3FY.js → chunk-ICHLN5L6.js} +6 -6
  62. package/dist/chunk-ITAUMNQU.js +40 -0
  63. package/dist/chunk-ITAUMNQU.js.map +1 -0
  64. package/dist/{chunk-R23JWJD3.js → chunk-J426U7XK.js} +9 -9
  65. package/dist/{chunk-QMFAMOT2.js → chunk-JH5AV542.js} +2 -2
  66. package/dist/{chunk-WGGRZYSQ.js → chunk-KE3JWIZK.js} +8 -8
  67. package/dist/{chunk-SQ3GEIEL.js → chunk-KUQLUYIR.js} +5 -5
  68. package/dist/{chunk-RKABLU5M.js → chunk-KVHGCISP.js} +9 -9
  69. package/dist/{chunk-RUTN5MMC.js → chunk-LRLQ2PRP.js} +5 -5
  70. package/dist/{chunk-X5HGU2EM.js → chunk-NT772J7I.js} +2 -2
  71. package/dist/{chunk-BPK32FRM.js → chunk-NTDHSV7N.js} +61 -6
  72. package/dist/chunk-NTDHSV7N.js.map +1 -0
  73. package/dist/{chunk-4EZWSDFL.js → chunk-NX4XDDFQ.js} +3 -3
  74. package/dist/{chunk-IAYUTGF2.js → chunk-O3GZPLVY.js} +4 -4
  75. package/dist/{chunk-IGOW4TJE.js → chunk-O3JG4PD3.js} +2 -2
  76. package/dist/{chunk-UHMHJX5G.js → chunk-OIG4ZFMB.js} +4 -4
  77. package/dist/{chunk-IQ55QGY5.js → chunk-R4JYSBZE.js} +2 -2
  78. package/dist/{chunk-Z3FTSHT5.js → chunk-RUQE5C32.js} +2 -2
  79. package/dist/{chunk-ESLOLCD4.js → chunk-RUWKIPWJ.js} +2 -2
  80. package/dist/{chunk-W54Z2MOP.js → chunk-RXSGBO7Y.js} +2 -2
  81. package/dist/{chunk-D5S6RL32.js → chunk-TFMLRVMW.js} +166 -145
  82. package/dist/{chunk-D5S6RL32.js.map → chunk-TFMLRVMW.js.map} +1 -1
  83. package/dist/{chunk-BOK6BN5M.js → chunk-THV6PZ7V.js} +2 -2
  84. package/dist/{chunk-J7BIFOYP.js → chunk-U6TC6Z5B.js} +2 -2
  85. package/dist/{chunk-X2BVB74H.js → chunk-UZQXJDOE.js} +2 -2
  86. package/dist/{chunk-SUTEBYGI.js → chunk-V7T45MI6.js} +2 -2
  87. package/dist/{chunk-A4F7OIC5.js → chunk-WVIWDMFB.js} +2 -2
  88. package/dist/{chunk-BN2EBCLB.js → chunk-XPCUKWLE.js} +2 -2
  89. package/dist/{chunk-OJXK5C6Z.js → chunk-ZG4GNPRE.js} +7 -7
  90. package/dist/{chunk-TYRWSE4B.js → chunk-ZUMHQEW4.js} +2 -2
  91. package/dist/{chunk-DAOMWGO2.js → chunk-ZX5N5D6M.js} +4 -4
  92. package/dist/cli.js +91 -90
  93. package/dist/coding/export-okf-codegraph.js +14 -14
  94. package/dist/compounding/engine.js +16 -16
  95. package/dist/config.js +16 -16
  96. package/dist/connectors/codex-materialize-runner.js +15 -15
  97. package/dist/connectors/index.js +15 -15
  98. package/dist/consolidation-provenance-check.js +8 -8
  99. package/dist/consolidation-undo.js +6 -6
  100. package/dist/contradiction/index.js +6 -6
  101. package/dist/convergence-refresh.js +17 -17
  102. package/dist/corpus-watermark.js +17 -17
  103. package/dist/cue-anchors.d.ts.map +1 -1
  104. package/dist/cue-anchors.js +8 -2
  105. package/dist/{entity-canonical-id-migration-JJSTZF73.js → entity-canonical-id-migration-IG77BOGD.js} +5 -5
  106. package/dist/entity-mention-index-cache.js +2 -2
  107. package/dist/entity-retrieval.js +16 -16
  108. package/dist/explicit-capture.js +91 -90
  109. package/dist/extraction.js +21 -21
  110. package/dist/harmonic-construction.js +9 -3
  111. package/dist/harmonic-graph-version.d.ts +14 -0
  112. package/dist/harmonic-graph-version.d.ts.map +1 -0
  113. package/dist/harmonic-graph-version.js +17 -0
  114. package/dist/harmonic-retrieval.d.ts +19 -14
  115. package/dist/harmonic-retrieval.d.ts.map +1 -1
  116. package/dist/harmonic-retrieval.js +22 -17
  117. package/dist/index.js +105 -104
  118. package/dist/lcm/engine.js +3 -3
  119. package/dist/lcm/index.js +8 -8
  120. package/dist/local-llm.js +2 -2
  121. package/dist/location/index.js +16 -16
  122. package/dist/maintenance/memory-governance.js +15 -15
  123. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +15 -15
  124. package/dist/maintenance/rebuild-memory-projection-runner.js +17 -17
  125. package/dist/maintenance/rebuild-memory-projection.js +16 -16
  126. package/dist/memory-browse.js +7 -7
  127. package/dist/namespaces/migrate.js +16 -16
  128. package/dist/namespaces/search.js +6 -6
  129. package/dist/namespaces/storage.js +15 -15
  130. package/dist/operator-doctor-corpus.js +18 -18
  131. package/dist/operator-toolkit.js +24 -24
  132. package/dist/orchestration/backlog-scheduler.js +92 -91
  133. package/dist/orchestration/backlog-scheduler.js.map +1 -1
  134. package/dist/orchestration/buffer-drain-runner.js +92 -91
  135. package/dist/orchestration/extraction-persist-failure.d.ts +25 -1
  136. package/dist/orchestration/extraction-persist-failure.d.ts.map +1 -1
  137. package/dist/orchestration/extraction-persist.d.ts +3 -6
  138. package/dist/orchestration/extraction-persist.d.ts.map +1 -1
  139. package/dist/orchestration/maintenance.js +25 -25
  140. package/dist/orchestrator.js +93 -92
  141. package/dist/page-versioning.js +6 -6
  142. package/dist/qmd.js +4 -4
  143. package/dist/recall-navigation.js +91 -90
  144. package/dist/recall-state-view-admission.js +7 -7
  145. package/dist/recall-why-service.js +7 -7
  146. package/dist/{resolution-OVVIF7ZY.js → resolution-G4SLHSEU.js} +7 -7
  147. package/dist/resolution-G4SLHSEU.js.map +1 -0
  148. package/dist/resume-bundles.js +17 -17
  149. package/dist/schemas.d.ts +9 -9
  150. package/dist/search/factory.js +5 -5
  151. package/dist/search/index.js +5 -5
  152. package/dist/semantic-consolidation.js +16 -16
  153. package/dist/semantic-rule-promotion.js +15 -15
  154. package/dist/semantic-rule-verifier.js +15 -15
  155. package/dist/source-agent-qualifier.js +18 -18
  156. package/dist/standup/build.js +15 -15
  157. package/dist/storage.js +14 -14
  158. package/dist/summarizer.js +3 -3
  159. package/dist/support-passport/index.js +3 -3
  160. package/dist/transfer/capsule-import.js +8 -8
  161. package/dist/transfer/export-okf.js +15 -15
  162. package/dist/verified-recall.js +15 -15
  163. package/dist/who-knows-cli.js +16 -16
  164. package/dist/who-knows.js +15 -15
  165. package/package.json +2 -2
  166. package/src/abstraction-nodes.ts +7 -2
  167. package/src/cue-anchors.ts +8 -3
  168. package/src/harmonic-graph-cache.test.ts +244 -0
  169. package/src/harmonic-graph-version.ts +46 -0
  170. package/src/harmonic-retrieval.ts +92 -2
  171. package/src/orchestration/extraction-persist-failure.test.ts +90 -0
  172. package/src/orchestration/extraction-persist-failure.ts +39 -1
  173. package/src/orchestration/extraction-persist.ts +29 -21
  174. package/src/orchestration/recall-internal.ts +1 -1
  175. package/src/orchestrator-persist-branch-failure.test.ts +271 -0
  176. package/dist/chunk-BPK32FRM.js.map +0 -1
  177. package/dist/chunk-F2XNSIPP.js.map +0 -1
  178. package/dist/chunk-LXATZLSC.js.map +0 -1
  179. /package/dist/{capsule-merge-6IDAYTKG.js.map → capsule-merge-ILR35DIB.js.map} +0 -0
  180. /package/dist/{chunk-QHARXWTC.js.map → chunk-2LCX6TAD.js.map} +0 -0
  181. /package/dist/{chunk-UN4RVUG2.js.map → chunk-2R3ACFYN.js.map} +0 -0
  182. /package/dist/{chunk-RQFXZYTF.js.map → chunk-33C4BK7I.js.map} +0 -0
  183. /package/dist/{chunk-UBEKET2V.js.map → chunk-3R63SXC5.js.map} +0 -0
  184. /package/dist/{chunk-LNGELD2M.js.map → chunk-3VWU3KF3.js.map} +0 -0
  185. /package/dist/{chunk-FWRXW7CZ.js.map → chunk-4CXK3GT3.js.map} +0 -0
  186. /package/dist/{chunk-DNY63QWJ.js.map → chunk-4HK7DYOL.js.map} +0 -0
  187. /package/dist/{chunk-LLPMMMWG.js.map → chunk-4IJFJQPD.js.map} +0 -0
  188. /package/dist/{chunk-GBJUTX44.js.map → chunk-4WKR4P7H.js.map} +0 -0
  189. /package/dist/{chunk-ILY5SSOM.js.map → chunk-53ZVHXVZ.js.map} +0 -0
  190. /package/dist/{chunk-FQAQ63QA.js.map → chunk-5AJIGWY4.js.map} +0 -0
  191. /package/dist/{chunk-CIWMTNHW.js.map → chunk-5NFF2TSD.js.map} +0 -0
  192. /package/dist/{chunk-D5XG2KPS.js.map → chunk-7E7J7QXB.js.map} +0 -0
  193. /package/dist/{chunk-2WCLTWV2.js.map → chunk-7NVK6AGC.js.map} +0 -0
  194. /package/dist/{chunk-PC5DRBGD.js.map → chunk-AP4BFWSW.js.map} +0 -0
  195. /package/dist/{chunk-CL4JU3DF.js.map → chunk-B7L4ZYFY.js.map} +0 -0
  196. /package/dist/{chunk-LQ5SS4OP.js.map → chunk-D6IGZYTN.js.map} +0 -0
  197. /package/dist/{chunk-XJ2S5UBF.js.map → chunk-DWWX3FU3.js.map} +0 -0
  198. /package/dist/{chunk-IL3RHBWM.js.map → chunk-EJ23D4JG.js.map} +0 -0
  199. /package/dist/{chunk-F4QFU5IZ.js.map → chunk-EZ7XJJ5L.js.map} +0 -0
  200. /package/dist/{chunk-FZZMLGWQ.js.map → chunk-F4BUSX3D.js.map} +0 -0
  201. /package/dist/{chunk-DPPLNZ3A.js.map → chunk-FM4P7HSW.js.map} +0 -0
  202. /package/dist/{chunk-QDESY76F.js.map → chunk-FQACH7MC.js.map} +0 -0
  203. /package/dist/{chunk-XPXHQI6N.js.map → chunk-FVMEZ57K.js.map} +0 -0
  204. /package/dist/{chunk-ZDV5YWID.js.map → chunk-GLDIMGOS.js.map} +0 -0
  205. /package/dist/{chunk-YIXJSW5M.js.map → chunk-HA5DASDG.js.map} +0 -0
  206. /package/dist/{chunk-S3S72HRM.js.map → chunk-HCCRWSP7.js.map} +0 -0
  207. /package/dist/{chunk-NMGHGTVR.js.map → chunk-HRMOKGQM.js.map} +0 -0
  208. /package/dist/{chunk-OUVYYKYU.js.map → chunk-IBKGQ6EY.js.map} +0 -0
  209. /package/dist/{chunk-RNG7S3FY.js.map → chunk-ICHLN5L6.js.map} +0 -0
  210. /package/dist/{chunk-R23JWJD3.js.map → chunk-J426U7XK.js.map} +0 -0
  211. /package/dist/{chunk-QMFAMOT2.js.map → chunk-JH5AV542.js.map} +0 -0
  212. /package/dist/{chunk-WGGRZYSQ.js.map → chunk-KE3JWIZK.js.map} +0 -0
  213. /package/dist/{chunk-SQ3GEIEL.js.map → chunk-KUQLUYIR.js.map} +0 -0
  214. /package/dist/{chunk-RKABLU5M.js.map → chunk-KVHGCISP.js.map} +0 -0
  215. /package/dist/{chunk-RUTN5MMC.js.map → chunk-LRLQ2PRP.js.map} +0 -0
  216. /package/dist/{chunk-X5HGU2EM.js.map → chunk-NT772J7I.js.map} +0 -0
  217. /package/dist/{chunk-4EZWSDFL.js.map → chunk-NX4XDDFQ.js.map} +0 -0
  218. /package/dist/{chunk-IAYUTGF2.js.map → chunk-O3GZPLVY.js.map} +0 -0
  219. /package/dist/{chunk-IGOW4TJE.js.map → chunk-O3JG4PD3.js.map} +0 -0
  220. /package/dist/{chunk-UHMHJX5G.js.map → chunk-OIG4ZFMB.js.map} +0 -0
  221. /package/dist/{chunk-IQ55QGY5.js.map → chunk-R4JYSBZE.js.map} +0 -0
  222. /package/dist/{chunk-Z3FTSHT5.js.map → chunk-RUQE5C32.js.map} +0 -0
  223. /package/dist/{chunk-ESLOLCD4.js.map → chunk-RUWKIPWJ.js.map} +0 -0
  224. /package/dist/{chunk-W54Z2MOP.js.map → chunk-RXSGBO7Y.js.map} +0 -0
  225. /package/dist/{chunk-BOK6BN5M.js.map → chunk-THV6PZ7V.js.map} +0 -0
  226. /package/dist/{chunk-J7BIFOYP.js.map → chunk-U6TC6Z5B.js.map} +0 -0
  227. /package/dist/{chunk-X2BVB74H.js.map → chunk-UZQXJDOE.js.map} +0 -0
  228. /package/dist/{chunk-SUTEBYGI.js.map → chunk-V7T45MI6.js.map} +0 -0
  229. /package/dist/{chunk-A4F7OIC5.js.map → chunk-WVIWDMFB.js.map} +0 -0
  230. /package/dist/{chunk-BN2EBCLB.js.map → chunk-XPCUKWLE.js.map} +0 -0
  231. /package/dist/{chunk-OJXK5C6Z.js.map → chunk-ZG4GNPRE.js.map} +0 -0
  232. /package/dist/{chunk-TYRWSE4B.js.map → chunk-ZUMHQEW4.js.map} +0 -0
  233. /package/dist/{chunk-DAOMWGO2.js.map → chunk-ZX5N5D6M.js.map} +0 -0
  234. /package/dist/{entity-canonical-id-migration-JJSTZF73.js.map → entity-canonical-id-migration-IG77BOGD.js.map} +0 -0
  235. /package/dist/{resolution-OVVIF7ZY.js.map → harmonic-graph-version.js.map} +0 -0
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  compareStrings
3
3
  } from "./chunk-ULM7JCDH.js";
4
- import {
5
- entityMentionEpoch
6
- } from "./chunk-7CT3AI52.js";
7
4
  import {
8
5
  raceAbort
9
6
  } from "./chunk-R2MBW2S4.js";
7
+ import {
8
+ entityMentionEpoch
9
+ } from "./chunk-7CT3AI52.js";
10
10
  import {
11
11
  log
12
12
  } from "./chunk-3WCASNQZ.js";
@@ -325,4 +325,4 @@ export {
325
325
  settleEntityMentionIndex,
326
326
  resolveEntityMentionIndex
327
327
  };
328
- //# sourceMappingURL=chunk-DPPLNZ3A.js.map
328
+ //# sourceMappingURL=chunk-FM4P7HSW.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-ZAJLJ35W.js";
12
12
  import {
13
13
  parseConfig
14
- } from "./chunk-UBEKET2V.js";
14
+ } from "./chunk-3R63SXC5.js";
15
15
  import {
16
16
  resolveObjectiveStateStoreDir,
17
17
  validateObjectiveStateSnapshot
@@ -268,4 +268,4 @@ export {
268
268
  recordResumeBundle,
269
269
  getResumeBundleStatus
270
270
  };
271
- //# sourceMappingURL=chunk-QDESY76F.js.map
271
+ //# sourceMappingURL=chunk-FQACH7MC.js.map
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-F4TWWUMP.js";
25
25
  import {
26
26
  QmdClient
27
- } from "./chunk-R23JWJD3.js";
27
+ } from "./chunk-J426U7XK.js";
28
28
  import {
29
29
  resolveIndexingCapabilities,
30
30
  resolvePipelineProcessingCapabilities,
@@ -179,4 +179,4 @@ export {
179
179
  createConversationSearchBackend,
180
180
  createConversationIndexRuntime
181
181
  };
182
- //# sourceMappingURL=chunk-XPXHQI6N.js.map
182
+ //# sourceMappingURL=chunk-FVMEZ57K.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ bumpHarmonicGraphVersion
3
+ } from "./chunk-ITAUMNQU.js";
1
4
  import {
2
5
  compareDeterministicStrings,
3
6
  mergeSortedUniqueStrings
@@ -69,7 +72,11 @@ async function recordAbstractionNode(options) {
69
72
  const nodesDir = path.join(rootDir, "nodes", day);
70
73
  const filePath = path.join(nodesDir, `${validated.nodeId}.json`);
71
74
  await mkdir(nodesDir, { recursive: true });
72
- await writeFile(filePath, JSON.stringify(validated, null, 2), "utf8");
75
+ try {
76
+ await writeFile(filePath, JSON.stringify(validated, null, 2), "utf8");
77
+ } finally {
78
+ bumpHarmonicGraphVersion(rootDir);
79
+ }
73
80
  return filePath;
74
81
  }
75
82
  var MAX_ABSTRACTION_NODE_VALUES = 50;
@@ -196,7 +203,7 @@ async function upsertAbstractionNodes(options) {
196
203
  filePaths.push(filePath);
197
204
  }
198
205
  return filePaths;
199
- });
206
+ }).finally(() => bumpHarmonicGraphVersion(rootDir));
200
207
  }
201
208
  async function upsertAbstractionNode(options) {
202
209
  const [filePath] = await upsertAbstractionNodes({ ...options, nodes: [options.node] });
@@ -257,4 +264,4 @@ export {
257
264
  upsertAbstractionNode,
258
265
  getAbstractionNodeStoreStatus
259
266
  };
260
- //# sourceMappingURL=chunk-F2XNSIPP.js.map
267
+ //# sourceMappingURL=chunk-G2CGIFRP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/abstraction-nodes.ts"],"sourcesContent":["import { mkdir, unlink, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { listJsonFilesStrict, readJsonFile, withJsonStoreMutationLock, writeJsonFileAtomic } from \"./json-store.js\";\nimport { bumpHarmonicGraphVersion } from \"./harmonic-graph-version.js\";\nimport { compareDeterministicStrings, mergeSortedUniqueStrings } from \"./deterministic-order.js\";\nimport { isNotFoundError } from \"./utils/errno.js\";\nimport {\n assertIsoRecordedAt,\n assertSafePathSegment,\n assertString,\n isRecord,\n optionalStringArray,\n recordStoreDay,\n validateStringRecord,\n} from \"./store-contract.js\";\n\nexport type AbstractionNodeKind = \"episode\" | \"topic\" | \"project\" | \"workflow\" | \"constraint\";\nexport type AbstractionLevel = \"micro\" | \"meso\" | \"macro\";\n\nexport interface AbstractionNode {\n schemaVersion: 1;\n nodeId: string;\n recordedAt: string;\n sessionKey: string;\n kind: AbstractionNodeKind;\n abstractionLevel: AbstractionLevel;\n title: string;\n summary: string;\n sourceMemoryIds?: string[];\n entityRefs?: string[];\n tags?: string[];\n metadata?: Record<string, string>;\n}\n\nexport interface AbstractionNodeStoreStatus {\n enabled: boolean;\n anchorsEnabled: boolean;\n rootDir: string;\n nodesDir: string;\n nodes: {\n total: number;\n valid: number;\n invalid: number;\n byKind: Partial<Record<AbstractionNodeKind, number>>;\n byLevel: Partial<Record<AbstractionLevel, number>>;\n latestNodeId?: string;\n latestRecordedAt?: string;\n latestSessionKey?: string;\n };\n latestNode?: AbstractionNode;\n invalidNodes: Array<{\n path: string;\n error: string;\n }>;\n}\n\nfunction validateKind(raw: unknown): AbstractionNodeKind {\n const value = assertString(raw, \"kind\");\n if (![\"episode\", \"topic\", \"project\", \"workflow\", \"constraint\"].includes(value)) {\n throw new Error(\"kind must be one of episode|topic|project|workflow|constraint\");\n }\n return value as AbstractionNodeKind;\n}\n\nfunction validateLevel(raw: unknown): AbstractionLevel {\n const value = assertString(raw, \"abstractionLevel\");\n if (![\"micro\", \"meso\", \"macro\"].includes(value)) {\n throw new Error(\"abstractionLevel must be one of micro|meso|macro\");\n }\n return value as AbstractionLevel;\n}\n\nexport function resolveAbstractionNodeStoreDir(memoryDir: string, overrideDir?: string): string {\n if (typeof overrideDir === \"string\" && overrideDir.trim().length > 0) {\n return overrideDir.trim();\n }\n return path.join(memoryDir, \"state\", \"abstraction-nodes\");\n}\n\nexport function validateAbstractionNode(raw: unknown): AbstractionNode {\n if (!isRecord(raw)) throw new Error(\"abstraction node must be an object\");\n if (raw.schemaVersion !== 1) throw new Error(\"schemaVersion must be 1\");\n\n return {\n schemaVersion: 1,\n nodeId: assertSafePathSegment(assertString(raw.nodeId, \"nodeId\"), \"nodeId\"),\n recordedAt: assertIsoRecordedAt(assertString(raw.recordedAt, \"recordedAt\")),\n sessionKey: assertString(raw.sessionKey, \"sessionKey\"),\n kind: validateKind(raw.kind),\n abstractionLevel: validateLevel(raw.abstractionLevel),\n title: assertString(raw.title, \"title\"),\n summary: assertString(raw.summary, \"summary\"),\n sourceMemoryIds: optionalStringArray(raw.sourceMemoryIds, \"sourceMemoryIds\"),\n entityRefs: optionalStringArray(raw.entityRefs, \"entityRefs\"),\n tags: optionalStringArray(raw.tags, \"tags\"),\n metadata: validateStringRecord(raw.metadata, \"metadata\"),\n };\n}\n\nexport async function recordAbstractionNode(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n node: AbstractionNode;\n}): Promise<string> {\n const rootDir = resolveAbstractionNodeStoreDir(options.memoryDir, options.abstractionNodeStoreDir);\n const validated = validateAbstractionNode(options.node);\n const day = recordStoreDay(validated.recordedAt);\n const nodesDir = path.join(rootDir, \"nodes\", day);\n const filePath = path.join(nodesDir, `${validated.nodeId}.json`);\n await mkdir(nodesDir, { recursive: true });\n try {\n await writeFile(filePath, JSON.stringify(validated, null, 2), \"utf8\");\n } finally {\n bumpHarmonicGraphVersion(rootDir);\n }\n return filePath;\n}\n\nconst MAX_ABSTRACTION_NODE_VALUES = 50;\n\nfunction mergeSortedValues(existing: string[] | undefined, incoming: string[] | undefined): string[] {\n return mergeSortedUniqueStrings(existing, incoming).slice(0, MAX_ABSTRACTION_NODE_VALUES);\n}\n\nexport const HARMONIC_SOURCE_MEMORY_INSERTED_AT_KEY = \"remnic.harmonic.sourceMemoryInsertedAt.v1\";\n\nfunction sourceMemoryInsertedAt(node: AbstractionNode | undefined): Map<string, string> {\n const insertedAtById = new Map<string, string>();\n if (!node) return insertedAtById;\n let stored: Record<string, unknown> = {};\n try {\n const parsed = JSON.parse(node.metadata?.[HARMONIC_SOURCE_MEMORY_INSERTED_AT_KEY] ?? \"{}\") as unknown;\n stored = isRecord(parsed) ? parsed : {};\n } catch {\n stored = {};\n }\n for (const memoryId of node.sourceMemoryIds ?? []) {\n const insertedAt = stored[memoryId];\n insertedAtById.set(\n memoryId,\n typeof insertedAt === \"string\" && Number.isFinite(Date.parse(insertedAt)) ? insertedAt : node.recordedAt\n );\n }\n return insertedAtById;\n}\n\nfunction mergeRecentSourceMemoryIds(\n existing: AbstractionNode | undefined,\n incoming: AbstractionNode\n): { ids: string[]; insertedAtJson: string } {\n const insertedAtById = sourceMemoryInsertedAt(existing);\n const incomingSources = [...sourceMemoryInsertedAt(incoming).entries()].sort(\n ([leftId, leftAt], [rightId, rightAt]) =>\n Date.parse(leftAt) - Date.parse(rightAt) || compareDeterministicStrings(leftId, rightId)\n );\n let nextInsertedAtMs = Math.max(\n Date.now(),\n [...insertedAtById.values()].reduce((latest, insertedAt) => Math.max(latest, Date.parse(insertedAt) + 1), 0)\n );\n for (const [memoryId] of incomingSources) {\n if (insertedAtById.has(memoryId)) continue;\n insertedAtById.set(memoryId, new Date(nextInsertedAtMs).toISOString());\n nextInsertedAtMs++;\n }\n const retained = [...insertedAtById.entries()]\n .sort(\n ([leftId, leftAt], [rightId, rightAt]) =>\n Date.parse(rightAt) - Date.parse(leftAt) || compareDeterministicStrings(leftId, rightId)\n )\n .slice(0, MAX_ABSTRACTION_NODE_VALUES);\n const ids = retained.map(([memoryId]) => memoryId).sort(compareDeterministicStrings);\n const retainedInsertedAt = Object.fromEntries(ids.map((memoryId) => [memoryId, insertedAtById.get(memoryId)]));\n return { ids, insertedAtJson: JSON.stringify(retainedInsertedAt) };\n}\n\ntype AbstractionNodeFile = {\n filePath: string;\n node: AbstractionNode;\n};\n\nfunction compareNodeFiles(left: AbstractionNodeFile, right: AbstractionNodeFile): number {\n return (\n Date.parse(right.node.recordedAt) - Date.parse(left.node.recordedAt) ||\n compareDeterministicStrings(left.filePath, right.filePath)\n );\n}\n\nfunction compareIncomingNodes(left: AbstractionNode, right: AbstractionNode): number {\n return (\n Date.parse(left.recordedAt) - Date.parse(right.recordedAt) ||\n compareDeterministicStrings(canonicalNodeKey(left), canonicalNodeKey(right))\n );\n}\n\nfunction canonicalMetadata(metadata: Record<string, string> | undefined): Record<string, string> {\n return Object.fromEntries(\n Object.entries(metadata ?? {}).sort(([left], [right]) => compareDeterministicStrings(left, right))\n );\n}\n\nfunction canonicalNodeKey(node: AbstractionNode): string {\n return JSON.stringify({\n ...node,\n metadata: canonicalMetadata(node.metadata),\n });\n}\n\nfunction mergeAbstractionNodes(existing: AbstractionNode | undefined, incoming: AbstractionNode): AbstractionNode {\n const incomingIsNewest = !existing || Date.parse(existing.recordedAt) <= Date.parse(incoming.recordedAt);\n const newest = incomingIsNewest ? incoming : existing;\n const older = incomingIsNewest ? existing : incoming;\n if (!newest) throw new Error(\"abstraction node merge requires a node\");\n const retainedSources = mergeRecentSourceMemoryIds(existing, incoming);\n const mergedMetadata = canonicalMetadata({\n ...(older?.metadata ?? {}),\n ...(newest.metadata ?? {}),\n [HARMONIC_SOURCE_MEMORY_INSERTED_AT_KEY]: retainedSources.insertedAtJson,\n });\n return validateAbstractionNode({\n ...newest,\n sourceMemoryIds: retainedSources.ids,\n entityRefs: mergeSortedValues(existing?.entityRefs, incoming.entityRefs),\n tags: mergeSortedValues(existing?.tags, incoming.tags),\n metadata: mergedMetadata,\n });\n}\n\nexport async function upsertAbstractionNodes(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n nodes: AbstractionNode[];\n}): Promise<string[]> {\n const rootDir = resolveAbstractionNodeStoreDir(options.memoryDir, options.abstractionNodeStoreDir);\n const incomingNodes = options.nodes.map(validateAbstractionNode);\n if (incomingNodes.length === 0) return [];\n return withJsonStoreMutationLock(rootDir, async () => {\n const nodesDir = path.join(rootDir, \"nodes\");\n const nodeFiles = await listJsonFilesStrict(nodesDir, { allowMissingDirectory: true });\n const existingNodes = await Promise.all(\n nodeFiles.map(async (filePath) => ({\n filePath,\n node: validateAbstractionNode(await readJsonFile(filePath)),\n }))\n );\n const existingById = new Map<string, AbstractionNodeFile[]>();\n for (const existing of existingNodes) {\n const records = existingById.get(existing.node.nodeId) ?? [];\n records.push(existing);\n existingById.set(existing.node.nodeId, records);\n }\n const incomingById = new Map<string, AbstractionNode[]>();\n for (const incoming of incomingNodes) {\n const records = incomingById.get(incoming.nodeId) ?? [];\n records.push(incoming);\n incomingById.set(incoming.nodeId, records);\n }\n\n const filePaths: string[] = [];\n for (const nodeId of [...incomingById.keys()].sort(compareDeterministicStrings)) {\n const existing = (existingById.get(nodeId) ?? []).sort(compareNodeFiles);\n const incoming = (incomingById.get(nodeId) ?? []).sort(compareIncomingNodes);\n let merged: AbstractionNode | undefined;\n for (const next of [...existing].reverse()) merged = mergeAbstractionNodes(merged, next.node);\n for (const next of incoming) merged = mergeAbstractionNodes(merged, next);\n if (!merged) throw new Error(`abstraction node batch has no node: ${nodeId}`);\n const filePath =\n existing[0]?.filePath ?? path.join(nodesDir, recordStoreDay(merged.recordedAt), `${merged.nodeId}.json`);\n await writeJsonFileAtomic(filePath, merged);\n for (const duplicate of existing.slice(1)) {\n await unlink(duplicate.filePath).catch((error) => {\n if (!isNotFoundError(error)) throw error;\n });\n }\n filePaths.push(filePath);\n }\n return filePaths;\n }).finally(() => bumpHarmonicGraphVersion(rootDir));\n}\n\nexport async function upsertAbstractionNode(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n node: AbstractionNode;\n}): Promise<string> {\n const [filePath] = await upsertAbstractionNodes({ ...options, nodes: [options.node] });\n if (!filePath) throw new Error(\"abstraction node upsert did not write a file\");\n return filePath;\n}\n\nexport async function getAbstractionNodeStoreStatus(options: {\n memoryDir: string;\n abstractionNodeStoreDir?: string;\n enabled: boolean;\n anchorsEnabled: boolean;\n}): Promise<AbstractionNodeStoreStatus> {\n const rootDir = resolveAbstractionNodeStoreDir(options.memoryDir, options.abstractionNodeStoreDir);\n const nodesDir = path.join(rootDir, \"nodes\");\n const files = await listJsonFilesStrict(nodesDir, { allowMissingDirectory: true });\n const nodes: AbstractionNode[] = [];\n const invalidNodes: Array<{ path: string; error: string }> = [];\n\n for (const filePath of files) {\n try {\n nodes.push(validateAbstractionNode(await readJsonFile(filePath)));\n } catch (error) {\n invalidNodes.push({\n path: filePath,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n nodes.sort(\n (a, b) => Date.parse(b.recordedAt) - Date.parse(a.recordedAt) || compareDeterministicStrings(a.nodeId, b.nodeId)\n );\n\n const byKind: Partial<Record<AbstractionNodeKind, number>> = {};\n const byLevel: Partial<Record<AbstractionLevel, number>> = {};\n for (const node of nodes) {\n byKind[node.kind] = (byKind[node.kind] ?? 0) + 1;\n byLevel[node.abstractionLevel] = (byLevel[node.abstractionLevel] ?? 0) + 1;\n }\n\n return {\n enabled: options.enabled,\n anchorsEnabled: options.anchorsEnabled,\n rootDir,\n nodesDir,\n nodes: {\n total: files.length,\n valid: nodes.length,\n invalid: invalidNodes.length,\n byKind,\n byLevel,\n latestNodeId: nodes[0]?.nodeId,\n latestRecordedAt: nodes[0]?.recordedAt,\n latestSessionKey: nodes[0]?.sessionKey,\n },\n latestNode: nodes[0],\n invalidNodes,\n };\n}\n"],"mappings":"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","names":[]}
@@ -3,16 +3,16 @@ import {
3
3
  } from "./chunk-TBBDFYXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-FWRXW7CZ.js";
6
+ } from "./chunk-4CXK3GT3.js";
7
7
  import {
8
8
  requestEntityCanonicalIdReconcile
9
- } from "./chunk-IAYUTGF2.js";
10
- import {
11
- bumpMemoryCorpusVersionForDir
12
- } from "./chunk-M5GVCJSJ.js";
9
+ } from "./chunk-O3GZPLVY.js";
13
10
  import {
14
11
  excludeSupportPassportPrivateMemories
15
12
  } from "./chunk-NS7U4ZYU.js";
13
+ import {
14
+ bumpMemoryCorpusVersionForDir
15
+ } from "./chunk-M5GVCJSJ.js";
16
16
  import {
17
17
  isMacOsReplicationJunkBasename
18
18
  } from "./chunk-QUIRIG2P.js";
@@ -769,4 +769,4 @@ export {
769
769
  listMemoryGovernanceRuns,
770
770
  readMemoryGovernanceRunArtifact
771
771
  };
772
- //# sourceMappingURL=chunk-ZDV5YWID.js.map
772
+ //# sourceMappingURL=chunk-GLDIMGOS.js.map
@@ -18,7 +18,7 @@ import {
18
18
  entityMentionScopeKey,
19
19
  resolveEntityMentionIndex,
20
20
  writePersistedEntityMentionIndex
21
- } from "./chunk-DPPLNZ3A.js";
21
+ } from "./chunk-FM4P7HSW.js";
22
22
  import {
23
23
  buildOriginStructuredSections,
24
24
  sanitizeOriginatedFacts
@@ -34,7 +34,7 @@ import {
34
34
  } from "./chunk-2DQ2XREU.js";
35
35
  import {
36
36
  compareEntityTimestamps
37
- } from "./chunk-FWRXW7CZ.js";
37
+ } from "./chunk-4CXK3GT3.js";
38
38
  import {
39
39
  normalizeEntityText,
40
40
  resolveRequestedEntitySectionKeys
@@ -927,4 +927,4 @@ export {
927
927
  entityIndexVersion,
928
928
  entityRecentTranscriptLookbackHours
929
929
  };
930
- //# sourceMappingURL=chunk-YIXJSW5M.js.map
930
+ //# sourceMappingURL=chunk-HA5DASDG.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  raceRecallAbort,
3
3
  throwIfRecallAborted
4
- } from "./chunk-BOK6BN5M.js";
4
+ } from "./chunk-THV6PZ7V.js";
5
5
  import {
6
6
  emitExtractionLlmFailureError,
7
7
  recordExtractionLlmFailure,
@@ -1158,4 +1158,4 @@ export {
1158
1158
  ExtractionDeadlineError,
1159
1159
  ExtractionRunCoordinator
1160
1160
  };
1161
- //# sourceMappingURL=chunk-S3S72HRM.js.map
1161
+ //# sourceMappingURL=chunk-HCCRWSP7.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-QV2VZKD5.js";
4
4
  import {
5
5
  createVersion
6
- } from "./chunk-SQ3GEIEL.js";
6
+ } from "./chunk-KUQLUYIR.js";
7
7
  import {
8
8
  HistoricalEntityCanonicalIdCache,
9
9
  canonicalizeEntityRefFrontmatter,
@@ -12,10 +12,7 @@ import {
12
12
  repairContentAfterJournalMove,
13
13
  requestEntityCanonicalIdReconcile,
14
14
  withRawEntityPageMutation
15
- } from "./chunk-IAYUTGF2.js";
16
- import {
17
- bumpMemoryCorpusVersionForDir
18
- } from "./chunk-M5GVCJSJ.js";
15
+ } from "./chunk-O3GZPLVY.js";
19
16
  import {
20
17
  parseExportBundle
21
18
  } from "./chunk-WEHSQBFR.js";
@@ -30,6 +27,9 @@ import {
30
27
  isPathInsideRoot,
31
28
  sha256String
32
29
  } from "./chunk-GCGJW34D.js";
30
+ import {
31
+ bumpMemoryCorpusVersionForDir
32
+ } from "./chunk-M5GVCJSJ.js";
33
33
 
34
34
  // src/transfer/capsule-import.ts
35
35
  import { lstat, mkdir, readFile, realpath, stat, unlink, writeFile } from "fs/promises";
@@ -296,4 +296,4 @@ function mintForkId(capsuleId, originalId, now) {
296
296
  export {
297
297
  importCapsule
298
298
  };
299
- //# sourceMappingURL=chunk-NMGHGTVR.js.map
299
+ //# sourceMappingURL=chunk-HRMOKGQM.js.map
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-GZFKCLRC.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-FWRXW7CZ.js";
13
+ } from "./chunk-4CXK3GT3.js";
14
14
  import {
15
15
  normalizeEntityName
16
16
  } from "./chunk-YXZG5TVN.js";
@@ -974,4 +974,4 @@ export {
974
974
  resolveBriefingSaveDir,
975
975
  briefingFilename
976
976
  };
977
- //# sourceMappingURL=chunk-OUVYYKYU.js.map
977
+ //# sourceMappingURL=chunk-IBKGQ6EY.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-FWRXW7CZ.js";
4
- import {
5
- getCachedRuleMemories,
6
- setCachedRuleMemories
7
- } from "./chunk-C64XATK7.js";
3
+ } from "./chunk-4CXK3GT3.js";
8
4
  import {
9
5
  countRecallTokenOverlap,
10
6
  normalizeRecallTokens
11
7
  } from "./chunk-YCVB7X56.js";
8
+ import {
9
+ getCachedRuleMemories,
10
+ setCachedRuleMemories
11
+ } from "./chunk-C64XATK7.js";
12
12
 
13
13
  // src/semantic-rule-verifier.ts
14
14
  var DEFAULT_MIN_EFFECTIVE_CONFIDENCE = 0.45;
@@ -119,4 +119,4 @@ export {
119
119
  compareVerifiedSemanticRuleResults,
120
120
  searchVerifiedSemanticRules
121
121
  };
122
- //# sourceMappingURL=chunk-RNG7S3FY.js.map
122
+ //# sourceMappingURL=chunk-ICHLN5L6.js.map
@@ -0,0 +1,40 @@
1
+ import {
2
+ MEMORY_CORPUS_VERSION_SENTINEL
3
+ } from "./chunk-M5GVCJSJ.js";
4
+
5
+ // src/harmonic-graph-version.ts
6
+ import { appendFileSync, mkdirSync, statSync } from "fs";
7
+ import path from "path";
8
+ var HARMONIC_GRAPH_VERSION_SENTINEL = ".harmonic-graph-version.log";
9
+ var MEMORY_STATUS_VERSION_SENTINEL = ".memory-status-version.log";
10
+ var COLD_WRITE_VERSION_SENTINEL = ".cold-write-version.log";
11
+ function bumpHarmonicGraphVersion(abstractionNodeStoreDir) {
12
+ try {
13
+ mkdirSync(abstractionNodeStoreDir, { recursive: true });
14
+ appendFileSync(path.join(abstractionNodeStoreDir, HARMONIC_GRAPH_VERSION_SENTINEL), "x");
15
+ } catch {
16
+ }
17
+ }
18
+ function sentinelSize(filePath) {
19
+ try {
20
+ return statSync(filePath).size;
21
+ } catch {
22
+ return 0;
23
+ }
24
+ }
25
+ function readHarmonicGraphStamp(memoryDir, abstractionNodeStoreDir) {
26
+ const stateDir = path.join(memoryDir, "state");
27
+ return [
28
+ sentinelSize(path.join(stateDir, MEMORY_CORPUS_VERSION_SENTINEL)),
29
+ sentinelSize(path.join(stateDir, MEMORY_STATUS_VERSION_SENTINEL)),
30
+ sentinelSize(path.join(stateDir, COLD_WRITE_VERSION_SENTINEL)),
31
+ sentinelSize(path.join(abstractionNodeStoreDir, HARMONIC_GRAPH_VERSION_SENTINEL))
32
+ ].join(":");
33
+ }
34
+
35
+ export {
36
+ HARMONIC_GRAPH_VERSION_SENTINEL,
37
+ bumpHarmonicGraphVersion,
38
+ readHarmonicGraphStamp
39
+ };
40
+ //# sourceMappingURL=chunk-ITAUMNQU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/harmonic-graph-version.ts"],"sourcesContent":["import { appendFileSync, mkdirSync, statSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { MEMORY_CORPUS_VERSION_SENTINEL } from \"./memory-corpus-version.js\";\n\n/**\n * Append-only sentinel in the abstraction node store root. The byte size is the\n * version of the node and cue anchor stores, the same scheme the memory corpus\n * sentinel uses, so a bump in one process is seen by every other process.\n */\nexport const HARMONIC_GRAPH_VERSION_SENTINEL = \".harmonic-graph-version.log\";\n\n// Names must match StorageManager.versionFilePath(\"memory-status\" | \"cold-write\").\nconst MEMORY_STATUS_VERSION_SENTINEL = \".memory-status-version.log\";\nconst COLD_WRITE_VERSION_SENTINEL = \".cold-write-version.log\";\n\n/**\n * Record that a node or cue anchor was written. Fail-open: a failed bump must not\n * fail the write; the harmonic graph cache TTL bounds the stale window.\n */\nexport function bumpHarmonicGraphVersion(abstractionNodeStoreDir: string): void {\n try {\n mkdirSync(abstractionNodeStoreDir, { recursive: true });\n appendFileSync(path.join(abstractionNodeStoreDir, HARMONIC_GRAPH_VERSION_SENTINEL), \"x\");\n } catch {\n /* fail-open */\n }\n}\n\nfunction sentinelSize(filePath: string): number {\n try {\n return statSync(filePath).size;\n } catch {\n return 0;\n }\n}\n\n/** Four stats; changes whenever a memory, a node or a cue anchor is written. */\nexport function readHarmonicGraphStamp(memoryDir: string, abstractionNodeStoreDir: string): string {\n const stateDir = path.join(memoryDir, \"state\");\n return [\n sentinelSize(path.join(stateDir, MEMORY_CORPUS_VERSION_SENTINEL)),\n sentinelSize(path.join(stateDir, MEMORY_STATUS_VERSION_SENTINEL)),\n sentinelSize(path.join(stateDir, COLD_WRITE_VERSION_SENTINEL)),\n sentinelSize(path.join(abstractionNodeStoreDir, HARMONIC_GRAPH_VERSION_SENTINEL)),\n ].join(\":\");\n}\n"],"mappings":";;;;;AAAA,SAAS,gBAAgB,WAAW,gBAAgB;AACpD,OAAO,UAAU;AAQV,IAAM,kCAAkC;AAG/C,IAAM,iCAAiC;AACvC,IAAM,8BAA8B;AAM7B,SAAS,yBAAyB,yBAAuC;AAC9E,MAAI;AACF,cAAU,yBAAyB,EAAE,WAAW,KAAK,CAAC;AACtD,mBAAe,KAAK,KAAK,yBAAyB,+BAA+B,GAAG,GAAG;AAAA,EACzF,QAAQ;AAAA,EAER;AACF;AAEA,SAAS,aAAa,UAA0B;AAC9C,MAAI;AACF,WAAO,SAAS,QAAQ,EAAE;AAAA,EAC5B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAGO,SAAS,uBAAuB,WAAmB,yBAAyC;AACjG,QAAM,WAAW,KAAK,KAAK,WAAW,OAAO;AAC7C,SAAO;AAAA,IACL,aAAa,KAAK,KAAK,UAAU,8BAA8B,CAAC;AAAA,IAChE,aAAa,KAAK,KAAK,UAAU,8BAA8B,CAAC;AAAA,IAChE,aAAa,KAAK,KAAK,UAAU,2BAA2B,CAAC;AAAA,IAC7D,aAAa,KAAK,KAAK,yBAAyB,+BAA+B,CAAC;AAAA,EAClF,EAAE,KAAK,GAAG;AACZ;","names":[]}
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  resolveEnsureCollectionArgs
3
3
  } from "./chunk-NWA6IXR3.js";
4
+ import {
5
+ createInflightJoiner
6
+ } from "./chunk-AF2XMJKD.js";
4
7
  import {
5
8
  QMD_PROBE_RETRY_BACKOFF_MS,
6
9
  QMD_PROBE_TIMEOUT_MS,
@@ -22,14 +25,6 @@ import {
22
25
  import {
23
26
  QmdDaemonSession
24
27
  } from "./chunk-EZ47HOJ6.js";
25
- import {
26
- createInflightJoiner
27
- } from "./chunk-AF2XMJKD.js";
28
- import {
29
- clearQmdResultCaches,
30
- getCachedQmdSearch,
31
- setCachedQmdSearch
32
- } from "./chunk-C64XATK7.js";
33
28
  import {
34
29
  launchProcess
35
30
  } from "./chunk-ZEFVK7XC.js";
@@ -38,6 +33,11 @@ import {
38
33
  isAbortError,
39
34
  throwIfAborted
40
35
  } from "./chunk-R2MBW2S4.js";
36
+ import {
37
+ clearQmdResultCaches,
38
+ getCachedQmdSearch,
39
+ setCachedQmdSearch
40
+ } from "./chunk-C64XATK7.js";
41
41
  import {
42
42
  mergeEnv
43
43
  } from "./chunk-P2QRMMVQ.js";
@@ -2030,4 +2030,4 @@ export {
2030
2030
  sharedDaemonSessionCountForTest,
2031
2031
  QmdClient
2032
2032
  };
2033
- //# sourceMappingURL=chunk-R23JWJD3.js.map
2033
+ //# sourceMappingURL=chunk-J426U7XK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-CL4JU3DF.js";
3
+ } from "./chunk-B7L4ZYFY.js";
4
4
 
5
5
  // src/convergence-refresh.ts
6
6
  async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
32
32
  export {
33
33
  refreshConvergedNamespaces
34
34
  };
35
- //# sourceMappingURL=chunk-QMFAMOT2.js.map
35
+ //# sourceMappingURL=chunk-JH5AV542.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  rebuildMemoryLifecycleLedger
3
- } from "./chunk-LNGELD2M.js";
3
+ } from "./chunk-3VWU3KF3.js";
4
4
  import {
5
5
  PROJECTION_REBUILD_RUNNER_FLAG
6
- } from "./chunk-DNY63QWJ.js";
6
+ } from "./chunk-4HK7DYOL.js";
7
7
  import {
8
8
  startLocationAutoSync
9
- } from "./chunk-IL3RHBWM.js";
9
+ } from "./chunk-EJ23D4JG.js";
10
10
  import {
11
11
  ensureContradictionScanCron,
12
12
  ensureDaySummaryCron,
@@ -21,17 +21,17 @@ import {
21
21
  isIsoWeekId,
22
22
  msUntilNextIsoWeek,
23
23
  previousIsoWeekId
24
- } from "./chunk-4EZWSDFL.js";
24
+ } from "./chunk-NX4XDDFQ.js";
25
25
  import {
26
26
  planNamespaceMaintenance,
27
27
  runNamespaceMaintenanceBatchPlan
28
- } from "./chunk-FQAQ63QA.js";
28
+ } from "./chunk-5AJIGWY4.js";
29
29
  import {
30
30
  rebuildMemoryProjection
31
- } from "./chunk-CL4JU3DF.js";
31
+ } from "./chunk-B7L4ZYFY.js";
32
32
  import {
33
33
  LocalLlmClient
34
- } from "./chunk-RQFXZYTF.js";
34
+ } from "./chunk-33C4BK7I.js";
35
35
  import {
36
36
  DEFAULT_TIMELINE_CATEGORIES,
37
37
  TIMELINE_RESERVED_IDLE,
@@ -2874,4 +2874,4 @@ export {
2874
2874
  ActivitySyncScheduler,
2875
2875
  MaintenanceScheduler
2876
2876
  };
2877
- //# sourceMappingURL=chunk-WGGRZYSQ.js.map
2877
+ //# sourceMappingURL=chunk-KE3JWIZK.js.map
@@ -2,13 +2,13 @@ import {
2
2
  pathMayCarryEntityRefs,
3
3
  requestEntityCanonicalIdReconcile,
4
4
  withRawEntityPageMutation
5
- } from "./chunk-IAYUTGF2.js";
6
- import {
7
- bumpMemoryCorpusVersionForDir
8
- } from "./chunk-M5GVCJSJ.js";
5
+ } from "./chunk-O3GZPLVY.js";
9
6
  import {
10
7
  withHeldFileLock
11
8
  } from "./chunk-EBV6VXKF.js";
9
+ import {
10
+ bumpMemoryCorpusVersionForDir
11
+ } from "./chunk-M5GVCJSJ.js";
12
12
  import {
13
13
  ALL_CATEGORY_DIRS,
14
14
  RECALL_FALLBACK_DIRS
@@ -448,4 +448,4 @@ export {
448
448
  revertToVersion,
449
449
  diffVersions
450
450
  };
451
- //# sourceMappingURL=chunk-SQ3GEIEL.js.map
451
+ //# sourceMappingURL=chunk-KUQLUYIR.js.map
@@ -3,7 +3,7 @@ import {
3
3
  readNamespaceMaintenanceLastRanStatuses,
4
4
  readNamespaceMaintenanceStatuses,
5
5
  runNamespaceMaintenancePlan
6
- } from "./chunk-FQAQ63QA.js";
6
+ } from "./chunk-5AJIGWY4.js";
7
7
  import {
8
8
  analyzeSessionIntegrity,
9
9
  applySessionRepair,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-CMTINOFS.js";
15
15
  import {
16
16
  summarizeCorpusAndReplica
17
- } from "./chunk-GBJUTX44.js";
17
+ } from "./chunk-4WKR4P7H.js";
18
18
  import {
19
19
  readJudgeVerdictStats
20
20
  } from "./chunk-OZKOPQCM.js";
@@ -27,14 +27,14 @@ import {
27
27
  } from "./chunk-JKMIGCK6.js";
28
28
  import {
29
29
  resolveCorpusNamespaceRoots
30
- } from "./chunk-D5XG2KPS.js";
30
+ } from "./chunk-7E7J7QXB.js";
31
31
  import {
32
32
  listNamespaces
33
- } from "./chunk-XJ2S5UBF.js";
33
+ } from "./chunk-DWWX3FU3.js";
34
34
  import {
35
35
  listMemoryGovernanceRuns,
36
36
  readMemoryGovernanceRunArtifact
37
- } from "./chunk-ZDV5YWID.js";
37
+ } from "./chunk-GLDIMGOS.js";
38
38
  import {
39
39
  resolveCuratedIncludeFilesStatePath,
40
40
  resolveNativeKnowledgeStatePath,
@@ -42,7 +42,7 @@ import {
42
42
  } from "./chunk-2DQ2XREU.js";
43
43
  import {
44
44
  runConsolidationProvenanceCheck
45
- } from "./chunk-TYRWSE4B.js";
45
+ } from "./chunk-ZUMHQEW4.js";
46
46
  import {
47
47
  analyzeGraphHealth
48
48
  } from "./chunk-M4IEZGCK.js";
@@ -51,13 +51,13 @@ import {
51
51
  } from "./chunk-YBPYIAA5.js";
52
52
  import {
53
53
  parseConfig
54
- } from "./chunk-UBEKET2V.js";
54
+ } from "./chunk-3R63SXC5.js";
55
55
  import {
56
56
  summarizeExtractionLiveness
57
57
  } from "./chunk-AWD36R4D.js";
58
58
  import {
59
59
  StorageManager
60
- } from "./chunk-FWRXW7CZ.js";
60
+ } from "./chunk-4CXK3GT3.js";
61
61
  import {
62
62
  lintWorkspaceFiles
63
63
  } from "./chunk-DM2T26WE.js";
@@ -1876,4 +1876,4 @@ export {
1876
1876
  runBenchmarkRecall,
1877
1877
  runOperatorRepair
1878
1878
  };
1879
- //# sourceMappingURL=chunk-RKABLU5M.js.map
1879
+ //# sourceMappingURL=chunk-KVHGCISP.js.map
@@ -2,18 +2,18 @@ import {
2
2
  ExtractionDrain,
3
3
  TurnIngestionCoordinator,
4
4
  shouldSkipImplicitExtraction
5
- } from "./chunk-D5S6RL32.js";
5
+ } from "./chunk-TFMLRVMW.js";
6
6
  import {
7
7
  headerConnector,
8
8
  renderExtractionConversation,
9
9
  resolveSourceConnector
10
- } from "./chunk-LLPMMMWG.js";
10
+ } from "./chunk-4IJFJQPD.js";
11
11
  import {
12
12
  SmartBuffer
13
- } from "./chunk-CIWMTNHW.js";
13
+ } from "./chunk-5NFF2TSD.js";
14
14
  import {
15
15
  selfDeps
16
- } from "./chunk-FWRXW7CZ.js";
16
+ } from "./chunk-4CXK3GT3.js";
17
17
  import {
18
18
  describeError,
19
19
  groupTurnsByExtractionScope
@@ -447,4 +447,4 @@ export {
447
447
  ClaimBufferStorage,
448
448
  BufferDrainRunner
449
449
  };
450
- //# sourceMappingURL=chunk-RUTN5MMC.js.map
450
+ //# sourceMappingURL=chunk-LRLQ2PRP.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runPostConsolidationMaterialize
3
- } from "./chunk-BN2EBCLB.js";
3
+ } from "./chunk-XPCUKWLE.js";
4
4
  import {
5
5
  discoverMemoryExtensions,
6
6
  renderExtensionsBlock,
@@ -220,4 +220,4 @@ export {
220
220
  buildExtensionsBlockForConsolidation,
221
221
  materializeAfterSemanticConsolidation
222
222
  };
223
- //# sourceMappingURL=chunk-X5HGU2EM.js.map
223
+ //# sourceMappingURL=chunk-NT772J7I.js.map