@duetso/agent 0.1.124 → 0.1.127

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duetso/agent",
3
- "version": "0.1.124",
3
+ "version": "0.1.127",
4
4
  "description": "An opinionated full-stack agent turn runner with native memories, interrupts, and multi-agent orchestration",
5
5
  "keywords": [
6
6
  "agent",
@@ -126,22 +126,30 @@ declare function upgradePaths(): {
126
126
  */
127
127
  declare function cleanStaleStagingDirs(scriptPath: string): void;
128
128
  /**
129
- * Spawn options chosen so the install survives the parent CLI exiting:
130
- * - `detached: true` puts npm in its own process group so a terminal
131
- * Ctrl+C on the parent does not propagate and abort the install
132
- * mid-write (which would leave the global node_modules tree corrupt).
133
- * - The returned child is also `unref()`d (and so is its stderr pipe)
134
- * so a clean `/exit` returns the shell immediately and the install
135
- * continues independently. The parent still observes the child's exit
136
- * event for as long as it is alive, so the TUI can render the
137
- * "Updated… restart duet" line when the user stays.
129
+ * Base spawn options for the package manager upgrade. `detached: true` puts
130
+ * npm in its own process group so a terminal Ctrl+C on the parent does not
131
+ * propagate to the install. The full `stdio` array is composed at spawn
132
+ * time because the stderr slot is a per-invocation file descriptor — see
133
+ * `defaultRunUpgrade` for why a pipe would not be safe here.
138
134
  */
139
- export declare const PACKAGE_MANAGER_SPAWN_OPTIONS: SpawnOptions;
135
+ export declare const PACKAGE_MANAGER_SPAWN_OPTIONS: Pick<SpawnOptions, "detached">;
140
136
  export type SpawnFn = (command: string, args: string[], options: SpawnOptions) => ChildProcess;
141
137
  /**
142
138
  * Default in-process runner for the package manager upgrade command.
143
- * Exported so tests can verify the spawn contract (detached, unref'd) by
144
- * injecting a fake spawn.
139
+ *
140
+ * Survival contract (why this is not a `"pipe"`):
141
+ * The parent CLI is interactive and exits on Ctrl+C or `/exit`. If the
142
+ * child's stderr were a pipe owned by the parent, exiting closes the
143
+ * read end and npm's next stderr write trips SIGPIPE — killing the
144
+ * install mid-rename and leaving the global `@duetso` scope with a
145
+ * `.agent-<rand>` staging dir but no `agent` (so `duet` disappears from
146
+ * $PATH until the user reinstalls). Redirecting stderr to an inherited
147
+ * file fd has no reader to disconnect, so the install keeps writing
148
+ * after the parent is gone.
149
+ *
150
+ * We still want to report install errors in the `failed` status, so we
151
+ * record the file's size before spawning and, on a non-zero exit, read the
152
+ * tail written by this run.
145
153
  */
146
154
  export declare function defaultRunUpgrade(command: string[], spawn?: SpawnFn): Promise<{
147
155
  ok: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"auto-upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/auto-upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/auto-upgrade.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { spawn as nodeSpawn } from "node:child_process";
2
- import { appendFileSync, closeSync, mkdirSync, openSync, readdirSync, readFileSync, rmSync, unlinkSync, writeSync, } from "node:fs";
2
+ import { appendFileSync, closeSync, mkdirSync, openSync, readdirSync, readFileSync, readSync, rmSync, statSync, unlinkSync, writeSync, } from "node:fs";
3
3
  import { homedir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { detectPackageManagerFromContext, globalUpgradeCommand, } from "./package-manager.js";
@@ -312,46 +312,120 @@ function describeError(error) {
312
312
  return String(error);
313
313
  }
314
314
  /**
315
- * Spawn options chosen so the install survives the parent CLI exiting:
316
- * - `detached: true` puts npm in its own process group so a terminal
317
- * Ctrl+C on the parent does not propagate and abort the install
318
- * mid-write (which would leave the global node_modules tree corrupt).
319
- * - The returned child is also `unref()`d (and so is its stderr pipe)
320
- * so a clean `/exit` returns the shell immediately and the install
321
- * continues independently. The parent still observes the child's exit
322
- * event for as long as it is alive, so the TUI can render the
323
- * "Updated… restart duet" line when the user stays.
315
+ * Base spawn options for the package manager upgrade. `detached: true` puts
316
+ * npm in its own process group so a terminal Ctrl+C on the parent does not
317
+ * propagate to the install. The full `stdio` array is composed at spawn
318
+ * time because the stderr slot is a per-invocation file descriptor — see
319
+ * `defaultRunUpgrade` for why a pipe would not be safe here.
324
320
  */
325
321
  export const PACKAGE_MANAGER_SPAWN_OPTIONS = {
326
- stdio: ["ignore", "ignore", "pipe"],
327
322
  detached: true,
328
323
  };
324
+ /**
325
+ * Path to the file we redirect the package manager's stderr into. The path
326
+ * is stable so the next `duet` launch can surface a previous install
327
+ * failure even though the writer was the prior process's detached child.
328
+ */
329
+ function upgradeStderrPath() {
330
+ return join(upgradePaths().duetDir, "logs", "upgrade-stderr.log");
331
+ }
329
332
  /**
330
333
  * Default in-process runner for the package manager upgrade command.
331
- * Exported so tests can verify the spawn contract (detached, unref'd) by
332
- * injecting a fake spawn.
334
+ *
335
+ * Survival contract (why this is not a `"pipe"`):
336
+ * The parent CLI is interactive and exits on Ctrl+C or `/exit`. If the
337
+ * child's stderr were a pipe owned by the parent, exiting closes the
338
+ * read end and npm's next stderr write trips SIGPIPE — killing the
339
+ * install mid-rename and leaving the global `@duetso` scope with a
340
+ * `.agent-<rand>` staging dir but no `agent` (so `duet` disappears from
341
+ * $PATH until the user reinstalls). Redirecting stderr to an inherited
342
+ * file fd has no reader to disconnect, so the install keeps writing
343
+ * after the parent is gone.
344
+ *
345
+ * We still want to report install errors in the `failed` status, so we
346
+ * record the file's size before spawning and, on a non-zero exit, read the
347
+ * tail written by this run.
333
348
  */
334
349
  export function defaultRunUpgrade(command, spawn = nodeSpawn) {
335
350
  return new Promise((resolve) => {
336
- const child = spawn(command[0], command.slice(1), PACKAGE_MANAGER_SPAWN_OPTIONS);
337
- child.unref();
338
- // The stderr pipe is a separate libuv handle that also pins the event
339
- // loop alive; unref it so /exit returns even while the install is still
340
- // streaming output. Node exposes `unref` on the underlying socket; cast
341
- // because @types/node does not surface it on the Readable interface.
342
- child.stderr?.unref?.();
343
- let stderr = "";
344
- child.stderr?.on("data", (chunk) => {
345
- stderr += chunk.toString();
351
+ const stderrPath = upgradeStderrPath();
352
+ ensureDir(join(stderrPath, ".."));
353
+ let stderrFd;
354
+ let stderrStartByte = 0;
355
+ try {
356
+ stderrStartByte = statSync(stderrPath).size;
357
+ }
358
+ catch {
359
+ // File does not exist yet; offset stays 0.
360
+ }
361
+ try {
362
+ stderrFd = openSync(stderrPath, "a");
363
+ }
364
+ catch (error) {
365
+ // If we cannot open the log file, fall back to discarding stderr so
366
+ // the install still survives the parent exit. The failure message
367
+ // will be generic but the upgrade itself completes.
368
+ appendLog(`stderr-open-error path=${stderrPath} error=${describeError(error)}`);
369
+ }
370
+ const child = spawn(command[0], command.slice(1), {
371
+ ...PACKAGE_MANAGER_SPAWN_OPTIONS,
372
+ stdio: ["ignore", "ignore", stderrFd ?? "ignore"],
346
373
  });
374
+ // We passed our fd to the child; close the parent's copy so it does not
375
+ // pin the file open for the lifetime of this process.
376
+ if (stderrFd !== undefined) {
377
+ try {
378
+ closeSync(stderrFd);
379
+ }
380
+ catch {
381
+ // ignore
382
+ }
383
+ }
384
+ child.unref();
347
385
  child.once("error", (error) => {
348
386
  resolve({ ok: false, stderr: describeError(error) });
349
387
  });
350
388
  child.once("exit", (code) => {
351
- resolve({ ok: code === 0, stderr: stderr.trim() || undefined });
389
+ if (code === 0) {
390
+ resolve({ ok: true });
391
+ return;
392
+ }
393
+ resolve({ ok: false, stderr: readStderrTail(stderrPath, stderrStartByte) });
352
394
  });
353
395
  });
354
396
  }
397
+ /**
398
+ * Read what this run appended to the shared stderr log. Capped so a long
399
+ * npm trace does not bloat the failed-status line.
400
+ */
401
+ function readStderrTail(path, startByte) {
402
+ const MAX_BYTES = 4096;
403
+ try {
404
+ const fd = openSync(path, "r");
405
+ try {
406
+ const size = statSync(path).size;
407
+ const from = Math.max(startByte, size - MAX_BYTES);
408
+ const length = Math.max(0, size - from);
409
+ if (length === 0)
410
+ return undefined;
411
+ const buf = Buffer.alloc(length);
412
+ readSync(fd, buf, 0, length, from);
413
+ const trimmed = buf.toString("utf8").trim();
414
+ return trimmed.length > 0 ? trimmed : undefined;
415
+ }
416
+ finally {
417
+ try {
418
+ closeSync(fd);
419
+ }
420
+ catch {
421
+ // ignore
422
+ }
423
+ }
424
+ }
425
+ catch {
426
+ return undefined;
427
+ }
428
+ }
355
429
  // Test-only access to internal paths and constants.
356
430
  export const __testing = {
357
431
  upgradePaths,
@@ -1 +1 @@
1
- {"version":3,"file":"auto-upgrade.js","sourceRoot":"","sources":["../../../src/cli/auto-upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-upgrade.js","sourceRoot":"","sources":["../../../src/cli/auto-upgrade.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TurnEditFollowUpQueueCommand, TurnInterruptCommand, TurnRunnerCommand, TurnTerminalEvent } from "../types/protocol.js";
1
+ import type { TurnEditFollowUpQueueCommand, TurnInterruptCommand, TurnRunnerCommand, TurnSystemEvent, TurnTerminalEvent } from "../types/protocol.js";
2
2
  import type { PackageMetadata } from "./run.js";
3
3
  /**
4
4
  * Minimal contract the RPC loop expects from a turn runner. The full
@@ -22,10 +22,16 @@ export interface RpcRunner {
22
22
  * writes newline-delimited {@link import("../types/protocol.js").TurnEvent}
23
23
  * values to stdout. The first command must be `start`; the runner emits
24
24
  * `turn_started` and then waits for a turn-driving command (`prompt`,
25
- * `answer`, or `wake`). The process exits as soon as the runner emits the
26
- * terminal event for that single turn, so callers that want to drive more
27
- * turns reuse the returned `state` by launching a fresh `--rpc` process
28
- * with `start.state` set.
25
+ * `answer`, or `wake`). Additional turn-driving commands sent before the
26
+ * terminal event are forwarded into the runner, which queues them onto the
27
+ * same chain and still emits exactly one terminal. The process exits as
28
+ * soon as that terminal lands.
29
+ *
30
+ * Soft protocol errors — malformed JSON lines, commands sent before
31
+ * `start`, a second `start`, unknown command types — are surfaced as
32
+ * `TurnSystemEvent`s on stdout and the loop keeps reading. The process
33
+ * only ends on a terminal event or when stdin closes, so the host can
34
+ * recover from a bad line without losing an in-flight turn.
29
35
  *
30
36
  * Unlike the TUI path, RPC mode bypasses {@link SessionManager} entirely:
31
37
  * no session ids, no `state.json`, no resume hints. Persistence policy lives
@@ -57,26 +63,51 @@ export interface ParsedRpcArgs {
57
63
  * bypasses SessionManager.
58
64
  */
59
65
  export declare function parseRpcArgs(args: string[]): ParsedRpcArgs;
66
+ export interface DriveRpcLoopOptions {
67
+ /**
68
+ * Sink for {@link TurnSystemEvent}s the loop emits when a command is
69
+ * unusable (premature command before start, second start, unknown
70
+ * command type). Defaults to a no-op so unit tests that do not care
71
+ * about soft errors stay terse. The CLI wires this to stdout so hosts
72
+ * see the same event stream they get from the runner.
73
+ */
74
+ emit?: (event: TurnSystemEvent) => void;
75
+ }
60
76
  /**
61
- * One-turn RPC lifecycle:
77
+ * RPC dispatch loop. Drives one turn chain to completion and returns once
78
+ * the chain's single terminal event has been emitted (or stdin closes).
62
79
  *
63
- * 1. Wait for a `start` command, hand it to the runner.
64
- * 2. Pump remaining stdin commands concurrently with `runner.turn`. The
65
- * turn-driving command (`prompt`, `answer`, `wake`) launches the turn;
66
- * subsequent `interrupt` / `edit_follow_up_queue` commands flow into the
67
- * runner while the turn is still in flight so callers can cancel or
68
- * edit the follow-up queue without racing the stream.
69
- * 3. Resolve once the turn settles. Remaining stdin is drained but ignored;
70
- * the lifecycle is one turn per process.
80
+ * Soft protocol errors are emitted as `TurnSystemEvent`s via `options.emit`
81
+ * and the loop keeps reading; the chain still ends on its terminal, so
82
+ * `duet --rpc` remains the one place that decides when the process is safe
83
+ * to tear down.
71
84
  *
72
- * Stdin closing before a turn-driving command arrives is a clean early exit:
73
- * the runner has nothing to do and the loop returns.
85
+ * Out-of-band commands (`interrupt`, `edit_follow_up_queue`) and additional
86
+ * turn-driving commands (`prompt`, `answer`, `wake`) are all forwarded to
87
+ * the runner whether or not a chain is already in flight — the runner is
88
+ * the source of truth for how repeated `turn()` calls compose.
89
+ */
90
+ export declare function driveRpcLoop(runner: RpcRunner, commands: AsyncIterable<TurnRunnerCommand>, options?: DriveRpcLoopOptions): Promise<void>;
91
+ /**
92
+ * Discriminated outcome of parsing one stdin line. The dispatch loop
93
+ * forwards `error` results to its emit sink and skips `skip` results so a
94
+ * single bad line never propagates a thrown exception across the loop
95
+ * boundary or terminates the process.
74
96
  */
75
- export declare function driveRpcLoop(runner: RpcRunner, commands: AsyncIterable<TurnRunnerCommand>): Promise<void>;
97
+ export type ParseRpcCommandLineResult = {
98
+ kind: "command";
99
+ command: TurnRunnerCommand;
100
+ } | {
101
+ kind: "error";
102
+ message: string;
103
+ } | {
104
+ kind: "skip";
105
+ };
76
106
  /**
77
- * Parse one stdin line into a {@link TurnRunnerCommand}. Returns `undefined`
78
- * for blank lines so callers can skip them without a separate check. Exposed
79
- * so tests can feed the dispatch loop without going through stdin.
107
+ * Parse one stdin line. Blank/whitespace-only lines return `{ kind: "skip" }`
108
+ * so the iterator can drop them silently; malformed JSON or commands without
109
+ * a string `type` field return `{ kind: "error" }` so the caller can surface
110
+ * a `TurnSystemEvent` to the host and keep reading.
80
111
  */
81
- export declare function parseRpcCommandLine(rawLine: string): TurnRunnerCommand | undefined;
112
+ export declare function parseRpcCommandLine(rawLine: string): ParseRpcCommandLineResult;
82
113
  //# sourceMappingURL=rpc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/cli/rpc.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,IAAI,CACF,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;KAAE,CAAC,GAC1E,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC/C,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CAAC;CAChE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDvF;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAgG1D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAoBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAiBlF"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/cli/rpc.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,4BAA4B,EAE5B,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,IAAI,CACF,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;KAAE,CAAC,GAC1E,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC/C,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CAAC;CAChE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDvF;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAgG1D;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAC1C,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAgFf;AA0BD;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,CAuB9E"}