@remnic/core 9.7.9 → 9.7.11

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 (135) hide show
  1. package/dist/access-admin-ops-surface.js +5 -5
  2. package/dist/access-boundary.d.ts +1 -1
  3. package/dist/access-boundary.js +6 -6
  4. package/dist/access-cli.js +36 -36
  5. package/dist/access-http.d.ts +2 -1
  6. package/dist/access-http.js +10 -10
  7. package/dist/access-identity-continuity-surface.js +5 -5
  8. package/dist/access-lcm-surface.js +5 -5
  9. package/dist/access-mcp.js +9 -9
  10. package/dist/access-observe-write-surface.js +5 -5
  11. package/dist/access-operations-batch.js +7 -7
  12. package/dist/access-operations.d.ts +4 -4
  13. package/dist/access-operations.js +8 -8
  14. package/dist/access-recall-surface.js +5 -5
  15. package/dist/access-schema.d.ts +64 -64
  16. package/dist/access-service.js +5 -5
  17. package/dist/access-surface-catalog.js +2 -0
  18. package/dist/access-surface-catalog.js.map +1 -1
  19. package/dist/briefing.js +3 -3
  20. package/dist/causal-consolidation.js +4 -4
  21. package/dist/{chunk-HHAA35A3.js → chunk-2VN4JAX7.js} +548 -161
  22. package/dist/chunk-2VN4JAX7.js.map +1 -0
  23. package/dist/{chunk-MLT5EG6K.js → chunk-3OQ4IZJN.js} +4 -4
  24. package/dist/{chunk-DLPXS7BE.js → chunk-5U65RIVI.js} +348 -49
  25. package/dist/chunk-5U65RIVI.js.map +1 -0
  26. package/dist/{chunk-QKVX4Y6D.js → chunk-673NPXE3.js} +2 -2
  27. package/dist/{chunk-POUD5BLV.js → chunk-6LM6PPDX.js} +4 -2
  28. package/dist/chunk-6LM6PPDX.js.map +1 -0
  29. package/dist/chunk-7XRUYC6G.js +1794 -0
  30. package/dist/chunk-7XRUYC6G.js.map +1 -0
  31. package/dist/{chunk-5CFHYQU3.js → chunk-DLWYAN6A.js} +2 -2
  32. package/dist/{chunk-TY43GBX2.js → chunk-EQF5763Z.js} +2 -2
  33. package/dist/{chunk-SKXBOZDF.js → chunk-GHVJASQ4.js} +3 -3
  34. package/dist/{chunk-YGAOLHKN.js → chunk-JYRFO4EH.js} +4 -4
  35. package/dist/{chunk-F3FC7SMO.js → chunk-JZM5QUTE.js} +2 -2
  36. package/dist/{chunk-PV7E2FGY.js → chunk-KXLRMM35.js} +6 -6
  37. package/dist/{chunk-PHXCPVSX.js → chunk-L4H6MQ7I.js} +2 -2
  38. package/dist/{chunk-FKCJH7KP.js → chunk-LQKITFGB.js} +2 -2
  39. package/dist/{chunk-27VEKQQA.js → chunk-MXRMNKSY.js} +3 -3
  40. package/dist/{chunk-EIKBKQ6L.js → chunk-QHT4W3RU.js} +127 -9
  41. package/dist/chunk-QHT4W3RU.js.map +1 -0
  42. package/dist/{chunk-CDGGQGUU.js → chunk-SBFDL2EQ.js} +2 -2
  43. package/dist/{chunk-I2THZUAF.js → chunk-SECMZACR.js} +2 -2
  44. package/dist/{chunk-JU3GHO6J.js → chunk-TGBJ2OMK.js} +2 -2
  45. package/dist/{chunk-DE6ENYLG.js → chunk-TXLGHDHS.js} +2 -2
  46. package/dist/{chunk-KGNFFCZJ.js → chunk-U4KHQTJ6.js} +2 -2
  47. package/dist/{chunk-Y5U35ZVS.js → chunk-UTDA43TB.js} +2 -2
  48. package/dist/{chunk-CK6RI52P.js → chunk-VCEH5UYS.js} +2 -2
  49. package/dist/{chunk-UXWGPODH.js → chunk-VRAD2FGO.js} +7 -7
  50. package/dist/{chunk-KKASNHGF.js → chunk-W6R43NLA.js} +19 -19
  51. package/dist/{chunk-UP25ZZCN.js → chunk-WUDBMLC6.js} +2 -2
  52. package/dist/{chunk-XG5CGR3K.js → chunk-XF4KOVDK.js} +5 -5
  53. package/dist/{chunk-KPXAJ77O.js → chunk-YLTG6BO4.js} +2 -2
  54. package/dist/cli.js +23 -23
  55. package/dist/compounding/engine.js +3 -3
  56. package/dist/connectors/codex-materialize-runner.js +3 -3
  57. package/dist/connectors/index.js +3 -3
  58. package/dist/entity-retrieval.js +3 -3
  59. package/dist/index.d.ts +3990 -4
  60. package/dist/index.js +90 -43
  61. package/dist/lcm/engine.js +3 -3
  62. package/dist/lcm/index.js +8 -8
  63. package/dist/maintenance/memory-governance.js +3 -3
  64. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  65. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  66. package/dist/namespaces/migrate.js +4 -4
  67. package/dist/namespaces/storage.js +3 -3
  68. package/dist/operator-toolkit.js +7 -7
  69. package/dist/orchestration/maintenance.js +5 -5
  70. package/dist/orchestrator.js +36 -36
  71. package/dist/retrieval-agents.js +2 -2
  72. package/dist/schemas.d.ts +74 -74
  73. package/dist/semantic-consolidation.js +4 -4
  74. package/dist/semantic-rule-promotion.js +3 -3
  75. package/dist/semantic-rule-verifier.js +3 -3
  76. package/dist/shared-context/manager.d.ts +8 -8
  77. package/dist/storage.js +2 -2
  78. package/dist/temporal-index-compat.d.ts +1 -0
  79. package/dist/temporal-index-compat.js +16 -0
  80. package/dist/temporal-index-compat.js.map +1 -0
  81. package/dist/temporal-index.d.ts +58 -7
  82. package/dist/temporal-index.js +23 -3
  83. package/dist/transfer/types.d.ts +66 -66
  84. package/dist/verified-recall.js +3 -3
  85. package/package.json +2 -2
  86. package/src/access-boundary.ts +2 -0
  87. package/src/access-http.ts +147 -6
  88. package/src/access-mcp-cancellation.test.ts +2 -2
  89. package/src/access-operations.ts +2 -0
  90. package/src/access-surface-catalog.ts +2 -0
  91. package/src/index.ts +53 -0
  92. package/src/orchestration/consolidation-run.ts +5 -5
  93. package/src/orchestration/contradiction-linking-coordinator.ts +2 -2
  94. package/src/orchestration/lifecycle-policy-coordinator.ts +2 -2
  95. package/src/orchestration/persistence-index.ts +6 -6
  96. package/src/orchestration/recall-search-pipeline.ts +36 -21
  97. package/src/orchestration/semantic-consolidation-coordinator.ts +2 -2
  98. package/src/orchestrator.ts +0 -4
  99. package/src/relay/mission-access.test.ts +379 -0
  100. package/src/relay/mission-access.ts +125 -0
  101. package/src/relay/mission-fixture.ts +301 -0
  102. package/src/relay/mission.test.ts +964 -0
  103. package/src/relay/mission.ts +1725 -0
  104. package/src/temporal-index-compat.ts +311 -0
  105. package/src/temporal-index.test.ts +273 -22
  106. package/src/temporal-index.ts +427 -178
  107. package/dist/chunk-DLPXS7BE.js.map +0 -1
  108. package/dist/chunk-EIKBKQ6L.js.map +0 -1
  109. package/dist/chunk-HHAA35A3.js.map +0 -1
  110. package/dist/chunk-POUD5BLV.js.map +0 -1
  111. package/dist/chunk-VCFADTFS.js +0 -467
  112. package/dist/chunk-VCFADTFS.js.map +0 -1
  113. /package/dist/{chunk-MLT5EG6K.js.map → chunk-3OQ4IZJN.js.map} +0 -0
  114. /package/dist/{chunk-QKVX4Y6D.js.map → chunk-673NPXE3.js.map} +0 -0
  115. /package/dist/{chunk-5CFHYQU3.js.map → chunk-DLWYAN6A.js.map} +0 -0
  116. /package/dist/{chunk-TY43GBX2.js.map → chunk-EQF5763Z.js.map} +0 -0
  117. /package/dist/{chunk-SKXBOZDF.js.map → chunk-GHVJASQ4.js.map} +0 -0
  118. /package/dist/{chunk-YGAOLHKN.js.map → chunk-JYRFO4EH.js.map} +0 -0
  119. /package/dist/{chunk-F3FC7SMO.js.map → chunk-JZM5QUTE.js.map} +0 -0
  120. /package/dist/{chunk-PV7E2FGY.js.map → chunk-KXLRMM35.js.map} +0 -0
  121. /package/dist/{chunk-PHXCPVSX.js.map → chunk-L4H6MQ7I.js.map} +0 -0
  122. /package/dist/{chunk-FKCJH7KP.js.map → chunk-LQKITFGB.js.map} +0 -0
  123. /package/dist/{chunk-27VEKQQA.js.map → chunk-MXRMNKSY.js.map} +0 -0
  124. /package/dist/{chunk-CDGGQGUU.js.map → chunk-SBFDL2EQ.js.map} +0 -0
  125. /package/dist/{chunk-I2THZUAF.js.map → chunk-SECMZACR.js.map} +0 -0
  126. /package/dist/{chunk-JU3GHO6J.js.map → chunk-TGBJ2OMK.js.map} +0 -0
  127. /package/dist/{chunk-DE6ENYLG.js.map → chunk-TXLGHDHS.js.map} +0 -0
  128. /package/dist/{chunk-KGNFFCZJ.js.map → chunk-U4KHQTJ6.js.map} +0 -0
  129. /package/dist/{chunk-Y5U35ZVS.js.map → chunk-UTDA43TB.js.map} +0 -0
  130. /package/dist/{chunk-CK6RI52P.js.map → chunk-VCEH5UYS.js.map} +0 -0
  131. /package/dist/{chunk-UXWGPODH.js.map → chunk-VRAD2FGO.js.map} +0 -0
  132. /package/dist/{chunk-KKASNHGF.js.map → chunk-W6R43NLA.js.map} +0 -0
  133. /package/dist/{chunk-UP25ZZCN.js.map → chunk-WUDBMLC6.js.map} +0 -0
  134. /package/dist/{chunk-XG5CGR3K.js.map → chunk-XF4KOVDK.js.map} +0 -0
  135. /package/dist/{chunk-KPXAJ77O.js.map → chunk-YLTG6BO4.js.map} +0 -0
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-TRWPCR6P.js";
11
11
  import {
12
12
  MaintenanceScheduler
13
- } from "./chunk-I2THZUAF.js";
13
+ } from "./chunk-SECMZACR.js";
14
14
  import {
15
15
  runPeerProfileReasoner
16
16
  } from "./chunk-I74SUMNI.js";
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-7HYPN2GC.js";
20
20
  import {
21
21
  LcmEngine
22
- } from "./chunk-UXWGPODH.js";
22
+ } from "./chunk-VRAD2FGO.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-5CFHYQU3.js";
32
+ } from "./chunk-DLWYAN6A.js";
33
33
  import {
34
34
  SharedContextManager
35
35
  } from "./chunk-5CJVLG3H.js";
@@ -79,20 +79,21 @@ import {
79
79
  runDirectAgent,
80
80
  runTemporalAgent,
81
81
  shouldRunAgent
82
- } from "./chunk-DE6ENYLG.js";
82
+ } from "./chunk-TXLGHDHS.js";
83
83
  import {
84
- clearIndexes,
85
- deindexMemory,
84
+ clearIndexesAsync,
85
+ deindexMemoryAsync,
86
86
  extractTagsFromPrompt,
87
- indexMemoriesBatch,
88
- indexesExist,
87
+ indexMemoriesBatchAsync,
88
+ indexesExistAsync,
89
89
  isTemporalQuery,
90
90
  queryByDateRangeAsync,
91
91
  queryByTagsAsync,
92
92
  queryTemporalTimelineAsync,
93
+ readIndexSnapshotAsync,
93
94
  recencyWindowFromPrompt,
94
95
  resolvePromptTagPrefilterAsync
95
- } from "./chunk-HHAA35A3.js";
96
+ } from "./chunk-2VN4JAX7.js";
96
97
  import {
97
98
  applyRuntimeRetrievalPolicy
98
99
  } from "./chunk-5IZL4DCV.js";
@@ -202,7 +203,7 @@ import {
202
203
  buildEntityRecallSection,
203
204
  entityRecentTranscriptLookbackHours,
204
205
  readRecentEntityTranscriptEntries
205
- } from "./chunk-JU3GHO6J.js";
206
+ } from "./chunk-TGBJ2OMK.js";
206
207
  import {
207
208
  RoutingRulesStore
208
209
  } from "./chunk-KQPJLK3X.js";
@@ -212,14 +213,14 @@ import {
212
213
  import {
213
214
  compareVerifiedEpisodeResults,
214
215
  searchVerifiedEpisodes
215
- } from "./chunk-KPXAJ77O.js";
216
+ } from "./chunk-YLTG6BO4.js";
216
217
  import {
217
218
  ThreadingManager
218
219
  } from "./chunk-DBRYEIGY.js";
219
220
  import {
220
221
  compareVerifiedSemanticRuleResults,
221
222
  searchVerifiedSemanticRules
222
- } from "./chunk-TY43GBX2.js";
223
+ } from "./chunk-EQF5763Z.js";
223
224
  import {
224
225
  searchWorkProductLedgerEntries
225
226
  } from "./chunk-ZRWB5D4H.js";
@@ -229,14 +230,14 @@ import {
229
230
  import {
230
231
  runNamespaceMaintenanceFanout,
231
232
  summarizeNamespaceMaintenanceHealth
232
- } from "./chunk-XG5CGR3K.js";
233
+ } from "./chunk-XF4KOVDK.js";
233
234
  import {
234
235
  NamespaceCatalog,
235
236
  planNamespaceMaintenance
236
- } from "./chunk-F3FC7SMO.js";
237
+ } from "./chunk-JZM5QUTE.js";
237
238
  import {
238
239
  NamespaceStorageRouter
239
- } from "./chunk-KGNFFCZJ.js";
240
+ } from "./chunk-U4KHQTJ6.js";
240
241
  import {
241
242
  PolicyRuntimeManager
242
243
  } from "./chunk-33JBK2XP.js";
@@ -274,7 +275,7 @@ import {
274
275
  materializeAfterSemanticConsolidation,
275
276
  parseConsolidationResponse,
276
277
  parseOperatorAwareConsolidationResponse
277
- } from "./chunk-FKCJH7KP.js";
278
+ } from "./chunk-LQKITFGB.js";
278
279
  import {
279
280
  buildRecallQueryPolicy
280
281
  } from "./chunk-LBJBNWS2.js";
@@ -323,7 +324,7 @@ import {
323
324
  createCorrectionService,
324
325
  detectPassiveCorrections,
325
326
  qmdCollectionPathParts
326
- } from "./chunk-MLT5EG6K.js";
327
+ } from "./chunk-3OQ4IZJN.js";
327
328
  import {
328
329
  importCapsule
329
330
  } from "./chunk-OC35KQIN.js";
@@ -394,7 +395,7 @@ import {
394
395
  } from "./chunk-TBBDFYXW.js";
395
396
  import {
396
397
  buildChainFollowupGenerator
397
- } from "./chunk-Y5U35ZVS.js";
398
+ } from "./chunk-UTDA43TB.js";
398
399
  import {
399
400
  ContentHashIndex,
400
401
  StorageManager,
@@ -409,7 +410,10 @@ import {
409
410
  reconstructFusionInputs,
410
411
  selfDeps,
411
412
  serializeFusionDay
412
- } from "./chunk-PV7E2FGY.js";
413
+ } from "./chunk-KXLRMM35.js";
414
+ import {
415
+ buildRetiredFactTombstoneInputs
416
+ } from "./chunk-L2B3EE7B.js";
413
417
  import {
414
418
  bodyIsEscaped,
415
419
  decodeTranscriptBody,
@@ -420,9 +424,6 @@ import {
420
424
  saveSpeakerRegistry,
421
425
  speakerRegistryKey
422
426
  } from "./chunk-B3ABVQ36.js";
423
- import {
424
- buildRetiredFactTombstoneInputs
425
- } from "./chunk-L2B3EE7B.js";
426
427
  import {
427
428
  assertPathInsideRoot
428
429
  } from "./chunk-VSMRDBFT.js";
@@ -1044,7 +1045,7 @@ var SemanticConsolidationCoordinator = class {
1044
1045
  try {
1045
1046
  await this.deps.embeddingFallback.removeFromIndex(m.frontmatter.id);
1046
1047
  if (resolveIndexingCapabilities(this.config).queryAwareIndexing && m.path && m.frontmatter?.created) {
1047
- deindexMemory(
1048
+ await deindexMemoryAsync(
1048
1049
  targetStorage.dir,
1049
1050
  m.path,
1050
1051
  m.frontmatter.created,
@@ -1316,7 +1317,7 @@ var LifecyclePolicyCoordinator = class {
1316
1317
  );
1317
1318
  await this.deps.embeddingFallback.removeFromIndex(memory.frontmatter.id);
1318
1319
  if (resolveIndexingCapabilities(this.config).queryAwareIndexing && memory.path && memory.frontmatter?.created) {
1319
- deindexMemory(
1320
+ await deindexMemoryAsync(
1320
1321
  this.config.memoryDir,
1321
1322
  memory.path,
1322
1323
  memory.frontmatter.created,
@@ -2688,7 +2689,7 @@ var ContradictionLinkingCoordinator = class {
2688
2689
  contradiction.reason
2689
2690
  );
2690
2691
  if (resolveIndexingCapabilities(config).queryAwareIndexing && contradiction.supersededPath) {
2691
- deindexMemory(
2692
+ await deindexMemoryAsync(
2692
2693
  config.memoryDir,
2693
2694
  contradiction.supersededPath,
2694
2695
  contradiction.supersededCreated,
@@ -3431,7 +3432,7 @@ ${normalized}`).digest("hex");
3431
3432
  (meta.processedExtractionFingerprints ?? []).map((entry) => [entry.fingerprint, entry.observedAt])
3432
3433
  );
3433
3434
  seen.set(fingerprint, observedAt);
3434
- meta.processedExtractionFingerprints = Array.from(seen.entries()).map(([value, at]) => ({ fingerprint: value, observedAt: at })).sort((left, right) => left.observedAt.localeCompare(right.observedAt)).slice(-500);
3435
+ meta.processedExtractionFingerprints = Array.from(seen.entries()).map(([value, at2]) => ({ fingerprint: value, observedAt: at2 })).sort((left, right) => left.observedAt.localeCompare(right.observedAt)).slice(-500);
3435
3436
  if (!preloadedMeta) {
3436
3437
  await storage.saveMeta(meta);
3437
3438
  }
@@ -4036,7 +4037,7 @@ var ConsolidationRunCoordinator = class {
4036
4037
  memoryItemMutated = true;
4037
4038
  await this.deps.embeddingFallback.removeFromIndex(item.existingId);
4038
4039
  if (toInvalidate?.path && toInvalidate.frontmatter?.created) {
4039
- deindexMemory(
4040
+ await deindexMemoryAsync(
4040
4041
  config.memoryDir,
4041
4042
  toInvalidate.path,
4042
4043
  toInvalidate.frontmatter.created,
@@ -4077,7 +4078,7 @@ var ConsolidationRunCoordinator = class {
4077
4078
  merged += 1;
4078
4079
  await this.deps.embeddingFallback.removeFromIndex(item.mergeWith);
4079
4080
  if (toMergeInvalidate?.path && toMergeInvalidate.frontmatter?.created) {
4080
- deindexMemory(
4081
+ await deindexMemoryAsync(
4081
4082
  config.memoryDir,
4082
4083
  toMergeInvalidate.path,
4083
4084
  toMergeInvalidate.frontmatter.created,
@@ -4129,7 +4130,7 @@ var ConsolidationRunCoordinator = class {
4129
4130
  log.info(`cleaned ${deletedCommitments.length} expired commitments`);
4130
4131
  if (resolveIndexingCapabilities(config).queryAwareIndexing) {
4131
4132
  for (const m of deletedCommitments) {
4132
- deindexMemory(
4133
+ await deindexMemoryAsync(
4133
4134
  config.memoryDir,
4134
4135
  m.path,
4135
4136
  m.frontmatter.created,
@@ -4162,7 +4163,7 @@ var ConsolidationRunCoordinator = class {
4162
4163
  log.info(`cleaned ${deletedTTL.length} TTL-expired memories`);
4163
4164
  if (resolveIndexingCapabilities(config).queryAwareIndexing) {
4164
4165
  for (const m of deletedTTL) {
4165
- deindexMemory(
4166
+ await deindexMemoryAsync(
4166
4167
  config.memoryDir,
4167
4168
  m.path,
4168
4169
  m.frontmatter.created,
@@ -10702,16 +10703,19 @@ var RecallSearchPipelineCoordinator = class {
10702
10703
  };
10703
10704
  }
10704
10705
  const temporalFromDate = isTemporalQuery(prompt) ? recencyWindowFromPrompt(prompt, Date.now()) : null;
10705
- const [rawTemporal, tagSignals] = await Promise.all([
10706
- temporalFromDate ? queryByDateRangeAsync(this.deps.config.memoryDir, temporalFromDate) : Promise.resolve(null),
10707
- resolvePromptTagPrefilterAsync(this.deps.config.memoryDir, prompt).catch(
10708
- () => ({
10709
- matchedTags: extractTagsFromPrompt(prompt),
10710
- expandedTags: extractTagsFromPrompt(prompt),
10711
- paths: null
10712
- })
10713
- )
10714
- ]);
10706
+ const [rawTemporal, tagSignals] = await readIndexSnapshotAsync(
10707
+ this.deps.config.memoryDir,
10708
+ () => Promise.all([
10709
+ temporalFromDate ? queryByDateRangeAsync(this.deps.config.memoryDir, temporalFromDate) : Promise.resolve(null),
10710
+ resolvePromptTagPrefilterAsync(this.deps.config.memoryDir, prompt).catch(
10711
+ () => ({
10712
+ matchedTags: extractTagsFromPrompt(prompt),
10713
+ expandedTags: extractTagsFromPrompt(prompt),
10714
+ paths: null
10715
+ })
10716
+ )
10717
+ ])
10718
+ );
10715
10719
  const temporalCandidates = this.deps.scopeQueryAwarePaths(
10716
10720
  rawTemporal,
10717
10721
  recallNamespaces
@@ -11567,10 +11571,13 @@ var RecallSearchPipelineCoordinator = class {
11567
11571
  }
11568
11572
  promptTags = extractTagsFromPrompt(prompt);
11569
11573
  }
11570
- const [rawTemporal, rawTags] = await Promise.all([
11571
- temporalFromDate !== null ? queryByDateRangeAsync(this.deps.config.memoryDir, temporalFromDate) : Promise.resolve(null),
11572
- promptTags.length > 0 ? queryByTagsAsync(this.deps.config.memoryDir, promptTags) : Promise.resolve(null)
11573
- ]);
11574
+ const [rawTemporal, rawTags] = await readIndexSnapshotAsync(
11575
+ this.deps.config.memoryDir,
11576
+ () => Promise.all([
11577
+ temporalFromDate !== null ? queryByDateRangeAsync(this.deps.config.memoryDir, temporalFromDate) : Promise.resolve(null),
11578
+ promptTags.length > 0 ? queryByTagsAsync(this.deps.config.memoryDir, promptTags) : Promise.resolve(null)
11579
+ ])
11580
+ );
11574
11581
  const queryIntent = resolveConversationContextCapabilities(this.deps.config).intentRouting && prompt ? inferIntentFromText(prompt) : null;
11575
11582
  let temporalCandidates = null;
11576
11583
  let tagCandidates = null;
@@ -13565,7 +13572,7 @@ var PersistenceIndexCoordinator = class {
13565
13572
  const caps = resolveCapabilities(this.deps.config);
13566
13573
  if (!resolveIndexingCapabilities(this.deps.config).queryAwareIndexing && !caps.parallelRetrieval && !resolveRecallEnhancementCapabilities(this.deps.config).eventOrderRecall)
13567
13574
  return;
13568
- const needsFullRebuild = !indexesExist(this.deps.config.memoryDir);
13575
+ const needsFullRebuild = !await indexesExistAsync(this.deps.config.memoryDir);
13569
13576
  if (!needsFullRebuild && persistedIds.length === 0) return;
13570
13577
  try {
13571
13578
  const allMemories = needsFullRebuild && resolveNamespaceCapabilities(this.deps.config).namespaces ? await this.deps.readAllMemoriesForNamespaces(
@@ -13597,15 +13604,15 @@ var PersistenceIndexCoordinator = class {
13597
13604
  }
13598
13605
  }
13599
13606
  if (needsFullRebuild) {
13600
- clearIndexes(this.deps.config.memoryDir);
13607
+ await clearIndexesAsync(this.deps.config.memoryDir);
13601
13608
  if (entries.length > 0) {
13602
- indexMemoriesBatch(this.deps.config.memoryDir, entries);
13609
+ await indexMemoriesBatchAsync(this.deps.config.memoryDir, entries);
13603
13610
  }
13604
13611
  log.info(
13605
13612
  `temporal-index: bootstrapped from ${entries.length} active memories`
13606
13613
  );
13607
13614
  } else if (entries.length > 0) {
13608
- indexMemoriesBatch(this.deps.config.memoryDir, entries);
13615
+ await indexMemoriesBatchAsync(this.deps.config.memoryDir, entries);
13609
13616
  }
13610
13617
  } catch (err) {
13611
13618
  log.debug(`temporal-index update failed (non-fatal): ${err}`);
@@ -18068,6 +18075,295 @@ ${doc.content}` : doc.content,
18068
18075
  }
18069
18076
  };
18070
18077
 
18078
+ // src/relay/mission-fixture.ts
18079
+ var RELAY_DEMO_MISSION_ID = "checkout-token-recovery";
18080
+ var RELAY_DEMO_NAMESPACE = "relay-build-week";
18081
+ var sourceEvidence = {
18082
+ kind: "source",
18083
+ id: "source-checkout-contract",
18084
+ label: "Checkout token contract",
18085
+ locator: "fixture://checkout-service/src/token-policy.ts",
18086
+ capture: "fixture"
18087
+ };
18088
+ var testEvidence = {
18089
+ kind: "test",
18090
+ id: "test-checkout-contract",
18091
+ label: "Checkout integration contract",
18092
+ locator: "fixture://checkout-service/test/token-policy.test.ts",
18093
+ capture: "fixture"
18094
+ };
18095
+ var approvalEvidence = {
18096
+ kind: "approval",
18097
+ id: "approval-build-week-operator",
18098
+ label: "Human approval receipt",
18099
+ locator: "fixture://relay/approvals/correction-token-refresh.json",
18100
+ capture: "fixture"
18101
+ };
18102
+ var correctionEvidence = {
18103
+ kind: "correction",
18104
+ id: "correction-token-refresh",
18105
+ label: "Applied Remnic correction",
18106
+ locator: "fixture://remnic/corrections/correction-token-refresh.json",
18107
+ capture: "fixture"
18108
+ };
18109
+ function at(second) {
18110
+ return `2026-07-17T18:00:${String(second).padStart(2, "0")}.000Z`;
18111
+ }
18112
+ function createRelayMissionFixture() {
18113
+ return [
18114
+ {
18115
+ occurredAt: at(0),
18116
+ idempotencyKey: "fixture-001",
18117
+ payload: {
18118
+ kind: "mission_started",
18119
+ title: "The checkout token split",
18120
+ objective: "Resolve a conflicting token refresh policy and prove a cold agent acts on it.",
18121
+ runMode: "fixture",
18122
+ evidence: [sourceEvidence]
18123
+ }
18124
+ },
18125
+ {
18126
+ occurredAt: at(2),
18127
+ idempotencyKey: "fixture-002",
18128
+ payload: {
18129
+ kind: "agent_status",
18130
+ agentId: "agent-atlas",
18131
+ sessionId: "session-atlas",
18132
+ label: "Atlas",
18133
+ role: "Checkout implementation",
18134
+ status: "working",
18135
+ evidence: [sourceEvidence]
18136
+ }
18137
+ },
18138
+ {
18139
+ occurredAt: at(3),
18140
+ idempotencyKey: "fixture-003",
18141
+ payload: {
18142
+ kind: "agent_status",
18143
+ agentId: "agent-nova",
18144
+ sessionId: "session-nova",
18145
+ label: "Nova",
18146
+ role: "Integration verification",
18147
+ status: "working",
18148
+ evidence: [testEvidence]
18149
+ }
18150
+ },
18151
+ {
18152
+ occurredAt: at(6),
18153
+ idempotencyKey: "fixture-004",
18154
+ payload: {
18155
+ kind: "agent_output",
18156
+ agentId: "agent-atlas",
18157
+ sessionId: "session-atlas",
18158
+ outputId: "output-atlas-policy",
18159
+ summary: "Implemented a new token for every checkout retry.",
18160
+ evidence: [
18161
+ {
18162
+ kind: "agent_output",
18163
+ id: "output-atlas-policy",
18164
+ label: "Atlas one-shot output",
18165
+ locator: "fixture://codex/atlas/final-output.txt",
18166
+ capture: "fixture"
18167
+ }
18168
+ ]
18169
+ }
18170
+ },
18171
+ {
18172
+ occurredAt: at(7),
18173
+ idempotencyKey: "fixture-005",
18174
+ payload: {
18175
+ kind: "belief_observed",
18176
+ agentId: "agent-atlas",
18177
+ sessionId: "session-atlas",
18178
+ beliefId: "belief-new-token-every-request",
18179
+ decisionId: "decision-new-token-every-request",
18180
+ statement: "Mint a new checkout token for every request and retry.",
18181
+ confidence: 0.91,
18182
+ evidence: [
18183
+ {
18184
+ kind: "memory",
18185
+ id: "memory-stale-token-policy",
18186
+ label: "Stale project decision",
18187
+ locator: "fixture://remnic/memories/memory-stale-token-policy.md",
18188
+ capture: "fixture"
18189
+ }
18190
+ ]
18191
+ }
18192
+ },
18193
+ {
18194
+ occurredAt: at(9),
18195
+ idempotencyKey: "fixture-006",
18196
+ payload: {
18197
+ kind: "agent_output",
18198
+ agentId: "agent-nova",
18199
+ sessionId: "session-nova",
18200
+ outputId: "output-nova-policy",
18201
+ summary: "The contract requires one token per checkout session, refreshed only after expiry.",
18202
+ evidence: [
18203
+ {
18204
+ kind: "agent_output",
18205
+ id: "output-nova-policy",
18206
+ label: "Nova one-shot output",
18207
+ locator: "fixture://codex/nova/final-output.txt",
18208
+ capture: "fixture"
18209
+ },
18210
+ sourceEvidence
18211
+ ]
18212
+ }
18213
+ },
18214
+ {
18215
+ occurredAt: at(10),
18216
+ idempotencyKey: "fixture-007",
18217
+ payload: {
18218
+ kind: "belief_observed",
18219
+ agentId: "agent-nova",
18220
+ sessionId: "session-nova",
18221
+ beliefId: "belief-refresh-after-expiry",
18222
+ decisionId: "decision-refresh-after-expiry",
18223
+ statement: "Reuse the checkout-session token and refresh it only after expiry.",
18224
+ confidence: 0.98,
18225
+ evidence: [sourceEvidence]
18226
+ }
18227
+ },
18228
+ {
18229
+ occurredAt: at(12),
18230
+ idempotencyKey: "fixture-008",
18231
+ payload: {
18232
+ kind: "conflict_detected",
18233
+ conflictId: "conflict-token-lifecycle",
18234
+ decisionIds: ["decision-refresh-after-expiry", "decision-new-token-every-request"],
18235
+ agentIds: ["agent-nova", "agent-atlas"],
18236
+ summary: "The agents disagree on whether retries reuse or rotate the checkout token.",
18237
+ evidence: [sourceEvidence, testEvidence]
18238
+ }
18239
+ },
18240
+ {
18241
+ occurredAt: at(14),
18242
+ idempotencyKey: "fixture-009",
18243
+ payload: {
18244
+ kind: "test_result",
18245
+ testId: "test-before-correction",
18246
+ decisionId: "decision-new-token-every-request",
18247
+ command: "npm test -- token-policy.test.ts",
18248
+ status: "failed",
18249
+ summary: "Retry minted a second token instead of reusing the session token.",
18250
+ durationMs: 418,
18251
+ evidence: [testEvidence]
18252
+ }
18253
+ },
18254
+ {
18255
+ occurredAt: at(18),
18256
+ idempotencyKey: "fixture-010",
18257
+ payload: {
18258
+ kind: "correction_proposed",
18259
+ correctionId: "correction-token-refresh",
18260
+ conflictId: "conflict-token-lifecycle",
18261
+ proposedDecisionId: "decision-refresh-after-expiry",
18262
+ supersedesDecisionIds: ["decision-new-token-every-request"],
18263
+ statement: "Reuse the checkout-session token and refresh it only after expiry.",
18264
+ rationale: "The implementation contract and failing integration test agree on session reuse.",
18265
+ proposedBy: "agent-resolver",
18266
+ evidence: [sourceEvidence, testEvidence]
18267
+ }
18268
+ },
18269
+ {
18270
+ occurredAt: at(21),
18271
+ idempotencyKey: "fixture-011",
18272
+ payload: {
18273
+ kind: "correction_approved",
18274
+ correctionId: "correction-token-refresh",
18275
+ approvedBy: {
18276
+ kind: "human",
18277
+ id: "operator-build-week",
18278
+ label: "Build Week operator"
18279
+ },
18280
+ note: "Approve the source-grounded policy and retire the stale decision.",
18281
+ evidence: [approvalEvidence]
18282
+ }
18283
+ },
18284
+ {
18285
+ occurredAt: at(23),
18286
+ idempotencyKey: "fixture-012",
18287
+ payload: {
18288
+ kind: "decision_superseded",
18289
+ decisionId: "decision-new-token-every-request",
18290
+ replacementDecisionId: "decision-refresh-after-expiry",
18291
+ correctionId: "correction-token-refresh",
18292
+ evidence: [correctionEvidence]
18293
+ }
18294
+ },
18295
+ {
18296
+ occurredAt: at(27),
18297
+ idempotencyKey: "fixture-013",
18298
+ payload: {
18299
+ kind: "recall_observed",
18300
+ agentId: "agent-orbit",
18301
+ sessionId: "session-orbit-cold",
18302
+ recallReceiptId: "recall-orbit-cold",
18303
+ decisionId: "decision-refresh-after-expiry",
18304
+ query: "What token lifecycle must checkout retries follow?",
18305
+ capturedAtAction: true,
18306
+ evidence: [
18307
+ {
18308
+ kind: "recall_audit",
18309
+ id: "recall-orbit-cold",
18310
+ label: "Cold-start recall audit",
18311
+ locator: "fixture://remnic/recall-audit/recall-orbit-cold.json",
18312
+ capture: "fixture"
18313
+ }
18314
+ ]
18315
+ }
18316
+ },
18317
+ {
18318
+ occurredAt: at(29),
18319
+ idempotencyKey: "fixture-014",
18320
+ payload: {
18321
+ kind: "propagation_verified",
18322
+ agentId: "agent-orbit",
18323
+ sessionId: "session-orbit-cold",
18324
+ correctionId: "correction-token-refresh",
18325
+ decisionId: "decision-refresh-after-expiry",
18326
+ recallReceiptId: "recall-orbit-cold",
18327
+ staleDecisionAbsent: true,
18328
+ evidence: [
18329
+ {
18330
+ kind: "recall_audit",
18331
+ id: "recall-orbit-cold",
18332
+ label: "Cold-start recall audit",
18333
+ locator: "fixture://remnic/recall-audit/recall-orbit-cold.json",
18334
+ capture: "fixture"
18335
+ }
18336
+ ]
18337
+ }
18338
+ },
18339
+ {
18340
+ occurredAt: at(34),
18341
+ idempotencyKey: "fixture-015",
18342
+ payload: {
18343
+ kind: "test_result",
18344
+ testId: "test-after-correction",
18345
+ decisionId: "decision-refresh-after-expiry",
18346
+ correctionId: "correction-token-refresh",
18347
+ command: "npm test -- token-policy.test.ts",
18348
+ status: "passed",
18349
+ summary: "The cold agent reused the session token and the integration contract passed.",
18350
+ durationMs: 391,
18351
+ evidence: [testEvidence, correctionEvidence]
18352
+ }
18353
+ },
18354
+ {
18355
+ occurredAt: at(36),
18356
+ idempotencyKey: "fixture-016",
18357
+ payload: {
18358
+ kind: "mission_completed",
18359
+ outcome: "recovered",
18360
+ summary: "One approved correction reached a cold agent and changed the observable outcome.",
18361
+ evidence: [testEvidence, approvalEvidence]
18362
+ }
18363
+ }
18364
+ ];
18365
+ }
18366
+
18071
18367
  // src/coding/review-context.ts
18072
18368
  var REVIEW_KEYWORD_PATTERNS = [
18073
18369
  /\breview\b/i,
@@ -23267,6 +23563,9 @@ export {
23267
23563
  resolvePersistedMemoryRelativePath,
23268
23564
  deriveTopicsFromExtraction,
23269
23565
  buildProcedureRecallSection,
23566
+ RELAY_DEMO_MISSION_ID,
23567
+ RELAY_DEMO_NAMESPACE,
23568
+ createRelayMissionFixture,
23270
23569
  isReviewPrompt,
23271
23570
  parseTouchedFiles,
23272
23571
  rankReviewCandidates,
@@ -23362,4 +23661,4 @@ export {
23362
23661
  blendGraphExpandedRecallScore,
23363
23662
  Orchestrator
23364
23663
  };
23365
- //# sourceMappingURL=chunk-DLPXS7BE.js.map
23664
+ //# sourceMappingURL=chunk-5U65RIVI.js.map