@dreb/coding-agent 2.70.1 → 2.72.0
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/README.md +4 -1
- package/dist/cli/args.d.ts +6 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +17 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/core/agent-session.d.ts +3 -9
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +19 -51
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/output-guard.d.ts +6 -0
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js +86 -13
- package/dist/core/output-guard.js.map +1 -1
- package/dist/core/thinking.d.ts +2 -0
- package/dist/core/thinking.d.ts.map +1 -1
- package/dist/core/thinking.js +20 -14
- package/dist/core/thinking.js.map +1 -1
- package/dist/core/tools/subagent.d.ts +1 -0
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +13 -0
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +13 -10
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +9 -5
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/index.d.ts +2 -2
- package/dist/modes/rpc/index.d.ts.map +1 -1
- package/dist/modes/rpc/index.js +1 -1
- package/dist/modes/rpc/index.js.map +1 -1
- package/dist/modes/rpc/rpc-event-projection.d.ts +14 -9
- package/dist/modes/rpc/rpc-event-projection.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-event-projection.js +16 -11
- package/dist/modes/rpc/rpc-event-projection.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +10 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +29 -15
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +28 -2
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/docs/agent-models.md +1 -1
- package/docs/models.md +1 -1
- package/docs/providers.md +26 -0
- package/docs/rpc.md +25 -13
- package/package.json +1 -1
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { copyFileSync, existsSync, mkdirSync, realpathSync, writeFileSync } from "node:fs";
|
|
16
16
|
import { tmpdir } from "node:os";
|
|
17
17
|
import { basename, dirname, join, resolve } from "node:path";
|
|
18
|
-
import { isContextOverflow, isOutputLimitExhaustion, modelsAreEqual, resetApiProviders,
|
|
18
|
+
import { clampThinkingLevel, getAvailableThinkingLevels, isContextOverflow, isOutputLimitExhaustion, modelsAreEqual, resetApiProviders, } from "@dreb/ai";
|
|
19
19
|
import { getDocsPath, getSubagentSessionsDir } from "../config.js";
|
|
20
20
|
import { theme } from "../modes/interactive/theme/theme.js";
|
|
21
21
|
import { sleep } from "../utils/sleep.js";
|
|
@@ -67,12 +67,6 @@ export function parseSkillBlock(text) {
|
|
|
67
67
|
// ============================================================================
|
|
68
68
|
// Constants
|
|
69
69
|
// ============================================================================
|
|
70
|
-
/** Standard thinking levels */
|
|
71
|
-
const THINKING_LEVELS = ["off", "minimal", "low", "medium", "high"];
|
|
72
|
-
/** Thinking levels including xhigh (for supported models). */
|
|
73
|
-
const THINKING_LEVELS_WITH_XHIGH = ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
74
|
-
/** Complete ordered scale, including the native max tier for supported models. */
|
|
75
|
-
const THINKING_LEVELS_WITH_MAX = [...THINKING_LEVELS_WITH_XHIGH, "max"];
|
|
76
70
|
const MIN_PERFORMANCE_DURATION_MS = 10;
|
|
77
71
|
// ============================================================================
|
|
78
72
|
// AgentSession Class
|
|
@@ -1949,14 +1943,16 @@ export class AgentSession {
|
|
|
1949
1943
|
* Saves to session and settings only if the level actually changes.
|
|
1950
1944
|
*/
|
|
1951
1945
|
setThinkingLevel(level) {
|
|
1952
|
-
const
|
|
1953
|
-
const effectiveLevel = availableLevels.includes(level) ? level : this._clampThinkingLevel(level, availableLevels);
|
|
1946
|
+
const effectiveLevel = clampThinkingLevel(this.model, level);
|
|
1954
1947
|
// Only persist if actually changing
|
|
1955
1948
|
const isChanging = effectiveLevel !== this.agent.state.thinkingLevel;
|
|
1956
1949
|
this.agent.setThinkingLevel(effectiveLevel);
|
|
1957
1950
|
if (isChanging) {
|
|
1958
1951
|
this.sessionManager.appendThinkingLevelChange(effectiveLevel);
|
|
1959
|
-
|
|
1952
|
+
// A capability clamp (non-reasoning model, `off` on an always-thinking model,
|
|
1953
|
+
// unsupported xhigh/max) must not overwrite the saved preference, so the next
|
|
1954
|
+
// capable model can honor it again.
|
|
1955
|
+
if (this.supportsThinking() && effectiveLevel === level) {
|
|
1960
1956
|
this.settingsManager.setDefaultThinkingLevel(effectiveLevel);
|
|
1961
1957
|
}
|
|
1962
1958
|
}
|
|
@@ -1976,25 +1972,12 @@ export class AgentSession {
|
|
|
1976
1972
|
return nextLevel;
|
|
1977
1973
|
}
|
|
1978
1974
|
/**
|
|
1979
|
-
* Get available thinking levels for current model.
|
|
1980
|
-
*
|
|
1975
|
+
* Get available thinking levels for current model, in ascending order.
|
|
1976
|
+
* `off` is omitted for models whose thinking cannot be turned off (Claude Opus 5.5+),
|
|
1977
|
+
* and `xhigh` / `max` are included independently per model capability.
|
|
1981
1978
|
*/
|
|
1982
1979
|
getAvailableThinkingLevels() {
|
|
1983
|
-
|
|
1984
|
-
return ["off"];
|
|
1985
|
-
if (this.supportsMaxThinking())
|
|
1986
|
-
return THINKING_LEVELS_WITH_MAX;
|
|
1987
|
-
return this.supportsXhighThinking() ? THINKING_LEVELS_WITH_XHIGH : THINKING_LEVELS;
|
|
1988
|
-
}
|
|
1989
|
-
/**
|
|
1990
|
-
* Check if current model supports xhigh thinking level.
|
|
1991
|
-
*/
|
|
1992
|
-
supportsXhighThinking() {
|
|
1993
|
-
return this.model ? supportsXhigh(this.model) : false;
|
|
1994
|
-
}
|
|
1995
|
-
/** Check if the current model supports the native max thinking level. */
|
|
1996
|
-
supportsMaxThinking() {
|
|
1997
|
-
return this.model ? supportsMax(this.model) : false;
|
|
1980
|
+
return getAvailableThinkingLevels(this.model);
|
|
1998
1981
|
}
|
|
1999
1982
|
/**
|
|
2000
1983
|
* Check if current model supports thinking/reasoning.
|
|
@@ -2006,29 +1989,17 @@ export class AgentSession {
|
|
|
2006
1989
|
if (explicitLevel !== undefined) {
|
|
2007
1990
|
return explicitLevel;
|
|
2008
1991
|
}
|
|
1992
|
+
const savedLevel = this.settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL;
|
|
2009
1993
|
if (!this.supportsThinking()) {
|
|
2010
|
-
return
|
|
1994
|
+
return savedLevel;
|
|
2011
1995
|
}
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
const requestedIndex = ordered.indexOf(level);
|
|
2018
|
-
if (requestedIndex === -1) {
|
|
2019
|
-
return availableLevels[0] ?? "off";
|
|
2020
|
-
}
|
|
2021
|
-
for (let i = requestedIndex; i < ordered.length; i++) {
|
|
2022
|
-
const candidate = ordered[i];
|
|
2023
|
-
if (available.has(candidate))
|
|
2024
|
-
return candidate;
|
|
1996
|
+
// When the current level is only the capability clamp of the saved preference
|
|
1997
|
+
// (e.g. saved `off` shown as `minimal` on Opus 5.5), carry the saved preference
|
|
1998
|
+
// to the next model instead of the clamped value.
|
|
1999
|
+
if (clampThinkingLevel(this.model, savedLevel) === this.thinkingLevel) {
|
|
2000
|
+
return savedLevel;
|
|
2025
2001
|
}
|
|
2026
|
-
|
|
2027
|
-
const candidate = ordered[i];
|
|
2028
|
-
if (available.has(candidate))
|
|
2029
|
-
return candidate;
|
|
2030
|
-
}
|
|
2031
|
-
return availableLevels[0] ?? "off";
|
|
2002
|
+
return this.thinkingLevel;
|
|
2032
2003
|
}
|
|
2033
2004
|
// =========================================================================
|
|
2034
2005
|
// Queue Mode Management
|
|
@@ -3229,10 +3200,7 @@ export class AgentSession {
|
|
|
3229
3200
|
this.setThinkingLevel(sessionContext.thinkingLevel);
|
|
3230
3201
|
}
|
|
3231
3202
|
else {
|
|
3232
|
-
const
|
|
3233
|
-
const effectiveLevel = availableLevels.includes(defaultThinkingLevel)
|
|
3234
|
-
? defaultThinkingLevel
|
|
3235
|
-
: this._clampThinkingLevel(defaultThinkingLevel, availableLevels);
|
|
3203
|
+
const effectiveLevel = clampThinkingLevel(this.model, defaultThinkingLevel);
|
|
3236
3204
|
this.agent.setThinkingLevel(effectiveLevel);
|
|
3237
3205
|
this.sessionManager.appendThinkingLevelChange(effectiveLevel);
|
|
3238
3206
|
}
|