@remnic/core 10.0.96 → 10.0.98

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 (136) hide show
  1. package/dist/access-admin-ops-surface.js +29 -29
  2. package/dist/access-cli.js +29 -29
  3. package/dist/access-extraction-force-flush.js +29 -29
  4. package/dist/access-http-briefing.js +29 -29
  5. package/dist/access-http-query.js +29 -29
  6. package/dist/access-http-types.d.ts +2 -0
  7. package/dist/access-http-types.d.ts.map +1 -1
  8. package/dist/access-http.d.ts +1 -0
  9. package/dist/access-http.d.ts.map +1 -1
  10. package/dist/access-http.js +29 -29
  11. package/dist/access-identity-continuity-surface.js +29 -29
  12. package/dist/access-lcm-surface.js +29 -29
  13. package/dist/access-mcp.js +29 -29
  14. package/dist/access-observe-write-surface.js +29 -29
  15. package/dist/access-operations-batch.js +29 -29
  16. package/dist/access-operations.js +29 -29
  17. package/dist/access-recall-concurrency.js +29 -29
  18. package/dist/access-recall-response.js +29 -29
  19. package/dist/access-recall-surface.js +29 -29
  20. package/dist/access-service.js +29 -29
  21. package/dist/active-recall.js +2 -2
  22. package/dist/briefing.js +3 -3
  23. package/dist/causal-consolidation.js +4 -4
  24. package/dist/{chunk-XPCUKWLE.js → chunk-3DQZ2GAY.js} +2 -2
  25. package/dist/{chunk-4WKR4P7H.js → chunk-3WDFQKB4.js} +2 -2
  26. package/dist/{chunk-NTDHSV7N.js → chunk-4PXDXCNE.js} +2 -2
  27. package/dist/{chunk-TFMLRVMW.js → chunk-5DGK7E4W.js} +48 -26
  28. package/dist/chunk-5DGK7E4W.js.map +1 -0
  29. package/dist/{chunk-KE3JWIZK.js → chunk-6RW5TONS.js} +7 -7
  30. package/dist/{chunk-3VWU3KF3.js → chunk-6VAIFSDG.js} +2 -2
  31. package/dist/{chunk-NT772J7I.js → chunk-A2D5WZRO.js} +2 -2
  32. package/dist/{chunk-IBKGQ6EY.js → chunk-B2BMTXIF.js} +2 -2
  33. package/dist/{chunk-WVIWDMFB.js → chunk-BUOP3DOK.js} +6 -2
  34. package/dist/{chunk-WVIWDMFB.js.map → chunk-BUOP3DOK.js.map} +1 -1
  35. package/dist/{chunk-4HK7DYOL.js → chunk-CCQEANCY.js} +2 -2
  36. package/dist/{chunk-HA5DASDG.js → chunk-CH2N4XCJ.js} +2 -2
  37. package/dist/{chunk-4CXK3GT3.js → chunk-D6WJNWZG.js} +2 -2
  38. package/dist/{chunk-NX4XDDFQ.js → chunk-E3YHIAO3.js} +3 -3
  39. package/dist/{chunk-EJ23D4JG.js → chunk-ECC6AAEE.js} +3 -3
  40. package/dist/{chunk-DWWX3FU3.js → chunk-EHJ2RYR7.js} +3 -3
  41. package/dist/{chunk-5AJIGWY4.js → chunk-FHQ5SPMD.js} +2 -2
  42. package/dist/{chunk-53ZVHXVZ.js → chunk-FVPWQWIK.js} +2 -2
  43. package/dist/{chunk-B7L4ZYFY.js → chunk-KI7E3N6Q.js} +3 -3
  44. package/dist/{chunk-U6TC6Z5B.js → chunk-MXXTU4R2.js} +2 -2
  45. package/dist/{chunk-7E7J7QXB.js → chunk-OTSRGZRU.js} +2 -2
  46. package/dist/{chunk-GLDIMGOS.js → chunk-PWATRW3H.js} +2 -2
  47. package/dist/{chunk-R4JYSBZE.js → chunk-RXL67CV6.js} +2 -2
  48. package/dist/{chunk-JH5AV542.js → chunk-SFZEJJ6V.js} +2 -2
  49. package/dist/{chunk-2LCX6TAD.js → chunk-SW3WUUYA.js} +2 -2
  50. package/dist/{chunk-F4BUSX3D.js → chunk-TFI2Y5AR.js} +2 -2
  51. package/dist/{chunk-LRLQ2PRP.js → chunk-TZKK72BY.js} +3 -3
  52. package/dist/{chunk-RUQE5C32.js → chunk-UG54AEUG.js} +2 -2
  53. package/dist/{chunk-V7T45MI6.js → chunk-VRBTZDQ5.js} +2 -2
  54. package/dist/{chunk-KVHGCISP.js → chunk-XP5CKXFV.js} +7 -7
  55. package/dist/{chunk-ICHLN5L6.js → chunk-YCQMNW3F.js} +2 -2
  56. package/dist/cli.js +29 -29
  57. package/dist/coding/export-okf-codegraph.js +2 -2
  58. package/dist/compounding/engine.js +4 -4
  59. package/dist/config.js +2 -2
  60. package/dist/connectors/codex-materialize-runner.js +3 -3
  61. package/dist/connectors/index.js +3 -3
  62. package/dist/convergence-refresh.js +5 -5
  63. package/dist/corpus-watermark.js +5 -5
  64. package/dist/entity-retrieval.js +3 -3
  65. package/dist/explicit-capture.js +29 -29
  66. package/dist/extraction.js +3 -3
  67. package/dist/harmonic-retrieval.js +3 -3
  68. package/dist/index.js +29 -29
  69. package/dist/location/index.js +4 -4
  70. package/dist/maintenance/memory-governance.js +3 -3
  71. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  72. package/dist/maintenance/rebuild-memory-projection-runner.js +5 -5
  73. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  74. package/dist/namespaces/migrate.js +4 -4
  75. package/dist/namespaces/search.d.ts.map +1 -1
  76. package/dist/namespaces/search.js +1 -1
  77. package/dist/namespaces/storage.js +3 -3
  78. package/dist/operator-doctor-corpus.js +6 -6
  79. package/dist/operator-toolkit.js +9 -9
  80. package/dist/orchestration/backlog-scheduler.js +30 -30
  81. package/dist/orchestration/buffer-drain-runner.js +30 -30
  82. package/dist/orchestration/maintenance.js +11 -11
  83. package/dist/orchestration/orchestrator-init.d.ts +3 -0
  84. package/dist/orchestration/orchestrator-init.d.ts.map +1 -1
  85. package/dist/orchestrator.d.ts.map +1 -1
  86. package/dist/orchestrator.js +29 -29
  87. package/dist/recall-navigation.js +29 -29
  88. package/dist/resume-bundles.js +2 -2
  89. package/dist/semantic-consolidation.js +4 -4
  90. package/dist/semantic-rule-promotion.js +3 -3
  91. package/dist/semantic-rule-verifier.js +3 -3
  92. package/dist/source-agent-qualifier.js +3 -3
  93. package/dist/standup/build.js +3 -3
  94. package/dist/storage.js +2 -2
  95. package/dist/transfer/export-okf.js +3 -3
  96. package/dist/verified-recall.js +3 -3
  97. package/dist/who-knows-cli.js +4 -4
  98. package/dist/who-knows.js +3 -3
  99. package/package.json +2 -2
  100. package/src/access-http-cancellation.test.ts +45 -0
  101. package/src/access-http-types.ts +2 -0
  102. package/src/access-http.ts +13 -1
  103. package/src/namespaces/search.test.ts +35 -0
  104. package/src/namespaces/search.ts +7 -1
  105. package/src/orchestration/orchestrator-init.ts +25 -0
  106. package/src/orchestrator-init.test.ts +132 -1
  107. package/src/orchestrator.ts +3 -0
  108. package/dist/chunk-TFMLRVMW.js.map +0 -1
  109. /package/dist/{chunk-XPCUKWLE.js.map → chunk-3DQZ2GAY.js.map} +0 -0
  110. /package/dist/{chunk-4WKR4P7H.js.map → chunk-3WDFQKB4.js.map} +0 -0
  111. /package/dist/{chunk-NTDHSV7N.js.map → chunk-4PXDXCNE.js.map} +0 -0
  112. /package/dist/{chunk-KE3JWIZK.js.map → chunk-6RW5TONS.js.map} +0 -0
  113. /package/dist/{chunk-3VWU3KF3.js.map → chunk-6VAIFSDG.js.map} +0 -0
  114. /package/dist/{chunk-NT772J7I.js.map → chunk-A2D5WZRO.js.map} +0 -0
  115. /package/dist/{chunk-IBKGQ6EY.js.map → chunk-B2BMTXIF.js.map} +0 -0
  116. /package/dist/{chunk-4HK7DYOL.js.map → chunk-CCQEANCY.js.map} +0 -0
  117. /package/dist/{chunk-HA5DASDG.js.map → chunk-CH2N4XCJ.js.map} +0 -0
  118. /package/dist/{chunk-4CXK3GT3.js.map → chunk-D6WJNWZG.js.map} +0 -0
  119. /package/dist/{chunk-NX4XDDFQ.js.map → chunk-E3YHIAO3.js.map} +0 -0
  120. /package/dist/{chunk-EJ23D4JG.js.map → chunk-ECC6AAEE.js.map} +0 -0
  121. /package/dist/{chunk-DWWX3FU3.js.map → chunk-EHJ2RYR7.js.map} +0 -0
  122. /package/dist/{chunk-5AJIGWY4.js.map → chunk-FHQ5SPMD.js.map} +0 -0
  123. /package/dist/{chunk-53ZVHXVZ.js.map → chunk-FVPWQWIK.js.map} +0 -0
  124. /package/dist/{chunk-B7L4ZYFY.js.map → chunk-KI7E3N6Q.js.map} +0 -0
  125. /package/dist/{chunk-U6TC6Z5B.js.map → chunk-MXXTU4R2.js.map} +0 -0
  126. /package/dist/{chunk-7E7J7QXB.js.map → chunk-OTSRGZRU.js.map} +0 -0
  127. /package/dist/{chunk-GLDIMGOS.js.map → chunk-PWATRW3H.js.map} +0 -0
  128. /package/dist/{chunk-R4JYSBZE.js.map → chunk-RXL67CV6.js.map} +0 -0
  129. /package/dist/{chunk-JH5AV542.js.map → chunk-SFZEJJ6V.js.map} +0 -0
  130. /package/dist/{chunk-2LCX6TAD.js.map → chunk-SW3WUUYA.js.map} +0 -0
  131. /package/dist/{chunk-F4BUSX3D.js.map → chunk-TFI2Y5AR.js.map} +0 -0
  132. /package/dist/{chunk-LRLQ2PRP.js.map → chunk-TZKK72BY.js.map} +0 -0
  133. /package/dist/{chunk-RUQE5C32.js.map → chunk-UG54AEUG.js.map} +0 -0
  134. /package/dist/{chunk-V7T45MI6.js.map → chunk-VRBTZDQ5.js.map} +0 -0
  135. /package/dist/{chunk-KVHGCISP.js.map → chunk-XP5CKXFV.js.map} +0 -0
  136. /package/dist/{chunk-ICHLN5L6.js.map → chunk-YCQMNW3F.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runRecallNavigation
3
- } from "./chunk-TFMLRVMW.js";
3
+ } from "./chunk-5DGK7E4W.js";
4
4
  import "./chunk-6P7U3HWG.js";
5
5
  import "./chunk-PQM3B54K.js";
6
6
  import "./chunk-B3DR2JBZ.js";
@@ -10,7 +10,7 @@ import "./chunk-W4F3C7N7.js";
10
10
  import "./chunk-MPC7TYTZ.js";
11
11
  import "./chunk-MMACM5G2.js";
12
12
  import "./chunk-FXZTL7F7.js";
13
- import "./chunk-V7T45MI6.js";
13
+ import "./chunk-VRBTZDQ5.js";
14
14
  import "./chunk-BV2TIZ4F.js";
15
15
  import "./chunk-HDDRVXX4.js";
16
16
  import "./chunk-PYHOAXTI.js";
@@ -24,11 +24,11 @@ import "./chunk-HRMOKGQM.js";
24
24
  import "./chunk-QV2VZKD5.js";
25
25
  import "./chunk-UP6MOYCB.js";
26
26
  import "./chunk-IFBSZGW3.js";
27
- import "./chunk-F4BUSX3D.js";
27
+ import "./chunk-TFI2Y5AR.js";
28
28
  import "./chunk-RXSGBO7Y.js";
29
29
  import "./chunk-TBUEE7XF.js";
30
30
  import "./chunk-5PHOU5QI.js";
31
- import "./chunk-KE3JWIZK.js";
31
+ import "./chunk-6RW5TONS.js";
32
32
  import "./chunk-I74SUMNI.js";
33
33
  import "./chunk-ILNPU5W5.js";
34
34
  import "./chunk-FGDKJJZS.js";
@@ -36,12 +36,12 @@ import "./chunk-AJVLDJU6.js";
36
36
  import "./chunk-SZDLX763.js";
37
37
  import "./chunk-PYIFUBRK.js";
38
38
  import "./chunk-EDR6CVWZ.js";
39
- import "./chunk-3VWU3KF3.js";
40
- import "./chunk-4HK7DYOL.js";
39
+ import "./chunk-6VAIFSDG.js";
40
+ import "./chunk-CCQEANCY.js";
41
41
  import "./chunk-WHCD4Z3D.js";
42
42
  import "./chunk-YQJCWR4R.js";
43
43
  import "./chunk-VZAKYDMJ.js";
44
- import "./chunk-EJ23D4JG.js";
44
+ import "./chunk-ECC6AAEE.js";
45
45
  import "./chunk-7IGMKQWK.js";
46
46
  import "./chunk-666A3MOW.js";
47
47
  import "./chunk-VDC6RZI4.js";
@@ -57,7 +57,7 @@ import "./chunk-TECVW3JP.js";
57
57
  import "./chunk-C5JF6EZ7.js";
58
58
  import "./chunk-KBL3JJR6.js";
59
59
  import "./chunk-RZN4LQ5Y.js";
60
- import "./chunk-NX4XDDFQ.js";
60
+ import "./chunk-E3YHIAO3.js";
61
61
  import "./chunk-JVBAPAWZ.js";
62
62
  import "./chunk-V5OCT34X.js";
63
63
  import "./chunk-OIG4ZFMB.js";
@@ -75,10 +75,10 @@ import "./chunk-7RKSJVOQ.js";
75
75
  import "./chunk-HCAGBFE7.js";
76
76
  import "./chunk-SI36RWC3.js";
77
77
  import "./chunk-NJAIR57U.js";
78
- import "./chunk-53ZVHXVZ.js";
78
+ import "./chunk-FVPWQWIK.js";
79
79
  import "./chunk-HL4DB7TO.js";
80
- import "./chunk-U6TC6Z5B.js";
81
- import "./chunk-R4JYSBZE.js";
80
+ import "./chunk-MXXTU4R2.js";
81
+ import "./chunk-RXL67CV6.js";
82
82
  import "./chunk-BANSBRNX.js";
83
83
  import "./chunk-JWX2Q6HS.js";
84
84
  import "./chunk-47DU4SGJ.js";
@@ -100,8 +100,8 @@ import "./chunk-77NTFICT.js";
100
100
  import "./chunk-LJLGH2DE.js";
101
101
  import "./chunk-ODZKV2F7.js";
102
102
  import "./chunk-WWDO7ZWM.js";
103
- import "./chunk-RUQE5C32.js";
104
- import "./chunk-ICHLN5L6.js";
103
+ import "./chunk-UG54AEUG.js";
104
+ import "./chunk-YCQMNW3F.js";
105
105
  import "./chunk-FQACH7MC.js";
106
106
  import "./chunk-B2NXOVZN.js";
107
107
  import "./chunk-WQ4XKIOX.js";
@@ -144,13 +144,13 @@ import "./chunk-MGN2RQRG.js";
144
144
  import "./chunk-EVWDNKQA.js";
145
145
  import "./chunk-2LA3H54D.js";
146
146
  import "./chunk-ROI7BK7H.js";
147
- import "./chunk-KVHGCISP.js";
148
- import "./chunk-5AJIGWY4.js";
147
+ import "./chunk-XP5CKXFV.js";
148
+ import "./chunk-FHQ5SPMD.js";
149
149
  import "./chunk-KFY3SGN7.js";
150
150
  import "./chunk-3T74IZB3.js";
151
151
  import "./chunk-CMTINOFS.js";
152
152
  import "./chunk-IQMDQJCD.js";
153
- import "./chunk-4WKR4P7H.js";
153
+ import "./chunk-3WDFQKB4.js";
154
154
  import "./chunk-32CA7B6L.js";
155
155
  import "./chunk-7IWRLYFJ.js";
156
156
  import "./chunk-23L3IXFD.js";
@@ -173,7 +173,7 @@ import "./chunk-MDPT6QFK.js";
173
173
  import "./chunk-UOBPK2OS.js";
174
174
  import "./chunk-2YA5N2BY.js";
175
175
  import "./chunk-3HSRWJTC.js";
176
- import "./chunk-NTDHSV7N.js";
176
+ import "./chunk-4PXDXCNE.js";
177
177
  import "./chunk-HUDPXTXW.js";
178
178
  import "./chunk-AZEZSQ5R.js";
179
179
  import "./chunk-YAZNBMNF.js";
@@ -225,7 +225,7 @@ import "./chunk-DGFU5MSX.js";
225
225
  import "./chunk-3FBAEPCU.js";
226
226
  import "./chunk-7T4TOGMS.js";
227
227
  import "./chunk-7YQ6ESEA.js";
228
- import "./chunk-HA5DASDG.js";
228
+ import "./chunk-CH2N4XCJ.js";
229
229
  import "./chunk-NVKO5YKP.js";
230
230
  import "./chunk-SVH57F5Z.js";
231
231
  import "./chunk-MKYRCCSN.js";
@@ -252,9 +252,9 @@ import "./chunk-HRATODNO.js";
252
252
  import "./chunk-WTWQA7BB.js";
253
253
  import "./chunk-VZIAVM72.js";
254
254
  import "./chunk-VEWZZM3H.js";
255
- import "./chunk-7E7J7QXB.js";
256
- import "./chunk-DWWX3FU3.js";
257
- import "./chunk-2LCX6TAD.js";
255
+ import "./chunk-OTSRGZRU.js";
256
+ import "./chunk-EHJ2RYR7.js";
257
+ import "./chunk-SW3WUUYA.js";
258
258
  import "./chunk-UFGFMWAD.js";
259
259
  import "./chunk-FL3O34XF.js";
260
260
  import "./chunk-YNDLCWXS.js";
@@ -262,10 +262,10 @@ import "./chunk-AUDJPF4N.js";
262
262
  import "./chunk-44442YCH.js";
263
263
  import "./chunk-Y4Z4I6WK.js";
264
264
  import "./chunk-7G5NTS7F.js";
265
- import "./chunk-JH5AV542.js";
266
- import "./chunk-B7L4ZYFY.js";
265
+ import "./chunk-SFZEJJ6V.js";
266
+ import "./chunk-KI7E3N6Q.js";
267
267
  import "./chunk-KJTKLXTH.js";
268
- import "./chunk-GLDIMGOS.js";
268
+ import "./chunk-PWATRW3H.js";
269
269
  import "./chunk-2DQ2XREU.js";
270
270
  import "./chunk-3I4FUAVJ.js";
271
271
  import "./chunk-OKTXM5H4.js";
@@ -273,8 +273,8 @@ import "./chunk-ZUMHQEW4.js";
273
273
  import "./chunk-D24OXEPB.js";
274
274
  import "./chunk-ZAJLJ35W.js";
275
275
  import "./chunk-4NZQ7IID.js";
276
- import "./chunk-NT772J7I.js";
277
- import "./chunk-XPCUKWLE.js";
276
+ import "./chunk-A2D5WZRO.js";
277
+ import "./chunk-3DQZ2GAY.js";
278
278
  import "./chunk-3UXOZBHV.js";
279
279
  import "./chunk-AL3TCNSJ.js";
280
280
  import "./chunk-5JMAGU26.js";
@@ -299,7 +299,7 @@ import "./chunk-U4LUIE6Y.js";
299
299
  import "./chunk-YN2DQ2D6.js";
300
300
  import "./chunk-FKBGK3NC.js";
301
301
  import "./chunk-ZY2MNJR6.js";
302
- import "./chunk-IBKGQ6EY.js";
302
+ import "./chunk-B2BMTXIF.js";
303
303
  import "./chunk-EKUI7I2X.js";
304
304
  import "./chunk-ENQCH3SW.js";
305
305
  import "./chunk-6ZELOK6O.js";
@@ -364,13 +364,13 @@ import "./chunk-ZCUTSMR2.js";
364
364
  import "./chunk-QDW3E4RD.js";
365
365
  import "./chunk-GKL6QYZO.js";
366
366
  import "./chunk-ZJP66Q4I.js";
367
- import "./chunk-4CXK3GT3.js";
367
+ import "./chunk-D6WJNWZG.js";
368
368
  import "./chunk-QGVCFVX6.js";
369
369
  import "./chunk-UHVXE24Y.js";
370
370
  import "./chunk-O3JG4PD3.js";
371
371
  import "./chunk-G6OFEGUR.js";
372
372
  import "./chunk-RFUL2ZIQ.js";
373
- import "./chunk-WVIWDMFB.js";
373
+ import "./chunk-BUOP3DOK.js";
374
374
  import "./chunk-FVMEZ57K.js";
375
375
  import "./chunk-DOJBV6WR.js";
376
376
  import "./chunk-PFUXPTBT.js";
@@ -53,13 +53,13 @@ import "./chunk-ZCUTSMR2.js";
53
53
  import "./chunk-QDW3E4RD.js";
54
54
  import "./chunk-GKL6QYZO.js";
55
55
  import "./chunk-ZJP66Q4I.js";
56
- import "./chunk-4CXK3GT3.js";
56
+ import "./chunk-D6WJNWZG.js";
57
57
  import "./chunk-QGVCFVX6.js";
58
58
  import "./chunk-UHVXE24Y.js";
59
59
  import "./chunk-O3JG4PD3.js";
60
60
  import "./chunk-G6OFEGUR.js";
61
61
  import "./chunk-RFUL2ZIQ.js";
62
- import "./chunk-WVIWDMFB.js";
62
+ import "./chunk-BUOP3DOK.js";
63
63
  import "./chunk-FVMEZ57K.js";
64
64
  import "./chunk-DOJBV6WR.js";
65
65
  import "./chunk-PFUXPTBT.js";
@@ -7,8 +7,8 @@ import {
7
7
  materializeAfterSemanticConsolidation,
8
8
  parseConsolidationResponse,
9
9
  parseOperatorAwareConsolidationResponse
10
- } from "./chunk-NT772J7I.js";
11
- import "./chunk-XPCUKWLE.js";
10
+ } from "./chunk-A2D5WZRO.js";
11
+ import "./chunk-3DQZ2GAY.js";
12
12
  import "./chunk-3UXOZBHV.js";
13
13
  import "./chunk-AL3TCNSJ.js";
14
14
  import {
@@ -18,13 +18,13 @@ import "./chunk-TOTT6S2V.js";
18
18
  import "./chunk-236PXYG7.js";
19
19
  import "./chunk-ZCUTSMR2.js";
20
20
  import "./chunk-QDW3E4RD.js";
21
- import "./chunk-4CXK3GT3.js";
21
+ import "./chunk-D6WJNWZG.js";
22
22
  import "./chunk-QGVCFVX6.js";
23
23
  import "./chunk-UHVXE24Y.js";
24
24
  import "./chunk-O3JG4PD3.js";
25
25
  import "./chunk-G6OFEGUR.js";
26
26
  import "./chunk-RFUL2ZIQ.js";
27
- import "./chunk-WVIWDMFB.js";
27
+ import "./chunk-BUOP3DOK.js";
28
28
  import "./chunk-FVMEZ57K.js";
29
29
  import "./chunk-DOJBV6WR.js";
30
30
  import "./chunk-PFUXPTBT.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  promoteSemanticRuleFromMemory,
3
3
  setSemanticRulePromotionTestHooks
4
- } from "./chunk-RUQE5C32.js";
5
- import "./chunk-4CXK3GT3.js";
4
+ } from "./chunk-UG54AEUG.js";
5
+ import "./chunk-D6WJNWZG.js";
6
6
  import "./chunk-QGVCFVX6.js";
7
7
  import "./chunk-UHVXE24Y.js";
8
8
  import "./chunk-O3JG4PD3.js";
9
9
  import "./chunk-G6OFEGUR.js";
10
10
  import "./chunk-RFUL2ZIQ.js";
11
- import "./chunk-WVIWDMFB.js";
11
+ import "./chunk-BUOP3DOK.js";
12
12
  import "./chunk-FVMEZ57K.js";
13
13
  import "./chunk-DOJBV6WR.js";
14
14
  import "./chunk-PFUXPTBT.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  compareVerifiedSemanticRuleResults,
3
3
  searchVerifiedSemanticRules
4
- } from "./chunk-ICHLN5L6.js";
5
- import "./chunk-4CXK3GT3.js";
4
+ } from "./chunk-YCQMNW3F.js";
5
+ import "./chunk-D6WJNWZG.js";
6
6
  import "./chunk-QGVCFVX6.js";
7
7
  import "./chunk-UHVXE24Y.js";
8
8
  import "./chunk-O3JG4PD3.js";
9
9
  import "./chunk-G6OFEGUR.js";
10
10
  import "./chunk-RFUL2ZIQ.js";
11
- import "./chunk-WVIWDMFB.js";
11
+ import "./chunk-BUOP3DOK.js";
12
12
  import "./chunk-FVMEZ57K.js";
13
13
  import "./chunk-DOJBV6WR.js";
14
14
  import "./chunk-PFUXPTBT.js";
@@ -11,7 +11,7 @@ import "./chunk-PT4DZDJA.js";
11
11
  import "./chunk-MLAMXQAW.js";
12
12
  import "./chunk-AIYXVWUH.js";
13
13
  import "./chunk-VEWZZM3H.js";
14
- import "./chunk-XPCUKWLE.js";
14
+ import "./chunk-3DQZ2GAY.js";
15
15
  import "./chunk-3UXOZBHV.js";
16
16
  import "./chunk-AL3TCNSJ.js";
17
17
  import "./chunk-HCCRWSP7.js";
@@ -26,13 +26,13 @@ import "./chunk-236PXYG7.js";
26
26
  import "./chunk-ZCUTSMR2.js";
27
27
  import "./chunk-QDW3E4RD.js";
28
28
  import "./chunk-ZJP66Q4I.js";
29
- import "./chunk-4CXK3GT3.js";
29
+ import "./chunk-D6WJNWZG.js";
30
30
  import "./chunk-QGVCFVX6.js";
31
31
  import "./chunk-UHVXE24Y.js";
32
32
  import "./chunk-O3JG4PD3.js";
33
33
  import "./chunk-G6OFEGUR.js";
34
34
  import "./chunk-RFUL2ZIQ.js";
35
- import "./chunk-WVIWDMFB.js";
35
+ import "./chunk-BUOP3DOK.js";
36
36
  import "./chunk-FVMEZ57K.js";
37
37
  import "./chunk-DOJBV6WR.js";
38
38
  import "./chunk-PFUXPTBT.js";
@@ -3,14 +3,14 @@ import {
3
3
  parseStandupDate,
4
4
  previousActiveDate,
5
5
  standupHelp
6
- } from "../chunk-F4BUSX3D.js";
7
- import "../chunk-4CXK3GT3.js";
6
+ } from "../chunk-TFI2Y5AR.js";
7
+ import "../chunk-D6WJNWZG.js";
8
8
  import "../chunk-QGVCFVX6.js";
9
9
  import "../chunk-UHVXE24Y.js";
10
10
  import "../chunk-O3JG4PD3.js";
11
11
  import "../chunk-G6OFEGUR.js";
12
12
  import "../chunk-RFUL2ZIQ.js";
13
- import "../chunk-WVIWDMFB.js";
13
+ import "../chunk-BUOP3DOK.js";
14
14
  import "../chunk-FVMEZ57K.js";
15
15
  import "../chunk-DOJBV6WR.js";
16
16
  import "../chunk-PFUXPTBT.js";
package/dist/storage.js CHANGED
@@ -14,13 +14,13 @@ import {
14
14
  parseFrontmatter,
15
15
  parseFrontmatterStringValue,
16
16
  serializeEntityFile
17
- } from "./chunk-4CXK3GT3.js";
17
+ } from "./chunk-D6WJNWZG.js";
18
18
  import "./chunk-QGVCFVX6.js";
19
19
  import "./chunk-UHVXE24Y.js";
20
20
  import "./chunk-O3JG4PD3.js";
21
21
  import "./chunk-G6OFEGUR.js";
22
22
  import "./chunk-RFUL2ZIQ.js";
23
- import "./chunk-WVIWDMFB.js";
23
+ import "./chunk-BUOP3DOK.js";
24
24
  import "./chunk-FVMEZ57K.js";
25
25
  import "./chunk-DOJBV6WR.js";
26
26
  import "./chunk-PFUXPTBT.js";
@@ -4,19 +4,19 @@ import {
4
4
  exportOkfBundle,
5
5
  firstHeading,
6
6
  parseIncludeStatus
7
- } from "../chunk-V7T45MI6.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-4CXK3GT3.js";
13
+ import "../chunk-D6WJNWZG.js";
14
14
  import "../chunk-QGVCFVX6.js";
15
15
  import "../chunk-UHVXE24Y.js";
16
16
  import "../chunk-O3JG4PD3.js";
17
17
  import "../chunk-G6OFEGUR.js";
18
18
  import "../chunk-RFUL2ZIQ.js";
19
- import "../chunk-WVIWDMFB.js";
19
+ import "../chunk-BUOP3DOK.js";
20
20
  import "../chunk-FVMEZ57K.js";
21
21
  import "../chunk-DOJBV6WR.js";
22
22
  import "../chunk-PFUXPTBT.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  compareVerifiedEpisodeResults,
3
3
  searchVerifiedEpisodes
4
- } from "./chunk-53ZVHXVZ.js";
4
+ } from "./chunk-FVPWQWIK.js";
5
5
  import "./chunk-B7RWBZXW.js";
6
- import "./chunk-4CXK3GT3.js";
6
+ import "./chunk-D6WJNWZG.js";
7
7
  import "./chunk-QGVCFVX6.js";
8
8
  import "./chunk-UHVXE24Y.js";
9
9
  import "./chunk-O3JG4PD3.js";
10
10
  import "./chunk-G6OFEGUR.js";
11
11
  import "./chunk-RFUL2ZIQ.js";
12
- import "./chunk-WVIWDMFB.js";
12
+ import "./chunk-BUOP3DOK.js";
13
13
  import "./chunk-FVMEZ57K.js";
14
14
  import "./chunk-DOJBV6WR.js";
15
15
  import "./chunk-PFUXPTBT.js";
@@ -4,15 +4,15 @@ import {
4
4
  renderWhoKnows,
5
5
  renderWhoKnowsJson,
6
6
  renderWhoKnowsText
7
- } from "./chunk-U6TC6Z5B.js";
8
- import "./chunk-R4JYSBZE.js";
9
- import "./chunk-4CXK3GT3.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
12
  import "./chunk-O3JG4PD3.js";
13
13
  import "./chunk-G6OFEGUR.js";
14
14
  import "./chunk-RFUL2ZIQ.js";
15
- import "./chunk-WVIWDMFB.js";
15
+ import "./chunk-BUOP3DOK.js";
16
16
  import "./chunk-FVMEZ57K.js";
17
17
  import "./chunk-DOJBV6WR.js";
18
18
  import "./chunk-PFUXPTBT.js";
package/dist/who-knows.js CHANGED
@@ -9,14 +9,14 @@ import {
9
9
  loadWhoKnowsEntities,
10
10
  tokenizeTopic,
11
11
  validateWhoKnowsInput
12
- } from "./chunk-R4JYSBZE.js";
13
- import "./chunk-4CXK3GT3.js";
12
+ } from "./chunk-RXL67CV6.js";
13
+ import "./chunk-D6WJNWZG.js";
14
14
  import "./chunk-QGVCFVX6.js";
15
15
  import "./chunk-UHVXE24Y.js";
16
16
  import "./chunk-O3JG4PD3.js";
17
17
  import "./chunk-G6OFEGUR.js";
18
18
  import "./chunk-RFUL2ZIQ.js";
19
- import "./chunk-WVIWDMFB.js";
19
+ import "./chunk-BUOP3DOK.js";
20
20
  import "./chunk-FVMEZ57K.js";
21
21
  import "./chunk-DOJBV6WR.js";
22
22
  import "./chunk-PFUXPTBT.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnic/core",
3
- "version": "10.0.96",
3
+ "version": "10.0.98",
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.96"
3389
+ "@remnic/coding-graph": "^10.0.98"
3390
3390
  },
3391
3391
  "peerDependenciesMeta": {
3392
3392
  "@remnic/coding-graph": {
@@ -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
  /**
@@ -507,6 +507,41 @@ test("searchAcrossNamespaces still rejects when the caller aborts", async () =>
507
507
  assert.equal(degradations.length, 0, "a caller abort is not a backend degradation");
508
508
  });
509
509
 
510
+ test("searchAcrossNamespaces with an already aborted caller leaves no unhandled backend rejection", async () => {
511
+ // The backend leg gets the aborted signal and rejects after the router has
512
+ // already returned its own rejection. Nothing may be left holding that
513
+ // second rejection: on the daemon it is an unhandled AbortError and the
514
+ // process exits (jarvis-ml, 12 Nov 2026).
515
+ class AbortingBackend extends FakeBackend {
516
+ override async search(): Promise<QmdSearchResult[]> {
517
+ await setImmediate();
518
+ throw Object.assign(new Error("QMD inflight search aborted"), { name: "AbortError" });
519
+ }
520
+ }
521
+ const router = new NamespaceSearchRouter(
522
+ config(),
523
+ { storageFor: async (namespace: string) => ({ dir: `/tmp/remnic/${namespace}` }) },
524
+ () => new AbortingBackend(false),
525
+ );
526
+ let unhandled = 0;
527
+ const onUnhandled = () => {
528
+ unhandled += 1;
529
+ };
530
+ process.on("unhandledRejection", onUnhandled);
531
+ try {
532
+ const caller = new AbortController();
533
+ caller.abort();
534
+ await assert.rejects(
535
+ router.searchAcrossNamespaces({ query: "a", namespaces: ["main"], maxResults: 10, execution: { signal: caller.signal } }),
536
+ { message: "operation aborted" },
537
+ );
538
+ for (let i = 0; i < 5; i += 1) await setImmediate();
539
+ assert.equal(unhandled, 0);
540
+ } finally {
541
+ process.off("unhandledRejection", onUnhandled);
542
+ }
543
+ });
544
+
510
545
  test("searchAcrossNamespaces propagates backend errors instead of masking them", async () => {
511
546
  const degradations: SearchDegradation[] = [];
512
547
  class ThrowingBackend extends FakeBackend {
@@ -622,7 +622,13 @@ class NamespaceSearchAbortError extends Error {
622
622
 
623
623
  function awaitWithAbort<T>(operation: Promise<T>, signal?: AbortSignal): Promise<T> {
624
624
  if (!signal) return operation;
625
- if (signal.aborted) return Promise.reject(new NamespaceSearchAbortError());
625
+ if (signal.aborted) {
626
+ // The operation was started with this same aborted signal and will reject
627
+ // on its own. Without a handler that second rejection is unhandled and
628
+ // ends the process.
629
+ operation.catch(() => {});
630
+ return Promise.reject(new NamespaceSearchAbortError());
631
+ }
626
632
 
627
633
  return new Promise<T>((resolve, reject) => {
628
634
  const onAbort = () => {
@@ -115,6 +115,7 @@ export class OrchestratorInitCoordinator {
115
115
  | { epoch: number; controller: AbortController }
116
116
  | undefined;
117
117
  private readonly startupStorageWrites = new Set<Promise<void>>();
118
+ private readonly startupWarmups = new Set<Promise<void>>();
118
119
 
119
120
  constructor(
120
121
  private readonly deps: OrchestratorInitDeps,
@@ -138,6 +139,11 @@ export class OrchestratorInitCoordinator {
138
139
  }
139
140
  }
140
141
 
142
+ /** Wait for background startup warm-ups; destroy() only, never the deferredReady gate. */
143
+ async drainStartupWarmups(): Promise<void> {
144
+ await Promise.allSettled([...this.startupWarmups]);
145
+ }
146
+
141
147
  async drainEntityMigrations(): Promise<void> {
142
148
  await Promise.allSettled([...this.startupStorageWrites]);
143
149
  const drains = [this.deps.storage.drainEntityCanonicalIdMigration()];
@@ -657,6 +663,25 @@ export class OrchestratorInitCoordinator {
657
663
 
658
664
  if (signal.aborted || !this.isCurrentStartupEpoch(epoch)) return;
659
665
 
666
+ // Build the default namespace's authoritative fact-hash index now, in the
667
+ // background. The first explicit save otherwise pays the whole hot+cold
668
+ // corpus rebuild (measured 3.1 s CPU, 11 to 33 s wall on jarvis-ml). A save
669
+ // that arrives mid-build joins this same in-flight promise inside
670
+ // StorageManager, so the rebuild never runs twice. Not awaited: the
671
+ // deferredReady gate must not wait on it, and a failure only means the first
672
+ // save builds the index itself, as before.
673
+ const factHashWarm = (async () => {
674
+ const storage = await this.deps.storageRouter.storageFor(this.deps.config.defaultNamespace);
675
+ await storage.isFactContentHashAuthoritative();
676
+ })().catch((err) => {
677
+ log.debug(`fact-hash index startup warm-up failed (non-fatal): ${err}`);
678
+ });
679
+ // Tracked apart from startupStorageWrites: destroy() waits for it so the
680
+ // rebuild never touches state/ after teardown, but the deferredReady gate
681
+ // (which drains startupStorageWrites) must not.
682
+ this.startupWarmups.add(factHashWarm);
683
+ void factHashWarm.finally(() => this.startupWarmups.delete(factHashWarm));
684
+
660
685
  // Warmup: run cheap searches to pre-load QMD embedding models and the
661
686
  // embedding-fallback JSON index so the first real recall is fast.
662
687
  const warmupPromises: Promise<void>[] = [];