@mariozechner/pi-coding-agent 0.55.4 → 0.56.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/CHANGELOG.md +51 -0
- package/README.md +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +1 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session.d.ts +5 -4
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +26 -5
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +2 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +4 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +14 -3
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +9 -6
- 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 +35 -5
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/sdk.d.ts +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/settings-manager.d.ts +3 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +4 -0
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +4 -4
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +5 -2
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +8 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +1 -1
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +1 -1
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +1 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +11 -0
- package/dist/modes/interactive/components/user-message.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 +27 -25
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +5 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/docs/custom-provider.md +10 -2
- package/docs/providers.md +3 -1
- package/docs/settings.md +1 -0
- package/examples/extensions/antigravity-image-gen.ts +3 -1
- 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/custom-provider-qwen-cli/package.json +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +8 -6
|
@@ -73,6 +73,7 @@ export class AgentSession {
|
|
|
73
73
|
// Compaction state
|
|
74
74
|
_compactionAbortController = undefined;
|
|
75
75
|
_autoCompactionAbortController = undefined;
|
|
76
|
+
_overflowRecoveryAttempted = false;
|
|
76
77
|
// Branch summarization state
|
|
77
78
|
_branchSummaryAbortController = undefined;
|
|
78
79
|
// Retry state
|
|
@@ -182,6 +183,7 @@ export class AgentSession {
|
|
|
182
183
|
// When a user message starts, check if it's from either queue and remove it BEFORE emitting
|
|
183
184
|
// This ensures the UI sees the updated queue state
|
|
184
185
|
if (event.type === "message_start" && event.message.role === "user") {
|
|
186
|
+
this._overflowRecoveryAttempted = false;
|
|
185
187
|
const messageText = this._getUserMessageText(event.message);
|
|
186
188
|
if (messageText) {
|
|
187
189
|
// Check steering queue first
|
|
@@ -219,9 +221,12 @@ export class AgentSession {
|
|
|
219
221
|
// Track assistant message for auto-compaction (checked on agent_end)
|
|
220
222
|
if (event.message.role === "assistant") {
|
|
221
223
|
this._lastAssistantMessage = event.message;
|
|
224
|
+
const assistantMsg = event.message;
|
|
225
|
+
if (assistantMsg.stopReason !== "error") {
|
|
226
|
+
this._overflowRecoveryAttempted = false;
|
|
227
|
+
}
|
|
222
228
|
// Reset retry counter immediately on successful assistant response
|
|
223
229
|
// This prevents accumulation across multiple LLM calls within a turn
|
|
224
|
-
const assistantMsg = event.message;
|
|
225
230
|
if (assistantMsg.stopReason !== "error" && this._retryAttempt > 0) {
|
|
226
231
|
this._emit({
|
|
227
232
|
type: "auto_retry_end",
|
|
@@ -464,9 +469,11 @@ export class AgentSession {
|
|
|
464
469
|
this._baseSystemPrompt = this._rebuildSystemPrompt(validToolNames);
|
|
465
470
|
this.agent.setSystemPrompt(this._baseSystemPrompt);
|
|
466
471
|
}
|
|
467
|
-
/** Whether
|
|
472
|
+
/** Whether compaction or branch summarization is currently running */
|
|
468
473
|
get isCompacting() {
|
|
469
|
-
return this._autoCompactionAbortController !== undefined ||
|
|
474
|
+
return (this._autoCompactionAbortController !== undefined ||
|
|
475
|
+
this._compactionAbortController !== undefined ||
|
|
476
|
+
this._branchSummaryAbortController !== undefined);
|
|
470
477
|
}
|
|
471
478
|
/** All messages including custom types like BashExecutionMessage */
|
|
472
479
|
get messages() {
|
|
@@ -1059,8 +1066,11 @@ export class AgentSession {
|
|
|
1059
1066
|
this.agent.setModel(next.model);
|
|
1060
1067
|
this.sessionManager.appendModelChange(next.model.provider, next.model.id);
|
|
1061
1068
|
this.settingsManager.setDefaultModelAndProvider(next.model.provider, next.model.id);
|
|
1062
|
-
// Apply thinking level
|
|
1063
|
-
|
|
1069
|
+
// Apply thinking level.
|
|
1070
|
+
// - Explicit scoped model thinking level overrides current session level
|
|
1071
|
+
// - Undefined scoped model thinking level inherits current session level
|
|
1072
|
+
// setThinkingLevel clamps to model capabilities.
|
|
1073
|
+
this.setThinkingLevel(next.thinkingLevel ?? this.thinkingLevel);
|
|
1064
1074
|
await this._emitModelSelect(next.model, currentModel, "cycle");
|
|
1065
1075
|
return { model: next.model, thinkingLevel: this.thinkingLevel, isScoped: true };
|
|
1066
1076
|
}
|
|
@@ -1321,6 +1331,17 @@ export class AgentSession {
|
|
|
1321
1331
|
const errorIsFromBeforeCompaction = compactionEntry !== null && assistantMessage.timestamp < new Date(compactionEntry.timestamp).getTime();
|
|
1322
1332
|
// Case 1: Overflow - LLM returned context overflow error
|
|
1323
1333
|
if (sameModel && !errorIsFromBeforeCompaction && isContextOverflow(assistantMessage, contextWindow)) {
|
|
1334
|
+
if (this._overflowRecoveryAttempted) {
|
|
1335
|
+
this._emit({
|
|
1336
|
+
type: "auto_compaction_end",
|
|
1337
|
+
result: undefined,
|
|
1338
|
+
aborted: false,
|
|
1339
|
+
willRetry: false,
|
|
1340
|
+
errorMessage: "Context overflow recovery failed after one compact-and-retry attempt. Try reducing context or switching to a larger-context model.",
|
|
1341
|
+
});
|
|
1342
|
+
return;
|
|
1343
|
+
}
|
|
1344
|
+
this._overflowRecoveryAttempted = true;
|
|
1324
1345
|
// Remove the error message from agent state (it IS saved to session for history,
|
|
1325
1346
|
// but we don't want it in context for the retry)
|
|
1326
1347
|
const messages = this.agent.state.messages;
|