@caupulican/pi-adaptative 0.81.26 → 0.81.27
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/CHANGELOG.md +31 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +3 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +4 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +19 -2
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +21 -10
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +71 -33
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/autonomy/bounded-completion.d.ts.map +1 -1
- package/dist/core/autonomy/bounded-completion.js +59 -19
- package/dist/core/autonomy/bounded-completion.js.map +1 -1
- package/dist/core/autonomy/lane-tool-surface.d.ts +31 -0
- package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -0
- package/dist/core/autonomy/lane-tool-surface.js +96 -0
- package/dist/core/autonomy/lane-tool-surface.js.map +1 -0
- package/dist/core/background-lane-controller.d.ts +6 -3
- package/dist/core/background-lane-controller.d.ts.map +1 -1
- package/dist/core/background-lane-controller.js +134 -25
- package/dist/core/background-lane-controller.js.map +1 -1
- package/dist/core/billing-failover-controller.d.ts.map +1 -1
- package/dist/core/billing-failover-controller.js +1 -1
- package/dist/core/billing-failover-controller.js.map +1 -1
- package/dist/core/context/current-work-memory.d.ts +9 -0
- package/dist/core/context/current-work-memory.d.ts.map +1 -0
- package/dist/core/context/current-work-memory.js +61 -0
- package/dist/core/context/current-work-memory.js.map +1 -0
- package/dist/core/context/file-store-memory-provider.d.ts +9 -0
- package/dist/core/context/file-store-memory-provider.d.ts.map +1 -0
- package/dist/core/context/file-store-memory-provider.js +106 -0
- package/dist/core/context/file-store-memory-provider.js.map +1 -0
- package/dist/core/context/long-term-memory-trigger.d.ts +15 -0
- package/dist/core/context/long-term-memory-trigger.d.ts.map +1 -0
- package/dist/core/context/long-term-memory-trigger.js +39 -0
- package/dist/core/context/long-term-memory-trigger.js.map +1 -0
- package/dist/core/context/memory-prompt-block.d.ts +3 -1
- package/dist/core/context/memory-prompt-block.d.ts.map +1 -1
- package/dist/core/context/memory-prompt-block.js +20 -3
- package/dist/core/context/memory-prompt-block.js.map +1 -1
- package/dist/core/context/memory-prompt-budget.d.ts +17 -0
- package/dist/core/context/memory-prompt-budget.d.ts.map +1 -0
- package/dist/core/context/memory-prompt-budget.js +64 -0
- package/dist/core/context/memory-prompt-budget.js.map +1 -0
- package/dist/core/context/memory-provider-contract.d.ts.map +1 -1
- package/dist/core/context/memory-provider-contract.js +2 -5
- package/dist/core/context/memory-provider-contract.js.map +1 -1
- package/dist/core/context/memory-tier-composer.d.ts +27 -0
- package/dist/core/context/memory-tier-composer.d.ts.map +1 -0
- package/dist/core/context/memory-tier-composer.js +79 -0
- package/dist/core/context/memory-tier-composer.js.map +1 -0
- package/dist/core/context-gc.d.ts.map +1 -1
- package/dist/core/context-gc.js +1 -0
- package/dist/core/context-gc.js.map +1 -1
- package/dist/core/cost/cost-summary.d.ts +3 -1
- package/dist/core/cost/cost-summary.d.ts.map +1 -1
- package/dist/core/cost/cost-summary.js +3 -3
- package/dist/core/cost/cost-summary.js.map +1 -1
- package/dist/core/cost-guard.d.ts +17 -7
- package/dist/core/cost-guard.d.ts.map +1 -1
- package/dist/core/cost-guard.js +33 -10
- package/dist/core/cost-guard.js.map +1 -1
- package/dist/core/default-tool-surface.d.ts +9 -0
- package/dist/core/default-tool-surface.d.ts.map +1 -0
- package/dist/core/default-tool-surface.js +18 -0
- package/dist/core/default-tool-surface.js.map +1 -0
- package/dist/core/delegation/worker-runner.d.ts +11 -5
- package/dist/core/delegation/worker-runner.d.ts.map +1 -1
- package/dist/core/delegation/worker-runner.js +24 -12
- package/dist/core/delegation/worker-runner.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +15 -0
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +2 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +7 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +9 -0
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/failure-corpus.d.ts.map +1 -1
- package/dist/core/failure-corpus.js +2 -4
- package/dist/core/failure-corpus.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +9 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.d.ts.map +1 -1
- package/dist/core/goals/goal-continuation-prompt.js +4 -3
- package/dist/core/goals/goal-continuation-prompt.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts +12 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +42 -4
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/memory/memory-manager.d.ts +8 -3
- package/dist/core/memory/memory-manager.d.ts.map +1 -1
- package/dist/core/memory/memory-manager.js +27 -11
- package/dist/core/memory/memory-manager.js.map +1 -1
- package/dist/core/memory/memory-provider.d.ts +5 -1
- package/dist/core/memory/memory-provider.d.ts.map +1 -1
- package/dist/core/memory/memory-provider.js.map +1 -1
- package/dist/core/memory/providers/file-store.d.ts +3 -1
- package/dist/core/memory/providers/file-store.d.ts.map +1 -1
- package/dist/core/memory/providers/file-store.js +7 -2
- package/dist/core/memory/providers/file-store.js.map +1 -1
- package/dist/core/memory/providers/transcript-recall.d.ts +1 -0
- package/dist/core/memory/providers/transcript-recall.d.ts.map +1 -1
- package/dist/core/memory/providers/transcript-recall.js +4 -7
- package/dist/core/memory/providers/transcript-recall.js.map +1 -1
- package/dist/core/memory-controller.d.ts +36 -10
- package/dist/core/memory-controller.d.ts.map +1 -1
- package/dist/core/memory-controller.js +137 -21
- package/dist/core/memory-controller.js.map +1 -1
- package/dist/core/model-registry.d.ts +23 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +87 -8
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +30 -11
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-router-controller.d.ts.map +1 -1
- package/dist/core/model-router-controller.js +33 -29
- package/dist/core/model-router-controller.js.map +1 -1
- package/dist/core/model-selection-controller.d.ts +3 -0
- package/dist/core/model-selection-controller.d.ts.map +1 -1
- package/dist/core/model-selection-controller.js +8 -1
- package/dist/core/model-selection-controller.js.map +1 -1
- package/dist/core/models/perf-profile.d.ts.map +1 -1
- package/dist/core/models/perf-profile.js +95 -33
- package/dist/core/models/perf-profile.js.map +1 -1
- package/dist/core/profile-filter-controller.d.ts +11 -0
- package/dist/core/profile-filter-controller.d.ts.map +1 -1
- package/dist/core/profile-filter-controller.js +56 -11
- package/dist/core/profile-filter-controller.js.map +1 -1
- package/dist/core/profile-registry.d.ts +2 -2
- package/dist/core/profile-registry.d.ts.map +1 -1
- package/dist/core/profile-registry.js +58 -7
- package/dist/core/profile-registry.js.map +1 -1
- package/dist/core/reflection-controller.d.ts +7 -7
- package/dist/core/reflection-controller.d.ts.map +1 -1
- package/dist/core/reflection-controller.js +78 -12
- package/dist/core/reflection-controller.js.map +1 -1
- package/dist/core/research/research-runner.d.ts +2 -2
- package/dist/core/research/research-runner.d.ts.map +1 -1
- package/dist/core/research/research-runner.js +8 -6
- package/dist/core/research/research-runner.js.map +1 -1
- package/dist/core/resource-loader.d.ts +4 -2
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +11 -1
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/runtime-builder.d.ts +13 -1
- package/dist/core/runtime-builder.d.ts.map +1 -1
- package/dist/core/runtime-builder.js +127 -35
- package/dist/core/runtime-builder.js.map +1 -1
- package/dist/core/sdk.d.ts +8 -7
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +35 -5
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/security/secret-text.d.ts +3 -0
- package/dist/core/security/secret-text.d.ts.map +1 -0
- package/dist/core/security/secret-text.js +26 -0
- package/dist/core/security/secret-text.js.map +1 -0
- package/dist/core/settings-manager.d.ts +59 -17
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +300 -51
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +1 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/core/system-prompt-builder.d.ts +7 -0
- package/dist/core/system-prompt-builder.d.ts.map +1 -1
- package/dist/core/system-prompt-builder.js +23 -1
- package/dist/core/system-prompt-builder.js.map +1 -1
- package/dist/core/tools/delegate.d.ts.map +1 -1
- package/dist/core/tools/delegate.js +15 -11
- package/dist/core/tools/delegate.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +8 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +69 -29
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +2 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/config-backup.d.ts +7 -1
- package/dist/modes/interactive/config-backup.d.ts.map +1 -1
- package/dist/modes/interactive/config-backup.js +196 -32
- package/dist/modes/interactive/config-backup.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +10 -28
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/local-model-commands.d.ts.map +1 -1
- package/dist/modes/interactive/local-model-commands.js +2 -0
- package/dist/modes/interactive/local-model-commands.js.map +1 -1
- package/dist/modes/interactive/profile-menu-controller.d.ts +6 -4
- package/dist/modes/interactive/profile-menu-controller.d.ts.map +1 -1
- package/dist/modes/interactive/profile-menu-controller.js +248 -65
- package/dist/modes/interactive/profile-menu-controller.js.map +1 -1
- package/dist/modes/interactive/report-commands.d.ts.map +1 -1
- package/dist/modes/interactive/report-commands.js +8 -2
- package/dist/modes/interactive/report-commands.js.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.d.ts.map +1 -1
- package/dist/modes/interactive/settings-selector-flow.js +8 -0
- package/dist/modes/interactive/settings-selector-flow.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +3 -1
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/docs/extensions.md +32 -0
- package/docs/resources.md +15 -7
- package/docs/settings.md +54 -5
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/preset.ts +2 -2
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/npm-shrinkwrap.json +44 -35
- package/package.json +4 -4
|
@@ -19,6 +19,8 @@ const THINKING_DESCRIPTIONS = {
|
|
|
19
19
|
medium: "Moderate reasoning (~8k tokens)",
|
|
20
20
|
high: "Deep reasoning (~16k tokens)",
|
|
21
21
|
xhigh: "Maximum reasoning (~32k tokens)",
|
|
22
|
+
max: "Maximum reasoning depth for the hardest problems",
|
|
23
|
+
ultra: "Maximum reasoning with reinforced proactive delegation",
|
|
22
24
|
};
|
|
23
25
|
const AUTONOMY_MODES = ["off", "safe", "balanced", "full"];
|
|
24
26
|
const AUTONOMY_GOAL_CONTINUE_TURN_VALUES = ["1", "3", "5", "10", "20"];
|
|
@@ -38,9 +40,10 @@ const CONTEXT_POLICY_ENFORCEMENT_DEFAULTS = {
|
|
|
38
40
|
};
|
|
39
41
|
const CONTEXT_MEMORY_RETRIEVAL_MAX_RESULTS_VALUES = ["1", "3", "5", "10", "20"];
|
|
40
42
|
const CONTEXT_MEMORY_RETRIEVAL_DEFAULTS = {
|
|
41
|
-
enabled:
|
|
43
|
+
enabled: true,
|
|
42
44
|
maxResults: 5,
|
|
43
|
-
includeInPrompt:
|
|
45
|
+
includeInPrompt: true,
|
|
46
|
+
allowExternalEgress: false,
|
|
44
47
|
};
|
|
45
48
|
const AUTO_LEARN_DEFAULTS = {
|
|
46
49
|
model: "active",
|
|
@@ -145,11 +148,13 @@ function contextPolicyEnforcementSummary(settings) {
|
|
|
145
148
|
return `enabled (preserve ${preserve}, min ${minChars} chars)`;
|
|
146
149
|
}
|
|
147
150
|
function contextMemoryRetrievalSummary(settings) {
|
|
148
|
-
|
|
149
|
-
|
|
151
|
+
const externalEgress = settings.allowExternalEgress ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress;
|
|
152
|
+
if (!(settings.enabled ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled)) {
|
|
153
|
+
return `disabled (${externalEgress ? "external consent on" : "external off"})`;
|
|
154
|
+
}
|
|
150
155
|
const maxResults = settings.maxResults ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults;
|
|
151
156
|
const includeInPrompt = settings.includeInPrompt ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt;
|
|
152
|
-
return `enabled (max ${maxResults}
|
|
157
|
+
return `enabled (max ${maxResults}${includeInPrompt ? ", in prompt" : ""}, ${externalEgress ? "external on" : "local only"})`;
|
|
153
158
|
}
|
|
154
159
|
function modelRouterSummary(settings) {
|
|
155
160
|
const state = settings.enabled ? "enabled" : "disabled";
|
|
@@ -232,14 +237,14 @@ function buildModelRouterRoleModelOptions(options) {
|
|
|
232
237
|
});
|
|
233
238
|
return modelOptions;
|
|
234
239
|
}
|
|
235
|
-
function buildModelRouterThinkingOptions(inheritDescription) {
|
|
240
|
+
function buildModelRouterThinkingOptions(inheritDescription, availableLevels = Object.keys(THINKING_DESCRIPTIONS)) {
|
|
236
241
|
return [
|
|
237
242
|
{
|
|
238
243
|
value: MODEL_ROUTER_INHERIT_THINKING_VALUE,
|
|
239
244
|
label: MODEL_ROUTER_INHERIT_THINKING_LABEL,
|
|
240
245
|
description: inheritDescription,
|
|
241
246
|
},
|
|
242
|
-
...
|
|
247
|
+
...availableLevels.map((level) => ({
|
|
243
248
|
value: level,
|
|
244
249
|
label: level,
|
|
245
250
|
description: THINKING_DESCRIPTIONS[level],
|
|
@@ -798,7 +803,7 @@ class WorkerDelegationSettingsSubmenu extends Container {
|
|
|
798
803
|
{
|
|
799
804
|
id: "worker-delegation-enabled",
|
|
800
805
|
label: "Enabled",
|
|
801
|
-
description: "Allow
|
|
806
|
+
description: "Allow capable models to run bounded scout workers; enabled by default, and explicit false is a hard off-switch",
|
|
802
807
|
currentValue: String(this.state.enabled),
|
|
803
808
|
values: ["true", "false"],
|
|
804
809
|
},
|
|
@@ -1079,7 +1084,12 @@ class ContextMemoryRetrievalSettingsSubmenu extends Container {
|
|
|
1079
1084
|
scope;
|
|
1080
1085
|
constructor(settings, onChange, onCancel, scope = "global") {
|
|
1081
1086
|
super();
|
|
1082
|
-
this.state = {
|
|
1087
|
+
this.state = {
|
|
1088
|
+
enabled: settings.enabled ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled,
|
|
1089
|
+
maxResults: settings.maxResults ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.maxResults,
|
|
1090
|
+
includeInPrompt: settings.includeInPrompt ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt,
|
|
1091
|
+
allowExternalEgress: settings.allowExternalEgress ?? CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress,
|
|
1092
|
+
};
|
|
1083
1093
|
this.scope = scope;
|
|
1084
1094
|
const items = [
|
|
1085
1095
|
{
|
|
@@ -1092,7 +1102,7 @@ class ContextMemoryRetrievalSettingsSubmenu extends Container {
|
|
|
1092
1102
|
{
|
|
1093
1103
|
id: "context-memory-enabled",
|
|
1094
1104
|
label: "Local memory retrieval",
|
|
1095
|
-
description: "
|
|
1105
|
+
description: "Default on: search local Pi memory for relevant evidence. Explicit false is a hard off-switch for both legacy recall and context retrieval. External providers remain blocked by the separate consent below.",
|
|
1096
1106
|
currentValue: booleanSettingValue(this.state.enabled, CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.enabled),
|
|
1097
1107
|
values: ["false", "true"],
|
|
1098
1108
|
},
|
|
@@ -1106,10 +1116,17 @@ class ContextMemoryRetrievalSettingsSubmenu extends Container {
|
|
|
1106
1116
|
{
|
|
1107
1117
|
id: "context-memory-include-in-prompt",
|
|
1108
1118
|
label: "Include in prompt",
|
|
1109
|
-
description: "
|
|
1119
|
+
description: "Default on and budget-gated: surface retrieved memory as bounded, source-labeled untrusted evidence in the model prompt only -- never the transcript or an instruction.",
|
|
1110
1120
|
currentValue: booleanSettingValue(this.state.includeInPrompt, CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.includeInPrompt),
|
|
1111
1121
|
values: ["false", "true"],
|
|
1112
1122
|
},
|
|
1123
|
+
{
|
|
1124
|
+
id: "context-memory-allow-external-egress",
|
|
1125
|
+
label: "Allow external queries",
|
|
1126
|
+
description: "Explicit consent to send bounded query text to eligible external memory providers. Default off; secret-like and oversized queries still fail closed, and returned recall is centrally fenced as untrusted data.",
|
|
1127
|
+
currentValue: booleanSettingValue(this.state.allowExternalEgress, CONTEXT_MEMORY_RETRIEVAL_DEFAULTS.allowExternalEgress),
|
|
1128
|
+
values: ["false", "true"],
|
|
1129
|
+
},
|
|
1113
1130
|
];
|
|
1114
1131
|
this.settingsList = new SettingsList(items, Math.min(items.length, 10), getSettingsListTheme(), (id, newValue) => {
|
|
1115
1132
|
switch (id) {
|
|
@@ -1125,6 +1142,9 @@ class ContextMemoryRetrievalSettingsSubmenu extends Container {
|
|
|
1125
1142
|
case "context-memory-include-in-prompt":
|
|
1126
1143
|
this.state = { ...this.state, includeInPrompt: newValue === "true" };
|
|
1127
1144
|
break;
|
|
1145
|
+
case "context-memory-allow-external-egress":
|
|
1146
|
+
this.state = { ...this.state, allowExternalEgress: newValue === "true" };
|
|
1147
|
+
break;
|
|
1128
1148
|
default:
|
|
1129
1149
|
return;
|
|
1130
1150
|
}
|
|
@@ -1140,13 +1160,23 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1140
1160
|
settingsList;
|
|
1141
1161
|
state;
|
|
1142
1162
|
scope;
|
|
1143
|
-
constructor(settings, currentModelPattern, modelOptions, onChange, onCancel, scope = "global") {
|
|
1163
|
+
constructor(settings, currentModelPattern, modelOptions, resolveModelThinkingLevels, onChange, onCancel, scope = "global") {
|
|
1144
1164
|
super();
|
|
1145
1165
|
this.state = {
|
|
1146
1166
|
...settings,
|
|
1147
1167
|
enabled: settings.enabled ?? false,
|
|
1148
1168
|
learningModel: settings.learningModel ?? "active",
|
|
1149
1169
|
};
|
|
1170
|
+
const levelsForModel = (modelPattern) => resolveModelThinkingLevels?.(modelPattern ?? currentModelPattern);
|
|
1171
|
+
const keepSupportedThinking = (level, modelPattern) => {
|
|
1172
|
+
const levels = levelsForModel(modelPattern);
|
|
1173
|
+
return level && levels && !levels.includes(level) ? undefined : level;
|
|
1174
|
+
};
|
|
1175
|
+
this.state.cheapThinking = keepSupportedThinking(this.state.cheapThinking, this.state.cheapModel);
|
|
1176
|
+
this.state.mediumThinking = keepSupportedThinking(this.state.mediumThinking, this.state.mediumModel);
|
|
1177
|
+
this.state.expensiveThinking = keepSupportedThinking(this.state.expensiveThinking, this.state.expensiveModel);
|
|
1178
|
+
this.state.executorThinking = keepSupportedThinking(this.state.executorThinking, this.state.executorModel);
|
|
1179
|
+
this.state.judgeThinking = keepSupportedThinking(this.state.judgeThinking, this.state.judgeModel);
|
|
1150
1180
|
this.scope = scope;
|
|
1151
1181
|
const cheapModelOptions = buildModelRouterRoleModelOptions({
|
|
1152
1182
|
currentValue: this.state.cheapModel,
|
|
@@ -1189,8 +1219,8 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1189
1219
|
currentModelPattern,
|
|
1190
1220
|
includeActive: true,
|
|
1191
1221
|
});
|
|
1192
|
-
const routedTierThinkingOptions = buildModelRouterThinkingOptions("Inherit the session thinking level for this turn, clamped to the routed model");
|
|
1193
|
-
const judgeThinkingOptions = buildModelRouterThinkingOptions("Use today's default of off for the routing judge's own completion");
|
|
1222
|
+
const routedTierThinkingOptions = (modelPattern) => buildModelRouterThinkingOptions("Inherit the session thinking level for this turn, clamped to the routed model", levelsForModel(modelPattern));
|
|
1223
|
+
const judgeThinkingOptions = () => buildModelRouterThinkingOptions("Use today's default of off for the routing judge's own completion", levelsForModel(this.state.judgeModel));
|
|
1194
1224
|
this.addChild(new Text(theme.bold(theme.fg("accent", "Model Router")), 0, 0));
|
|
1195
1225
|
this.addChild(new Spacer(1));
|
|
1196
1226
|
const items = [
|
|
@@ -1214,9 +1244,11 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1214
1244
|
description: "Pick the model for read-only, research, explanation, and question turns",
|
|
1215
1245
|
currentValue: routerTierValue(this.state.cheapModel, this.state.cheapThinking),
|
|
1216
1246
|
submenu: (_currentValue, done) => new ModelSelectionSubmenu(cheapModelOptions, this.state.cheapModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE, (value) => {
|
|
1247
|
+
const cheapModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;
|
|
1217
1248
|
this.state = {
|
|
1218
1249
|
...this.state,
|
|
1219
|
-
cheapModel
|
|
1250
|
+
cheapModel,
|
|
1251
|
+
cheapThinking: keepSupportedThinking(this.state.cheapThinking, cheapModel),
|
|
1220
1252
|
};
|
|
1221
1253
|
onChange({ ...this.state }, this.scope);
|
|
1222
1254
|
done(routerTierValue(this.state.cheapModel, this.state.cheapThinking));
|
|
@@ -1235,9 +1267,11 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1235
1267
|
description: "Pick the model for normal scoped implementation, edits, tests, and mechanical refactors",
|
|
1236
1268
|
currentValue: routerTierValue(this.state.mediumModel, this.state.mediumThinking),
|
|
1237
1269
|
submenu: (_currentValue, done) => new ModelSelectionSubmenu(mediumModelOptions, this.state.mediumModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE, (value) => {
|
|
1270
|
+
const mediumModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;
|
|
1238
1271
|
this.state = {
|
|
1239
1272
|
...this.state,
|
|
1240
|
-
mediumModel
|
|
1273
|
+
mediumModel,
|
|
1274
|
+
mediumThinking: keepSupportedThinking(this.state.mediumThinking, mediumModel),
|
|
1241
1275
|
};
|
|
1242
1276
|
onChange({ ...this.state }, this.scope);
|
|
1243
1277
|
done(routerTierValue(this.state.mediumModel, this.state.mediumThinking));
|
|
@@ -1256,9 +1290,11 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1256
1290
|
description: "Pick the model for modify, implementation, and escalated tool-heavy turns",
|
|
1257
1291
|
currentValue: routerTierValue(this.state.expensiveModel, this.state.expensiveThinking),
|
|
1258
1292
|
submenu: (_currentValue, done) => new ModelSelectionSubmenu(expensiveModelOptions, this.state.expensiveModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE, (value) => {
|
|
1293
|
+
const expensiveModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;
|
|
1259
1294
|
this.state = {
|
|
1260
1295
|
...this.state,
|
|
1261
|
-
expensiveModel
|
|
1296
|
+
expensiveModel,
|
|
1297
|
+
expensiveThinking: keepSupportedThinking(this.state.expensiveThinking, expensiveModel),
|
|
1262
1298
|
};
|
|
1263
1299
|
onChange({ ...this.state }, this.scope);
|
|
1264
1300
|
done(routerTierValue(this.state.expensiveModel, this.state.expensiveThinking));
|
|
@@ -1277,9 +1313,11 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1277
1313
|
description: "Pick the routing-judge model; unset falls back to the medium model",
|
|
1278
1314
|
currentValue: routerTierValue(this.state.judgeModel, this.state.judgeThinking, "medium fallback"),
|
|
1279
1315
|
submenu: (_currentValue, done) => new ModelSelectionSubmenu(judgeModelOptions, this.state.judgeModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE, (value) => {
|
|
1316
|
+
const judgeModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;
|
|
1280
1317
|
this.state = {
|
|
1281
1318
|
...this.state,
|
|
1282
|
-
judgeModel
|
|
1319
|
+
judgeModel,
|
|
1320
|
+
judgeThinking: keepSupportedThinking(this.state.judgeThinking, judgeModel),
|
|
1283
1321
|
};
|
|
1284
1322
|
onChange({ ...this.state }, this.scope);
|
|
1285
1323
|
done(routerTierValue(this.state.judgeModel, this.state.judgeThinking, "medium fallback"));
|
|
@@ -1298,9 +1336,11 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1298
1336
|
description: "Pick the local executor lane model; unset disables direct toolkit execution",
|
|
1299
1337
|
currentValue: routerTierValue(this.state.executorModel, this.state.executorThinking),
|
|
1300
1338
|
submenu: (_currentValue, done) => new ModelSelectionSubmenu(executorModelOptions, this.state.executorModel ?? MODEL_ROUTER_UNSET_MODEL_VALUE, (value) => {
|
|
1339
|
+
const executorModel = value === MODEL_ROUTER_UNSET_MODEL_VALUE ? undefined : value;
|
|
1301
1340
|
this.state = {
|
|
1302
1341
|
...this.state,
|
|
1303
|
-
executorModel
|
|
1342
|
+
executorModel,
|
|
1343
|
+
executorThinking: keepSupportedThinking(this.state.executorThinking, executorModel),
|
|
1304
1344
|
};
|
|
1305
1345
|
onChange({ ...this.state }, this.scope);
|
|
1306
1346
|
done(routerTierValue(this.state.executorModel, this.state.executorThinking));
|
|
@@ -1336,7 +1376,7 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1336
1376
|
label: "Cheap thinking",
|
|
1337
1377
|
description: "Thinking-level override for cheap-tier (read-only/research) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model",
|
|
1338
1378
|
currentValue: this.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,
|
|
1339
|
-
submenu: (_currentValue, done) => new SelectSubmenu("Cheap Tier Thinking", "Select a thinking-level override for cheap-tier routed turns, or inherit the session level", routedTierThinkingOptions, this.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1379
|
+
submenu: (_currentValue, done) => new SelectSubmenu("Cheap Tier Thinking", "Select a thinking-level override for cheap-tier routed turns, or inherit the session level", routedTierThinkingOptions(this.state.cheapModel), this.state.cheapThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1340
1380
|
this.state = {
|
|
1341
1381
|
...this.state,
|
|
1342
1382
|
cheapThinking: value === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : value,
|
|
@@ -1350,7 +1390,7 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1350
1390
|
label: "Medium thinking",
|
|
1351
1391
|
description: "Thinking-level override for medium-tier (scoped implementation) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model",
|
|
1352
1392
|
currentValue: this.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,
|
|
1353
|
-
submenu: (_currentValue, done) => new SelectSubmenu("Medium Tier Thinking", "Select a thinking-level override for medium-tier routed turns, or inherit the session level", routedTierThinkingOptions, this.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1393
|
+
submenu: (_currentValue, done) => new SelectSubmenu("Medium Tier Thinking", "Select a thinking-level override for medium-tier routed turns, or inherit the session level", routedTierThinkingOptions(this.state.mediumModel), this.state.mediumThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1354
1394
|
this.state = {
|
|
1355
1395
|
...this.state,
|
|
1356
1396
|
mediumThinking: value === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : value,
|
|
@@ -1364,7 +1404,7 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1364
1404
|
label: "Expensive thinking",
|
|
1365
1405
|
description: "Thinking-level override for expensive-tier (modify/escalated) routed turns; (inherit) keeps today's behavior: the session level, clamped to the routed model",
|
|
1366
1406
|
currentValue: this.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,
|
|
1367
|
-
submenu: (_currentValue, done) => new SelectSubmenu("Expensive Tier Thinking", "Select a thinking-level override for expensive-tier routed turns, or inherit the session level", routedTierThinkingOptions, this.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1407
|
+
submenu: (_currentValue, done) => new SelectSubmenu("Expensive Tier Thinking", "Select a thinking-level override for expensive-tier routed turns, or inherit the session level", routedTierThinkingOptions(this.state.expensiveModel), this.state.expensiveThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1368
1408
|
this.state = {
|
|
1369
1409
|
...this.state,
|
|
1370
1410
|
expensiveThinking: value === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : value,
|
|
@@ -1378,7 +1418,7 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1378
1418
|
label: "Executor thinking",
|
|
1379
1419
|
description: "Thinking-level override for the local executor-direct lane; (inherit) keeps today's behavior: the session level, clamped to the routed model",
|
|
1380
1420
|
currentValue: this.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,
|
|
1381
|
-
submenu: (_currentValue, done) => new SelectSubmenu("Executor Thinking", "Select a thinking-level override for the executor-direct lane, or inherit the session level", routedTierThinkingOptions, this.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1421
|
+
submenu: (_currentValue, done) => new SelectSubmenu("Executor Thinking", "Select a thinking-level override for the executor-direct lane, or inherit the session level", routedTierThinkingOptions(this.state.executorModel), this.state.executorThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1382
1422
|
this.state = {
|
|
1383
1423
|
...this.state,
|
|
1384
1424
|
executorThinking: value === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : value,
|
|
@@ -1392,7 +1432,7 @@ class ModelRouterSettingsSubmenu extends Container {
|
|
|
1392
1432
|
label: "Judge thinking",
|
|
1393
1433
|
description: "Thinking-level override for the routing judge's own completion; (inherit) keeps today's default of off",
|
|
1394
1434
|
currentValue: this.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_LABEL,
|
|
1395
|
-
submenu: (_currentValue, done) => new SelectSubmenu("Judge Thinking", "Select a thinking-level override for the routing judge's own completion, or inherit today's off default", judgeThinkingOptions, this.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1435
|
+
submenu: (_currentValue, done) => new SelectSubmenu("Judge Thinking", "Select a thinking-level override for the routing judge's own completion, or inherit today's off default", judgeThinkingOptions(), this.state.judgeThinking ?? MODEL_ROUTER_INHERIT_THINKING_VALUE, (value) => {
|
|
1396
1436
|
this.state = {
|
|
1397
1437
|
...this.state,
|
|
1398
1438
|
judgeThinking: value === MODEL_ROUTER_INHERIT_THINKING_VALUE ? undefined : value,
|
|
@@ -1641,7 +1681,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1641
1681
|
{
|
|
1642
1682
|
id: "worker-delegation",
|
|
1643
1683
|
label: "Worker Delegation",
|
|
1644
|
-
description: "
|
|
1684
|
+
description: "Default-on for capable models: bounded scout workers remain available at every thinking level; Ultra reinforces proactive use",
|
|
1645
1685
|
currentValue: workerDelegationSummary(currentWorkerDelegation),
|
|
1646
1686
|
submenu: (_currentValue, done) => new WorkerDelegationSettingsSubmenu(currentWorkerDelegation, (settings, scope) => {
|
|
1647
1687
|
currentWorkerDelegation = { ...settings };
|
|
@@ -1683,7 +1723,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1683
1723
|
label: "Model Router",
|
|
1684
1724
|
description: "Configure models for cheap research, expensive modify/escalation, and background learning/reflection",
|
|
1685
1725
|
currentValue: modelRouterSummary(currentModelRouter),
|
|
1686
|
-
submenu: (_currentValue, done) => new ModelRouterSettingsSubmenu(currentModelRouter, config.currentModelPattern, config.autoLearnModelOptions, (settings, scope) => {
|
|
1726
|
+
submenu: (_currentValue, done) => new ModelRouterSettingsSubmenu(currentModelRouter, config.currentModelPattern, config.autoLearnModelOptions, config.resolveModelThinkingLevels, (settings, scope) => {
|
|
1687
1727
|
currentModelRouter = { ...settings };
|
|
1688
1728
|
callbacks.onModelRouterChange(settings, scope);
|
|
1689
1729
|
}, () => done(modelRouterSummary(currentModelRouter)), config.modelRouterScope ?? "global"),
|
|
@@ -1711,7 +1751,7 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1711
1751
|
{
|
|
1712
1752
|
id: "context-memory-retrieval",
|
|
1713
1753
|
label: "Context / Memory Retrieval",
|
|
1714
|
-
description: "
|
|
1754
|
+
description: "Default-on local safe-auto recall with budgeted prompt evidence. External query egress is a separate visible consent and remains off by default.",
|
|
1715
1755
|
currentValue: contextMemoryRetrievalSummary(currentContextMemoryRetrieval),
|
|
1716
1756
|
submenu: (_currentValue, done) => new ContextMemoryRetrievalSettingsSubmenu(currentContextMemoryRetrieval, (settings, scope) => {
|
|
1717
1757
|
currentContextMemoryRetrieval = { ...settings };
|
|
@@ -1731,9 +1771,9 @@ export class SettingsSelectorComponent extends Container {
|
|
|
1731
1771
|
{
|
|
1732
1772
|
id: "thinking",
|
|
1733
1773
|
label: "Thinking level",
|
|
1734
|
-
description: "Reasoning depth
|
|
1774
|
+
description: "Reasoning depth; supported Ultra models also reinforce proactive delegation",
|
|
1735
1775
|
currentValue: config.thinkingLevel,
|
|
1736
|
-
submenu: (currentValue, done) => new SelectSubmenu("Thinking Level", "Select reasoning depth
|
|
1776
|
+
submenu: (currentValue, done) => new SelectSubmenu("Thinking Level", "Select reasoning depth; Ultra reinforces delegation already available to capable models", config.availableThinkingLevels.map((level) => ({
|
|
1737
1777
|
value: level,
|
|
1738
1778
|
label: level,
|
|
1739
1779
|
description: THINKING_DESCRIPTIONS[level],
|