@leanandmean/coding-agent 0.74.1-scramjet.43 → 0.74.1-scramjet.45
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/cli/initial-message.d.ts +1 -0
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js +3 -0
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/list-models.d.ts +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +1 -5
- package/dist/cli/list-models.js.map +1 -1
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +12 -13
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +22 -18
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +3 -5
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +42 -10
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/types.d.ts +5 -7
- 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 +3 -2
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +34 -31
- 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 +3 -2
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +9 -2
- package/dist/core/sdk.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +4 -9
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +3 -2
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/docs/compaction.md +10 -4
- package/docs/custom-provider.md +9 -2
- package/docs/extensions.md +2 -2
- package/docs/models.md +22 -5
- package/docs/rpc.md +3 -5
- package/docs/sdk.md +8 -0
- package/examples/extensions/border-status-editor.ts +1 -6
- package/package.json +4 -4
|
@@ -17,7 +17,7 @@ import { basename, dirname, resolve } from "node:path";
|
|
|
17
17
|
// SCRAMJET-DIVERGENCE: provider-safe harness tool-call id generation for the persisted-settlement
|
|
18
18
|
// acknowledgement key (#341).
|
|
19
19
|
import { generateHarnessToolCallId } from "@leanandmean/agent";
|
|
20
|
-
import { clampThinkingLevel, cleanupSessionResources, flattenSystemPrompt,
|
|
20
|
+
import { clampThinkingLevel, cleanupSessionResources, flattenSystemPrompt, getSupportedThinkingLevels, isContextOverflow, modelsAreEqual, resetApiProviders, } from "@leanandmean/ai";
|
|
21
21
|
import { theme } from "../modes/interactive/theme/theme.js";
|
|
22
22
|
import { stripFrontmatter } from "../utils/frontmatter.js";
|
|
23
23
|
import { sleep } from "../utils/sleep.js";
|
|
@@ -1760,8 +1760,8 @@ export class AgentSession {
|
|
|
1760
1760
|
// Skip if message was aborted (user cancelled) - unless skipAbortedCheck is false
|
|
1761
1761
|
if (skipAbortedCheck && assistantMessage.stopReason === "aborted")
|
|
1762
1762
|
return;
|
|
1763
|
-
// SCRAMJET-DIVERGENCE:
|
|
1764
|
-
const contextWindow = this.model
|
|
1763
|
+
// SCRAMJET-DIVERGENCE: Total context and independent input limits are separate constraints.
|
|
1764
|
+
const contextWindow = this.model?.contextWindow ?? 0;
|
|
1765
1765
|
// Skip overflow check if the message came from a different model.
|
|
1766
1766
|
// This handles the case where user switched from a smaller-context model (e.g. opus)
|
|
1767
1767
|
// to a larger-context model (e.g. codex) - the overflow error from the old model
|
|
@@ -1776,7 +1776,8 @@ export class AgentSession {
|
|
|
1776
1776
|
return;
|
|
1777
1777
|
}
|
|
1778
1778
|
// Case 1: Overflow - LLM returned context overflow error
|
|
1779
|
-
if (sameModel &&
|
|
1779
|
+
if (sameModel &&
|
|
1780
|
+
isContextOverflow(assistantMessage, Math.min(contextWindow, this.model?.maxInputTokens ?? Infinity))) {
|
|
1780
1781
|
if (this._overflowRecoveryAttempted) {
|
|
1781
1782
|
this._emit({
|
|
1782
1783
|
type: "compaction_end",
|
|
@@ -1821,7 +1822,8 @@ export class AgentSession {
|
|
|
1821
1822
|
else {
|
|
1822
1823
|
contextTokens = calculateContextTokens(assistantMessage.usage);
|
|
1823
1824
|
}
|
|
1824
|
-
if (shouldCompact(contextTokens, contextWindow, settings)
|
|
1825
|
+
if (shouldCompact(contextTokens, contextWindow, settings) ||
|
|
1826
|
+
(contextWindow > settings.reserveTokens && contextTokens > (this.model?.maxInputTokens ?? Infinity))) {
|
|
1825
1827
|
await this._runAutoCompaction("threshold", false);
|
|
1826
1828
|
}
|
|
1827
1829
|
}
|
|
@@ -2318,9 +2320,8 @@ export class AgentSession {
|
|
|
2318
2320
|
if (message.stopReason !== "error" || !message.errorMessage)
|
|
2319
2321
|
return false;
|
|
2320
2322
|
// Context overflow is handled by compaction, not retry
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
if (isContextOverflow(message, contextWindow))
|
|
2323
|
+
const contextWindow = this.model?.contextWindow ?? 0;
|
|
2324
|
+
if (isContextOverflow(message, Math.min(contextWindow, this.model?.maxInputTokens ?? Infinity)))
|
|
2324
2325
|
return false;
|
|
2325
2326
|
const err = message.errorMessage;
|
|
2326
2327
|
// Match: overloaded_error, provider returned error, rate limit, 429, 500, 502, 503, 504, service unavailable, network/connection errors (including connection lost), WebSocket transport closes/errors, fetch failed, premature stream endings, HTTP/2 closed before response, terminated, retry delay exceeded
|
|
@@ -2779,8 +2780,7 @@ export class AgentSession {
|
|
|
2779
2780
|
if (!model)
|
|
2780
2781
|
return undefined;
|
|
2781
2782
|
const contextWindow = model.contextWindow ?? 0;
|
|
2782
|
-
|
|
2783
|
-
if (contextWindow <= 0 || contextWindowBudget <= 0)
|
|
2783
|
+
if (contextWindow <= 0)
|
|
2784
2784
|
return undefined;
|
|
2785
2785
|
// After compaction, the last assistant usage reflects pre-compaction context size.
|
|
2786
2786
|
// We can only trust usage from an assistant that responded after the latest compaction.
|
|
@@ -2805,15 +2805,14 @@ export class AgentSession {
|
|
|
2805
2805
|
}
|
|
2806
2806
|
}
|
|
2807
2807
|
if (!hasPostCompactionUsage) {
|
|
2808
|
-
return { tokens: null, contextWindow,
|
|
2808
|
+
return { tokens: null, contextWindow, percent: null };
|
|
2809
2809
|
}
|
|
2810
2810
|
}
|
|
2811
2811
|
const estimate = estimateContextTokens(this.messages);
|
|
2812
|
-
const percent = (estimate.tokens /
|
|
2812
|
+
const percent = (estimate.tokens / contextWindow) * 100;
|
|
2813
2813
|
return {
|
|
2814
2814
|
tokens: estimate.tokens,
|
|
2815
2815
|
contextWindow,
|
|
2816
|
-
contextWindowBudget,
|
|
2817
2816
|
percent,
|
|
2818
2817
|
};
|
|
2819
2818
|
}
|