@relayflows/sdk 2.0.30 → 2.0.31

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 (295) hide show
  1. package/dist/agent-artifacts.d.ts.map +1 -1
  2. package/dist/agent-artifacts.js +2 -9
  3. package/dist/agent-artifacts.js.map +1 -1
  4. package/dist/agent-cwd.d.ts +69 -0
  5. package/dist/agent-cwd.d.ts.map +1 -0
  6. package/dist/agent-cwd.js +140 -0
  7. package/dist/agent-cwd.js.map +1 -0
  8. package/dist/artifact-scan-policy.d.ts +35 -0
  9. package/dist/artifact-scan-policy.d.ts.map +1 -0
  10. package/dist/artifact-scan-policy.js +49 -0
  11. package/dist/artifact-scan-policy.js.map +1 -0
  12. package/dist/authored-completion-record.d.ts +35 -0
  13. package/dist/authored-completion-record.d.ts.map +1 -0
  14. package/dist/authored-completion-record.js +92 -0
  15. package/dist/authored-completion-record.js.map +1 -0
  16. package/dist/authored-completion.d.ts +99 -0
  17. package/dist/authored-completion.d.ts.map +1 -0
  18. package/dist/authored-completion.js +184 -0
  19. package/dist/authored-completion.js.map +1 -0
  20. package/dist/authored-flow-error.d.ts +13 -1
  21. package/dist/authored-flow-error.d.ts.map +1 -1
  22. package/dist/authored-flow-error.js +12 -0
  23. package/dist/authored-flow-error.js.map +1 -1
  24. package/dist/authored-flow-executor.d.ts +7 -30
  25. package/dist/authored-flow-executor.d.ts.map +1 -1
  26. package/dist/authored-flow-executor.js +54 -47
  27. package/dist/authored-flow-executor.js.map +1 -1
  28. package/dist/authored-human.d.ts.map +1 -1
  29. package/dist/authored-human.js +1 -3
  30. package/dist/authored-human.js.map +1 -1
  31. package/dist/authored-node-entry.js +4 -1
  32. package/dist/authored-node-entry.js.map +1 -1
  33. package/dist/authored-node-runner.d.ts +9 -1
  34. package/dist/authored-node-runner.d.ts.map +1 -1
  35. package/dist/authored-node-runner.js +92 -17
  36. package/dist/authored-node-runner.js.map +1 -1
  37. package/dist/authored-root.d.ts +5 -0
  38. package/dist/authored-root.d.ts.map +1 -1
  39. package/dist/authored-root.js +20 -2
  40. package/dist/authored-root.js.map +1 -1
  41. package/dist/authored-step-output.d.ts +35 -10
  42. package/dist/authored-step-output.d.ts.map +1 -1
  43. package/dist/authored-step-output.js +108 -40
  44. package/dist/authored-step-output.js.map +1 -1
  45. package/dist/authored-verdict.d.ts +28 -0
  46. package/dist/authored-verdict.d.ts.map +1 -0
  47. package/dist/authored-verdict.js +79 -0
  48. package/dist/authored-verdict.js.map +1 -0
  49. package/dist/authored-worker-step.d.ts +5 -2
  50. package/dist/authored-worker-step.d.ts.map +1 -1
  51. package/dist/authored-worker-step.js +48 -11
  52. package/dist/authored-worker-step.js.map +1 -1
  53. package/dist/cli/check-worker-surface.d.ts +27 -0
  54. package/dist/cli/check-worker-surface.d.ts.map +1 -0
  55. package/dist/cli/check-worker-surface.js +63 -0
  56. package/dist/cli/check-worker-surface.js.map +1 -0
  57. package/dist/cli/check.d.ts +19 -2
  58. package/dist/cli/check.d.ts.map +1 -1
  59. package/dist/cli/check.js +12 -4
  60. package/dist/cli/check.js.map +1 -1
  61. package/dist/cli/cloud-format.d.ts +9 -0
  62. package/dist/cli/cloud-format.d.ts.map +1 -0
  63. package/dist/cli/cloud-format.js +77 -0
  64. package/dist/cli/cloud-format.js.map +1 -0
  65. package/dist/cli/cloud-live.d.ts +39 -0
  66. package/dist/cli/cloud-live.d.ts.map +1 -0
  67. package/dist/cli/cloud-live.js +325 -0
  68. package/dist/cli/cloud-live.js.map +1 -0
  69. package/dist/cli/cloud-read.d.ts +3 -7
  70. package/dist/cli/cloud-read.d.ts.map +1 -1
  71. package/dist/cli/cloud-read.js +14 -266
  72. package/dist/cli/cloud-read.js.map +1 -1
  73. package/dist/cli/cloud-refusal.d.ts +39 -0
  74. package/dist/cli/cloud-refusal.d.ts.map +1 -0
  75. package/dist/cli/cloud-refusal.js +95 -0
  76. package/dist/cli/cloud-refusal.js.map +1 -0
  77. package/dist/cli/cloud-status-view.d.ts +7 -0
  78. package/dist/cli/cloud-status-view.d.ts.map +1 -0
  79. package/dist/cli/cloud-status-view.js +214 -0
  80. package/dist/cli/cloud-status-view.js.map +1 -0
  81. package/dist/cli/direct-run.d.ts.map +1 -1
  82. package/dist/cli/direct-run.js +16 -2
  83. package/dist/cli/direct-run.js.map +1 -1
  84. package/dist/cli/hn-monitor.d.ts +0 -13
  85. package/dist/cli/hn-monitor.d.ts.map +1 -1
  86. package/dist/cli/hn-monitor.js +2 -1
  87. package/dist/cli/hn-monitor.js.map +1 -1
  88. package/dist/cli/local-agent-remedy.d.ts +80 -0
  89. package/dist/cli/local-agent-remedy.d.ts.map +1 -0
  90. package/dist/cli/local-agent-remedy.js +116 -0
  91. package/dist/cli/local-agent-remedy.js.map +1 -0
  92. package/dist/cli/observer-session.d.ts +41 -0
  93. package/dist/cli/observer-session.d.ts.map +1 -0
  94. package/dist/cli/observer-session.js +78 -0
  95. package/dist/cli/observer-session.js.map +1 -0
  96. package/dist/cli/run.d.ts +30 -2
  97. package/dist/cli/run.d.ts.map +1 -1
  98. package/dist/cli/run.js +186 -24
  99. package/dist/cli/run.js.map +1 -1
  100. package/dist/cli/status.d.ts +9 -0
  101. package/dist/cli/status.d.ts.map +1 -1
  102. package/dist/cli/status.js +31 -2
  103. package/dist/cli/status.js.map +1 -1
  104. package/dist/cli/step-evidence.d.ts +90 -0
  105. package/dist/cli/step-evidence.d.ts.map +1 -0
  106. package/dist/cli/step-evidence.js +259 -0
  107. package/dist/cli/step-evidence.js.map +1 -0
  108. package/dist/cli/step-failure.d.ts +14 -4
  109. package/dist/cli/step-failure.d.ts.map +1 -1
  110. package/dist/cli/step-failure.js +41 -76
  111. package/dist/cli/step-failure.js.map +1 -1
  112. package/dist/cli-commands.d.ts +6 -0
  113. package/dist/cli-commands.d.ts.map +1 -1
  114. package/dist/cli-commands.js +2 -0
  115. package/dist/cli-commands.js.map +1 -1
  116. package/dist/cli.d.ts +10 -0
  117. package/dist/cli.d.ts.map +1 -1
  118. package/dist/cli.js +53 -42
  119. package/dist/cli.js.map +1 -1
  120. package/dist/cloud-read.d.ts +15 -0
  121. package/dist/cloud-read.d.ts.map +1 -1
  122. package/dist/cloud-read.js +20 -1
  123. package/dist/cloud-read.js.map +1 -1
  124. package/dist/cloud-run-record.d.ts +27 -0
  125. package/dist/cloud-run-record.d.ts.map +1 -0
  126. package/dist/cloud-run-record.js +56 -0
  127. package/dist/cloud-run-record.js.map +1 -0
  128. package/dist/cloud-run.d.ts +2 -9
  129. package/dist/cloud-run.d.ts.map +1 -1
  130. package/dist/cloud-run.js +3 -20
  131. package/dist/cloud-run.js.map +1 -1
  132. package/dist/communication/local.d.ts.map +1 -1
  133. package/dist/communication/local.js +2 -1
  134. package/dist/communication/local.js.map +1 -1
  135. package/dist/communication/worker.d.ts +1 -1
  136. package/dist/communication/worker.d.ts.map +1 -1
  137. package/dist/communication/worker.js +13 -5
  138. package/dist/communication/worker.js.map +1 -1
  139. package/dist/compile.d.ts.map +1 -1
  140. package/dist/compile.js +28 -6
  141. package/dist/compile.js.map +1 -1
  142. package/dist/direct-input.d.ts.map +1 -1
  143. package/dist/direct-input.js +21 -1
  144. package/dist/direct-input.js.map +1 -1
  145. package/dist/failure-kinds.d.ts +96 -6
  146. package/dist/failure-kinds.d.ts.map +1 -1
  147. package/dist/failure-kinds.js +29 -2
  148. package/dist/failure-kinds.js.map +1 -1
  149. package/dist/flow-requirements.d.ts.map +1 -1
  150. package/dist/flow-requirements.js +24 -9
  151. package/dist/flow-requirements.js.map +1 -1
  152. package/dist/gate-contract.d.ts +7 -0
  153. package/dist/gate-contract.d.ts.map +1 -1
  154. package/dist/gate-contract.js +6 -1
  155. package/dist/gate-contract.js.map +1 -1
  156. package/dist/helper-preflight.d.ts.map +1 -1
  157. package/dist/helper-preflight.js +10 -3
  158. package/dist/helper-preflight.js.map +1 -1
  159. package/dist/helper-reference.d.ts +25 -0
  160. package/dist/helper-reference.d.ts.map +1 -0
  161. package/dist/helper-reference.js +129 -0
  162. package/dist/helper-reference.js.map +1 -0
  163. package/dist/index.d.ts +1 -1
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.js.map +1 -1
  166. package/dist/journal-client.d.ts +3 -1
  167. package/dist/journal-client.d.ts.map +1 -1
  168. package/dist/journal-client.js +17 -2
  169. package/dist/journal-client.js.map +1 -1
  170. package/dist/journal-projection.d.ts +16 -0
  171. package/dist/journal-projection.d.ts.map +1 -0
  172. package/dist/journal-projection.js +108 -0
  173. package/dist/journal-projection.js.map +1 -0
  174. package/dist/llm-worker.js +1 -1
  175. package/dist/llm-worker.js.map +1 -1
  176. package/dist/local-agent.d.ts +1 -1
  177. package/dist/local-agent.d.ts.map +1 -1
  178. package/dist/local-agent.js +4 -3
  179. package/dist/local-agent.js.map +1 -1
  180. package/dist/named-gate-lowering.js +35 -5
  181. package/dist/named-gate-lowering.js.map +1 -1
  182. package/dist/named-gate-preflight.d.ts +27 -0
  183. package/dist/named-gate-preflight.d.ts.map +1 -0
  184. package/dist/named-gate-preflight.js +47 -0
  185. package/dist/named-gate-preflight.js.map +1 -0
  186. package/dist/named-gates.d.ts +1 -1
  187. package/dist/named-gates.d.ts.map +1 -1
  188. package/dist/named-gates.js +3 -0
  189. package/dist/named-gates.js.map +1 -1
  190. package/dist/observer-link.d.ts +7 -0
  191. package/dist/observer-link.d.ts.map +1 -1
  192. package/dist/observer-link.js +3 -1
  193. package/dist/observer-link.js.map +1 -1
  194. package/dist/preflight.d.ts.map +1 -1
  195. package/dist/preflight.js +7 -0
  196. package/dist/preflight.js.map +1 -1
  197. package/dist/protocol.d.ts +2 -0
  198. package/dist/protocol.d.ts.map +1 -1
  199. package/dist/redact.d.ts +42 -0
  200. package/dist/redact.d.ts.map +1 -1
  201. package/dist/redact.js +128 -0
  202. package/dist/redact.js.map +1 -1
  203. package/dist/run-projection.d.ts +83 -0
  204. package/dist/run-projection.d.ts.map +1 -0
  205. package/dist/run-projection.js +199 -0
  206. package/dist/run-projection.js.map +1 -0
  207. package/dist/shell-word.d.ts +19 -0
  208. package/dist/shell-word.d.ts.map +1 -0
  209. package/dist/shell-word.js +23 -0
  210. package/dist/shell-word.js.map +1 -0
  211. package/dist/spec.d.ts +52 -3
  212. package/dist/spec.d.ts.map +1 -1
  213. package/dist/spec.js.map +1 -1
  214. package/dist/step-fields.d.ts +1 -1
  215. package/dist/step-fields.js +1 -1
  216. package/dist/step-fields.js.map +1 -1
  217. package/dist/steps-green.d.ts +27 -0
  218. package/dist/steps-green.d.ts.map +1 -0
  219. package/dist/steps-green.js +164 -0
  220. package/dist/steps-green.js.map +1 -0
  221. package/dist/validate.d.ts.map +1 -1
  222. package/dist/validate.js +39 -8
  223. package/dist/validate.js.map +1 -1
  224. package/dist/worker-lease.d.ts +8 -1
  225. package/dist/worker-lease.d.ts.map +1 -1
  226. package/dist/worker-lease.js +34 -4
  227. package/dist/worker-lease.js.map +1 -1
  228. package/dist/worker.d.ts +8 -0
  229. package/dist/worker.d.ts.map +1 -1
  230. package/dist/worker.js +17 -9
  231. package/dist/worker.js.map +1 -1
  232. package/package.json +3 -7
  233. package/src/agent-artifacts.ts +2 -10
  234. package/src/agent-cwd.ts +139 -0
  235. package/src/artifact-scan-policy.ts +51 -0
  236. package/src/authored-completion-record.ts +119 -0
  237. package/src/authored-completion.ts +203 -0
  238. package/src/authored-flow-error.ts +13 -1
  239. package/src/authored-flow-executor.ts +91 -58
  240. package/src/authored-human.ts +1 -4
  241. package/src/authored-node-entry.ts +4 -1
  242. package/src/authored-node-runner.ts +96 -22
  243. package/src/authored-root.ts +20 -2
  244. package/src/authored-step-output.ts +139 -42
  245. package/src/authored-verdict.ts +87 -0
  246. package/src/authored-worker-step.ts +60 -12
  247. package/src/cli/check-worker-surface.ts +66 -0
  248. package/src/cli/check.ts +35 -4
  249. package/src/cli/cloud-format.ts +82 -0
  250. package/src/cli/cloud-live.ts +366 -0
  251. package/src/cli/cloud-read.ts +13 -282
  252. package/src/cli/cloud-refusal.ts +113 -0
  253. package/src/cli/cloud-status-view.ts +213 -0
  254. package/src/cli/direct-run.ts +19 -2
  255. package/src/cli/hn-monitor.ts +2 -1
  256. package/src/cli/local-agent-remedy.ts +160 -0
  257. package/src/cli/observer-session.ts +107 -0
  258. package/src/cli/run.ts +233 -28
  259. package/src/cli/status.ts +59 -3
  260. package/src/cli/step-evidence.ts +310 -0
  261. package/src/cli/step-failure.ts +57 -81
  262. package/src/cli-commands.ts +2 -0
  263. package/src/cli.ts +64 -44
  264. package/src/cloud-read.ts +25 -1
  265. package/src/cloud-run-record.ts +64 -0
  266. package/src/cloud-run.ts +5 -24
  267. package/src/communication/local.ts +2 -1
  268. package/src/communication/worker.ts +13 -5
  269. package/src/compile.ts +28 -6
  270. package/src/direct-input.ts +22 -1
  271. package/src/failure-kinds.ts +104 -2
  272. package/src/flow-requirements.ts +24 -9
  273. package/src/gate-contract.ts +13 -1
  274. package/src/helper-preflight.ts +10 -3
  275. package/src/helper-reference.ts +130 -0
  276. package/src/index.ts +2 -0
  277. package/src/journal-client.ts +19 -2
  278. package/src/journal-projection.ts +106 -0
  279. package/src/llm-worker.ts +1 -1
  280. package/src/local-agent.ts +4 -2
  281. package/src/named-gate-lowering.ts +35 -5
  282. package/src/named-gate-preflight.ts +47 -0
  283. package/src/named-gates.ts +3 -0
  284. package/src/observer-link.ts +10 -1
  285. package/src/preflight.ts +7 -0
  286. package/src/protocol.ts +2 -0
  287. package/src/redact.ts +111 -0
  288. package/src/run-projection.ts +247 -0
  289. package/src/shell-word.ts +24 -0
  290. package/src/spec.ts +54 -3
  291. package/src/step-fields.ts +1 -1
  292. package/src/steps-green.ts +168 -0
  293. package/src/validate.ts +35 -8
  294. package/src/worker-lease.ts +35 -5
  295. package/src/worker.ts +27 -11
@@ -0,0 +1,259 @@
1
+ import { redact } from '../redact.js';
2
+ import { formatStepExcerpt } from './step-excerpt.js';
3
+ /** Per-attempt history is context beside that account, not a second copy of it. */
4
+ export const ATTEMPT_TAIL_BYTES = 256;
5
+ /**
6
+ * What the daemon appends when it cut a render before journaling it
7
+ * (`worker_failure_detail`, relayflowd/src/engine/remote.rs). Evidence that
8
+ * arrived already truncated cannot establish that two attempts failed
9
+ * identically, however equal the surviving bytes are.
10
+ */
11
+ const PRODUCER_TRUNCATED = /…\s*\((?:render bounded|[\d,]+ bytes truncated)\)$/u;
12
+ /**
13
+ * Pull the process-shaped fields out of whichever field carried them.
14
+ *
15
+ * `verification.detail` is last because it is the daemon's own render rather
16
+ * than the worker's structured report — but for an agent step it is the only
17
+ * thing that survives, so it is parsed when it parses and kept verbatim when
18
+ * it does not. A truncated render (the daemon caps at 2,000 chars and appends
19
+ * a truncation note) will not parse; that falls through to the raw string,
20
+ * which is still the account of what went wrong.
21
+ *
22
+ * An agent or llm completion now also carries `trajectory_tail.transcript`
23
+ * (agent-transcript.ts) on every attempt. That object is not process-shaped,
24
+ * so it must not shadow the render that is: the first candidate that carries
25
+ * an exit code or a tail wins. The digest contributes what only it has — the
26
+ * failure excerpt the worker picked out of the provider's frames, and the
27
+ * path of the transcript file.
28
+ */
29
+ export function selectEvidence(payload) {
30
+ const detail = record(payload['verification'])?.['detail'];
31
+ const rendered = typeof detail === 'string' ? parsed(detail) : undefined;
32
+ const candidates = [
33
+ record(payload['output']),
34
+ record(payload['trajectory_tail']),
35
+ rendered,
36
+ ].filter((candidate) => candidate !== undefined);
37
+ const structured = candidates.find(processShaped) ?? candidates[0];
38
+ const exitCode = structured?.['exit_code'];
39
+ const stdout = structured?.['stdout_tail'];
40
+ const stderr = structured?.['stderr_tail'];
41
+ const transcript = record(record(payload['trajectory_tail'])?.['transcript']);
42
+ const failure = record(transcript?.['failure']);
43
+ const excerpt = failure?.['excerpt'];
44
+ const transcriptPath = record(transcript?.['file'])?.['path'];
45
+ // The excerpt is the worker's own pick of the failure; a `stderr` excerpt
46
+ // is the same bytes as `stderrTail`, so it is not printed twice.
47
+ const excerptDetail = typeof excerpt === 'string' && excerpt.length > 0
48
+ && !(failure?.['kind'] === 'stderr' && typeof stderr === 'string')
49
+ ? excerpt : undefined;
50
+ return {
51
+ ...(typeof exitCode === 'number' && Number.isSafeInteger(exitCode) ? { exitCode } : {}),
52
+ ...(typeof stdout === 'string' && stdout.length > 0 ? { stdoutTail: stdout } : {}),
53
+ ...(typeof stderr === 'string' ? { stderrTail: stderr } : {}),
54
+ ...(excerptDetail !== undefined ? { detail: excerptDetail }
55
+ : typeof detail === 'string' && detail.length > 0 && !duplicates(detail, rendered, exitCode)
56
+ ? { detail } : {}),
57
+ ...(typeof transcriptPath === 'string' && transcriptPath.length > 0 ? { transcriptPath } : {}),
58
+ };
59
+ }
60
+ /**
61
+ * Whether printing `verification.detail` would print bytes already printed.
62
+ *
63
+ * Only two shapes do. The daemon's render of a worker failure IS the
64
+ * `{exit_code, stdout_tail, stderr_tail}` report (`worker_failure_detail`,
65
+ * relayflowd/src/engine/remote.rs), which a deterministic step journals
66
+ * alongside its preserved `output`; and the `exit_code` gate's verdict on its
67
+ * own is the exit code that is already reported beside it (`exit code was 1`,
68
+ * relayflowd-core/src/verify.rs).
69
+ *
70
+ * Every other verdict is the ONLY account of its failure. `output did not
71
+ * contain "READY"` accompanies exit 0 and empty tails, so suppressing the
72
+ * detail whenever some field happened to be process-shaped left the attempt
73
+ * saying `exit=0 — no failure evidence recorded` while the journal held the
74
+ * gate error — the first attempt hidden again, inside the diagnostic that
75
+ * exists to surface it.
76
+ */
77
+ function duplicates(detail, rendered, exitCode) {
78
+ if (rendered !== undefined && processShaped(rendered))
79
+ return true;
80
+ return typeof exitCode === 'number' && detail === `exit code was ${exitCode}`;
81
+ }
82
+ /** The `StepFailedDetails` scalars for one completion, as a failure excerpt. */
83
+ export function terminalEvidence(payload) {
84
+ const selected = selectEvidence(payload);
85
+ return {
86
+ ...(selected.exitCode === undefined ? {} : { exitCode: selected.exitCode }),
87
+ ...(selected.stdoutTail === undefined ? {} : { stdoutTail: formatStepExcerpt(selected.stdoutTail) }),
88
+ ...(selected.stderrTail === undefined ? {} : { stderrTail: formatStepExcerpt(selected.stderrTail) }),
89
+ ...(selected.detail === undefined ? {} : { detail: formatStepExcerpt(selected.detail) }),
90
+ ...(selected.transcriptPath === undefined ? {} : { transcriptPath: selected.transcriptPath }),
91
+ };
92
+ }
93
+ /**
94
+ * One historical attempt's record, redacted and then bounded.
95
+ *
96
+ * Redaction runs first so a credential cannot survive by sitting outside the
97
+ * excerpt window on one attempt and inside it on another. Control-character
98
+ * replacement alone is not redaction: an agent that echoed `rk_live_...` into
99
+ * its stderr would otherwise reach a terminal through this new field.
100
+ */
101
+ export function attemptFailure(attempt, completionReason, disposition, payload) {
102
+ const selected = selectEvidence(payload);
103
+ let truncated = false;
104
+ const bound = (value) => {
105
+ const redacted = redact(value);
106
+ if (Buffer.byteLength(redacted, 'utf8') > ATTEMPT_TAIL_BYTES)
107
+ truncated = true;
108
+ return tail(redacted, ATTEMPT_TAIL_BYTES);
109
+ };
110
+ const record_ = {
111
+ ...(typeof attempt === 'number' && Number.isSafeInteger(attempt) && attempt > 0
112
+ ? { attempt } : {}),
113
+ completionReason,
114
+ ...(typeof disposition === 'string' && disposition.length > 0 ? { disposition } : {}),
115
+ ...(selected.exitCode === undefined ? {} : { exitCode: selected.exitCode }),
116
+ ...(selected.stdoutTail === undefined ? {} : { stdoutTail: bound(selected.stdoutTail) }),
117
+ ...(selected.stderrTail === undefined ? {} : { stderrTail: bound(selected.stderrTail) }),
118
+ ...(selected.detail === undefined ? {} : { detail: bound(selected.detail) }),
119
+ };
120
+ return truncated ? { ...record_, truncated } : record_;
121
+ }
122
+ /**
123
+ * Everything about a completion that bears on WHY it failed, unbounded.
124
+ *
125
+ * Deliberately not the display selection: `selectEvidence` suppresses the
126
+ * daemon's render when process-shaped output exists, and prefers a transcript
127
+ * excerpt over both, so two attempts can show identical excerpts over
128
+ * different gate verdicts. Everything the journal recorded about the failure
129
+ * is read here instead, before any bound is applied.
130
+ *
131
+ * Timestamps, transcript paths, dispositions and attempt numbers are NOT
132
+ * causes and are excluded: they differ on every attempt by construction.
133
+ */
134
+ export function failureCause(completionReason, payload) {
135
+ const verification = record(payload['verification']);
136
+ const output = record(payload['output']);
137
+ const trajectory = record(payload['trajectory_tail']);
138
+ const failure = record(record(trajectory?.['transcript'])?.['failure']);
139
+ const verificationDetail = text(verification?.['detail']);
140
+ const accounts = [
141
+ verificationDetail,
142
+ text(output?.['stdout_tail']), text(output?.['stderr_tail']),
143
+ text(trajectory?.['stdout_tail']), text(trajectory?.['stderr_tail']),
144
+ text(failure?.['excerpt']),
145
+ ];
146
+ const exitCodes = [output?.['exit_code'], trajectory?.['exit_code']]
147
+ .filter(value => typeof value === 'number');
148
+ return {
149
+ key: JSON.stringify([
150
+ // `verification_failed` on a retry and `retries_exhausted` at the budget
151
+ // limit are the SAME fallback over the same failure: `completion_actions`
152
+ // picks the label from the branch it took, not from the cause. Comparing
153
+ // them literally would report "the retry failed differently" on every
154
+ // ordinary repeated failure. No other pair of labels is collapsed.
155
+ completionReason === 'verification_failed' || completionReason === 'retries_exhausted'
156
+ ? 'kernel_rejected' : completionReason,
157
+ text(verification?.['gate']), text(verification?.['verdict']), verificationDetail,
158
+ ...exitCodes, ...accounts, text(failure?.['kind']),
159
+ ]),
160
+ // An attempt that journaled nothing about itself cannot agree with
161
+ // another one; it can only fail to disagree.
162
+ recorded: exitCodes.length > 0 || accounts.some(account => account !== undefined),
163
+ producerTruncated: (verificationDetail !== undefined
164
+ && PRODUCER_TRUNCATED.test(verificationDetail))
165
+ // The transcript digest's own flag (`boundTranscriptDigest`,
166
+ // agent-transcript.ts): the worker already cut this excerpt, so equal
167
+ // survivors cannot establish identical failures either.
168
+ || failure?.['truncated'] === true,
169
+ };
170
+ }
171
+ /**
172
+ * Only attempts that recorded something can establish a difference.
173
+ *
174
+ * An attempt that journaled no account of itself differs from every other one
175
+ * on paper while saying nothing about why it failed, and reporting that as
176
+ * `differs` would put "an earlier attempt may have had side effects" on a
177
+ * crash that is evidence of nothing. Truncation is not the same case: two
178
+ * renders the daemon already cut can only look MORE alike than they were, so
179
+ * surviving bytes that disagree still prove the causes disagreed.
180
+ */
181
+ export function compareAttempts(causes) {
182
+ const recorded = causes.filter(cause => cause.recorded);
183
+ if (new Set(recorded.map(cause => cause.key)).size > 1)
184
+ return 'differs';
185
+ return recorded.length === causes.length && causes.every(cause => !cause.producerTruncated)
186
+ ? 'unchanged' : 'unknown';
187
+ }
188
+ const COMPARISON_CLAUSE = {
189
+ differs: 'recorded failure evidence differs. An earlier attempt may have had side effects.',
190
+ unchanged: 'recorded failure evidence is unchanged across them.',
191
+ unknown: 'recorded failure evidence is incomplete, so whether the causes differ is unknown.',
192
+ };
193
+ /**
194
+ * Every failed attempt, oldest first, under one line saying whether they
195
+ * agree. Rendered in full rather than elided: `flows logs` prints the runner
196
+ * log without eliding it, so an attempt dropped here is an attempt that
197
+ * reaches no reader at all.
198
+ */
199
+ export function renderAttemptHistory(details) {
200
+ const attempts = details.attempts;
201
+ if (attempts === undefined || attempts.length < 2)
202
+ return '';
203
+ const comparison = COMPARISON_CLAUSE[details.attemptEvidence ?? 'unknown'];
204
+ return [`\nAttempts: ${attempts.length} failed; ${comparison}`, ...attempts.map(renderAttempt)]
205
+ .join('\n');
206
+ }
207
+ function renderAttempt(attempt) {
208
+ const head = ` attempt ${attempt.attempt ?? '?'}: ${attempt.completionReason ?? 'unknown'}`
209
+ + (attempt.exitCode === undefined ? '' : ` exit=${attempt.exitCode}`)
210
+ + (attempt.truncated ? ' (excerpt truncated)' : '');
211
+ // An empty `stderrTail` is a journaled fact but not an account of anything,
212
+ // so it never displaces useful stdout the way `detail ?? stderr ?? stdout`
213
+ // would. Both are kept when both exist.
214
+ const accounts = [
215
+ ['detail', attempt.detail], ['stderr', attempt.stderrTail], ['stdout', attempt.stdoutTail],
216
+ ].filter((pair) => typeof pair[1] === 'string' && pair[1].length > 0);
217
+ if (accounts.length === 0)
218
+ return `${head} — no failure evidence recorded`;
219
+ const [only] = accounts;
220
+ if (accounts.length === 1 && !only[1].includes('\n'))
221
+ return `${head} — ${only[0]}: ${only[1]}`;
222
+ return [head, ...accounts.map(([label, value]) => indent(`${label}: ${value}`))].join('\n');
223
+ }
224
+ /** Continuation lines are indented past the label so the list stays readable. */
225
+ function indent(block) {
226
+ const [first, ...rest] = block.split('\n');
227
+ return [` ${first}`, ...rest.map(line => ` ${line}`)].join('\n');
228
+ }
229
+ function text(value) {
230
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
231
+ }
232
+ function processShaped(value) {
233
+ return typeof value['exit_code'] === 'number'
234
+ || typeof value['stdout_tail'] === 'string' || typeof value['stderr_tail'] === 'string';
235
+ }
236
+ function parsed(value) {
237
+ try {
238
+ return record(JSON.parse(value));
239
+ }
240
+ catch {
241
+ return undefined;
242
+ }
243
+ }
244
+ export function record(value) {
245
+ return value !== null && typeof value === 'object' && !Array.isArray(value)
246
+ ? value : undefined;
247
+ }
248
+ export function tail(value, limit) {
249
+ const bytes = Buffer.from(value, 'utf8');
250
+ let start = Math.max(0, bytes.length - limit);
251
+ // Drop a partial leading code point, avoiding replacement-byte expansion.
252
+ while (start < bytes.length && (bytes[start] & 0xc0) === 0x80)
253
+ start += 1;
254
+ // Preserve tabs/newlines; replace binary controls (including ESC and CR),
255
+ // C1 controls and Unicode formatting controls without growing the excerpt.
256
+ return bytes.subarray(start).toString('utf8')
257
+ .replace(/[\p{Cc}\p{Cf}]/gu, character => character === '\n' || character === '\t' ? character : '?');
258
+ }
259
+ //# sourceMappingURL=step-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-evidence.js","sourceRoot":"","sources":["../../src/cli/step-evidence.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,16 @@ import type { JournalClient } from '../journal-client.js';
17
17
  * agent or llm step the worker's `{exit_code, stdout_tail, stderr_tail}` is
18
18
  * nulled out of `output` and survives only as the bounded render the daemon
19
19
  * captured into `verification.detail` (`worker_failure_detail`,
20
- * relayflowd/src/engine/remote.rs). Both are read, in that order, and the
21
- * daemon's render is re-parsed when it carries that same shape: an exit code
22
- * the daemon stringified on its way into the journal is still an exit code,
23
- * and printing it as one is the difference between a diagnosis and a blob.
20
+ * relayflowd/src/engine/remote.rs). Both are read by `selectEvidence`, in that
21
+ * order, and the daemon's render is re-parsed when it carries that same shape.
22
+ *
23
+ * EVERY failed attempt is collected, not only the terminal one. The kernel
24
+ * appends a `step.completed` per attempt, so a retried step's first failure is
25
+ * in the journal — but `retries_exhausted` reported only the last attempt, and
26
+ * a retry that fails differently (because the first attempt already had a side
27
+ * effect) is exactly when the last attempt is the least informative record
28
+ * there is. The scalar fields still describe the terminal attempt; `attempts`
29
+ * is additive.
24
30
  */
25
31
  export declare function stepFailureDetails(client: JournalClient, runId: string): Promise<StepFailedDetails | undefined>;
26
32
  /**
@@ -39,6 +45,10 @@ export declare function stepFailureDetails(client: JournalClient, runId: string)
39
45
  * stops it being misread. Unknown values are omitted rather than defaulted —
40
46
  * an absent budget must not be reported as one attempt.
41
47
  *
48
+ * The attempt history follows that line and precedes the terminal attempt's
49
+ * own clauses, so the first error is visible without scrolling past the last
50
+ * one's output tails.
51
+ *
42
52
  * Lives next to `StepFailedDetails`'s extractor rather than in `cli/run.ts` so
43
53
  * the authored `f.run` path can render the same grammar without importing the
44
54
  * run lifecycle (which would be a cycle).
@@ -1 +1 @@
1
- {"version":3,"file":"step-failure.d.ts","sourceRoot":"","sources":["../../src/cli/step-failure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAyDxC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAWrE;AAQD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAaxC"}
1
+ {"version":3,"file":"step-failure.d.ts","sourceRoot":"","sources":["../../src/cli/step-failure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiB1D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA8ExC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAYrE;AAQD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAaxC"}
@@ -1,6 +1,6 @@
1
1
  import { join } from 'node:path';
2
2
  import { DEFAULT_DATA_DIR } from '../daemon-connection.js';
3
- import { formatStepExcerpt } from './step-excerpt.js';
3
+ import { attemptFailure, compareAttempts, failureCause, record, renderAttemptHistory, terminalEvidence, } from './step-evidence.js';
4
4
  /**
5
5
  * Read what a failed step left in the journal — for any step type.
6
6
  *
@@ -18,10 +18,16 @@ import { formatStepExcerpt } from './step-excerpt.js';
18
18
  * agent or llm step the worker's `{exit_code, stdout_tail, stderr_tail}` is
19
19
  * nulled out of `output` and survives only as the bounded render the daemon
20
20
  * captured into `verification.detail` (`worker_failure_detail`,
21
- * relayflowd/src/engine/remote.rs). Both are read, in that order, and the
22
- * daemon's render is re-parsed when it carries that same shape: an exit code
23
- * the daemon stringified on its way into the journal is still an exit code,
24
- * and printing it as one is the difference between a diagnosis and a blob.
21
+ * relayflowd/src/engine/remote.rs). Both are read by `selectEvidence`, in that
22
+ * order, and the daemon's render is re-parsed when it carries that same shape.
23
+ *
24
+ * EVERY failed attempt is collected, not only the terminal one. The kernel
25
+ * appends a `step.completed` per attempt, so a retried step's first failure is
26
+ * in the journal — but `retries_exhausted` reported only the last attempt, and
27
+ * a retry that fails differently (because the first attempt already had a side
28
+ * effect) is exactly when the last attempt is the least informative record
29
+ * there is. The scalar fields still describe the terminal attempt; `attempts`
30
+ * is additive.
25
31
  */
26
32
  export async function stepFailureDetails(client, runId) {
27
33
  const snapshot = await client.runGet(runId);
@@ -34,6 +40,9 @@ export async function stepFailureDetails(client, runId) {
34
40
  // enforcing (relayflowd-core/src/entry.rs `AttemptStartedPayload`). They are
35
41
  // collected on the same walk and reported only when the journal held them.
36
42
  const budgets = new Map();
43
+ // Keyed by step, so interleaved steps never pool their attempts and a page
44
+ // boundary never splits one step's history.
45
+ const histories = new Map();
37
46
  while (true) {
38
47
  const { entries } = await client.journalRead(runId, fromSeq, 100);
39
48
  if (entries.length === 0)
@@ -60,16 +69,27 @@ export async function stepFailureDetails(client, runId) {
60
69
  // A later completion supersedes an earlier failed attempt.
61
70
  failures.delete(stepId);
62
71
  const payload = record(entry['payload']);
63
- if (payload === undefined)
72
+ const completionReason = payload?.['completionReason'];
73
+ // A success — or a completion this reader cannot read — ends the failure
74
+ // history too: what a step that eventually succeeded printed on the way
75
+ // is not the diagnosis of a later, different failure. The journal still
76
+ // holds every entry; only this diagnostic's candidate is cleared.
77
+ if (payload === undefined || typeof completionReason !== 'string' || completionReason === 'success') {
78
+ histories.delete(stepId);
64
79
  continue;
65
- const completionReason = payload['completionReason'];
80
+ }
81
+ const history = histories.get(stepId) ?? { records: [], causes: [] };
82
+ // Recorded for `retry` and `park` alike: the kernel's disposition says
83
+ // what it did next, not whether the attempt failed.
84
+ history.records.push(attemptFailure(entry['attempt'], completionReason, payload['disposition'], payload));
85
+ history.causes.push(failureCause(completionReason, payload));
86
+ histories.set(stepId, history);
66
87
  // A terminal completion that is not a success is the failure, whatever
67
88
  // its step type. The old predicate also demanded a non-zero `exit_code`,
68
89
  // which no agent completion carries and which a deterministic step that
69
90
  // exits 0 and then fails its gate does not carry either — both were
70
91
  // silently skipped.
71
- if (payload['disposition'] !== 'step_done'
72
- || typeof completionReason !== 'string' || completionReason === 'success')
92
+ if (payload['disposition'] !== 'step_done')
73
93
  continue;
74
94
  const stepType = snapshot.steps[stepId]?.type;
75
95
  const attempt = entry['attempt'];
@@ -80,7 +100,13 @@ export async function stepFailureDetails(client, runId) {
80
100
  ...(stepType === undefined ? {} : { stepType }),
81
101
  ...(typeof attempt === 'number' && Number.isSafeInteger(attempt) && attempt > 0 ? { attempt } : {}),
82
102
  ...(maxIterations === undefined ? {} : { maxIterations }),
83
- ...evidence(payload),
103
+ ...terminalEvidence(payload),
104
+ // A single failed attempt is already fully described by the scalars
105
+ // above; repeating it as a one-element history would add a clause to
106
+ // every ordinary failure report without adding a fact.
107
+ ...(history.records.length > 1
108
+ ? { attempts: history.records, attemptEvidence: compareAttempts(history.causes) }
109
+ : {}),
84
110
  });
85
111
  }
86
112
  }
@@ -102,6 +128,10 @@ export async function stepFailureDetails(client, runId) {
102
128
  * stops it being misread. Unknown values are omitted rather than defaulted —
103
129
  * an absent budget must not be reported as one attempt.
104
130
  *
131
+ * The attempt history follows that line and precedes the terminal attempt's
132
+ * own clauses, so the first error is visible without scrolling past the last
133
+ * one's output tails.
134
+ *
105
135
  * Lives next to `StepFailedDetails`'s extractor rather than in `cli/run.ts` so
106
136
  * the authored `f.run` path can render the same grammar without importing the
107
137
  * run lifecycle (which would be a cycle).
@@ -113,6 +143,7 @@ export function renderStepEvidence(details) {
113
143
  + renderAttempt(details)
114
144
  + (details.exitCode === undefined ? '' : ` exit=${details.exitCode}`)
115
145
  + '.'
146
+ + renderAttemptHistory(details)
116
147
  + (details.detail === undefined ? '' : `\nDetail: ${details.detail}`)
117
148
  + (details.stdoutTail ? `\nStdout (captured excerpt):\n${details.stdoutTail}` : '')
118
149
  + (details.stderrTail ? `\nStderr (captured excerpt):\n${details.stderrTail}` : '')
@@ -155,72 +186,6 @@ export function inspectionHint(runId, stepId, dataDir) {
155
186
  ...(dataDir === undefined ? {} : { journalPath: join(dataDir, 'runs', `${runId}.sqlite3`) }),
156
187
  };
157
188
  }
158
- /**
159
- * Pull the process-shaped fields out of whichever field carried them.
160
- *
161
- * `verification.detail` is last because it is the daemon's own render rather
162
- * than the worker's structured report — but for an agent step it is the only
163
- * thing that survives, so it is parsed when it parses and kept verbatim when
164
- * it does not. A truncated render (the daemon caps at 2,000 chars and appends
165
- * a truncation note) will not parse; that falls through to the raw string,
166
- * which is still the account of what went wrong.
167
- *
168
- * An agent or llm completion now also carries `trajectory_tail.transcript`
169
- * (agent-transcript.ts) on every attempt. That object is not process-shaped,
170
- * so it must not shadow the render that is: the first candidate that carries
171
- * an exit code or a tail wins. The digest contributes what only it has — the
172
- * failure excerpt the worker picked out of the provider's frames, and the
173
- * path of the transcript file.
174
- */
175
- function evidence(payload) {
176
- const detail = record(payload['verification'])?.['detail'];
177
- const candidates = [
178
- record(payload['output']),
179
- record(payload['trajectory_tail']),
180
- typeof detail === 'string' ? parsed(detail) : undefined,
181
- ].filter((candidate) => candidate !== undefined);
182
- const structured = candidates.find(processShaped) ?? candidates[0];
183
- const exitCode = structured?.['exit_code'];
184
- const stdout = structured?.['stdout_tail'];
185
- const stderr = structured?.['stderr_tail'];
186
- const structuredShape = structured !== undefined && processShaped(structured);
187
- const transcript = record(record(payload['trajectory_tail'])?.['transcript']);
188
- const failure = record(transcript?.['failure']);
189
- const failureExcerpt = failure?.['excerpt'];
190
- const transcriptPath = record(transcript?.['file'])?.['path'];
191
- // The excerpt is the worker's own pick of the failure; a `stderr` excerpt
192
- // is the same bytes as `stderrTail`, so it is not printed twice.
193
- const excerptDetail = typeof failureExcerpt === 'string' && failureExcerpt.length > 0
194
- && !(failure?.['kind'] === 'stderr' && typeof stderr === 'string')
195
- ? formatStepExcerpt(failureExcerpt) : undefined;
196
- return {
197
- ...(typeof exitCode === 'number' && Number.isSafeInteger(exitCode) ? { exitCode } : {}),
198
- ...(typeof stdout === 'string' && stdout.length > 0 ? { stdoutTail: formatStepExcerpt(stdout) } : {}),
199
- ...(typeof stderr === 'string' ? { stderrTail: formatStepExcerpt(stderr) } : {}),
200
- // Keep the daemon's account only when it was NOT just a render of the
201
- // fields above — otherwise the same bytes print twice.
202
- ...(excerptDetail !== undefined ? { detail: excerptDetail }
203
- : typeof detail === 'string' && detail.length > 0 && !structuredShape
204
- ? { detail: formatStepExcerpt(detail) } : {}),
205
- ...(typeof transcriptPath === 'string' && transcriptPath.length > 0 ? { transcriptPath } : {}),
206
- };
207
- }
208
- function processShaped(value) {
209
- return typeof value['exit_code'] === 'number'
210
- || typeof value['stdout_tail'] === 'string' || typeof value['stderr_tail'] === 'string';
211
- }
212
- function parsed(value) {
213
- try {
214
- return record(JSON.parse(value));
215
- }
216
- catch {
217
- return undefined;
218
- }
219
- }
220
- function record(value) {
221
- return value !== null && typeof value === 'object' && !Array.isArray(value)
222
- ? value : undefined;
223
- }
224
189
  function shellQuote(value) {
225
190
  return /^[A-Za-z0-9_-]+$/.test(value) && !value.startsWith('-')
226
191
  ? value : `'${value.replace(/'/g, "'\\''")}'`;
@@ -1 +1 @@
1
- {"version":3,"file":"step-failure.js","sourceRoot":"","sources":["../../src/cli/step-failure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-failure.js","sourceRoot":"","sources":["../../src/cli/step-failure.ts"],"names":[],"mappings":"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"}
@@ -194,6 +194,9 @@ export declare const CLI_VERBS: readonly [{
194
194
  }, {
195
195
  readonly flags: "--raw";
196
196
  readonly description: "Print the transcript JSONL unrendered (still redacted)";
197
+ }, {
198
+ readonly flags: "--follow";
199
+ readonly description: "Append new runner output until the run ends; exits with the run’s outcome";
197
200
  }, CliOptionSpec];
198
201
  readonly variants: readonly ["logs"];
199
202
  }, {
@@ -394,6 +397,9 @@ export declare const CLI_VERBS: readonly [{
394
397
  }, {
395
398
  readonly flags: "--cloud";
396
399
  readonly description: "Read the run from Cloud instead of a local journal; needs the run id";
400
+ }, {
401
+ readonly flags: "--watch";
402
+ readonly description: "With --cloud: redraw until the run ends, then exit with its outcome";
397
403
  }];
398
404
  readonly variants: readonly ["status"];
399
405
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-commands.d.ts","sourceRoot":"","sources":["../src/cli-commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC1C;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACzC;AAED,uEAAuE;AACvE,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD;;;;;;OAMG;IACH,QAAQ,EAAE,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;CAC5C;AAyCD;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgRqB,CAAC;AAE5C;;;;GAIG;AACH,KAAK,eAAe,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;;;;;GAOG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;AACtC,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AACnG,MAAM,MAAM,2BAA2B,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAEvG;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAA+C,CAAC"}
1
+ {"version":3,"file":"cli-commands.d.ts","sourceRoot":"","sources":["../src/cli-commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC1C;AAED,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CACzC;AAED,uEAAuE;AACvE,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD;;;;;;OAMG;IACH,QAAQ,EAAE,SAAS,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;CAC5C;AAyCD;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkRqB,CAAC;AAE5C;;;;GAIG;AACH,KAAK,eAAe,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;;;;;GAOG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;AACtC,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AACnG,MAAM,MAAM,2BAA2B,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAEvG;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAA+C,CAAC"}
@@ -130,6 +130,7 @@ export const CLI_VERBS = [
130
130
  options: [
131
131
  { flags: '--step <name>', description: 'Show that agent step’s transcript instead of the runner log' },
132
132
  { flags: '--raw', description: 'Print the transcript JSONL unrendered (still redacted)' },
133
+ { flags: '--follow', description: 'Append new runner output until the run ends; exits with the run’s outcome' },
133
134
  JSON_OPTION,
134
135
  ],
135
136
  variants: ['logs'],
@@ -265,6 +266,7 @@ export const CLI_VERBS = [
265
266
  DATA_DIR_OPTION,
266
267
  { flags: '--tail <n>', description: 'Lines of each agent attempt’s transcript tail to show' },
267
268
  { flags: '--cloud', description: 'Read the run from Cloud instead of a local journal; needs the run id' },
269
+ { flags: '--watch', description: 'With --cloud: redraw until the run ends, then exit with its outcome' },
268
270
  ],
269
271
  variants: ['status'],
270
272
  },
@@ -1 +1 @@
1
- {"version":3,"file":"cli-commands.js","sourceRoot":"","sources":["../src/cli-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-commands.js","sourceRoot":"","sources":["../src/cli-commands.ts"],"names":[],"mappings":"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"}