@remnic/core 9.3.737 → 9.3.738

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-boundary.js +10 -10
  2. package/dist/access-cli.js +26 -26
  3. package/dist/access-http.js +15 -15
  4. package/dist/access-mcp.js +14 -14
  5. package/dist/access-operations-batch.js +12 -12
  6. package/dist/access-operations.js +13 -13
  7. package/dist/access-service.js +9 -9
  8. package/dist/active-memory-bridge.js +3 -3
  9. package/dist/buffer.js +2 -1
  10. package/dist/capabilities.d.ts +98 -1
  11. package/dist/capabilities.js +7 -1
  12. package/dist/{chunk-G54IDCD3.js → chunk-23PLOBWT.js} +30 -27
  13. package/dist/chunk-23PLOBWT.js.map +1 -0
  14. package/dist/{chunk-K3Y2SJTN.js → chunk-56LP72AD.js} +6 -6
  15. package/dist/{chunk-ZBZ4XULO.js → chunk-66RZ4EIT.js} +3 -3
  16. package/dist/{chunk-IPI45Q4S.js → chunk-75PDC7VT.js} +9 -8
  17. package/dist/chunk-75PDC7VT.js.map +1 -0
  18. package/dist/{chunk-GB2FZOWB.js → chunk-7B7IPPN5.js} +5 -5
  19. package/dist/{chunk-QNTLWH3T.js → chunk-A7INTIC5.js} +3 -3
  20. package/dist/{chunk-FLPKEMSO.js → chunk-AKKFHN3I.js} +2 -2
  21. package/dist/{chunk-AAIHDIMD.js → chunk-BHJAMSVC.js} +7 -7
  22. package/dist/{chunk-BXPG5AVX.js → chunk-BHQQVUEQ.js} +6 -6
  23. package/dist/{chunk-HFXZIF3V.js → chunk-BVG2IZOB.js} +3 -3
  24. package/dist/{chunk-NDKW67ER.js → chunk-C53JDEH3.js} +4 -4
  25. package/dist/{chunk-AESC5OQJ.js → chunk-CKHPUOAP.js} +2 -2
  26. package/dist/{chunk-OYHYBHHI.js → chunk-DS3FZ7GS.js} +4 -4
  27. package/dist/{chunk-PB5YON2G.js → chunk-EKQ3LWBM.js} +77 -74
  28. package/dist/chunk-EKQ3LWBM.js.map +1 -0
  29. package/dist/{chunk-UO6MPN77.js → chunk-EU543UDC.js} +10 -9
  30. package/dist/chunk-EU543UDC.js.map +1 -0
  31. package/dist/{chunk-E4LYJ7PY.js → chunk-IFCM6OLK.js} +6 -6
  32. package/dist/{chunk-5BOQNB2K.js → chunk-JQSP7YBJ.js} +3 -3
  33. package/dist/{chunk-2T2N7ISV.js → chunk-L3TYGUTH.js} +3 -3
  34. package/dist/{chunk-AB2E5DCN.js → chunk-MAU7DFCJ.js} +2 -2
  35. package/dist/{chunk-P6VLG7KE.js → chunk-N2O23WYA.js} +2 -2
  36. package/dist/{chunk-HYNHLBKA.js → chunk-OQQRWPFZ.js} +5 -2
  37. package/dist/chunk-OQQRWPFZ.js.map +1 -0
  38. package/dist/{chunk-IXGXALRV.js → chunk-QTJOORGN.js} +2 -2
  39. package/dist/{chunk-JWDE7OVJ.js → chunk-RJBW4EOU.js} +46 -2
  40. package/dist/{chunk-JWDE7OVJ.js.map → chunk-RJBW4EOU.js.map} +1 -1
  41. package/dist/{chunk-AE7NTZ75.js → chunk-TNLXCSXV.js} +3 -3
  42. package/dist/{chunk-NNJKEAP2.js → chunk-VRBBZH4U.js} +4 -4
  43. package/dist/{chunk-VOEVVIP3.js → chunk-W2FBVBQ4.js} +4 -4
  44. package/dist/{chunk-WNGXQMRI.js → chunk-WFNH4UDF.js} +5 -2
  45. package/dist/chunk-WFNH4UDF.js.map +1 -0
  46. package/dist/{chunk-CHJIWG2H.js → chunk-WVAEIKUY.js} +2 -2
  47. package/dist/{chunk-FF36YNKY.js → chunk-XIQAOGAA.js} +11 -10
  48. package/dist/chunk-XIQAOGAA.js.map +1 -0
  49. package/dist/{chunk-HLPYL6LC.js → chunk-Y5OOHER4.js} +14 -12
  50. package/dist/chunk-Y5OOHER4.js.map +1 -0
  51. package/dist/{chunk-GYICIICQ.js → chunk-YF2MMBKA.js} +9 -7
  52. package/dist/chunk-YF2MMBKA.js.map +1 -0
  53. package/dist/{chunk-IX4L7E5G.js → chunk-YXOXAQ5Y.js} +2 -2
  54. package/dist/cli.js +21 -21
  55. package/dist/compounding/engine.js +2 -2
  56. package/dist/contradiction/index.js +2 -2
  57. package/dist/{contradiction-scan-2B4AE4TI.js → contradiction-scan-CWO3LIWV.js} +3 -3
  58. package/dist/embedding-fallback.js +2 -2
  59. package/dist/entity-retrieval.js +2 -2
  60. package/dist/explicit-capture.js +2 -2
  61. package/dist/extraction.js +3 -3
  62. package/dist/{first-start-migration-2RQYDIZ7.js → first-start-migration-5DXD3TF2.js} +2 -2
  63. package/dist/index.js +32 -32
  64. package/dist/local-llm.js +2 -2
  65. package/dist/namespaces/migrate.js +6 -6
  66. package/dist/namespaces/principal.js +2 -2
  67. package/dist/namespaces/search.js +4 -4
  68. package/dist/namespaces/storage.js +2 -2
  69. package/dist/operator-toolkit.js +11 -11
  70. package/dist/orchestration/compression-guideline-coordinator.js +2 -2
  71. package/dist/orchestration/maintenance.js +6 -6
  72. package/dist/orchestrator.js +21 -21
  73. package/dist/schemas.d.ts +22 -22
  74. package/dist/search/embed-helper.js +2 -2
  75. package/dist/search/factory.js +3 -3
  76. package/dist/search/index.js +3 -3
  77. package/dist/summarizer.js +3 -3
  78. package/dist/{tier-stats-KPDIISG7.js → tier-stats-QID73BBB.js} +2 -2
  79. package/dist/transfer/types.d.ts +12 -12
  80. package/package.json +2 -2
  81. package/src/access-service.ts +7 -8
  82. package/src/buffer.ts +2 -1
  83. package/src/capabilities.test.ts +137 -0
  84. package/src/capabilities.ts +209 -0
  85. package/src/cli/creation-ledger-commands.ts +3 -3
  86. package/src/cli/research-status-commands.ts +4 -4
  87. package/src/cli.ts +9 -10
  88. package/src/compounding/engine.ts +7 -7
  89. package/src/correction/correction-access-wiring.ts +3 -2
  90. package/src/extraction.ts +8 -10
  91. package/src/operator-toolkit.ts +6 -7
  92. package/src/orchestration/entity-synthesis-coordinator.ts +2 -1
  93. package/src/orchestration/maintenance.ts +5 -7
  94. package/src/orchestration/semantic-consolidation-coordinator.ts +2 -2
  95. package/src/orchestrator.ts +49 -50
  96. package/dist/chunk-FF36YNKY.js.map +0 -1
  97. package/dist/chunk-G54IDCD3.js.map +0 -1
  98. package/dist/chunk-GYICIICQ.js.map +0 -1
  99. package/dist/chunk-HLPYL6LC.js.map +0 -1
  100. package/dist/chunk-HYNHLBKA.js.map +0 -1
  101. package/dist/chunk-IPI45Q4S.js.map +0 -1
  102. package/dist/chunk-PB5YON2G.js.map +0 -1
  103. package/dist/chunk-UO6MPN77.js.map +0 -1
  104. package/dist/chunk-WNGXQMRI.js.map +0 -1
  105. /package/dist/{chunk-K3Y2SJTN.js.map → chunk-56LP72AD.js.map} +0 -0
  106. /package/dist/{chunk-ZBZ4XULO.js.map → chunk-66RZ4EIT.js.map} +0 -0
  107. /package/dist/{chunk-GB2FZOWB.js.map → chunk-7B7IPPN5.js.map} +0 -0
  108. /package/dist/{chunk-QNTLWH3T.js.map → chunk-A7INTIC5.js.map} +0 -0
  109. /package/dist/{chunk-FLPKEMSO.js.map → chunk-AKKFHN3I.js.map} +0 -0
  110. /package/dist/{chunk-AAIHDIMD.js.map → chunk-BHJAMSVC.js.map} +0 -0
  111. /package/dist/{chunk-BXPG5AVX.js.map → chunk-BHQQVUEQ.js.map} +0 -0
  112. /package/dist/{chunk-HFXZIF3V.js.map → chunk-BVG2IZOB.js.map} +0 -0
  113. /package/dist/{chunk-NDKW67ER.js.map → chunk-C53JDEH3.js.map} +0 -0
  114. /package/dist/{chunk-AESC5OQJ.js.map → chunk-CKHPUOAP.js.map} +0 -0
  115. /package/dist/{chunk-OYHYBHHI.js.map → chunk-DS3FZ7GS.js.map} +0 -0
  116. /package/dist/{chunk-E4LYJ7PY.js.map → chunk-IFCM6OLK.js.map} +0 -0
  117. /package/dist/{chunk-5BOQNB2K.js.map → chunk-JQSP7YBJ.js.map} +0 -0
  118. /package/dist/{chunk-2T2N7ISV.js.map → chunk-L3TYGUTH.js.map} +0 -0
  119. /package/dist/{chunk-AB2E5DCN.js.map → chunk-MAU7DFCJ.js.map} +0 -0
  120. /package/dist/{chunk-P6VLG7KE.js.map → chunk-N2O23WYA.js.map} +0 -0
  121. /package/dist/{chunk-IXGXALRV.js.map → chunk-QTJOORGN.js.map} +0 -0
  122. /package/dist/{chunk-AE7NTZ75.js.map → chunk-TNLXCSXV.js.map} +0 -0
  123. /package/dist/{chunk-NNJKEAP2.js.map → chunk-VRBBZH4U.js.map} +0 -0
  124. /package/dist/{chunk-VOEVVIP3.js.map → chunk-W2FBVBQ4.js.map} +0 -0
  125. /package/dist/{chunk-CHJIWG2H.js.map → chunk-WVAEIKUY.js.map} +0 -0
  126. /package/dist/{chunk-IX4L7E5G.js.map → chunk-YXOXAQ5Y.js.map} +0 -0
  127. /package/dist/{contradiction-scan-2B4AE4TI.js.map → contradiction-scan-CWO3LIWV.js.map} +0 -0
  128. /package/dist/{first-start-migration-2RQYDIZ7.js.map → first-start-migration-5DXD3TF2.js.map} +0 -0
  129. /package/dist/{tier-stats-KPDIISG7.js.map → tier-stats-QID73BBB.js.map} +0 -0
@@ -7,10 +7,10 @@ import {
7
7
  } from "./chunk-OZECYVGI.js";
8
8
  import {
9
9
  CompressionGuidelineCoordinator
10
- } from "./chunk-IXGXALRV.js";
10
+ } from "./chunk-QTJOORGN.js";
11
11
  import {
12
12
  MaintenanceScheduler
13
- } from "./chunk-GYICIICQ.js";
13
+ } from "./chunk-YF2MMBKA.js";
14
14
  import {
15
15
  runPeerProfileReasoner
16
16
  } from "./chunk-I74SUMNI.js";
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  CompoundingEngine,
31
31
  defaultTierMigrationCycleBudget
32
- } from "./chunk-IPI45Q4S.js";
32
+ } from "./chunk-75PDC7VT.js";
33
33
  import {
34
34
  SharedContextManager
35
35
  } from "./chunk-UFS7OXGL.js";
@@ -63,7 +63,7 @@ import {
63
63
  } from "./chunk-UHGBNIOS.js";
64
64
  import {
65
65
  HourlySummarizer
66
- } from "./chunk-HFXZIF3V.js";
66
+ } from "./chunk-BVG2IZOB.js";
67
67
  import {
68
68
  buildTargetedFactRecallSection,
69
69
  shouldRecallTargetedFactEvidence
@@ -160,7 +160,7 @@ import {
160
160
  } from "./chunk-LTHVM4XN.js";
161
161
  import {
162
162
  ExtractionEngine
163
- } from "./chunk-FF36YNKY.js";
163
+ } from "./chunk-XIQAOGAA.js";
164
164
  import {
165
165
  parseMemoryActionEligibilityContext
166
166
  } from "./chunk-5GSUBCZM.js";
@@ -169,7 +169,7 @@ import {
169
169
  } from "./chunk-PWFWCGOO.js";
170
170
  import {
171
171
  LocalLlmClient
172
- } from "./chunk-IX4L7E5G.js";
172
+ } from "./chunk-YXOXAQ5Y.js";
173
173
  import {
174
174
  buildFocusedListRecallSection,
175
175
  shouldRecallFocusedListEvidence
@@ -193,12 +193,12 @@ import {
193
193
  } from "./chunk-Q6IP2ARR.js";
194
194
  import {
195
195
  EmbeddingFallback
196
- } from "./chunk-CHJIWG2H.js";
196
+ } from "./chunk-WVAEIKUY.js";
197
197
  import {
198
198
  buildEntityRecallSection,
199
199
  entityRecentTranscriptLookbackHours,
200
200
  readRecentEntityTranscriptEntries
201
- } from "./chunk-AESC5OQJ.js";
201
+ } from "./chunk-CKHPUOAP.js";
202
202
  import {
203
203
  RoutingRulesStore
204
204
  } from "./chunk-WIWPSQYU.js";
@@ -228,14 +228,14 @@ import {
228
228
  import {
229
229
  runNamespaceMaintenanceFanout,
230
230
  summarizeNamespaceMaintenanceHealth
231
- } from "./chunk-AE7NTZ75.js";
231
+ } from "./chunk-TNLXCSXV.js";
232
232
  import {
233
233
  NamespaceCatalog,
234
234
  planNamespaceMaintenance
235
- } from "./chunk-BXPG5AVX.js";
235
+ } from "./chunk-BHQQVUEQ.js";
236
236
  import {
237
237
  NamespaceStorageRouter
238
- } from "./chunk-NNJKEAP2.js";
238
+ } from "./chunk-VRBBZH4U.js";
239
239
  import {
240
240
  searchHarmonicRetrieval
241
241
  } from "./chunk-AV5ZEH4M.js";
@@ -292,7 +292,7 @@ import {
292
292
  } from "./chunk-UQ7RN5HK.js";
293
293
  import {
294
294
  SmartBuffer
295
- } from "./chunk-HYNHLBKA.js";
295
+ } from "./chunk-OQQRWPFZ.js";
296
296
  import {
297
297
  isDisagreementPrompt
298
298
  } from "./chunk-H3FZVNRN.js";
@@ -311,7 +311,7 @@ import {
311
311
  clusterByKey,
312
312
  createCorrectionService,
313
313
  detectPassiveCorrections
314
- } from "./chunk-WNGXQMRI.js";
314
+ } from "./chunk-WFNH4UDF.js";
315
315
  import {
316
316
  listTrustZoneRecords,
317
317
  searchTrustZoneRecords
@@ -333,14 +333,14 @@ import {
333
333
  resolveNamespaceFromStorageDir,
334
334
  resolveScopePlan,
335
335
  resolveScopeProfilePlan
336
- } from "./chunk-GB2FZOWB.js";
336
+ } from "./chunk-7B7IPPN5.js";
337
337
  import {
338
338
  NamespaceSearchRouter
339
- } from "./chunk-ZBZ4XULO.js";
339
+ } from "./chunk-66RZ4EIT.js";
340
340
  import {
341
341
  createConversationIndexRuntime,
342
342
  createSearchBackend
343
- } from "./chunk-5BOQNB2K.js";
343
+ } from "./chunk-JQSP7YBJ.js";
344
344
  import {
345
345
  NoopSearchBackend
346
346
  } from "./chunk-CYEPCZN5.js";
@@ -363,7 +363,7 @@ import {
363
363
  } from "./chunk-QDW3E4RD.js";
364
364
  import {
365
365
  shouldSkipImplicitExtraction
366
- } from "./chunk-NDKW67ER.js";
366
+ } from "./chunk-C53JDEH3.js";
367
367
  import {
368
368
  searchCausalTrajectories
369
369
  } from "./chunk-SQNED75R.js";
@@ -465,10 +465,15 @@ import {
465
465
  defaultNamespaceForPrincipal,
466
466
  recallNamespacesForPrincipal,
467
467
  resolvePrincipal
468
- } from "./chunk-OYHYBHHI.js";
468
+ } from "./chunk-DS3FZ7GS.js";
469
+ import {
470
+ isSafeRouteNamespace,
471
+ selectRouteRule
472
+ } from "./chunk-U3PN77QT.js";
469
473
  import {
470
474
  resolveCapabilities,
471
475
  resolveCompressionCapabilities,
476
+ resolveConsolidationCapabilities,
472
477
  resolveCreationMemoryCapabilities,
473
478
  resolveEvalCapabilities,
474
479
  resolveGraphConstructionCapabilities,
@@ -478,14 +483,12 @@ import {
478
483
  resolveMemoryLifecycleCapabilities,
479
484
  resolveNamespaceCapabilities,
480
485
  resolveObjectiveStateCapabilities,
486
+ resolvePresentationCapabilities,
481
487
  resolveQmdCapabilities,
488
+ resolveRecallAuxiliaryCapabilities,
482
489
  resolveSecurityCapabilities,
483
490
  resolveUtilityLearningCapabilities
484
- } from "./chunk-JWDE7OVJ.js";
485
- import {
486
- isSafeRouteNamespace,
487
- selectRouteRule
488
- } from "./chunk-U3PN77QT.js";
491
+ } from "./chunk-RJBW4EOU.js";
489
492
  import {
490
493
  sanitizeMemoryContent
491
494
  } from "./chunk-5GKPFL3S.js";
@@ -902,7 +905,7 @@ var SemanticConsolidationCoordinator = class {
902
905
  errors: 0,
903
906
  clusters: []
904
907
  };
905
- if (!this.config.semanticConsolidationEnabled && !options?.force) {
908
+ if (!resolveConsolidationCapabilities(this.config).semanticConsolidation && !options?.force) {
906
909
  log.debug("[semantic-consolidation] disabled in config");
907
910
  return result;
908
911
  }
@@ -1515,7 +1518,7 @@ var EntitySynthesisCoordinator = class {
1515
1518
  */
1516
1519
  async processQueue(namespace, maxEntities = 5) {
1517
1520
  const { config } = this.deps;
1518
- if (!config.entitySummaryEnabled || maxEntities <= 0 || config.entitySynthesisMaxTokens <= 0) return 0;
1521
+ if (!resolvePresentationCapabilities(config).entitySummary || maxEntities <= 0 || config.entitySynthesisMaxTokens <= 0) return 0;
1519
1522
  const storage = await this.deps.getStorage(namespace);
1520
1523
  const queued = await storage.refreshEntitySynthesisQueue();
1521
1524
  let processed = 0;
@@ -4625,7 +4628,7 @@ var Orchestrator = class _Orchestrator {
4625
4628
  this.contentHashIndexesByStorageDir.clear();
4626
4629
  }
4627
4630
  async contentHashIndexForStorage(targetStorage) {
4628
- if (!this.config.factDeduplicationEnabled) return null;
4631
+ if (!resolveRecallAuxiliaryCapabilities(this.config).factDeduplication) return null;
4629
4632
  if (targetStorage.dir === this.storage.dir) {
4630
4633
  if (!this.contentHashIndex) {
4631
4634
  this.contentHashIndex = this.storage.createContentHashIndex();
@@ -4782,7 +4785,7 @@ var Orchestrator = class _Orchestrator {
4782
4785
  this.storage.citationTemplate = config.inlineSourceAttributionFormat;
4783
4786
  if (config.defaultNamespace) this.storageRouter.bindCatalogWriteHook(this.storage, config.defaultNamespace);
4784
4787
  this.storage.setVersioningConfig({
4785
- enabled: config.versioningEnabled,
4788
+ enabled: resolveRecallAuxiliaryCapabilities(config).versioning,
4786
4789
  maxVersionsPerPage: config.versioningMaxPerPage,
4787
4790
  sidecarDir: config.versioningSidecarDir
4788
4791
  });
@@ -4798,7 +4801,7 @@ var Orchestrator = class _Orchestrator {
4798
4801
  semanticMatch: tombstonesSemanticMatch,
4799
4802
  semanticThreshold: tombstonesSemanticThreshold
4800
4803
  });
4801
- if (config.secureStoreEnabled) {
4804
+ if (resolveRecallAuxiliaryCapabilities(config).secureStore) {
4802
4805
  this.storage.setSecureStoreRequired(true);
4803
4806
  const storeId = secureStoreDir(config.memoryDir);
4804
4807
  const existingKey = keyring_exports.getKey(storeId);
@@ -4827,7 +4830,7 @@ var Orchestrator = class _Orchestrator {
4827
4830
  this.conversationFaiss = conversationIndexRuntime.faiss;
4828
4831
  this.conversationIndexBackend = conversationIndexRuntime.backend;
4829
4832
  this.sharedContext = config.sharedContextEnabled ? new SharedContextManager(config) : void 0;
4830
- this.compounding = config.compoundingEnabled ? new CompoundingEngine(config, this.storage) : void 0;
4833
+ this.compounding = resolveConsolidationCapabilities(config).compounding ? new CompoundingEngine(config, this.storage) : void 0;
4831
4834
  this.buffer = new SmartBuffer(config, this.storage);
4832
4835
  this.transcript = new TranscriptManager(config);
4833
4836
  this.conversationIndexDir = path4.join(
@@ -4972,7 +4975,7 @@ var Orchestrator = class _Orchestrator {
4972
4975
  this.boxBuilders.set(
4973
4976
  dir,
4974
4977
  new BoxBuilder(dir, {
4975
- memoryBoxesEnabled: this.config.memoryBoxesEnabled,
4978
+ memoryBoxesEnabled: resolvePresentationCapabilities(this.config).memoryBoxes,
4976
4979
  traceWeaverEnabled: this.config.traceWeaverEnabled,
4977
4980
  boxTopicShiftThreshold: this.config.boxTopicShiftThreshold,
4978
4981
  boxTimeGapMs: this.config.boxTimeGapMs,
@@ -5219,7 +5222,7 @@ var Orchestrator = class _Orchestrator {
5219
5222
  memoryUtilityLearningEnabled: resolveUtilityLearningCapabilities(this.config).memoryUtilityLearning,
5220
5223
  promotionByOutcomeEnabled: resolveUtilityLearningCapabilities(this.config).promotionByOutcome
5221
5224
  });
5222
- if (this.config.factDeduplicationEnabled) {
5225
+ if (resolveRecallAuxiliaryCapabilities(this.config).factDeduplication) {
5223
5226
  this.contentHashIndex = this.storage.createContentHashIndex();
5224
5227
  await this.contentHashIndex.load();
5225
5228
  log.info(
@@ -5242,7 +5245,7 @@ var Orchestrator = class _Orchestrator {
5242
5245
  );
5243
5246
  this.buffer.resetToEmpty();
5244
5247
  }
5245
- if (this.config.compactionResetEnabled) {
5248
+ if (resolveRecallAuxiliaryCapabilities(this.config).compactionReset) {
5246
5249
  try {
5247
5250
  const wsDir = this.config.workspaceDir || defaultWorkspaceDir();
5248
5251
  const files = await readdir(wsDir).catch(() => []);
@@ -5391,7 +5394,7 @@ var Orchestrator = class _Orchestrator {
5391
5394
  await Promise.all(warmupPromises);
5392
5395
  if (signal.aborted) return;
5393
5396
  const cacheWarmups = [];
5394
- if (this.config.knowledgeIndexEnabled) {
5397
+ if (resolveRecallAuxiliaryCapabilities(this.config).knowledgeIndex) {
5395
5398
  cacheWarmups.push(
5396
5399
  (async () => {
5397
5400
  try {
@@ -5443,7 +5446,7 @@ var Orchestrator = class _Orchestrator {
5443
5446
  if (signal.aborted) return;
5444
5447
  if (lifecycleCaps.lifecyclePolicy && resolveQmdCapabilities(this.config).qmdTierMigration) {
5445
5448
  try {
5446
- const { runFirstStartMigration } = await import("./first-start-migration-2RQYDIZ7.js");
5449
+ const { runFirstStartMigration } = await import("./first-start-migration-5DXD3TF2.js");
5447
5450
  const result = await runFirstStartMigration({
5448
5451
  storage: this.storage,
5449
5452
  config: this.config,
@@ -5617,7 +5620,7 @@ var Orchestrator = class _Orchestrator {
5617
5620
  */
5618
5621
  async runPatternReinforcement(options = {}) {
5619
5622
  const cadenceKey = options.namespace ?? "";
5620
- if (!this.config.patternReinforcementEnabled) {
5623
+ if (!resolveConsolidationCapabilities(this.config).patternReinforcement) {
5621
5624
  return { ran: false, skippedReason: "disabled", namespace: cadenceKey };
5622
5625
  }
5623
5626
  const cadence = this.config.patternReinforcementCadenceMs;
@@ -5658,7 +5661,7 @@ var Orchestrator = class _Orchestrator {
5658
5661
  }
5659
5662
  return result.result ? { itemCount: result.result.clustersFound } : { itemCount: 0 };
5660
5663
  },
5661
- { enabled: this.config.patternReinforcementEnabled }
5664
+ { enabled: resolveConsolidationCapabilities(this.config).patternReinforcement }
5662
5665
  );
5663
5666
  }
5664
5667
  /**
@@ -5698,7 +5701,7 @@ var Orchestrator = class _Orchestrator {
5698
5701
  });
5699
5702
  return { itemCount: result.clustersFound };
5700
5703
  },
5701
- { enabled: this.config.semanticConsolidationEnabled }
5704
+ { enabled: resolveConsolidationCapabilities(this.config).semanticConsolidation }
5702
5705
  );
5703
5706
  }
5704
5707
  /**
@@ -6582,7 +6585,7 @@ ${r.snippet.trim()}
6582
6585
  log.warn("recall: init gate timed out \u2014 proceeding without full init");
6583
6586
  }
6584
6587
  }
6585
- if (this.config.secureStoreEnabled && !this.storage.isSecureStoreUnlocked()) {
6588
+ if (resolveRecallAuxiliaryCapabilities(this.config).secureStore && !this.storage.isSecureStoreUnlocked()) {
6586
6589
  const lockedMsg = "[secure-store locked] Memory store is encrypted and locked. Unlock the secure-store inside this daemon process, or restart the daemon through a secure-store aware launcher that installs the key.";
6587
6590
  log.warn("recall blocked: secure-store is locked");
6588
6591
  return lockedMsg;
@@ -6686,7 +6689,7 @@ ${r.snippet.trim()}
6686
6689
  });
6687
6690
  const observationNamespaces = observationScopePlan.readNamespaces;
6688
6691
  const observationQueryPolicy = buildRecallQueryPolicy(prompt, sessionKey, {
6689
- cronRecallPolicyEnabled: this.config.cronRecallPolicyEnabled,
6692
+ cronRecallPolicyEnabled: resolveRecallAuxiliaryCapabilities(this.config).cronRecallPolicy,
6690
6693
  cronRecallNormalizedQueryMaxChars: this.config.cronRecallNormalizedQueryMaxChars,
6691
6694
  cronRecallInstructionHeavyTokenCap: this.effectiveCronRecallInstructionHeavyTokenCap(),
6692
6695
  cronConversationRecallMode: this.config.cronConversationRecallMode
@@ -7718,7 +7721,7 @@ ${r.snippet.trim()}
7718
7721
  const traceId = createHash2("sha256").update(`${sessionKey ?? "default"}:${recallStart}:${promptHash}`).digest("hex").slice(0, 16);
7719
7722
  const sectionBuckets = /* @__PURE__ */ new Map();
7720
7723
  const queryPolicy = buildRecallQueryPolicy(prompt, sessionKey, {
7721
- cronRecallPolicyEnabled: this.config.cronRecallPolicyEnabled,
7724
+ cronRecallPolicyEnabled: resolveRecallAuxiliaryCapabilities(this.config).cronRecallPolicy,
7722
7725
  cronRecallNormalizedQueryMaxChars: this.config.cronRecallNormalizedQueryMaxChars,
7723
7726
  cronRecallInstructionHeavyTokenCap: this.effectiveCronRecallInstructionHeavyTokenCap(),
7724
7727
  cronConversationRecallMode: this.config.cronConversationRecallMode
@@ -7803,7 +7806,7 @@ ${r.snippet.trim()}
7803
7806
  }
7804
7807
  return limit;
7805
7808
  })() : 0;
7806
- const recallHeadroom = this.config.verbatimArtifactsEnabled ? Math.max(12, this.config.verbatimArtifactsMaxRecall * 4) : 12;
7809
+ const recallHeadroom = resolvePresentationCapabilities(this.config).verbatimArtifacts ? Math.max(12, this.config.verbatimArtifactsMaxRecall * 4) : 12;
7807
7810
  const computedFetchLimit = recallResultLimit === 0 ? 0 : Math.max(
7808
7811
  recallResultLimit,
7809
7812
  Math.min(200, recallResultLimit + recallHeadroom)
@@ -7811,7 +7814,7 @@ ${r.snippet.trim()}
7811
7814
  const qmdFetchLimit = computedFetchLimit;
7812
7815
  const qmdHybridFetchLimit = computeQmdHybridFetchLimit(
7813
7816
  qmdFetchLimit,
7814
- this.config.verbatimArtifactsEnabled,
7817
+ resolvePresentationCapabilities(this.config).verbatimArtifacts,
7815
7818
  this.config.verbatimArtifactsMaxRecall
7816
7819
  );
7817
7820
  const embeddingFetchLimit = computedFetchLimit;
@@ -8319,10 +8322,10 @@ ${lines.join("\n\n")}`;
8319
8322
  const entityRetrievalPromise = (async () => {
8320
8323
  if (!this.isRecallSectionEnabled(
8321
8324
  "entity-retrieval",
8322
- this.config.entityRetrievalEnabled
8325
+ resolveRecallAuxiliaryCapabilities(this.config).entityRetrieval
8323
8326
  ))
8324
8327
  return null;
8325
- if (!this.config.entityRetrievalEnabled) return null;
8328
+ if (!resolveRecallAuxiliaryCapabilities(this.config).entityRetrieval) return null;
8326
8329
  const maxChars = this.getRecallSectionMaxChars("entity-retrieval") ?? this.config.entityRetrievalMaxChars;
8327
8330
  const maxHints = this.getRecallSectionNumber("entity-retrieval", "maxHints") ?? this.config.entityRetrievalMaxHints;
8328
8331
  const maxSupportingFacts = this.getRecallSectionNumber("entity-retrieval", "maxSupportingFacts") ?? this.config.entityRetrievalMaxSupportingFacts;
@@ -8377,10 +8380,10 @@ ${lines.join("\n\n")}`;
8377
8380
  const knowledgeIndexPromise = (async () => {
8378
8381
  if (!this.isRecallSectionEnabled(
8379
8382
  "knowledge-index",
8380
- this.config.knowledgeIndexEnabled
8383
+ resolveRecallAuxiliaryCapabilities(this.config).knowledgeIndex
8381
8384
  ))
8382
8385
  return null;
8383
- if (!this.config.knowledgeIndexEnabled) return null;
8386
+ if (!resolveRecallAuxiliaryCapabilities(this.config).knowledgeIndex) return null;
8384
8387
  const t0 = Date.now();
8385
8388
  try {
8386
8389
  const knowledgeIndexMaxChars = this.getRecallSectionNumber("knowledge-index", "maxChars") ?? this.config.knowledgeIndexMaxChars;
@@ -8456,10 +8459,10 @@ ${rows.join("\n")}
8456
8459
  const artifactsPromise = (async () => {
8457
8460
  if (!this.isRecallSectionEnabled(
8458
8461
  "verbatim-artifacts",
8459
- this.config.verbatimArtifactsEnabled === true
8462
+ resolvePresentationCapabilities(this.config).verbatimArtifacts === true
8460
8463
  ))
8461
8464
  return [];
8462
- if (!this.config.verbatimArtifactsEnabled) return [];
8465
+ if (!resolvePresentationCapabilities(this.config).verbatimArtifacts) return [];
8463
8466
  const t0 = Date.now();
8464
8467
  const targetCount = computeArtifactRecallLimit(
8465
8468
  recallMode,
@@ -8656,9 +8659,9 @@ ${rows.join("\n")}
8656
8659
  })();
8657
8660
  const calibrationPromise = (async () => {
8658
8661
  const t0 = Date.now();
8659
- if (!this.config.calibrationEnabled || !this.isRecallSectionEnabled(
8662
+ if (!resolveConsolidationCapabilities(this.config).calibration || !this.isRecallSectionEnabled(
8660
8663
  "calibration-rules",
8661
- this.config.calibrationEnabled === true
8664
+ resolveConsolidationCapabilities(this.config).calibration === true
8662
8665
  )) {
8663
8666
  recordRecallSectionMetric({
8664
8667
  section: "calibrationRules",
@@ -8804,7 +8807,7 @@ ${rows.join("\n")}
8804
8807
  query: retrievalQuery,
8805
8808
  maxResults,
8806
8809
  sessionKey,
8807
- anchorsEnabled: this.config.abstractionAnchorsEnabled,
8810
+ anchorsEnabled: resolveConsolidationCapabilities(this.config).abstractionAnchors,
8808
8811
  abortSignal: harmonicRetrievalAbort.signal
8809
8812
  })
8810
8813
  )
@@ -8833,9 +8836,9 @@ ${rows.join("\n")}
8833
8836
  );
8834
8837
  const verifiedRecallPromise = (async () => {
8835
8838
  const t0 = Date.now();
8836
- if (!this.config.verifiedRecallEnabled || !this.isRecallSectionEnabled(
8839
+ if (!resolveRecallAuxiliaryCapabilities(this.config).verifiedRecall || !this.isRecallSectionEnabled(
8837
8840
  "verified-episodes",
8838
- this.config.verifiedRecallEnabled === true
8841
+ resolveRecallAuxiliaryCapabilities(this.config).verifiedRecall === true
8839
8842
  )) {
8840
8843
  recordRecallSectionMetric({
8841
8844
  section: "verifiedRecall",
@@ -8913,9 +8916,9 @@ ${rows.join("\n")}
8913
8916
  })();
8914
8917
  const verifiedRulesPromise = (async () => {
8915
8918
  const t0 = Date.now();
8916
- if (!this.config.semanticRuleVerificationEnabled || !this.isRecallSectionEnabled(
8919
+ if (!resolveRecallAuxiliaryCapabilities(this.config).semanticRuleVerification || !this.isRecallSectionEnabled(
8917
8920
  "verified-rules",
8918
- this.config.semanticRuleVerificationEnabled === true
8921
+ resolveRecallAuxiliaryCapabilities(this.config).semanticRuleVerification === true
8919
8922
  )) {
8920
8923
  recordRecallSectionMetric({
8921
8924
  section: "verifiedRules",
@@ -8992,9 +8995,9 @@ ${rows.join("\n")}
8992
8995
  })();
8993
8996
  const workProductsPromise = (async () => {
8994
8997
  const t0 = Date.now();
8995
- if (!resolveCreationMemoryCapabilities(this.config).creationMemory || !this.config.workProductRecallEnabled || !this.isRecallSectionEnabled(
8998
+ if (!resolveCreationMemoryCapabilities(this.config).creationMemory || !resolveRecallAuxiliaryCapabilities(this.config).workProductRecall || !this.isRecallSectionEnabled(
8996
8999
  "work-products",
8997
- this.config.workProductRecallEnabled === true
9000
+ resolveRecallAuxiliaryCapabilities(this.config).workProductRecall === true
8998
9001
  )) {
8999
9002
  recordRecallSectionMetric({
9000
9003
  section: "workProducts",
@@ -9404,7 +9407,7 @@ ${rows.join("\n")}
9404
9407
  );
9405
9408
  const transcriptPromise = (async () => {
9406
9409
  const t0 = Date.now();
9407
- if (!this.config.transcriptEnabled || !this.isRecallSectionEnabled("transcript", true)) {
9410
+ if (!resolvePresentationCapabilities(this.config).transcript || !this.isRecallSectionEnabled("transcript", true)) {
9408
9411
  recordRecallSectionMetric({
9409
9412
  section: "transcript",
9410
9413
  priority: "core",
@@ -9486,7 +9489,7 @@ ${formatted}`;
9486
9489
  const effectiveSessionKey = sessionKey ?? "default";
9487
9490
  const compactionWorkspaceDir = this._recallWorkspaceOverrides.get(effectiveSessionKey);
9488
9491
  this._recallWorkspaceOverrides.delete(effectiveSessionKey);
9489
- if (!this.config.compactionResetEnabled) return null;
9492
+ if (!resolveRecallAuxiliaryCapabilities(this.config).compactionReset) return null;
9490
9493
  const workspaceDir = compactionWorkspaceDir || this.config.workspaceDir || defaultWorkspaceDir();
9491
9494
  const safeSessionKey = sanitizeSessionKeyForFilename(effectiveSessionKey);
9492
9495
  const signalPath = path4.join(
@@ -9770,8 +9773,8 @@ ${formatted}`;
9770
9773
  const recentBoxesPromise = observeEnrichmentPromise(
9771
9774
  this.isRecallSectionEnabled(
9772
9775
  "memory-boxes",
9773
- this.config.memoryBoxesEnabled === true
9774
- ) && this.config.memoryBoxesEnabled && this.config.boxRecallDays > 0 ? Promise.all(
9776
+ resolvePresentationCapabilities(this.config).memoryBoxes === true
9777
+ ) && resolvePresentationCapabilities(this.config).memoryBoxes && this.config.boxRecallDays > 0 ? Promise.all(
9775
9778
  profileStorages.map(
9776
9779
  (storage) => this.boxBuilderFor(storage).readRecentBoxes(this.config.boxRecallDays).catch(() => [])
9777
9780
  )
@@ -12056,7 +12059,7 @@ ${normalized}`).digest("hex");
12056
12059
  async maybeCapturePassiveCorrections(turns, opts) {
12057
12060
  const mode = this.config.correctionCaptureMode;
12058
12061
  if (mode === "off") return;
12059
- if (!this.config.correctionEnabled) return;
12062
+ if (!resolveRecallAuxiliaryCapabilities(this.config).correction) return;
12060
12063
  try {
12061
12064
  const corrections = detectPassiveCorrections(
12062
12065
  turns.map((t) => ({ role: t.role, content: t.content }))
@@ -12072,7 +12075,7 @@ ${normalized}`).digest("hex");
12072
12075
  const result = await capturePassiveCorrections(
12073
12076
  corrections,
12074
12077
  {
12075
- correctionEnabled: this.config.correctionEnabled,
12078
+ correctionEnabled: resolveRecallAuxiliaryCapabilities(this.config).correction,
12076
12079
  isLiveSession: opts.isLiveSession,
12077
12080
  bufferKey: opts.bufferKey,
12078
12081
  sessionKey: opts.sessionKey,
@@ -12386,7 +12389,7 @@ ${normalized}`).digest("hex");
12386
12389
  return { status: "skipped", reason: "empty_extraction_result", persistedCount: 0, durableOutputCount: 0 };
12387
12390
  }
12388
12391
  let threadIdForExtraction = null;
12389
- if (this.config.threadingEnabled && turns.length > 0) {
12392
+ if (resolvePresentationCapabilities(this.config).threading && turns.length > 0) {
12390
12393
  const lastTurn = turns[turns.length - 1];
12391
12394
  try {
12392
12395
  threadIdForExtraction = await this.threading.processTurn(lastTurn, []);
@@ -12467,7 +12470,7 @@ ${normalized}`).digest("hex");
12467
12470
  bufferKey,
12468
12471
  isLiveSession: clearBufferAfterExtraction
12469
12472
  });
12470
- if (this.config.memoryBoxesEnabled && persistedIds.length > 0) {
12473
+ if (resolvePresentationCapabilities(this.config).memoryBoxes && persistedIds.length > 0) {
12471
12474
  const extractionTopics = deriveTopicsFromExtraction(result);
12472
12475
  const firstUserTurn = turns.find((t) => t.role === "user");
12473
12476
  const boxGoal = firstUserTurn?.content?.slice(0, 100)?.trim() || void 0;
@@ -12480,13 +12483,13 @@ ${normalized}`).digest("hex");
12480
12483
  (err) => log.warn("[boxes] onExtraction failed (non-fatal)", err)
12481
12484
  );
12482
12485
  }
12483
- if (this.config.threadingEnabled && threadIdForExtraction && persistedIds.length > 0) {
12486
+ if (resolvePresentationCapabilities(this.config).threading && threadIdForExtraction && persistedIds.length > 0) {
12484
12487
  await this.appendPersistedThreadEpisodes(
12485
12488
  threadIdForExtraction,
12486
12489
  persistedIds
12487
12490
  );
12488
12491
  }
12489
- if (this.config.threadingEnabled && threadIdForExtraction) {
12492
+ if (resolvePresentationCapabilities(this.config).threading && threadIdForExtraction) {
12490
12493
  const conversationContent = turns.map((t) => t.content).join(" ");
12491
12494
  try {
12492
12495
  await this.threading.updateThreadTitle(
@@ -13520,7 +13523,7 @@ ${normalized}`).digest("hex");
13520
13523
  chunkResult = chunkContent(fact.content, chunkingConfig);
13521
13524
  }
13522
13525
  if (chunkResult.chunked && chunkResult.chunks.length > 1) {
13523
- const memoryKind2 = this.config.episodeNoteModeEnabled ? classifyMemoryKind(fact.content, fact.tags ?? [], writeCategory) : void 0;
13526
+ const memoryKind2 = resolvePresentationCapabilities(this.config).episodeNoteMode ? classifyMemoryKind(fact.content, fact.tags ?? [], writeCategory) : void 0;
13524
13527
  const rawChunkedContent = citationEnabled && hasCitationForTemplate(fact.content, citationTemplate) ? stripCitationForTemplate(fact.content, citationTemplate) : fact.content;
13525
13528
  const citedChunkedContent = applyInlineCitation(rawChunkedContent);
13526
13529
  const parentWrite = await targetStorage.writeMemory(
@@ -13686,7 +13689,7 @@ ${normalized}`).digest("hex");
13686
13689
  }
13687
13690
  }
13688
13691
  try {
13689
- if (this.config.verbatimArtifactsEnabled && this.config.verbatimArtifactCategories.includes(writeCategory) && fact.confidence >= this.config.verbatimArtifactsMinConfidence && !postWriteGuard2) {
13692
+ if (resolvePresentationCapabilities(this.config).verbatimArtifacts && this.config.verbatimArtifactCategories.includes(writeCategory) && fact.confidence >= this.config.verbatimArtifactsMinConfidence && !postWriteGuard2) {
13690
13693
  await targetStorage.writeArtifact(citedChunkedContent, {
13691
13694
  confidence: fact.confidence,
13692
13695
  tags: [...fact.tags, "artifact", "chunked-parent"],
@@ -13760,7 +13763,7 @@ ${normalized}`).digest("hex");
13760
13763
  links.push(...suggestedLinks);
13761
13764
  }
13762
13765
  }
13763
- const memoryKind = writeCategory === "procedure" ? void 0 : this.config.episodeNoteModeEnabled ? classifyMemoryKind(fact.content, fact.tags ?? [], writeCategory) : void 0;
13766
+ const memoryKind = writeCategory === "procedure" ? void 0 : resolvePresentationCapabilities(this.config).episodeNoteMode ? classifyMemoryKind(fact.content, fact.tags ?? [], writeCategory) : void 0;
13764
13767
  const rawPersistBody = writeCategory === "procedure" ? buildProcedurePersistBody(fact.content, fact.procedureSteps) : fact.content;
13765
13768
  const citedFactContent = applyInlineCitation(rawPersistBody);
13766
13769
  const factWrite = await targetStorage.writeMemory(
@@ -13902,7 +13905,7 @@ ${normalized}`).digest("hex");
13902
13905
  } catch {
13903
13906
  }
13904
13907
  }
13905
- if (this.config.verbatimArtifactsEnabled && this.config.verbatimArtifactCategories.includes(writeCategory) && fact.confidence >= this.config.verbatimArtifactsMinConfidence && !postWriteGuard) {
13908
+ if (resolvePresentationCapabilities(this.config).verbatimArtifacts && this.config.verbatimArtifactCategories.includes(writeCategory) && fact.confidence >= this.config.verbatimArtifactsMinConfidence && !postWriteGuard) {
13906
13909
  await targetStorage.writeArtifact(citedFactContent, {
13907
13910
  confidence: fact.confidence,
13908
13911
  tags: [...fact.tags, "artifact"],
@@ -14302,7 +14305,7 @@ ${normalized}`).digest("hex");
14302
14305
  memoryItemMutated = true;
14303
14306
  log.info(`merged ${entitiesMerged} fragmented entity files`);
14304
14307
  }
14305
- if (this.config.entitySummaryEnabled) {
14308
+ if (resolvePresentationCapabilities(this.config).entitySummary) {
14306
14309
  try {
14307
14310
  const synthesized = await this.processEntitySynthesisQueue(
14308
14311
  this.config.defaultNamespace,
@@ -14417,7 +14420,7 @@ ${normalized}`).digest("hex");
14417
14420
  throw err;
14418
14421
  }
14419
14422
  }
14420
- if (this.config.semanticConsolidationEnabled) {
14423
+ if (resolveConsolidationCapabilities(this.config).semanticConsolidation) {
14421
14424
  try {
14422
14425
  const stateFilePath = path4.join(
14423
14426
  this.config.memoryDir,
@@ -16438,4 +16441,4 @@ export {
16438
16441
  resolvePersistedMemoryRelativePath,
16439
16442
  Orchestrator
16440
16443
  };
16441
- //# sourceMappingURL=chunk-PB5YON2G.js.map
16444
+ //# sourceMappingURL=chunk-EKQ3LWBM.js.map