@parhelia/core 0.1.12776 → 0.1.12777

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.
@@ -1,5 +1,5 @@
1
1
  import type { EditorSocketDiagnostics } from "../client/socketDiagnostics";
2
- import type { AgentDiagnosticsResponse, AgentDiagnosticsEvent, AgentDiagnosticsPendingDialog } from "../services/agentService";
2
+ import type { AgentDiagnosticsResponse, AgentDiagnosticsEvent } from "../services/agentService";
3
3
  export interface AgentTerminalRecentEvent {
4
4
  timestamp: string;
5
5
  direction?: "incoming" | "outgoing" | null;
@@ -34,8 +34,6 @@ export interface AgentTerminalRunDiagnosticsSnapshot {
34
34
  totalToolCallCount: number;
35
35
  incompleteToolCallCount: number;
36
36
  recentToolUiEvents: AgentTerminalRecentEvent[];
37
- activeInlineDialogCallbackId: string | null;
38
- pendingDialogReplayCallbackIds: string[];
39
37
  }
40
38
  export interface AgentDiagnosticsSummary {
41
39
  code: "healthy" | "client-disconnected" | "subscription-lost" | "server-failed" | "waiting-for-capacity" | "client-lagging" | "stream-stalled" | "run-finished" | "waiting";
@@ -51,57 +49,32 @@ export declare function interpretAgentRunDiagnostics(params: {
51
49
  stalledAfterMs?: number;
52
50
  }): AgentDiagnosticsSummary;
53
51
  export declare function formatSeqRanges(seqs: number[]): string;
54
- export type RecoveryAction = "none" | "replay" | "reconnect" | "stale";
52
+ export declare const STREAM_STALLED_AFTER_MS = 15000;
55
53
  /**
56
- * Caller-owned per-agent recovery state. The `decideRecoveryAction` function reads the
57
- * current slice and returns a decision; the caller commits the side effects (sending the
58
- * replay, scheduling the verify timer, etc.) and updates the slice fields accordingly.
54
+ * Watchdog rule: while the terminal locally believes the run is active and is visible,
55
+ * if no non-heartbeat run update has arrived for `stalledAfterMs`, treat the stream as
56
+ * stalled and ask the backend whether it has advanced beyond what we've applied.
59
57
  *
60
- * Stale-banner suppression and cooldowns live here rather than as call-time arguments so a
61
- * single tick can't both fire a replay and short-circuit its own verify window.
58
+ * Suppressed while a stop is pending or the run is queued for machine capacity — those
59
+ * states can legitimately be quiet.
62
60
  */
63
- export interface RecoveryStateSlice {
64
- lastReplayKey: string | null;
65
- lastReplayAt: number;
66
- /** 0 means no verify in progress. */
67
- lastReplayVerifyDeadlineAt: number;
68
- lastReplayVerifySnapshot: {
69
- localSeq: number;
70
- serverLastSeq: number | null;
71
- pendingDialogCallbackId: string | null;
72
- } | null;
73
- lastReconnectAt: number;
74
- lastDecidedAction: RecoveryAction;
75
- /** When each pending callback id was first observed in diagnostics. Caller maintains. */
76
- pendingDialogFirstSeenAt: Record<string, number>;
77
- }
78
- export declare function createRecoveryStateSlice(): RecoveryStateSlice;
79
- export interface RecoveryDecision {
80
- action: RecoveryAction;
81
- replayKey: string | null;
82
- reason: string;
83
- /** Stable string for telemetry — easier to filter than the human `reason`. */
84
- reasonCode: string;
85
- }
86
- /**
87
- * Maintain `state.pendingDialogFirstSeenAt`: add new callback ids with the current
88
- * timestamp, drop entries for dialogs that are no longer present (the backend resolved or
89
- * cancelled them). Caller invokes once per polling tick before `decideRecoveryAction`.
90
- */
91
- export declare function reconcilePendingDialogTracker(state: RecoveryStateSlice, pendingDialogs: AgentDiagnosticsPendingDialog[] | undefined | null, now: number): void;
92
- export declare function decideRecoveryAction(params: {
93
- summary: AgentDiagnosticsSummary;
94
- localSnapshot: AgentTerminalRunDiagnosticsSnapshot;
95
- serverDiagnostics?: AgentDiagnosticsResponse | null;
96
- recoveryState: RecoveryStateSlice;
97
- now?: number;
98
- replayCooldownMs?: number;
99
- reconnectCooldownMs?: number;
100
- missedDialogReplayAfterMs?: number;
101
- }): RecoveryDecision;
61
+ export declare function isStreamStalled(params: {
62
+ isExecuting: boolean;
63
+ isVisible: boolean;
64
+ isStopping: boolean;
65
+ isWaitingForCapacity: boolean;
66
+ lastUpdateAt: number;
67
+ now: number;
68
+ stalledAfterMs?: number;
69
+ }): boolean;
102
70
  /**
103
- * After a replay, did anything actually progress? Used by both the in-effect verify path
104
- * and the one-shot timer.
71
+ * Reload only when the backend has produced sequence numbers we have not applied. If
72
+ * we don't have a backend seq, or the backend is at-or-behind the client, do nothing —
73
+ * the silence is something else (idle run, server-side lag, etc.) and a reload would
74
+ * just be churn.
105
75
  */
106
- export declare function checkReplayVerified(state: RecoveryStateSlice, localSnapshot: AgentTerminalRunDiagnosticsSnapshot, serverDiagnostics: AgentDiagnosticsResponse | null | undefined): boolean;
76
+ export declare function shouldReloadAfterDiagnostics(params: {
77
+ localSeq: number;
78
+ backendSeq: number | null;
79
+ }): boolean;
107
80
  export declare function formatAgentDiagnosticsEvent(event: AgentDiagnosticsEvent | AgentTerminalRecentEvent): string;
@@ -170,212 +170,35 @@ export function formatSeqRanges(seqs) {
170
170
  ranges.push(start === end ? `${start}` : `${start}-${end}`);
171
171
  return ranges.join(", ");
172
172
  }
173
- export function createRecoveryStateSlice() {
174
- return {
175
- lastReplayKey: null,
176
- lastReplayAt: 0,
177
- lastReplayVerifyDeadlineAt: 0,
178
- lastReplayVerifySnapshot: null,
179
- lastReconnectAt: 0,
180
- lastDecidedAction: "none",
181
- pendingDialogFirstSeenAt: {},
182
- };
183
- }
184
- const DEFAULT_REPLAY_COOLDOWN_MS = 30_000;
185
- const DEFAULT_RECONNECT_COOLDOWN_MS = 60_000;
186
- const DEFAULT_MISSED_DIALOG_REPLAY_AFTER_MS = 1_500;
187
- function getServerLastSeq(diagnostics) {
188
- return (diagnostics?.currentSession?.lastDelivery?.lastSeq ??
189
- diagnostics?.transport?.lastSeq ??
190
- null);
191
- }
192
- function findFirstReplayablePendingDialog(diagnostics, activeInlineDialogCallbackId, alreadyAttempted) {
193
- const dialogs = diagnostics?.pendingDialogs;
194
- if (!dialogs || dialogs.length === 0)
195
- return null;
196
- for (const dialog of dialogs) {
197
- const callbackId = (dialog.callbackId || "").trim();
198
- if (!callbackId)
199
- continue;
200
- if (!dialog.replayableToCurrentSession)
201
- continue;
202
- if (callbackId === activeInlineDialogCallbackId)
203
- continue;
204
- if (alreadyAttempted.has(callbackId))
205
- continue;
206
- return { callbackId };
207
- }
208
- return null;
209
- }
210
- function buildReplayKey(agentId, summaryCode, serverLastSeq, pendingDialogCallbackId) {
211
- return `${agentId}|${summaryCode}|${serverLastSeq ?? "?"}|${pendingDialogCallbackId ?? "none"}`;
212
- }
173
+ export const STREAM_STALLED_AFTER_MS = 15_000;
213
174
  /**
214
- * Maintain `state.pendingDialogFirstSeenAt`: add new callback ids with the current
215
- * timestamp, drop entries for dialogs that are no longer present (the backend resolved or
216
- * cancelled them). Caller invokes once per polling tick before `decideRecoveryAction`.
175
+ * Watchdog rule: while the terminal locally believes the run is active and is visible,
176
+ * if no non-heartbeat run update has arrived for `stalledAfterMs`, treat the stream as
177
+ * stalled and ask the backend whether it has advanced beyond what we've applied.
178
+ *
179
+ * Suppressed while a stop is pending or the run is queued for machine capacity — those
180
+ * states can legitimately be quiet.
217
181
  */
218
- export function reconcilePendingDialogTracker(state, pendingDialogs, now) {
219
- const seen = new Set();
220
- for (const dialog of pendingDialogs || []) {
221
- const callbackId = (dialog.callbackId || "").trim();
222
- if (!callbackId)
223
- continue;
224
- seen.add(callbackId);
225
- if (state.pendingDialogFirstSeenAt[callbackId] == null) {
226
- state.pendingDialogFirstSeenAt[callbackId] = now;
227
- }
228
- }
229
- for (const callbackId of Object.keys(state.pendingDialogFirstSeenAt)) {
230
- if (!seen.has(callbackId)) {
231
- delete state.pendingDialogFirstSeenAt[callbackId];
232
- }
233
- }
234
- }
235
- export function decideRecoveryAction(params) {
236
- const { summary, localSnapshot, serverDiagnostics, recoveryState, now = Date.now(), replayCooldownMs = DEFAULT_REPLAY_COOLDOWN_MS, reconnectCooldownMs = DEFAULT_RECONNECT_COOLDOWN_MS, missedDialogReplayAfterMs = DEFAULT_MISSED_DIALOG_REPLAY_AFTER_MS, } = params;
237
- // 1. Server inactive / failed / finished — recovery is moot.
238
- const code = summary.code;
239
- if (code === "healthy" ||
240
- code === "run-finished" ||
241
- code === "waiting-for-capacity" ||
242
- code === "server-failed") {
243
- return { action: "none", replayKey: null, reason: summary.title, reasonCode: `inactive-${code}` };
244
- }
245
- // 2. Verify window open — let it resolve (one-shot timer + next poll handle expiry).
246
- if (recoveryState.lastReplayVerifyDeadlineAt > 0 &&
247
- now < recoveryState.lastReplayVerifyDeadlineAt) {
248
- return {
249
- action: "none",
250
- replayKey: null,
251
- reason: "Replay verification still in progress.",
252
- reasonCode: "inside-verify",
253
- };
254
- }
255
- // 3. Client disconnected — replay can't send, so go straight to reconnect.
256
- if (code === "client-disconnected") {
257
- if (recoveryState.lastReconnectAt > 0 &&
258
- now - recoveryState.lastReconnectAt < reconnectCooldownMs) {
259
- return {
260
- action: "none",
261
- replayKey: null,
262
- reason: "Client disconnected, reconnect cooldown active.",
263
- reasonCode: "cooldown-reconnect",
264
- };
265
- }
266
- return {
267
- action: "reconnect",
268
- replayKey: null,
269
- reason: "Socket closed while backend run is active.",
270
- reasonCode: "client-disconnected",
271
- };
272
- }
273
- const alreadyAttemptedDialogs = new Set(localSnapshot.pendingDialogReplayCallbackIds || []);
274
- const serverLastSeq = getServerLastSeq(serverDiagnostics);
275
- // 4. Missed-dialog special case. We wait `missedDialogReplayAfterMs` after first observing
276
- // a callback id so the existing 750ms `schedulePendingDialogReplay` timer (fired from
277
- // the WaitingForInput status handler) gets first dibs. Only fires when the backend
278
- // really reports the dialog but the client has neither mounted it nor attempted replay.
279
- const missedDialog = findFirstReplayablePendingDialog(serverDiagnostics, localSnapshot.activeInlineDialogCallbackId, alreadyAttemptedDialogs);
280
- if (missedDialog) {
281
- const firstSeenAt = recoveryState.pendingDialogFirstSeenAt[missedDialog.callbackId] ?? now;
282
- if (now - firstSeenAt >= missedDialogReplayAfterMs) {
283
- const replayKey = buildReplayKey(localSnapshot.agentId, summary.code, serverLastSeq, missedDialog.callbackId);
284
- // Cooldown for the same key still applies, so a flapping pending dialog can't
285
- // trigger replays in a tight loop.
286
- if (replayKey === recoveryState.lastReplayKey &&
287
- now - recoveryState.lastReplayAt < replayCooldownMs) {
288
- return {
289
- action: "none",
290
- replayKey: null,
291
- reason: "Missed-dialog replay cooldown active.",
292
- reasonCode: "cooldown-replay-missed-dialog",
293
- };
294
- }
295
- return {
296
- action: "replay",
297
- replayKey,
298
- reason: `Pending dialog ${missedDialog.callbackId} not mounted; requesting replay.`,
299
- reasonCode: "missed-dialog",
300
- };
301
- }
302
- // Otherwise fall through — give schedulePendingDialogReplay's own timer time to act.
303
- }
304
- // 5. Lag / lost subscription / stalled stream — try replay first, escalate later.
305
- const isRecoverableLag = code === "client-lagging" ||
306
- code === "subscription-lost" ||
307
- code === "stream-stalled";
308
- if (isRecoverableLag) {
309
- const replayKey = buildReplayKey(localSnapshot.agentId, code, serverLastSeq, null);
310
- // 6. Replay already attempted for this exact key and verify failed — escalate to reconnect.
311
- if (replayKey === recoveryState.lastReplayKey &&
312
- recoveryState.lastReplayVerifyDeadlineAt === 0 &&
313
- recoveryState.lastReplayAt > 0) {
314
- const reconnectCooldownActive = recoveryState.lastReconnectAt > 0 &&
315
- now - recoveryState.lastReconnectAt < reconnectCooldownMs;
316
- if (!reconnectCooldownActive) {
317
- return {
318
- action: "reconnect",
319
- replayKey,
320
- reason: "Replay did not resolve the issue; reconnecting socket.",
321
- reasonCode: "replay-failed-escalate",
322
- };
323
- }
324
- // 7. Reconnect cooldown still active and server still reports a problem — stale.
325
- return {
326
- action: "stale",
327
- replayKey,
328
- reason: "Replay and reconnect both attempted recently without recovery.",
329
- reasonCode: "stale-after-escalation",
330
- };
331
- }
332
- // Plain replay-cooldown check.
333
- if (replayKey === recoveryState.lastReplayKey &&
334
- now - recoveryState.lastReplayAt < replayCooldownMs) {
335
- return {
336
- action: "none",
337
- replayKey: null,
338
- reason: "Replay cooldown active for current state.",
339
- reasonCode: "cooldown-replay",
340
- };
341
- }
342
- return {
343
- action: "replay",
344
- replayKey,
345
- reason: `Recovering from ${code}.`,
346
- reasonCode: `replay-${code}`,
347
- };
182
+ export function isStreamStalled(params) {
183
+ const { isExecuting, isVisible, isStopping, isWaitingForCapacity, lastUpdateAt, now, stalledAfterMs = STREAM_STALLED_AFTER_MS, } = params;
184
+ if (!isExecuting || !isVisible || isStopping || isWaitingForCapacity) {
185
+ return false;
348
186
  }
349
- // 8. `waiting` and anything else — no action.
350
- return { action: "none", replayKey: null, reason: summary.title, reasonCode: `noop-${code}` };
187
+ if (lastUpdateAt <= 0)
188
+ return false;
189
+ return now - lastUpdateAt > stalledAfterMs;
351
190
  }
352
191
  /**
353
- * After a replay, did anything actually progress? Used by both the in-effect verify path
354
- * and the one-shot timer.
192
+ * Reload only when the backend has produced sequence numbers we have not applied. If
193
+ * we don't have a backend seq, or the backend is at-or-behind the client, do nothing —
194
+ * the silence is something else (idle run, server-side lag, etc.) and a reload would
195
+ * just be churn.
355
196
  */
356
- export function checkReplayVerified(state, localSnapshot, serverDiagnostics) {
357
- const before = state.lastReplayVerifySnapshot;
358
- if (!before)
197
+ export function shouldReloadAfterDiagnostics(params) {
198
+ const { localSeq, backendSeq } = params;
199
+ if (backendSeq == null)
359
200
  return false;
360
- // Local seq advanced past the snapshot.
361
- if (localSnapshot.lastSeq > before.localSeq)
362
- return true;
363
- // Server is no longer active — treat as recovered (the run finished or errored, and the
364
- // polling effect's terminal-state early-returns will pick it up on the next tick).
365
- if (!isServerExecutionActive(serverDiagnostics))
366
- return true;
367
- // The pending dialog whose missing triggered the replay is now mounted (the inline
368
- // dialog handler caught the resent agent-dialog-request) or was attempted (its callback
369
- // id entered the dedupe set).
370
- if (before.pendingDialogCallbackId) {
371
- if (localSnapshot.activeInlineDialogCallbackId === before.pendingDialogCallbackId) {
372
- return true;
373
- }
374
- if ((localSnapshot.pendingDialogReplayCallbackIds || []).includes(before.pendingDialogCallbackId)) {
375
- return true;
376
- }
377
- }
378
- return false;
201
+ return backendSeq > localSeq;
379
202
  }
380
203
  export function formatAgentDiagnosticsEvent(event) {
381
204
  const direction = "direction" in event && event.direction ? `${event.direction} ` : "";
@@ -1 +1 @@
1
- {"version":3,"file":"agentDiagnostics.js","sourceRoot":"","sources":["../../../src/editor/ai/agentDiagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentDiagnostics.js","sourceRoot":"","sources":["../../../src/editor/ai/agentDiagnostics.ts"],"names":[],"mappings":"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"}