@vaclav-synacek/pi-coding-agent-termux 0.50.1-0 → 0.50.7-0

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 (96) hide show
  1. package/CHANGELOG.md +108 -1
  2. package/dist/cli/args.d.ts.map +1 -1
  3. package/dist/cli/args.js +1 -0
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/core/agent-session.d.ts +8 -0
  6. package/dist/core/agent-session.d.ts.map +1 -1
  7. package/dist/core/agent-session.js +29 -13
  8. package/dist/core/agent-session.js.map +1 -1
  9. package/dist/core/defaults.d.ts +3 -0
  10. package/dist/core/defaults.d.ts.map +1 -0
  11. package/dist/core/defaults.js +2 -0
  12. package/dist/core/defaults.js.map +1 -0
  13. package/dist/core/extensions/runner.d.ts +5 -0
  14. package/dist/core/extensions/runner.d.ts.map +1 -1
  15. package/dist/core/extensions/runner.js +12 -0
  16. package/dist/core/extensions/runner.js.map +1 -1
  17. package/dist/core/extensions/types.d.ts +3 -0
  18. package/dist/core/extensions/types.d.ts.map +1 -1
  19. package/dist/core/extensions/types.js.map +1 -1
  20. package/dist/core/model-registry.d.ts.map +1 -1
  21. package/dist/core/model-registry.js +6 -0
  22. package/dist/core/model-registry.js.map +1 -1
  23. package/dist/core/model-resolver.d.ts.map +1 -1
  24. package/dist/core/model-resolver.js +9 -6
  25. package/dist/core/model-resolver.js.map +1 -1
  26. package/dist/core/package-manager.d.ts.map +1 -1
  27. package/dist/core/package-manager.js +102 -20
  28. package/dist/core/package-manager.js.map +1 -1
  29. package/dist/core/prompt-templates.d.ts.map +1 -1
  30. package/dist/core/prompt-templates.js.map +1 -1
  31. package/dist/core/sdk.d.ts +1 -1
  32. package/dist/core/sdk.d.ts.map +1 -1
  33. package/dist/core/sdk.js +3 -2
  34. package/dist/core/sdk.js.map +1 -1
  35. package/dist/core/settings-manager.d.ts +11 -3
  36. package/dist/core/settings-manager.d.ts.map +1 -1
  37. package/dist/core/settings-manager.js +96 -16
  38. package/dist/core/settings-manager.js.map +1 -1
  39. package/dist/core/tools/path-utils.d.ts.map +1 -1
  40. package/dist/core/tools/path-utils.js +28 -3
  41. package/dist/core/tools/path-utils.js.map +1 -1
  42. package/dist/main.d.ts.map +1 -1
  43. package/dist/main.js +2 -1
  44. package/dist/main.js.map +1 -1
  45. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  46. package/dist/modes/interactive/components/config-selector.js +12 -1
  47. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  48. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  49. package/dist/modes/interactive/components/custom-editor.js +2 -1
  50. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  51. package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
  52. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
  53. package/dist/modes/interactive/components/daxnuts.js +140 -0
  54. package/dist/modes/interactive/components/daxnuts.js.map +1 -0
  55. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  56. package/dist/modes/interactive/components/footer.js +17 -13
  57. package/dist/modes/interactive/components/footer.js.map +1 -1
  58. package/dist/modes/interactive/components/index.d.ts +1 -0
  59. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  60. package/dist/modes/interactive/components/index.js +1 -0
  61. package/dist/modes/interactive/components/index.js.map +1 -1
  62. package/dist/modes/interactive/components/settings-selector.d.ts +4 -2
  63. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  64. package/dist/modes/interactive/components/settings-selector.js +13 -1
  65. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  66. package/dist/modes/interactive/interactive-mode.d.ts +3 -0
  67. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  68. package/dist/modes/interactive/interactive-mode.js +81 -37
  69. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  70. package/dist/modes/rpc/rpc-client.d.ts +9 -1
  71. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  72. package/dist/modes/rpc/rpc-client.js +13 -0
  73. package/dist/modes/rpc/rpc-client.js.map +1 -1
  74. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  75. package/dist/modes/rpc/rpc-mode.js +45 -0
  76. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  77. package/dist/modes/rpc/rpc-types.d.ts +34 -0
  78. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  79. package/dist/modes/rpc/rpc-types.js.map +1 -1
  80. package/dist/utils/clipboard.d.ts.map +1 -1
  81. package/dist/utils/clipboard.js +4 -0
  82. package/dist/utils/clipboard.js.map +1 -1
  83. package/docs/extensions.md +12 -0
  84. package/docs/keybindings.md +7 -5
  85. package/docs/models.md +32 -0
  86. package/docs/providers.md +4 -1
  87. package/docs/rpc.md +62 -1
  88. package/docs/settings.md +1 -0
  89. package/examples/extensions/antigravity-image-gen.ts +1 -1
  90. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  91. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  92. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  93. package/examples/extensions/system-prompt-header.ts +17 -0
  94. package/examples/extensions/with-deps/package-lock.json +2 -2
  95. package/examples/extensions/with-deps/package.json +1 -1
  96. package/package.json +5 -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
  };
@@ -324,6 +325,10 @@ export class AgentSession {
324
325
  get isStreaming() {
325
326
  return this.agent.state.isStreaming;
326
327
  }
328
+ /** Current effective system prompt (includes any per-turn extension modifications) */
329
+ get systemPrompt() {
330
+ return this.agent.state.systemPrompt;
331
+ }
327
332
  /** Current retry attempt (0 if not retrying) */
328
333
  get retryAttempt() {
329
334
  return this._retryAttempt;
@@ -389,6 +394,10 @@ export class AgentSession {
389
394
  get sessionId() {
390
395
  return this.sessionManager.getSessionId();
391
396
  }
397
+ /** Current session display name, if set */
398
+ get sessionName() {
399
+ return this.sessionManager.getSessionName();
400
+ }
392
401
  /** Scoped models for cycling (from --models flag) */
393
402
  get scopedModels() {
394
403
  return this._scopedModels;
@@ -477,7 +486,7 @@ export class AgentSession {
477
486
  // Validate model
478
487
  if (!this.model) {
479
488
  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` +
489
+ `Use /login or set an API key environment variable. See ${join(getDocsPath(), "providers.md")}\n\n` +
481
490
  "Then use /model to select a model.");
482
491
  }
483
492
  // Validate API key
@@ -490,7 +499,7 @@ export class AgentSession {
490
499
  `Run '/login ${this.model.provider}' to re-authenticate.`);
491
500
  }
492
501
  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")}`);
502
+ `Use /login or set an API key environment variable. See ${join(getDocsPath(), "providers.md")}`);
494
503
  }
495
504
  // Check if we need to compact before sending (catches aborted responses)
496
505
  const lastAssistant = this._findLastAssistantMessage();
@@ -1383,6 +1392,7 @@ export class AgentSession {
1383
1392
  }
1384
1393
  })();
1385
1394
  },
1395
+ getSystemPrompt: () => this.systemPrompt,
1386
1396
  });
1387
1397
  }
1388
1398
  _buildRuntime(options) {
@@ -1740,6 +1750,12 @@ export class AgentSession {
1740
1750
  this._reconnectToAgent();
1741
1751
  return true;
1742
1752
  }
1753
+ /**
1754
+ * Set a display name for the current session.
1755
+ */
1756
+ setSessionName(name) {
1757
+ this.sessionManager.appendSessionInfo(name);
1758
+ }
1743
1759
  /**
1744
1760
  * Create a fork from a specific entry.
1745
1761
  * Emits before_fork/fork session events to extensions.