@dreb/coding-agent 2.65.0 → 2.66.1
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 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +15 -5
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/extensions/types.d.ts +3 -5
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +12 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/settings-manager.d.ts +9 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +8 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/subagent.d.ts +10 -1
- package/dist/core/tools/subagent.d.ts.map +1 -1
- package/dist/core/tools/subagent.js +59 -7
- package/dist/core/tools/subagent.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +3 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +10 -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 +6 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +6 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +4 -0
- 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 +14 -0
- package/docs/compaction.md +1 -1
- package/docs/extensions.md +2 -4
- package/docs/models.md +4 -2
- package/docs/rpc.md +6 -2
- package/docs/settings.md +1 -0
- 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, modelsAreEqual, resetApiProviders, supportsMax, supportsXhigh } from "@dreb/ai";
|
|
18
|
+
import { isContextOverflow, isOutputLimitExhaustion, modelsAreEqual, resetApiProviders, supportsMax, supportsXhigh, } from "@dreb/ai";
|
|
19
19
|
import { getDocsPath } from "../config.js";
|
|
20
20
|
import { theme } from "../modes/interactive/theme/theme.js";
|
|
21
21
|
import { sleep } from "../utils/sleep.js";
|
|
@@ -1036,8 +1036,7 @@ export class AgentSession {
|
|
|
1036
1036
|
type: "length_retry",
|
|
1037
1037
|
attempt: event.attempt,
|
|
1038
1038
|
maxAttempts: event.maxAttempts,
|
|
1039
|
-
|
|
1040
|
-
nextMaxTokens: event.nextMaxTokens,
|
|
1039
|
+
maxTokens: event.maxTokens,
|
|
1041
1040
|
discardedPartial: event.discardedPartial,
|
|
1042
1041
|
};
|
|
1043
1042
|
await this._extensionRunner.emit(extensionEvent);
|
|
@@ -2209,8 +2208,14 @@ export class AgentSession {
|
|
|
2209
2208
|
if (assistantIsFromBeforeCompaction) {
|
|
2210
2209
|
return;
|
|
2211
2210
|
}
|
|
2212
|
-
// Case 1: Overflow - LLM returned context
|
|
2213
|
-
|
|
2211
|
+
// Case 1: Overflow - LLM returned a context error, or exhausted its
|
|
2212
|
+
// configured output limit when that output could not fit beside the request.
|
|
2213
|
+
const estimatedInputTokens = estimateContextTokens(this.agent.state.messages.slice(0, -1)).tokens;
|
|
2214
|
+
if (sameModel &&
|
|
2215
|
+
isContextOverflow(assistantMessage, contextWindow, {
|
|
2216
|
+
maxOutputTokens: this.model?.maxTokens,
|
|
2217
|
+
estimatedInputTokens,
|
|
2218
|
+
})) {
|
|
2214
2219
|
// K3 auto context tier: an overflow in the 256k tier upgrades to the
|
|
2215
2220
|
// 1M tier instead of compacting — the Kimi backend grows the prompt
|
|
2216
2221
|
// cache seamlessly. This runs even when compaction is disabled since
|
|
@@ -2247,6 +2252,10 @@ export class AgentSession {
|
|
|
2247
2252
|
await this._trackAutoCompaction("overflow", true, requestWillFollow);
|
|
2248
2253
|
return;
|
|
2249
2254
|
}
|
|
2255
|
+
// A genuine output-limit exhaustion cannot be fixed by discarding conversation
|
|
2256
|
+
// history. Only the context-constrained case above enters compact-and-retry.
|
|
2257
|
+
if (isOutputLimitExhaustion(assistantMessage))
|
|
2258
|
+
return;
|
|
2250
2259
|
// Case 2: Threshold - context is getting large
|
|
2251
2260
|
// For error messages (no usage data), estimate from last successful response.
|
|
2252
2261
|
// This ensures sessions that hit persistent API errors (e.g. 529) can still compact.
|
|
@@ -2822,6 +2831,7 @@ export class AgentSession {
|
|
|
2822
2831
|
parentModel: () => this.model?.id,
|
|
2823
2832
|
parentSessionFile: () => this.sessionFile,
|
|
2824
2833
|
parentSessionId: () => this.sessionId,
|
|
2834
|
+
singleModelMode: () => this.settingsManager.getSingleModelMode(),
|
|
2825
2835
|
modelRegistry: this._modelRegistry,
|
|
2826
2836
|
getAgentModelsForAgent: (name) => this.settingsManager?.getAgentModelsForAgent(name),
|
|
2827
2837
|
defaultThinkingLevel: () => this.settingsManager.getDefaultThinkingLevel() ?? DEFAULT_THINKING_LEVEL,
|