@caupulican/pi-adaptative 0.75.6 → 0.76.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.
Files changed (58) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +2 -2
  3. package/dist/cli/args.d.ts +1 -0
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +4 -0
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +17 -3
  9. package/dist/config.js.map +1 -1
  10. package/dist/core/agent-session.d.ts +3 -0
  11. package/dist/core/agent-session.d.ts.map +1 -1
  12. package/dist/core/agent-session.js +32 -5
  13. package/dist/core/agent-session.js.map +1 -1
  14. package/dist/core/compaction/compaction.d.ts.map +1 -1
  15. package/dist/core/compaction/compaction.js +18 -24
  16. package/dist/core/compaction/compaction.js.map +1 -1
  17. package/dist/core/extensions/runner.d.ts.map +1 -1
  18. package/dist/core/extensions/runner.js +1 -2
  19. package/dist/core/extensions/runner.js.map +1 -1
  20. package/dist/core/sdk.d.ts.map +1 -1
  21. package/dist/core/sdk.js +6 -1
  22. package/dist/core/sdk.js.map +1 -1
  23. package/dist/core/session-manager.d.ts +3 -2
  24. package/dist/core/session-manager.d.ts.map +1 -1
  25. package/dist/core/session-manager.js +33 -11
  26. package/dist/core/session-manager.js.map +1 -1
  27. package/dist/core/settings-manager.d.ts +2 -0
  28. package/dist/core/settings-manager.d.ts.map +1 -1
  29. package/dist/core/settings-manager.js +14 -9
  30. package/dist/core/settings-manager.js.map +1 -1
  31. package/dist/main.d.ts.map +1 -1
  32. package/dist/main.js +54 -14
  33. package/dist/main.js.map +1 -1
  34. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  35. package/dist/modes/interactive/components/user-message.js +1 -1
  36. package/dist/modes/interactive/components/user-message.js.map +1 -1
  37. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  38. package/dist/modes/rpc/rpc-mode.js +3 -1
  39. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  40. package/dist/modes/rpc/rpc-types.d.ts +1 -0
  41. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  42. package/dist/modes/rpc/rpc-types.js.map +1 -1
  43. package/dist/utils/version-check.d.ts.map +1 -1
  44. package/dist/utils/version-check.js +6 -2
  45. package/dist/utils/version-check.js.map +1 -1
  46. package/docs/development.md +1 -1
  47. package/docs/extensions.md +7 -5
  48. package/docs/settings.md +7 -3
  49. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  50. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  51. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  52. package/examples/extensions/reload-runtime.ts +9 -7
  53. package/examples/extensions/sandbox/package-lock.json +2 -2
  54. package/examples/extensions/sandbox/package.json +1 -1
  55. package/examples/extensions/with-deps/package-lock.json +2 -2
  56. package/examples/extensions/with-deps/package.json +1 -1
  57. package/npm-shrinkwrap.json +34 -36
  58. package/package.json +4 -4
@@ -132,6 +132,7 @@ export class AgentSession {
132
132
  this._unsubscribeAgent = this.agent.subscribe(this._handleAgentEvent);
133
133
  this._installAgentToolHooks();
134
134
  this._installAgentContextTransform();
135
+ this._installAgentTurnRefresh();
135
136
  this._buildRuntime({
136
137
  activeToolNames: this._initialActiveToolNames,
137
138
  includeAllExtensionTools: true,
@@ -202,6 +203,30 @@ export class AgentSession {
202
203
  }
203
204
  };
204
205
  }
206
+ _installAgentTurnRefresh() {
207
+ const previousPrepareNextTurn = this.agent.prepareNextTurn?.bind(this.agent);
208
+ this.agent.prepareNextTurn = async (signal) => {
209
+ const previous = previousPrepareNextTurn ? await previousPrepareNextTurn(signal) : undefined;
210
+ const snapshot = this._createAgentContextSnapshot();
211
+ return {
212
+ ...previous,
213
+ context: {
214
+ ...(previous?.context ?? snapshot),
215
+ systemPrompt: snapshot.systemPrompt,
216
+ tools: snapshot.tools,
217
+ },
218
+ model: previous?.model ?? this.agent.state.model,
219
+ thinkingLevel: previous?.thinkingLevel ?? this.agent.state.thinkingLevel,
220
+ };
221
+ };
222
+ }
223
+ _createAgentContextSnapshot() {
224
+ return {
225
+ systemPrompt: this.agent.state.systemPrompt,
226
+ messages: this.agent.state.messages.slice(),
227
+ tools: this.agent.state.tools.slice(),
228
+ };
229
+ }
205
230
  _estimateCurrentContextTokens(messages) {
206
231
  const estimate = estimateContextTokens(messages);
207
232
  const compactionEntry = getLatestCompactionEntry(this.sessionManager.getBranch());
@@ -1877,12 +1902,9 @@ export class AgentSession {
1877
1902
  })();
1878
1903
  },
1879
1904
  reload: () => {
1880
- if (this.isStreaming) {
1881
- throw new Error("Cannot reload while the agent is streaming.");
1882
- }
1883
1905
  const actions = this._extensionCommandContextActions;
1884
- if (!actions) {
1885
- throw new Error("Reload is unavailable before extension command context is bound.");
1906
+ if (this.isStreaming || !actions) {
1907
+ return this.reload();
1886
1908
  }
1887
1909
  return actions.reload();
1888
1910
  },
@@ -2032,6 +2054,9 @@ export class AgentSession {
2032
2054
  // =========================================================================
2033
2055
  // Auto-Retry
2034
2056
  // =========================================================================
2057
+ _isNonRetryableProviderLimitError(errorMessage) {
2058
+ return /GoUsageLimitError|FreeUsageLimitError|Monthly usage limit reached|available balance|insufficient_quota|out of budget|quota exceeded|billing/i.test(errorMessage);
2059
+ }
2035
2060
  /**
2036
2061
  * Check if an error is retryable (overloaded, rate limit, server errors).
2037
2062
  * Context overflow errors are NOT retryable (handled by compaction instead).
@@ -2044,6 +2069,8 @@ export class AgentSession {
2044
2069
  if (isContextOverflow(message, contextWindow))
2045
2070
  return false;
2046
2071
  const err = message.errorMessage;
2072
+ if (this._isNonRetryableProviderLimitError(err))
2073
+ return false;
2047
2074
  // 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
2048
2075
  return /overloaded|provider.?returned.?error|rate.?limit|too many requests|429|500|502|503|504|service.?unavailable|server.?error|internal.?error|network.?error|connection.?error|connection.?refused|connection.?lost|websocket.?closed|websocket.?error|other side closed|fetch failed|upstream.?connect|reset before headers|socket hang up|ended without|stream ended before message_stop|http2 request did not get a response|timed? out|timeout|terminated|retry delay/i.test(err);
2049
2076
  }