@remnic/core 10.0.96 → 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 (129) 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-TFMLRVMW.js → chunk-3ETADXEP.js} +34 -26
  26. package/dist/{chunk-TFMLRVMW.js.map → chunk-3ETADXEP.js.map} +1 -1
  27. package/dist/{chunk-4WKR4P7H.js → chunk-3WDFQKB4.js} +2 -2
  28. package/dist/{chunk-NTDHSV7N.js → chunk-4PXDXCNE.js} +2 -2
  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-LRLQ2PRP.js → chunk-AMRGZOIP.js} +3 -3
  33. package/dist/{chunk-IBKGQ6EY.js → chunk-B2BMTXIF.js} +2 -2
  34. package/dist/{chunk-WVIWDMFB.js → chunk-BUOP3DOK.js} +6 -2
  35. package/dist/{chunk-WVIWDMFB.js.map → chunk-BUOP3DOK.js.map} +1 -1
  36. package/dist/{chunk-4HK7DYOL.js → chunk-CCQEANCY.js} +2 -2
  37. package/dist/{chunk-HA5DASDG.js → chunk-CH2N4XCJ.js} +2 -2
  38. package/dist/{chunk-4CXK3GT3.js → chunk-D6WJNWZG.js} +2 -2
  39. package/dist/{chunk-NX4XDDFQ.js → chunk-E3YHIAO3.js} +3 -3
  40. package/dist/{chunk-EJ23D4JG.js → chunk-ECC6AAEE.js} +3 -3
  41. package/dist/{chunk-DWWX3FU3.js → chunk-EHJ2RYR7.js} +3 -3
  42. package/dist/{chunk-5AJIGWY4.js → chunk-FHQ5SPMD.js} +2 -2
  43. package/dist/{chunk-53ZVHXVZ.js → chunk-FVPWQWIK.js} +2 -2
  44. package/dist/{chunk-B7L4ZYFY.js → chunk-KI7E3N6Q.js} +3 -3
  45. package/dist/{chunk-U6TC6Z5B.js → chunk-MXXTU4R2.js} +2 -2
  46. package/dist/{chunk-7E7J7QXB.js → chunk-OTSRGZRU.js} +2 -2
  47. package/dist/{chunk-GLDIMGOS.js → chunk-PWATRW3H.js} +2 -2
  48. package/dist/{chunk-R4JYSBZE.js → chunk-RXL67CV6.js} +2 -2
  49. package/dist/{chunk-JH5AV542.js → chunk-SFZEJJ6V.js} +2 -2
  50. package/dist/{chunk-2LCX6TAD.js → chunk-SW3WUUYA.js} +2 -2
  51. package/dist/{chunk-F4BUSX3D.js → chunk-TFI2Y5AR.js} +2 -2
  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/orchestrator.js +29 -29
  84. package/dist/recall-navigation.js +29 -29
  85. package/dist/resume-bundles.js +2 -2
  86. package/dist/semantic-consolidation.js +4 -4
  87. package/dist/semantic-rule-promotion.js +3 -3
  88. package/dist/semantic-rule-verifier.js +3 -3
  89. package/dist/source-agent-qualifier.js +3 -3
  90. package/dist/standup/build.js +3 -3
  91. package/dist/storage.js +2 -2
  92. package/dist/transfer/export-okf.js +3 -3
  93. package/dist/verified-recall.js +3 -3
  94. package/dist/who-knows-cli.js +4 -4
  95. package/dist/who-knows.js +3 -3
  96. package/package.json +2 -2
  97. package/src/access-http-cancellation.test.ts +45 -0
  98. package/src/access-http-types.ts +2 -0
  99. package/src/access-http.ts +13 -1
  100. package/src/namespaces/search.test.ts +35 -0
  101. package/src/namespaces/search.ts +7 -1
  102. /package/dist/{chunk-XPCUKWLE.js.map → chunk-3DQZ2GAY.js.map} +0 -0
  103. /package/dist/{chunk-4WKR4P7H.js.map → chunk-3WDFQKB4.js.map} +0 -0
  104. /package/dist/{chunk-NTDHSV7N.js.map → chunk-4PXDXCNE.js.map} +0 -0
  105. /package/dist/{chunk-KE3JWIZK.js.map → chunk-6RW5TONS.js.map} +0 -0
  106. /package/dist/{chunk-3VWU3KF3.js.map → chunk-6VAIFSDG.js.map} +0 -0
  107. /package/dist/{chunk-NT772J7I.js.map → chunk-A2D5WZRO.js.map} +0 -0
  108. /package/dist/{chunk-LRLQ2PRP.js.map → chunk-AMRGZOIP.js.map} +0 -0
  109. /package/dist/{chunk-IBKGQ6EY.js.map → chunk-B2BMTXIF.js.map} +0 -0
  110. /package/dist/{chunk-4HK7DYOL.js.map → chunk-CCQEANCY.js.map} +0 -0
  111. /package/dist/{chunk-HA5DASDG.js.map → chunk-CH2N4XCJ.js.map} +0 -0
  112. /package/dist/{chunk-4CXK3GT3.js.map → chunk-D6WJNWZG.js.map} +0 -0
  113. /package/dist/{chunk-NX4XDDFQ.js.map → chunk-E3YHIAO3.js.map} +0 -0
  114. /package/dist/{chunk-EJ23D4JG.js.map → chunk-ECC6AAEE.js.map} +0 -0
  115. /package/dist/{chunk-DWWX3FU3.js.map → chunk-EHJ2RYR7.js.map} +0 -0
  116. /package/dist/{chunk-5AJIGWY4.js.map → chunk-FHQ5SPMD.js.map} +0 -0
  117. /package/dist/{chunk-53ZVHXVZ.js.map → chunk-FVPWQWIK.js.map} +0 -0
  118. /package/dist/{chunk-B7L4ZYFY.js.map → chunk-KI7E3N6Q.js.map} +0 -0
  119. /package/dist/{chunk-U6TC6Z5B.js.map → chunk-MXXTU4R2.js.map} +0 -0
  120. /package/dist/{chunk-7E7J7QXB.js.map → chunk-OTSRGZRU.js.map} +0 -0
  121. /package/dist/{chunk-GLDIMGOS.js.map → chunk-PWATRW3H.js.map} +0 -0
  122. /package/dist/{chunk-R4JYSBZE.js.map → chunk-RXL67CV6.js.map} +0 -0
  123. /package/dist/{chunk-JH5AV542.js.map → chunk-SFZEJJ6V.js.map} +0 -0
  124. /package/dist/{chunk-2LCX6TAD.js.map → chunk-SW3WUUYA.js.map} +0 -0
  125. /package/dist/{chunk-F4BUSX3D.js.map → chunk-TFI2Y5AR.js.map} +0 -0
  126. /package/dist/{chunk-RUQE5C32.js.map → chunk-UG54AEUG.js.map} +0 -0
  127. /package/dist/{chunk-V7T45MI6.js.map → chunk-VRBTZDQ5.js.map} +0 -0
  128. /package/dist/{chunk-KVHGCISP.js.map → chunk-XP5CKXFV.js.map} +0 -0
  129. /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-3ETADXEP.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.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.96"
3389
+ "@remnic/coding-graph": "^10.0.97"
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 = () => {