@remnic/core 9.3.738 → 9.3.740
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.d.ts +6 -6
- package/dist/access-boundary.js +13 -13
- package/dist/access-cli.js +35 -35
- package/dist/access-http.d.ts +6 -6
- package/dist/access-http.js +18 -18
- package/dist/access-mcp.d.ts +6 -6
- package/dist/access-mcp.js +17 -17
- package/dist/access-operations-batch.js +15 -15
- package/dist/access-operations.d.ts +6 -6
- package/dist/access-operations.js +16 -16
- package/dist/{access-service-DwQ6BIQw.d.ts → access-service-Cbk-Kv_A.d.ts} +1 -1
- package/dist/access-service.d.ts +6 -6
- package/dist/access-service.js +12 -12
- package/dist/access-surface-catalog.d.ts +6 -6
- package/dist/active-memory-bridge.js +3 -3
- package/dist/bootstrap.d.ts +5 -5
- package/dist/briefing.js +2 -2
- package/dist/buffer.js +2 -2
- package/dist/capabilities.d.ts +97 -1
- package/dist/capabilities.js +7 -1
- package/dist/causal-consolidation.js +4 -3
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/{chunk-IFCM6OLK.js → chunk-3TUDKDTQ.js} +7 -7
- package/dist/{chunk-A7INTIC5.js → chunk-4J53ZVPQ.js} +3 -3
- package/dist/{chunk-XYUFGHUW.js → chunk-56F6EAQ6.js} +2 -2
- package/dist/{chunk-F6OEXJQQ.js → chunk-6XG3NQRC.js} +2 -2
- package/dist/{chunk-24ZLC5QN.js → chunk-7N7S2RKF.js} +2 -2
- package/dist/{chunk-Y5OOHER4.js → chunk-7Y5KKMIP.js} +12 -11
- package/dist/chunk-7Y5KKMIP.js.map +1 -0
- package/dist/{chunk-VRBBZH4U.js → chunk-AX4TRSRE.js} +3 -3
- package/dist/{chunk-66RZ4EIT.js → chunk-BE6NEQLF.js} +3 -3
- package/dist/{chunk-YF2MMBKA.js → chunk-BJPL5WAL.js} +3 -3
- package/dist/{chunk-EO5QWINU.js → chunk-C3Z5YJSM.js} +5 -2
- package/dist/chunk-C3Z5YJSM.js.map +1 -0
- package/dist/{chunk-GEXI357K.js → chunk-C7C5WIIF.js} +2 -2
- package/dist/{chunk-L3TYGUTH.js → chunk-CMPXLMC3.js} +3 -3
- package/dist/{chunk-W2FBVBQ4.js → chunk-DBVBV2RF.js} +4 -4
- package/dist/{chunk-JQSP7YBJ.js → chunk-ELL5VYXC.js} +5 -4
- package/dist/chunk-ELL5VYXC.js.map +1 -0
- package/dist/{chunk-IQOEW5YV.js → chunk-FCQ7ZYCQ.js} +2 -2
- package/dist/{chunk-IIBFCZA7.js → chunk-FWXLKH2H.js} +3 -3
- package/dist/{chunk-RJBW4EOU.js → chunk-G7Q4D2G3.js} +74 -2
- package/dist/{chunk-RJBW4EOU.js.map → chunk-G7Q4D2G3.js.map} +1 -1
- package/dist/{chunk-WVAEIKUY.js → chunk-GPX5E36D.js} +5 -4
- package/dist/chunk-GPX5E36D.js.map +1 -0
- package/dist/{chunk-23PLOBWT.js → chunk-H3WSZWHK.js} +22 -20
- package/dist/chunk-H3WSZWHK.js.map +1 -0
- package/dist/{chunk-Q6BAA57B.js → chunk-JFCS6PQU.js} +2 -2
- package/dist/chunk-JFCS6PQU.js.map +1 -0
- package/dist/{chunk-CKHPUOAP.js → chunk-K2N6WIZM.js} +3 -3
- package/dist/{chunk-BHJAMSVC.js → chunk-LD6A7XG5.js} +7 -7
- package/dist/{chunk-AKKFHN3I.js → chunk-M4WI23X3.js} +2 -2
- package/dist/{chunk-N2O23WYA.js → chunk-M5KLYHHI.js} +2 -2
- package/dist/{chunk-TNLXCSXV.js → chunk-O4IWVWSW.js} +5 -4
- package/dist/chunk-O4IWVWSW.js.map +1 -0
- package/dist/{chunk-OQQRWPFZ.js → chunk-OS5RKJOH.js} +2 -2
- package/dist/{chunk-MAU7DFCJ.js → chunk-OT5K26NG.js} +5 -4
- package/dist/chunk-OT5K26NG.js.map +1 -0
- package/dist/{chunk-DS3FZ7GS.js → chunk-OUSOMUFV.js} +2 -2
- package/dist/{chunk-7B7IPPN5.js → chunk-OVYBENIJ.js} +3 -3
- package/dist/{chunk-5RZOFIDL.js → chunk-PI4JHLDD.js} +6 -3
- package/dist/chunk-PI4JHLDD.js.map +1 -0
- package/dist/{chunk-EU543UDC.js → chunk-QCO2QFLZ.js} +7 -7
- package/dist/chunk-QCO2QFLZ.js.map +1 -0
- package/dist/{chunk-YXOXAQ5Y.js → chunk-TQQN64J2.js} +5 -4
- package/dist/chunk-TQQN64J2.js.map +1 -0
- package/dist/{chunk-WDJCZQB4.js → chunk-UGFPGWJB.js} +2 -2
- package/dist/{chunk-75PDC7VT.js → chunk-UOVDO6TC.js} +6 -5
- package/dist/chunk-UOVDO6TC.js.map +1 -0
- package/dist/{chunk-BVG2IZOB.js → chunk-USHVHI6J.js} +7 -6
- package/dist/chunk-USHVHI6J.js.map +1 -0
- package/dist/{chunk-56LP72AD.js → chunk-UYYSOMS2.js} +4 -4
- package/dist/{chunk-EKQ3LWBM.js → chunk-VC7QELR6.js} +659 -584
- package/dist/chunk-VC7QELR6.js.map +1 -0
- package/dist/{chunk-XIQAOGAA.js → chunk-WGDE2TJP.js} +7 -6
- package/dist/chunk-WGDE2TJP.js.map +1 -0
- package/dist/{chunk-UFS7OXGL.js → chunk-WHEF76BQ.js} +5 -2
- package/dist/chunk-WHEF76BQ.js.map +1 -0
- package/dist/{chunk-QTJOORGN.js → chunk-WIMKOTNY.js} +2 -2
- package/dist/{chunk-GXTYEG7Q.js → chunk-WO22UEM3.js} +2 -2
- package/dist/{chunk-BHQQVUEQ.js → chunk-X5PMDVY4.js} +6 -5
- package/dist/{chunk-BHQQVUEQ.js.map → chunk-X5PMDVY4.js.map} +1 -1
- package/dist/{chunk-C53JDEH3.js → chunk-Y62QPRKV.js} +2 -2
- package/dist/{chunk-WFNH4UDF.js → chunk-Y6PNYJVO.js} +3 -3
- package/dist/{chunk-6YKIYQU7.js → chunk-YNHRWFAP.js} +5 -2
- package/dist/{chunk-6YKIYQU7.js.map → chunk-YNHRWFAP.js.map} +1 -1
- package/dist/{cli-BlEIWDQw.d.ts → cli-BQW2xKdb.d.ts} +2 -2
- package/dist/cli.d.ts +7 -7
- package/dist/cli.js +29 -29
- package/dist/compounding/engine.js +4 -4
- package/dist/connectors/codex-materialize-runner.js +2 -2
- package/dist/connectors/index.js +4 -3
- package/dist/contradiction/index.js +2 -2
- package/dist/{contradiction-scan-CWO3LIWV.js → contradiction-scan-UERKJESC.js} +3 -3
- package/dist/day-summary.js +2 -1
- package/dist/embedding-fallback.js +2 -2
- package/dist/entity-retrieval.js +3 -3
- package/dist/explicit-capture.d.ts +5 -5
- package/dist/explicit-capture.js +2 -2
- package/dist/extraction.js +4 -4
- package/dist/{first-start-migration-5DXD3TF2.js → first-start-migration-GQ3UQNIL.js} +2 -2
- package/dist/index.d.ts +8 -8
- package/dist/index.js +45 -45
- package/dist/local-llm.js +2 -2
- package/dist/maintenance/memory-governance.js +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +6 -6
- package/dist/namespaces/migrate.js +7 -7
- package/dist/namespaces/principal.js +2 -2
- package/dist/namespaces/search.js +4 -4
- package/dist/namespaces/storage.js +3 -3
- package/dist/operator-toolkit.js +13 -13
- package/dist/orchestration/compression-guideline-coordinator.js +2 -2
- package/dist/orchestration/maintenance.js +7 -7
- package/dist/{orchestrator-CJZ21ZiB.d.ts → orchestrator-BOAFN_Yr.d.ts} +186 -56
- package/dist/orchestrator.d.ts +4 -4
- package/dist/orchestrator.js +29 -29
- package/dist/search/embed-helper.js +2 -2
- package/dist/search/factory.js +3 -3
- package/dist/search/index.js +3 -3
- package/dist/semantic-consolidation.js +4 -3
- package/dist/semantic-rule-promotion.js +2 -2
- package/dist/semantic-rule-verifier.js +2 -2
- package/dist/shared-context/manager.js +2 -1
- package/dist/storage.d.ts +1 -1
- package/dist/storage.js +1 -1
- package/dist/summarizer.js +3 -3
- package/dist/{tier-stats-QID73BBB.js → tier-stats-CSKL7BDG.js} +2 -2
- package/dist/verified-recall.js +2 -2
- package/package.json +2 -2
- package/src/access-service.ts +2 -1
- package/src/capabilities.test.ts +166 -0
- package/src/capabilities.ts +267 -0
- package/src/cli/research-status-commands.ts +2 -1
- package/src/cli.ts +3 -2
- package/src/compounding/engine.ts +2 -1
- package/src/connectors/codex-marketplace.ts +2 -1
- package/src/day-summary.ts +2 -1
- package/src/embedding-fallback.ts +2 -1
- package/src/extraction.ts +3 -2
- package/src/local-llm.ts +2 -1
- package/src/maintenance/namespace-maintenance-fanout.ts +2 -1
- package/src/maintenance/namespace-planner.ts +2 -1
- package/src/operator-toolkit.ts +1 -0
- package/src/orchestration/conversation-index-coordinator.ts +344 -0
- package/src/orchestration/recall-rerank-coordinator.ts +425 -0
- package/src/orchestration/semantic-consolidation-coordinator.ts +3 -2
- package/src/orchestrator.ts +89 -598
- package/src/search/embed-helper.ts +2 -1
- package/src/search/factory.ts +2 -1
- package/src/semantic-consolidation.ts +2 -1
- package/src/shared-context/manager.ts +3 -2
- package/src/storage.ts +1 -1
- package/src/summarizer.ts +3 -2
- package/dist/chunk-23PLOBWT.js.map +0 -1
- package/dist/chunk-5RZOFIDL.js.map +0 -1
- package/dist/chunk-75PDC7VT.js.map +0 -1
- package/dist/chunk-BVG2IZOB.js.map +0 -1
- package/dist/chunk-EKQ3LWBM.js.map +0 -1
- package/dist/chunk-EO5QWINU.js.map +0 -1
- package/dist/chunk-EU543UDC.js.map +0 -1
- package/dist/chunk-JQSP7YBJ.js.map +0 -1
- package/dist/chunk-MAU7DFCJ.js.map +0 -1
- package/dist/chunk-Q6BAA57B.js.map +0 -1
- package/dist/chunk-TNLXCSXV.js.map +0 -1
- package/dist/chunk-UFS7OXGL.js.map +0 -1
- package/dist/chunk-WVAEIKUY.js.map +0 -1
- package/dist/chunk-XIQAOGAA.js.map +0 -1
- package/dist/chunk-Y5OOHER4.js.map +0 -1
- package/dist/chunk-YXOXAQ5Y.js.map +0 -1
- /package/dist/{chunk-IFCM6OLK.js.map → chunk-3TUDKDTQ.js.map} +0 -0
- /package/dist/{chunk-A7INTIC5.js.map → chunk-4J53ZVPQ.js.map} +0 -0
- /package/dist/{chunk-XYUFGHUW.js.map → chunk-56F6EAQ6.js.map} +0 -0
- /package/dist/{chunk-F6OEXJQQ.js.map → chunk-6XG3NQRC.js.map} +0 -0
- /package/dist/{chunk-24ZLC5QN.js.map → chunk-7N7S2RKF.js.map} +0 -0
- /package/dist/{chunk-VRBBZH4U.js.map → chunk-AX4TRSRE.js.map} +0 -0
- /package/dist/{chunk-66RZ4EIT.js.map → chunk-BE6NEQLF.js.map} +0 -0
- /package/dist/{chunk-YF2MMBKA.js.map → chunk-BJPL5WAL.js.map} +0 -0
- /package/dist/{chunk-GEXI357K.js.map → chunk-C7C5WIIF.js.map} +0 -0
- /package/dist/{chunk-L3TYGUTH.js.map → chunk-CMPXLMC3.js.map} +0 -0
- /package/dist/{chunk-W2FBVBQ4.js.map → chunk-DBVBV2RF.js.map} +0 -0
- /package/dist/{chunk-IQOEW5YV.js.map → chunk-FCQ7ZYCQ.js.map} +0 -0
- /package/dist/{chunk-IIBFCZA7.js.map → chunk-FWXLKH2H.js.map} +0 -0
- /package/dist/{chunk-CKHPUOAP.js.map → chunk-K2N6WIZM.js.map} +0 -0
- /package/dist/{chunk-BHJAMSVC.js.map → chunk-LD6A7XG5.js.map} +0 -0
- /package/dist/{chunk-AKKFHN3I.js.map → chunk-M4WI23X3.js.map} +0 -0
- /package/dist/{chunk-N2O23WYA.js.map → chunk-M5KLYHHI.js.map} +0 -0
- /package/dist/{chunk-OQQRWPFZ.js.map → chunk-OS5RKJOH.js.map} +0 -0
- /package/dist/{chunk-DS3FZ7GS.js.map → chunk-OUSOMUFV.js.map} +0 -0
- /package/dist/{chunk-7B7IPPN5.js.map → chunk-OVYBENIJ.js.map} +0 -0
- /package/dist/{chunk-WDJCZQB4.js.map → chunk-UGFPGWJB.js.map} +0 -0
- /package/dist/{chunk-56LP72AD.js.map → chunk-UYYSOMS2.js.map} +0 -0
- /package/dist/{chunk-QTJOORGN.js.map → chunk-WIMKOTNY.js.map} +0 -0
- /package/dist/{chunk-GXTYEG7Q.js.map → chunk-WO22UEM3.js.map} +0 -0
- /package/dist/{chunk-C53JDEH3.js.map → chunk-Y62QPRKV.js.map} +0 -0
- /package/dist/{chunk-WFNH4UDF.js.map → chunk-Y6PNYJVO.js.map} +0 -0
- /package/dist/{contradiction-scan-CWO3LIWV.js.map → contradiction-scan-UERKJESC.js.map} +0 -0
- /package/dist/{first-start-migration-5DXD3TF2.js.map → first-start-migration-GQ3UQNIL.js.map} +0 -0
- /package/dist/{tier-stats-QID73BBB.js.map → tier-stats-CSKL7BDG.js.map} +0 -0
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
resolveQmdCapabilities,
|
|
16
16
|
resolveUtilityLearningCapabilities
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-G7Q4D2G3.js";
|
|
18
18
|
import "./chunk-A2IYSXDQ.js";
|
|
19
19
|
import "./chunk-LPSF4OQH.js";
|
|
20
20
|
import "./chunk-PZ5AY32C.js";
|
|
@@ -153,4 +153,4 @@ export {
|
|
|
153
153
|
formatTierSummaryText,
|
|
154
154
|
summarizeTiers
|
|
155
155
|
};
|
|
156
|
-
//# sourceMappingURL=tier-stats-
|
|
156
|
+
//# sourceMappingURL=tier-stats-CSKL7BDG.js.map
|
package/dist/verified-recall.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedEpisodeResults,
|
|
3
3
|
searchVerifiedEpisodes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-UGFPGWJB.js";
|
|
5
5
|
import "./chunk-7FL4CNPV.js";
|
|
6
6
|
import "./chunk-ZBJMUXZH.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-JFCS6PQU.js";
|
|
8
8
|
import "./chunk-L2B3EE7B.js";
|
|
9
9
|
import "./chunk-M7XQSUBB.js";
|
|
10
10
|
import "./chunk-5UZXUTVO.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.740",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -3000,7 +3000,7 @@
|
|
|
3000
3000
|
"core"
|
|
3001
3001
|
],
|
|
3002
3002
|
"peerDependencies": {
|
|
3003
|
-
"@remnic/coding-graph": "^9.3.
|
|
3003
|
+
"@remnic/coding-graph": "^9.3.740"
|
|
3004
3004
|
},
|
|
3005
3005
|
"peerDependenciesMeta": {
|
|
3006
3006
|
"@remnic/coding-graph": {
|
package/src/access-service.ts
CHANGED
|
@@ -249,6 +249,7 @@ import {
|
|
|
249
249
|
} from "./action-confidence.js";
|
|
250
250
|
import { formatProfileTraceAscii } from "./profiling.js";
|
|
251
251
|
import { resolveAccessSetupCapabilities, resolveGraphConstructionCapabilities, resolveIndexingCapabilities } from "./capabilities.js";
|
|
252
|
+
import { resolveRecallEnhancementCapabilities } from "./capabilities.js";
|
|
252
253
|
|
|
253
254
|
export class EngramAccessInputError extends Error {}
|
|
254
255
|
|
|
@@ -7639,7 +7640,7 @@ export class EngramAccessService {
|
|
|
7639
7640
|
vote: "up" | "down";
|
|
7640
7641
|
note?: string;
|
|
7641
7642
|
}): Promise<{ recorded: boolean; enabled?: boolean; reason?: string }> {
|
|
7642
|
-
if (!this.orchestrator.config.
|
|
7643
|
+
if (!resolveRecallEnhancementCapabilities(this.orchestrator.config).feedback) {
|
|
7643
7644
|
return {
|
|
7644
7645
|
recorded: false,
|
|
7645
7646
|
enabled: false,
|
package/src/capabilities.test.ts
CHANGED
|
@@ -17,6 +17,9 @@ import {
|
|
|
17
17
|
resolvePresentationCapabilities,
|
|
18
18
|
resolveConsolidationCapabilities,
|
|
19
19
|
resolveRecallAuxiliaryCapabilities,
|
|
20
|
+
resolveRecallEnhancementCapabilities,
|
|
21
|
+
resolvePipelineProcessingCapabilities,
|
|
22
|
+
resolveConversationContextCapabilities,
|
|
20
23
|
type CapabilitySet,
|
|
21
24
|
type AccessSetupCapabilitySet,
|
|
22
25
|
type NamespaceCapabilitySet,
|
|
@@ -31,6 +34,9 @@ import {
|
|
|
31
34
|
type PresentationCapabilitySet,
|
|
32
35
|
type ConsolidationCapabilitySet,
|
|
33
36
|
type RecallAuxiliaryCapabilitySet,
|
|
37
|
+
type RecallEnhancementCapabilitySet,
|
|
38
|
+
type PipelineProcessingCapabilitySet,
|
|
39
|
+
type ConversationContextCapabilitySet,
|
|
34
40
|
} from "./capabilities.js";
|
|
35
41
|
|
|
36
42
|
/**
|
|
@@ -1158,3 +1164,163 @@ test("resolveRecallAuxiliaryCapabilities returns a frozen object", () => {
|
|
|
1158
1164
|
const caps = resolveRecallAuxiliaryCapabilities(parseConfig({}));
|
|
1159
1165
|
assert.equal(Object.isFrozen(caps), true, "RecallAuxiliaryCapabilitySet must be frozen");
|
|
1160
1166
|
});
|
|
1167
|
+
|
|
1168
|
+
|
|
1169
|
+
// ---------------------------------------------------------------------------
|
|
1170
|
+
// RecallEnhancementCapabilitySet — gate-parity tests (issue #1523 batch 9).
|
|
1171
|
+
// ---------------------------------------------------------------------------
|
|
1172
|
+
|
|
1173
|
+
const RECALL_ENH_FIELD_TO_FLAG: Record<keyof RecallEnhancementCapabilitySet, string> = {
|
|
1174
|
+
explicitCueRecall: "explicitCueRecallEnabled",
|
|
1175
|
+
targetedFactRecall: "targetedFactRecallEnabled",
|
|
1176
|
+
focusedListRecall: "focusedListRecallEnabled",
|
|
1177
|
+
responseGuidanceRecall: "responseGuidanceRecallEnabled",
|
|
1178
|
+
eventOrderRecall: "eventOrderRecallEnabled",
|
|
1179
|
+
reinforcementRecallBoost: "reinforcementRecallBoostEnabled",
|
|
1180
|
+
recallPlannerTelemetry: "recallPlannerTelemetryEnabled",
|
|
1181
|
+
peerProfileRecall: "peerProfileRecallEnabled",
|
|
1182
|
+
graphAssistShadowEval: "graphAssistShadowEvalEnabled",
|
|
1183
|
+
memoryReconstruction: "memoryReconstructionEnabled",
|
|
1184
|
+
memoryLinking: "memoryLinkingEnabled",
|
|
1185
|
+
causalTrajectoryRecall: "causalTrajectoryRecallEnabled",
|
|
1186
|
+
causalTrajectoryMemory: "causalTrajectoryMemoryEnabled",
|
|
1187
|
+
cmcRetrieval: "cmcRetrievalEnabled",
|
|
1188
|
+
contradictionDetection: "contradictionDetectionEnabled",
|
|
1189
|
+
factArchival: "factArchivalEnabled",
|
|
1190
|
+
entityRelationships: "entityRelationshipsEnabled",
|
|
1191
|
+
entityActivityLog: "entityActivityLogEnabled",
|
|
1192
|
+
compoundingInject: "compoundingInjectEnabled",
|
|
1193
|
+
accessTracking: "accessTrackingEnabled",
|
|
1194
|
+
autoPromoteToShared: "autoPromoteToSharedEnabled",
|
|
1195
|
+
recallGraph: "recallGraphEnabled",
|
|
1196
|
+
feedback: "feedbackEnabled",
|
|
1197
|
+
identity: "identityEnabled",
|
|
1198
|
+
};
|
|
1199
|
+
|
|
1200
|
+
const RECALL_ENH_FIELDS = Object.keys(RECALL_ENH_FIELD_TO_FLAG) as Array<keyof RecallEnhancementCapabilitySet>;
|
|
1201
|
+
|
|
1202
|
+
test("resolveRecallEnhancementCapabilities projects every field from its flag (true variant)", () => {
|
|
1203
|
+
const overrides: Record<string, boolean> = {};
|
|
1204
|
+
for (const flag of Object.values(RECALL_ENH_FIELD_TO_FLAG)) overrides[flag] = true;
|
|
1205
|
+
const config = parseConfig(overrides);
|
|
1206
|
+
const caps = resolveRecallEnhancementCapabilities(config);
|
|
1207
|
+
for (const field of RECALL_ENH_FIELDS) {
|
|
1208
|
+
assert.equal(caps[field], true, `${field} must be true`);
|
|
1209
|
+
}
|
|
1210
|
+
});
|
|
1211
|
+
|
|
1212
|
+
test("resolveRecallEnhancementCapabilities projects every field from its flag (false variant)", () => {
|
|
1213
|
+
const overrides: Record<string, boolean> = {};
|
|
1214
|
+
for (const flag of Object.values(RECALL_ENH_FIELD_TO_FLAG)) overrides[flag] = false;
|
|
1215
|
+
const config = parseConfig(overrides);
|
|
1216
|
+
const caps = resolveRecallEnhancementCapabilities(config);
|
|
1217
|
+
for (const field of RECALL_ENH_FIELDS) {
|
|
1218
|
+
assert.equal(caps[field], false, `${field} must be false`);
|
|
1219
|
+
}
|
|
1220
|
+
});
|
|
1221
|
+
|
|
1222
|
+
test("resolveRecallEnhancementCapabilities returns a frozen object", () => {
|
|
1223
|
+
const caps = resolveRecallEnhancementCapabilities(parseConfig({}));
|
|
1224
|
+
assert.equal(Object.isFrozen(caps), true, "RecallEnhancementCapabilitySet must be frozen");
|
|
1225
|
+
});
|
|
1226
|
+
|
|
1227
|
+
// ---------------------------------------------------------------------------
|
|
1228
|
+
// PipelineProcessingCapabilitySet — gate-parity tests (issue #1523 batch 9).
|
|
1229
|
+
// ---------------------------------------------------------------------------
|
|
1230
|
+
|
|
1231
|
+
const PIPELINE_FIELD_TO_FLAG: Record<keyof PipelineProcessingCapabilitySet, string> = {
|
|
1232
|
+
chunking: "chunkingEnabled",
|
|
1233
|
+
semanticChunking: "semanticChunkingEnabled",
|
|
1234
|
+
semanticDedup: "semanticDedupEnabled",
|
|
1235
|
+
summarization: "summarizationEnabled",
|
|
1236
|
+
topicExtraction: "topicExtractionEnabled",
|
|
1237
|
+
sessionObserver: "sessionObserverEnabled",
|
|
1238
|
+
profiling: "profilingEnabled",
|
|
1239
|
+
checkpoint: "checkpointEnabled",
|
|
1240
|
+
traceWeaver: "traceWeaverEnabled",
|
|
1241
|
+
routingRules: "routingRulesEnabled",
|
|
1242
|
+
inlineSourceAttribution: "inlineSourceAttributionEnabled",
|
|
1243
|
+
negativeExamples: "negativeExamplesEnabled",
|
|
1244
|
+
hourlySummaries: "hourlySummariesEnabled",
|
|
1245
|
+
lcm: "lcmEnabled",
|
|
1246
|
+
localLlmFast: "localLlmFastEnabled",
|
|
1247
|
+
proactiveExtraction: "proactiveExtractionEnabled",
|
|
1248
|
+
delinearize: "delinearizeEnabled",
|
|
1249
|
+
slowLog: "slowLogEnabled",
|
|
1250
|
+
hostEmbeddingProvider: "hostEmbeddingProviderEnabled",
|
|
1251
|
+
memoryExtensions: "memoryExtensionsEnabled",
|
|
1252
|
+
hourlySummariesExtended: "hourlySummariesExtendedEnabled",
|
|
1253
|
+
};
|
|
1254
|
+
|
|
1255
|
+
const PIPELINE_FIELDS = Object.keys(PIPELINE_FIELD_TO_FLAG) as Array<keyof PipelineProcessingCapabilitySet>;
|
|
1256
|
+
|
|
1257
|
+
test("resolvePipelineProcessingCapabilities projects every field from its flag (true variant)", () => {
|
|
1258
|
+
const overrides: Record<string, boolean> = {};
|
|
1259
|
+
for (const flag of Object.values(PIPELINE_FIELD_TO_FLAG)) overrides[flag] = true;
|
|
1260
|
+
const config = parseConfig(overrides);
|
|
1261
|
+
const caps = resolvePipelineProcessingCapabilities(config);
|
|
1262
|
+
for (const field of PIPELINE_FIELDS) {
|
|
1263
|
+
assert.equal(caps[field], true, `${field} must be true`);
|
|
1264
|
+
}
|
|
1265
|
+
});
|
|
1266
|
+
|
|
1267
|
+
test("resolvePipelineProcessingCapabilities projects every field from its flag (false variant)", () => {
|
|
1268
|
+
const overrides: Record<string, boolean> = {};
|
|
1269
|
+
for (const flag of Object.values(PIPELINE_FIELD_TO_FLAG)) overrides[flag] = false;
|
|
1270
|
+
const config = parseConfig(overrides);
|
|
1271
|
+
const caps = resolvePipelineProcessingCapabilities(config);
|
|
1272
|
+
for (const field of PIPELINE_FIELDS) {
|
|
1273
|
+
assert.equal(caps[field], false, `${field} must be false`);
|
|
1274
|
+
}
|
|
1275
|
+
});
|
|
1276
|
+
|
|
1277
|
+
test("resolvePipelineProcessingCapabilities returns a frozen object", () => {
|
|
1278
|
+
const caps = resolvePipelineProcessingCapabilities(parseConfig({}));
|
|
1279
|
+
assert.equal(Object.isFrozen(caps), true, "PipelineProcessingCapabilitySet must be frozen");
|
|
1280
|
+
});
|
|
1281
|
+
|
|
1282
|
+
// ---------------------------------------------------------------------------
|
|
1283
|
+
// ConversationContextCapabilitySet — gate-parity tests (issue #1523 batch 9).
|
|
1284
|
+
// ---------------------------------------------------------------------------
|
|
1285
|
+
|
|
1286
|
+
const CONV_CTX_FIELD_TO_FLAG: Record<keyof ConversationContextCapabilitySet, string> = {
|
|
1287
|
+
sharedContext: "sharedContextEnabled",
|
|
1288
|
+
intentRouting: "intentRoutingEnabled",
|
|
1289
|
+
crossSignalsSemantic: "crossSignalsSemanticEnabled",
|
|
1290
|
+
sharedCrossSignalSemantic: "sharedCrossSignalSemanticEnabled",
|
|
1291
|
+
operatorAwareConsolidation: "operatorAwareConsolidationEnabled",
|
|
1292
|
+
peerProfileReasoner: "peerProfileReasonerEnabled",
|
|
1293
|
+
cmcConsolidation: "cmcConsolidationEnabled",
|
|
1294
|
+
maintenanceNamespaceFanout: "maintenanceNamespaceFanoutEnabled",
|
|
1295
|
+
citations: "citationsEnabled",
|
|
1296
|
+
behaviorLoopAutoTune: "behaviorLoopAutoTuneEnabled",
|
|
1297
|
+
semanticRulePromotion: "semanticRulePromotionEnabled",
|
|
1298
|
+
codexMarketplace: "codexMarketplaceEnabled",
|
|
1299
|
+
};
|
|
1300
|
+
|
|
1301
|
+
const CONV_CTX_FIELDS = Object.keys(CONV_CTX_FIELD_TO_FLAG) as Array<keyof ConversationContextCapabilitySet>;
|
|
1302
|
+
|
|
1303
|
+
test("resolveConversationContextCapabilities projects every field from its flag (true variant)", () => {
|
|
1304
|
+
const overrides: Record<string, boolean> = {};
|
|
1305
|
+
for (const flag of Object.values(CONV_CTX_FIELD_TO_FLAG)) overrides[flag] = true;
|
|
1306
|
+
const config = parseConfig(overrides);
|
|
1307
|
+
const caps = resolveConversationContextCapabilities(config);
|
|
1308
|
+
for (const field of CONV_CTX_FIELDS) {
|
|
1309
|
+
assert.equal(caps[field], true, `${field} must be true`);
|
|
1310
|
+
}
|
|
1311
|
+
});
|
|
1312
|
+
|
|
1313
|
+
test("resolveConversationContextCapabilities projects every field from its flag (false variant)", () => {
|
|
1314
|
+
const overrides: Record<string, boolean> = {};
|
|
1315
|
+
for (const flag of Object.values(CONV_CTX_FIELD_TO_FLAG)) overrides[flag] = false;
|
|
1316
|
+
const config = parseConfig(overrides);
|
|
1317
|
+
const caps = resolveConversationContextCapabilities(config);
|
|
1318
|
+
for (const field of CONV_CTX_FIELDS) {
|
|
1319
|
+
assert.equal(caps[field], false, `${field} must be false`);
|
|
1320
|
+
}
|
|
1321
|
+
});
|
|
1322
|
+
|
|
1323
|
+
test("resolveConversationContextCapabilities returns a frozen object", () => {
|
|
1324
|
+
const caps = resolveConversationContextCapabilities(parseConfig({}));
|
|
1325
|
+
assert.equal(Object.isFrozen(caps), true, "ConversationContextCapabilitySet must be frozen");
|
|
1326
|
+
});
|
package/src/capabilities.ts
CHANGED
|
@@ -1016,3 +1016,270 @@ export function resolveRecallAuxiliaryCapabilities(config: RecallAuxiliaryConfig
|
|
|
1016
1016
|
cronRecallPolicy: config.cronRecallPolicyEnabled,
|
|
1017
1017
|
});
|
|
1018
1018
|
}
|
|
1019
|
+
|
|
1020
|
+
// ---------------------------------------------------------------------------
|
|
1021
|
+
// RecallEnhancement capability set (issue #1523 batch 9).
|
|
1022
|
+
//
|
|
1023
|
+
// These 24 flags gate recall enrichment, memory reconstruction, entity
|
|
1024
|
+
// relationships, causal trajectory recall, CMC retrieval, and related
|
|
1025
|
+
// enhancement paths. Read sites span orchestrator, access-service, graph-recall,
|
|
1026
|
+
// and CLI research-status commands. All flags are non-optional booleans on
|
|
1027
|
+
// PluginConfig (defaults resolved at the parse boundary), so the projection
|
|
1028
|
+
// is a pure pass-through.
|
|
1029
|
+
// ---------------------------------------------------------------------------
|
|
1030
|
+
|
|
1031
|
+
/**
|
|
1032
|
+
* Frozen projection of recall-enhancement feature gates (issue #1523 batch 9).
|
|
1033
|
+
*/
|
|
1034
|
+
export interface RecallEnhancementCapabilitySet {
|
|
1035
|
+
readonly explicitCueRecall: boolean;
|
|
1036
|
+
readonly targetedFactRecall: boolean;
|
|
1037
|
+
readonly focusedListRecall: boolean;
|
|
1038
|
+
readonly responseGuidanceRecall: boolean;
|
|
1039
|
+
readonly eventOrderRecall: boolean;
|
|
1040
|
+
readonly reinforcementRecallBoost: boolean;
|
|
1041
|
+
readonly recallPlannerTelemetry: boolean;
|
|
1042
|
+
readonly peerProfileRecall: boolean;
|
|
1043
|
+
readonly graphAssistShadowEval: boolean;
|
|
1044
|
+
readonly memoryReconstruction: boolean;
|
|
1045
|
+
readonly memoryLinking: boolean;
|
|
1046
|
+
readonly causalTrajectoryRecall: boolean;
|
|
1047
|
+
readonly causalTrajectoryMemory: boolean;
|
|
1048
|
+
readonly cmcRetrieval: boolean;
|
|
1049
|
+
readonly contradictionDetection: boolean;
|
|
1050
|
+
readonly factArchival: boolean;
|
|
1051
|
+
readonly entityRelationships: boolean;
|
|
1052
|
+
readonly entityActivityLog: boolean;
|
|
1053
|
+
readonly compoundingInject: boolean;
|
|
1054
|
+
readonly accessTracking: boolean;
|
|
1055
|
+
readonly autoPromoteToShared: boolean;
|
|
1056
|
+
readonly recallGraph: boolean;
|
|
1057
|
+
readonly feedback: boolean;
|
|
1058
|
+
readonly identity: boolean;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
/**
|
|
1062
|
+
* Config projection consumed by {@link resolveRecallEnhancementCapabilities}.
|
|
1063
|
+
*/
|
|
1064
|
+
export type RecallEnhancementConfigProjection = Pick<
|
|
1065
|
+
PluginConfig,
|
|
1066
|
+
| "explicitCueRecallEnabled"
|
|
1067
|
+
| "targetedFactRecallEnabled"
|
|
1068
|
+
| "focusedListRecallEnabled"
|
|
1069
|
+
| "responseGuidanceRecallEnabled"
|
|
1070
|
+
| "eventOrderRecallEnabled"
|
|
1071
|
+
| "reinforcementRecallBoostEnabled"
|
|
1072
|
+
| "recallPlannerTelemetryEnabled"
|
|
1073
|
+
| "peerProfileRecallEnabled"
|
|
1074
|
+
| "graphAssistShadowEvalEnabled"
|
|
1075
|
+
| "memoryReconstructionEnabled"
|
|
1076
|
+
| "memoryLinkingEnabled"
|
|
1077
|
+
| "causalTrajectoryRecallEnabled"
|
|
1078
|
+
| "causalTrajectoryMemoryEnabled"
|
|
1079
|
+
| "cmcRetrievalEnabled"
|
|
1080
|
+
| "contradictionDetectionEnabled"
|
|
1081
|
+
| "factArchivalEnabled"
|
|
1082
|
+
| "entityRelationshipsEnabled"
|
|
1083
|
+
| "entityActivityLogEnabled"
|
|
1084
|
+
| "compoundingInjectEnabled"
|
|
1085
|
+
| "accessTrackingEnabled"
|
|
1086
|
+
| "autoPromoteToSharedEnabled"
|
|
1087
|
+
| "recallGraphEnabled"
|
|
1088
|
+
| "feedbackEnabled"
|
|
1089
|
+
| "identityEnabled"
|
|
1090
|
+
>;
|
|
1091
|
+
|
|
1092
|
+
/**
|
|
1093
|
+
* Resolve the {@link RecallEnhancementCapabilitySet} from parsed config.
|
|
1094
|
+
*/
|
|
1095
|
+
export function resolveRecallEnhancementCapabilities(config: RecallEnhancementConfigProjection): RecallEnhancementCapabilitySet {
|
|
1096
|
+
return Object.freeze({
|
|
1097
|
+
explicitCueRecall: config.explicitCueRecallEnabled,
|
|
1098
|
+
targetedFactRecall: config.targetedFactRecallEnabled,
|
|
1099
|
+
focusedListRecall: config.focusedListRecallEnabled,
|
|
1100
|
+
responseGuidanceRecall: config.responseGuidanceRecallEnabled,
|
|
1101
|
+
eventOrderRecall: config.eventOrderRecallEnabled,
|
|
1102
|
+
reinforcementRecallBoost: config.reinforcementRecallBoostEnabled,
|
|
1103
|
+
recallPlannerTelemetry: config.recallPlannerTelemetryEnabled,
|
|
1104
|
+
peerProfileRecall: config.peerProfileRecallEnabled,
|
|
1105
|
+
graphAssistShadowEval: config.graphAssistShadowEvalEnabled === true,
|
|
1106
|
+
memoryReconstruction: config.memoryReconstructionEnabled,
|
|
1107
|
+
memoryLinking: config.memoryLinkingEnabled,
|
|
1108
|
+
causalTrajectoryRecall: config.causalTrajectoryRecallEnabled,
|
|
1109
|
+
causalTrajectoryMemory: config.causalTrajectoryMemoryEnabled,
|
|
1110
|
+
cmcRetrieval: config.cmcRetrievalEnabled,
|
|
1111
|
+
contradictionDetection: config.contradictionDetectionEnabled,
|
|
1112
|
+
factArchival: config.factArchivalEnabled,
|
|
1113
|
+
entityRelationships: config.entityRelationshipsEnabled,
|
|
1114
|
+
entityActivityLog: config.entityActivityLogEnabled,
|
|
1115
|
+
compoundingInject: config.compoundingInjectEnabled,
|
|
1116
|
+
accessTracking: config.accessTrackingEnabled,
|
|
1117
|
+
autoPromoteToShared: config.autoPromoteToSharedEnabled,
|
|
1118
|
+
recallGraph: config.recallGraphEnabled,
|
|
1119
|
+
feedback: config.feedbackEnabled,
|
|
1120
|
+
identity: config.identityEnabled,
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
// ---------------------------------------------------------------------------
|
|
1125
|
+
// PipelineProcessing capability set (issue #1523 batch 9).
|
|
1126
|
+
//
|
|
1127
|
+
// These 22 flags gate the extraction/chunking/summarization pipeline and LLM
|
|
1128
|
+
// infrastructure. Read sites span orchestrator, extraction, summarizer,
|
|
1129
|
+
// embedding-fallback, local-llm, search, day-summary, and semantic-consolidation.
|
|
1130
|
+
// All flags are non-optional booleans on PluginConfig (defaults resolved at
|
|
1131
|
+
// the parse boundary), so the projection is a pure pass-through.
|
|
1132
|
+
// ---------------------------------------------------------------------------
|
|
1133
|
+
|
|
1134
|
+
/**
|
|
1135
|
+
* Frozen projection of pipeline-processing feature gates (issue #1523 batch 9).
|
|
1136
|
+
*/
|
|
1137
|
+
export interface PipelineProcessingCapabilitySet {
|
|
1138
|
+
readonly chunking: boolean;
|
|
1139
|
+
readonly semanticChunking: boolean;
|
|
1140
|
+
readonly semanticDedup: boolean;
|
|
1141
|
+
readonly summarization: boolean;
|
|
1142
|
+
readonly topicExtraction: boolean;
|
|
1143
|
+
readonly sessionObserver: boolean;
|
|
1144
|
+
readonly profiling: boolean;
|
|
1145
|
+
readonly checkpoint: boolean;
|
|
1146
|
+
readonly traceWeaver: boolean;
|
|
1147
|
+
readonly routingRules: boolean;
|
|
1148
|
+
readonly inlineSourceAttribution: boolean;
|
|
1149
|
+
readonly negativeExamples: boolean;
|
|
1150
|
+
readonly hourlySummaries: boolean;
|
|
1151
|
+
readonly lcm: boolean;
|
|
1152
|
+
readonly localLlmFast: boolean;
|
|
1153
|
+
readonly proactiveExtraction: boolean;
|
|
1154
|
+
readonly delinearize: boolean;
|
|
1155
|
+
readonly slowLog: boolean;
|
|
1156
|
+
readonly hostEmbeddingProvider: boolean;
|
|
1157
|
+
readonly memoryExtensions: boolean;
|
|
1158
|
+
readonly hourlySummariesExtended: boolean;
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
/**
|
|
1162
|
+
* Config projection consumed by {@link resolvePipelineProcessingCapabilities}.
|
|
1163
|
+
*/
|
|
1164
|
+
export type PipelineProcessingConfigProjection = Pick<
|
|
1165
|
+
PluginConfig,
|
|
1166
|
+
| "chunkingEnabled"
|
|
1167
|
+
| "semanticChunkingEnabled"
|
|
1168
|
+
| "semanticDedupEnabled"
|
|
1169
|
+
| "summarizationEnabled"
|
|
1170
|
+
| "topicExtractionEnabled"
|
|
1171
|
+
| "sessionObserverEnabled"
|
|
1172
|
+
| "profilingEnabled"
|
|
1173
|
+
| "checkpointEnabled"
|
|
1174
|
+
| "traceWeaverEnabled"
|
|
1175
|
+
| "routingRulesEnabled"
|
|
1176
|
+
| "inlineSourceAttributionEnabled"
|
|
1177
|
+
| "negativeExamplesEnabled"
|
|
1178
|
+
| "hourlySummariesEnabled"
|
|
1179
|
+
| "lcmEnabled"
|
|
1180
|
+
| "localLlmFastEnabled"
|
|
1181
|
+
| "proactiveExtractionEnabled"
|
|
1182
|
+
| "delinearizeEnabled"
|
|
1183
|
+
| "slowLogEnabled"
|
|
1184
|
+
| "hostEmbeddingProviderEnabled"
|
|
1185
|
+
| "memoryExtensionsEnabled"
|
|
1186
|
+
| "hourlySummariesExtendedEnabled"
|
|
1187
|
+
>;
|
|
1188
|
+
|
|
1189
|
+
/**
|
|
1190
|
+
* Resolve the {@link PipelineProcessingCapabilitySet} from parsed config.
|
|
1191
|
+
*/
|
|
1192
|
+
export function resolvePipelineProcessingCapabilities(config: PipelineProcessingConfigProjection): PipelineProcessingCapabilitySet {
|
|
1193
|
+
return Object.freeze({
|
|
1194
|
+
chunking: config.chunkingEnabled,
|
|
1195
|
+
semanticChunking: config.semanticChunkingEnabled,
|
|
1196
|
+
semanticDedup: config.semanticDedupEnabled,
|
|
1197
|
+
summarization: config.summarizationEnabled,
|
|
1198
|
+
topicExtraction: config.topicExtractionEnabled,
|
|
1199
|
+
sessionObserver: config.sessionObserverEnabled === true,
|
|
1200
|
+
profiling: config.profilingEnabled,
|
|
1201
|
+
checkpoint: config.checkpointEnabled,
|
|
1202
|
+
traceWeaver: config.traceWeaverEnabled,
|
|
1203
|
+
routingRules: config.routingRulesEnabled,
|
|
1204
|
+
inlineSourceAttribution: config.inlineSourceAttributionEnabled,
|
|
1205
|
+
negativeExamples: config.negativeExamplesEnabled,
|
|
1206
|
+
hourlySummaries: config.hourlySummariesEnabled,
|
|
1207
|
+
lcm: config.lcmEnabled,
|
|
1208
|
+
localLlmFast: config.localLlmFastEnabled,
|
|
1209
|
+
proactiveExtraction: config.proactiveExtractionEnabled,
|
|
1210
|
+
delinearize: config.delinearizeEnabled,
|
|
1211
|
+
slowLog: config.slowLogEnabled,
|
|
1212
|
+
hostEmbeddingProvider: config.hostEmbeddingProviderEnabled,
|
|
1213
|
+
memoryExtensions: config.memoryExtensionsEnabled,
|
|
1214
|
+
hourlySummariesExtended: config.hourlySummariesExtendedEnabled,
|
|
1215
|
+
});
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
// ---------------------------------------------------------------------------
|
|
1219
|
+
// ConversationContext capability set (issue #1523 batch 9).
|
|
1220
|
+
//
|
|
1221
|
+
// These 12 flags gate conversation context, shared signals, intent routing,
|
|
1222
|
+
// operator-aware consolidation, CMC consolidation, maintenance fanout, CLI
|
|
1223
|
+
// presentation, and code connectors. Read sites span orchestrator, CLI,
|
|
1224
|
+
// shared-context/manager, semantic-consolidation-coordinator, compounding/engine,
|
|
1225
|
+
// maintenance modules, procedural stats, connectors, and wearables. All flags
|
|
1226
|
+
// are non-optional booleans on PluginConfig (defaults resolved at the parse
|
|
1227
|
+
// boundary), so the projection is a pure pass-through.
|
|
1228
|
+
// ---------------------------------------------------------------------------
|
|
1229
|
+
|
|
1230
|
+
/**
|
|
1231
|
+
* Frozen projection of conversation/context feature gates (issue #1523 batch 9).
|
|
1232
|
+
*/
|
|
1233
|
+
export interface ConversationContextCapabilitySet {
|
|
1234
|
+
readonly sharedContext: boolean;
|
|
1235
|
+
readonly intentRouting: boolean;
|
|
1236
|
+
readonly crossSignalsSemantic: boolean;
|
|
1237
|
+
readonly sharedCrossSignalSemantic: boolean;
|
|
1238
|
+
readonly operatorAwareConsolidation: boolean;
|
|
1239
|
+
readonly peerProfileReasoner: boolean;
|
|
1240
|
+
readonly cmcConsolidation: boolean;
|
|
1241
|
+
readonly maintenanceNamespaceFanout: boolean;
|
|
1242
|
+
readonly citations: boolean;
|
|
1243
|
+
readonly behaviorLoopAutoTune: boolean;
|
|
1244
|
+
readonly semanticRulePromotion: boolean;
|
|
1245
|
+
readonly codexMarketplace: boolean;
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
/**
|
|
1249
|
+
* Config projection consumed by {@link resolveConversationContextCapabilities}.
|
|
1250
|
+
*/
|
|
1251
|
+
export type ConversationContextConfigProjection = Pick<
|
|
1252
|
+
PluginConfig,
|
|
1253
|
+
| "sharedContextEnabled"
|
|
1254
|
+
| "intentRoutingEnabled"
|
|
1255
|
+
| "crossSignalsSemanticEnabled"
|
|
1256
|
+
| "sharedCrossSignalSemanticEnabled"
|
|
1257
|
+
| "operatorAwareConsolidationEnabled"
|
|
1258
|
+
| "peerProfileReasonerEnabled"
|
|
1259
|
+
| "cmcConsolidationEnabled"
|
|
1260
|
+
| "maintenanceNamespaceFanoutEnabled"
|
|
1261
|
+
| "citationsEnabled"
|
|
1262
|
+
| "behaviorLoopAutoTuneEnabled"
|
|
1263
|
+
| "semanticRulePromotionEnabled"
|
|
1264
|
+
| "codexMarketplaceEnabled"
|
|
1265
|
+
>;
|
|
1266
|
+
|
|
1267
|
+
/**
|
|
1268
|
+
* Resolve the {@link ConversationContextCapabilitySet} from parsed config.
|
|
1269
|
+
*/
|
|
1270
|
+
export function resolveConversationContextCapabilities(config: ConversationContextConfigProjection): ConversationContextCapabilitySet {
|
|
1271
|
+
return Object.freeze({
|
|
1272
|
+
sharedContext: config.sharedContextEnabled,
|
|
1273
|
+
intentRouting: config.intentRoutingEnabled,
|
|
1274
|
+
crossSignalsSemantic: config.crossSignalsSemanticEnabled,
|
|
1275
|
+
sharedCrossSignalSemantic: config.sharedCrossSignalSemanticEnabled === true,
|
|
1276
|
+
operatorAwareConsolidation: config.operatorAwareConsolidationEnabled,
|
|
1277
|
+
peerProfileReasoner: config.peerProfileReasonerEnabled,
|
|
1278
|
+
cmcConsolidation: config.cmcConsolidationEnabled,
|
|
1279
|
+
maintenanceNamespaceFanout: config.maintenanceNamespaceFanoutEnabled,
|
|
1280
|
+
citations: config.citationsEnabled,
|
|
1281
|
+
behaviorLoopAutoTune: config.behaviorLoopAutoTuneEnabled,
|
|
1282
|
+
semanticRulePromotion: config.semanticRulePromotionEnabled,
|
|
1283
|
+
codexMarketplace: config.codexMarketplaceEnabled,
|
|
1284
|
+
});
|
|
1285
|
+
}
|
|
@@ -21,6 +21,7 @@ import type { Orchestrator } from "../orchestrator.js";
|
|
|
21
21
|
import { resolveCapabilities, resolveSecurityCapabilities, resolveUtilityLearningCapabilities, resolveObjectiveStateCapabilities, resolveConsolidationCapabilities } from "../capabilities.js";
|
|
22
22
|
import type { CliCommand } from "../cli.js";
|
|
23
23
|
import type { UtilityTelemetryEvent } from "../utility-telemetry.js";
|
|
24
|
+
import { resolveRecallEnhancementCapabilities } from "../capabilities.js";
|
|
24
25
|
import {
|
|
25
26
|
runObjectiveStateStatusCliCommand,
|
|
26
27
|
runCausalTrajectoryStatusCliCommand,
|
|
@@ -67,7 +68,7 @@ cmd
|
|
|
67
68
|
const status = await runCausalTrajectoryStatusCliCommand({
|
|
68
69
|
memoryDir: orchestrator.config.memoryDir,
|
|
69
70
|
causalTrajectoryStoreDir: orchestrator.config.causalTrajectoryStoreDir,
|
|
70
|
-
causalTrajectoryMemoryEnabled: orchestrator.config.
|
|
71
|
+
causalTrajectoryMemoryEnabled: resolveRecallEnhancementCapabilities(orchestrator.config).causalTrajectoryMemory,
|
|
71
72
|
});
|
|
72
73
|
console.log(JSON.stringify(status, null, 2));
|
|
73
74
|
console.log("OK");
|
package/src/cli.ts
CHANGED
|
@@ -232,6 +232,7 @@ import { getTrainingExportAdapter, listTrainingExportAdapters } from "./training
|
|
|
232
232
|
import { renderRecallExplain, parseRecallExplainFormat } from "./recall-explain-renderer.js";
|
|
233
233
|
import { renderXray } from "./recall-xray-renderer.js";
|
|
234
234
|
import { parseXrayCliOptions } from "./recall-xray-cli.js";
|
|
235
|
+
import { resolveConversationContextCapabilities } from "./capabilities.js";
|
|
235
236
|
import {
|
|
236
237
|
collectPatternMemories,
|
|
237
238
|
explainPatternMemory,
|
|
@@ -6276,7 +6277,7 @@ export function registerCli(
|
|
|
6276
6277
|
const options = (args[0] ?? {}) as Record<string, unknown>;
|
|
6277
6278
|
const result = await runSemanticRulePromoteCliCommand({
|
|
6278
6279
|
memoryDir: orchestrator.config.memoryDir,
|
|
6279
|
-
semanticRulePromotionEnabled: orchestrator.config.
|
|
6280
|
+
semanticRulePromotionEnabled: resolveConversationContextCapabilities(orchestrator.config).semanticRulePromotion,
|
|
6280
6281
|
sourceMemoryId: String(options.memoryId ?? ""),
|
|
6281
6282
|
dryRun: options.dryRun === true,
|
|
6282
6283
|
});
|
|
@@ -6802,7 +6803,7 @@ export function registerCli(
|
|
|
6802
6803
|
principal: resolveAccessPrincipalOverride(options.principal, orchestrator.config.agentAccessHttp.principal),
|
|
6803
6804
|
maxBodyBytes: Number.isFinite(maxBodyBytesRaw) ? maxBodyBytesRaw : 131072,
|
|
6804
6805
|
trustPrincipalHeader: options.trustPrincipalHeader === true,
|
|
6805
|
-
citationsEnabled: orchestrator.config.
|
|
6806
|
+
citationsEnabled: resolveConversationContextCapabilities(orchestrator.config).citations,
|
|
6806
6807
|
citationsAutoDetect: orchestrator.config.citationsAutoDetect,
|
|
6807
6808
|
emitLegacyTools: orchestrator.config.emitLegacyTools,
|
|
6808
6809
|
});
|
|
@@ -8,6 +8,7 @@ import type { ContinuityIncidentRecord, PluginConfig } from "../types.js";
|
|
|
8
8
|
import { resolveSharedContextDir, SharedFeedbackEntrySchema, type SharedFeedbackEntry } from "../shared-context/manager.js";
|
|
9
9
|
import { parseContinuityImprovementLoops } from "../identity-continuity.js";
|
|
10
10
|
import { resolveQmdCapabilities, type QmdConfigProjection, resolveConsolidationCapabilities } from "../capabilities.js";
|
|
11
|
+
import { resolveConversationContextCapabilities } from "../capabilities.js";
|
|
11
12
|
|
|
12
13
|
type MistakesFile = {
|
|
13
14
|
version?: number;
|
|
@@ -496,7 +497,7 @@ export class CompoundingEngine {
|
|
|
496
497
|
let promotionCandidates = resolveConsolidationCapabilities(this.config).compoundingSemantic
|
|
497
498
|
? this.derivePromotionCandidates(outcomeSummary, mistakes.registry, rubrics)
|
|
498
499
|
: [];
|
|
499
|
-
if (this.config.
|
|
500
|
+
if (resolveConversationContextCapabilities(this.config).cmcConsolidation) {
|
|
500
501
|
try {
|
|
501
502
|
const { deriveCausalPromotionCandidates, materializeAfterCausalConsolidation } = await import("../causal-consolidation.js");
|
|
502
503
|
const causalCandidates = await deriveCausalPromotionCandidates({
|
|
@@ -22,6 +22,7 @@ import path from "node:path";
|
|
|
22
22
|
|
|
23
23
|
import { log } from "../logger.js";
|
|
24
24
|
import type { PluginConfig } from "../types.js";
|
|
25
|
+
import { resolveConversationContextCapabilities } from "../capabilities.js";
|
|
25
26
|
|
|
26
27
|
// ── Types ─────────────────────────────────────────────────────────────────
|
|
27
28
|
|
|
@@ -295,7 +296,7 @@ export async function installFromMarketplace(
|
|
|
295
296
|
debug: (msg) => log.debug(`[marketplace] ${msg}`),
|
|
296
297
|
};
|
|
297
298
|
|
|
298
|
-
if (!config.
|
|
299
|
+
if (!resolveConversationContextCapabilities(config).codexMarketplace) {
|
|
299
300
|
return {
|
|
300
301
|
ok: false,
|
|
301
302
|
message: "Codex marketplace is disabled in config (codexMarketplaceEnabled: false)",
|
package/src/day-summary.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { fileURLToPath } from "node:url";
|
|
|
3
3
|
import { log } from "./logger.js";
|
|
4
4
|
import type { MemoryFile, PluginConfig } from "./types.js";
|
|
5
5
|
import { discoverMemoryExtensions, renderExtensionsFooter, resolveExtensionsRoot } from "./memory-extension-host/index.js";
|
|
6
|
+
import { resolvePipelineProcessingCapabilities } from "./capabilities.js";
|
|
6
7
|
|
|
7
8
|
const PROMPT_RELATIVE_PATH = path.join("prompts", "day_summary.prompt.md");
|
|
8
9
|
|
|
@@ -114,7 +115,7 @@ export function formatDaySummaryMemories(memories: string | MemoryFile[]): strin
|
|
|
114
115
|
export async function buildExtensionsFooterForSummary(
|
|
115
116
|
config: PluginConfig,
|
|
116
117
|
): Promise<string> {
|
|
117
|
-
if (!config.
|
|
118
|
+
if (!resolvePipelineProcessingCapabilities(config).memoryExtensions) return "";
|
|
118
119
|
const root = resolveExtensionsRoot(config);
|
|
119
120
|
const extensions = await discoverMemoryExtensions(root, log);
|
|
120
121
|
if (extensions.length === 0) return "";
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
} from "./capabilities.js";
|
|
8
8
|
import { readEnvVar } from "./runtime/env.js";
|
|
9
9
|
import type { PluginConfig } from "./types.js";
|
|
10
|
+
import { resolvePipelineProcessingCapabilities } from "./capabilities.js";
|
|
10
11
|
import {
|
|
11
12
|
getHostEmbeddingProvider,
|
|
12
13
|
type HostEmbeddingProvider,
|
|
@@ -405,7 +406,7 @@ export class EmbeddingFallback {
|
|
|
405
406
|
|
|
406
407
|
if (
|
|
407
408
|
options.includeHost !== false &&
|
|
408
|
-
this.config.
|
|
409
|
+
resolvePipelineProcessingCapabilities(this.config).hostEmbeddingProvider !== false
|
|
409
410
|
) {
|
|
410
411
|
const hostProvider = getHostEmbeddingProvider(this.config.memoryDir);
|
|
411
412
|
if (hostProvider) {
|
package/src/extraction.ts
CHANGED
|
@@ -38,6 +38,7 @@ import { normalizeProcedureSteps } from "./procedural/procedure-types.js";
|
|
|
38
38
|
import { normalizeReasoningTrace } from "./reasoning-trace-types.js";
|
|
39
39
|
import { looksLikeMechanicalTelemetryTranscript } from "./telemetry-transcript.js";
|
|
40
40
|
import { buildFactProvenance, type ProvenanceTurnInput } from "./provenance.js";
|
|
41
|
+
import { resolvePipelineProcessingCapabilities } from "./capabilities.js";
|
|
41
42
|
import { resolveMemoryLifecycleCapabilities,
|
|
42
43
|
resolveLocalLlmCapabilities,resolveRecallAuxiliaryCapabilities } from "./capabilities.js";
|
|
43
44
|
|
|
@@ -199,7 +200,7 @@ export class ExtractionEngine {
|
|
|
199
200
|
}
|
|
200
201
|
let content = sanitized.text;
|
|
201
202
|
// De-linearize: resolve coreferences + anchor temporal expressions
|
|
202
|
-
if (this.config.
|
|
203
|
+
if (resolvePipelineProcessingCapabilities(this.config).delinearize) {
|
|
203
204
|
content = delinearize(content, result.entities, ts);
|
|
204
205
|
}
|
|
205
206
|
return { ...fact, content };
|
|
@@ -578,7 +579,7 @@ export class ExtractionEngine {
|
|
|
578
579
|
conversation: string,
|
|
579
580
|
base: ExtractionResult,
|
|
580
581
|
): Promise<ExtractionResult> {
|
|
581
|
-
if (!this.config.
|
|
582
|
+
if (!resolvePipelineProcessingCapabilities(this.config).proactiveExtraction) return base;
|
|
582
583
|
const maxAdditional = Math.max(0, Math.floor(this.config.maxProactiveQuestionsPerExtraction));
|
|
583
584
|
if (maxAdditional === 0) return base;
|
|
584
585
|
if (this.config.proactiveExtractionTimeoutMs === 0) return base;
|