@relayflows/sdk 2.0.21 → 2.0.22

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 (97) hide show
  1. package/dist/agent-transcript.d.ts +186 -0
  2. package/dist/agent-transcript.d.ts.map +1 -0
  3. package/dist/agent-transcript.js +585 -0
  4. package/dist/agent-transcript.js.map +1 -0
  5. package/dist/cli/run.js +2 -1
  6. package/dist/cli/run.js.map +1 -1
  7. package/dist/cli/status.d.ts +34 -0
  8. package/dist/cli/status.d.ts.map +1 -0
  9. package/dist/cli/status.js +307 -0
  10. package/dist/cli/status.js.map +1 -0
  11. package/dist/cli/step-failure.js +31 -7
  12. package/dist/cli/step-failure.js.map +1 -1
  13. package/dist/cli-commands.d.ts +13 -0
  14. package/dist/cli-commands.d.ts.map +1 -1
  15. package/dist/cli-commands.js +11 -0
  16. package/dist/cli-commands.js.map +1 -1
  17. package/dist/cli.d.ts +2 -1
  18. package/dist/cli.d.ts.map +1 -1
  19. package/dist/cli.js +9 -0
  20. package/dist/cli.js.map +1 -1
  21. package/dist/failure-kinds.d.ts +15 -2
  22. package/dist/failure-kinds.d.ts.map +1 -1
  23. package/dist/failure-kinds.js +8 -0
  24. package/dist/failure-kinds.js.map +1 -1
  25. package/dist/journal-reader.d.ts +1 -1
  26. package/dist/journal-reader.d.ts.map +1 -1
  27. package/dist/journal-reader.js +3 -1
  28. package/dist/journal-reader.js.map +1 -1
  29. package/dist/llm-worker.d.ts.map +1 -1
  30. package/dist/llm-worker.js +12 -1
  31. package/dist/llm-worker.js.map +1 -1
  32. package/dist/permissions-preflight.d.ts +22 -0
  33. package/dist/permissions-preflight.d.ts.map +1 -0
  34. package/dist/permissions-preflight.js +49 -0
  35. package/dist/permissions-preflight.js.map +1 -0
  36. package/dist/preflight.d.ts.map +1 -1
  37. package/dist/preflight.js +6 -0
  38. package/dist/preflight.js.map +1 -1
  39. package/dist/pty-sidechannel.d.ts +7 -0
  40. package/dist/pty-sidechannel.d.ts.map +1 -1
  41. package/dist/pty-sidechannel.js.map +1 -1
  42. package/dist/redact.d.ts +16 -0
  43. package/dist/redact.d.ts.map +1 -0
  44. package/dist/redact.js +104 -0
  45. package/dist/redact.js.map +1 -0
  46. package/dist/run-state.d.ts +124 -0
  47. package/dist/run-state.d.ts.map +1 -0
  48. package/dist/run-state.js +368 -0
  49. package/dist/run-state.js.map +1 -0
  50. package/dist/spec.d.ts +16 -1
  51. package/dist/spec.d.ts.map +1 -1
  52. package/dist/spec.js.map +1 -1
  53. package/dist/step-env.d.ts +25 -0
  54. package/dist/step-env.d.ts.map +1 -0
  55. package/dist/step-env.js +34 -0
  56. package/dist/step-env.js.map +1 -0
  57. package/dist/transcript-tail.d.ts +54 -0
  58. package/dist/transcript-tail.d.ts.map +1 -0
  59. package/dist/transcript-tail.js +176 -0
  60. package/dist/transcript-tail.js.map +1 -0
  61. package/dist/worker-cli.d.ts +10 -0
  62. package/dist/worker-cli.d.ts.map +1 -1
  63. package/dist/worker-cli.js +158 -16
  64. package/dist/worker-cli.js.map +1 -1
  65. package/dist/worker-usage.d.ts +7 -2
  66. package/dist/worker-usage.d.ts.map +1 -1
  67. package/dist/worker-usage.js +21 -3
  68. package/dist/worker-usage.js.map +1 -1
  69. package/dist/worker.d.ts.map +1 -1
  70. package/dist/worker.js +31 -6
  71. package/dist/worker.js.map +1 -1
  72. package/dist/wrapper-runtime.d.ts +7 -1
  73. package/dist/wrapper-runtime.d.ts.map +1 -1
  74. package/dist/wrapper-runtime.js +7 -1
  75. package/dist/wrapper-runtime.js.map +1 -1
  76. package/package.json +2 -2
  77. package/src/agent-transcript.ts +651 -0
  78. package/src/cli/run.ts +2 -1
  79. package/src/cli/status.ts +329 -0
  80. package/src/cli/step-failure.ts +32 -7
  81. package/src/cli-commands.ts +11 -0
  82. package/src/cli.ts +8 -0
  83. package/src/failure-kinds.ts +15 -1
  84. package/src/journal-reader.ts +4 -2
  85. package/src/llm-worker.ts +12 -1
  86. package/src/permissions-preflight.ts +53 -0
  87. package/src/preflight.ts +6 -0
  88. package/src/pty-sidechannel.ts +7 -0
  89. package/src/redact.ts +106 -0
  90. package/src/run-state.ts +468 -0
  91. package/src/spec.ts +16 -1
  92. package/src/step-env.ts +47 -0
  93. package/src/transcript-tail.ts +193 -0
  94. package/src/worker-cli.ts +157 -17
  95. package/src/worker-usage.ts +26 -3
  96. package/src/worker.ts +32 -6
  97. package/src/wrapper-runtime.ts +7 -1
@@ -0,0 +1,176 @@
1
+ // Bounded transcript tails: the last 64 KiB of an agent attempt's stdout and
2
+ // stderr, on disk beside its `pty.sock`.
3
+ //
4
+ // Nothing else holds the transcript. The worker buffers it in memory and
5
+ // publishes it live to the sidechannel; a failed agent attempt's output is
6
+ // nulled in the journal (machine.rs), leaving at most 2,000 chars of gate
7
+ // `detail`. So "why did my last attempt end" was unanswerable from disk.
8
+ //
9
+ // These files are evidence, not the record: best-effort, bounded, rewritten
10
+ // in place, never a reason for a step to fail. The journal remains truth.
11
+ // The file is raw; `flows status` redacts on read, which is the same trust
12
+ // boundary as `pty.sock` today (same OS user, mode 0600).
13
+ import { mkdir, open, readFile, rename } from 'node:fs/promises';
14
+ import { dirname, join } from 'node:path';
15
+ import { ptySocketPath } from './pty-sidechannel.js';
16
+ import { redact } from './redact.js';
17
+ export const TAIL_CAPACITY_BYTES = 64 * 1024;
18
+ /** At most four rewrites a second, however fast the agent talks. */
19
+ export const TAIL_FLUSH_INTERVAL_MS = 250;
20
+ /**
21
+ * How long a spawn's completion will wait for the final tail flush. Transcript
22
+ * evidence is best-effort, so a stalled filesystem must cost the step this
23
+ * much and no more — past it the invocation settles and the close runs on.
24
+ */
25
+ export const TAIL_CLOSE_TIMEOUT_MS = 2_000;
26
+ export function transcriptTailPath(identity, stream) {
27
+ if (!Number.isSafeInteger(identity.attempt) || identity.attempt < 0)
28
+ throw new Error('Invalid transcript tail attempt');
29
+ return join(dirname(ptySocketPath(identity)), `attempt-${identity.attempt}.${stream}.tail`);
30
+ }
31
+ /**
32
+ * A ring of the last {@link TAIL_CAPACITY_BYTES} bytes, flushed to
33
+ * `attempt-<n>.<stream>.tail` at most every {@link TAIL_FLUSH_INTERVAL_MS}.
34
+ * A write failure is reported once as a process warning and then ignored:
35
+ * the attempt continues, and `flows status` will say no transcript is on disk.
36
+ */
37
+ export function openTranscriptTail(identity, stream, startedAtMs = Date.now(), warn = (message) => process.emitWarning(message)) {
38
+ const path = transcriptTailPath(identity, stream);
39
+ const header = JSON.stringify({ v: 1, run_id: identity.runId, step_id: identity.stepId, attempt: identity.attempt, started_at_ms: startedAtMs });
40
+ const ring = [];
41
+ let ringBytes = 0;
42
+ let dirty = false;
43
+ let closed = false;
44
+ let failed = false;
45
+ let timer;
46
+ let inFlight = Promise.resolve();
47
+ const flush = () => {
48
+ if (!dirty || failed)
49
+ return inFlight;
50
+ dirty = false;
51
+ const body = Buffer.concat([Buffer.from(`${header}\n`), ...ring]);
52
+ inFlight = inFlight.then(async () => {
53
+ // Write beside, then rename over: a reader never sees a torn file.
54
+ const staging = `${path}.tmp`;
55
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
56
+ const file = await open(staging, 'w', 0o600);
57
+ try {
58
+ await file.writeFile(body);
59
+ }
60
+ finally {
61
+ await file.close();
62
+ }
63
+ await rename(staging, path);
64
+ }).catch((error) => {
65
+ if (failed)
66
+ return;
67
+ failed = true;
68
+ warn(`Transcript tail for ${identity.runId}/${identity.stepId} attempt ${identity.attempt} (${stream}) could not be written; the step continues without it: ${error instanceof Error ? error.message : String(error)}`);
69
+ });
70
+ return inFlight;
71
+ };
72
+ return {
73
+ append(chunk) {
74
+ if (closed || failed || chunk.length === 0)
75
+ return;
76
+ if (chunk.length >= TAIL_CAPACITY_BYTES) {
77
+ ring.splice(0, ring.length, Buffer.from(chunk.subarray(chunk.length - TAIL_CAPACITY_BYTES)));
78
+ ringBytes = TAIL_CAPACITY_BYTES;
79
+ }
80
+ else {
81
+ ring.push(Buffer.from(chunk));
82
+ ringBytes += chunk.length;
83
+ while (ringBytes > TAIL_CAPACITY_BYTES) {
84
+ const excess = ringBytes - TAIL_CAPACITY_BYTES;
85
+ const head = ring[0];
86
+ if (head.length <= excess) {
87
+ ring.shift();
88
+ ringBytes -= head.length;
89
+ }
90
+ else {
91
+ ring[0] = head.subarray(excess);
92
+ ringBytes -= excess;
93
+ }
94
+ }
95
+ }
96
+ dirty = true;
97
+ if (timer === undefined) {
98
+ timer = setTimeout(() => { timer = undefined; void flush(); }, TAIL_FLUSH_INTERVAL_MS);
99
+ timer.unref();
100
+ }
101
+ },
102
+ async close() {
103
+ if (closed)
104
+ return;
105
+ closed = true;
106
+ if (timer !== undefined) {
107
+ clearTimeout(timer);
108
+ timer = undefined;
109
+ }
110
+ await flush();
111
+ },
112
+ };
113
+ }
114
+ /**
115
+ * Read one tail file. `undefined` when absent, unparseable, or written for a
116
+ * different attempt — or for this attempt number but before the journal says
117
+ * the attempt began, which is a file left by an earlier life of this data dir.
118
+ */
119
+ export async function readTranscriptTail(identity, stream, attemptStartedAtMs) {
120
+ let raw;
121
+ try {
122
+ raw = await readFile(transcriptTailPath(identity, stream));
123
+ }
124
+ catch (error) {
125
+ if (error.code === 'ENOENT')
126
+ return undefined;
127
+ throw error;
128
+ }
129
+ const newline = raw.indexOf(10);
130
+ if (newline < 0)
131
+ return undefined;
132
+ let header;
133
+ try {
134
+ header = JSON.parse(raw.subarray(0, newline).toString('utf8'));
135
+ }
136
+ catch {
137
+ return undefined;
138
+ }
139
+ if (header === null || typeof header !== 'object')
140
+ return undefined;
141
+ const claimed = header;
142
+ if (claimed.v !== 1 || claimed.run_id !== identity.runId || claimed.step_id !== identity.stepId
143
+ || claimed.attempt !== identity.attempt || typeof claimed.started_at_ms !== 'number')
144
+ return undefined;
145
+ if (attemptStartedAtMs !== null && claimed.started_at_ms < attemptStartedAtMs)
146
+ return undefined;
147
+ const body = raw.subarray(newline + 1);
148
+ return { header: claimed, bytes: body.length, text: body.toString('utf8') };
149
+ }
150
+ /**
151
+ * Redact the whole tail before splitting it. A direct agent inherits the
152
+ * worker's environment, so it can print a multiline secret; splitting first
153
+ * meant no line held the whole value and `replaceAll` matched none of them.
154
+ */
155
+ function lastLines(text, count, env) {
156
+ const lines = redact(text, env).split('\n');
157
+ if (lines.at(-1) === '')
158
+ lines.pop();
159
+ return lines.slice(Math.max(0, lines.length - count));
160
+ }
161
+ /** The {@link TailSource} `flows status` uses: this step's latest attempt, redacted. */
162
+ export function transcriptTailSource(env = process.env) {
163
+ return {
164
+ async read(dataDir, runId, step, lines) {
165
+ if (step.type !== 'agent' || step.attempt === 0)
166
+ return null;
167
+ const identity = { dataDir, runId, stepId: step.id, attempt: step.attempt };
168
+ const tail = async (stream) => {
169
+ const read = await readTranscriptTail(identity, stream, step.started_at_ms);
170
+ return read === undefined ? null : { attempt: step.attempt, bytes: read.bytes, lines: lastLines(read.text, lines, env) };
171
+ };
172
+ return { stdout: await tail('stdout'), stderr: await tail('stderr') };
173
+ },
174
+ };
175
+ }
176
+ //# sourceMappingURL=transcript-tail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-tail.js","sourceRoot":"","sources":["../src/transcript-tail.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,0EAA0E;AAC1E,yEAAyE;AACzE,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,0DAA0D;AAE1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAoB3C,MAAM,UAAU,kBAAkB,CAAC,QAAsB,EAAE,MAAkB;IAC3E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACxH,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,QAAQ,CAAC,OAAO,IAAI,MAAM,OAAO,CAAC,CAAC;AAC9F,CAAC;AAQD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAsB,EACtB,MAAkB,EAClB,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,EACxB,OAAkC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;IAE3E,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAuB,CAAC,CAAC;IACtK,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAiC,CAAC;IACtC,IAAI,QAAQ,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEhD,MAAM,KAAK,GAAG,GAAkB,EAAE;QAChC,IAAI,CAAC,KAAK,IAAI,MAAM;YAAE,OAAO,QAAQ,CAAC;QACtC,KAAK,GAAG,KAAK,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAClE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAClC,mEAAmE;YACnE,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC;YAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;oBAAS,CAAC;gBAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YACnE,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC1B,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,CAAC,uBAAuB,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,YAAY,QAAQ,CAAC,OAAO,KAAK,MAAM,0DAA0D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1N,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,MAAM,CAAC,KAAK;YACV,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACnD,IAAI,KAAK,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBAC7F,SAAS,GAAG,mBAAmB,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9B,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC1B,OAAO,SAAS,GAAG,mBAAmB,EAAE,CAAC;oBACvC,MAAM,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAAC;oBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;oBACtB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;wBAAC,IAAI,CAAC,KAAK,EAAE,CAAC;wBAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;oBAAC,CAAC;yBAAM,CAAC;wBAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAAC,SAAS,IAAI,MAAM,CAAC;oBAAC,CAAC;gBACvI,CAAC;YACH,CAAC;YACD,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;gBACvF,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAAC,KAAK,GAAG,SAAS,CAAC;YAAC,CAAC;YACpE,MAAM,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAUD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAsB,EACtB,MAAkB,EAClB,kBAAiC;IAEjC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IACnG,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,OAAO,GAAG,MAA6B,CAAC;IAC9C,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,MAAM;WAC1F,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzG,IAAI,kBAAkB,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAChG,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,EAAE,OAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,GAAsB;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACvE,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,KAAa,EAAE,IAAc,EAAE,KAAa;YACtE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC7D,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5E,MAAM,IAAI,GAAG,KAAK,EAAE,MAAkB,EAAkC,EAAE;gBACxE,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5E,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YAC3H,CAAC,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type SidechannelContext } from './pty-sidechannel.js';
2
+ import { type TranscriptDigest } from './agent-transcript.js';
2
3
  import { type WrapperSessionLimits } from './wrapper-session.js';
3
4
  import { type AgentTransport } from './agent-relay-transport.js';
4
5
  /** Present only when a dispatched agent step carries a journaled wake context. */
@@ -26,6 +27,15 @@ export interface WorkerCliResult {
26
27
  * agent runs on another host.
27
28
  */
28
29
  artifacts?: string[];
30
+ /**
31
+ * The attempt's transcript digest (`agent-transcript.ts`): provider result
32
+ * metadata, tool calls summarized, final text, failure excerpt, and — when
33
+ * the spawn had a sidechannel context with an attempt — the pointer to the
34
+ * redacted, capped `stream-json` file. Journaled in `trajectory_tail`, never
35
+ * in `output`. Present for Claude/Codex executions; absent for wrappers and
36
+ * the relay transport, which stream no provider frames through this process.
37
+ */
38
+ transcript?: TranscriptDigest;
29
39
  }
30
40
  /**
31
41
  * Journal identity and durable dispatch storage used by the Relay task transport.
@@ -1 +1 @@
1
- {"version":3,"file":"worker-cli.d.ts","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAahF,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,GAAE,OAAO,GAAG,KAAe,EAC/B,WAAW,CAAC,EAAE,kBAAkB,EAChC,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,GAAE,cAAyB,EACpC,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAmE1B;AAuDD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAC"}
1
+ {"version":3,"file":"worker-cli.d.ts","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAwC,KAAK,gBAAgB,EAA8C,MAAM,uBAAuB,CAAC;AAahJ,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,0BAA0B,EAAE,gBAAgB,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,IAAI,GAAE,OAAO,GAAG,KAAe,EAC/B,WAAW,CAAC,EAAE,kBAAkB,EAChC,GAAG,CAAC,EAAE,MAAM,EACZ,SAAS,GAAE,cAAyB,EACpC,YAAY,CAAC,EAAE,iBAAiB,GAC/B,OAAO,CAAC,eAAe,CAAC,CA2F1B;AAsGD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAC"}
@@ -1,7 +1,9 @@
1
+ import { realpathSync } from 'node:fs';
1
2
  import { resolve } from 'node:path';
2
3
  import { diffWorkspaceFiles, snapshotWorkspaceFiles } from './agent-artifacts.js';
3
4
  import { claudeResultOutcome, decodeProviderResult, decodeWrapperResult, requirePricedUsage } from './worker-usage.js';
4
5
  import { openSidechannel } from './pty-sidechannel.js';
6
+ import { openTranscriptWriter, transcriptPath } from './agent-transcript.js';
5
7
  import { spawn } from 'node:child_process';
6
8
  import { StringDecoder } from 'node:string_decoder';
7
9
  import { childStop } from './child-stop.js';
@@ -9,6 +11,9 @@ import { reapOnExit } from './agent-reaper.js';
9
11
  import { agentExecution, llmExecution, cliAdapterKind, resolveCliModel, } from './cli-adapter.js';
10
12
  import { runWrapperSession, } from './wrapper-session.js';
11
13
  import { wrapperEnvironment } from './wrapper-runtime.js';
14
+ import { redactRelayError } from './redact.js';
15
+ import { applyStepEnvironment } from './step-env.js';
16
+ import { TAIL_CLOSE_TIMEOUT_MS, openTranscriptTail, transcriptTailPath } from './transcript-tail.js';
12
17
  import { runAgentRelayTask, AgentRelayTransportError, } from './agent-relay-transport.js';
13
18
  /** Present only when a dispatched agent step carries a journaled wake context. */
14
19
  export const WAKE_CONTEXT_ENV = 'RELAYFLOW_WAKE_CONTEXT';
@@ -34,21 +39,46 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
34
39
  // workspace to change. Executions sharing a working directory are
35
40
  // serialized around their snapshot-spawn-snapshot interval, so one agent's
36
41
  // writes are never attributed to a concurrent one in the same directory.
42
+ //
43
+ // This process writes its own evidence during that interval — the attempt's
44
+ // transcript file and the two `flows status --tail` tails — and when the data
45
+ // dir sits under the cwd (a local `--data-dir` inside the project) they all
46
+ // land inside the scanned tree. None of them is agent-authored content, so
47
+ // every one is dropped from the diff by path. Missing any of them reports
48
+ // our own bookkeeping back to the kernel as the step's artifacts.
37
49
  const artifactRoot = mode === 'agent' ? resolve(cwd ?? process.cwd()) : undefined;
38
50
  return artifactRoot === undefined
39
51
  ? execute()
40
52
  : serializedByDirectory(artifactRoot, async () => {
41
53
  const before = await snapshotWorkspaceFiles(artifactRoot);
42
54
  const result = await execute();
43
- return { ...result, artifacts: diffWorkspaceFiles(before, await snapshotWorkspaceFiles(artifactRoot)) };
55
+ const ours = new Set();
56
+ for (const path of ownEvidencePaths(sidechannel)) {
57
+ const real = realPath(path);
58
+ if (real !== undefined)
59
+ ours.add(real);
60
+ }
61
+ const artifacts = diffWorkspaceFiles(before, await snapshotWorkspaceFiles(artifactRoot))
62
+ .filter(path => {
63
+ const real = realPath(resolve(artifactRoot, path));
64
+ return real === undefined || !ours.has(real);
65
+ });
66
+ return { ...result, artifacts };
44
67
  });
45
68
  async function execute() {
46
69
  if (kind === 'relayflows-wrapper-v1') {
47
- return requirePricedUsage(decodeWrapperResult(await runWrapperSession(cli, instruction, wakeContext, effectiveModel, wrapperEnvironment(process.env), wrapperLimits, signal, cwd)), effectiveModel);
70
+ // The closed allowlist admits no ambient RELAYFLOW_* value; the four
71
+ // discovery names are set from this dispatch, exactly as for a direct spawn.
72
+ const wrapperEnv = wrapperEnvironment(process.env);
73
+ applyStepEnvironment(wrapperEnv, sidechannel);
74
+ return requirePricedUsage(decodeWrapperResult(await runWrapperSession(cli, instruction, wakeContext, effectiveModel, wrapperEnv, wrapperLimits, signal, cwd)), effectiveModel);
48
75
  }
49
76
  const env = { ...process.env };
50
77
  delete env[WAKE_CONTEXT_ENV];
51
78
  delete env[MODEL_ENV];
79
+ // Where this attempt's journal is, so the agent can run `flows status` on
80
+ // itself. Only a worker with a data dir knows; an ad-hoc spawn exports nothing.
81
+ applyStepEnvironment(env, sidechannel);
52
82
  const invocation = mode === 'llm' ? llmExecution(kind, instruction, effectiveModel) : agentExecution(kind, instruction, effectiveModel);
53
83
  if (wakeContext !== undefined) {
54
84
  try {
@@ -70,7 +100,69 @@ export async function runAgentCli(cli, instruction, wakeContext, model, wrapperL
70
100
  const args = [...invocation.args];
71
101
  args.splice(args.length - 1, 0, ...(kind === 'claude' ? ['--output-format', 'stream-json', '--verbose'] : ['--json']));
72
102
  const completion = kind === 'claude' ? claudeResultOutcome : undefined;
73
- return requirePricedUsage(decodeProviderResult(await spawnInvocation(cli, { ...invocation, args }, env, signal, sidechannel, cwd, completion), kind), effectiveModel);
103
+ return requirePricedUsage(decodeProviderResult(await spawnInvocation(cli, { ...invocation, args }, env, signal, sidechannel, cwd, completion), kind, env), effectiveModel);
104
+ }
105
+ }
106
+ function openTails(context) {
107
+ // Same rule as the per-attempt transcript file: no attempt, no tails.
108
+ const attempt = context.attempt;
109
+ if (attempt === undefined)
110
+ return undefined;
111
+ const identity = { dataDir: context.dataDir, runId: context.runId, stepId: context.stepId, attempt };
112
+ try {
113
+ return { stdout: openTranscriptTail(identity, 'stdout'), stderr: openTranscriptTail(identity, 'stderr') };
114
+ }
115
+ catch {
116
+ // An id the path cannot carry; the sidechannel declined it the same way.
117
+ return undefined;
118
+ }
119
+ }
120
+ /**
121
+ * Every path this process may write under the workspace during an attempt, so
122
+ * the artifact diff can drop all of them.
123
+ *
124
+ * Derived from the attempt identity — the same input `openTranscriptWriter` and
125
+ * `openTails` use to decide where to write — and never from the result. The
126
+ * transcript pointer on the result is optional: `finish` drops it when the
127
+ * close outruns `TAIL_CLOSE_TIMEOUT_MS` and `discardTranscript` drops it on
128
+ * abort, and on both paths the file is already on disk. An exclusion built from
129
+ * that pointer therefore lost the transcript exactly when the close was slow,
130
+ * which is the moment the file is most likely to still be there.
131
+ *
132
+ * Empty when there is no sidechannel or no attempt to name, which is exactly
133
+ * when nothing is written.
134
+ */
135
+ function ownEvidencePaths(context) {
136
+ const attempt = context?.attempt;
137
+ if (context === undefined || attempt === undefined)
138
+ return [];
139
+ const identity = { dataDir: context.dataDir, runId: context.runId, stepId: context.stepId, attempt };
140
+ try {
141
+ // For each tail, both the finished file and the `.tmp` the writer stages
142
+ // and renames over (`transcript-tail.ts`): a close that timed out or a
143
+ // flush that failed can leave the staging file behind, and it is no more
144
+ // agent-authored than the file it was going to become.
145
+ const paths = [transcriptPath(identity, attempt)];
146
+ for (const stream of ['stdout', 'stderr']) {
147
+ const tail = transcriptTailPath(identity, stream);
148
+ paths.push(tail, `${tail}.tmp`);
149
+ }
150
+ return paths;
151
+ }
152
+ catch {
153
+ // An id the path cannot carry; nothing was written under it either.
154
+ return [];
155
+ }
156
+ }
157
+ /** Symlink-free form of a path, or the path itself when it cannot be resolved. */
158
+ function realPath(path) {
159
+ if (path === undefined)
160
+ return undefined;
161
+ try {
162
+ return realpathSync(path);
163
+ }
164
+ catch {
165
+ return path;
74
166
  }
75
167
  }
76
168
  /** One agent at a time per canonical working directory, for the artifact interval. */
@@ -116,14 +208,6 @@ async function runViaAgentRelay(kind, instruction, wakeContext, model, context,
116
208
  return { exit_code: null, stdout_tail: '', stderr_tail: redactRelayError(detail) };
117
209
  }
118
210
  }
119
- function redactRelayError(message) {
120
- for (const key of ['RELAY_AGENT_TOKEN', 'RELAY_API_KEY']) {
121
- const secret = process.env[key];
122
- if (secret)
123
- message = message.replaceAll(secret, '[redacted]');
124
- }
125
- return message.replace(/\b(?:at|rk|nt|ot|br|arr)_(?:live_)?[A-Za-z0-9_-]+/g, '[redacted]');
126
- }
127
211
  /**
128
212
  * How long a CLI that has reported its final result may take to exit. Claude
129
213
  * Code in print mode waits, after its result, for every background task it
@@ -136,12 +220,26 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
136
220
  let writeInput = async () => false;
137
221
  let canDrive = () => false;
138
222
  let driven = false;
223
+ // The transcript file lives beside the PTY socket and is named by attempt.
224
+ // Its absence (no data dir, no attempt, unwritable dir) costs the step
225
+ // nothing: the digest is built from the buffered frames regardless. Opened
226
+ // BEFORE the sidechannel: once `onReady` has fired, a drive peer's HELLO may
227
+ // arrive at any time, and nothing may sit between that and the spawn that
228
+ // arms `canDrive`.
229
+ const writer = sidechannel?.attempt === undefined ? undefined
230
+ : await openTranscriptWriter(transcriptPath(sidechannel, sidechannel.attempt), env);
139
231
  const channel = sidechannel === undefined ? undefined : await openSidechannel({
140
232
  ...sidechannel,
141
233
  onDrive() { driven = true; sidechannel.onDrive(); },
142
234
  }, bytes => writeInput(bytes), () => canDrive());
235
+ // Tee the transcript into bounded tail files beside the socket. Evidence
236
+ // for `flows status --tail`, never the record; a failure here is a warning.
237
+ const tails = sidechannel === undefined ? undefined : openTails(sidechannel);
143
238
  if (signal?.aborted) {
144
239
  channel?.close();
240
+ void writer?.close();
241
+ void tails?.stdout.close();
242
+ void tails?.stderr.close();
145
243
  signal.throwIfAborted();
146
244
  }
147
245
  return new Promise((resolve) => {
@@ -181,7 +279,7 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
181
279
  let graceTimer;
182
280
  const decoder = new StringDecoder('utf8');
183
281
  let partialLine = '';
184
- const finish = (result) => {
282
+ const finish = (result, discardTranscript = false) => {
185
283
  if (settled)
186
284
  return;
187
285
  settled = true;
@@ -193,11 +291,46 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
193
291
  if (graceTimer !== undefined)
194
292
  clearTimeout(graceTimer);
195
293
  signal?.removeEventListener('abort', onAbort);
196
- resolve(result);
294
+ if (writer === undefined && tails === undefined) {
295
+ resolve(result);
296
+ return;
297
+ }
298
+ if (writer !== undefined) {
299
+ const rest = partialLine + decoder.end();
300
+ if (rest.length > 0)
301
+ writer.write(rest);
302
+ }
303
+ // Two independent pieces of evidence close here: the per-attempt
304
+ // transcript, whose descriptor rides back on the result as the digest's
305
+ // file pointer, and the `flows status --tail` tails, which nothing reads
306
+ // from the result.
307
+ //
308
+ // Neither may hold a step open. A stalled write would leave
309
+ // `runAgentCli` unresolved forever, and every later abort or timeout is
310
+ // already a no-op once `settled` is true — so the whole close is raced
311
+ // against a bounded deadline and the result stands either way. Past the
312
+ // deadline the transcript pointer is dropped rather than waited for: a
313
+ // completion without a pointer is recoverable, a step that never
314
+ // completes is not.
315
+ // The writer's result is recorded the moment it lands, not read out of
316
+ // the combined race: the two closes are independent, and a stalled tail
317
+ // must not throw away a transcript that finished and is on disk.
318
+ let transcriptFile;
319
+ const closedWriter = writer === undefined
320
+ ? Promise.resolve()
321
+ : writer.close().then((file) => { transcriptFile = file; }, () => { });
322
+ const closedTails = tails === undefined
323
+ ? Promise.resolve()
324
+ : Promise.all([tails.stdout.close(), tails.stderr.close()]).then(() => undefined, () => undefined);
325
+ const deadline = new Promise((done) => setTimeout(done, TAIL_CLOSE_TIMEOUT_MS).unref?.());
326
+ void Promise.race([Promise.all([closedWriter, closedTails]), deadline]).then(() => {
327
+ resolve(discardTranscript || transcriptFile === undefined
328
+ ? result : { ...result, transcript: { file: transcriptFile } });
329
+ }, () => resolve(result));
197
330
  };
198
331
  const onAbort = () => {
199
332
  stop.kill();
200
- finish({ exit_code: null, stdout_tail: '', stderr_tail: 'Agent execution aborted: lease ownership lost.' });
333
+ finish({ exit_code: null, stdout_tail: '', stderr_tail: 'Agent execution aborted: lease ownership lost.' }, true);
201
334
  };
202
335
  /**
203
336
  * Same invariant as `wrapper-session.ts`: `'close'` and `'error'` are
@@ -237,17 +370,26 @@ async function spawnInvocation(cli, invocation, env, signal, sidechannel, cwd, c
237
370
  child.stdout.on('data', (chunk) => {
238
371
  stdout.push(chunk);
239
372
  channel?.publish(chunk);
240
- if (completion === undefined || graceTimer !== undefined)
373
+ // The tails take raw bytes, so they are fed before any line splitting
374
+ // and regardless of what the writer or the detector still wants.
375
+ tails?.stdout.append(chunk);
376
+ // Lines are split whenever a writer or a completion detector wants
377
+ // them; the detector stops looking once a result has been seen, the
378
+ // writer keeps every line to the end.
379
+ if (writer === undefined && (completion === undefined || graceTimer !== undefined))
241
380
  return;
242
381
  const lines = (partialLine + decoder.write(chunk)).split('\n');
243
382
  partialLine = lines.pop() ?? '';
244
383
  for (const line of lines) {
384
+ writer?.write(line);
385
+ if (completion === undefined || graceTimer !== undefined)
386
+ continue;
245
387
  const outcome = completion(line);
246
388
  if (outcome !== undefined)
247
389
  onResult(outcome);
248
390
  }
249
391
  });
250
- child.stderr.on('data', (chunk) => { stderr.push(chunk); channel?.publish(chunk); });
392
+ child.stderr.on('data', (chunk) => { stderr.push(chunk); channel?.publish(chunk); tails?.stderr.append(chunk); });
251
393
  child.once('error', (error) => finishOnChildExit({
252
394
  exit_code: null,
253
395
  stdout_tail: Buffer.concat(stdout).toString('utf8'),
@@ -1 +1 @@
1
- {"version":3,"file":"worker-cli.js","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-cli.js","sourceRoot":"","sources":["../src/worker-cli.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import type { WorkerCliResult } from './worker-cli.js';
2
- /** Provider envelopes are execution metadata, never the authored output. */
3
- export declare function decodeProviderResult(result: WorkerCliResult, kind: 'claude' | 'codex'): WorkerCliResult;
2
+ /**
3
+ * Provider envelopes are execution metadata, never the authored output. The
4
+ * same frames also yield the transcript digest (`agent-transcript.ts`): the
5
+ * metered `tokens_input/output` stay the budget source, and the provider's own
6
+ * cost, model, tool calls and failure ride beside them in `transcript`.
7
+ */
8
+ export declare function decodeProviderResult(result: WorkerCliResult, kind: 'claude' | 'codex', env?: NodeJS.ProcessEnv): WorkerCliResult;
4
9
  /**
5
10
  * Claude's terminal `stream-json` frame, recognised line by line as it
6
11
  * streams. `failed` mirrors the exit status Claude gives that result: an
@@ -1 +1 @@
1
- {"version":3,"file":"worker-usage.d.ts","sourceRoot":"","sources":["../src/worker-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBvD,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,eAAe,CAUvG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAMjF;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAK5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAM3F"}
1
+ {"version":3,"file":"worker-usage.d.ts","sourceRoot":"","sources":["../src/worker-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA6BvD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,QAAQ,GAAG,OAAO,EACxB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,eAAe,CAOjB;AAUD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAMjF;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAK5E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAM3F"}
@@ -1,8 +1,17 @@
1
1
  import { MODEL_PRICING } from './model-pricing.js';
2
+ import { FAILURE_EXCERPT_MAX_BYTES, buildTranscriptDigest, redactText, utf8Tail } from './agent-transcript.js';
2
3
  const record = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
3
4
  const count = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
5
+ /**
6
+ * A completion this decoder refuses. The refusal is appended to stderr, and a
7
+ * digest already built from the frames gets it as its failure — otherwise the
8
+ * digest would still describe the attempt as the provider reported it.
9
+ */
4
10
  function invalid(result, detail) {
5
- return { ...result, exit_code: null, stderr_tail: `${result.stderr_tail}\n${detail}`.trim() };
11
+ const stderr_tail = `${result.stderr_tail}\n${detail}`.trim();
12
+ const transcript = result.transcript === undefined ? undefined : { ...result.transcript,
13
+ failure: { kind: 'stderr', excerpt: utf8Tail(redactText(stderr_tail), FAILURE_EXCERPT_MAX_BYTES) } };
14
+ return { ...result, exit_code: null, stderr_tail, ...(transcript === undefined ? {} : { transcript }) };
6
15
  }
7
16
  function usageResult(result, usage, output) {
8
17
  if (output === undefined)
@@ -13,8 +22,13 @@ function usageResult(result, usage, output) {
13
22
  return { ...result, stdout_tail: typeof output === 'string' ? output : JSON.stringify(output),
14
23
  tokens_input: usage.input_tokens, tokens_output: usage.output_tokens };
15
24
  }
16
- /** Provider envelopes are execution metadata, never the authored output. */
17
- export function decodeProviderResult(result, kind) {
25
+ /**
26
+ * Provider envelopes are execution metadata, never the authored output. The
27
+ * same frames also yield the transcript digest (`agent-transcript.ts`): the
28
+ * metered `tokens_input/output` stay the budget source, and the provider's own
29
+ * cost, model, tool calls and failure ride beside them in `transcript`.
30
+ */
31
+ export function decodeProviderResult(result, kind, env = process.env) {
18
32
  const frames = [];
19
33
  for (const line of result.stdout_tail.split('\n')) {
20
34
  try {
@@ -24,6 +38,10 @@ export function decodeProviderResult(result, kind) {
24
38
  }
25
39
  catch { /* Plain text remains output. */ }
26
40
  }
41
+ const decoded = decodeUsage(result, frames, kind);
42
+ return { ...decoded, transcript: { ...result.transcript, ...buildTranscriptDigest(frames, kind, decoded, env) } };
43
+ }
44
+ function decodeUsage(result, frames, kind) {
27
45
  const terminal = [...frames].reverse().find(f => kind === 'claude' ? f.type === 'result' : f.type === 'turn.completed');
28
46
  if (terminal === undefined)
29
47
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-usage.js","sourceRoot":"","sources":["../src/worker-usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-usage.js","sourceRoot":"","sources":["../src/worker-usage.ts"],"names":[],"mappings":"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"}