@leanandmean/coding-agent 0.74.1-scramjet.6 → 0.74.1-scramjet.60

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 (227) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/LICENSE +202 -0
  3. package/README.md +21 -9
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +1 -1
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/initial-message.d.ts +1 -0
  8. package/dist/cli/initial-message.d.ts.map +1 -1
  9. package/dist/cli/initial-message.js +3 -0
  10. package/dist/cli/initial-message.js.map +1 -1
  11. package/dist/cli/list-models.d.ts +2 -0
  12. package/dist/cli/list-models.d.ts.map +1 -1
  13. package/dist/cli/list-models.js +4 -1
  14. package/dist/cli/list-models.js.map +1 -1
  15. package/dist/config.d.ts +9 -2
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +33 -22
  18. package/dist/config.js.map +1 -1
  19. package/dist/core/agent-session-runtime.d.ts +12 -3
  20. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  21. package/dist/core/agent-session-runtime.js +64 -38
  22. package/dist/core/agent-session-runtime.js.map +1 -1
  23. package/dist/core/agent-session-services.d.ts +1 -0
  24. package/dist/core/agent-session-services.d.ts.map +1 -1
  25. package/dist/core/agent-session-services.js +2 -0
  26. package/dist/core/agent-session-services.js.map +1 -1
  27. package/dist/core/agent-session.d.ts +86 -16
  28. package/dist/core/agent-session.d.ts.map +1 -1
  29. package/dist/core/agent-session.js +865 -181
  30. package/dist/core/agent-session.js.map +1 -1
  31. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  32. package/dist/core/compaction/branch-summarization.js +21 -17
  33. package/dist/core/compaction/branch-summarization.js.map +1 -1
  34. package/dist/core/compaction/compaction.d.ts +3 -5
  35. package/dist/core/compaction/compaction.d.ts.map +1 -1
  36. package/dist/core/compaction/compaction.js +43 -10
  37. package/dist/core/compaction/compaction.js.map +1 -1
  38. package/dist/core/exec.d.ts +12 -0
  39. package/dist/core/exec.d.ts.map +1 -1
  40. package/dist/core/exec.js +74 -28
  41. package/dist/core/exec.js.map +1 -1
  42. package/dist/core/export-html/template.js +4 -0
  43. package/dist/core/extensions/index.d.ts +1 -1
  44. package/dist/core/extensions/index.d.ts.map +1 -1
  45. package/dist/core/extensions/index.js.map +1 -1
  46. package/dist/core/extensions/loader.d.ts.map +1 -1
  47. package/dist/core/extensions/loader.js +7 -0
  48. package/dist/core/extensions/loader.js.map +1 -1
  49. package/dist/core/extensions/runner.d.ts +9 -5
  50. package/dist/core/extensions/runner.d.ts.map +1 -1
  51. package/dist/core/extensions/runner.js +162 -3
  52. package/dist/core/extensions/runner.js.map +1 -1
  53. package/dist/core/extensions/types.d.ts +110 -6
  54. package/dist/core/extensions/types.d.ts.map +1 -1
  55. package/dist/core/extensions/types.js.map +1 -1
  56. package/dist/core/keybindings.d.ts +8 -0
  57. package/dist/core/keybindings.d.ts.map +1 -1
  58. package/dist/core/model-registry.d.ts +4 -0
  59. package/dist/core/model-registry.d.ts.map +1 -1
  60. package/dist/core/model-registry.js +179 -28
  61. package/dist/core/model-registry.js.map +1 -1
  62. package/dist/core/model-resolver.d.ts.map +1 -1
  63. package/dist/core/model-resolver.js +24 -6
  64. package/dist/core/model-resolver.js.map +1 -1
  65. package/dist/core/output-throughput-history.d.ts +25 -0
  66. package/dist/core/output-throughput-history.d.ts.map +1 -0
  67. package/dist/core/output-throughput-history.js +240 -0
  68. package/dist/core/output-throughput-history.js.map +1 -0
  69. package/dist/core/output-throughput.d.ts +43 -0
  70. package/dist/core/output-throughput.d.ts.map +1 -0
  71. package/dist/core/output-throughput.js +161 -0
  72. package/dist/core/output-throughput.js.map +1 -0
  73. package/dist/core/resource-loader.d.ts +6 -0
  74. package/dist/core/resource-loader.d.ts.map +1 -1
  75. package/dist/core/resource-loader.js +76 -21
  76. package/dist/core/resource-loader.js.map +1 -1
  77. package/dist/core/scramjet-command-parser.d.ts +4 -0
  78. package/dist/core/scramjet-command-parser.d.ts.map +1 -1
  79. package/dist/core/scramjet-command-parser.js +72 -1
  80. package/dist/core/scramjet-command-parser.js.map +1 -1
  81. package/dist/core/sdk.d.ts +2 -0
  82. package/dist/core/sdk.d.ts.map +1 -1
  83. package/dist/core/sdk.js +61 -10
  84. package/dist/core/sdk.js.map +1 -1
  85. package/dist/core/session-manager.d.ts +11 -3
  86. package/dist/core/session-manager.d.ts.map +1 -1
  87. package/dist/core/session-manager.js +46 -11
  88. package/dist/core/session-manager.js.map +1 -1
  89. package/dist/core/settings-manager.d.ts +18 -6
  90. package/dist/core/settings-manager.d.ts.map +1 -1
  91. package/dist/core/settings-manager.js +84 -16
  92. package/dist/core/settings-manager.js.map +1 -1
  93. package/dist/core/skills.d.ts.map +1 -1
  94. package/dist/core/skills.js +6 -2
  95. package/dist/core/skills.js.map +1 -1
  96. package/dist/core/system-prompt.d.ts +2 -0
  97. package/dist/core/system-prompt.d.ts.map +1 -1
  98. package/dist/core/system-prompt.js +5 -2
  99. package/dist/core/system-prompt.js.map +1 -1
  100. package/dist/core/tools/bash.d.ts.map +1 -1
  101. package/dist/core/tools/bash.js +4 -3
  102. package/dist/core/tools/bash.js.map +1 -1
  103. package/dist/index.d.ts +4 -3
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +3 -2
  106. package/dist/index.js.map +1 -1
  107. package/dist/main.d.ts +16 -0
  108. package/dist/main.d.ts.map +1 -1
  109. package/dist/main.js +38 -10
  110. package/dist/main.js.map +1 -1
  111. package/dist/modes/interactive/components/armin.d.ts +4 -2
  112. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  113. package/dist/modes/interactive/components/armin.js +14 -8
  114. package/dist/modes/interactive/components/armin.js.map +1 -1
  115. package/dist/modes/interactive/components/assistant-message.d.ts +3 -1
  116. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  117. package/dist/modes/interactive/components/assistant-message.js +19 -8
  118. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  119. package/dist/modes/interactive/components/daxnuts.d.ts +4 -1
  120. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  121. package/dist/modes/interactive/components/daxnuts.js +14 -6
  122. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  123. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  124. package/dist/modes/interactive/components/extension-editor.js +5 -3
  125. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  126. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  127. package/dist/modes/interactive/components/extension-selector.js +4 -3
  128. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  129. package/dist/modes/interactive/components/footer.d.ts +4 -0
  130. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  131. package/dist/modes/interactive/components/footer.js +22 -18
  132. package/dist/modes/interactive/components/footer.js.map +1 -1
  133. package/dist/modes/interactive/components/model-selector.d.ts +3 -1
  134. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  135. package/dist/modes/interactive/components/model-selector.js +9 -3
  136. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  137. package/dist/modes/interactive/components/scoped-models-selector.d.ts +3 -1
  138. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  139. package/dist/modes/interactive/components/scoped-models-selector.js +8 -2
  140. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  141. package/dist/modes/interactive/components/settings-selector.d.ts +17 -3
  142. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  143. package/dist/modes/interactive/components/settings-selector.js +87 -16
  144. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  145. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  146. package/dist/modes/interactive/components/thinking-selector.js +2 -1
  147. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  148. package/dist/modes/interactive/components/tool-execution.d.ts +19 -1
  149. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  150. package/dist/modes/interactive/components/tool-execution.js +129 -36
  151. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  152. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  153. package/dist/modes/interactive/components/user-message.js +3 -2
  154. package/dist/modes/interactive/components/user-message.js.map +1 -1
  155. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  156. package/dist/modes/interactive/components/visual-truncate.js +2 -2
  157. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  158. package/dist/modes/interactive/interactive-mode.d.ts +37 -1
  159. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  160. package/dist/modes/interactive/interactive-mode.js +876 -175
  161. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  162. package/dist/modes/interactive/spellcheck.d.ts +26 -0
  163. package/dist/modes/interactive/spellcheck.d.ts.map +1 -0
  164. package/dist/modes/interactive/spellcheck.js +144 -0
  165. package/dist/modes/interactive/spellcheck.js.map +1 -0
  166. package/dist/modes/interactive/theme/{dark.json → pi-dark.json} +3 -2
  167. package/dist/modes/interactive/theme/{light.json → pi-light.json} +27 -26
  168. package/dist/modes/interactive/theme/theme-schema.json +6 -1
  169. package/dist/modes/interactive/theme/theme.d.ts +24 -4
  170. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  171. package/dist/modes/interactive/theme/theme.js +123 -22
  172. package/dist/modes/interactive/theme/theme.js.map +1 -1
  173. package/dist/modes/print-mode.d.ts.map +1 -1
  174. package/dist/modes/print-mode.js +5 -0
  175. package/dist/modes/print-mode.js.map +1 -1
  176. package/dist/modes/rpc/rpc-client.d.ts +3 -1
  177. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  178. package/dist/modes/rpc/rpc-client.js.map +1 -1
  179. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  180. package/dist/modes/rpc/rpc-mode.js +6 -1
  181. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  182. package/dist/package-manager-cli.d.ts.map +1 -1
  183. package/dist/package-manager-cli.js +33 -14
  184. package/dist/package-manager-cli.js.map +1 -1
  185. package/dist/utils/clipboard-native.d.ts +1 -0
  186. package/dist/utils/clipboard-native.d.ts.map +1 -1
  187. package/dist/utils/clipboard-native.js.map +1 -1
  188. package/dist/utils/clipboard.d.ts +6 -0
  189. package/dist/utils/clipboard.d.ts.map +1 -1
  190. package/dist/utils/clipboard.js +278 -10
  191. package/dist/utils/clipboard.js.map +1 -1
  192. package/dist/utils/tools-manager.d.ts +1 -1
  193. package/dist/utils/tools-manager.d.ts.map +1 -1
  194. package/dist/utils/tools-manager.js +7 -6
  195. package/dist/utils/tools-manager.js.map +1 -1
  196. package/dist/utils/version-check.d.ts +17 -5
  197. package/dist/utils/version-check.d.ts.map +1 -1
  198. package/dist/utils/version-check.js +88 -21
  199. package/dist/utils/version-check.js.map +1 -1
  200. package/docs/compaction.md +9 -3
  201. package/docs/custom-provider.md +13 -4
  202. package/docs/extensions.md +139 -21
  203. package/docs/keybindings.md +25 -1
  204. package/docs/models.md +34 -2
  205. package/docs/packages.md +2 -0
  206. package/docs/prompt-templates.md +2 -0
  207. package/docs/quickstart.md +1 -4
  208. package/docs/rpc.md +8 -6
  209. package/docs/sdk.md +22 -3
  210. package/docs/session-format.md +2 -1
  211. package/docs/settings.md +13 -3
  212. package/docs/skills.md +7 -5
  213. package/docs/terminal-setup.md +79 -2
  214. package/docs/terminal-verification.md +71 -0
  215. package/docs/themes.md +63 -10
  216. package/docs/tui.md +120 -25
  217. package/docs/usage.md +6 -4
  218. package/examples/extensions/border-status-editor.ts +2 -3
  219. package/examples/extensions/doom-overlay/doom-component.ts +3 -3
  220. package/examples/extensions/mac-system-theme.ts +3 -2
  221. package/examples/extensions/modal-editor.ts +13 -8
  222. package/examples/extensions/overlay-qa-tests.ts +22 -9
  223. package/examples/extensions/overlay-test.ts +5 -3
  224. package/examples/extensions/snake.ts +3 -1
  225. package/examples/extensions/space-invaders.ts +6 -3
  226. package/examples/extensions/subagent/index.ts +20 -17
  227. package/package.json +69 -58
@@ -16,7 +16,7 @@ import type { Agent, AgentEvent, AgentMessage, AgentState, AgentTool, ThinkingLe
16
16
  import type { ImageContent, Model, TextContent } from "@leanandmean/ai";
17
17
  import { type BashResult } from "./bash-executor.js";
18
18
  import { type CompactionResult } from "./compaction/index.js";
19
- import { type ContextUsage, type DeliverAs, type DispatchUserInputOptions, type ExtensionCommandContextActions, type ExtensionErrorListener, ExtensionRunner, type ExtensionUIContext, type InputSource, type ReplacedSessionContext, type SendMessageDeliverAs, type SessionStartEvent, type ShutdownHandler, type ToolDefinition, type ToolInfo } from "./extensions/index.js";
19
+ import { type ContextUsage, type DeliverAs, type DispatchUserInputOptions, type ExtensionCommandContextActions, type ExtensionErrorListener, ExtensionRunner, type ExtensionUIContext, type InputSource, type InvokeHarnessToolOptions, type ReplacedSessionContext, type SendMessageDeliverAs, type SessionStartEvent, type ShutdownHandler, type ToolDefinition, type ToolInfo } from "./extensions/index.js";
20
20
  import type { CustomMessage } from "./messages.js";
21
21
  import type { ModelRegistry } from "./model-registry.js";
22
22
  import { type PromptTemplate } from "./prompt-templates.js";
@@ -63,6 +63,7 @@ export type AgentSessionEvent = AgentEvent | {
63
63
  maxAttempts: number;
64
64
  delayMs: number;
65
65
  errorMessage: string;
66
+ cumulativeErrors?: number;
66
67
  } | {
67
68
  type: "auto_retry_end";
68
69
  success: boolean;
@@ -76,6 +77,7 @@ export interface AgentSessionConfig {
76
77
  sessionManager: SessionManager;
77
78
  settingsManager: SettingsManager;
78
79
  cwd: string;
80
+ outputThroughputHistoryPath: string;
79
81
  /** Models to cycle through with Ctrl+P (from --models flag) */
80
82
  scopedModels?: Array<{
81
83
  model: Model<any>;
@@ -160,24 +162,34 @@ export declare class AgentSession {
160
162
  readonly agent: Agent;
161
163
  readonly sessionManager: SessionManager;
162
164
  readonly settingsManager: SettingsManager;
165
+ readonly outputThroughputHistoryPath: string;
163
166
  private _scopedModels;
164
167
  private _unsubscribeAgent?;
165
168
  private _eventListeners;
166
169
  private _agentEventQueue;
170
+ private readonly _outputThroughputTracker;
171
+ private readonly _outputThroughputHistory;
172
+ private _outputThroughputGeneration;
173
+ private _latestOutputThroughputSample;
174
+ private _disposed;
175
+ private readonly _harnessPersistenceAcks;
167
176
  /** Tracks pending steering messages for UI display. Removed when delivered. */
168
177
  private _steeringMessages;
169
178
  /** Tracks pending follow-up messages for UI display. Removed when delivered. */
170
179
  private _followUpMessages;
171
180
  /** Messages queued to be included with the next user prompt as context ("asides"). */
172
181
  private _pendingNextTurnMessages;
182
+ private readonly _inputSessionEntries;
173
183
  private _compactionAbortController;
174
184
  private _autoCompactionAbortController;
175
185
  private _overflowRecoveryAttempted;
176
186
  private _branchSummaryAbortController;
177
- private _retryAbortController;
178
- private _retryAttempt;
179
- private _retryPromise;
180
- private _retryResolve;
187
+ private _retry;
188
+ private _runRetryCount;
189
+ private _activeAgentRunSettlement;
190
+ private _pendingAgentRunStart;
191
+ private readonly _unsettledAgentRuns;
192
+ private readonly _unsettledRetryChains;
181
193
  private _bashAbortController;
182
194
  private _pendingBashMessages;
183
195
  private _extensionRunner;
@@ -203,6 +215,7 @@ export declare class AgentSession {
203
215
  private _toolPromptGuidelines;
204
216
  private _baseSystemPromptSections;
205
217
  private _baseSystemPromptOptions;
218
+ private _runPromptComposition;
206
219
  constructor(config: AgentSessionConfig);
207
220
  /** Model registry for API key resolution and model discovery */
208
221
  get modelRegistry(): ModelRegistry;
@@ -220,14 +233,19 @@ export declare class AgentSession {
220
233
  /** Emit an event to all listeners */
221
234
  private _emit;
222
235
  private _emitQueueUpdate;
223
- private _lastAssistantMessage;
224
236
  /** Internal handler for agent events - shared by subscribe and reconnect */
225
237
  private _handleAgentEvent;
226
- private _createRetryPromiseForAgentEnd;
227
- private _findLastAssistantInMessages;
238
+ private _captureOutputThroughput;
239
+ private _resetOutputThroughput;
240
+ private _captureAgentRunSettlement;
241
+ private _settleAgentRun;
242
+ private _settleRetryChain;
243
+ private _completeAgentRun;
244
+ private _reserveAgentRunStart;
245
+ private _rejectAgentRunStart;
246
+ private _processAgentEventTracked;
247
+ private _harnessPersistenceAckForEvent;
228
248
  private _processAgentEvent;
229
- /** Resolve the pending retry promise */
230
- private _resolveRetry;
231
249
  /** Extract text content from a message */
232
250
  private _getUserMessageText;
233
251
  /** Find the last assistant message in agent state (including aborted ones) */
@@ -266,6 +284,13 @@ export declare class AgentSession {
266
284
  get isStreaming(): boolean;
267
285
  /** Current effective system prompt (includes any per-turn extension modifications), flattened to a string */
268
286
  get systemPrompt(): string;
287
+ get liveOutputRate(): number | undefined;
288
+ get outputThroughputActive(): boolean;
289
+ get outputThroughputGeneration(): number;
290
+ get medianOutputRate(): number | undefined;
291
+ get outputThroughputHistory(): import("./output-throughput.js").OutputThroughputHistory;
292
+ refreshOutputThroughputHistory(): Promise<import("./output-throughput.js").OutputThroughputHistory>;
293
+ flushOutputThroughputHistory(): Promise<void>;
269
294
  /** Current retry attempt (0 if not retrying) */
270
295
  get retryAttempt(): number;
271
296
  /**
@@ -285,6 +310,39 @@ export declare class AgentSession {
285
310
  * Changes take effect on the next agent turn.
286
311
  */
287
312
  setActiveToolsByName(toolNames: string[]): void;
313
+ /**
314
+ * Execute a registered tool as a harness-originated call (not requested by the model).
315
+ *
316
+ * Resolves the wrapped tool from the full registry — including `"harness-only"` tools that are
317
+ * never provider-visible — so its `execute` still receives the extension context and its
318
+ * `tool_call`/`tool_result` hooks still fire. Delegates to {@link Agent.runHarnessTool}, which
319
+ * runs the call through the real prepare/execute/finalize pipeline: identical live
320
+ * `tool_execution_*`/message events, persisted session entries, and extension hooks, but no
321
+ * run/turn framing. The idle-vs-mid-run branch lives in `runHarnessTool` (keyed on the agent's
322
+ * active run, which tracks `isStreaming`): idle calls execute immediately, mid-run calls queue
323
+ * and drain before the next intra-run LLM call.
324
+ *
325
+ * **Persisted settlement (#341).** This is a strictly stronger boundary than
326
+ * {@link Agent.runHarnessTool}: the returned promise resolves only after (1) the Agent-core
327
+ * pipeline fulfills *and* (2) `_processAgentEvent` has persisted the matching tool-result
328
+ * `message_end` via `SessionManager.appendMessage`. Because the event queue preserves order,
329
+ * that also proves the preceding synthetic assistant tool-call message was persisted first. It
330
+ * rejects on Agent-core failure, on failure to process/persist a matching event, on disposal
331
+ * before settlement, on a post-disposal call, on an unknown tool, or on a duplicate explicit
332
+ * tool-call id that is already pending. **Rejection means the promised pipeline did not complete —
333
+ * it does not prove artifact absence** (Agent state and persistence may have partially or fully
334
+ * completed before a late failure), so callers must not blindly retry. A tool's own `execute()`
335
+ * error is *not* a rejection: it becomes a normal `isError: true` result and the promise resolves
336
+ * after that error-result pipeline is persisted.
337
+ *
338
+ * **Reentrancy.** As with `runHarnessTool`, do not `await` this from work whose return is required
339
+ * for the Agent to reach the drain point or for the event queue to persist the matching result.
340
+ */
341
+ invokeHarnessTool(name: string, args: unknown, options?: InvokeHarnessToolOptions): Promise<void>;
342
+ private _allocateHarnessToolCallId;
343
+ private _completeHarnessToolInvocation;
344
+ private _settleHarnessPersistenceAck;
345
+ private _registerHarnessPersistenceAck;
288
346
  /** Whether compaction or branch summarization is currently running */
289
347
  get isCompacting(): boolean;
290
348
  /** All messages including custom types like BashExecutionMessage */
@@ -313,6 +371,7 @@ export declare class AgentSession {
313
371
  get promptTemplates(): ReadonlyArray<PromptTemplate>;
314
372
  private _normalizePromptSnippet;
315
373
  private _normalizePromptGuidelines;
374
+ private _applyRunPromptComposition;
316
375
  /** Rebuild `_baseSystemPromptSections` from the current resources and tool set and apply it to agent state. */
317
376
  private _rebuildSystemPrompt;
318
377
  /**
@@ -492,16 +551,28 @@ export declare class AgentSession {
492
551
  private _refreshToolRegistry;
493
552
  private _buildRuntime;
494
553
  reload(): Promise<void>;
495
- /**
496
- * Check if an error is retryable (overloaded, rate limit, server errors).
497
- * Context overflow errors are NOT retryable (handled by compaction instead).
498
- */
499
- private _isRetryableError;
554
+ private _classifyRetry;
555
+ private _isLegacyRetryableError;
556
+ private _bounded;
557
+ private _appendAutoRetryRecord;
558
+ /**
559
+ * Persist a terminal record, emit `auto_retry_end` when a retry phase was active, and clear the phase.
560
+ * The phase is released before persistence is attempted so a persistence failure can never strand it.
561
+ */
562
+ private _finishRetry;
563
+ private _finishRetryWithoutSuccess;
564
+ /** A run that ends without a classifiable snapshot cannot continue the retry; close it so nothing stays wedged. */
565
+ private _releaseRetryForFailedRun;
566
+ private _reportRetryFailure;
500
567
  private _handleRetryableError;
568
+ private _finishCancelledRetry;
501
569
  /**
502
570
  * Cancel in-progress retry.
503
571
  */
504
572
  abortRetry(): void;
573
+ /** Agent's own `activeRun` guard is false during backoff; the retry phase owns the idle Agent then. */
574
+ private _assertRetryNotOwningIdleAgent;
575
+ private _runAgentPrompt;
505
576
  private waitForRetry;
506
577
  /** Whether auto-retry is currently in progress */
507
578
  get isRetrying(): boolean;
@@ -576,7 +647,6 @@ export declare class AgentSession {
576
647
  entryId: string;
577
648
  text: string;
578
649
  }>;
579
- private _extractUserMessageText;
580
650
  /**
581
651
  * Get session statistics.
582
652
  */