@remnic/core 9.3.739 → 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.js +13 -13
- package/dist/access-cli.js +35 -35
- package/dist/access-http.js +18 -18
- package/dist/access-mcp.js +17 -17
- package/dist/access-operations-batch.js +15 -15
- package/dist/access-operations.js +16 -16
- package/dist/access-service.js +12 -12
- package/dist/active-memory-bridge.js +3 -3
- 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-IEWUPZ75.js → chunk-VC7QELR6.js} +77 -74
- 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.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.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.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/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.js +29 -29
- 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/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/transfer/types.d.ts +12 -12
- 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/semantic-consolidation-coordinator.ts +3 -2
- package/src/orchestrator.ts +50 -46
- 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-EO5QWINU.js.map +0 -1
- package/dist/chunk-EU543UDC.js.map +0 -1
- package/dist/chunk-IEWUPZ75.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
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;
|
package/src/local-llm.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { ModelRegistry } from "./model-registry.js";
|
|
|
6
6
|
import { launchProcessSync } from "./runtime/child-process.js";
|
|
7
7
|
import { mergeEnv, readEnvVar } from "./runtime/env.js";
|
|
8
8
|
import { resolveLocalLlmCapabilities } from "./capabilities.js";
|
|
9
|
+
import { resolvePipelineProcessingCapabilities } from "./capabilities.js";
|
|
9
10
|
|
|
10
11
|
/** Trim trailing slash characters without backtracking regex. */
|
|
11
12
|
function trimTrailingSlashes(s: string): string {
|
|
@@ -1186,7 +1187,7 @@ export class LocalLlmClient {
|
|
|
1186
1187
|
: this.estimateTokens(messages, content);
|
|
1187
1188
|
|
|
1188
1189
|
const durationMs = Date.now() - startedAtMs;
|
|
1189
|
-
if (this.config.
|
|
1190
|
+
if (resolvePipelineProcessingCapabilities(this.config).slowLog && durationMs >= this.config.slowLogThresholdMs) {
|
|
1190
1191
|
const promptChars = messages.reduce((sum, m) => sum + (m.content?.length ?? 0), 0);
|
|
1191
1192
|
const op = options.operation ? ` op=${options.operation}` : "";
|
|
1192
1193
|
log.warn(
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
import { resolveNamespaceCapabilities } from "../capabilities.js";
|
|
28
28
|
import type { NamespaceCatalog } from "../namespaces/catalog.js";
|
|
29
29
|
import type { PluginConfig } from "../types.js";
|
|
30
|
+
import { resolveConversationContextCapabilities } from "../capabilities.js";
|
|
30
31
|
import {
|
|
31
32
|
planNamespaceMaintenance,
|
|
32
33
|
readNamespaceMaintenanceLastRanStatuses,
|
|
@@ -262,7 +263,7 @@ export async function summarizeNamespaceMaintenanceHealth(
|
|
|
262
263
|
|
|
263
264
|
return {
|
|
264
265
|
generatedAt,
|
|
265
|
-
fanoutEnabled: config.
|
|
266
|
+
fanoutEnabled: resolveConversationContextCapabilities(config).maintenanceNamespaceFanout !== false,
|
|
266
267
|
namespacesEnabled: resolveNamespaceCapabilities(config).namespaces,
|
|
267
268
|
maxNamespacesPerCycle: config.maintenanceMaxNamespacesPerCycle,
|
|
268
269
|
jobs,
|
|
@@ -11,6 +11,7 @@ import { resolveNamespaceStorageRoot } from "../namespaces/storage.js";
|
|
|
11
11
|
import { displayErrorDetail } from "../runtime/better-sqlite.js";
|
|
12
12
|
import type { PluginConfig } from "../types.js";
|
|
13
13
|
import { getConfiguredNamespaces } from "../scopes/scope-plan.js";
|
|
14
|
+
import { resolveConversationContextCapabilities } from "../capabilities.js";
|
|
14
15
|
|
|
15
16
|
export type NamespaceMaintenanceJobName = string;
|
|
16
17
|
|
|
@@ -227,7 +228,7 @@ export async function planNamespaceMaintenance(
|
|
|
227
228
|
});
|
|
228
229
|
}
|
|
229
230
|
|
|
230
|
-
if (resolveNamespaceCapabilities(config).namespaces && config.
|
|
231
|
+
if (resolveNamespaceCapabilities(config).namespaces && resolveConversationContextCapabilities(config).maintenanceNamespaceFanout !== false) {
|
|
231
232
|
const configuredSet = new Set(configured);
|
|
232
233
|
try {
|
|
233
234
|
const records = options.catalog?.enabled ? await options.catalog.listNamespaces() : [];
|
package/src/operator-toolkit.ts
CHANGED
|
@@ -56,6 +56,7 @@ import { reportBufferSurpriseDistribution } from "./buffer-surprise-report.js";
|
|
|
56
56
|
import { readJudgeVerdictStats } from "./extraction-judge-telemetry.js";
|
|
57
57
|
import { resolveIndexingCapabilities } from "./capabilities.js";
|
|
58
58
|
|
|
59
|
+
|
|
59
60
|
const OPENCLAW_REMNIC_PLUGIN_IDS = ["openclaw-remnic", "openclaw-engram"] as const;
|
|
60
61
|
|
|
61
62
|
function getOpenClawPluginEntries(raw: Record<string, unknown>): Record<string, unknown> | undefined {
|
|
@@ -49,6 +49,7 @@ import type { LocalLlmClient } from "../local-llm.js";
|
|
|
49
49
|
import type { EmbeddingFallback } from "../embedding-fallback.js";
|
|
50
50
|
import type { PluginConfig, MemoryFile, AgentPersonaModelConfig } from "../types.js";
|
|
51
51
|
import { log } from "../logger.js";
|
|
52
|
+
import { resolveConversationContextCapabilities } from "../capabilities.js";
|
|
52
53
|
|
|
53
54
|
/** Dependencies injected by the orchestrator. All stable references or
|
|
54
55
|
* live accessors. */
|
|
@@ -193,7 +194,7 @@ export class SemanticConsolidationCoordinator {
|
|
|
193
194
|
// `semanticConsolidationEnabled` follow the same convention,
|
|
194
195
|
// while `!== false` is reserved for default-on flags.
|
|
195
196
|
const operatorAwareEnabled =
|
|
196
|
-
this.config.
|
|
197
|
+
resolveConversationContextCapabilities(this.config).operatorAwareConsolidation === true;
|
|
197
198
|
let prompt = operatorAwareEnabled
|
|
198
199
|
? buildOperatorAwareConsolidationPrompt(cluster)
|
|
199
200
|
: buildConsolidationPrompt(cluster);
|
|
@@ -418,7 +419,7 @@ export class SemanticConsolidationCoordinator {
|
|
|
418
419
|
// in a try/catch because reasoner I/O (LLM call, peer-profile
|
|
419
420
|
// writes) must never abort the consolidation result. The reasoner
|
|
420
421
|
// itself also defends against partial failure — see profile-reasoner.ts.
|
|
421
|
-
if (this.config.
|
|
422
|
+
if (resolveConversationContextCapabilities(this.config).peerProfileReasoner) {
|
|
422
423
|
try {
|
|
423
424
|
const peerLlm = new FallbackLlmClient(
|
|
424
425
|
this.config.gatewayConfig,
|