@qduc/term2 0.18.0 → 0.19.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 (259) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +3 -2
  3. package/dist/app.js.map +1 -1
  4. package/dist/commands/retry-failed-turn-command.d.ts +6 -0
  5. package/dist/commands/retry-failed-turn-command.d.ts.map +1 -0
  6. package/dist/commands/retry-failed-turn-command.js +12 -0
  7. package/dist/commands/retry-failed-turn-command.js.map +1 -0
  8. package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
  9. package/dist/components/layout/BackgroundTaskManager.js +4 -0
  10. package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
  11. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  12. package/dist/components/layout/BackgroundTasksPanel.js +11 -1
  13. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  14. package/dist/components/layout/BottomArea.d.ts +6 -0
  15. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  16. package/dist/components/layout/BottomArea.js +14 -5
  17. package/dist/components/layout/BottomArea.js.map +1 -1
  18. package/dist/components/layout/StatusBar.d.ts +6 -0
  19. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  20. package/dist/components/layout/StatusBar.js +15 -4
  21. package/dist/components/layout/StatusBar.js.map +1 -1
  22. package/dist/components/message/CommandGroupSummary.js +4 -5
  23. package/dist/components/message/CommandGroupSummary.js.map +1 -1
  24. package/dist/components/message/MessageList.d.ts.map +1 -1
  25. package/dist/components/message/MessageList.js +15 -2
  26. package/dist/components/message/MessageList.js.map +1 -1
  27. package/dist/components/message/command-grouping.d.ts +1 -0
  28. package/dist/components/message/command-grouping.d.ts.map +1 -1
  29. package/dist/components/message/command-grouping.js +14 -7
  30. package/dist/components/message/command-grouping.js.map +1 -1
  31. package/dist/contracts/conversation.d.ts +2 -0
  32. package/dist/contracts/conversation.d.ts.map +1 -1
  33. package/dist/contracts/conversation.js.map +1 -1
  34. package/dist/contracts/run-termination.d.ts +7 -0
  35. package/dist/contracts/run-termination.d.ts.map +1 -0
  36. package/dist/contracts/run-termination.js +2 -0
  37. package/dist/contracts/run-termination.js.map +1 -0
  38. package/dist/contracts/streamed-model-turn.d.ts +4 -0
  39. package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
  40. package/dist/hooks/conversation-ui-reducer.d.ts +7 -0
  41. package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
  42. package/dist/hooks/conversation-ui-reducer.js +6 -0
  43. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  44. package/dist/hooks/use-app-commands.d.ts +2 -1
  45. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  46. package/dist/hooks/use-app-commands.js +4 -1
  47. package/dist/hooks/use-app-commands.js.map +1 -1
  48. package/dist/hooks/use-conversation.d.ts +5 -0
  49. package/dist/hooks/use-conversation.d.ts.map +1 -1
  50. package/dist/hooks/use-conversation.js +29 -4
  51. package/dist/hooks/use-conversation.js.map +1 -1
  52. package/dist/hooks/use-model-selection.d.ts +2 -0
  53. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  54. package/dist/hooks/use-model-selection.js +3 -3
  55. package/dist/hooks/use-model-selection.js.map +1 -1
  56. package/dist/lib/agent-client.d.ts.map +1 -1
  57. package/dist/lib/agent-client.js +49 -23
  58. package/dist/lib/agent-client.js.map +1 -1
  59. package/dist/providers/aborted-stream-recorder.d.ts +26 -1
  60. package/dist/providers/aborted-stream-recorder.d.ts.map +1 -1
  61. package/dist/providers/aborted-stream-recorder.js +133 -0
  62. package/dist/providers/aborted-stream-recorder.js.map +1 -1
  63. package/dist/providers/ai-sdk-streamed-model.d.ts +5 -0
  64. package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
  65. package/dist/providers/ai-sdk-streamed-model.js +90 -1
  66. package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
  67. package/dist/providers/codex-compact.d.ts +5 -4
  68. package/dist/providers/codex-compact.d.ts.map +1 -1
  69. package/dist/providers/codex-compact.js +5 -4
  70. package/dist/providers/codex-compact.js.map +1 -1
  71. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  72. package/dist/providers/codex-responses-model.js +103 -20
  73. package/dist/providers/codex-responses-model.js.map +1 -1
  74. package/dist/providers/codex.provider.d.ts +1 -0
  75. package/dist/providers/codex.provider.d.ts.map +1 -1
  76. package/dist/providers/codex.provider.js +59 -3
  77. package/dist/providers/codex.provider.js.map +1 -1
  78. package/dist/providers/fetch/logging-middleware.d.ts +1 -0
  79. package/dist/providers/fetch/logging-middleware.d.ts.map +1 -1
  80. package/dist/providers/fetch/logging-middleware.js +24 -1
  81. package/dist/providers/fetch/logging-middleware.js.map +1 -1
  82. package/dist/providers/openai-chat-completions-model.d.ts.map +1 -1
  83. package/dist/providers/openai-chat-completions-model.js +99 -2
  84. package/dist/providers/openai-chat-completions-model.js.map +1 -1
  85. package/dist/providers/openai-responses-model.d.ts.map +1 -1
  86. package/dist/providers/openai-responses-model.js +21 -13
  87. package/dist/providers/openai-responses-model.js.map +1 -1
  88. package/dist/providers/retrying-model.d.ts +5 -1
  89. package/dist/providers/retrying-model.d.ts.map +1 -1
  90. package/dist/providers/retrying-model.js +29 -6
  91. package/dist/providers/retrying-model.js.map +1 -1
  92. package/dist/providers/websocket-abort-race.d.ts +13 -0
  93. package/dist/providers/websocket-abort-race.d.ts.map +1 -0
  94. package/dist/providers/websocket-abort-race.js +34 -0
  95. package/dist/providers/websocket-abort-race.js.map +1 -0
  96. package/dist/services/agent-runtime/application-run-loop.d.ts +7 -2
  97. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  98. package/dist/services/agent-runtime/application-run-loop.js +48 -8
  99. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  100. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js +3 -3
  101. package/dist/services/agent-runtime/context-compaction/context-milestone-reminder.js.map +1 -1
  102. package/dist/services/agent-runtime/executor.d.ts.map +1 -1
  103. package/dist/services/agent-runtime/executor.js +2 -0
  104. package/dist/services/agent-runtime/executor.js.map +1 -1
  105. package/dist/services/agent-runtime/types.d.ts +2 -2
  106. package/dist/services/agent-runtime/types.d.ts.map +1 -1
  107. package/dist/services/agent-stream.d.ts +13 -0
  108. package/dist/services/agent-stream.d.ts.map +1 -1
  109. package/dist/services/agent-stream.js +56 -0
  110. package/dist/services/agent-stream.js.map +1 -1
  111. package/dist/services/background-task-activity.d.ts +7 -0
  112. package/dist/services/background-task-activity.d.ts.map +1 -1
  113. package/dist/services/background-task-activity.js +17 -0
  114. package/dist/services/background-task-activity.js.map +1 -1
  115. package/dist/services/conversation/conversation-events.d.ts +36 -3
  116. package/dist/services/conversation/conversation-events.d.ts.map +1 -1
  117. package/dist/services/conversation/conversation-events.js +30 -1
  118. package/dist/services/conversation/conversation-events.js.map +1 -1
  119. package/dist/services/conversation/conversation-orchestrator.d.ts +2 -0
  120. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  121. package/dist/services/conversation/conversation-orchestrator.js +31 -0
  122. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  123. package/dist/services/conversation/conversation-orchestrator.types.d.ts +4 -0
  124. package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
  125. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  126. package/dist/services/conversation/conversation-result-builder.js +9 -5
  127. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  128. package/dist/services/conversation/conversation-service.d.ts +2 -0
  129. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  130. package/dist/services/conversation/conversation-service.js +14 -2
  131. package/dist/services/conversation/conversation-service.js.map +1 -1
  132. package/dist/services/conversation/session-browser.d.ts +1 -0
  133. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  134. package/dist/services/conversation/session-browser.js +32 -38
  135. package/dist/services/conversation/session-browser.js.map +1 -1
  136. package/dist/services/conversation-agent-client.d.ts +3 -0
  137. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  138. package/dist/services/logging/provider-traffic.d.ts +6 -1
  139. package/dist/services/logging/provider-traffic.d.ts.map +1 -1
  140. package/dist/services/logging/provider-traffic.js +29 -4
  141. package/dist/services/logging/provider-traffic.js.map +1 -1
  142. package/dist/services/models/model-catalog-session.d.ts +1 -2
  143. package/dist/services/models/model-catalog-session.d.ts.map +1 -1
  144. package/dist/services/retry/committed-tool-continuation.d.ts +4 -0
  145. package/dist/services/retry/committed-tool-continuation.d.ts.map +1 -0
  146. package/dist/services/retry/committed-tool-continuation.js +12 -0
  147. package/dist/services/retry/committed-tool-continuation.js.map +1 -0
  148. package/dist/services/retry/in-loop-model-retry.d.ts.map +1 -1
  149. package/dist/services/retry/in-loop-model-retry.js +9 -0
  150. package/dist/services/retry/in-loop-model-retry.js.map +1 -1
  151. package/dist/services/retry/provider-failure-classification.d.ts +12 -0
  152. package/dist/services/retry/provider-failure-classification.d.ts.map +1 -0
  153. package/dist/services/retry/provider-failure-classification.js +55 -0
  154. package/dist/services/retry/provider-failure-classification.js.map +1 -0
  155. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  156. package/dist/services/retry/retry-classifier.js +68 -0
  157. package/dist/services/retry/retry-classifier.js.map +1 -1
  158. package/dist/services/retry/retry-contracts.d.ts +24 -3
  159. package/dist/services/retry/retry-contracts.d.ts.map +1 -1
  160. package/dist/services/retry/retry-event-presenter.d.ts.map +1 -1
  161. package/dist/services/retry/retry-event-presenter.js +14 -4
  162. package/dist/services/retry/retry-event-presenter.js.map +1 -1
  163. package/dist/services/retry/retry-recovery-budget.d.ts +51 -0
  164. package/dist/services/retry/retry-recovery-budget.d.ts.map +1 -0
  165. package/dist/services/retry/retry-recovery-budget.js +84 -0
  166. package/dist/services/retry/retry-recovery-budget.js.map +1 -0
  167. package/dist/services/service-interfaces.d.ts +67 -3
  168. package/dist/services/service-interfaces.d.ts.map +1 -1
  169. package/dist/services/session/background-check-in-scheduler.d.ts.map +1 -1
  170. package/dist/services/session/background-check-in-scheduler.js +35 -2
  171. package/dist/services/session/background-check-in-scheduler.js.map +1 -1
  172. package/dist/services/session/continuation-recovery-handler.d.ts +1 -0
  173. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  174. package/dist/services/session/continuation-recovery-handler.js +42 -0
  175. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  176. package/dist/services/session/continuation-state.d.ts +4 -1
  177. package/dist/services/session/continuation-state.d.ts.map +1 -1
  178. package/dist/services/session/continuation-state.js +5 -1
  179. package/dist/services/session/continuation-state.js.map +1 -1
  180. package/dist/services/session/initial-turn-recovery-handler.d.ts +3 -0
  181. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  182. package/dist/services/session/initial-turn-recovery-handler.js +70 -0
  183. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  184. package/dist/services/session/session-composition.d.ts.map +1 -1
  185. package/dist/services/session/session-composition.js +3 -0
  186. package/dist/services/session/session-composition.js.map +1 -1
  187. package/dist/services/session/session-tool-tracker.d.ts +6 -0
  188. package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
  189. package/dist/services/session/session-tool-tracker.js +17 -0
  190. package/dist/services/session/session-tool-tracker.js.map +1 -1
  191. package/dist/services/session/terminal-result-collector.d.ts.map +1 -1
  192. package/dist/services/session/terminal-result-collector.js +3 -0
  193. package/dist/services/session/terminal-result-collector.js.map +1 -1
  194. package/dist/services/session/turn-attempt-factory.d.ts +2 -0
  195. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  196. package/dist/services/session/turn-attempt-factory.js +1 -0
  197. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  198. package/dist/services/session/turn-attempt.d.ts +6 -0
  199. package/dist/services/session/turn-attempt.d.ts.map +1 -1
  200. package/dist/services/session/turn-attempt.js +16 -0
  201. package/dist/services/session/turn-attempt.js.map +1 -1
  202. package/dist/services/session/turn-workflow.d.ts +1 -1
  203. package/dist/services/session/turn-workflow.d.ts.map +1 -1
  204. package/dist/services/session/turn-workflow.js +83 -19
  205. package/dist/services/session/turn-workflow.js.map +1 -1
  206. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  207. package/dist/services/subagents/execution-runner.js +39 -4
  208. package/dist/services/subagents/execution-runner.js.map +1 -1
  209. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  210. package/dist/services/subagents/nested-runner.js +23 -7
  211. package/dist/services/subagents/nested-runner.js.map +1 -1
  212. package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
  213. package/dist/services/subagents/subagent-async-registry.js +28 -2
  214. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  215. package/dist/services/subagents/subagent-notification-store.d.ts +2 -2
  216. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
  217. package/dist/services/subagents/subagent-notification-store.js +3 -2
  218. package/dist/services/subagents/subagent-notification-store.js.map +1 -1
  219. package/dist/services/subagents/types.d.ts +31 -8
  220. package/dist/services/subagents/types.d.ts.map +1 -1
  221. package/dist/services/subagents/types.js +11 -0
  222. package/dist/services/subagents/types.js.map +1 -1
  223. package/dist/services/subagents/utils.d.ts.map +1 -1
  224. package/dist/services/subagents/utils.js +3 -0
  225. package/dist/services/subagents/utils.js.map +1 -1
  226. package/dist/test-helpers/terminal-e2e.d.ts +2 -0
  227. package/dist/test-helpers/terminal-e2e.d.ts.map +1 -1
  228. package/dist/test-helpers/terminal-e2e.js +13 -6
  229. package/dist/test-helpers/terminal-e2e.js.map +1 -1
  230. package/dist/test-helpers/vitest-network-guard.d.ts +2 -0
  231. package/dist/test-helpers/vitest-network-guard.d.ts.map +1 -0
  232. package/dist/test-helpers/vitest-network-guard.js +24 -0
  233. package/dist/test-helpers/vitest-network-guard.js.map +1 -0
  234. package/dist/tools/agent/run-subagent-async.d.ts +1 -1
  235. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  236. package/dist/tools/agent/run-subagent-async.js +25 -4
  237. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  238. package/dist/tools/session-rollover/session-rollover-tool.d.ts.map +1 -1
  239. package/dist/tools/session-rollover/session-rollover-tool.js +1 -0
  240. package/dist/tools/session-rollover/session-rollover-tool.js.map +1 -1
  241. package/dist/tools/types.d.ts +4 -0
  242. package/dist/tools/types.d.ts.map +1 -1
  243. package/dist/tools/types.js.map +1 -1
  244. package/dist/utils/ai/token-usage.d.ts +3 -0
  245. package/dist/utils/ai/token-usage.d.ts.map +1 -1
  246. package/dist/utils/ai/token-usage.js +29 -0
  247. package/dist/utils/ai/token-usage.js.map +1 -1
  248. package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
  249. package/dist/utils/conversation/conversation-event-handler.js +23 -1
  250. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  251. package/dist/utils/streaming/streaming-session-factory.d.ts +4 -0
  252. package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
  253. package/dist/utils/streaming/streaming-session-factory.js +59 -9
  254. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  255. package/dist/utils/streaming/streaming-speed-tracker.d.ts +99 -0
  256. package/dist/utils/streaming/streaming-speed-tracker.d.ts.map +1 -0
  257. package/dist/utils/streaming/streaming-speed-tracker.js +214 -0
  258. package/dist/utils/streaming/streaming-speed-tracker.js.map +1 -0
  259. package/package.json +1 -1
@@ -74,26 +74,80 @@ export interface ProviderTrafficClosedResponse {
74
74
  requestId: string;
75
75
  provider: string;
76
76
  model: string;
77
- outcome: 'consumer_closed' | 'aborted';
77
+ /**
78
+ * `'failed'` is a stream that ended because a raw transport `error`/`close`
79
+ * frame was observed before any terminal response event — distinct from
80
+ * `'consumer_closed'`, which is this application choosing to stop reading a
81
+ * still-live stream. Without the distinction, an abnormal WebSocket close
82
+ * (e.g. close code 1006) is indistinguishable from ordinary cleanup.
83
+ */
84
+ outcome: 'consumer_closed' | 'aborted' | 'failed';
78
85
  eventCount: number;
79
86
  modelClass?: string;
80
87
  modelWrapperClass?: string;
81
88
  /**
82
89
  * A stream that ends without a terminal event leaves no payload to
83
90
  * summarize, so the retained transcript and its timings are the only record
84
- * of what the model was doing when it was cut off.
91
+ * of what the model was doing when it was cut off. Bounded (no raw event
92
+ * payload) for `'failed'`, since a transport failure is not the deliberate
93
+ * client abort that full transcript retention is for.
85
94
  */
86
- diagnostics?: ProviderTrafficStreamDiagnostics;
95
+ diagnostics?: ProviderTrafficStreamDiagnostics | ProviderTrafficBoundedStreamDiagnostics;
87
96
  }
97
+ /**
98
+ * Fixed, bounded classification of a Responses WebSocket frame's progress
99
+ * kind. Closed union on purpose — see `aborted-stream-recorder.ts`.
100
+ */
101
+ export type ProviderTrafficProgressCategory = 'text' | 'reasoning' | 'tool' | 'usage' | 'heartbeat_or_unknown';
88
102
  export interface ProviderTrafficStreamDiagnostics {
89
103
  durationMs: number;
90
104
  firstEventMs?: number;
91
105
  lastEventMs?: number;
92
106
  maxGapMs?: number;
93
107
  responseId?: string;
108
+ /** Present only when a raw transport `close` frame was observed. */
109
+ closeCode?: number;
110
+ closeReason?: string;
94
111
  eventTypeCounts: Record<string, number>;
112
+ progressCategoryCounts: Record<ProviderTrafficProgressCategory, number>;
113
+ /** Content-free count of raw tool-argument delta frames. */
114
+ toolArgumentDeltaFrames: number;
115
+ /** Sum of raw tool-argument delta string lengths. */
116
+ toolArgumentDeltaCharacters: number;
117
+ /** Raw function-call item starts observed before argument deltas. */
118
+ toolCallStartFrames: number;
95
119
  events: unknown[];
96
120
  }
121
+ /**
122
+ * A mechanically fixed-size/fixed-cardinality view of stream progress,
123
+ * distinct from {@link ProviderTrafficStreamDiagnostics}: every field here is
124
+ * either a single number (including content-free tool-argument growth counts)
125
+ * or a `Record` with a closed, hard-coded key set
126
+ * (`progressCategoryCounts`), so its serialized size cannot grow no matter
127
+ * how many frames, or how novel/hostile their `type` strings, a stream sends.
128
+ *
129
+ * This is why it is a distinct interface rather than
130
+ * `Omit<ProviderTrafficStreamDiagnostics, 'events'>`: that would still expose
131
+ * `eventTypeCounts` (keyed by raw, provider-supplied `type` strings with no
132
+ * enforced vocabulary — unbounded key cardinality) and `closeReason` (free
133
+ * text the server chooses). Used where the caller must retain progress
134
+ * evidence about a stream without retaining anything unbounded or
135
+ * provider-authored — in particular a genuine transport failure, which is not
136
+ * a deliberate client abort and can carry an unbounded number of frames.
137
+ */
138
+ export interface ProviderTrafficBoundedStreamDiagnostics {
139
+ durationMs: number;
140
+ firstEventMs?: number;
141
+ lastEventMs?: number;
142
+ maxGapMs?: number;
143
+ /** Numeric WebSocket close code (RFC 6455 §7.4); never free text. */
144
+ closeCode?: number;
145
+ eventCount: number;
146
+ progressCategoryCounts: Record<ProviderTrafficProgressCategory, number>;
147
+ toolArgumentDeltaFrames: number;
148
+ toolArgumentDeltaCharacters: number;
149
+ toolCallStartFrames: number;
150
+ }
97
151
  /**
98
152
  * What a transport-liveness guard observed while receiving a response, in the
99
153
  * same clock it judges expiry with.
@@ -124,6 +178,16 @@ export interface IProviderTraffic {
124
178
  wsAttempt?: number;
125
179
  wsMaxAttempts?: number;
126
180
  receiveTiming?: ProviderTrafficReceiveTiming;
181
+ host?: string;
182
+ timeoutMs?: number;
183
+ phase?: string;
184
+ physicalAttempt?: number;
185
+ /**
186
+ * Bounded category/counter/timing evidence of stream progress observed
187
+ * before the failure, when a stream had already started delivering
188
+ * frames. Absent when the failure happened before any frame arrived.
189
+ */
190
+ diagnostics?: ProviderTrafficBoundedStreamDiagnostics;
127
191
  }): void;
128
192
  }
129
193
  export interface ISessionContextService {
@@ -1 +1 @@
1
- {"version":3,"file":"service-interfaces.d.ts","sourceRoot":"","sources":["../../source/services/service-interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-interfaces.d.ts","sourceRoot":"","sources":["../../source/services/service-interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/C,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAAC;IACvC,kBAAkB,IAAI,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,aAAa,CAAC,EAAE,4BAA4B,CAAC;CAC9C;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,OAAO,EAAE,iBAAiB,GAAG,SAAS,GAAG,QAAQ,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gCAAgC,GAAG,uCAAuC,CAAC;CAC1F;AAED;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,sBAAsB,CAAC;AAE/G,MAAM,WAAW,gCAAgC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,sBAAsB,EAAE,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IACxE,4DAA4D;IAC5D,uBAAuB,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,2BAA2B,EAAE,MAAM,CAAC;IACpC,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,uCAAuC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,EAAE,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;IACxE,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,EAAE,MAAM,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxD,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,oBAAoB,CAAC,KAAK,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACjE,mBAAmB,CAAC,KAAK,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,4BAA4B,CAAC;QAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;;;WAIG;QACH,WAAW,CAAC,EAAE,uCAAuC,CAAC;KACvD,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAClE,UAAU,IAAI,qBAAqB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/E,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC1E,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CAC7D;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC;IACvB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"background-check-in-scheduler.d.ts","sourceRoot":"","sources":["../../../source/services/session/background-check-in-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,gFAAgF;IAChF,eAAe,EAAE,MAAM,SAAS,cAAc,EAAE,CAAC;IACjD,sFAAsF;IACtF,IAAI,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,MAAM,yBAAyB,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IACrE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IACzE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9E,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACtF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,IAAI,CAAC;IAChE;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoED;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA0B;;IAYrC,YAAY,IAAI,EAAE,8BAA8B,EAY/C;IAED,wEAAwE;IACxE,IAAI,IAAI,IAAI,CA+BX;IAED,OAAO,IAAI,IAAI,CAId;CACF"}
1
+ {"version":3,"file":"background-check-in-scheduler.d.ts","sourceRoot":"","sources":["../../../source/services/session/background-check-in-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAQhF,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,gFAAgF;IAChF,eAAe,EAAE,MAAM,SAAS,cAAc,EAAE,CAAC;IACjD,sFAAsF;IACtF,IAAI,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjD,WAAW,EAAE,MAAM,yBAAyB,CAAC;IAC7C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IACrE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IACzE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC9E,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IACtF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,KAAK,IAAI,CAAC;IAChE;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAuGD;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA0B;;IAYrC,YAAY,IAAI,EAAE,8BAA8B,EAY/C;IAED,wEAAwE;IACxE,IAAI,IAAI,IAAI,CAmCX;IAED,OAAO,IAAI,IAAI,CAId;CACF"}
@@ -1,4 +1,5 @@
1
1
  import { truncatePreview } from '../subagents/utils.js';
2
+ import { BACKGROUND_SHELL_QUIET_AFTER_MS, BACKGROUND_SUBAGENT_QUIET_AFTER_MS, normalizeBackgroundTaskActivity, } from '../background-task-activity.js';
2
3
  const DEFAULT_TICK_MS = 30_000;
3
4
  function checkInKey(target) {
4
5
  return `${target.kind}:${target.id}`;
@@ -6,7 +7,7 @@ function checkInKey(target) {
6
7
  function taskTarget(task) {
7
8
  return task.kind === 'shell' ? { kind: 'shell', id: task.jobId } : { kind: 'subagent', id: task.runId };
8
9
  }
9
- function taskDetails(task, deps) {
10
+ function taskDetails(task, deps, now) {
10
11
  if (task.kind === 'shell') {
11
12
  const job = deps.getShellJob?.(task.jobId);
12
13
  const rawTail = deps.getShellOutputTail?.(task.jobId, 400)?.trim();
@@ -15,6 +16,18 @@ function taskDetails(task, deps) {
15
16
  kind: 'shell',
16
17
  id: task.jobId,
17
18
  command: task.command,
19
+ ...(job?.lastObservation || job?.lastActivityAt !== undefined
20
+ ? {
21
+ activity: normalizeBackgroundTaskActivity({
22
+ status: job?.status ?? task.status,
23
+ ...(job?.lastObservation === undefined
24
+ ? { lastActivityAt: job?.lastActivityAt }
25
+ : { lastObservation: job.lastObservation }),
26
+ now,
27
+ quietAfterMs: BACKGROUND_SHELL_QUIET_AFTER_MS,
28
+ }),
29
+ }
30
+ : {}),
18
31
  ...(job?.status ? { status: job.status } : {}),
19
32
  ...(job?.lastObservation ? { lastObservation: job.lastObservation } : {}),
20
33
  ...(outputTail ? { outputTail } : {}),
@@ -32,6 +45,26 @@ function taskDetails(task, deps) {
32
45
  ...(task.name !== undefined ? { name: task.name } : {}),
33
46
  role: task.role,
34
47
  task: task.task,
48
+ ...(subagentStatus?.lastObservation || subagentStatus?.lastActivityAt !== undefined
49
+ ? {
50
+ activity: normalizeBackgroundTaskActivity({
51
+ status: subagentStatus.status,
52
+ activityState: subagentStatus.status === 'awaiting_approval' || subagentStatus.status === 'waiting_for_answer'
53
+ ? 'waiting'
54
+ : subagentStatus.activityState,
55
+ waitingReason: subagentStatus.status === 'awaiting_approval'
56
+ ? 'approval'
57
+ : subagentStatus.status === 'waiting_for_answer'
58
+ ? 'answer'
59
+ : subagentStatus.waitingReason,
60
+ ...(subagentStatus.lastObservation === undefined
61
+ ? { lastActivityAt: subagentStatus.lastActivityAt }
62
+ : { lastObservation: subagentStatus.lastObservation }),
63
+ now,
64
+ quietAfterMs: BACKGROUND_SUBAGENT_QUIET_AFTER_MS,
65
+ }),
66
+ }
67
+ : {}),
35
68
  ...(subagentStatus?.activityState ? { activityState: subagentStatus.activityState } : {}),
36
69
  ...(subagentStatus?.waitingReason ? { waitingReason: subagentStatus.waitingReason } : {}),
37
70
  ...(subagentStatus?.toolCounts && Object.keys(subagentStatus.toolCounts).length > 0
@@ -114,7 +147,7 @@ export class BackgroundCheckInScheduler {
114
147
  getSubagentStatus: this.#getSubagentStatus,
115
148
  getShellJob: this.#getShellJob,
116
149
  getShellOutputTail: this.#getShellOutputTail,
117
- }),
150
+ }, now),
118
151
  });
119
152
  }
120
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"background-check-in-scheduler.js","sourceRoot":"","sources":["../../../source/services/session/background-check-in-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background-check-in-scheduler.js","sourceRoot":"","sources":["../../../source/services/session/background-check-in-scheduler.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export type ContinuationRecoveryHandlerDeps = {
19
19
  retryEventPresenter: RetryEventPresenter;
20
20
  resolveRetryLimit: () => number;
21
21
  toolTracker: SessionToolTracker;
22
+ provider?: string;
22
23
  };
23
24
  export type ContinuationRecoveryResult = {
24
25
  kind: 'stale';
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,MAAM,+BAA+B,GAAG;IAC5C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,sBAAsB,CAAC;IACxC,cAAc,EAAE,iCAAiC,CAAC;IAClD,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEN,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,+BAA+B,EAAI;IAE/D,MAAM,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,iBAAiB,CAAC;KAC1B,GAAG,cAAc,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAyFtE;CACF"}
1
+ {"version":3,"file":"continuation-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,MAAM,+BAA+B,GAAG;IAC5C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,sBAAsB,CAAC;IACxC,cAAc,EAAE,iCAAiC,CAAC;IAClD,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEN,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,+BAA+B,EAAI;IAE/D,MAAM,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,iBAAiB,CAAC;KAC1B,GAAG,cAAc,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAqItE;CACF"}
@@ -1,3 +1,5 @@
1
+ import { classifyProviderFailure } from '../retry/provider-failure-classification.js';
2
+ import { skipsAutomaticReplayClaim } from '../retry/committed-tool-continuation.js';
1
3
  export class ContinuationRecoveryHandler {
2
4
  deps;
3
5
  constructor(deps) {
@@ -7,10 +9,12 @@ export class ContinuationRecoveryHandler {
7
9
  const { error, state } = ctx;
8
10
  const maxTransientRetries = this.deps.resolveRetryLimit();
9
11
  const retryStream = state.lastStream;
12
+ const committedToolContinuation = this.deps.toolTracker.inspectCommittedToolContinuation?.();
10
13
  const classified = this.deps.retryClassifier.classify({
11
14
  error,
12
15
  retryCounts: state.retryCounts,
13
16
  stream: retryStream,
17
+ committedToolContinuation,
14
18
  maxTransientRetries,
15
19
  });
16
20
  if (classified.kind === 'chain_recovery') {
@@ -19,6 +23,13 @@ export class ContinuationRecoveryHandler {
19
23
  if (classified.kind === 'unrecoverable') {
20
24
  return { kind: 'terminated' };
21
25
  }
26
+ // model_retry (hallucination/parsing/behavior detection) has its own
27
+ // pre-existing maxModelRetries cap and must not draw against or be capped
28
+ // by the shared transport-recovery envelope; see the matching comment in
29
+ // initial-turn-recovery-handler.ts.
30
+ if (classified.kind === 'transient' || classified.kind === 'chain_recovery') {
31
+ state.recoveryBudget.noteRetryableFailure();
32
+ }
22
33
  const presentation = this.deps.retryEventPresenter.present({
23
34
  failure: classified,
24
35
  maxTransientRetries,
@@ -49,6 +60,37 @@ export class ContinuationRecoveryHandler {
49
60
  stream: retryStream,
50
61
  };
51
62
  const transientDelayMs = classified.kind === 'transient' || classified.kind === 'chain_recovery' ? classified.delayMs : undefined;
63
+ // Only retry_fresh draws against the automatic-replay budget; replay_turn
64
+ // comes exclusively from model_retry, excluded for the reason above.
65
+ if (plan.kind === 'retry_fresh' &&
66
+ ((!skipsAutomaticReplayClaim(classified, committedToolContinuation) &&
67
+ !state.recoveryBudget.claimAutomaticReplay()) ||
68
+ !state.recoveryBudget.claimPhysicalAttempt())) {
69
+ // Refusing the plan must still settle open tool calls truthfully and
70
+ // clear the provider chain, exactly like an ordinary termination does --
71
+ // see the matching comment in initial-turn-recovery-handler.ts.
72
+ const terminateResult = this.deps.recoveryExecutor.apply({
73
+ plan: { kind: 'terminate', events: [] },
74
+ state: recoveryState,
75
+ retryCounts: state.retryCounts,
76
+ });
77
+ if (terminateResult.kind === 'terminated') {
78
+ for (const event of terminateResult.events) {
79
+ yield event;
80
+ }
81
+ }
82
+ const providerName = this.deps.provider ?? 'provider';
83
+ yield {
84
+ type: 'retry_exhausted',
85
+ provider: providerName,
86
+ errorKind: classifyProviderFailure(error).errorKind,
87
+ attempts: state.recoveryBudget.physicalAttempts,
88
+ maxAttempts: state.recoveryBudget.maxPhysicalAttempts,
89
+ message: `Could not reach ${providerName} after ${state.recoveryBudget.physicalAttempts} attempts. No model response was received.`,
90
+ canRetry: true,
91
+ };
92
+ return { kind: 'terminated' };
93
+ }
52
94
  const recoveryResult = this.deps.recoveryExecutor.apply({
53
95
  plan,
54
96
  state: recoveryState,
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/continuation-recovery-handler.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AA4BpF,MAAM,OAAO,2BAA2B;IACT,IAAI;IAAjC,YAA6B,IAAqC;oBAArC,IAAI;IAAoC,CAAC;IAEtE,KAAK,CAAC,CAAC,MAAM,CAAC,GAGb;QACC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;QAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;QAErC,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gCAAgC,EAAE,EAAE,CAAC;QAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YACpD,KAAK;YACL,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,WAAW;YACnB,yBAAyB;YACzB,mBAAmB;SACpB,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAChC,CAAC;QAED,qEAAqE;QACrE,0EAA0E;QAC1E,yEAAyE;QACzE,oCAAoC;QACpC,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5E,KAAK,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YACzD,OAAO,EAAE,UAAU;YACnB,mBAAmB;YACnB,MAAM,EAAE,cAAc;YACtB,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,YAAY,CAAC,KAAK,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;YAC7C,GAAG,YAAY,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAChG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACzC,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,wBAAwB,EAAE,IAAI;SAC/B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAkB;YACnC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,gBAAgB,EAAE,KAAK;YACvB,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,MAAM,gBAAgB,GACpB,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3G,0EAA0E;QAC1E,qEAAqE;QACrE,IACE,IAAI,CAAC,IAAI,KAAK,aAAa;YAC3B,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,EAAE,yBAAyB,CAAC;gBACjE,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC;gBAC7C,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,EAC/C,CAAC;YACD,qEAAqE;YACrE,yEAAyE;YACzE,gEAAgE;YAChE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBACvD,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvC,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC,CAAC;YACH,IAAI,eAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1C,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;oBAC3C,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC;YACtD,MAAM;gBACJ,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS;gBACnD,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB;gBAC/C,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB;gBACrD,OAAO,EAAE,mBAAmB,YAAY,UAAU,KAAK,CAAC,cAAc,CAAC,gBAAgB,4CAA4C;gBACnI,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACtD,IAAI;YACJ,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACzC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,cAAc,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,KAAK,CAAC,YAAY,GAAG,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC;YAC5D,KAAK,CAAC,2BAA2B,CAAC,cAAc,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;YACvF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;QAED,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,CAAC,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,cAAc,CAAC,yBAAyB,IAAI,cAAc,CAAC,WAAW,CAAC,yBAAyB;gBAClG,CAAC,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;CACF"}
@@ -9,6 +9,7 @@ import type { GenerationToken } from '../generation-guard.js';
9
9
  import type { PersistedAssistantTurnItem } from '../conversation/conversation-persistence-types.js';
10
10
  import type { AssistantJournalItemLogEvent } from '../logging/conversation-log-events.js';
11
11
  import type { AbortedApprovalContext } from '../approval/approval-state.js';
12
+ import { RetryRecoveryBudget } from '../retry/retry-recovery-budget.js';
12
13
  export interface PreparedContinuation {
13
14
  state: ContinuationHandle;
14
15
  interruption: unknown;
@@ -52,7 +53,9 @@ export declare class ContinuationState {
52
53
  retryCounts: RetryCounts;
53
54
  lastStream: AgentStream | null;
54
55
  currentResumePreviousResponseId: string | null | undefined;
55
- constructor(token: number);
56
+ /** Shared with the initial attempt that started this logical turn, when one exists. */
57
+ readonly recoveryBudget: RetryRecoveryBudget;
58
+ constructor(token: number, recoveryBudget?: RetryRecoveryBudget);
56
59
  initializeFrom(prepared: PreparedContinuation, currentCallIds: string[]): void;
57
60
  advanceFromPlan(nextState: ContinuationHandle, _nextInterruption: unknown, nextInputMode: 'delta' | 'full_history' | undefined, mergedEmittedIds: Set<string>, journalSnapshot: AssistantJournalItemLogEvent[], currentCallIds: string[]): void;
58
61
  setLastStream(stream: AgentStream | null): void;
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-state.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"continuation-state.d.ts","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { RetryRecoveryBudget } from '../retry/retry-recovery-budget.js';
1
2
  export class ContinuationState {
2
3
  token;
3
4
  currentState;
@@ -12,8 +13,11 @@ export class ContinuationState {
12
13
  retryCounts;
13
14
  lastStream;
14
15
  currentResumePreviousResponseId;
15
- constructor(token) {
16
+ /** Shared with the initial attempt that started this logical turn, when one exists. */
17
+ recoveryBudget;
18
+ constructor(token, recoveryBudget) {
16
19
  this.token = token;
20
+ this.recoveryBudget = recoveryBudget ?? new RetryRecoveryBudget();
17
21
  this.currentState = { kind: 'continuation' };
18
22
  this.currentCallIds = [];
19
23
  this.source = 'continueRunStream';
@@ -1 +1 @@
1
- {"version":3,"file":"continuation-state.js","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAS;IACd,YAAY,CAAqB;IACjC,cAAc,CAAW;IACzB,MAAM,CAAsB;IAC5B,oBAAoB,CAAc;IAClC,eAAe,CAAiC;IAChD,SAAS,CAA2B;IACpC,eAAe,CAAmB;IAClC,yBAAyB,CAAmB;IAC5C,mBAAmB,CAAgC;IACnD,WAAW,CAAc;IACzB,UAAU,CAAqB;IAC/B,+BAA+B,CAA4B;IAE3D,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG;YACjB,mBAAmB,EAAE,CAAC;YACtB,wBAAwB,EAAE,CAAC;YAC3B,eAAe,EAAE,CAAC;YAClB,uBAAuB,EAAE,CAAC;SAC3B,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,+BAA+B,GAAG,SAAS,CAAC;IACnD,CAAC;IAED,cAAc,CAAC,QAA8B,EAAE,cAAwB;QACrE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,2BAA2B,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChD,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnH,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,eAAe,CACb,SAA6B,EAC7B,iBAA0B,EAC1B,aAAmD,EACnD,gBAA6B,EAC7B,eAA+C,EAC/C,cAAwB;QAExB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAClC,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,MAA0B;QACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,kBAAkB,CAAC,KAAkC;QACnD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,4BAA4B,CAAC,QAA0B;QACrD,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC;IAC5C,CAAC;IAED,sBAAsB,CAAC,KAA+C;QACpE,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,cAAc,CAAC,MAAmB;QAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,2BAA2B,CAAC,EAA6B;QACvD,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,QAAwC;QACzD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"continuation-state.js","sourceRoot":"","sources":["../../../source/services/session/continuation-state.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import type { RetryEventPresenter } from '../retry/retry-event-presenter.js';
10
10
  import type { NextRunInstruction } from '../retry/retry-contracts.js';
11
11
  import type { SessionInputPlanner } from './session-input-planner.js';
12
12
  import type { TurnAttempt } from './turn-attempt.js';
13
+ import type { SessionToolTracker } from './session-tool-tracker.js';
13
14
  export type InitialTurnRecoveryResult = {
14
15
  kind: 'run';
15
16
  instruction: NextRunInstruction;
@@ -32,6 +33,8 @@ export type InitialTurnRecoveryHandlerDeps = {
32
33
  retryClassifier: DefaultRetryClassifier;
33
34
  retryEventPresenter: RetryEventPresenter;
34
35
  sessionId: string;
36
+ provider?: string;
37
+ toolTracker?: Pick<SessionToolTracker, 'inspectCommittedToolContinuation'>;
35
38
  };
36
39
  export declare class InitialTurnRecoveryHandler {
37
40
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"initial-turn-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,6BAA6B,CAAC;AAErF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,kBAAkB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wBAAwB,EAAE,OAAO,CAAC;IAClC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,cAAc,EAAE,iCAAiC,CAAC;IAClD,eAAe,EAAE,sBAAsB,CAAC;IACxC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,0BAA0B;;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,8BAA8B,EAAI;IAE9D,MAAM,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,WAAW,CAAC;QACrB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;KAC5B,GAAG,cAAc,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,IAAI,CAAC,CA2IrE;CAaF"}
1
+ {"version":3,"file":"initial-turn-recovery-handler.d.ts","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,6BAA6B,CAAC;AAIrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,kBAAkB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GACpG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,wBAAwB,EAAE,OAAO,CAAC;IAClC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,mBAAmB,CAAC;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,cAAc,EAAE,iCAAiC,CAAC;IAClD,eAAe,EAAE,sBAAsB,CAAC;IACxC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAC;CAC5E,CAAC;AAEF,qBAAa,0BAA0B;;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,8BAA8B,EAAI;IAE9D,MAAM,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,WAAW,CAAC;QACrB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;KAC5B,GAAG,cAAc,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAsNrE;CAaF"}
@@ -1,4 +1,7 @@
1
1
  import { describeError } from '../../utils/error-helpers.js';
2
+ import { classifyProviderFailure } from '../retry/provider-failure-classification.js';
3
+ import { isRetryRecoveryBudgetExhaustedError } from '../retry/retry-recovery-budget.js';
4
+ import { skipsAutomaticReplayClaim } from '../retry/committed-tool-continuation.js';
2
5
  export class InitialTurnRecoveryHandler {
3
6
  deps;
4
7
  constructor(deps) {
@@ -9,10 +12,13 @@ export class InitialTurnRecoveryHandler {
9
12
  if (!this.deps.generationGuard.isCurrent(attempt.token)) {
10
13
  return { kind: 'stale' };
11
14
  }
15
+ const committedToolContinuation = this.deps.toolTracker?.inspectCommittedToolContinuation();
12
16
  let classified = this.deps.retryClassifier.classify({
13
17
  error,
14
18
  retryCounts: attempt.retryCounts,
15
19
  stream,
20
+ hasCommittedOutput: attempt.modelEventSeen,
21
+ committedToolContinuation,
16
22
  maxTransientRetries: attempt.maxTransientRetries,
17
23
  maxModelRetries: attempt.maxModelRetries,
18
24
  });
@@ -36,6 +42,12 @@ export class InitialTurnRecoveryHandler {
36
42
  classified = { kind: 'unrecoverable' };
37
43
  }
38
44
  if (classified.kind === 'unrecoverable') {
45
+ const providerFailure = classifyProviderFailure(error);
46
+ const exhausted = !stream &&
47
+ (isRetryRecoveryBudgetExhaustedError(error) ||
48
+ (providerFailure.retryable &&
49
+ providerFailure.errorKind !== 'authentication' &&
50
+ providerFailure.errorKind !== 'cancelled'));
39
51
  const droppedUserMessage = attempt.addedUserMessage && !stream
40
52
  ? { text: attempt.turn.text, imageCount: attempt.turn.images?.length ?? 0 }
41
53
  : undefined;
@@ -64,6 +76,18 @@ export class InitialTurnRecoveryHandler {
64
76
  for (const event of recoveryResult.events) {
65
77
  yield event;
66
78
  }
79
+ if (exhausted) {
80
+ const providerName = this.deps.provider ?? 'provider';
81
+ yield {
82
+ type: 'retry_exhausted',
83
+ provider: providerName,
84
+ errorKind: providerFailure.errorKind,
85
+ attempts: Math.max(1, attempt.retryCounts.transientRetryCount + 1),
86
+ maxAttempts: attempt.maxTransientRetries + 1,
87
+ message: `Could not reach ${providerName} after ${Math.max(1, attempt.retryCounts.transientRetryCount + 1)} attempts. No model response was received.`,
88
+ canRetry: true,
89
+ };
90
+ }
67
91
  yield {
68
92
  type: 'error',
69
93
  message: describeError(error),
@@ -92,6 +116,15 @@ export class InitialTurnRecoveryHandler {
92
116
  if (classified.kind === 'chain_recovery') {
93
117
  this.deps.breakChaining?.();
94
118
  }
119
+ // model_retry (hallucination/parsing/behavior detection) is a distinct,
120
+ // pre-existing retry policy with its own maxModelRetries cap. It is not a
121
+ // provider transport failure, so it must not draw against or be capped by
122
+ // the shared transport-recovery envelope -- doing so silently truncated
123
+ // an established, independently-tested retry count (see the regression
124
+ // test this comment sits next to in initial-turn-recovery-handler.test.ts).
125
+ if (classified.kind === 'transient' || classified.kind === 'chain_recovery') {
126
+ attempt.recoveryBudget.noteRetryableFailure();
127
+ }
95
128
  attempt.advanceRetry(this.deps.recoveryPolicy.nextRetryCounts(attempt.retryCounts, classified));
96
129
  const plan = this.deps.recoveryPolicy.plan({
97
130
  failure: classified,
@@ -106,6 +139,43 @@ export class InitialTurnRecoveryHandler {
106
139
  addedUserMessage: attempt.addedUserMessage,
107
140
  stream,
108
141
  };
142
+ // Only retry_fresh (service_tier_fallback/transient/chain_recovery/
143
+ // transport_downgrade) draws against the automatic-replay budget.
144
+ // replay_turn is produced exclusively by model_retry, which is excluded
145
+ // for the same reason noted above.
146
+ if (plan.kind === 'retry_fresh' &&
147
+ ((!skipsAutomaticReplayClaim(classified, committedToolContinuation) &&
148
+ !attempt.recoveryBudget.claimAutomaticReplay()) ||
149
+ !attempt.recoveryBudget.claimPhysicalAttempt())) {
150
+ // Refusing the plan must still go through the same settlement path a
151
+ // normal termination does -- open tool calls settle truthfully (not as
152
+ // blind failures), and the chain is cleared so the next turn cannot
153
+ // send a text-only continuation against a response still awaiting tool
154
+ // output. Returning 'terminated' directly here (the original bug)
155
+ // skipped all of that.
156
+ const terminateResult = this.deps.recoveryExecutor.apply({
157
+ plan: { kind: 'terminate', events: [] },
158
+ state: recoveryState,
159
+ retryCounts: attempt.retryCounts,
160
+ maxModelRetries: attempt.maxModelRetries,
161
+ });
162
+ if (terminateResult.kind === 'terminated') {
163
+ for (const event of terminateResult.events) {
164
+ yield event;
165
+ }
166
+ }
167
+ yield {
168
+ type: 'retry_exhausted',
169
+ provider: this.deps.provider ?? 'provider',
170
+ errorKind: classifyProviderFailure(error).errorKind,
171
+ attempts: attempt.recoveryBudget.physicalAttempts,
172
+ maxAttempts: attempt.recoveryBudget.maxPhysicalAttempts,
173
+ message: `Could not reach ${this.deps.provider ?? 'provider'} after ${attempt.recoveryBudget.physicalAttempts} attempts. No model response was received.`,
174
+ canRetry: true,
175
+ };
176
+ this.#logFailure(error);
177
+ return { kind: 'terminated' };
178
+ }
109
179
  const result = this.deps.recoveryExecutor.apply({
110
180
  plan,
111
181
  state: recoveryState,
@@ -1 +1 @@
1
- {"version":3,"file":"initial-turn-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initial-turn-recovery-handler.js","sourceRoot":"","sources":["../../../source/services/session/initial-turn-recovery-handler.ts"],"names":[],"mappings":"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"}