@remnic/core 9.3.650 → 9.3.652

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 (193) hide show
  1. package/dist/access-cli.js +39 -38
  2. package/dist/access-cli.js.map +1 -1
  3. package/dist/access-http.d.ts +3 -2
  4. package/dist/access-http.js +19 -19
  5. package/dist/access-mcp.d.ts +3 -2
  6. package/dist/access-mcp.js +18 -18
  7. package/dist/access-schema.js +3 -3
  8. package/dist/{access-service-DIZRHQ7Q.d.ts → access-service-CdJFd3_b.d.ts} +23 -2
  9. package/dist/access-service.d.ts +3 -2
  10. package/dist/access-service.js +16 -16
  11. package/dist/{auto-sync-54QQHOG5.js → auto-sync-5CJBJMPZ.js} +5 -5
  12. package/dist/bootstrap.d.ts +2 -1
  13. package/dist/briefing.js +3 -3
  14. package/dist/calibration.js +2 -2
  15. package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
  16. package/dist/causal-consolidation.js +6 -6
  17. package/dist/{chunk-QT4THOLT.js → chunk-2DGQLOOM.js} +1 -1
  18. package/dist/chunk-2DGQLOOM.js.map +1 -0
  19. package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
  20. package/dist/{chunk-OAZ5MFUB.js → chunk-3XGWCZ63.js} +45 -28
  21. package/dist/chunk-3XGWCZ63.js.map +1 -0
  22. package/dist/{chunk-QKE4LHNR.js → chunk-4HYSMH7D.js} +2 -2
  23. package/dist/{chunk-DDRNDPX4.js → chunk-4SKKVWLQ.js} +2 -2
  24. package/dist/chunk-5FOCXX5E.js +34 -0
  25. package/dist/chunk-5FOCXX5E.js.map +1 -0
  26. package/dist/{chunk-YAFSTKTH.js → chunk-5V3TAB7D.js} +184 -12
  27. package/dist/chunk-5V3TAB7D.js.map +1 -0
  28. package/dist/{chunk-DB5A3NHS.js → chunk-7LWRCOP7.js} +9 -2
  29. package/dist/chunk-7LWRCOP7.js.map +1 -0
  30. package/dist/{chunk-FOVPSMGI.js → chunk-7WEB3FLJ.js} +2 -2
  31. package/dist/{chunk-APJQ6UEA.js → chunk-AGNBY3VG.js} +4 -4
  32. package/dist/{chunk-4BISW7RX.js → chunk-AJE7FJVE.js} +2 -2
  33. package/dist/{chunk-ZXWAQFDE.js → chunk-CFOCZPIQ.js} +2 -2
  34. package/dist/{chunk-NT5TINK5.js → chunk-DHGSZ3UD.js} +2 -2
  35. package/dist/{chunk-OTC2KOZ2.js → chunk-EHQLDFSH.js} +2 -2
  36. package/dist/{chunk-RRRCNIPK.js → chunk-GI45G4BK.js} +4 -4
  37. package/dist/{chunk-AMACWKM4.js → chunk-IJHLC5CH.js} +2 -2
  38. package/dist/{chunk-OR7R6M5Z.js → chunk-IVYSVAC6.js} +2 -2
  39. package/dist/{chunk-76QTEJ2Q.js → chunk-JBHXMCYN.js} +2 -2
  40. package/dist/{chunk-UMKPSD35.js → chunk-JF7SFXTG.js} +2 -2
  41. package/dist/{chunk-NMIOW7XG.js → chunk-JVRPJ7D4.js} +126 -26
  42. package/dist/chunk-JVRPJ7D4.js.map +1 -0
  43. package/dist/{chunk-TQUWNX7C.js → chunk-JX2RINDR.js} +2 -2
  44. package/dist/{chunk-MCYT2RNT.js → chunk-KJDKZVF3.js} +3 -3
  45. package/dist/{chunk-BUKK5SWA.js → chunk-KQAFEZQX.js} +2 -2
  46. package/dist/{chunk-PQFUUXWK.js → chunk-KWM33SPU.js} +2 -2
  47. package/dist/{chunk-A3BS64GV.js → chunk-LCC5EZTT.js} +4 -4
  48. package/dist/{chunk-TVOPSKOK.js → chunk-MGGNV3H2.js} +4 -4
  49. package/dist/{chunk-D6WVJIS3.js → chunk-ORGWWNJG.js} +2 -2
  50. package/dist/{chunk-Z3PZRDLW.js → chunk-PRQXUSQV.js} +2 -2
  51. package/dist/{chunk-VWT3F4IV.js → chunk-PS3SYNHP.js} +12 -4
  52. package/dist/chunk-PS3SYNHP.js.map +1 -0
  53. package/dist/{chunk-I4COC5XW.js → chunk-PYWNNF2I.js} +47 -9
  54. package/dist/chunk-PYWNNF2I.js.map +1 -0
  55. package/dist/{chunk-IMWFHBG2.js → chunk-QWRC7GIO.js} +2 -2
  56. package/dist/{chunk-U3GQ33JC.js → chunk-SLTKP5WJ.js} +2 -2
  57. package/dist/{chunk-23RYLGYA.js → chunk-TCX4WLKK.js} +104 -112
  58. package/dist/chunk-TCX4WLKK.js.map +1 -0
  59. package/dist/{chunk-6NKAQ74D.js → chunk-UU6MVCJ6.js} +1 -1
  60. package/dist/chunk-UU6MVCJ6.js.map +1 -0
  61. package/dist/{chunk-WEPMT6SC.js → chunk-V25ZAOSB.js} +5 -5
  62. package/dist/{chunk-UMTG2BN2.js → chunk-V4UDXYGG.js} +2 -2
  63. package/dist/{chunk-TUMH6EDV.js → chunk-WSFNYPAT.js} +26 -26
  64. package/dist/{chunk-ZT6R3WR3.js → chunk-WTI35CVJ.js} +4 -4
  65. package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
  66. package/dist/{chunk-OZKZ2TRP.js → chunk-XBIACVCO.js} +9 -2
  67. package/dist/chunk-XBIACVCO.js.map +1 -0
  68. package/dist/{chunk-ALUZN7BE.js → chunk-XMN6MMTU.js} +2 -2
  69. package/dist/{chunk-A4BTPHIN.js → chunk-Y7NWBBHV.js} +6 -6
  70. package/dist/{chunk-WPCCNSWO.js → chunk-YM3LR4LS.js} +7 -7
  71. package/dist/{chunk-3IJEQWQX.js → chunk-YOVKPOMD.js} +4 -4
  72. package/dist/{chunk-M75TBFKQ.js → chunk-Z2OXSMZK.js} +2 -2
  73. package/dist/{cli-BG4ybtJr.d.ts → cli-DDo7Qgs-.d.ts} +2 -2
  74. package/dist/cli.d.ts +4 -3
  75. package/dist/cli.js +34 -34
  76. package/dist/compounding/engine.js +3 -3
  77. package/dist/connectors/codex-materialize-runner.js +3 -3
  78. package/dist/connectors/index.js +3 -3
  79. package/dist/entity-retrieval.js +3 -3
  80. package/dist/event-order-recall.js +1 -1
  81. package/dist/explicit-capture.d.ts +2 -1
  82. package/dist/explicit-cue-recall.d.ts +7 -0
  83. package/dist/explicit-cue-recall.js +2 -1
  84. package/dist/extraction-judge.js +3 -3
  85. package/dist/extraction.js +3 -3
  86. package/dist/fallback-llm.js +2 -2
  87. package/dist/focused-list-recall.d.ts +6 -0
  88. package/dist/focused-list-recall.js +2 -1
  89. package/dist/index.d.ts +5 -4
  90. package/dist/index.js +87 -86
  91. package/dist/index.js.map +1 -1
  92. package/dist/lcm/engine.js +2 -2
  93. package/dist/lcm/index.js +5 -5
  94. package/dist/lcm-fallback-read.d.ts +71 -0
  95. package/dist/lcm-fallback-read.js +10 -0
  96. package/dist/lcm-fallback-read.js.map +1 -0
  97. package/dist/maintenance/memory-governance.js +3 -3
  98. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  99. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  100. package/dist/mcp-memory-inspector-app.d.ts +3 -2
  101. package/dist/namespaces/migrate.js +11 -11
  102. package/dist/namespaces/search.d.ts +18 -1
  103. package/dist/namespaces/search.js +7 -7
  104. package/dist/namespaces/storage.js +3 -3
  105. package/dist/operator-toolkit.js +13 -13
  106. package/dist/{orchestrator-CX-oqwJq.d.ts → orchestrator-8fTZsa0y.d.ts} +2 -0
  107. package/dist/orchestrator.d.ts +2 -1
  108. package/dist/orchestrator.js +33 -32
  109. package/dist/qmd.d.ts +2 -1
  110. package/dist/qmd.js +2 -2
  111. package/dist/recall-planner-llm.js +2 -2
  112. package/dist/response-guidance-recall.d.ts +6 -0
  113. package/dist/response-guidance-recall.js +2 -1
  114. package/dist/search/factory.js +6 -6
  115. package/dist/search/index.js +8 -8
  116. package/dist/search/lancedb-backend.js +2 -2
  117. package/dist/search/meilisearch-backend.js +2 -2
  118. package/dist/search/orama-backend.js +2 -2
  119. package/dist/search/port.d.ts +6 -0
  120. package/dist/search/port.js +1 -1
  121. package/dist/semantic-consolidation.js +4 -4
  122. package/dist/semantic-rule-promotion.js +3 -3
  123. package/dist/semantic-rule-verifier.js +3 -3
  124. package/dist/storage.js +2 -2
  125. package/dist/summarizer.js +3 -3
  126. package/dist/targeted-fact-recall.d.ts +6 -0
  127. package/dist/targeted-fact-recall.js +2 -1
  128. package/dist/transfer/backup.js +2 -2
  129. package/dist/transfer/capsule-export.js +2 -2
  130. package/dist/transfer/capsule-import.js +2 -2
  131. package/dist/transfer/import-sqlite.js +2 -2
  132. package/dist/verified-recall.js +3 -3
  133. package/package.json +1 -1
  134. package/src/access-service-health.test.ts +402 -0
  135. package/src/access-service.ts +274 -2
  136. package/src/event-order-recall.ts +8 -0
  137. package/src/explicit-cue-recall.ts +70 -29
  138. package/src/focused-list-recall.ts +23 -1
  139. package/src/lcm-fallback-read.ts +113 -0
  140. package/src/namespaces/search.test.ts +258 -3
  141. package/src/namespaces/search.ts +184 -30
  142. package/src/orchestrator.ts +179 -122
  143. package/src/qmd.test.ts +102 -0
  144. package/src/qmd.ts +54 -7
  145. package/src/response-guidance-recall.ts +21 -1
  146. package/src/search/port.ts +6 -0
  147. package/src/targeted-fact-recall.ts +24 -3
  148. package/dist/chunk-23RYLGYA.js.map +0 -1
  149. package/dist/chunk-6NKAQ74D.js.map +0 -1
  150. package/dist/chunk-DB5A3NHS.js.map +0 -1
  151. package/dist/chunk-I4COC5XW.js.map +0 -1
  152. package/dist/chunk-NMIOW7XG.js.map +0 -1
  153. package/dist/chunk-OAZ5MFUB.js.map +0 -1
  154. package/dist/chunk-OZKZ2TRP.js.map +0 -1
  155. package/dist/chunk-QT4THOLT.js.map +0 -1
  156. package/dist/chunk-VWT3F4IV.js.map +0 -1
  157. package/dist/chunk-YAFSTKTH.js.map +0 -1
  158. /package/dist/{auto-sync-54QQHOG5.js.map → auto-sync-5CJBJMPZ.js.map} +0 -0
  159. /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  160. /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
  161. /package/dist/{chunk-QKE4LHNR.js.map → chunk-4HYSMH7D.js.map} +0 -0
  162. /package/dist/{chunk-DDRNDPX4.js.map → chunk-4SKKVWLQ.js.map} +0 -0
  163. /package/dist/{chunk-FOVPSMGI.js.map → chunk-7WEB3FLJ.js.map} +0 -0
  164. /package/dist/{chunk-APJQ6UEA.js.map → chunk-AGNBY3VG.js.map} +0 -0
  165. /package/dist/{chunk-4BISW7RX.js.map → chunk-AJE7FJVE.js.map} +0 -0
  166. /package/dist/{chunk-ZXWAQFDE.js.map → chunk-CFOCZPIQ.js.map} +0 -0
  167. /package/dist/{chunk-NT5TINK5.js.map → chunk-DHGSZ3UD.js.map} +0 -0
  168. /package/dist/{chunk-OTC2KOZ2.js.map → chunk-EHQLDFSH.js.map} +0 -0
  169. /package/dist/{chunk-RRRCNIPK.js.map → chunk-GI45G4BK.js.map} +0 -0
  170. /package/dist/{chunk-AMACWKM4.js.map → chunk-IJHLC5CH.js.map} +0 -0
  171. /package/dist/{chunk-OR7R6M5Z.js.map → chunk-IVYSVAC6.js.map} +0 -0
  172. /package/dist/{chunk-76QTEJ2Q.js.map → chunk-JBHXMCYN.js.map} +0 -0
  173. /package/dist/{chunk-UMKPSD35.js.map → chunk-JF7SFXTG.js.map} +0 -0
  174. /package/dist/{chunk-TQUWNX7C.js.map → chunk-JX2RINDR.js.map} +0 -0
  175. /package/dist/{chunk-MCYT2RNT.js.map → chunk-KJDKZVF3.js.map} +0 -0
  176. /package/dist/{chunk-BUKK5SWA.js.map → chunk-KQAFEZQX.js.map} +0 -0
  177. /package/dist/{chunk-PQFUUXWK.js.map → chunk-KWM33SPU.js.map} +0 -0
  178. /package/dist/{chunk-A3BS64GV.js.map → chunk-LCC5EZTT.js.map} +0 -0
  179. /package/dist/{chunk-TVOPSKOK.js.map → chunk-MGGNV3H2.js.map} +0 -0
  180. /package/dist/{chunk-D6WVJIS3.js.map → chunk-ORGWWNJG.js.map} +0 -0
  181. /package/dist/{chunk-Z3PZRDLW.js.map → chunk-PRQXUSQV.js.map} +0 -0
  182. /package/dist/{chunk-IMWFHBG2.js.map → chunk-QWRC7GIO.js.map} +0 -0
  183. /package/dist/{chunk-U3GQ33JC.js.map → chunk-SLTKP5WJ.js.map} +0 -0
  184. /package/dist/{chunk-WEPMT6SC.js.map → chunk-V25ZAOSB.js.map} +0 -0
  185. /package/dist/{chunk-UMTG2BN2.js.map → chunk-V4UDXYGG.js.map} +0 -0
  186. /package/dist/{chunk-TUMH6EDV.js.map → chunk-WSFNYPAT.js.map} +0 -0
  187. /package/dist/{chunk-ZT6R3WR3.js.map → chunk-WTI35CVJ.js.map} +0 -0
  188. /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
  189. /package/dist/{chunk-ALUZN7BE.js.map → chunk-XMN6MMTU.js.map} +0 -0
  190. /package/dist/{chunk-A4BTPHIN.js.map → chunk-Y7NWBBHV.js.map} +0 -0
  191. /package/dist/{chunk-WPCCNSWO.js.map → chunk-YM3LR4LS.js.map} +0 -0
  192. /package/dist/{chunk-3IJEQWQX.js.map → chunk-YOVKPOMD.js.map} +0 -0
  193. /package/dist/{chunk-M75TBFKQ.js.map → chunk-Z2OXSMZK.js.map} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  loadSyncState,
5
5
  syncWearableSource,
6
6
  wearableSourceLabel
7
- } from "./chunk-DDRNDPX4.js";
7
+ } from "./chunk-4SKKVWLQ.js";
8
8
  import {
9
9
  migrateFromEngram
10
10
  } from "./chunk-7HYPN2GC.js";
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-666A3MOW.js";
20
20
  import {
21
21
  LcmEngine
22
- } from "./chunk-WEPMT6SC.js";
22
+ } from "./chunk-V25ZAOSB.js";
23
23
  import {
24
24
  chunkTranscriptEntries
25
25
  } from "./chunk-TECVW3JP.js";
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  CompoundingEngine,
31
31
  defaultTierMigrationCycleBudget
32
- } from "./chunk-Z3PZRDLW.js";
32
+ } from "./chunk-PRQXUSQV.js";
33
33
  import {
34
34
  SharedContextManager
35
35
  } from "./chunk-DRD2Q7HQ.js";
@@ -52,11 +52,11 @@ import {
52
52
  } from "./chunk-UHGBNIOS.js";
53
53
  import {
54
54
  HourlySummarizer
55
- } from "./chunk-IMWFHBG2.js";
55
+ } from "./chunk-QWRC7GIO.js";
56
56
  import {
57
57
  buildTargetedFactRecallSection,
58
58
  shouldRecallTargetedFactEvidence
59
- } from "./chunk-VWT3F4IV.js";
59
+ } from "./chunk-PS3SYNHP.js";
60
60
  import {
61
61
  applyTemporalSupersession,
62
62
  normalizeSupersessionKey,
@@ -71,7 +71,7 @@ import {
71
71
  import {
72
72
  buildResponseGuidanceRecallSection,
73
73
  shouldRecallResponseGuidance
74
- } from "./chunk-OZKZ2TRP.js";
74
+ } from "./chunk-XBIACVCO.js";
75
75
  import {
76
76
  mergeWithAgentResults,
77
77
  runDirectAgent,
@@ -154,10 +154,10 @@ import {
154
154
  getVerdictKind,
155
155
  judgeFactDurability,
156
156
  validateProcedureExtraction
157
- } from "./chunk-M75TBFKQ.js";
157
+ } from "./chunk-Z2OXSMZK.js";
158
158
  import {
159
159
  ExtractionEngine
160
- } from "./chunk-U3GQ33JC.js";
160
+ } from "./chunk-SLTKP5WJ.js";
161
161
  import {
162
162
  parseMemoryActionEligibilityContext
163
163
  } from "./chunk-ROZJACKP.js";
@@ -170,19 +170,19 @@ import {
170
170
  import {
171
171
  buildFocusedListRecallSection,
172
172
  shouldRecallFocusedListEvidence
173
- } from "./chunk-DB5A3NHS.js";
173
+ } from "./chunk-7LWRCOP7.js";
174
174
  import {
175
175
  buildEntityRecallSection,
176
176
  entityRecentTranscriptLookbackHours,
177
177
  readRecentEntityTranscriptEntries
178
- } from "./chunk-ALUZN7BE.js";
178
+ } from "./chunk-XMN6MMTU.js";
179
179
  import {
180
180
  buildEventOrderRecallSection,
181
181
  shouldRecallEventOrderEvidence
182
- } from "./chunk-6NKAQ74D.js";
182
+ } from "./chunk-UU6MVCJ6.js";
183
183
  import {
184
184
  buildExplicitCueRecallSection
185
- } from "./chunk-OAZ5MFUB.js";
185
+ } from "./chunk-3XGWCZ63.js";
186
186
  import {
187
187
  formatDaySummaryMemories
188
188
  } from "./chunk-WLEB7WCG.js";
@@ -210,7 +210,7 @@ import {
210
210
  materializeAfterSemanticConsolidation,
211
211
  parseConsolidationResponse,
212
212
  parseOperatorAwareConsolidationResponse
213
- } from "./chunk-ZXWAQFDE.js";
213
+ } from "./chunk-CFOCZPIQ.js";
214
214
  import {
215
215
  normalizeReplaySessionKey
216
216
  } from "./chunk-2PRQG7PV.js";
@@ -219,25 +219,25 @@ import {
219
219
  } from "./chunk-X6IRLNOO.js";
220
220
  import {
221
221
  searchVerifiedEpisodes
222
- } from "./chunk-UMKPSD35.js";
222
+ } from "./chunk-JF7SFXTG.js";
223
223
  import {
224
224
  ThreadingManager
225
225
  } from "./chunk-W4RVMTHR.js";
226
226
  import {
227
227
  searchVerifiedSemanticRules
228
- } from "./chunk-4BISW7RX.js";
228
+ } from "./chunk-AJE7FJVE.js";
229
229
  import {
230
230
  searchWorkProductLedgerEntries
231
231
  } from "./chunk-ZRWB5D4H.js";
232
232
  import {
233
233
  TranscriptManager
234
234
  } from "./chunk-AGRPGAKR.js";
235
- import {
236
- NamespaceStorageRouter
237
- } from "./chunk-D6WVJIS3.js";
238
235
  import {
239
236
  PolicyRuntimeManager
240
237
  } from "./chunk-33JBK2XP.js";
238
+ import {
239
+ NamespaceStorageRouter
240
+ } from "./chunk-ORGWWNJG.js";
241
241
  import {
242
242
  isAboveImportanceThreshold,
243
243
  scoreImportance
@@ -273,7 +273,7 @@ import {
273
273
  FallbackLlmClient,
274
274
  fallbackLlmRuntimeContextFromConfig,
275
275
  gatewayTaskChainOptions
276
- } from "./chunk-A3BS64GV.js";
276
+ } from "./chunk-LCC5EZTT.js";
277
277
  import {
278
278
  compileCorrectionRule,
279
279
  correctionsFilePath,
@@ -318,11 +318,11 @@ import {
318
318
  } from "./chunk-BEMWL2FZ.js";
319
319
  import {
320
320
  NamespaceSearchRouter
321
- } from "./chunk-NMIOW7XG.js";
321
+ } from "./chunk-JVRPJ7D4.js";
322
322
  import {
323
323
  createConversationIndexRuntime,
324
324
  createSearchBackend
325
- } from "./chunk-WPCCNSWO.js";
325
+ } from "./chunk-YM3LR4LS.js";
326
326
  import {
327
327
  NoopSearchBackend
328
328
  } from "./chunk-CYEPCZN5.js";
@@ -334,7 +334,7 @@ import {
334
334
  } from "./chunk-OIF36KGD.js";
335
335
  import {
336
336
  parseQmdExplain
337
- } from "./chunk-I4COC5XW.js";
337
+ } from "./chunk-PYWNNF2I.js";
338
338
  import {
339
339
  objectiveStateStoreOverrideForNamespace,
340
340
  searchObjectiveStateSnapshots
@@ -353,7 +353,7 @@ import {
353
353
  } from "./chunk-Y56J7CXW.js";
354
354
  import {
355
355
  buildChainFollowupGenerator
356
- } from "./chunk-AMACWKM4.js";
356
+ } from "./chunk-IJHLC5CH.js";
357
357
  import {
358
358
  ContentHashIndex,
359
359
  StorageManager,
@@ -363,7 +363,7 @@ import {
363
363
  normalizeEntityName,
364
364
  parseEntityFile,
365
365
  stripAttributesSuffix
366
- } from "./chunk-A4BTPHIN.js";
366
+ } from "./chunk-Y7NWBBHV.js";
367
367
  import {
368
368
  isValidTranscriptDate,
369
369
  loadSpeakerRegistry,
@@ -2763,6 +2763,9 @@ var Orchestrator = class _Orchestrator {
2763
2763
  execution: options.execution
2764
2764
  });
2765
2765
  }
2766
+ async searchHealthForNamespace(namespace, execution) {
2767
+ return await this.namespaceSearchRouter.healthForNamespace(namespace, execution);
2768
+ }
2766
2769
  isSearchAvailableForNamespaceRouting() {
2767
2770
  if (this.config.namespacesEnabled) return true;
2768
2771
  return this.qmd.isAvailable();
@@ -3425,7 +3428,7 @@ var Orchestrator = class _Orchestrator {
3425
3428
  if (signal.aborted) return;
3426
3429
  if (!this.wearablesAutoSyncHandle && this.config.wearables.enabled && this.config.wearables.autoSyncEnabled && Object.values(this.config.wearables.sources).some((source) => source.enabled)) {
3427
3430
  try {
3428
- const { startWearablesAutoSync } = await import("./auto-sync-54QQHOG5.js");
3431
+ const { startWearablesAutoSync } = await import("./auto-sync-5CJBJMPZ.js");
3429
3432
  if (signal.aborted) return;
3430
3433
  this.wearablesAutoSyncHandle = startWearablesAutoSync(
3431
3434
  {
@@ -8004,21 +8007,19 @@ ${formatted}`;
8004
8007
  const explicitCueMaxChars = this.getRecallSectionMaxChars("explicit-cue") ?? this.config.explicitCueRecallMaxChars;
8005
8008
  if (this.config.explicitCueRecallEnabled && this.isRecallSectionEnabled("explicit-cue") && explicitCueMaxChars !== 0 && this.lcmEngine?.enabled && recallMode !== "no_recall") {
8006
8009
  try {
8007
- const explicitCueSection = await firstNonEmptyLcmRead(
8008
- (lcmSessionId) => buildExplicitCueRecallSection({
8009
- engine: this.lcmEngine,
8010
- // #1495 thread 3 + #1505 fallback unification: read across the
8011
- // ordered LCM read key set (primary overlay coding fallbacks)
8012
- // so a branch-scoped session finds its own explicit-cue evidence
8013
- // even when archived at project/root scope (rule 39).
8014
- sessionId: lcmSessionId,
8015
- query: retrievalQuery,
8016
- maxChars: explicitCueMaxChars,
8017
- maxReferences: this.getRecallSectionNumber("explicit-cue", "maxResults") ?? this.config.explicitCueRecallMaxReferences
8018
- }),
8019
- (s) => !s,
8020
- ""
8021
- );
8010
+ const explicitCueSection = await buildExplicitCueRecallSection({
8011
+ engine: this.lcmEngine,
8012
+ // #1495 thread 3 + #1505 fallback unification: read across the ordered
8013
+ // LCM read key set (primary overlay coding fallbacks) so a
8014
+ // branch-scoped session finds its own explicit-cue evidence even when
8015
+ // archived at project/root scope (rule 39). #1505 codex P2: the builder
8016
+ // MERGES candidates across every key under its single budget instead of
8017
+ // short-circuiting on the first non-empty key.
8018
+ sessionIds: lcmReadSessionIds,
8019
+ query: retrievalQuery,
8020
+ maxChars: explicitCueMaxChars,
8021
+ maxReferences: this.getRecallSectionNumber("explicit-cue", "maxResults") ?? this.config.explicitCueRecallMaxReferences
8022
+ });
8022
8023
  if (explicitCueSection) {
8023
8024
  this.appendRecallSection(
8024
8025
  sectionBuckets,
@@ -8036,22 +8037,19 @@ ${formatted}`;
8036
8037
  this.config.targetedFactRecallEnabled
8037
8038
  ) && targetedFactMaxChars !== 0 && this.lcmEngine?.enabled && recallMode !== "no_recall" && shouldRecallTargetedFactEvidence(retrievalQuery)) {
8038
8039
  try {
8039
- const targetedFactSection = await firstNonEmptyLcmRead(
8040
- (lcmSessionId) => buildTargetedFactRecallSection({
8041
- engine: this.lcmEngine,
8042
- // #1495 + #1505 fallback unification: read across the ordered LCM
8043
- // read key set so a branch-scoped session finds its own
8044
- // targeted-fact evidence even when archived at project/root scope.
8045
- sessionId: lcmSessionId,
8046
- query: retrievalQuery,
8047
- maxChars: targetedFactMaxChars,
8048
- maxSearchResults: this.getRecallSectionNumber("targeted-facts", "maxResults") ?? this.config.targetedFactRecallMaxResults,
8049
- maxScanWindowTurns: this.getRecallSectionNumber("targeted-facts", "maxTurns") ?? this.config.targetedFactRecallScanWindowTurns,
8050
- maxScanWindowTokens: this.getRecallSectionNumber("targeted-facts", "maxTokens") ?? this.config.targetedFactRecallScanWindowTokens
8051
- }),
8052
- (s) => !s,
8053
- ""
8054
- );
8040
+ const targetedFactSection = await buildTargetedFactRecallSection({
8041
+ engine: this.lcmEngine,
8042
+ // #1495 + #1505 fallback unification: read across the ordered LCM read
8043
+ // key set so a branch-scoped session finds its own targeted-fact
8044
+ // evidence even when archived at project/root scope. #1505 codex P2: the
8045
+ // builder MERGES candidates across every key under its single budget.
8046
+ sessionIds: lcmReadSessionIds,
8047
+ query: retrievalQuery,
8048
+ maxChars: targetedFactMaxChars,
8049
+ maxSearchResults: this.getRecallSectionNumber("targeted-facts", "maxResults") ?? this.config.targetedFactRecallMaxResults,
8050
+ maxScanWindowTurns: this.getRecallSectionNumber("targeted-facts", "maxTurns") ?? this.config.targetedFactRecallScanWindowTurns,
8051
+ maxScanWindowTokens: this.getRecallSectionNumber("targeted-facts", "maxTokens") ?? this.config.targetedFactRecallScanWindowTokens
8052
+ });
8055
8053
  if (targetedFactSection) {
8056
8054
  this.appendRecallSection(
8057
8055
  sectionBuckets,
@@ -8069,22 +8067,20 @@ ${formatted}`;
8069
8067
  this.config.focusedListRecallEnabled
8070
8068
  ) && focusedListMaxChars !== 0 && this.lcmEngine?.enabled && recallMode !== "no_recall" && shouldRecallFocusedListEvidence(retrievalQuery)) {
8071
8069
  try {
8072
- const focusedListSection = await firstNonEmptyLcmRead(
8073
- (lcmSessionId) => buildFocusedListRecallSection({
8074
- engine: this.lcmEngine,
8075
- // #1495 thread 3 + #1505 fallback unification: read across the
8076
- // ordered LCM read key set so a branch-scoped session reads its own
8077
- // focused-list/count evidence even at project/root scope (rule 39).
8078
- sessionId: lcmSessionId,
8079
- query: retrievalQuery,
8080
- maxChars: focusedListMaxChars,
8081
- maxSearchResults: this.getRecallSectionNumber("focused-list", "maxResults") ?? this.config.focusedListRecallMaxResults,
8082
- maxScanWindowTurns: this.getRecallSectionNumber("focused-list", "maxTurns") ?? this.config.focusedListRecallScanWindowTurns,
8083
- maxScanWindowTokens: this.getRecallSectionNumber("focused-list", "maxTokens") ?? this.config.focusedListRecallScanWindowTokens
8084
- }),
8085
- (s) => !s,
8086
- ""
8087
- );
8070
+ const focusedListSection = await buildFocusedListRecallSection({
8071
+ engine: this.lcmEngine,
8072
+ // #1495 thread 3 + #1505 fallback unification: read across the ordered
8073
+ // LCM read key set so a branch-scoped session reads its own
8074
+ // focused-list/count evidence even at project/root scope (rule 39).
8075
+ // #1505 codex P2: the builder MERGES candidates across every key under
8076
+ // its single budget.
8077
+ sessionIds: lcmReadSessionIds,
8078
+ query: retrievalQuery,
8079
+ maxChars: focusedListMaxChars,
8080
+ maxSearchResults: this.getRecallSectionNumber("focused-list", "maxResults") ?? this.config.focusedListRecallMaxResults,
8081
+ maxScanWindowTurns: this.getRecallSectionNumber("focused-list", "maxTurns") ?? this.config.focusedListRecallScanWindowTurns,
8082
+ maxScanWindowTokens: this.getRecallSectionNumber("focused-list", "maxTokens") ?? this.config.focusedListRecallScanWindowTokens
8083
+ });
8088
8084
  if (focusedListSection) {
8089
8085
  this.appendRecallSection(
8090
8086
  sectionBuckets,
@@ -8105,23 +8101,21 @@ ${formatted}`;
8105
8101
  this.config.responseGuidanceRecallEnabled
8106
8102
  ) && responseGuidanceMaxChars !== 0 && this.lcmEngine?.enabled && recallMode !== "no_recall" && (responseGuidanceMatchesQuery || responseGuidanceForcedByPipeline)) {
8107
8103
  try {
8108
- const responseGuidanceSection = await firstNonEmptyLcmRead(
8109
- (lcmSessionId) => buildResponseGuidanceRecallSection({
8110
- engine: this.lcmEngine,
8111
- // #1495 thread 3 + #1505 fallback unification: read across the
8112
- // ordered LCM read key set so a branch-scoped session reads its own
8113
- // response-guidance evidence even at project/root scope (rule 39).
8114
- sessionId: lcmSessionId,
8115
- query: retrievalQuery,
8116
- maxChars: responseGuidanceMaxChars,
8117
- maxSearchResults: this.getRecallSectionNumber("response-guidance", "maxResults") ?? this.config.responseGuidanceRecallMaxResults,
8118
- maxScanWindowTurns: this.getRecallSectionNumber("response-guidance", "maxTurns") ?? this.config.responseGuidanceRecallScanWindowTurns,
8119
- maxScanWindowTokens: this.getRecallSectionNumber("response-guidance", "maxTokens") ?? this.config.responseGuidanceRecallScanWindowTokens,
8120
- forceGeneric: responseGuidanceForcedByPipeline
8121
- }),
8122
- (s) => !s,
8123
- ""
8124
- );
8104
+ const responseGuidanceSection = await buildResponseGuidanceRecallSection({
8105
+ engine: this.lcmEngine,
8106
+ // #1495 thread 3 + #1505 fallback unification: read across the ordered
8107
+ // LCM read key set so a branch-scoped session reads its own
8108
+ // response-guidance evidence even at project/root scope (rule 39).
8109
+ // #1505 codex P2: the builder MERGES candidates across every key under
8110
+ // its single budget.
8111
+ sessionIds: lcmReadSessionIds,
8112
+ query: retrievalQuery,
8113
+ maxChars: responseGuidanceMaxChars,
8114
+ maxSearchResults: this.getRecallSectionNumber("response-guidance", "maxResults") ?? this.config.responseGuidanceRecallMaxResults,
8115
+ maxScanWindowTurns: this.getRecallSectionNumber("response-guidance", "maxTurns") ?? this.config.responseGuidanceRecallScanWindowTurns,
8116
+ maxScanWindowTokens: this.getRecallSectionNumber("response-guidance", "maxTokens") ?? this.config.responseGuidanceRecallScanWindowTokens,
8117
+ forceGeneric: responseGuidanceForcedByPipeline
8118
+ });
8125
8119
  if (responseGuidanceSection) {
8126
8120
  this.appendRecallSection(
8127
8121
  sectionBuckets,
@@ -8142,9 +8136,6 @@ ${formatted}`;
8142
8136
  const eventOrderSection = await firstNonEmptyLcmRead(
8143
8137
  (lcmSessionId) => buildEventOrderRecallSection({
8144
8138
  engine: this.lcmEngine,
8145
- // #1495 thread 3 + #1505 fallback unification: read across the
8146
- // ordered LCM read key set so a branch-scoped session reads its own
8147
- // chronological event-order evidence even at project/root scope.
8148
8139
  sessionId: lcmSessionId,
8149
8140
  query: retrievalQuery,
8150
8141
  maxChars: eventOrderMaxChars,
@@ -8289,19 +8280,26 @@ ${tmtNode.summary}`
8289
8280
  }
8290
8281
  if (this.lcmEngine?.enabled && recallMode !== "minimal" && recallMode !== "no_recall") {
8291
8282
  try {
8292
- const structuredMatches = await firstNonEmptyLcmRead(
8293
- (lcmSessionId) => this.lcmEngine.searchStructuredParts(
8294
- // #1495 + #1505 fallback unification: read across the ordered LCM
8295
- // read key set so a branch-scoped session reads its own structured
8296
- // message-part evidence even when archived at project/root scope.
8297
- // Structured parts are inherently per-session (the DAG is keyed by
8298
- // session_id), so a SESSIONLESS read (`undefined`) normalizes to
8299
- // empty → no section, the correct pre-#1505 behavior (codex P2).
8300
- lcmSessionId ?? "",
8301
- retrievalQuery
8302
- ),
8303
- (matches) => matches.length === 0,
8304
- []
8283
+ const structuredSettled = await Promise.allSettled(
8284
+ lcmReadSessionIds.map(
8285
+ (lcmSessionId) => this.lcmEngine.searchStructuredParts(lcmSessionId ?? "", retrievalQuery)
8286
+ )
8287
+ );
8288
+ for (const settled of structuredSettled) {
8289
+ if (settled.status === "rejected") {
8290
+ log.debug(
8291
+ `LCM structured-parts read failed for one key: ${settled.reason}`
8292
+ );
8293
+ }
8294
+ }
8295
+ const seenStructuredParts = /* @__PURE__ */ new Set();
8296
+ const structuredMatches = structuredSettled.flatMap((settled) => settled.status === "fulfilled" ? settled.value : []).filter((match) => {
8297
+ const key = `${match.session_id} ${match.turn_index} ${match.part_id}`;
8298
+ if (seenStructuredParts.has(key)) return false;
8299
+ seenStructuredParts.add(key);
8300
+ return true;
8301
+ }).sort(
8302
+ (a, b) => (b.score ?? 0) - (a.score ?? 0) || b.turn_index - a.turn_index
8305
8303
  );
8306
8304
  const structuredSection = this.lcmEngine.formatStructuredRecall(
8307
8305
  structuredMatches,
@@ -8327,12 +8325,6 @@ ${tmtNode.summary}`
8327
8325
  }
8328
8326
  const lcmSection = await firstNonEmptyLcmRead(
8329
8327
  (lcmSessionId) => this.lcmEngine.assembleRecall(
8330
- // #1495 + #1505 fallback unification: read across the ordered LCM
8331
- // read key set so a branch-scoped session reads its own
8332
- // compressed-history evidence even at project/root scope.
8333
- // Compressed history is inherently per-session (a per-session DAG),
8334
- // so a SESSIONLESS read (`undefined`) normalizes to empty → no
8335
- // section, the correct pre-#1505 behavior (codex P2).
8336
8328
  lcmSessionId ?? "",
8337
8329
  this.config.recallBudgetChars
8338
8330
  ),
@@ -14432,4 +14424,4 @@ export {
14432
14424
  resolvePersistedMemoryRelativePath,
14433
14425
  Orchestrator
14434
14426
  };
14435
- //# sourceMappingURL=chunk-23RYLGYA.js.map
14427
+ //# sourceMappingURL=chunk-TCX4WLKK.js.map