@dreb/coding-agent 2.25.3 → 2.25.4
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 +2 -0
- package/README.md +1 -1
- package/dist/core/agent-session.d.ts +7 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +15 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +3 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +13 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +40 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/thinking.d.ts +10 -1
- package/dist/core/thinking.d.ts.map +1 -1
- package/dist/core/thinking.js +14 -0
- package/dist/core/thinking.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +5 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +16 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +26 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/settings.md +27 -0
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import * as crypto from "node:crypto";
|
|
|
6
6
|
import * as fs from "node:fs";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as path from "node:path";
|
|
9
|
+
import { supportsAdaptiveThinking } from "@dreb/ai";
|
|
9
10
|
import { CombinedAutocompleteProvider, Container, fuzzyFilter, Loader, Markdown, matchesKey, ProcessTerminal, Spacer, setKeybindings, Text, TruncatedText, TUI, visibleWidth, } from "@dreb/tui";
|
|
10
11
|
import { spawn, spawnSync } from "child_process";
|
|
11
12
|
import { APP_NAME, getAgentDir, getAuthPath, getDebugLogPath, getUpdateInstruction, VERSION } from "../../config.js";
|
|
@@ -22,6 +23,7 @@ import { DefaultPackageManager } from "../../core/package-manager.js";
|
|
|
22
23
|
import { SessionManager } from "../../core/session-manager.js";
|
|
23
24
|
import { BUILTIN_SLASH_COMMANDS } from "../../core/slash-commands.js";
|
|
24
25
|
import { restoreStderr, takeOverStderr } from "../../core/stderr-guard.js";
|
|
26
|
+
import { resolveThinkingDisplay } from "../../core/thinking.js";
|
|
25
27
|
import { resolveToCwd } from "../../core/tools/path-utils.js";
|
|
26
28
|
import { abortBackgroundAgents, discoverAgentTypes, getRunningBackgroundAgents } from "../../core/tools/subagent.js";
|
|
27
29
|
import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
|
|
@@ -2975,6 +2977,12 @@ export class InteractiveMode {
|
|
|
2975
2977
|
const agentNames = Array.from(agentTypes.keys()).sort();
|
|
2976
2978
|
const availableModels = this.session.modelRegistry.getAvailable();
|
|
2977
2979
|
const availableModelIds = availableModels.map((m) => `${m.provider}/${m.id}`);
|
|
2980
|
+
const currentModel = this.session.model;
|
|
2981
|
+
const thinkingDisplaySupported = currentModel ? supportsAdaptiveThinking(currentModel) : false;
|
|
2982
|
+
const thinkingDisplay = currentModel
|
|
2983
|
+
? (resolveThinkingDisplay(currentModel, this.settingsManager.getModelThinkingDisplay(currentModel.id)) ??
|
|
2984
|
+
"summarized")
|
|
2985
|
+
: "summarized";
|
|
2978
2986
|
const selector = new SettingsSelectorComponent({
|
|
2979
2987
|
autoCompact: this.session.autoCompactionEnabled,
|
|
2980
2988
|
showImages: this.settingsManager.getShowImages(),
|
|
@@ -2989,6 +2997,8 @@ export class InteractiveMode {
|
|
|
2989
2997
|
currentTheme: this.settingsManager.getTheme() || "dark",
|
|
2990
2998
|
availableThemes: getAvailableThemes(),
|
|
2991
2999
|
hideThinkingBlock: this.hideThinkingBlock,
|
|
3000
|
+
thinkingDisplaySupported,
|
|
3001
|
+
thinkingDisplay,
|
|
2992
3002
|
collapseChangelog: this.settingsManager.getCollapseChangelog(),
|
|
2993
3003
|
doubleEscapeAction: this.settingsManager.getDoubleEscapeAction(),
|
|
2994
3004
|
treeFilterMode: this.settingsManager.getTreeFilterMode(),
|
|
@@ -3063,6 +3073,22 @@ export class InteractiveMode {
|
|
|
3063
3073
|
this.chatContainer.clear();
|
|
3064
3074
|
this.rebuildChatFromMessages();
|
|
3065
3075
|
},
|
|
3076
|
+
onThinkingDisplayChange: (display) => {
|
|
3077
|
+
const model = this.session.model;
|
|
3078
|
+
if (!model)
|
|
3079
|
+
return;
|
|
3080
|
+
this.settingsManager.setModelThinkingDisplay(model.id, display);
|
|
3081
|
+
// Refresh the live agent so the change takes effect this session.
|
|
3082
|
+
const effective = resolveThinkingDisplay(model, this.settingsManager.getModelThinkingDisplay(model.id));
|
|
3083
|
+
this.session.agent.thinkingDisplay = effective;
|
|
3084
|
+
// The toggle writes to GLOBAL settings, but getModelThinkingDisplay
|
|
3085
|
+
// resolves project-over-global. If a project-level modelSettings
|
|
3086
|
+
// override exists in .dreb/settings.json, it shadows the toggle and
|
|
3087
|
+
// the change silently has no effect. Fail loudly instead.
|
|
3088
|
+
if (supportsAdaptiveThinking(model) && effective !== display) {
|
|
3089
|
+
this.showWarning(`Thinking display for "${model.id}" was not changed: a project-level "modelSettings" override in .dreb/settings.json takes precedence (effective: "${effective}"). Remove or edit that override to use this toggle.`);
|
|
3090
|
+
}
|
|
3091
|
+
},
|
|
3066
3092
|
onCollapseChangelogChange: (collapsed) => {
|
|
3067
3093
|
this.settingsManager.setCollapseChangelog(collapsed);
|
|
3068
3094
|
},
|