agent-relay 11.2.0 → 11.3.1
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.
- package/dist/cli/agent-relay-mcp.d.ts +1 -0
- package/dist/cli/agent-relay-mcp.d.ts.map +1 -1
- package/dist/cli/agent-relay-mcp.js +10 -3
- package/dist/cli/agent-relay-mcp.js.map +1 -1
- package/dist/cli/bootstrap.d.ts +14 -0
- package/dist/cli/bootstrap.d.ts.map +1 -1
- package/dist/cli/bootstrap.js +91 -7
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/commands/cloud.d.ts.map +1 -1
- package/dist/cli/commands/cloud.js +16 -5
- package/dist/cli/commands/cloud.js.map +1 -1
- package/dist/cli/commands/integration.js +5 -5
- package/dist/cli/commands/integration.js.map +1 -1
- package/dist/cli/commands/local-agent.d.ts.map +1 -1
- package/dist/cli/commands/local-agent.js +13 -1
- package/dist/cli/commands/local-agent.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +9 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/workspace.d.ts.map +1 -1
- package/dist/cli/commands/workspace.js +38 -3
- package/dist/cli/commands/workspace.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/attach-broker.d.ts.map +1 -1
- package/dist/cli/lib/attach-broker.js +2 -1
- package/dist/cli/lib/attach-broker.js.map +1 -1
- package/dist/cli/lib/attach-drive.d.ts +37 -18
- package/dist/cli/lib/attach-drive.d.ts.map +1 -1
- package/dist/cli/lib/attach-drive.js +183 -79
- package/dist/cli/lib/attach-drive.js.map +1 -1
- package/dist/cli/lib/attach-native.d.ts.map +1 -1
- package/dist/cli/lib/attach-native.js +4 -3
- package/dist/cli/lib/attach-native.js.map +1 -1
- package/dist/cli/lib/attach-passthrough.d.ts +5 -0
- package/dist/cli/lib/attach-passthrough.d.ts.map +1 -1
- package/dist/cli/lib/attach-passthrough.js +113 -35
- package/dist/cli/lib/attach-passthrough.js.map +1 -1
- package/dist/cli/lib/attach-view.d.ts +2 -0
- package/dist/cli/lib/attach-view.d.ts.map +1 -1
- package/dist/cli/lib/attach-view.js +10 -0
- package/dist/cli/lib/attach-view.js.map +1 -1
- package/dist/cli/lib/attach.d.ts +127 -11
- package/dist/cli/lib/attach.d.ts.map +1 -1
- package/dist/cli/lib/attach.js +471 -31
- package/dist/cli/lib/attach.js.map +1 -1
- package/dist/cli/lib/broker-lifecycle.d.ts +4 -1
- package/dist/cli/lib/broker-lifecycle.d.ts.map +1 -1
- package/dist/cli/lib/broker-lifecycle.js +66 -18
- package/dist/cli/lib/broker-lifecycle.js.map +1 -1
- package/dist/cli/lib/core-maintenance.d.ts.map +1 -1
- package/dist/cli/lib/core-maintenance.js +2 -1
- package/dist/cli/lib/core-maintenance.js.map +1 -1
- package/dist/cli/lib/describe-error.d.ts +27 -0
- package/dist/cli/lib/describe-error.d.ts.map +1 -0
- package/dist/cli/lib/describe-error.js +149 -0
- package/dist/cli/lib/describe-error.js.map +1 -0
- package/dist/cli/lib/node-provider-child.d.ts.map +1 -1
- package/dist/cli/lib/node-provider-child.js +2 -1
- package/dist/cli/lib/node-provider-child.js.map +1 -1
- package/dist/cli/lib/redact.d.ts +8 -0
- package/dist/cli/lib/redact.d.ts.map +1 -1
- package/dist/cli/lib/redact.js +17 -0
- package/dist/cli/lib/redact.js.map +1 -1
- package/dist/cli/mcp/action-schema.d.ts +2 -2
- package/dist/cli/mcp/action-schema.d.ts.map +1 -1
- package/dist/cli/mcp/action-schema.js +1 -1
- package/dist/cli/mcp/action-schema.js.map +1 -1
- package/dist/cli/mcp/action-tools.d.ts.map +1 -1
- package/dist/cli/mcp/action-tools.js +2 -1
- package/dist/cli/mcp/action-tools.js.map +1 -1
- package/dist/cli/mcp/messaging-tools.js +5 -5
- package/dist/cli/mcp/messaging-tools.js.map +1 -1
- package/dist/cli/mcp/tool-results.d.ts +1 -1
- package/dist/cli/mcp/tool-results.d.ts.map +1 -1
- package/dist/cli/mcp/tool-results.js +1 -1
- package/dist/cli/mcp/tool-results.js.map +1 -1
- package/dist/cli/telemetry/client.d.ts +16 -0
- package/dist/cli/telemetry/client.d.ts.map +1 -1
- package/dist/cli/telemetry/client.js +122 -5
- package/dist/cli/telemetry/client.js.map +1 -1
- package/dist/cli/telemetry/config.d.ts +14 -1
- package/dist/cli/telemetry/config.d.ts.map +1 -1
- package/dist/cli/telemetry/config.js +10 -0
- package/dist/cli/telemetry/config.js.map +1 -1
- package/dist/cli/telemetry/events.d.ts +35 -0
- package/dist/cli/telemetry/events.d.ts.map +1 -1
- package/dist/cli/telemetry/index.d.ts +1 -1
- package/dist/cli/telemetry/index.d.ts.map +1 -1
- package/dist/cli/telemetry/index.js +1 -1
- package/dist/cli/telemetry/index.js.map +1 -1
- package/dist/cli/telemetry/posthog-config.d.ts +21 -15
- package/dist/cli/telemetry/posthog-config.d.ts.map +1 -1
- package/dist/cli/telemetry/posthog-config.js +32 -21
- package/dist/cli/telemetry/posthog-config.js.map +1 -1
- package/dist/cli/telemetry/posthog-key.d.ts +18 -0
- package/dist/cli/telemetry/posthog-key.d.ts.map +1 -0
- package/dist/cli/telemetry/posthog-key.js +18 -0
- package/dist/cli/telemetry/posthog-key.js.map +1 -0
- package/dist/index.cjs +3427 -32330
- package/package.json +11 -11
|
@@ -1,29 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `agent-relay drive <name>` — interactive read-write take-over client.
|
|
3
3
|
*
|
|
4
|
-
* Attaches to a running agent,
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* the
|
|
4
|
+
* Attaches to a running agent, puts it in `auto_inject` inbound delivery mode so
|
|
5
|
+
* relay messages keep reaching it live, and forwards your keystrokes to the
|
|
6
|
+
* worker's PTY. Watching an agent never pauses it: a driven agent goes on
|
|
7
|
+
* receiving its peers' messages exactly as it would unattended, which is what
|
|
8
|
+
* makes it possible to observe a team coordinating instead of freezing it by
|
|
9
|
+
* looking at it.
|
|
10
|
+
*
|
|
11
|
+
* `Ctrl+]` toggles the worker into `manual_flush` when you want the screen to
|
|
12
|
+
* hold still while you type — messages park in a per-worker queue, the status
|
|
13
|
+
* line counts them (`pending=N`), and the next press drains the queue and
|
|
14
|
+
* returns to live delivery. The out-of-band commands `local agent message
|
|
15
|
+
* flush`, `local agent message hold`, and `local agent message auto` still work
|
|
16
|
+
* from another terminal: a bare `flush` during a drive session injects the
|
|
17
|
+
* queued backlog immediately (the broker follows the handoff with a one-shot
|
|
18
|
+
* `flush_injections` frame that exempts it from the interactive hold) while
|
|
19
|
+
* leaving the mode — and the parking of later messages — unchanged. `Ctrl+C`
|
|
20
|
+
* detaches, restores the worker's previous inbound delivery mode, and leaves
|
|
21
|
+
* the agent running under the broker — `drive` never kills the worker.
|
|
20
22
|
*
|
|
21
23
|
* Sequence of operations on attach (subscribe-first, so no output around
|
|
22
24
|
* attach time is lost and none is double-painted):
|
|
23
25
|
*
|
|
24
26
|
* 1. Discover broker connection (CLI flag → env → connection.json).
|
|
25
27
|
* 2. `GET /api/spawned/{name}/delivery-mode` → remember the previous mode.
|
|
26
|
-
* 3. `PUT /api/spawned/{name}/delivery-mode` →
|
|
28
|
+
* 3. `PUT /api/spawned/{name}/delivery-mode` → assert `auto_inject`.
|
|
27
29
|
* 4. `GET /api/events/replay` → capture the durable-event `sinceSeq` cutoff,
|
|
28
30
|
* then `GET /api/spawned/{name}/pending` → seed the status-line counter
|
|
29
31
|
* and the set of already-queued `event_id`s. Cutoff-first + id-dedupe
|
|
@@ -46,10 +48,11 @@ import { Buffer } from 'node:buffer';
|
|
|
46
48
|
import { randomUUID } from 'node:crypto';
|
|
47
49
|
import { StringDecoder } from 'node:string_decoder';
|
|
48
50
|
import WebSocket from 'ws';
|
|
49
|
-
import { captureAndRenderSnapshot, createBackpressureAwareWriter, DETACH_CLEANUP_DEADLINE_MS, pickInitialTerminalRows, prepareAttachTarget, resetLocalTerminalOnDetach, restoreInboundDeliveryModeOnDetach, StatusLineController, StreamSyncBuffer, switchInboundDeliveryModeOrAbort, syncInitialPtySize, } from '../lib/attach.js';
|
|
51
|
+
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';
|
|
50
52
|
import { defaultStateDir, readConnectionFileFromDisk, toWsUrl, } from '../lib/broker-connection.js';
|
|
51
53
|
import { defaultExit, runSignalHandler } from '../lib/exit.js';
|
|
52
54
|
import { createBrokerClient, mapBrokerSdkFailure, } from '../lib/attach-broker.js';
|
|
55
|
+
import { describeError } from './describe-error.js';
|
|
53
56
|
import { createPredictiveEcho } from './predictive-echo-screen.js';
|
|
54
57
|
function withDefaults(overrides = {}) {
|
|
55
58
|
const fetchFn = overrides.fetch ?? ((input, init) => fetch(input, init));
|
|
@@ -189,8 +192,8 @@ export function openPtyInputStream(connection, name, fetchFn, options) {
|
|
|
189
192
|
*/
|
|
190
193
|
export async function resizeWorker(connection, name, rows, cols, fetchFn, options) {
|
|
191
194
|
try {
|
|
192
|
-
await createBrokerClient(connection, fetchFn).resizePty(name, rows, cols, options);
|
|
193
|
-
return { ok: true };
|
|
195
|
+
const result = await createBrokerClient(connection, fetchFn).resizePty(name, rows, cols, options);
|
|
196
|
+
return { ok: true, applied: result.applied !== false };
|
|
194
197
|
}
|
|
195
198
|
catch (err) {
|
|
196
199
|
const failure = mapBrokerSdkFailure(err);
|
|
@@ -201,12 +204,20 @@ export async function resizeWorker(connection, name, rows, cols, fetchFn, option
|
|
|
201
204
|
* Release this session's PTY resize ownership on detach (single-resizer
|
|
202
205
|
* policy, #1247), so the next client that attaches can resize the shared PTY.
|
|
203
206
|
* Best-effort: the broker also supersedes a crashed owner after an idle window.
|
|
207
|
+
*
|
|
208
|
+
* `restoreSize` gives back the row and column a writable attach reserved for
|
|
209
|
+
* Relay's status line (see `reserveStatusLineRow`). Without it the worker stays
|
|
210
|
+
* at `rows - 1`/`cols - 1` after the status line disappears, and since a
|
|
211
|
+
* read-only `view` session never resizes the PTY, the agent's TUI would remain
|
|
212
|
+
* one row and column short until the next writable attach. The broker applies
|
|
213
|
+
* the size before dropping ownership, so this stays one round-trip and cannot
|
|
214
|
+
* lose the ordering race a separate resize call would introduce.
|
|
204
215
|
*/
|
|
205
|
-
export async function releaseResizeOwnership(connection, name, sessionId, fetchFn) {
|
|
216
|
+
export async function releaseResizeOwnership(connection, name, sessionId, fetchFn, restoreSize) {
|
|
206
217
|
try {
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
await createBrokerClient(connection, fetchFn).resizePty(name,
|
|
218
|
+
// Omitting the dimensions is a pure release — the broker skips the resize,
|
|
219
|
+
// so a session with no local TTY invents no placeholder size.
|
|
220
|
+
await createBrokerClient(connection, fetchFn).resizePty(name, restoreSize?.rows, restoreSize?.cols, {
|
|
210
221
|
sessionId,
|
|
211
222
|
release: true,
|
|
212
223
|
});
|
|
@@ -247,6 +258,15 @@ export function classifyWsEvent(rawMessage, name) {
|
|
|
247
258
|
return { kind: 'worker_stream', chunk, offset };
|
|
248
259
|
}
|
|
249
260
|
if (parsed.kind === 'delivery_queued') {
|
|
261
|
+
// Two different layers emit `delivery_queued`. Only the inbound hold means
|
|
262
|
+
// "parked in the per-worker pending queue" — the count this status line
|
|
263
|
+
// shows and the one `/api/spawned/{name}/pending` seeds. The harness
|
|
264
|
+
// runtimes emit the same kind for every delivery they enqueue for
|
|
265
|
+
// injection, which is ordinary traffic on its way to the agent; counting
|
|
266
|
+
// those would make `pending` climb on every message the agent receives and
|
|
267
|
+
// never come back down (nothing drains a queue the message was never in).
|
|
268
|
+
if (parsed.reason !== 'inbound_delivery_manual_flush')
|
|
269
|
+
return { kind: 'other' };
|
|
250
270
|
// `event_id` correlates a replayed frame with the pending seed so the
|
|
251
271
|
// counter isn't double-incremented for a delivery already reflected in
|
|
252
272
|
// the seed (see the seed-dedup note in `runDriveSession`). Absent on
|
|
@@ -307,15 +327,22 @@ export class KeybindParser {
|
|
|
307
327
|
*/
|
|
308
328
|
export function renderStatusLine(opts) {
|
|
309
329
|
const row = Math.max(opts.rows ?? 24, 1);
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
//
|
|
313
|
-
//
|
|
330
|
+
const scrollTop = Math.max(1, opts.scrollTop ?? 1);
|
|
331
|
+
const scrollBottom = Math.max(scrollTop + 1, opts.scrollBottom ?? row - 1);
|
|
332
|
+
// The Ctrl+] hint names the action the NEXT press performs: in auto_inject
|
|
333
|
+
// (the session default) it holds; in manual_flush it delivers, draining the
|
|
334
|
+
// parked queue and going live again. Without the hint, a parked message is
|
|
335
|
+
// invisible beyond the pending counter and a held agent looks like it never
|
|
336
|
+
// receives replies.
|
|
314
337
|
const toggleHint = opts.mode === 'manual_flush' ? 'Ctrl+] deliver' : 'Ctrl+] hold';
|
|
315
|
-
const text = `[drive ${opts.name} | delivery=${opts.mode} | pending=${opts.pending} | ${toggleHint} | Ctrl+C detach]
|
|
338
|
+
const text = clampStatusLineText(`[drive ${opts.name} | delivery=${opts.mode} | pending=${opts.pending} | ${toggleHint} | Ctrl+C detach]`, opts.cols, true);
|
|
316
339
|
// ESC 7 = save cursor; ESC[<row>;1H = move to bottom row; ESC[2K = clear line;
|
|
317
340
|
// ESC[7m = reverse video; ESC[0m = reset; ESC 8 = restore cursor.
|
|
318
|
-
|
|
341
|
+
// Temporarily restore the full physical scroll region so CUP can reach the
|
|
342
|
+
// reserved row even if autowrap left the cursor below the child margin.
|
|
343
|
+
// Reinstall the child margin before restoring its cursor.
|
|
344
|
+
const restoreOrigin = opts.originMode ? '\x1b[?6h' : '';
|
|
345
|
+
return `\x1b7\x1b[?6l\x1b[r\x1b[${row};1H\x1b[2K\x1b[7m${text}\x1b[0m\x1b[${scrollTop};${scrollBottom}r${restoreOrigin}\x1b8`;
|
|
319
346
|
}
|
|
320
347
|
/**
|
|
321
348
|
* Run the interactive session. Subscribe-first: opens the event WS, buffers
|
|
@@ -355,12 +382,13 @@ function runDriveSessionLoop(state, deps) {
|
|
|
355
382
|
let reassertTimer = null;
|
|
356
383
|
let pending = state.initialPending;
|
|
357
384
|
// This session's last-known inbound delivery mode and its broker revision.
|
|
358
|
-
// The attach
|
|
385
|
+
// The attach asserted `auto_inject`; `Ctrl+]` toggles it mid-session, and
|
|
359
386
|
// the detach restore compare-and-sets against whatever this session last
|
|
360
387
|
// wrote so an out-of-band change is never clobbered.
|
|
361
|
-
let currentMode = '
|
|
388
|
+
let currentMode = 'auto_inject';
|
|
362
389
|
let currentRevision = state.sessionRevision;
|
|
363
390
|
let terminalRows = pickInitialTerminalRows(state.initialLocalSize, undefined);
|
|
391
|
+
let terminalCols = pickInitialTerminalCols(state.initialLocalSize, undefined);
|
|
364
392
|
const parser = new KeybindParser();
|
|
365
393
|
// Stateful UTF-8 decoder for forwarded stdin. Decoding each raw stdin chunk
|
|
366
394
|
// independently would turn a multi-byte character split across `data`
|
|
@@ -371,19 +399,26 @@ function runDriveSessionLoop(state, deps) {
|
|
|
371
399
|
const inputDecoder = new StringDecoder('utf8');
|
|
372
400
|
let inputStream = null;
|
|
373
401
|
const cleanupSignals = [];
|
|
402
|
+
const isTtyOutput = state.initialLocalSize !== null;
|
|
374
403
|
// Skip the status line entirely when stdout is not a TTY (e.g. piped to
|
|
375
404
|
// `tee`) — a fabricated row-24 repaint would corrupt the captured log.
|
|
376
|
-
|
|
405
|
+
let statusLineEnabled = canReserveStatusLine(state.initialLocalSize);
|
|
377
406
|
// Subscribe-first: buffer live `worker_stream` chunks until the snapshot
|
|
378
407
|
// is painted and reconciled against its per-worker offset.
|
|
379
408
|
const sync = new StreamSyncBuffer();
|
|
380
409
|
// Adaptive predictive echo masks round-trip latency on remote brokers.
|
|
381
410
|
// Seeded with the snapshot (once painted) so its confirmed model matches
|
|
382
411
|
// the screen.
|
|
412
|
+
let initialAgentSize = reserveStatusLineRow(state.initialLocalSize);
|
|
413
|
+
const scrollRegion = new TerminalScrollRegionTracker(initialAgentSize?.rows ?? 1);
|
|
414
|
+
let observeRenderedOutput = (_chunk) => { };
|
|
383
415
|
const predictiveEcho = deps.createPredictiveEcho?.({
|
|
384
|
-
cols:
|
|
385
|
-
rows:
|
|
386
|
-
write:
|
|
416
|
+
cols: initialAgentSize?.cols ?? 0,
|
|
417
|
+
rows: initialAgentSize?.rows ?? 0,
|
|
418
|
+
write: (chunk) => {
|
|
419
|
+
deps.writeChunk(chunk);
|
|
420
|
+
observeRenderedOutput(chunk);
|
|
421
|
+
},
|
|
387
422
|
getInputSrtt: () => inputStream?.srttMs ?? null,
|
|
388
423
|
}) ?? null;
|
|
389
424
|
// Tee the snapshot's painted bytes so we can seed the predictive-echo
|
|
@@ -399,29 +434,81 @@ function runDriveSessionLoop(state, deps) {
|
|
|
399
434
|
deps.writeChunk(chunk);
|
|
400
435
|
snapshotBytes += chunk;
|
|
401
436
|
};
|
|
437
|
+
const correctSetupResize = async (baseline) => {
|
|
438
|
+
const latest = reserveStatusLineRow(deps.terminal.getSize());
|
|
439
|
+
if (!latest || (latest.rows === baseline?.rows && latest.cols === baseline?.cols))
|
|
440
|
+
return;
|
|
441
|
+
const correction = resizeWorker(connection, name, latest.rows, latest.cols, deps.fetch, {
|
|
442
|
+
sessionId: resizeSessionId,
|
|
443
|
+
});
|
|
444
|
+
trackResize(correction);
|
|
445
|
+
const result = await correction;
|
|
446
|
+
if (!result.ok) {
|
|
447
|
+
deps.log(`[drive] setup resize correction failed: ${result.message ?? 'unknown error'}`);
|
|
448
|
+
}
|
|
449
|
+
};
|
|
450
|
+
const beginSubscribedLayout = () => {
|
|
451
|
+
// Install this before the first resize/snapshot await so a local resize
|
|
452
|
+
// during setup cannot be lost.
|
|
453
|
+
unsubscribeResize ??= deps.terminal.onResize(resizeHandler);
|
|
454
|
+
const currentSize = deps.terminal.getSize();
|
|
455
|
+
terminalRows = pickInitialTerminalRows(currentSize, undefined);
|
|
456
|
+
terminalCols = currentSize?.cols;
|
|
457
|
+
statusLineEnabled = canReserveStatusLine(currentSize);
|
|
458
|
+
initialAgentSize = reserveStatusLineRow(currentSize);
|
|
459
|
+
if (initialAgentSize) {
|
|
460
|
+
scrollRegion.setRows(initialAgentSize.rows);
|
|
461
|
+
predictiveEcho?.onResize(initialAgentSize.cols, initialAgentSize.rows);
|
|
462
|
+
}
|
|
463
|
+
if (statusLineEnabled && initialAgentSize) {
|
|
464
|
+
deps.writeChunk(renderChildScrollRegion(initialAgentSize.rows));
|
|
465
|
+
}
|
|
466
|
+
};
|
|
402
467
|
// Boundary-held + coalesced status painter. Holds repaints while the agent
|
|
403
468
|
// is mid escape-sequence (no splicing into a half-sent CSI), rate-limits
|
|
404
469
|
// per-chunk repaints, and skips painting entirely on a non-TTY stdout.
|
|
405
470
|
const statusController = new StatusLineController({
|
|
406
|
-
render: () =>
|
|
471
|
+
render: () => {
|
|
472
|
+
const region = scrollRegion.region;
|
|
473
|
+
return renderStatusLine({
|
|
474
|
+
name,
|
|
475
|
+
mode: currentMode,
|
|
476
|
+
pending,
|
|
477
|
+
rows: terminalRows,
|
|
478
|
+
cols: terminalCols,
|
|
479
|
+
scrollTop: region.top,
|
|
480
|
+
scrollBottom: region.bottom,
|
|
481
|
+
originMode: scrollRegion.isOriginMode,
|
|
482
|
+
});
|
|
483
|
+
},
|
|
407
484
|
write: deps.writeChunk,
|
|
408
|
-
enabled: statusLineEnabled,
|
|
485
|
+
enabled: () => statusLineEnabled,
|
|
409
486
|
coalesceMs: deps.statusRepaintCoalesceMs ?? 40,
|
|
410
487
|
});
|
|
411
488
|
const paintStatus = () => {
|
|
412
489
|
statusController.request();
|
|
413
490
|
};
|
|
491
|
+
observeRenderedOutput = (chunk) => {
|
|
492
|
+
scrollRegion.push(chunk);
|
|
493
|
+
statusController.observeOutput(chunk);
|
|
494
|
+
};
|
|
414
495
|
// Route server output through the predictive-echo engine (which owns
|
|
415
|
-
// cursor save/restore) or straight to stdout
|
|
416
|
-
//
|
|
417
|
-
//
|
|
496
|
+
// cursor save/restore) or straight to stdout. Feed every chunk to the
|
|
497
|
+
// status controller for boundary tracking. Repaint after each completed
|
|
498
|
+
// chunk because terminal autowrap can briefly cross a DECSTBM bottom
|
|
499
|
+
// margin. The clipped label cannot autowrap itself, and the child PTY's
|
|
500
|
+
// reserved row prevents cursor-addressed TUI frames from fighting it.
|
|
418
501
|
const applyServerOutput = (chunk) => {
|
|
419
|
-
statusController.observeOutput(chunk);
|
|
420
502
|
if (predictiveEcho) {
|
|
421
|
-
void predictiveEcho.onServerOutput(chunk).then(
|
|
503
|
+
void predictiveEcho.onServerOutput(chunk).then(() => {
|
|
504
|
+
paintStatus();
|
|
505
|
+
}, () => {
|
|
506
|
+
paintStatus();
|
|
507
|
+
});
|
|
422
508
|
}
|
|
423
509
|
else {
|
|
424
510
|
deps.writeChunk(chunk);
|
|
511
|
+
observeRenderedOutput(chunk);
|
|
425
512
|
paintStatus();
|
|
426
513
|
}
|
|
427
514
|
};
|
|
@@ -435,13 +522,22 @@ function runDriveSessionLoop(state, deps) {
|
|
|
435
522
|
if (!size)
|
|
436
523
|
return;
|
|
437
524
|
terminalRows = size.rows;
|
|
438
|
-
|
|
439
|
-
|
|
525
|
+
terminalCols = size.cols;
|
|
526
|
+
statusLineEnabled = canReserveStatusLine(size);
|
|
527
|
+
const agentSize = reserveStatusLineRow(size);
|
|
528
|
+
if (!agentSize)
|
|
529
|
+
return;
|
|
530
|
+
scrollRegion.setRows(agentSize.rows);
|
|
531
|
+
predictiveEcho?.onResize(agentSize.cols, agentSize.rows);
|
|
532
|
+
trackResize(resizeWorker(connection, name, agentSize.rows, agentSize.cols, deps.fetch, {
|
|
440
533
|
sessionId: resizeSessionId,
|
|
441
534
|
}).then((res) => {
|
|
442
535
|
if (!res.ok) {
|
|
443
536
|
deps.log(`[drive] resize forward failed: ${res.message ?? 'unknown error'}`);
|
|
444
537
|
}
|
|
538
|
+
else if (res.applied === false) {
|
|
539
|
+
deps.log('[drive] broker did not apply the reserved PTY size; using status repaint fallback');
|
|
540
|
+
}
|
|
445
541
|
}));
|
|
446
542
|
// Repaint regardless of fetch outcome — the local terminal has
|
|
447
543
|
// already moved, so the status line position needs to move with
|
|
@@ -449,11 +545,9 @@ function runDriveSessionLoop(state, deps) {
|
|
|
449
545
|
paintStatus();
|
|
450
546
|
};
|
|
451
547
|
// In-band delivery toggle (`Ctrl+]`). Flips the worker between
|
|
452
|
-
// `
|
|
453
|
-
//
|
|
454
|
-
//
|
|
455
|
-
// never receive a relay message — the reply to anything the human asks it
|
|
456
|
-
// to send just sits in the queue until detach.
|
|
548
|
+
// `auto_inject` (the session default — messages inject live while you
|
|
549
|
+
// watch) and `manual_flush` (messages park so nothing splices into what
|
|
550
|
+
// you are typing); flipping back drains the parked queue into the PTY.
|
|
457
551
|
//
|
|
458
552
|
// Guarded compare-and-set against this session's last-known revision: if
|
|
459
553
|
// another session or CLI changed the mode out-of-band, the broker no-ops
|
|
@@ -536,7 +630,7 @@ function runDriveSessionLoop(state, deps) {
|
|
|
536
630
|
void stream.send(decoded).catch((err) => {
|
|
537
631
|
if (settled)
|
|
538
632
|
return;
|
|
539
|
-
const message =
|
|
633
|
+
const message = describeError(err);
|
|
540
634
|
deps.log(`[drive] input stream send failed: ${message}`);
|
|
541
635
|
// The keystroke never reached the PTY — drop any optimistic echo
|
|
542
636
|
// for it so the screen doesn't show input the agent didn't get.
|
|
@@ -580,7 +674,7 @@ function runDriveSessionLoop(state, deps) {
|
|
|
580
674
|
// Heal the local terminal: the snapshot + live stream may have left it
|
|
581
675
|
// in app-cursor / mouse / bracketed-paste / alt-screen mode. Gate on a
|
|
582
676
|
// TTY stdout (same signal that gates the status line).
|
|
583
|
-
resetLocalTerminalOnDetach(deps.writeChunk,
|
|
677
|
+
resetLocalTerminalOnDetach(deps.writeChunk, isTtyOutput);
|
|
584
678
|
}
|
|
585
679
|
catch {
|
|
586
680
|
// best effort
|
|
@@ -652,7 +746,9 @@ function runDriveSessionLoop(state, deps) {
|
|
|
652
746
|
if (outstandingResizes.size > 0) {
|
|
653
747
|
await Promise.allSettled([...outstandingResizes]);
|
|
654
748
|
}
|
|
655
|
-
|
|
749
|
+
// Hand the reserved status row/column back in the same request, so
|
|
750
|
+
// the agent's TUI is not left one row and column short.
|
|
751
|
+
await releaseResizeOwnership(connection, name, resizeSessionId, deps.fetch, deps.terminal.getSize());
|
|
656
752
|
}
|
|
657
753
|
catch {
|
|
658
754
|
// Best-effort — the broker's idle-takeover net still frees ownership.
|
|
@@ -668,8 +764,8 @@ function runDriveSessionLoop(state, deps) {
|
|
|
668
764
|
// buffered chunk flushes to stdout after detach.
|
|
669
765
|
deps.disposeWriter?.();
|
|
670
766
|
// Best-effort restore: re-read the mode and only revert if it's still
|
|
671
|
-
// what this session set, so
|
|
672
|
-
//
|
|
767
|
+
// what this session set, so an explicit pre-attach `hold` is put back and
|
|
768
|
+
// a change another session made is never clobbered.
|
|
673
769
|
//
|
|
674
770
|
// Await the release alongside the restore before resolving: `resolve`
|
|
675
771
|
// typically ends the process, which aborts any still-pending fetch. The
|
|
@@ -732,7 +828,7 @@ function runDriveSessionLoop(state, deps) {
|
|
|
732
828
|
catch (err) {
|
|
733
829
|
if (settled)
|
|
734
830
|
return;
|
|
735
|
-
const message =
|
|
831
|
+
const message = describeError(err);
|
|
736
832
|
deps.error(`[drive] could not open PTY input stream: ${message}`);
|
|
737
833
|
finish(1);
|
|
738
834
|
}
|
|
@@ -745,7 +841,6 @@ function runDriveSessionLoop(state, deps) {
|
|
|
745
841
|
// Subscribe to local-terminal resize events at the same point
|
|
746
842
|
// we take over stdin so the lifecycles match — both go away in
|
|
747
843
|
// `teardownStdin` on any exit path.
|
|
748
|
-
unsubscribeResize = deps.terminal.onResize(resizeHandler);
|
|
749
844
|
// Start the periodic ownership re-assert so an idle-but-live session
|
|
750
845
|
// keeps the single-resizer lease past the broker's stale window. The
|
|
751
846
|
// broker no-ops a same-size re-assert (no SIGWINCH/repaint).
|
|
@@ -753,9 +848,10 @@ function runDriveSessionLoop(state, deps) {
|
|
|
753
848
|
if (reassertMs > 0) {
|
|
754
849
|
reassertTimer = setInterval(() => {
|
|
755
850
|
const size = deps.terminal.getSize() ?? state.initialLocalSize;
|
|
756
|
-
|
|
851
|
+
const agentSize = reserveStatusLineRow(size);
|
|
852
|
+
if (!agentSize)
|
|
757
853
|
return;
|
|
758
|
-
trackResize(resizeWorker(connection, name,
|
|
854
|
+
trackResize(resizeWorker(connection, name, agentSize.rows, agentSize.cols, deps.fetch, {
|
|
759
855
|
sessionId: resizeSessionId,
|
|
760
856
|
}).then((res) => {
|
|
761
857
|
if (!res.ok) {
|
|
@@ -770,19 +866,30 @@ function runDriveSessionLoop(state, deps) {
|
|
|
770
866
|
catch (err) {
|
|
771
867
|
if (settled)
|
|
772
868
|
return;
|
|
773
|
-
const message =
|
|
869
|
+
const message = describeError(err);
|
|
774
870
|
deps.error(`[drive] could not take terminal input: ${message}`);
|
|
775
871
|
finish(1);
|
|
776
872
|
}
|
|
777
873
|
};
|
|
778
|
-
// Runs once the event WS is subscribed
|
|
779
|
-
// the snapshot
|
|
780
|
-
// reporting in that replay, and
|
|
781
|
-
//
|
|
874
|
+
// Runs once the event WS is subscribed: first reserve the local bottom row
|
|
875
|
+
// and take over stdin before replaying the snapshot. A source TUI can
|
|
876
|
+
// enable mouse/focus/alternate-scroll reporting in that replay, and
|
|
877
|
+
// cooked-mode stdin would echo those reports as visible escape text.
|
|
878
|
+
// The WS is already buffering, so the resize repaint is reconciled against
|
|
879
|
+
// the snapshot without a dead zone.
|
|
782
880
|
const onSubscribed = async () => {
|
|
881
|
+
beginSubscribedLayout();
|
|
783
882
|
await openInputStreamAndSetRawMode();
|
|
784
883
|
if (settled)
|
|
785
884
|
return;
|
|
885
|
+
const initialResize = syncInitialPtySize(connection, name, initialAgentSize, 'drive', deps, {
|
|
886
|
+
sessionId: resizeSessionId,
|
|
887
|
+
});
|
|
888
|
+
trackResize(initialResize);
|
|
889
|
+
await initialResize;
|
|
890
|
+
if (settled)
|
|
891
|
+
return;
|
|
892
|
+
await correctSetupResize(initialAgentSize);
|
|
786
893
|
const snapshot = await deps.captureAndRenderSnapshot({ url: connection.url, apiKey: connection.apiKey }, name, { fetch: deps.fetch, writeChunk: captureWrite });
|
|
787
894
|
if (settled)
|
|
788
895
|
return;
|
|
@@ -807,7 +914,7 @@ function runDriveSessionLoop(state, deps) {
|
|
|
807
914
|
await predictiveEcho.seed(snapshotBytes);
|
|
808
915
|
}
|
|
809
916
|
catch (err) {
|
|
810
|
-
const message =
|
|
917
|
+
const message = describeError(err);
|
|
811
918
|
deps.log(`[drive] could not seed predictive echo: ${message}`);
|
|
812
919
|
finish(1);
|
|
813
920
|
return;
|
|
@@ -815,8 +922,11 @@ function runDriveSessionLoop(state, deps) {
|
|
|
815
922
|
if (settled)
|
|
816
923
|
return;
|
|
817
924
|
}
|
|
818
|
-
|
|
925
|
+
const currentLocalSize = deps.terminal.getSize();
|
|
926
|
+
terminalRows = pickInitialTerminalRows(currentLocalSize, snapshot.rows);
|
|
927
|
+
terminalCols = pickInitialTerminalCols(currentLocalSize, snapshot.cols);
|
|
819
928
|
// Track the snapshot bytes for boundary state before the first repaint.
|
|
929
|
+
scrollRegion.push(snapshotBytes);
|
|
820
930
|
statusController.observeOutput(snapshotBytes);
|
|
821
931
|
paintStatus();
|
|
822
932
|
// Reconcile buffered chunks. On `ok`, drop what the snapshot already
|
|
@@ -826,13 +936,6 @@ function runDriveSessionLoop(state, deps) {
|
|
|
826
936
|
const pendingChunks = snapshot.status === 'ok' ? sync.reconcile(snapshot.offset) : sync.flushAll();
|
|
827
937
|
for (const chunk of pendingChunks)
|
|
828
938
|
applyServerOutput(chunk);
|
|
829
|
-
const initialResize = syncInitialPtySize(connection, name, state.initialLocalSize, 'drive', deps, {
|
|
830
|
-
sessionId: resizeSessionId,
|
|
831
|
-
});
|
|
832
|
-
trackResize(initialResize);
|
|
833
|
-
await initialResize;
|
|
834
|
-
if (settled)
|
|
835
|
-
return;
|
|
836
939
|
// Input forwarding starts only after predictive echo has been seeded by
|
|
837
940
|
// the snapshot. Raw mode was already enabled above, so terminal reports
|
|
838
941
|
// could not echo during the setup window.
|
|
@@ -913,17 +1016,18 @@ export async function runDriveSession(agentName, options, deps) {
|
|
|
913
1016
|
if (!target)
|
|
914
1017
|
return 1;
|
|
915
1018
|
const { name, connection } = target;
|
|
916
|
-
const flipResult = await switchInboundDeliveryModeOrAbort(connection, name, '
|
|
1019
|
+
const flipResult = await switchInboundDeliveryModeOrAbort(connection, name, 'auto_inject', `switch '${name}' to auto_inject mode`, deps);
|
|
917
1020
|
if (!flipResult)
|
|
918
1021
|
return 1;
|
|
919
1022
|
const { previousMode, sessionRevision } = flipResult;
|
|
920
|
-
// The mode is now
|
|
1023
|
+
// The mode is now asserted to `auto_inject`, but the terminal is still cooked
|
|
921
1024
|
// and we have several awaited HTTP round-trips (pending, cutoff, snapshot,
|
|
922
1025
|
// input stream) before the session loop installs its signal handlers. Ctrl+C
|
|
923
1026
|
// in that window would otherwise kill the process with the worker stranded in
|
|
924
|
-
//
|
|
925
|
-
// restore-and-exit handlers immediately;
|
|
926
|
-
// handlers are ready (no double restore —
|
|
1027
|
+
// this session's mode, silently discarding an explicit `hold` the operator had
|
|
1028
|
+
// set before attaching. Register early restore-and-exit handlers immediately;
|
|
1029
|
+
// the loop disposes them once its own handlers are ready (no double restore —
|
|
1030
|
+
// see `disposeEarlySignals`).
|
|
927
1031
|
let earlyHandled = false;
|
|
928
1032
|
const earlyCleanups = [];
|
|
929
1033
|
const earlyRestore = async () => {
|
|
@@ -938,7 +1042,7 @@ export async function runDriveSession(agentName, options, deps) {
|
|
|
938
1042
|
// best effort
|
|
939
1043
|
}
|
|
940
1044
|
}
|
|
941
|
-
await restoreInboundDeliveryModeOnDetach(connection, name, previousMode, '
|
|
1045
|
+
await restoreInboundDeliveryModeOnDetach(connection, name, previousMode, 'auto_inject', sessionRevision, 'drive', deps);
|
|
942
1046
|
deps.exit(0);
|
|
943
1047
|
};
|
|
944
1048
|
const disposeEarlySignals = () => {
|
|
@@ -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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"}
|