agent-relay 11.4.2 → 11.5.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.
@@ -48,6 +48,7 @@ import { Buffer } from 'node:buffer';
48
48
  import { randomUUID } from 'node:crypto';
49
49
  import { StringDecoder } from 'node:string_decoder';
50
50
  import WebSocket from 'ws';
51
+ import { createInputStreamRecovery, INPUT_REOPEN_BASE_DELAY_MS, INPUT_REOPEN_MAX_ATTEMPTS, } from './attach-input-recovery.js';
51
52
  import { captureAndRenderSnapshot, canReserveStatusLine, clampStatusLineText, createBackpressureAwareWriter, DETACH_CLEANUP_DEADLINE_MS, pickInitialTerminalCols, pickInitialTerminalRows, prepareAttachTarget, reserveStatusLineRow, renderChildScrollRegion, resetLocalTerminalOnDetach, restoreInboundDeliveryModeOnDetach, StatusLineController, StreamSyncBuffer, switchInboundDeliveryModeOrAbort, syncInitialPtySize, TerminalScrollRegionTracker, } from '../lib/attach.js';
52
53
  import { defaultStateDir, readConnectionFileFromDisk, toWsUrl, } from '../lib/broker-connection.js';
53
54
  import { defaultExit, runSignalHandler } from '../lib/exit.js';
@@ -97,6 +98,7 @@ function withDefaults(overrides = {}) {
97
98
  },
98
99
  },
99
100
  openInputStream: (connection, name, options) => openPtyInputStream(connection, name, fetchFn, options),
101
+ getWorkerIdentity: (connection, name) => fetchWorkerIdentity(connection, name, fetchFn),
100
102
  createPredictiveEcho,
101
103
  ...overrides,
102
104
  };
@@ -180,6 +182,55 @@ export async function sendInput(connection, name, data, fetchFn) {
180
182
  return { ok: false, message: failure.message };
181
183
  }
182
184
  }
185
+ /**
186
+ * Best-available identity for the worker process behind `name`, or `null` when
187
+ * it cannot be established.
188
+ *
189
+ * The broker exposes no per-instance token for a worker — no `instance_id`,
190
+ * `run_id`, `epoch`, or absolute spawn timestamp reaches the wire (#1454). The
191
+ * only restart-discriminating values on `GET /api/spawned` are two pids, and
192
+ * they are not interchangeable:
193
+ *
194
+ * - `workerPid` (`crates/broker/src/worker.rs:243` = `handle.child.id()`) is the
195
+ * PTY child itself — the process whose terminal we are driving. Present as
196
+ * soon as the worker is spawned.
197
+ * - `pid` (`worker.rs:242` = `handle.harness_pid`) is the *harness* wrapper, and
198
+ * stays null until the worker completes the harness ready handshake
199
+ * (`worker_events.rs:849`). Verified against a live broker: a plain PTY worker
200
+ * reports `pid: null` and `workerPid: 30209`, so keying on `pid` alone would
201
+ * make every reopen unverifiable for exactly the workers this path serves.
202
+ *
203
+ * So prefer `workerPid` and fold in `pid` when the broker also has it — a change
204
+ * in either means the process behind the name changed.
205
+ *
206
+ * This is a heuristic, not a nonce: the OS can reuse a pid. It is used to
207
+ * *reject* a reopen that lands on a visibly different process, never to prove
208
+ * two processes are the same — callers treat `null` as "cannot verify" and
209
+ * fail closed. The durable fix is for the broker to surface the per-spawn
210
+ * identity it already holds in memory (`WorkerHandle.spawned_at`,
211
+ * `PersistedAgent.started_at`, or the `MetricsCollector` spawn counter) — #1454.
212
+ */
213
+ export async function fetchWorkerIdentity(connection, name, fetchFn) {
214
+ try {
215
+ const agents = await createBrokerClient(connection, fetchFn).listAgents();
216
+ const agent = agents.find((candidate) => candidate.name === name);
217
+ if (!agent)
218
+ return null;
219
+ // `workerPid` is on the wire but absent from the typed contract, so read it
220
+ // off the record defensively rather than widening `ListAgent` here.
221
+ const workerPid = agent.workerPid;
222
+ const parts = [];
223
+ if (typeof workerPid === 'number')
224
+ parts.push(`worker:${workerPid}`);
225
+ if (typeof agent.pid === 'number')
226
+ parts.push(`harness:${agent.pid}`);
227
+ // No pid of either kind means the broker cannot tell us who this is.
228
+ return parts.length > 0 ? parts.join('/') : null;
229
+ }
230
+ catch {
231
+ return null;
232
+ }
233
+ }
183
234
  /** Open the SDK-backed raw PTY input stream for interactive CLI sessions. */
184
235
  export function openPtyInputStream(connection, name, fetchFn, options) {
185
236
  return createBrokerClient(connection, fetchFn).openInputStream(name, options);
@@ -600,6 +651,45 @@ function runDriveSessionLoop(state, deps) {
600
651
  });
601
652
  return deliveryToggleInFlight;
602
653
  };
654
+ // ---- input-stream liveness ----
655
+ // A closed PTY input stream is a session-liveness event, not a
656
+ // per-keystroke error. See `attach-input-recovery.ts` for why (#1419).
657
+ //
658
+ // Identity of the worker this session attached to, captured once at attach
659
+ // and compared after any reopen. `null` means the broker could not tell us,
660
+ // which is treated as "cannot verify" — never as "verified".
661
+ let attachedWorkerIdentity = null;
662
+ const inputRecovery = createInputStreamRecovery({
663
+ label: 'drive',
664
+ name,
665
+ maxAttempts: deps.inputReopenMaxAttempts ?? INPUT_REOPEN_MAX_ATTEMPTS,
666
+ baseDelayMs: deps.inputReopenBaseDelayMs ?? INPUT_REOPEN_BASE_DELAY_MS,
667
+ log: (message) => deps.log(message),
668
+ error: (message) => deps.error(message),
669
+ isSettled: () => settled,
670
+ getStream: () => inputStream,
671
+ setStream: (stream) => {
672
+ inputStream = stream;
673
+ },
674
+ openStream: () => deps.openInputStream(connection, name),
675
+ onRollback: () => predictiveEcho?.rollback(),
676
+ onExhausted: () => finish(1),
677
+ verifyIdentity: async () => {
678
+ // Fail closed in both directions: if we never learned who we attached
679
+ // to, we cannot claim the replacement is the same process either.
680
+ if (attachedWorkerIdentity === null) {
681
+ return { ok: false, reason: 'worker identity was unavailable at attach' };
682
+ }
683
+ const current = await deps.getWorkerIdentity(connection, name);
684
+ if (current === null) {
685
+ return { ok: false, reason: 'worker identity could not be read after reconnect' };
686
+ }
687
+ if (current !== attachedWorkerIdentity) {
688
+ return { ok: false, reason: `worker process changed (${attachedWorkerIdentity} → ${current})` };
689
+ }
690
+ return { ok: true };
691
+ },
692
+ });
603
693
  // ---- stdin handling ----
604
694
  let stdinReady = false;
605
695
  const stdinDataHandler = (chunk) => {
@@ -615,29 +705,38 @@ function runDriveSessionLoop(state, deps) {
615
705
  const outcome = parser.feed(chunk);
616
706
  if (outcome.forward.length > 0) {
617
707
  const stream = inputStream;
618
- if (!stream) {
619
- deps.log('[drive] input stream is not ready');
620
- return;
708
+ // A dead or missing stream is a liveness event, not a per-keystroke
709
+ // error. Drop this input silently recovery has already announced
710
+ // itself — rather than emitting a line for every byte the terminal
711
+ // sends us. Input during the outage is dropped, not buffered: replaying
712
+ // stale keystrokes into a recovered PTY would execute them out of
713
+ // context, which is worse than losing them.
714
+ //
715
+ // Skip only the *forwarding*; fall through to the action loop below.
716
+ // Ctrl+C can share a chunk with ordinary bytes, and returning here
717
+ // would swallow the detach — leaving the human unable to escape a
718
+ // broken session, which is worse than the flood.
719
+ if (!inputRecovery.isUsable(stream)) {
720
+ inputRecovery.recover('stream closed');
621
721
  }
622
- // Decode through the stateful UTF-8 decoder so a multi-byte character
623
- // split across stdin chunks is forwarded intact rather than as U+FFFD.
624
- // An incomplete trailing sequence decodes to '' and is held until the
625
- // next chunk completes it.
626
- const decoded = inputDecoder.write(outcome.forward);
627
- if (decoded.length > 0) {
628
- // Fire-and-forget; surface errors via log but don't block the
629
- // event loop on every keystroke.
630
- void stream.send(decoded).catch((err) => {
631
- if (settled)
632
- return;
633
- const message = describeError(err);
634
- deps.log(`[drive] input stream send failed: ${message}`);
635
- // The keystroke never reached the PTY — drop any optimistic echo
636
- // for it so the screen doesn't show input the agent didn't get.
637
- predictiveEcho?.rollback();
638
- });
722
+ else {
723
+ // Decode through the stateful UTF-8 decoder so a multi-byte character
724
+ // split across stdin chunks is forwarded intact rather than as U+FFFD.
725
+ // An incomplete trailing sequence decodes to '' and is held until the
726
+ // next chunk completes it.
727
+ const decoded = inputDecoder.write(outcome.forward);
728
+ if (decoded.length > 0) {
729
+ // Fire-and-forget; don't block the event loop on every keystroke.
730
+ void stream.send(decoded).then(() => inputRecovery.noteSendSuccess(), (err) => {
731
+ if (settled)
732
+ return;
733
+ // Classified, not assumed: backpressure leaves the stream
734
+ // healthy and must not trigger a teardown.
735
+ inputRecovery.handleSendFailure(err);
736
+ });
737
+ }
738
+ predictiveEcho?.onUserInput(outcome.forward);
639
739
  }
640
- predictiveEcho?.onUserInput(outcome.forward);
641
740
  }
642
741
  for (const action of outcome.actions) {
643
742
  switch (action) {
@@ -706,6 +805,9 @@ function runDriveSessionLoop(state, deps) {
706
805
  rawModeWasSet = false;
707
806
  };
708
807
  const closeInputStream = () => {
808
+ // Cancel any pending reopen backoff so a detach mid-recovery doesn't
809
+ // leave a timer holding a reference to a torn-down session.
810
+ inputRecovery.cancel();
709
811
  const stream = inputStream;
710
812
  inputStream = null;
711
813
  if (!stream)
@@ -815,6 +917,15 @@ function runDriveSessionLoop(state, deps) {
815
917
  closeInputStream();
816
918
  return;
817
919
  }
920
+ // Baseline for the reopen identity gate. Best-effort: a broker that
921
+ // won't tell us leaves this null, which makes any later reopen refuse
922
+ // rather than guess. Not fatal here — the initial attach is the seat
923
+ // the human asked for.
924
+ attachedWorkerIdentity = await deps.getWorkerIdentity(connection, name);
925
+ if (settled) {
926
+ closeInputStream();
927
+ return;
928
+ }
818
929
  // Register the temporary input handler before raw mode. Ctrl+C is an
819
930
  // ordinary byte in raw mode, so this keeps detach available while a
820
931
  // snapshot fetch or initial resize is still pending.
@@ -1 +1 @@
1
- {"version":3,"file":"attach-drive.js","sourceRoot":"","sources":["../../../src/cli/lib/attach-drive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attach-drive.js","sourceRoot":"","sources":["../../../src/cli/lib/attach-drive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Recovery for a lost PTY input stream, shared by `attach --mode drive` and
3
+ * `attach --mode passthrough`.
4
+ *
5
+ * The SDK's `PtyInputStream` never reopens itself. Once its socket closes the
6
+ * `closed` flag latches and every later `send()` rejects immediately with
7
+ * `PTY input stream is closed`. That close is easy to hit and easy to miss: the
8
+ * broker pings the *events* WebSocket every 30s but never pings the *input*
9
+ * WebSocket, so an idle input socket is silent on the wire and any idle timeout
10
+ * between client and broker kills it alone — the screen keeps updating while
11
+ * input is permanently dead. A broker-side write error (PTY worker restart)
12
+ * closes it the same way.
13
+ *
14
+ * Before this, both attach modes caught that rejection per keystroke, logged
15
+ * it, and returned. Nothing tore the session down, so the line repeated for as
16
+ * long as stdin produced bytes. There was no retry loop — the repetition was
17
+ * 1:1 with inbound chunks, and since the keybind parser forwards every byte
18
+ * except Ctrl+C / Ctrl+], a source TUI with mouse tracking enabled flooded the
19
+ * terminal on pointer movement alone, with the human never touching a key.
20
+ *
21
+ * This turns that into one liveness event: report once, reopen with bounded
22
+ * exponential backoff, and on exhaustion hand control back to the caller so the
23
+ * session exits non-zero. A dead seat that looks alive is the defect; a
24
+ * readable exit a supervisor can act on is the contract (#1419).
25
+ */
26
+ import type { CliPtyInputStream } from './attach-drive.js';
27
+ /** Default number of reopen attempts before a lost input stream ends the session. */
28
+ export declare const INPUT_REOPEN_MAX_ATTEMPTS = 5;
29
+ /** Default base delay for the reopen backoff; doubles per attempt. */
30
+ export declare const INPUT_REOPEN_BASE_DELAY_MS = 250;
31
+ /** Ceiling on the doubled reopen delay. */
32
+ export declare const INPUT_REOPEN_MAX_DELAY_MS = 4000;
33
+ /** Ceiling on one attempt's open wait and identity check. */
34
+ export declare const INPUT_REOPEN_ATTEMPT_TIMEOUT_MS = 15000;
35
+ /**
36
+ * `PtyInputStream.send()` rejects with `input_backpressure` when queued bytes
37
+ * would exceed its high-water mark — **while the stream is open and healthy**
38
+ * (`transport.ts:206-214`, `retryable: true`). That is flow control, not
39
+ * transport death: tearing the socket down and reopening it would drop every
40
+ * outstanding keystroke and re-run the identity gate, turning a slow broker
41
+ * into a detach. Every other rejection means the stream is gone or unusable.
42
+ */
43
+ export declare function isBackpressureRejection(error: unknown): boolean;
44
+ export interface InputStreamRecoveryOptions {
45
+ /** Log prefix tag — `drive` or `passthrough`. */
46
+ label: string;
47
+ /** Agent name, used in the operator-facing exhaustion message. */
48
+ name: string;
49
+ /** Attempts before giving up. `0` disables recovery: the first loss exits. */
50
+ maxAttempts: number;
51
+ /** Base backoff delay in ms; doubles per attempt up to the max. */
52
+ baseDelayMs: number;
53
+ log: (message: string) => void;
54
+ error: (message: string) => void;
55
+ /** True once the session has begun tearing down; stops all recovery work. */
56
+ isSettled: () => boolean;
57
+ getStream: () => CliPtyInputStream | null;
58
+ setStream: (stream: CliPtyInputStream | null) => void;
59
+ /** Opens a replacement stream. May throw; a throw counts as a failed attempt. */
60
+ openStream: () => CliPtyInputStream;
61
+ /** Drop optimistic echo for keystrokes that never reached the PTY. */
62
+ onRollback: () => void;
63
+ /** Called when every attempt failed. Callers exit non-zero here. */
64
+ onExhausted: () => void;
65
+ /**
66
+ * Proves the reopened stream reached the SAME worker process the session
67
+ * originally attached to. Called after every successful reopen, before a
68
+ * single byte is forwarded.
69
+ *
70
+ * **Required, deliberately.** The input stream is reopened *by agent name*,
71
+ * and a name is not an identity: if the worker died and something else
72
+ * claimed the name, a "successful" reopen would quietly route the human's
73
+ * keystrokes into a different agent's PTY. Restarting the same agent is
74
+ * equally wrong for input safety — keystrokes typed for the old session's
75
+ * context would land in a fresh shell. An optional verifier is not a gate,
76
+ * because the unsafe path is then reachable by omission.
77
+ *
78
+ * Must fail closed: anything other than a positive match — identity
79
+ * unavailable, unreadable, or changed — has to return `ok: false` so the
80
+ * session exits loudly instead of reattaching on a guess. Throwing is also
81
+ * treated as a refusal; a verifier that cannot answer has not said yes.
82
+ */
83
+ verifyIdentity: () => Promise<{
84
+ ok: true;
85
+ } | {
86
+ ok: false;
87
+ reason: string;
88
+ }>;
89
+ /**
90
+ * Ceiling on a single reopen attempt's open and identity-verify waits.
91
+ * Without it a stalled socket or a hung broker call parks the session in
92
+ * recovery forever, so neither the attempt count nor the non-zero exhaustion
93
+ * exit is actually bounded. Defaults to
94
+ * {@link INPUT_REOPEN_ATTEMPT_TIMEOUT_MS}.
95
+ */
96
+ attemptTimeoutMs?: number;
97
+ }
98
+ export interface InputStreamRecovery {
99
+ /**
100
+ * True when `stream` is present and not known-dead. Callers check this
101
+ * *before* sending, so a dead stream costs one liveness event instead of one
102
+ * rejected promise (and one log line) per keystroke. A type predicate so the
103
+ * caller's handle narrows to non-null on the sending path.
104
+ */
105
+ isUsable(stream: CliPtyInputStream | null): stream is CliPtyInputStream;
106
+ /** True while a reopen is in flight. */
107
+ isRecovering(): boolean;
108
+ /** Begin recovery. No-ops if already recovering or settled. */
109
+ recover(reason: string): void;
110
+ /**
111
+ * Classify a rejected `send()`. Backpressure is flow control on a healthy
112
+ * stream and only costs the optimistic echo; everything else is treated as
113
+ * transport loss and enters recovery. Callers route every send rejection
114
+ * here rather than assuming loss.
115
+ */
116
+ handleSendFailure(error: unknown): void;
117
+ /** Clears the backpressure latch so a later episode reports again. */
118
+ noteSendSuccess(): void;
119
+ /** Cancel a pending backoff timer (detach mid-recovery). */
120
+ cancel(): void;
121
+ }
122
+ export declare function createInputStreamRecovery(options: InputStreamRecoveryOptions): InputStreamRecovery;
123
+ //# sourceMappingURL=attach-input-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach-input-recovery.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/attach-input-recovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,qFAAqF;AACrF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,2CAA2C;AAC3C,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAC/C,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,QAAS,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI/D;AAED,MAAM,WAAW,0BAA0B;IACzC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,iFAAiF;IACjF,UAAU,EAAE,MAAM,iBAAiB,CAAC;IACpC,sEAAsE;IACtE,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,oEAAoE;IACpE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAOD,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,IAAI,iBAAiB,CAAC;IACxE,wCAAwC;IACxC,YAAY,IAAI,OAAO,CAAC;IACxB,+DAA+D;IAC/D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,sEAAsE;IACtE,eAAe,IAAI,IAAI,CAAC;IACxB,4DAA4D;IAC5D,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAwPlG"}