@mariozechner/pi-coding-agent 0.50.1 → 0.50.2

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.
Files changed (66) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +2 -0
  3. package/dist/core/agent-session.d.ts.map +1 -1
  4. package/dist/core/agent-session.js +14 -13
  5. package/dist/core/agent-session.js.map +1 -1
  6. package/dist/core/defaults.d.ts +3 -0
  7. package/dist/core/defaults.d.ts.map +1 -0
  8. package/dist/core/defaults.js +2 -0
  9. package/dist/core/defaults.js.map +1 -0
  10. package/dist/core/extensions/runner.d.ts +4 -0
  11. package/dist/core/extensions/runner.d.ts.map +1 -1
  12. package/dist/core/extensions/runner.js +9 -0
  13. package/dist/core/extensions/runner.js.map +1 -1
  14. package/dist/core/model-resolver.d.ts.map +1 -1
  15. package/dist/core/model-resolver.js +8 -6
  16. package/dist/core/model-resolver.js.map +1 -1
  17. package/dist/core/package-manager.d.ts.map +1 -1
  18. package/dist/core/package-manager.js +4 -4
  19. package/dist/core/package-manager.js.map +1 -1
  20. package/dist/core/prompt-templates.d.ts.map +1 -1
  21. package/dist/core/prompt-templates.js.map +1 -1
  22. package/dist/core/sdk.d.ts +1 -1
  23. package/dist/core/sdk.d.ts.map +1 -1
  24. package/dist/core/sdk.js +3 -2
  25. package/dist/core/sdk.js.map +1 -1
  26. package/dist/core/settings-manager.d.ts +7 -0
  27. package/dist/core/settings-manager.d.ts.map +1 -1
  28. package/dist/core/settings-manager.js +71 -4
  29. package/dist/core/settings-manager.js.map +1 -1
  30. package/dist/main.d.ts.map +1 -1
  31. package/dist/main.js +2 -1
  32. package/dist/main.js.map +1 -1
  33. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  34. package/dist/modes/interactive/components/custom-editor.js +2 -1
  35. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  36. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  37. package/dist/modes/interactive/components/footer.js +17 -13
  38. package/dist/modes/interactive/components/footer.js.map +1 -1
  39. package/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  40. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  41. package/dist/modes/interactive/components/settings-selector.js +12 -0
  42. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  43. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  44. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  45. package/dist/modes/interactive/interactive-mode.js +48 -25
  46. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  47. package/dist/modes/rpc/rpc-client.d.ts +5 -1
  48. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  49. package/dist/modes/rpc/rpc-client.js +7 -0
  50. package/dist/modes/rpc/rpc-client.js.map +1 -1
  51. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  52. package/dist/modes/rpc/rpc-mode.js +36 -0
  53. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  54. package/dist/modes/rpc/rpc-types.d.ts +24 -0
  55. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  56. package/dist/modes/rpc/rpc-types.js.map +1 -1
  57. package/docs/keybindings.md +3 -3
  58. package/docs/providers.md +1 -0
  59. package/docs/rpc.md +41 -0
  60. package/docs/settings.md +1 -0
  61. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  62. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  63. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  64. package/examples/extensions/with-deps/package-lock.json +2 -2
  65. package/examples/extensions/with-deps/package.json +1 -1
  66. package/package.json +4 -4
@@ -177,6 +177,18 @@ export class AgentSession {
177
177
  // Track assistant message for auto-compaction (checked on agent_end)
178
178
  if (event.message.role === "assistant") {
179
179
  this._lastAssistantMessage = event.message;
180
+ // Reset retry counter immediately on successful assistant response
181
+ // This prevents accumulation across multiple LLM calls within a turn
182
+ const assistantMsg = event.message;
183
+ if (assistantMsg.stopReason !== "error" && this._retryAttempt > 0) {
184
+ this._emit({
185
+ type: "auto_retry_end",
186
+ success: true,
187
+ attempt: this._retryAttempt,
188
+ });
189
+ this._retryAttempt = 0;
190
+ this._resolveRetry();
191
+ }
180
192
  }
181
193
  }
182
194
  // Check auto-retry and auto-compaction after agent completes
@@ -189,17 +201,6 @@ export class AgentSession {
189
201
  if (didRetry)
190
202
  return; // Retry was initiated, don't proceed to compaction
191
203
  }
192
- else if (this._retryAttempt > 0) {
193
- // Previous retry succeeded - emit success event and reset counter
194
- this._emit({
195
- type: "auto_retry_end",
196
- success: true,
197
- attempt: this._retryAttempt,
198
- });
199
- this._retryAttempt = 0;
200
- // Resolve the retry promise so waitForRetry() completes
201
- this._resolveRetry();
202
- }
203
204
  await this._checkCompaction(msg);
204
205
  }
205
206
  };
@@ -477,7 +478,7 @@ export class AgentSession {
477
478
  // Validate model
478
479
  if (!this.model) {
479
480
  throw new Error("No model selected.\n\n" +
480
- `Use /login or set an API key environment variable. See ${join(getDocsPath(), "authentication.md")}\n\n` +
481
+ `Use /login or set an API key environment variable. See ${join(getDocsPath(), "providers.md")}\n\n` +
481
482
  "Then use /model to select a model.");
482
483
  }
483
484
  // Validate API key
@@ -490,7 +491,7 @@ export class AgentSession {
490
491
  `Run '/login ${this.model.provider}' to re-authenticate.`);
491
492
  }
492
493
  throw new Error(`No API key found for ${this.model.provider}.\n\n` +
493
- `Use /login or set an API key environment variable. See ${join(getDocsPath(), "authentication.md")}`);
494
+ `Use /login or set an API key environment variable. See ${join(getDocsPath(), "providers.md")}`);
494
495
  }
495
496
  // Check if we need to compact before sending (catches aborted responses)
496
497
  const lastAssistant = this._findLastAssistantMessage();