@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.
- package/dist/access-boundary.js +10 -10
- package/dist/access-cli.js +26 -26
- package/dist/access-http.js +15 -15
- package/dist/access-mcp.js +14 -14
- package/dist/access-operations-batch.js +12 -12
- package/dist/access-operations.js +13 -13
- package/dist/access-service.js +9 -9
- package/dist/active-memory-bridge.js +3 -3
- package/dist/buffer.js +2 -1
- package/dist/capabilities.d.ts +98 -1
- package/dist/capabilities.js +7 -1
- package/dist/{chunk-G54IDCD3.js → chunk-23PLOBWT.js} +30 -27
- package/dist/chunk-23PLOBWT.js.map +1 -0
- package/dist/{chunk-K3Y2SJTN.js → chunk-56LP72AD.js} +6 -6
- package/dist/{chunk-ZBZ4XULO.js → chunk-66RZ4EIT.js} +3 -3
- package/dist/{chunk-IPI45Q4S.js → chunk-75PDC7VT.js} +9 -8
- package/dist/chunk-75PDC7VT.js.map +1 -0
- package/dist/{chunk-GB2FZOWB.js → chunk-7B7IPPN5.js} +5 -5
- package/dist/{chunk-QNTLWH3T.js → chunk-A7INTIC5.js} +3 -3
- package/dist/{chunk-FLPKEMSO.js → chunk-AKKFHN3I.js} +2 -2
- package/dist/{chunk-AAIHDIMD.js → chunk-BHJAMSVC.js} +7 -7
- package/dist/{chunk-BXPG5AVX.js → chunk-BHQQVUEQ.js} +6 -6
- package/dist/{chunk-HFXZIF3V.js → chunk-BVG2IZOB.js} +3 -3
- package/dist/{chunk-NDKW67ER.js → chunk-C53JDEH3.js} +4 -4
- package/dist/{chunk-AESC5OQJ.js → chunk-CKHPUOAP.js} +2 -2
- package/dist/{chunk-OYHYBHHI.js → chunk-DS3FZ7GS.js} +4 -4
- package/dist/{chunk-PB5YON2G.js → chunk-EKQ3LWBM.js} +77 -74
- package/dist/chunk-EKQ3LWBM.js.map +1 -0
- package/dist/{chunk-UO6MPN77.js → chunk-EU543UDC.js} +10 -9
- package/dist/chunk-EU543UDC.js.map +1 -0
- package/dist/{chunk-E4LYJ7PY.js → chunk-IFCM6OLK.js} +6 -6
- package/dist/{chunk-5BOQNB2K.js → chunk-JQSP7YBJ.js} +3 -3
- package/dist/{chunk-2T2N7ISV.js → chunk-L3TYGUTH.js} +3 -3
- package/dist/{chunk-AB2E5DCN.js → chunk-MAU7DFCJ.js} +2 -2
- package/dist/{chunk-P6VLG7KE.js → chunk-N2O23WYA.js} +2 -2
- package/dist/{chunk-HYNHLBKA.js → chunk-OQQRWPFZ.js} +5 -2
- package/dist/chunk-OQQRWPFZ.js.map +1 -0
- package/dist/{chunk-IXGXALRV.js → chunk-QTJOORGN.js} +2 -2
- package/dist/{chunk-JWDE7OVJ.js → chunk-RJBW4EOU.js} +46 -2
- package/dist/{chunk-JWDE7OVJ.js.map → chunk-RJBW4EOU.js.map} +1 -1
- package/dist/{chunk-AE7NTZ75.js → chunk-TNLXCSXV.js} +3 -3
- package/dist/{chunk-NNJKEAP2.js → chunk-VRBBZH4U.js} +4 -4
- package/dist/{chunk-VOEVVIP3.js → chunk-W2FBVBQ4.js} +4 -4
- package/dist/{chunk-WNGXQMRI.js → chunk-WFNH4UDF.js} +5 -2
- package/dist/chunk-WFNH4UDF.js.map +1 -0
- package/dist/{chunk-CHJIWG2H.js → chunk-WVAEIKUY.js} +2 -2
- package/dist/{chunk-FF36YNKY.js → chunk-XIQAOGAA.js} +11 -10
- package/dist/chunk-XIQAOGAA.js.map +1 -0
- package/dist/{chunk-HLPYL6LC.js → chunk-Y5OOHER4.js} +14 -12
- package/dist/chunk-Y5OOHER4.js.map +1 -0
- package/dist/{chunk-GYICIICQ.js → chunk-YF2MMBKA.js} +9 -7
- package/dist/chunk-YF2MMBKA.js.map +1 -0
- package/dist/{chunk-IX4L7E5G.js → chunk-YXOXAQ5Y.js} +2 -2
- package/dist/cli.js +21 -21
- package/dist/compounding/engine.js +2 -2
- package/dist/contradiction/index.js +2 -2
- package/dist/{contradiction-scan-2B4AE4TI.js → contradiction-scan-CWO3LIWV.js} +3 -3
- package/dist/embedding-fallback.js +2 -2
- package/dist/entity-retrieval.js +2 -2
- package/dist/explicit-capture.js +2 -2
- package/dist/extraction.js +3 -3
- package/dist/{first-start-migration-2RQYDIZ7.js → first-start-migration-5DXD3TF2.js} +2 -2
- package/dist/index.js +32 -32
- package/dist/local-llm.js +2 -2
- package/dist/namespaces/migrate.js +6 -6
- package/dist/namespaces/principal.js +2 -2
- package/dist/namespaces/search.js +4 -4
- package/dist/namespaces/storage.js +2 -2
- package/dist/operator-toolkit.js +11 -11
- package/dist/orchestration/compression-guideline-coordinator.js +2 -2
- package/dist/orchestration/maintenance.js +6 -6
- package/dist/orchestrator.js +21 -21
- package/dist/schemas.d.ts +22 -22
- package/dist/search/embed-helper.js +2 -2
- package/dist/search/factory.js +3 -3
- package/dist/search/index.js +3 -3
- package/dist/summarizer.js +3 -3
- package/dist/{tier-stats-KPDIISG7.js → tier-stats-QID73BBB.js} +2 -2
- package/dist/transfer/types.d.ts +12 -12
- package/package.json +2 -2
- package/src/access-service.ts +7 -8
- package/src/buffer.ts +2 -1
- package/src/capabilities.test.ts +137 -0
- package/src/capabilities.ts +209 -0
- package/src/cli/creation-ledger-commands.ts +3 -3
- package/src/cli/research-status-commands.ts +4 -4
- package/src/cli.ts +9 -10
- package/src/compounding/engine.ts +7 -7
- package/src/correction/correction-access-wiring.ts +3 -2
- package/src/extraction.ts +8 -10
- package/src/operator-toolkit.ts +6 -7
- package/src/orchestration/entity-synthesis-coordinator.ts +2 -1
- package/src/orchestration/maintenance.ts +5 -7
- package/src/orchestration/semantic-consolidation-coordinator.ts +2 -2
- package/src/orchestrator.ts +49 -50
- package/dist/chunk-FF36YNKY.js.map +0 -1
- package/dist/chunk-G54IDCD3.js.map +0 -1
- package/dist/chunk-GYICIICQ.js.map +0 -1
- package/dist/chunk-HLPYL6LC.js.map +0 -1
- package/dist/chunk-HYNHLBKA.js.map +0 -1
- package/dist/chunk-IPI45Q4S.js.map +0 -1
- package/dist/chunk-PB5YON2G.js.map +0 -1
- package/dist/chunk-UO6MPN77.js.map +0 -1
- package/dist/chunk-WNGXQMRI.js.map +0 -1
- /package/dist/{chunk-K3Y2SJTN.js.map → chunk-56LP72AD.js.map} +0 -0
- /package/dist/{chunk-ZBZ4XULO.js.map → chunk-66RZ4EIT.js.map} +0 -0
- /package/dist/{chunk-GB2FZOWB.js.map → chunk-7B7IPPN5.js.map} +0 -0
- /package/dist/{chunk-QNTLWH3T.js.map → chunk-A7INTIC5.js.map} +0 -0
- /package/dist/{chunk-FLPKEMSO.js.map → chunk-AKKFHN3I.js.map} +0 -0
- /package/dist/{chunk-AAIHDIMD.js.map → chunk-BHJAMSVC.js.map} +0 -0
- /package/dist/{chunk-BXPG5AVX.js.map → chunk-BHQQVUEQ.js.map} +0 -0
- /package/dist/{chunk-HFXZIF3V.js.map → chunk-BVG2IZOB.js.map} +0 -0
- /package/dist/{chunk-NDKW67ER.js.map → chunk-C53JDEH3.js.map} +0 -0
- /package/dist/{chunk-AESC5OQJ.js.map → chunk-CKHPUOAP.js.map} +0 -0
- /package/dist/{chunk-OYHYBHHI.js.map → chunk-DS3FZ7GS.js.map} +0 -0
- /package/dist/{chunk-E4LYJ7PY.js.map → chunk-IFCM6OLK.js.map} +0 -0
- /package/dist/{chunk-5BOQNB2K.js.map → chunk-JQSP7YBJ.js.map} +0 -0
- /package/dist/{chunk-2T2N7ISV.js.map → chunk-L3TYGUTH.js.map} +0 -0
- /package/dist/{chunk-AB2E5DCN.js.map → chunk-MAU7DFCJ.js.map} +0 -0
- /package/dist/{chunk-P6VLG7KE.js.map → chunk-N2O23WYA.js.map} +0 -0
- /package/dist/{chunk-IXGXALRV.js.map → chunk-QTJOORGN.js.map} +0 -0
- /package/dist/{chunk-AE7NTZ75.js.map → chunk-TNLXCSXV.js.map} +0 -0
- /package/dist/{chunk-NNJKEAP2.js.map → chunk-VRBBZH4U.js.map} +0 -0
- /package/dist/{chunk-VOEVVIP3.js.map → chunk-W2FBVBQ4.js.map} +0 -0
- /package/dist/{chunk-CHJIWG2H.js.map → chunk-WVAEIKUY.js.map} +0 -0
- /package/dist/{chunk-IX4L7E5G.js.map → chunk-YXOXAQ5Y.js.map} +0 -0
- /package/dist/{contradiction-scan-2B4AE4TI.js.map → contradiction-scan-CWO3LIWV.js.map} +0 -0
- /package/dist/{first-start-migration-2RQYDIZ7.js.map → first-start-migration-5DXD3TF2.js.map} +0 -0
- /package/dist/{tier-stats-KPDIISG7.js.map → tier-stats-QID73BBB.js.map} +0 -0
package/src/orchestrator.ts
CHANGED
|
@@ -267,8 +267,7 @@ import {
|
|
|
267
267
|
type TrustZoneSearchResult,
|
|
268
268
|
} from "./trust-zones.js";
|
|
269
269
|
import { tryDirectAnswer, type DirectAnswerSources } from "./direct-answer-wiring.js";
|
|
270
|
-
import {
|
|
271
|
-
resolveNamespaceCapabilities,
|
|
270
|
+
import { resolveNamespaceCapabilities,
|
|
272
271
|
resolveCapabilities,
|
|
273
272
|
resolveGraphConstructionCapabilities,
|
|
274
273
|
resolveMemoryLifecycleCapabilities,
|
|
@@ -282,7 +281,7 @@ import {
|
|
|
282
281
|
resolveQmdCapabilities,
|
|
283
282
|
resolveIdentityContinuityCapabilities,
|
|
284
283
|
resolveLocalLlmCapabilities,
|
|
285
|
-
resolveSecurityCapabilities, resolveEvalCapabilities, resolveUtilityLearningCapabilities, resolveObjectiveStateCapabilities, resolveCompressionCapabilities} from "./capabilities.js";
|
|
284
|
+
resolveSecurityCapabilities, resolveEvalCapabilities, resolveUtilityLearningCapabilities, resolveObjectiveStateCapabilities, resolveCompressionCapabilities, resolvePresentationCapabilities, resolveConsolidationCapabilities, resolveRecallAuxiliaryCapabilities } from "./capabilities.js";
|
|
286
285
|
import { DEFAULT_TAXONOMY } from "./taxonomy/index.js";
|
|
287
286
|
import {
|
|
288
287
|
searchHarmonicRetrieval,
|
|
@@ -2565,7 +2564,7 @@ export class Orchestrator {
|
|
|
2565
2564
|
private async contentHashIndexForStorage(
|
|
2566
2565
|
targetStorage: StorageManager,
|
|
2567
2566
|
): Promise<ContentHashIndex | null> {
|
|
2568
|
-
if (!this.config.
|
|
2567
|
+
if (!resolveRecallAuxiliaryCapabilities(this.config).factDeduplication) return null;
|
|
2569
2568
|
|
|
2570
2569
|
if (targetStorage.dir === this.storage.dir) {
|
|
2571
2570
|
if (!this.contentHashIndex) {
|
|
@@ -2828,7 +2827,7 @@ export class Orchestrator {
|
|
|
2828
2827
|
if (config.defaultNamespace) this.storageRouter.bindCatalogWriteHook(this.storage, config.defaultNamespace);
|
|
2829
2828
|
// Wire page-level versioning (issue #371)
|
|
2830
2829
|
this.storage.setVersioningConfig({
|
|
2831
|
-
enabled: config.
|
|
2830
|
+
enabled: resolveRecallAuxiliaryCapabilities(config).versioning,
|
|
2832
2831
|
maxVersionsPerPage: config.versioningMaxPerPage,
|
|
2833
2832
|
sidecarDir: config.versioningSidecarDir,
|
|
2834
2833
|
});
|
|
@@ -2851,7 +2850,7 @@ export class Orchestrator {
|
|
|
2851
2850
|
// Wire at-rest encryption (issue #690 PR 3/4).
|
|
2852
2851
|
// If secureStoreEnabled, check whether the keyring already holds a key
|
|
2853
2852
|
// for this memory dir (e.g. operator unlocked before daemon restart).
|
|
2854
|
-
if (config.
|
|
2853
|
+
if (resolveRecallAuxiliaryCapabilities(config).secureStore) {
|
|
2855
2854
|
// Mark the store as required so writes throw SecureStoreLockedError
|
|
2856
2855
|
// instead of silently falling back to plaintext when locked (P1 finding
|
|
2857
2856
|
// from Cursor review of PR #767).
|
|
@@ -2889,7 +2888,7 @@ export class Orchestrator {
|
|
|
2889
2888
|
this.sharedContext = config.sharedContextEnabled
|
|
2890
2889
|
? new SharedContextManager(config)
|
|
2891
2890
|
: undefined;
|
|
2892
|
-
this.compounding = config.
|
|
2891
|
+
this.compounding = resolveConsolidationCapabilities(config).compounding
|
|
2893
2892
|
? new CompoundingEngine(config, this.storage)
|
|
2894
2893
|
: undefined;
|
|
2895
2894
|
this.buffer = new SmartBuffer(config, this.storage);
|
|
@@ -3081,7 +3080,7 @@ export class Orchestrator {
|
|
|
3081
3080
|
this.boxBuilders.set(
|
|
3082
3081
|
dir,
|
|
3083
3082
|
new BoxBuilder(dir, {
|
|
3084
|
-
memoryBoxesEnabled: this.config.
|
|
3083
|
+
memoryBoxesEnabled: resolvePresentationCapabilities(this.config).memoryBoxes,
|
|
3085
3084
|
traceWeaverEnabled: this.config.traceWeaverEnabled,
|
|
3086
3085
|
boxTopicShiftThreshold: this.config.boxTopicShiftThreshold,
|
|
3087
3086
|
boxTimeGapMs: this.config.boxTimeGapMs,
|
|
@@ -3427,7 +3426,7 @@ export class Orchestrator {
|
|
|
3427
3426
|
});
|
|
3428
3427
|
|
|
3429
3428
|
// Initialize content-hash dedup index
|
|
3430
|
-
if (this.config.
|
|
3429
|
+
if (resolveRecallAuxiliaryCapabilities(this.config).factDeduplication) {
|
|
3431
3430
|
this.contentHashIndex = this.storage.createContentHashIndex();
|
|
3432
3431
|
await this.contentHashIndex.load();
|
|
3433
3432
|
log.info(
|
|
@@ -3453,7 +3452,7 @@ export class Orchestrator {
|
|
|
3453
3452
|
);
|
|
3454
3453
|
this.buffer.resetToEmpty();
|
|
3455
3454
|
}
|
|
3456
|
-
if (this.config.
|
|
3455
|
+
if (resolveRecallAuxiliaryCapabilities(this.config).compactionReset) {
|
|
3457
3456
|
try {
|
|
3458
3457
|
const wsDir = this.config.workspaceDir || defaultWorkspaceDir();
|
|
3459
3458
|
const files = await readdir(wsDir).catch(() => [] as string[]);
|
|
@@ -3677,7 +3676,7 @@ export class Orchestrator {
|
|
|
3677
3676
|
// Awaited so callers of `deferredReady` can rely on warmups being complete
|
|
3678
3677
|
// and shutdown sequencing does not race with in-flight cache builds.
|
|
3679
3678
|
const cacheWarmups: Promise<void>[] = [];
|
|
3680
|
-
if (this.config.
|
|
3679
|
+
if (resolveRecallAuxiliaryCapabilities(this.config).knowledgeIndex) {
|
|
3681
3680
|
cacheWarmups.push(
|
|
3682
3681
|
(async () => {
|
|
3683
3682
|
try {
|
|
@@ -3996,7 +3995,7 @@ export class Orchestrator {
|
|
|
3996
3995
|
const cadenceKey = options.namespace ?? "";
|
|
3997
3996
|
// Master switch: a disabled feature is never bypassed, even with
|
|
3998
3997
|
// force=true. `force` only relaxes the cadence floor below.
|
|
3999
|
-
if (!this.config.
|
|
3998
|
+
if (!resolveConsolidationCapabilities(this.config).patternReinforcement) {
|
|
4000
3999
|
return { ran: false, skippedReason: "disabled", namespace: cadenceKey };
|
|
4001
4000
|
}
|
|
4002
4001
|
const cadence = this.config.patternReinforcementCadenceMs;
|
|
@@ -4055,7 +4054,7 @@ export class Orchestrator {
|
|
|
4055
4054
|
? { itemCount: result.result.clustersFound }
|
|
4056
4055
|
: { itemCount: 0 };
|
|
4057
4056
|
},
|
|
4058
|
-
{ enabled: this.config.
|
|
4057
|
+
{ enabled: resolveConsolidationCapabilities(this.config).patternReinforcement },
|
|
4059
4058
|
);
|
|
4060
4059
|
}
|
|
4061
4060
|
|
|
@@ -4099,7 +4098,7 @@ export class Orchestrator {
|
|
|
4099
4098
|
});
|
|
4100
4099
|
return { itemCount: result.clustersFound };
|
|
4101
4100
|
},
|
|
4102
|
-
{ enabled: this.config.
|
|
4101
|
+
{ enabled: resolveConsolidationCapabilities(this.config).semanticConsolidation },
|
|
4103
4102
|
);
|
|
4104
4103
|
}
|
|
4105
4104
|
|
|
@@ -5430,7 +5429,7 @@ export class Orchestrator {
|
|
|
5430
5429
|
// memory directory, reject recall with a clear human-readable error
|
|
5431
5430
|
// rather than surfacing a cryptic SecureStoreLockedError from deep
|
|
5432
5431
|
// inside the storage layer.
|
|
5433
|
-
if (this.config.
|
|
5432
|
+
if (resolveRecallAuxiliaryCapabilities(this.config).secureStore && !this.storage.isSecureStoreUnlocked()) {
|
|
5434
5433
|
const lockedMsg =
|
|
5435
5434
|
"[secure-store locked] Memory store is encrypted and locked. " +
|
|
5436
5435
|
"Unlock the secure-store inside this daemon process, or restart the daemon through a secure-store aware launcher that installs the key.";
|
|
@@ -5568,7 +5567,7 @@ export class Orchestrator {
|
|
|
5568
5567
|
});
|
|
5569
5568
|
const observationNamespaces = observationScopePlan.readNamespaces;
|
|
5570
5569
|
const observationQueryPolicy = buildRecallQueryPolicy(prompt, sessionKey, {
|
|
5571
|
-
cronRecallPolicyEnabled: this.config.
|
|
5570
|
+
cronRecallPolicyEnabled: resolveRecallAuxiliaryCapabilities(this.config).cronRecallPolicy,
|
|
5572
5571
|
cronRecallNormalizedQueryMaxChars:
|
|
5573
5572
|
this.config.cronRecallNormalizedQueryMaxChars,
|
|
5574
5573
|
cronRecallInstructionHeavyTokenCap:
|
|
@@ -6994,7 +6993,7 @@ export class Orchestrator {
|
|
|
6994
6993
|
// recall searches, incl. coding `readFallbacks`). See the
|
|
6995
6994
|
// `lcmReadSessionIds` derivation after `recallNamespaces` is built.
|
|
6996
6995
|
const queryPolicy = buildRecallQueryPolicy(prompt, sessionKey, {
|
|
6997
|
-
cronRecallPolicyEnabled: this.config.
|
|
6996
|
+
cronRecallPolicyEnabled: resolveRecallAuxiliaryCapabilities(this.config).cronRecallPolicy,
|
|
6998
6997
|
cronRecallNormalizedQueryMaxChars:
|
|
6999
6998
|
this.config.cronRecallNormalizedQueryMaxChars,
|
|
7000
6999
|
cronRecallInstructionHeavyTokenCap:
|
|
@@ -7157,7 +7156,7 @@ export class Orchestrator {
|
|
|
7157
7156
|
return limit;
|
|
7158
7157
|
})()
|
|
7159
7158
|
: 0;
|
|
7160
|
-
const recallHeadroom = this.config.
|
|
7159
|
+
const recallHeadroom = resolvePresentationCapabilities(this.config).verbatimArtifacts
|
|
7161
7160
|
? Math.max(12, this.config.verbatimArtifactsMaxRecall * 4)
|
|
7162
7161
|
: 12;
|
|
7163
7162
|
const computedFetchLimit =
|
|
@@ -7170,7 +7169,7 @@ export class Orchestrator {
|
|
|
7170
7169
|
const qmdFetchLimit = computedFetchLimit;
|
|
7171
7170
|
const qmdHybridFetchLimit = computeQmdHybridFetchLimit(
|
|
7172
7171
|
qmdFetchLimit,
|
|
7173
|
-
this.config.
|
|
7172
|
+
resolvePresentationCapabilities(this.config).verbatimArtifacts,
|
|
7174
7173
|
this.config.verbatimArtifactsMaxRecall,
|
|
7175
7174
|
);
|
|
7176
7175
|
const embeddingFetchLimit = computedFetchLimit;
|
|
@@ -7862,11 +7861,11 @@ export class Orchestrator {
|
|
|
7862
7861
|
if (
|
|
7863
7862
|
!this.isRecallSectionEnabled(
|
|
7864
7863
|
"entity-retrieval",
|
|
7865
|
-
this.config.
|
|
7864
|
+
resolveRecallAuxiliaryCapabilities(this.config).entityRetrieval,
|
|
7866
7865
|
)
|
|
7867
7866
|
)
|
|
7868
7867
|
return null;
|
|
7869
|
-
if (!this.config.
|
|
7868
|
+
if (!resolveRecallAuxiliaryCapabilities(this.config).entityRetrieval) return null;
|
|
7870
7869
|
const maxChars =
|
|
7871
7870
|
this.getRecallSectionMaxChars("entity-retrieval") ??
|
|
7872
7871
|
this.config.entityRetrievalMaxChars;
|
|
@@ -7939,11 +7938,11 @@ export class Orchestrator {
|
|
|
7939
7938
|
if (
|
|
7940
7939
|
!this.isRecallSectionEnabled(
|
|
7941
7940
|
"knowledge-index",
|
|
7942
|
-
this.config.
|
|
7941
|
+
resolveRecallAuxiliaryCapabilities(this.config).knowledgeIndex,
|
|
7943
7942
|
)
|
|
7944
7943
|
)
|
|
7945
7944
|
return null;
|
|
7946
|
-
if (!this.config.
|
|
7945
|
+
if (!resolveRecallAuxiliaryCapabilities(this.config).knowledgeIndex) return null;
|
|
7947
7946
|
const t0 = Date.now();
|
|
7948
7947
|
try {
|
|
7949
7948
|
const knowledgeIndexMaxChars =
|
|
@@ -8034,11 +8033,11 @@ export class Orchestrator {
|
|
|
8034
8033
|
if (
|
|
8035
8034
|
!this.isRecallSectionEnabled(
|
|
8036
8035
|
"verbatim-artifacts",
|
|
8037
|
-
this.config.
|
|
8036
|
+
resolvePresentationCapabilities(this.config).verbatimArtifacts === true,
|
|
8038
8037
|
)
|
|
8039
8038
|
)
|
|
8040
8039
|
return [];
|
|
8041
|
-
if (!this.config.
|
|
8040
|
+
if (!resolvePresentationCapabilities(this.config).verbatimArtifacts) return [];
|
|
8042
8041
|
const t0 = Date.now();
|
|
8043
8042
|
const targetCount = computeArtifactRecallLimit(
|
|
8044
8043
|
recallMode,
|
|
@@ -8269,10 +8268,10 @@ export class Orchestrator {
|
|
|
8269
8268
|
const calibrationPromise = (async (): Promise<string | null> => {
|
|
8270
8269
|
const t0 = Date.now();
|
|
8271
8270
|
if (
|
|
8272
|
-
!this.config.
|
|
8271
|
+
!resolveConsolidationCapabilities(this.config).calibration ||
|
|
8273
8272
|
!this.isRecallSectionEnabled(
|
|
8274
8273
|
"calibration-rules",
|
|
8275
|
-
this.config.
|
|
8274
|
+
resolveConsolidationCapabilities(this.config).calibration === true,
|
|
8276
8275
|
)
|
|
8277
8276
|
) {
|
|
8278
8277
|
recordRecallSectionMetric({
|
|
@@ -8434,7 +8433,7 @@ export class Orchestrator {
|
|
|
8434
8433
|
query: retrievalQuery,
|
|
8435
8434
|
maxResults,
|
|
8436
8435
|
sessionKey,
|
|
8437
|
-
anchorsEnabled: this.config.
|
|
8436
|
+
anchorsEnabled: resolveConsolidationCapabilities(this.config).abstractionAnchors,
|
|
8438
8437
|
abortSignal: harmonicRetrievalAbort.signal,
|
|
8439
8438
|
}),
|
|
8440
8439
|
),
|
|
@@ -8481,10 +8480,10 @@ export class Orchestrator {
|
|
|
8481
8480
|
const verifiedRecallPromise = (async (): Promise<string | null> => {
|
|
8482
8481
|
const t0 = Date.now();
|
|
8483
8482
|
if (
|
|
8484
|
-
!this.config.
|
|
8483
|
+
!resolveRecallAuxiliaryCapabilities(this.config).verifiedRecall ||
|
|
8485
8484
|
!this.isRecallSectionEnabled(
|
|
8486
8485
|
"verified-episodes",
|
|
8487
|
-
this.config.
|
|
8486
|
+
resolveRecallAuxiliaryCapabilities(this.config).verifiedRecall === true,
|
|
8488
8487
|
)
|
|
8489
8488
|
) {
|
|
8490
8489
|
recordRecallSectionMetric({
|
|
@@ -8570,10 +8569,10 @@ export class Orchestrator {
|
|
|
8570
8569
|
const verifiedRulesPromise = (async (): Promise<string | null> => {
|
|
8571
8570
|
const t0 = Date.now();
|
|
8572
8571
|
if (
|
|
8573
|
-
!this.config.
|
|
8572
|
+
!resolveRecallAuxiliaryCapabilities(this.config).semanticRuleVerification ||
|
|
8574
8573
|
!this.isRecallSectionEnabled(
|
|
8575
8574
|
"verified-rules",
|
|
8576
|
-
this.config.
|
|
8575
|
+
resolveRecallAuxiliaryCapabilities(this.config).semanticRuleVerification === true,
|
|
8577
8576
|
)
|
|
8578
8577
|
) {
|
|
8579
8578
|
recordRecallSectionMetric({
|
|
@@ -8659,10 +8658,10 @@ export class Orchestrator {
|
|
|
8659
8658
|
const t0 = Date.now();
|
|
8660
8659
|
if (
|
|
8661
8660
|
!resolveCreationMemoryCapabilities(this.config).creationMemory ||
|
|
8662
|
-
!this.config.
|
|
8661
|
+
!resolveRecallAuxiliaryCapabilities(this.config).workProductRecall ||
|
|
8663
8662
|
!this.isRecallSectionEnabled(
|
|
8664
8663
|
"work-products",
|
|
8665
|
-
this.config.
|
|
8664
|
+
resolveRecallAuxiliaryCapabilities(this.config).workProductRecall === true,
|
|
8666
8665
|
)
|
|
8667
8666
|
) {
|
|
8668
8667
|
recordRecallSectionMetric({
|
|
@@ -9170,7 +9169,7 @@ export class Orchestrator {
|
|
|
9170
9169
|
const transcriptPromise = (async (): Promise<string | null> => {
|
|
9171
9170
|
const t0 = Date.now();
|
|
9172
9171
|
if (
|
|
9173
|
-
!this.config.
|
|
9172
|
+
!resolvePresentationCapabilities(this.config).transcript ||
|
|
9174
9173
|
!this.isRecallSectionEnabled("transcript", true)
|
|
9175
9174
|
) {
|
|
9176
9175
|
recordRecallSectionMetric({
|
|
@@ -9276,7 +9275,7 @@ export class Orchestrator {
|
|
|
9276
9275
|
this._recallWorkspaceOverrides.get(effectiveSessionKey);
|
|
9277
9276
|
this._recallWorkspaceOverrides.delete(effectiveSessionKey);
|
|
9278
9277
|
|
|
9279
|
-
if (!this.config.
|
|
9278
|
+
if (!resolveRecallAuxiliaryCapabilities(this.config).compactionReset) return null;
|
|
9280
9279
|
|
|
9281
9280
|
const workspaceDir =
|
|
9282
9281
|
compactionWorkspaceDir ||
|
|
@@ -9629,9 +9628,9 @@ export class Orchestrator {
|
|
|
9629
9628
|
const recentBoxesPromise = observeEnrichmentPromise(
|
|
9630
9629
|
this.isRecallSectionEnabled(
|
|
9631
9630
|
"memory-boxes",
|
|
9632
|
-
this.config.
|
|
9631
|
+
resolvePresentationCapabilities(this.config).memoryBoxes === true,
|
|
9633
9632
|
) &&
|
|
9634
|
-
this.config.
|
|
9633
|
+
resolvePresentationCapabilities(this.config).memoryBoxes &&
|
|
9635
9634
|
this.config.boxRecallDays > 0
|
|
9636
9635
|
? Promise.all(
|
|
9637
9636
|
profileStorages.map((storage) =>
|
|
@@ -12734,7 +12733,7 @@ export class Orchestrator {
|
|
|
12734
12733
|
): Promise<void> {
|
|
12735
12734
|
const mode = this.config.correctionCaptureMode;
|
|
12736
12735
|
if (mode === "off") return;
|
|
12737
|
-
if (!this.config.
|
|
12736
|
+
if (!resolveRecallAuxiliaryCapabilities(this.config).correction) return;
|
|
12738
12737
|
|
|
12739
12738
|
try {
|
|
12740
12739
|
const corrections = detectPassiveCorrections(
|
|
@@ -12754,7 +12753,7 @@ export class Orchestrator {
|
|
|
12754
12753
|
const result = await capturePassiveCorrections(
|
|
12755
12754
|
corrections,
|
|
12756
12755
|
{
|
|
12757
|
-
correctionEnabled: this.config.
|
|
12756
|
+
correctionEnabled: resolveRecallAuxiliaryCapabilities(this.config).correction,
|
|
12758
12757
|
isLiveSession: opts.isLiveSession,
|
|
12759
12758
|
bufferKey: opts.bufferKey,
|
|
12760
12759
|
sessionKey: opts.sessionKey,
|
|
@@ -13188,7 +13187,7 @@ export class Orchestrator {
|
|
|
13188
13187
|
}
|
|
13189
13188
|
|
|
13190
13189
|
let threadIdForExtraction: string | null = null;
|
|
13191
|
-
if (this.config.
|
|
13190
|
+
if (resolvePresentationCapabilities(this.config).threading && turns.length > 0) {
|
|
13192
13191
|
const lastTurn = turns[turns.length - 1];
|
|
13193
13192
|
try {
|
|
13194
13193
|
threadIdForExtraction = await this.threading.processTurn(lastTurn, []);
|
|
@@ -13318,7 +13317,7 @@ export class Orchestrator {
|
|
|
13318
13317
|
// Topics are derived from the current extraction's facts and entities only —
|
|
13319
13318
|
// not from readAllMemories() — so box topics accurately reflect the current
|
|
13320
13319
|
// session window and the call is free of expensive full-corpus I/O.
|
|
13321
|
-
if (this.config.
|
|
13320
|
+
if (resolvePresentationCapabilities(this.config).memoryBoxes && persistedIds.length > 0) {
|
|
13322
13321
|
const extractionTopics = deriveTopicsFromExtraction(result);
|
|
13323
13322
|
// Derive episodic metadata from buffer turns (REMem-inspired)
|
|
13324
13323
|
const firstUserTurn = turns.find((t) => t.role === "user");
|
|
@@ -13339,7 +13338,7 @@ export class Orchestrator {
|
|
|
13339
13338
|
// Batch-append persisted IDs so non-fact memories (entities/questions) are
|
|
13340
13339
|
// always attached to the thread. The helper excludes pending_review ids (#1635).
|
|
13341
13340
|
if (
|
|
13342
|
-
this.config.
|
|
13341
|
+
resolvePresentationCapabilities(this.config).threading &&
|
|
13343
13342
|
threadIdForExtraction &&
|
|
13344
13343
|
persistedIds.length > 0
|
|
13345
13344
|
) {
|
|
@@ -13350,7 +13349,7 @@ export class Orchestrator {
|
|
|
13350
13349
|
}
|
|
13351
13350
|
|
|
13352
13351
|
// Thread title update for the already-established thread context.
|
|
13353
|
-
if (this.config.
|
|
13352
|
+
if (resolvePresentationCapabilities(this.config).threading && threadIdForExtraction) {
|
|
13354
13353
|
const conversationContent = turns.map((t) => t.content).join(" ");
|
|
13355
13354
|
try {
|
|
13356
13355
|
await this.threading.updateThreadTitle(
|
|
@@ -15251,7 +15250,7 @@ export class Orchestrator {
|
|
|
15251
15250
|
|
|
15252
15251
|
if (chunkResult.chunked && chunkResult.chunks.length > 1) {
|
|
15253
15252
|
// Classify memory kind (v8.0 Phase 2B: HiMem episode/note dual store)
|
|
15254
|
-
const memoryKind = this.config.
|
|
15253
|
+
const memoryKind = resolvePresentationCapabilities(this.config).episodeNoteMode
|
|
15255
15254
|
? classifyMemoryKind(fact.content, fact.tags ?? [], writeCategory)
|
|
15256
15255
|
: undefined;
|
|
15257
15256
|
|
|
@@ -15508,7 +15507,7 @@ export class Orchestrator {
|
|
|
15508
15507
|
}
|
|
15509
15508
|
try {
|
|
15510
15509
|
if (
|
|
15511
|
-
this.config.
|
|
15510
|
+
resolvePresentationCapabilities(this.config).verbatimArtifacts &&
|
|
15512
15511
|
this.config.verbatimArtifactCategories.includes(writeCategory) &&
|
|
15513
15512
|
fact.confidence >= this.config.verbatimArtifactsMinConfidence &&
|
|
15514
15513
|
!postWriteGuard
|
|
@@ -15605,7 +15604,7 @@ export class Orchestrator {
|
|
|
15605
15604
|
const memoryKind =
|
|
15606
15605
|
writeCategory === "procedure"
|
|
15607
15606
|
? undefined
|
|
15608
|
-
: this.config.
|
|
15607
|
+
: resolvePresentationCapabilities(this.config).episodeNoteMode
|
|
15609
15608
|
? classifyMemoryKind(fact.content, fact.tags ?? [], writeCategory)
|
|
15610
15609
|
: undefined;
|
|
15611
15610
|
|
|
@@ -15805,7 +15804,7 @@ export class Orchestrator {
|
|
|
15805
15804
|
}
|
|
15806
15805
|
}
|
|
15807
15806
|
if (
|
|
15808
|
-
this.config.
|
|
15807
|
+
resolvePresentationCapabilities(this.config).verbatimArtifacts &&
|
|
15809
15808
|
this.config.verbatimArtifactCategories.includes(writeCategory) &&
|
|
15810
15809
|
fact.confidence >= this.config.verbatimArtifactsMinConfidence &&
|
|
15811
15810
|
!postWriteGuard
|
|
@@ -16421,7 +16420,7 @@ export class Orchestrator {
|
|
|
16421
16420
|
log.info(`merged ${entitiesMerged} fragmented entity files`);
|
|
16422
16421
|
}
|
|
16423
16422
|
|
|
16424
|
-
if (this.config.
|
|
16423
|
+
if (resolvePresentationCapabilities(this.config).entitySummary) {
|
|
16425
16424
|
try {
|
|
16426
16425
|
const synthesized = await this.processEntitySynthesisQueue(
|
|
16427
16426
|
this.config.defaultNamespace,
|
|
@@ -16565,7 +16564,7 @@ export class Orchestrator {
|
|
|
16565
16564
|
}
|
|
16566
16565
|
|
|
16567
16566
|
// Semantic consolidation pass — find similar memories, synthesize canonical versions
|
|
16568
|
-
if (this.config.
|
|
16567
|
+
if (resolveConsolidationCapabilities(this.config).semanticConsolidation) {
|
|
16569
16568
|
try {
|
|
16570
16569
|
const stateFilePath = path.join(
|
|
16571
16570
|
this.config.memoryDir,
|