@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
@@ -4,20 +4,20 @@ import {
4
4
  exportOkfBundle,
5
5
  firstHeading,
6
6
  parseIncludeStatus
7
- } from "../chunk-SUTEBYGI.js";
7
+ } from "../chunk-VRBTZDQ5.js";
8
8
  import {
9
9
  OKF_EXPORT_VERSION
10
10
  } from "../chunk-I7TR2OCU.js";
11
11
  import "../chunk-D24OXEPB.js";
12
12
  import "../chunk-3UXOZBHV.js";
13
- import "../chunk-FWRXW7CZ.js";
13
+ import "../chunk-D6WJNWZG.js";
14
14
  import "../chunk-QGVCFVX6.js";
15
15
  import "../chunk-UHVXE24Y.js";
16
- import "../chunk-IGOW4TJE.js";
17
- import "../chunk-RFUL2ZIQ.js";
16
+ import "../chunk-O3JG4PD3.js";
18
17
  import "../chunk-G6OFEGUR.js";
19
- import "../chunk-A4F7OIC5.js";
20
- import "../chunk-XPXHQI6N.js";
18
+ import "../chunk-RFUL2ZIQ.js";
19
+ import "../chunk-BUOP3DOK.js";
20
+ import "../chunk-FVMEZ57K.js";
21
21
  import "../chunk-DOJBV6WR.js";
22
22
  import "../chunk-PFUXPTBT.js";
23
23
  import "../chunk-CYEPCZN5.js";
@@ -49,25 +49,20 @@ import "../chunk-3WU7XOFN.js";
49
49
  import "../chunk-P4GUQSK3.js";
50
50
  import "../chunk-4LZ7SVKM.js";
51
51
  import "../chunk-YHTG64XV.js";
52
- import "../chunk-SQ3GEIEL.js";
53
- import "../chunk-IAYUTGF2.js";
52
+ import "../chunk-KUQLUYIR.js";
53
+ import "../chunk-O3GZPLVY.js";
54
54
  import "../chunk-5WITETWU.js";
55
- import "../chunk-M5GVCJSJ.js";
56
- import "../chunk-RBOJCG4T.js";
57
55
  import "../chunk-6CIAGZ6X.js";
58
- import "../chunk-7CT3AI52.js";
59
56
  import "../chunk-G7D6GZ5J.js";
60
57
  import "../chunk-7VLBZKNB.js";
61
58
  import "../chunk-Y33KJ556.js";
62
- import "../chunk-R23JWJD3.js";
59
+ import "../chunk-J426U7XK.js";
63
60
  import "../chunk-NWA6IXR3.js";
61
+ import "../chunk-AF2XMJKD.js";
64
62
  import "../chunk-OR42ZI54.js";
65
63
  import "../chunk-IUM3VSHI.js";
66
64
  import "../chunk-EZ47HOJ6.js";
67
- import "../chunk-AF2XMJKD.js";
68
65
  import "../chunk-23G5P7TA.js";
69
- import "../chunk-C64XATK7.js";
70
- import "../chunk-42JKGUFJ.js";
71
66
  import "../chunk-MMRTPH3J.js";
72
67
  import "../chunk-I55KAVET.js";
73
68
  import "../chunk-L2EXJQJP.js";
@@ -111,6 +106,11 @@ import "../chunk-P7FMDTKL.js";
111
106
  import "../chunk-X4OZMANG.js";
112
107
  import "../chunk-ZEFVK7XC.js";
113
108
  import "../chunk-R2MBW2S4.js";
109
+ import "../chunk-M5GVCJSJ.js";
110
+ import "../chunk-RBOJCG4T.js";
111
+ import "../chunk-7CT3AI52.js";
112
+ import "../chunk-C64XATK7.js";
113
+ import "../chunk-42JKGUFJ.js";
114
114
  import "../chunk-QUIRIG2P.js";
115
115
  import "../chunk-6KH5NLQS.js";
116
116
  import "../chunk-P2QRMMVQ.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  compareVerifiedEpisodeResults,
3
3
  searchVerifiedEpisodes
4
- } from "./chunk-ILY5SSOM.js";
4
+ } from "./chunk-FVPWQWIK.js";
5
5
  import "./chunk-B7RWBZXW.js";
6
- import "./chunk-FWRXW7CZ.js";
6
+ import "./chunk-D6WJNWZG.js";
7
7
  import "./chunk-QGVCFVX6.js";
8
8
  import "./chunk-UHVXE24Y.js";
9
- import "./chunk-IGOW4TJE.js";
10
- import "./chunk-RFUL2ZIQ.js";
9
+ import "./chunk-O3JG4PD3.js";
11
10
  import "./chunk-G6OFEGUR.js";
12
- import "./chunk-A4F7OIC5.js";
13
- import "./chunk-XPXHQI6N.js";
11
+ import "./chunk-RFUL2ZIQ.js";
12
+ import "./chunk-BUOP3DOK.js";
13
+ import "./chunk-FVMEZ57K.js";
14
14
  import "./chunk-DOJBV6WR.js";
15
15
  import "./chunk-PFUXPTBT.js";
16
16
  import "./chunk-CYEPCZN5.js";
@@ -42,25 +42,20 @@ import "./chunk-3WU7XOFN.js";
42
42
  import "./chunk-P4GUQSK3.js";
43
43
  import "./chunk-4LZ7SVKM.js";
44
44
  import "./chunk-YHTG64XV.js";
45
- import "./chunk-SQ3GEIEL.js";
46
- import "./chunk-IAYUTGF2.js";
45
+ import "./chunk-KUQLUYIR.js";
46
+ import "./chunk-O3GZPLVY.js";
47
47
  import "./chunk-5WITETWU.js";
48
- import "./chunk-M5GVCJSJ.js";
49
- import "./chunk-RBOJCG4T.js";
50
48
  import "./chunk-6CIAGZ6X.js";
51
- import "./chunk-7CT3AI52.js";
52
49
  import "./chunk-G7D6GZ5J.js";
53
50
  import "./chunk-7VLBZKNB.js";
54
51
  import "./chunk-Y33KJ556.js";
55
- import "./chunk-R23JWJD3.js";
52
+ import "./chunk-J426U7XK.js";
56
53
  import "./chunk-NWA6IXR3.js";
54
+ import "./chunk-AF2XMJKD.js";
57
55
  import "./chunk-OR42ZI54.js";
58
56
  import "./chunk-IUM3VSHI.js";
59
57
  import "./chunk-EZ47HOJ6.js";
60
- import "./chunk-AF2XMJKD.js";
61
58
  import "./chunk-23G5P7TA.js";
62
- import "./chunk-C64XATK7.js";
63
- import "./chunk-42JKGUFJ.js";
64
59
  import "./chunk-MMRTPH3J.js";
65
60
  import "./chunk-I55KAVET.js";
66
61
  import "./chunk-L2EXJQJP.js";
@@ -104,6 +99,11 @@ import "./chunk-P7FMDTKL.js";
104
99
  import "./chunk-X4OZMANG.js";
105
100
  import "./chunk-ZEFVK7XC.js";
106
101
  import "./chunk-R2MBW2S4.js";
102
+ import "./chunk-M5GVCJSJ.js";
103
+ import "./chunk-RBOJCG4T.js";
104
+ import "./chunk-7CT3AI52.js";
105
+ import "./chunk-C64XATK7.js";
106
+ import "./chunk-42JKGUFJ.js";
107
107
  import "./chunk-QUIRIG2P.js";
108
108
  import "./chunk-6KH5NLQS.js";
109
109
  import "./chunk-P2QRMMVQ.js";
@@ -4,16 +4,16 @@ import {
4
4
  renderWhoKnows,
5
5
  renderWhoKnowsJson,
6
6
  renderWhoKnowsText
7
- } from "./chunk-J7BIFOYP.js";
8
- import "./chunk-IQ55QGY5.js";
9
- import "./chunk-FWRXW7CZ.js";
7
+ } from "./chunk-MXXTU4R2.js";
8
+ import "./chunk-RXL67CV6.js";
9
+ import "./chunk-D6WJNWZG.js";
10
10
  import "./chunk-QGVCFVX6.js";
11
11
  import "./chunk-UHVXE24Y.js";
12
- import "./chunk-IGOW4TJE.js";
13
- import "./chunk-RFUL2ZIQ.js";
12
+ import "./chunk-O3JG4PD3.js";
14
13
  import "./chunk-G6OFEGUR.js";
15
- import "./chunk-A4F7OIC5.js";
16
- import "./chunk-XPXHQI6N.js";
14
+ import "./chunk-RFUL2ZIQ.js";
15
+ import "./chunk-BUOP3DOK.js";
16
+ import "./chunk-FVMEZ57K.js";
17
17
  import "./chunk-DOJBV6WR.js";
18
18
  import "./chunk-PFUXPTBT.js";
19
19
  import "./chunk-CYEPCZN5.js";
@@ -45,25 +45,20 @@ import "./chunk-3WU7XOFN.js";
45
45
  import "./chunk-P4GUQSK3.js";
46
46
  import "./chunk-4LZ7SVKM.js";
47
47
  import "./chunk-YHTG64XV.js";
48
- import "./chunk-SQ3GEIEL.js";
49
- import "./chunk-IAYUTGF2.js";
48
+ import "./chunk-KUQLUYIR.js";
49
+ import "./chunk-O3GZPLVY.js";
50
50
  import "./chunk-5WITETWU.js";
51
- import "./chunk-M5GVCJSJ.js";
52
- import "./chunk-RBOJCG4T.js";
53
51
  import "./chunk-6CIAGZ6X.js";
54
- import "./chunk-7CT3AI52.js";
55
52
  import "./chunk-G7D6GZ5J.js";
56
53
  import "./chunk-7VLBZKNB.js";
57
54
  import "./chunk-Y33KJ556.js";
58
- import "./chunk-R23JWJD3.js";
55
+ import "./chunk-J426U7XK.js";
59
56
  import "./chunk-NWA6IXR3.js";
57
+ import "./chunk-AF2XMJKD.js";
60
58
  import "./chunk-OR42ZI54.js";
61
59
  import "./chunk-IUM3VSHI.js";
62
60
  import "./chunk-EZ47HOJ6.js";
63
- import "./chunk-AF2XMJKD.js";
64
61
  import "./chunk-23G5P7TA.js";
65
- import "./chunk-C64XATK7.js";
66
- import "./chunk-42JKGUFJ.js";
67
62
  import "./chunk-MMRTPH3J.js";
68
63
  import "./chunk-I55KAVET.js";
69
64
  import "./chunk-L2EXJQJP.js";
@@ -107,6 +102,11 @@ import "./chunk-P7FMDTKL.js";
107
102
  import "./chunk-X4OZMANG.js";
108
103
  import "./chunk-ZEFVK7XC.js";
109
104
  import "./chunk-R2MBW2S4.js";
105
+ import "./chunk-M5GVCJSJ.js";
106
+ import "./chunk-RBOJCG4T.js";
107
+ import "./chunk-7CT3AI52.js";
108
+ import "./chunk-C64XATK7.js";
109
+ import "./chunk-42JKGUFJ.js";
110
110
  import "./chunk-QUIRIG2P.js";
111
111
  import "./chunk-6KH5NLQS.js";
112
112
  import "./chunk-P2QRMMVQ.js";
package/dist/who-knows.js CHANGED
@@ -9,15 +9,15 @@ import {
9
9
  loadWhoKnowsEntities,
10
10
  tokenizeTopic,
11
11
  validateWhoKnowsInput
12
- } from "./chunk-IQ55QGY5.js";
13
- import "./chunk-FWRXW7CZ.js";
12
+ } from "./chunk-RXL67CV6.js";
13
+ import "./chunk-D6WJNWZG.js";
14
14
  import "./chunk-QGVCFVX6.js";
15
15
  import "./chunk-UHVXE24Y.js";
16
- import "./chunk-IGOW4TJE.js";
17
- import "./chunk-RFUL2ZIQ.js";
16
+ import "./chunk-O3JG4PD3.js";
18
17
  import "./chunk-G6OFEGUR.js";
19
- import "./chunk-A4F7OIC5.js";
20
- import "./chunk-XPXHQI6N.js";
18
+ import "./chunk-RFUL2ZIQ.js";
19
+ import "./chunk-BUOP3DOK.js";
20
+ import "./chunk-FVMEZ57K.js";
21
21
  import "./chunk-DOJBV6WR.js";
22
22
  import "./chunk-PFUXPTBT.js";
23
23
  import "./chunk-CYEPCZN5.js";
@@ -49,25 +49,20 @@ import "./chunk-3WU7XOFN.js";
49
49
  import "./chunk-P4GUQSK3.js";
50
50
  import "./chunk-4LZ7SVKM.js";
51
51
  import "./chunk-YHTG64XV.js";
52
- import "./chunk-SQ3GEIEL.js";
53
- import "./chunk-IAYUTGF2.js";
52
+ import "./chunk-KUQLUYIR.js";
53
+ import "./chunk-O3GZPLVY.js";
54
54
  import "./chunk-5WITETWU.js";
55
- import "./chunk-M5GVCJSJ.js";
56
- import "./chunk-RBOJCG4T.js";
57
55
  import "./chunk-6CIAGZ6X.js";
58
- import "./chunk-7CT3AI52.js";
59
56
  import "./chunk-G7D6GZ5J.js";
60
57
  import "./chunk-7VLBZKNB.js";
61
58
  import "./chunk-Y33KJ556.js";
62
- import "./chunk-R23JWJD3.js";
59
+ import "./chunk-J426U7XK.js";
63
60
  import "./chunk-NWA6IXR3.js";
61
+ import "./chunk-AF2XMJKD.js";
64
62
  import "./chunk-OR42ZI54.js";
65
63
  import "./chunk-IUM3VSHI.js";
66
64
  import "./chunk-EZ47HOJ6.js";
67
- import "./chunk-AF2XMJKD.js";
68
65
  import "./chunk-23G5P7TA.js";
69
- import "./chunk-C64XATK7.js";
70
- import "./chunk-42JKGUFJ.js";
71
66
  import "./chunk-MMRTPH3J.js";
72
67
  import "./chunk-I55KAVET.js";
73
68
  import "./chunk-L2EXJQJP.js";
@@ -111,6 +106,11 @@ import "./chunk-P7FMDTKL.js";
111
106
  import "./chunk-X4OZMANG.js";
112
107
  import "./chunk-ZEFVK7XC.js";
113
108
  import "./chunk-R2MBW2S4.js";
109
+ import "./chunk-M5GVCJSJ.js";
110
+ import "./chunk-RBOJCG4T.js";
111
+ import "./chunk-7CT3AI52.js";
112
+ import "./chunk-C64XATK7.js";
113
+ import "./chunk-42JKGUFJ.js";
114
114
  import "./chunk-QUIRIG2P.js";
115
115
  import "./chunk-6KH5NLQS.js";
116
116
  import "./chunk-P2QRMMVQ.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "10.0.95",
3
+ "version": "10.0.97",
4
4
  "description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -3386,7 +3386,7 @@
3386
3386
  "core"
3387
3387
  ],
3388
3388
  "peerDependencies": {
3389
- "@remnic/coding-graph": "^10.0.95"
3389
+ "@remnic/coding-graph": "^10.0.97"
3390
3390
  },
3391
3391
  "peerDependenciesMeta": {
3392
3392
  "@remnic/coding-graph": {
@@ -1,6 +1,7 @@
1
1
  import { mkdir, unlink, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { listJsonFilesStrict, readJsonFile, withJsonStoreMutationLock, writeJsonFileAtomic } from "./json-store.js";
4
+ import { bumpHarmonicGraphVersion } from "./harmonic-graph-version.js";
4
5
  import { compareDeterministicStrings, mergeSortedUniqueStrings } from "./deterministic-order.js";
5
6
  import { isNotFoundError } from "./utils/errno.js";
6
7
  import {
@@ -107,7 +108,11 @@ export async function recordAbstractionNode(options: {
107
108
  const nodesDir = path.join(rootDir, "nodes", day);
108
109
  const filePath = path.join(nodesDir, `${validated.nodeId}.json`);
109
110
  await mkdir(nodesDir, { recursive: true });
110
- await writeFile(filePath, JSON.stringify(validated, null, 2), "utf8");
111
+ try {
112
+ await writeFile(filePath, JSON.stringify(validated, null, 2), "utf8");
113
+ } finally {
114
+ bumpHarmonicGraphVersion(rootDir);
115
+ }
111
116
  return filePath;
112
117
  }
113
118
 
@@ -269,7 +274,7 @@ export async function upsertAbstractionNodes(options: {
269
274
  filePaths.push(filePath);
270
275
  }
271
276
  return filePaths;
272
- });
277
+ }).finally(() => bumpHarmonicGraphVersion(rootDir));
273
278
  }
274
279
 
275
280
  export async function upsertAbstractionNode(options: {
@@ -96,6 +96,51 @@ test("HTTP recall aborts in-flight work when the client disconnects", async () =
96
96
  }
97
97
  });
98
98
 
99
+ test("stop() does not wait for an in-flight request longer than the grace period", async () => {
100
+ // An in-flight recall or observe holds server.close() open. On jarvis-ml a
101
+ // restart sat in listener-closure until systemd's 700 s stop timeout killed
102
+ // the process. After the grace period stop() must cut the connection, which
103
+ // also aborts the request's signal.
104
+ const started = deferred<void>();
105
+ const settled = deferred<void>();
106
+ let observedSignal: AbortSignal | undefined;
107
+ const stub: Pick<EngramAccessService, "recall"> = {
108
+ recall: async (input: EngramAccessRecallRequest) => {
109
+ observedSignal = input.abortSignal;
110
+ started.resolve();
111
+ await new Promise<void>((_resolve, reject) => {
112
+ input.abortSignal?.addEventListener("abort", () => reject(input.abortSignal?.reason), { once: true });
113
+ }).finally(() => settled.resolve());
114
+ // SAFETY: the request is aborted before this return is read; the value is never used.
115
+ return {} as never;
116
+ },
117
+ };
118
+ // SAFETY: the server calls only recall on this route and the stub implements it.
119
+ const service = stub as EngramAccessService;
120
+ const server = new EngramAccessHttpServer({
121
+ service,
122
+ port: 0,
123
+ authToken: "test-token",
124
+ adminConsoleEnabled: false,
125
+ stopGraceMs: 50,
126
+ });
127
+ const status = await server.start();
128
+ const client = httpRequest({
129
+ host: "127.0.0.1",
130
+ port: status.port,
131
+ path: "/engram/v1/recall",
132
+ method: "POST",
133
+ headers: { authorization: "Bearer test-token", "content-type": "application/json" },
134
+ });
135
+ client.on("error", () => {});
136
+ client.end(JSON.stringify({ query: "never finishes" }));
137
+ await waitFor(started.promise);
138
+
139
+ await waitFor(server.stop(), 2_000);
140
+ await waitFor(settled.promise);
141
+ assert.equal(observedSignal?.aborted, true);
142
+ });
143
+
99
144
  test("a queued recall rejects immediately on abort — before the holder releases — and never starts", async () => {
100
145
  const firstStarted = deferred<void>();
101
146
  const releaseFirst = deferred<void>();
@@ -42,6 +42,8 @@ export interface EngramAccessHttpServerOptions {
42
42
  tokenPathPolicy?: (connector: string, pathname: string | undefined) => boolean;
43
43
  principal?: string;
44
44
  maxBodyBytes?: number;
45
+ /** How long stop() lets in-flight requests finish before it cuts their connections (default 10000 ms). */
46
+ stopGraceMs?: number;
45
47
  /**
46
48
  * Max non-replayed write requests per rolling window before 429
47
49
  * `write_rate_limited` (issue #1937). Positive integer; defaults to 30.
@@ -289,6 +289,7 @@ export class EngramAccessHttpServer extends ReviewDeckAccessHttpBase {
289
289
  private readonly tokenPathPolicy?: (connector: string, pathname: string | undefined) => boolean;
290
290
  private readonly authenticatedPrincipal?: string;
291
291
  protected readonly maxBodyBytes: number;
292
+ private readonly stopGraceMs: number;
292
293
  private readonly adminConsoleEnabled: boolean;
293
294
  protected readonly adminConsolePublicDir: string;
294
295
  private readonly adminConsolePrefillToken?: string;
@@ -338,6 +339,7 @@ export class EngramAccessHttpServer extends ReviewDeckAccessHttpBase {
338
339
  this.authTokenEntriesGetter = options.authTokenEntriesGetter;
339
340
  this.tokenPathPolicy = options.tokenPathPolicy;
340
341
  this.authenticatedPrincipal = options.principal?.trim() || undefined;
342
+ this.stopGraceMs = Number.isFinite(options.stopGraceMs) ? Math.max(0, Math.floor(options.stopGraceMs ?? 10_000)) : 10_000;
341
343
  this.maxBodyBytes = Number.isFinite(options.maxBodyBytes)
342
344
  ? Math.max(1, Math.floor(options.maxBodyBytes ?? 131072))
343
345
  : 131072;
@@ -516,9 +518,19 @@ export class EngramAccessHttpServer extends ReviewDeckAccessHttpBase {
516
518
  try { res.end(); } catch { /* ignore */ }
517
519
  }
518
520
  this.sseClients.clear();
519
- await new Promise<void>((resolve, reject) => {
521
+ // server.close() waits for every open request. An in-flight recall or
522
+ // observe (extraction can run for minutes) kept it open until systemd's
523
+ // 700 s stop timeout killed the process. Let requests finish for the grace
524
+ // period, then cut their connections; that also aborts their signals.
525
+ const closed = new Promise<void>((resolve, reject) => {
520
526
  server.close((err) => (err ? reject(err) : resolve()));
521
527
  });
528
+ const cutTimer = setTimeout(() => server.closeAllConnections(), this.stopGraceMs);
529
+ try {
530
+ await closed;
531
+ } finally {
532
+ clearTimeout(cutTimer);
533
+ }
522
534
  }
523
535
 
524
536
  /**
@@ -1,6 +1,7 @@
1
1
  import { mkdir, unlink, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { resolveAbstractionNodeStoreDir, validateAbstractionNode, type AbstractionNode } from "./abstraction-nodes.js";
4
+ import { bumpHarmonicGraphVersion } from "./harmonic-graph-version.js";
4
5
  import { listJsonFilesStrict, readJsonFile, withJsonStoreMutationLock, writeJsonFileAtomic } from "./json-store.js";
5
6
  import { compareDeterministicStrings, mergeSortedUniqueStrings } from "./deterministic-order.js";
6
7
  import { isNotFoundError } from "./utils/errno.js";
@@ -163,7 +164,11 @@ export async function recordCueAnchor(options: {
163
164
  const anchorDir = path.join(rootDir, bounded.anchorType);
164
165
  const filePath = path.join(anchorDir, `${bounded.anchorId}.json`);
165
166
  await mkdir(anchorDir, { recursive: true });
166
- await writeFile(filePath, JSON.stringify(bounded, null, 2), "utf8");
167
+ try {
168
+ await writeFile(filePath, JSON.stringify(bounded, null, 2), "utf8");
169
+ } finally {
170
+ bumpHarmonicGraphVersion(abstractionNodeStoreDir);
171
+ }
167
172
  return filePath;
168
173
  }
169
174
 
@@ -247,7 +252,7 @@ export async function upsertCueAnchors(options: {
247
252
  filePaths.push(filePath);
248
253
  }
249
254
  return filePaths;
250
- });
255
+ }).finally(() => bumpHarmonicGraphVersion(abstractionNodeStoreDir));
251
256
  }
252
257
 
253
258
  function compareIncomingCueAnchors(left: CueAnchor, right: CueAnchor): number {
@@ -351,7 +356,7 @@ export async function pruneOrphanCueAnchors(options: {
351
356
  }
352
357
  }
353
358
  return removed;
354
- });
359
+ }).finally(() => bumpHarmonicGraphVersion(abstractionNodeStoreDir));
355
360
  }
356
361
 
357
362
  export async function getCueAnchorStoreStatus(options: {