@remnic/core 10.0.95 → 10.0.97

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 (237) 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-types.d.ts +2 -0
  11. package/dist/access-http-types.d.ts.map +1 -1
  12. package/dist/access-http.d.ts +1 -0
  13. package/dist/access-http.d.ts.map +1 -1
  14. package/dist/access-http.js +91 -90
  15. package/dist/access-identity-continuity-surface.js +91 -90
  16. package/dist/access-lcm-surface.js +91 -90
  17. package/dist/access-mcp.js +91 -90
  18. package/dist/access-observe-write-surface.js +91 -90
  19. package/dist/access-operations-batch.js +91 -90
  20. package/dist/access-operations.js +91 -90
  21. package/dist/access-recall-concurrency.js +91 -90
  22. package/dist/access-recall-response.js +91 -90
  23. package/dist/access-recall-surface.js +91 -90
  24. package/dist/access-schema.d.ts +5 -5
  25. package/dist/access-service.js +91 -90
  26. package/dist/active-recall.js +16 -16
  27. package/dist/briefing.js +15 -15
  28. package/dist/buffer.js +7 -7
  29. package/dist/calibration.js +2 -2
  30. package/dist/{capsule-merge-6IDAYTKG.js → capsule-merge-ILR35DIB.js} +10 -10
  31. package/dist/causal-consolidation.js +16 -16
  32. package/dist/{chunk-UN4RVUG2.js → chunk-2R3ACFYN.js} +3 -3
  33. package/dist/{chunk-RQFXZYTF.js → chunk-33C4BK7I.js} +4 -4
  34. package/dist/{chunk-BN2EBCLB.js → chunk-3DQZ2GAY.js} +2 -2
  35. package/dist/{chunk-DDATG2SF.js → chunk-3ETADXEP.js} +136 -127
  36. package/dist/{chunk-DDATG2SF.js.map → chunk-3ETADXEP.js.map} +1 -1
  37. package/dist/{chunk-UBEKET2V.js → chunk-3R63SXC5.js} +4 -4
  38. package/dist/{chunk-GBJUTX44.js → chunk-3WDFQKB4.js} +2 -2
  39. package/dist/{chunk-LLPMMMWG.js → chunk-4IJFJQPD.js} +2 -2
  40. package/dist/{chunk-BPK32FRM.js → chunk-4PXDXCNE.js} +61 -6
  41. package/dist/chunk-4PXDXCNE.js.map +1 -0
  42. package/dist/{chunk-CIWMTNHW.js → chunk-5NFF2TSD.js} +2 -2
  43. package/dist/{chunk-WGGRZYSQ.js → chunk-6RW5TONS.js} +8 -8
  44. package/dist/{chunk-LNGELD2M.js → chunk-6VAIFSDG.js} +2 -2
  45. package/dist/{chunk-2WCLTWV2.js → chunk-7NVK6AGC.js} +2 -2
  46. package/dist/{chunk-X5HGU2EM.js → chunk-A2D5WZRO.js} +2 -2
  47. package/dist/{chunk-LS7PT3YD.js → chunk-AMRGZOIP.js} +5 -5
  48. package/dist/{chunk-PC5DRBGD.js → chunk-AP4BFWSW.js} +2 -2
  49. package/dist/{chunk-OUVYYKYU.js → chunk-B2BMTXIF.js} +2 -2
  50. package/dist/{chunk-A4F7OIC5.js → chunk-BUOP3DOK.js} +7 -3
  51. package/dist/{chunk-A4F7OIC5.js.map → chunk-BUOP3DOK.js.map} +1 -1
  52. package/dist/{chunk-DNY63QWJ.js → chunk-CCQEANCY.js} +2 -2
  53. package/dist/{chunk-YIXJSW5M.js → chunk-CH2N4XCJ.js} +3 -3
  54. package/dist/{chunk-LQ5SS4OP.js → chunk-D6IGZYTN.js} +3 -3
  55. package/dist/{chunk-FWRXW7CZ.js → chunk-D6WJNWZG.js} +29 -29
  56. package/dist/{chunk-4EZWSDFL.js → chunk-E3YHIAO3.js} +3 -3
  57. package/dist/{chunk-IL3RHBWM.js → chunk-ECC6AAEE.js} +3 -3
  58. package/dist/{chunk-XJ2S5UBF.js → chunk-EHJ2RYR7.js} +3 -3
  59. package/dist/{chunk-F4QFU5IZ.js → chunk-EZ7XJJ5L.js} +2 -2
  60. package/dist/{chunk-FQAQ63QA.js → chunk-FHQ5SPMD.js} +2 -2
  61. package/dist/{chunk-LXATZLSC.js → chunk-FL3O34XF.js} +12 -5
  62. package/dist/chunk-FL3O34XF.js.map +1 -0
  63. package/dist/{chunk-DPPLNZ3A.js → chunk-FM4P7HSW.js} +4 -4
  64. package/dist/{chunk-QDESY76F.js → chunk-FQACH7MC.js} +2 -2
  65. package/dist/{chunk-XPXHQI6N.js → chunk-FVMEZ57K.js} +2 -2
  66. package/dist/{chunk-ILY5SSOM.js → chunk-FVPWQWIK.js} +6 -6
  67. package/dist/{chunk-F2XNSIPP.js → chunk-G2CGIFRP.js} +10 -3
  68. package/dist/chunk-G2CGIFRP.js.map +1 -0
  69. package/dist/{chunk-S3S72HRM.js → chunk-HCCRWSP7.js} +2 -2
  70. package/dist/{chunk-NMGHGTVR.js → chunk-HRMOKGQM.js} +6 -6
  71. package/dist/chunk-ITAUMNQU.js +40 -0
  72. package/dist/chunk-ITAUMNQU.js.map +1 -0
  73. package/dist/{chunk-R23JWJD3.js → chunk-J426U7XK.js} +9 -9
  74. package/dist/{chunk-CL4JU3DF.js → chunk-KI7E3N6Q.js} +3 -3
  75. package/dist/{chunk-SQ3GEIEL.js → chunk-KUQLUYIR.js} +5 -5
  76. package/dist/{chunk-J7BIFOYP.js → chunk-MXXTU4R2.js} +2 -2
  77. package/dist/{chunk-IAYUTGF2.js → chunk-O3GZPLVY.js} +4 -4
  78. package/dist/{chunk-IGOW4TJE.js → chunk-O3JG4PD3.js} +2 -2
  79. package/dist/{chunk-UHMHJX5G.js → chunk-OIG4ZFMB.js} +4 -4
  80. package/dist/{chunk-D5XG2KPS.js → chunk-OTSRGZRU.js} +2 -2
  81. package/dist/{chunk-ZDV5YWID.js → chunk-PWATRW3H.js} +6 -6
  82. package/dist/{chunk-ESLOLCD4.js → chunk-RUWKIPWJ.js} +2 -2
  83. package/dist/{chunk-IQ55QGY5.js → chunk-RXL67CV6.js} +2 -2
  84. package/dist/{chunk-W54Z2MOP.js → chunk-RXSGBO7Y.js} +2 -2
  85. package/dist/{chunk-QMFAMOT2.js → chunk-SFZEJJ6V.js} +2 -2
  86. package/dist/{chunk-QHARXWTC.js → chunk-SW3WUUYA.js} +2 -2
  87. package/dist/{chunk-FZZMLGWQ.js → chunk-TFI2Y5AR.js} +2 -2
  88. package/dist/{chunk-BOK6BN5M.js → chunk-THV6PZ7V.js} +2 -2
  89. package/dist/{chunk-Z3FTSHT5.js → chunk-UG54AEUG.js} +2 -2
  90. package/dist/{chunk-X2BVB74H.js → chunk-UZQXJDOE.js} +2 -2
  91. package/dist/{chunk-SUTEBYGI.js → chunk-VRBTZDQ5.js} +2 -2
  92. package/dist/{chunk-RKABLU5M.js → chunk-XP5CKXFV.js} +9 -9
  93. package/dist/{chunk-RNG7S3FY.js → chunk-YCQMNW3F.js} +6 -6
  94. package/dist/{chunk-OJXK5C6Z.js → chunk-ZG4GNPRE.js} +7 -7
  95. package/dist/{chunk-TYRWSE4B.js → chunk-ZUMHQEW4.js} +2 -2
  96. package/dist/{chunk-DAOMWGO2.js → chunk-ZX5N5D6M.js} +4 -4
  97. package/dist/cli.js +91 -90
  98. package/dist/coding/export-okf-codegraph.js +14 -14
  99. package/dist/compounding/engine.js +16 -16
  100. package/dist/config.js +16 -16
  101. package/dist/connectors/codex-materialize-runner.js +15 -15
  102. package/dist/connectors/index.js +15 -15
  103. package/dist/consolidation-provenance-check.js +8 -8
  104. package/dist/consolidation-undo.js +6 -6
  105. package/dist/contradiction/index.js +6 -6
  106. package/dist/convergence-refresh.js +17 -17
  107. package/dist/corpus-watermark.js +17 -17
  108. package/dist/cue-anchors.d.ts.map +1 -1
  109. package/dist/cue-anchors.js +8 -2
  110. package/dist/{entity-canonical-id-migration-JJSTZF73.js → entity-canonical-id-migration-IG77BOGD.js} +5 -5
  111. package/dist/entity-mention-index-cache.js +2 -2
  112. package/dist/entity-retrieval.js +16 -16
  113. package/dist/explicit-capture.js +91 -90
  114. package/dist/extraction.js +21 -21
  115. package/dist/harmonic-construction.js +9 -3
  116. package/dist/harmonic-graph-version.d.ts +14 -0
  117. package/dist/harmonic-graph-version.d.ts.map +1 -0
  118. package/dist/harmonic-graph-version.js +17 -0
  119. package/dist/harmonic-retrieval.d.ts +19 -14
  120. package/dist/harmonic-retrieval.d.ts.map +1 -1
  121. package/dist/harmonic-retrieval.js +22 -17
  122. package/dist/index.js +105 -104
  123. package/dist/lcm/engine.js +3 -3
  124. package/dist/lcm/index.js +8 -8
  125. package/dist/local-llm.js +2 -2
  126. package/dist/location/index.js +16 -16
  127. package/dist/maintenance/memory-governance.js +15 -15
  128. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +15 -15
  129. package/dist/maintenance/rebuild-memory-projection-runner.js +17 -17
  130. package/dist/maintenance/rebuild-memory-projection.js +16 -16
  131. package/dist/memory-browse.js +7 -7
  132. package/dist/namespaces/migrate.js +16 -16
  133. package/dist/namespaces/search.d.ts.map +1 -1
  134. package/dist/namespaces/search.js +6 -6
  135. package/dist/namespaces/storage.js +15 -15
  136. package/dist/operator-doctor-corpus.js +18 -18
  137. package/dist/operator-toolkit.js +24 -24
  138. package/dist/orchestration/backlog-scheduler.js +92 -91
  139. package/dist/orchestration/backlog-scheduler.js.map +1 -1
  140. package/dist/orchestration/buffer-drain-runner.js +92 -91
  141. package/dist/orchestration/maintenance.js +25 -25
  142. package/dist/orchestrator.js +93 -92
  143. package/dist/page-versioning.js +6 -6
  144. package/dist/qmd.js +4 -4
  145. package/dist/recall-navigation.js +91 -90
  146. package/dist/recall-state-view-admission.js +7 -7
  147. package/dist/recall-why-service.js +7 -7
  148. package/dist/{resolution-OVVIF7ZY.js → resolution-G4SLHSEU.js} +7 -7
  149. package/dist/resolution-G4SLHSEU.js.map +1 -0
  150. package/dist/resume-bundles.js +17 -17
  151. package/dist/schemas.d.ts +9 -9
  152. package/dist/search/factory.js +5 -5
  153. package/dist/search/index.js +5 -5
  154. package/dist/semantic-consolidation.js +16 -16
  155. package/dist/semantic-rule-promotion.js +15 -15
  156. package/dist/semantic-rule-verifier.js +15 -15
  157. package/dist/source-agent-qualifier.js +18 -18
  158. package/dist/standup/build.js +15 -15
  159. package/dist/storage.js +14 -14
  160. package/dist/summarizer.js +3 -3
  161. package/dist/support-passport/index.js +3 -3
  162. package/dist/transfer/capsule-import.js +8 -8
  163. package/dist/transfer/export-okf.js +15 -15
  164. package/dist/verified-recall.js +15 -15
  165. package/dist/who-knows-cli.js +16 -16
  166. package/dist/who-knows.js +15 -15
  167. package/package.json +2 -2
  168. package/src/abstraction-nodes.ts +7 -2
  169. package/src/access-http-cancellation.test.ts +45 -0
  170. package/src/access-http-types.ts +2 -0
  171. package/src/access-http.ts +13 -1
  172. package/src/cue-anchors.ts +8 -3
  173. package/src/harmonic-graph-cache.test.ts +244 -0
  174. package/src/harmonic-graph-version.ts +46 -0
  175. package/src/harmonic-retrieval.ts +92 -2
  176. package/src/namespaces/search.test.ts +35 -0
  177. package/src/namespaces/search.ts +7 -1
  178. package/src/orchestration/recall-internal.ts +1 -1
  179. package/dist/chunk-BPK32FRM.js.map +0 -1
  180. package/dist/chunk-F2XNSIPP.js.map +0 -1
  181. package/dist/chunk-LXATZLSC.js.map +0 -1
  182. /package/dist/{capsule-merge-6IDAYTKG.js.map → capsule-merge-ILR35DIB.js.map} +0 -0
  183. /package/dist/{chunk-UN4RVUG2.js.map → chunk-2R3ACFYN.js.map} +0 -0
  184. /package/dist/{chunk-RQFXZYTF.js.map → chunk-33C4BK7I.js.map} +0 -0
  185. /package/dist/{chunk-BN2EBCLB.js.map → chunk-3DQZ2GAY.js.map} +0 -0
  186. /package/dist/{chunk-UBEKET2V.js.map → chunk-3R63SXC5.js.map} +0 -0
  187. /package/dist/{chunk-GBJUTX44.js.map → chunk-3WDFQKB4.js.map} +0 -0
  188. /package/dist/{chunk-LLPMMMWG.js.map → chunk-4IJFJQPD.js.map} +0 -0
  189. /package/dist/{chunk-CIWMTNHW.js.map → chunk-5NFF2TSD.js.map} +0 -0
  190. /package/dist/{chunk-WGGRZYSQ.js.map → chunk-6RW5TONS.js.map} +0 -0
  191. /package/dist/{chunk-LNGELD2M.js.map → chunk-6VAIFSDG.js.map} +0 -0
  192. /package/dist/{chunk-2WCLTWV2.js.map → chunk-7NVK6AGC.js.map} +0 -0
  193. /package/dist/{chunk-X5HGU2EM.js.map → chunk-A2D5WZRO.js.map} +0 -0
  194. /package/dist/{chunk-LS7PT3YD.js.map → chunk-AMRGZOIP.js.map} +0 -0
  195. /package/dist/{chunk-PC5DRBGD.js.map → chunk-AP4BFWSW.js.map} +0 -0
  196. /package/dist/{chunk-OUVYYKYU.js.map → chunk-B2BMTXIF.js.map} +0 -0
  197. /package/dist/{chunk-DNY63QWJ.js.map → chunk-CCQEANCY.js.map} +0 -0
  198. /package/dist/{chunk-YIXJSW5M.js.map → chunk-CH2N4XCJ.js.map} +0 -0
  199. /package/dist/{chunk-LQ5SS4OP.js.map → chunk-D6IGZYTN.js.map} +0 -0
  200. /package/dist/{chunk-FWRXW7CZ.js.map → chunk-D6WJNWZG.js.map} +0 -0
  201. /package/dist/{chunk-4EZWSDFL.js.map → chunk-E3YHIAO3.js.map} +0 -0
  202. /package/dist/{chunk-IL3RHBWM.js.map → chunk-ECC6AAEE.js.map} +0 -0
  203. /package/dist/{chunk-XJ2S5UBF.js.map → chunk-EHJ2RYR7.js.map} +0 -0
  204. /package/dist/{chunk-F4QFU5IZ.js.map → chunk-EZ7XJJ5L.js.map} +0 -0
  205. /package/dist/{chunk-FQAQ63QA.js.map → chunk-FHQ5SPMD.js.map} +0 -0
  206. /package/dist/{chunk-DPPLNZ3A.js.map → chunk-FM4P7HSW.js.map} +0 -0
  207. /package/dist/{chunk-QDESY76F.js.map → chunk-FQACH7MC.js.map} +0 -0
  208. /package/dist/{chunk-XPXHQI6N.js.map → chunk-FVMEZ57K.js.map} +0 -0
  209. /package/dist/{chunk-ILY5SSOM.js.map → chunk-FVPWQWIK.js.map} +0 -0
  210. /package/dist/{chunk-S3S72HRM.js.map → chunk-HCCRWSP7.js.map} +0 -0
  211. /package/dist/{chunk-NMGHGTVR.js.map → chunk-HRMOKGQM.js.map} +0 -0
  212. /package/dist/{chunk-R23JWJD3.js.map → chunk-J426U7XK.js.map} +0 -0
  213. /package/dist/{chunk-CL4JU3DF.js.map → chunk-KI7E3N6Q.js.map} +0 -0
  214. /package/dist/{chunk-SQ3GEIEL.js.map → chunk-KUQLUYIR.js.map} +0 -0
  215. /package/dist/{chunk-J7BIFOYP.js.map → chunk-MXXTU4R2.js.map} +0 -0
  216. /package/dist/{chunk-IAYUTGF2.js.map → chunk-O3GZPLVY.js.map} +0 -0
  217. /package/dist/{chunk-IGOW4TJE.js.map → chunk-O3JG4PD3.js.map} +0 -0
  218. /package/dist/{chunk-UHMHJX5G.js.map → chunk-OIG4ZFMB.js.map} +0 -0
  219. /package/dist/{chunk-D5XG2KPS.js.map → chunk-OTSRGZRU.js.map} +0 -0
  220. /package/dist/{chunk-ZDV5YWID.js.map → chunk-PWATRW3H.js.map} +0 -0
  221. /package/dist/{chunk-ESLOLCD4.js.map → chunk-RUWKIPWJ.js.map} +0 -0
  222. /package/dist/{chunk-IQ55QGY5.js.map → chunk-RXL67CV6.js.map} +0 -0
  223. /package/dist/{chunk-W54Z2MOP.js.map → chunk-RXSGBO7Y.js.map} +0 -0
  224. /package/dist/{chunk-QMFAMOT2.js.map → chunk-SFZEJJ6V.js.map} +0 -0
  225. /package/dist/{chunk-QHARXWTC.js.map → chunk-SW3WUUYA.js.map} +0 -0
  226. /package/dist/{chunk-FZZMLGWQ.js.map → chunk-TFI2Y5AR.js.map} +0 -0
  227. /package/dist/{chunk-BOK6BN5M.js.map → chunk-THV6PZ7V.js.map} +0 -0
  228. /package/dist/{chunk-Z3FTSHT5.js.map → chunk-UG54AEUG.js.map} +0 -0
  229. /package/dist/{chunk-X2BVB74H.js.map → chunk-UZQXJDOE.js.map} +0 -0
  230. /package/dist/{chunk-SUTEBYGI.js.map → chunk-VRBTZDQ5.js.map} +0 -0
  231. /package/dist/{chunk-RKABLU5M.js.map → chunk-XP5CKXFV.js.map} +0 -0
  232. /package/dist/{chunk-RNG7S3FY.js.map → chunk-YCQMNW3F.js.map} +0 -0
  233. /package/dist/{chunk-OJXK5C6Z.js.map → chunk-ZG4GNPRE.js.map} +0 -0
  234. /package/dist/{chunk-TYRWSE4B.js.map → chunk-ZUMHQEW4.js.map} +0 -0
  235. /package/dist/{chunk-DAOMWGO2.js.map → chunk-ZX5N5D6M.js.map} +0 -0
  236. /package/dist/{entity-canonical-id-migration-JJSTZF73.js.map → entity-canonical-id-migration-IG77BOGD.js.map} +0 -0
  237. /package/dist/{resolution-OVVIF7ZY.js.map → harmonic-graph-version.js.map} +0 -0
@@ -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
@@ -3,15 +3,15 @@ import {
3
3
  } from "./chunk-B7RWBZXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-FWRXW7CZ.js";
7
- import {
8
- getCachedEpisodeMap,
9
- setCachedEpisodeMap
10
- } from "./chunk-C64XATK7.js";
6
+ } from "./chunk-D6WJNWZG.js";
11
7
  import {
12
8
  countRecallTokenOverlap,
13
9
  normalizeRecallTokens
14
10
  } from "./chunk-YCVB7X56.js";
11
+ import {
12
+ getCachedEpisodeMap,
13
+ setCachedEpisodeMap
14
+ } from "./chunk-C64XATK7.js";
15
15
 
16
16
  // src/verified-recall.ts
17
17
  function createReadOnlyBoxBuilder(memoryDir) {
@@ -109,4 +109,4 @@ export {
109
109
  compareVerifiedEpisodeResults,
110
110
  searchVerifiedEpisodes
111
111
  };
112
- //# sourceMappingURL=chunk-ILY5SSOM.js.map
112
+ //# sourceMappingURL=chunk-FVPWQWIK.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":[]}
@@ -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
@@ -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
@@ -4,13 +4,13 @@ import {
4
4
  import {
5
5
  listMemoryGovernanceRuns,
6
6
  readMemoryGovernanceRunArtifact
7
- } from "./chunk-ZDV5YWID.js";
7
+ } from "./chunk-PWATRW3H.js";
8
8
  import {
9
9
  loadPersistedNativeKnowledgeChunks
10
10
  } from "./chunk-2DQ2XREU.js";
11
11
  import {
12
12
  StorageManager
13
- } from "./chunk-FWRXW7CZ.js";
13
+ } from "./chunk-D6WJNWZG.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-CL4JU3DF.js.map
1159
+ //# sourceMappingURL=chunk-KI7E3N6Q.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
@@ -2,7 +2,7 @@ import {
2
2
  WHO_KNOWS_DEFAULT_LIMIT,
3
3
  WHO_KNOWS_MAX_LIMIT,
4
4
  validateWhoKnowsInput
5
- } from "./chunk-IQ55QGY5.js";
5
+ } from "./chunk-RXL67CV6.js";
6
6
 
7
7
  // src/who-knows-cli.ts
8
8
  function extractWhoKnowsRawArgs(rest) {
@@ -74,4 +74,4 @@ export {
74
74
  renderWhoKnowsText,
75
75
  renderWhoKnows
76
76
  };
77
- //# sourceMappingURL=chunk-J7BIFOYP.js.map
77
+ //# sourceMappingURL=chunk-MXXTU4R2.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  normalizeSupersessionKey
3
3
  } from "./chunk-5WITETWU.js";
4
- import {
5
- invalidateForScope
6
- } from "./chunk-C64XATK7.js";
7
4
  import {
8
5
  serializeMutations,
9
6
  withHeldFileLock
10
7
  } from "./chunk-EBV6VXKF.js";
8
+ import {
9
+ invalidateForScope
10
+ } from "./chunk-C64XATK7.js";
11
11
  import {
12
12
  RECALL_FALLBACK_DIRS
13
13
  } from "./chunk-VS2IYZRU.js";
@@ -434,4 +434,4 @@ export {
434
434
  repairContentAfterJournalMove,
435
435
  repairContentAfterJournalMoveSync
436
436
  };
437
- //# sourceMappingURL=chunk-IAYUTGF2.js.map
437
+ //# sourceMappingURL=chunk-O3GZPLVY.js.map
@@ -10,7 +10,7 @@ import {
10
10
  ENTITY_CANONICAL_ID_RECONCILE_MARKER,
11
11
  assertSafeEntityId,
12
12
  withEntityCanonicalMutationLock
13
- } from "./chunk-IAYUTGF2.js";
13
+ } from "./chunk-O3GZPLVY.js";
14
14
  import {
15
15
  computeSupersessionKey,
16
16
  normalizeSupersessionKey
@@ -874,4 +874,4 @@ export {
874
874
  readSafeEntityEntries,
875
875
  migrateLegacyEntityCanonicalIds
876
876
  };
877
- //# sourceMappingURL=chunk-IGOW4TJE.js.map
877
+ //# sourceMappingURL=chunk-O3JG4PD3.js.map
@@ -1,6 +1,3 @@
1
- import {
2
- bumpMemoryCorpusVersionForDir
3
- } from "./chunk-M5GVCJSJ.js";
4
1
  import {
5
2
  judgeContradictionPairs,
6
3
  resolveScanStorage
@@ -16,6 +13,9 @@ import {
16
13
  import {
17
14
  composeMemoryEnvelope
18
15
  } from "./chunk-X26YOFGS.js";
16
+ import {
17
+ bumpMemoryCorpusVersionForDir
18
+ } from "./chunk-M5GVCJSJ.js";
19
19
  import {
20
20
  readJsonFile,
21
21
  writeJsonFileAtomic
@@ -878,4 +878,4 @@ export {
878
878
  isValidResolutionVerb,
879
879
  executeResolution
880
880
  };
881
- //# sourceMappingURL=chunk-UHMHJX5G.js.map
881
+ //# sourceMappingURL=chunk-OIG4ZFMB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listNamespaces
3
- } from "./chunk-XJ2S5UBF.js";
3
+ } from "./chunk-EHJ2RYR7.js";
4
4
  import {
5
5
  corpusScanWorker
6
6
  } from "./chunk-4LZ7SVKM.js";
@@ -292,4 +292,4 @@ export {
292
292
  computeServiceCorpusWatermarks,
293
293
  computeServiceCorpusCensus
294
294
  };
295
- //# sourceMappingURL=chunk-D5XG2KPS.js.map
295
+ //# sourceMappingURL=chunk-OTSRGZRU.js.map
@@ -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-D6WJNWZG.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-PWATRW3H.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isGenericRecallExcludedPath
3
- } from "./chunk-F4QFU5IZ.js";
3
+ } from "./chunk-EZ7XJJ5L.js";
4
4
  import {
5
5
  normalizeProjectionPreview
6
6
  } from "./chunk-SCU65EZI.js";
@@ -209,4 +209,4 @@ export {
209
209
  browsePatternMatches,
210
210
  runMemoryBrowse
211
211
  };
212
- //# sourceMappingURL=chunk-ESLOLCD4.js.map
212
+ //# sourceMappingURL=chunk-RUWKIPWJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseEntityFile
3
- } from "./chunk-FWRXW7CZ.js";
3
+ } from "./chunk-D6WJNWZG.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-IQ55QGY5.js.map
256
+ //# sourceMappingURL=chunk-RXL67CV6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LocalLlmClient
3
- } from "./chunk-RQFXZYTF.js";
3
+ } from "./chunk-33C4BK7I.js";
4
4
  import {
5
5
  FallbackLlmClient
6
6
  } from "./chunk-MMRTPH3J.js";
@@ -4497,4 +4497,4 @@ export {
4497
4497
  parseSupportPassportModelJob,
4498
4498
  SupportPassportModelBridge
4499
4499
  };
4500
- //# sourceMappingURL=chunk-W54Z2MOP.js.map
4500
+ //# sourceMappingURL=chunk-RXSGBO7Y.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rebuildMemoryProjection
3
- } from "./chunk-CL4JU3DF.js";
3
+ } from "./chunk-KI7E3N6Q.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-SFZEJJ6V.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-FWRXW7CZ.js";
3
+ } from "./chunk-D6WJNWZG.js";
4
4
  import {
5
5
  isSafeRouteNamespace
6
6
  } from "./chunk-PCXDUHQH.js";
@@ -416,4 +416,4 @@ export {
416
416
  resolveNamespaceStorageRoot,
417
417
  NamespaceStorageRouter
418
418
  };
419
- //# sourceMappingURL=chunk-QHARXWTC.js.map
419
+ //# sourceMappingURL=chunk-SW3WUUYA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFrontmatter
3
- } from "./chunk-FWRXW7CZ.js";
3
+ } from "./chunk-D6WJNWZG.js";
4
4
  import {
5
5
  activityDigestPath,
6
6
  isValidActivityDate
@@ -199,4 +199,4 @@ export {
199
199
  buildStandup,
200
200
  standupHelp
201
201
  };
202
- //# sourceMappingURL=chunk-FZZMLGWQ.js.map
202
+ //# sourceMappingURL=chunk-TFI2Y5AR.js.map
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-TBBDFYXW.js";
11
11
  import {
12
12
  parseQmdExplain
13
- } from "./chunk-R23JWJD3.js";
13
+ } from "./chunk-J426U7XK.js";
14
14
  import {
15
15
  parseFlexibleIsoTimestamp
16
16
  } from "./chunk-P7FMDTKL.js";
@@ -645,4 +645,4 @@ export {
645
645
  appendMemoryToGraphContext,
646
646
  resolvePersistedMemoryRelativePath
647
647
  };
648
- //# sourceMappingURL=chunk-BOK6BN5M.js.map
648
+ //# sourceMappingURL=chunk-THV6PZ7V.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-FWRXW7CZ.js";
3
+ } from "./chunk-D6WJNWZG.js";
4
4
  import {
5
5
  composeMemoryEnvelope
6
6
  } from "./chunk-X26YOFGS.js";
@@ -546,4 +546,4 @@ export {
546
546
  setSemanticRulePromotionTestHooks,
547
547
  promoteSemanticRuleFromMemory
548
548
  };
549
- //# sourceMappingURL=chunk-Z3FTSHT5.js.map
549
+ //# sourceMappingURL=chunk-UG54AEUG.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DBB5JPSL.js";
4
4
  import {
5
5
  isGenericRecallExcludedPath
6
- } from "./chunk-F4QFU5IZ.js";
6
+ } from "./chunk-EZ7XJJ5L.js";
7
7
  import {
8
8
  isChangeOrientedQuery
9
9
  } from "./chunk-EH3HNCAM.js";
@@ -69,4 +69,4 @@ export {
69
69
  filterRecentScanMemoriesForStateView,
70
70
  indexStateViewAnnotatedResults
71
71
  };
72
- //# sourceMappingURL=chunk-X2BVB74H.js.map
72
+ //# sourceMappingURL=chunk-UZQXJDOE.js.map
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-3UXOZBHV.js";
15
15
  import {
16
16
  StorageManager
17
- } from "./chunk-FWRXW7CZ.js";
17
+ } from "./chunk-D6WJNWZG.js";
18
18
  import {
19
19
  OKF_PROFILE_TYPE,
20
20
  okfTypeForMemory
@@ -272,4 +272,4 @@ export {
272
272
  exportOkfBundle,
273
273
  firstHeading
274
274
  };
275
- //# sourceMappingURL=chunk-SUTEBYGI.js.map
275
+ //# sourceMappingURL=chunk-VRBTZDQ5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  readNamespaceMaintenanceLastRanStatuses,
4
4
  readNamespaceMaintenanceStatuses,
5
5
  runNamespaceMaintenancePlan
6
- } from "./chunk-FQAQ63QA.js";
6
+ } from "./chunk-FHQ5SPMD.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-3WDFQKB4.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-OTSRGZRU.js";
31
31
  import {
32
32
  listNamespaces
33
- } from "./chunk-XJ2S5UBF.js";
33
+ } from "./chunk-EHJ2RYR7.js";
34
34
  import {
35
35
  listMemoryGovernanceRuns,
36
36
  readMemoryGovernanceRunArtifact
37
- } from "./chunk-ZDV5YWID.js";
37
+ } from "./chunk-PWATRW3H.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-D6WJNWZG.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-XP5CKXFV.js.map