@tagma/sdk 0.6.4 → 0.6.5

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 (73) hide show
  1. package/README.md +8 -5
  2. package/dist/dag.test.d.ts +2 -0
  3. package/dist/dag.test.d.ts.map +1 -0
  4. package/dist/dag.test.js +42 -0
  5. package/dist/dag.test.js.map +1 -0
  6. package/dist/engine-ports.test.d.ts +2 -0
  7. package/dist/engine-ports.test.d.ts.map +1 -0
  8. package/dist/engine-ports.test.js +378 -0
  9. package/dist/engine-ports.test.js.map +1 -0
  10. package/dist/engine.d.ts.map +1 -1
  11. package/dist/engine.js +194 -21
  12. package/dist/engine.js.map +1 -1
  13. package/dist/pipeline-runner.d.ts.map +1 -1
  14. package/dist/pipeline-runner.js +3 -0
  15. package/dist/pipeline-runner.js.map +1 -1
  16. package/dist/ports.d.ts +118 -0
  17. package/dist/ports.d.ts.map +1 -0
  18. package/dist/ports.js +365 -0
  19. package/dist/ports.js.map +1 -0
  20. package/dist/ports.test.d.ts +2 -0
  21. package/dist/ports.test.d.ts.map +1 -0
  22. package/dist/ports.test.js +262 -0
  23. package/dist/ports.test.js.map +1 -0
  24. package/dist/prompt-doc.d.ts +35 -1
  25. package/dist/prompt-doc.d.ts.map +1 -1
  26. package/dist/prompt-doc.js +110 -0
  27. package/dist/prompt-doc.js.map +1 -1
  28. package/dist/prompt-doc.test.d.ts +2 -0
  29. package/dist/prompt-doc.test.d.ts.map +1 -0
  30. package/dist/prompt-doc.test.js +145 -0
  31. package/dist/prompt-doc.test.js.map +1 -0
  32. package/dist/runner.d.ts +17 -0
  33. package/dist/runner.d.ts.map +1 -1
  34. package/dist/runner.js +171 -8
  35. package/dist/runner.js.map +1 -1
  36. package/dist/runner.test.d.ts +2 -0
  37. package/dist/runner.test.d.ts.map +1 -0
  38. package/dist/runner.test.js +119 -0
  39. package/dist/runner.test.js.map +1 -0
  40. package/dist/schema-ports.test.d.ts +2 -0
  41. package/dist/schema-ports.test.d.ts.map +1 -0
  42. package/dist/schema-ports.test.js +219 -0
  43. package/dist/schema-ports.test.js.map +1 -0
  44. package/dist/schema.d.ts.map +1 -1
  45. package/dist/schema.js +8 -0
  46. package/dist/schema.js.map +1 -1
  47. package/dist/sdk.d.ts +3 -1
  48. package/dist/sdk.d.ts.map +1 -1
  49. package/dist/sdk.js +5 -1
  50. package/dist/sdk.js.map +1 -1
  51. package/dist/validate-raw-ports.test.d.ts +2 -0
  52. package/dist/validate-raw-ports.test.d.ts.map +1 -0
  53. package/dist/validate-raw-ports.test.js +157 -0
  54. package/dist/validate-raw-ports.test.js.map +1 -0
  55. package/dist/validate-raw.d.ts.map +1 -1
  56. package/dist/validate-raw.js +141 -0
  57. package/dist/validate-raw.js.map +1 -1
  58. package/package.json +2 -7
  59. package/src/dag.test.ts +56 -0
  60. package/src/engine-ports.test.ts +404 -0
  61. package/src/engine.ts +231 -24
  62. package/src/pipeline-runner.ts +3 -0
  63. package/src/ports.test.ts +301 -0
  64. package/src/ports.ts +442 -0
  65. package/src/prompt-doc.test.ts +174 -0
  66. package/src/prompt-doc.ts +121 -1
  67. package/src/runner.test.ts +142 -0
  68. package/src/runner.ts +198 -8
  69. package/src/schema-ports.test.ts +236 -0
  70. package/src/schema.ts +8 -0
  71. package/src/sdk.ts +14 -0
  72. package/src/validate-raw-ports.test.ts +198 -0
  73. package/src/validate-raw.ts +155 -1
package/dist/runner.d.ts CHANGED
@@ -2,6 +2,23 @@ import type { SpawnSpec, DriverPlugin, TaskResult } from './types';
2
2
  export interface RunOptions {
3
3
  readonly timeoutMs?: number;
4
4
  readonly signal?: AbortSignal;
5
+ /**
6
+ * If set, stream the child's stdout to this file path as it arrives. The
7
+ * returned `TaskResult.stdout` is still a bounded in-memory tail
8
+ * (`maxStdoutTailBytes`) — callers that need the full output should read
9
+ * from the returned `stdoutPath`. Parent directories are created as needed.
10
+ */
11
+ readonly stdoutPath?: string;
12
+ /** Symmetric to `stdoutPath` for stderr. */
13
+ readonly stderrPath?: string;
14
+ /**
15
+ * Cap on bytes retained in memory for the returned `TaskResult.stdout`
16
+ * string. Defaults to `DEFAULT_STDOUT_TAIL_BYTES`. Bytes beyond this cap
17
+ * from the HEAD of the stream are dropped from the in-memory string; the
18
+ * on-disk file (if `stdoutPath` is set) is still the full output.
19
+ */
20
+ readonly maxStdoutTailBytes?: number;
21
+ readonly maxStderrTailBytes?: number;
5
22
  }
6
23
  /**
7
24
  * R2: Validate a SpawnSpec returned by a third-party driver. Returns null on
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAiCnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAoJD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoClF;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,UAAU,CAAC,CAiNrB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,UAAU,CAAC,CAMrB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA4CnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA4RD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoClF;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,UAAU,CAAC,CA0OrB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,UAAU,CAAC,CAMrB"}
package/dist/runner.js CHANGED
@@ -1,8 +1,19 @@
1
1
  import { existsSync, readFileSync, statSync } from 'node:fs';
2
+ import { mkdir, open } from 'node:fs/promises';
2
3
  import { dirname, isAbsolute, join, resolve as pathResolve } from 'node:path';
3
4
  import { shellArgs } from './utils';
4
5
  // Delay before escalating SIGTERM to SIGKILL when killing a timed-out process.
5
6
  const SIGKILL_DELAY_MS = 3_000;
7
+ /**
8
+ * Default cap for the in-memory tail retained for each stream. Picked so that
9
+ * a task producing runaway output (AI agent bug, adversarial input) cannot
10
+ * balloon the sidecar's RSS, while still being large enough that typical AI
11
+ * responses (which top out around low-MB of text) are returned whole. Callers
12
+ * that need different limits supply `RunOptions.maxStdoutTailBytes` /
13
+ * `.maxStderrTailBytes`.
14
+ */
15
+ const DEFAULT_STDOUT_TAIL_BYTES = 8 * 1024 * 1024; // 8 MB
16
+ const DEFAULT_STDERR_TAIL_BYTES = 4 * 1024 * 1024; // 4 MB
6
17
  /**
7
18
  * On Windows, proc.kill('SIGTERM') / proc.kill('SIGKILL') only terminate the
8
19
  * direct child process. When the child is a .cmd/.bat wrapper (e.g. claude.cmd),
@@ -29,6 +40,126 @@ function killProcessTree(pid) {
29
40
  /* best-effort — process may have already exited */
30
41
  }
31
42
  }
43
+ /**
44
+ * Read a stream to completion, persisting every chunk to `filePath` (when
45
+ * provided) while keeping only the last `maxTailBytes` bytes in memory.
46
+ *
47
+ * Why the split: large child outputs (multi-MB AI responses, verbose debug
48
+ * dumps) used to accumulate entirely in memory via `new Response(s).text()`,
49
+ * which let a runaway task balloon the sidecar's RSS. Streaming to disk +
50
+ * bounded tail gives callers: (a) unbounded data fidelity on disk, (b) fixed
51
+ * memory footprint, (c) the tail — which is almost always what callers
52
+ * actually consume (final AI answer, error summary, last N lines).
53
+ *
54
+ * Backpressure: we `await fh.write(chunk)` per chunk, so if disk is slow we
55
+ * naturally slow the reader — but we do NOT stop reading the pipe, so the
56
+ * child never blocks on a full stdout pipe. Disk errors don't abort the
57
+ * stream; we close the handle, null it, and keep consuming into the tail
58
+ * buffer only (with a breadcrumb in the returned text).
59
+ *
60
+ * Tail eviction: drops whole chunks from the front until total retained is
61
+ * at or below the cap. If a single chunk alone exceeds the cap (rare — would
62
+ * require a >cap-bytes chunkless burst from the child), we slice its tail.
63
+ * UTF-8 boundaries at the slice point may emit replacement characters when
64
+ * decoded — acceptable (the trailing/leading codepoint is a cosmetic loss).
65
+ */
66
+ async function collectStream(stream, filePath, maxTailBytes) {
67
+ if (!stream)
68
+ return { text: '', totalBytes: 0, path: null };
69
+ let fh = null;
70
+ let diskWriteFailed = false;
71
+ if (filePath) {
72
+ try {
73
+ await mkdir(dirname(filePath), { recursive: true });
74
+ fh = await open(filePath, 'w');
75
+ }
76
+ catch (err) {
77
+ console.error(`[runner] failed to open ${filePath} for output streaming: ${err instanceof Error ? err.message : String(err)}`);
78
+ diskWriteFailed = true;
79
+ }
80
+ }
81
+ const chunks = [];
82
+ let tailBytes = 0;
83
+ let totalBytes = 0;
84
+ const reader = stream.getReader();
85
+ try {
86
+ for (;;) {
87
+ const { done, value } = await reader.read();
88
+ if (done)
89
+ break;
90
+ totalBytes += value.length;
91
+ // Disk: persist every byte. Failure here degrades to tail-only mode
92
+ // without interrupting the stream (child must not block on pipe fill).
93
+ if (fh) {
94
+ try {
95
+ await fh.write(value);
96
+ }
97
+ catch (err) {
98
+ console.error(`[runner] disk write failed for ${filePath}: ${err instanceof Error ? err.message : String(err)}`);
99
+ try {
100
+ await fh.close();
101
+ }
102
+ catch {
103
+ /* ignore */
104
+ }
105
+ fh = null;
106
+ diskWriteFailed = true;
107
+ }
108
+ }
109
+ // Tail: append then evict whole chunks from the head while the total
110
+ // retained exceeds the cap. Keep at least one chunk so short outputs
111
+ // aren't lost entirely. Post-condition: tailBytes <= maxTailBytes OR
112
+ // only one chunk remains (handled by the next block).
113
+ chunks.push(value);
114
+ tailBytes += value.length;
115
+ while (chunks.length > 1 && tailBytes > maxTailBytes) {
116
+ tailBytes -= chunks.shift().length;
117
+ }
118
+ // Pathological: a single chunk larger than the cap. Slice its tail.
119
+ if (chunks.length === 1 && chunks[0].length > maxTailBytes) {
120
+ const only = chunks[0];
121
+ chunks[0] = only.slice(only.length - maxTailBytes);
122
+ tailBytes = chunks[0].length;
123
+ }
124
+ }
125
+ }
126
+ finally {
127
+ reader.releaseLock();
128
+ if (fh) {
129
+ try {
130
+ await fh.close();
131
+ }
132
+ catch {
133
+ /* ignore */
134
+ }
135
+ }
136
+ }
137
+ // Decode retained chunks. `stream: true` lets the decoder buffer partial
138
+ // code points across chunks, handling all boundaries except the very first
139
+ // chunk (which may itself start mid-codepoint after eviction) — that
140
+ // boundary gets a U+FFFD replacement, which is preferable to throwing.
141
+ const decoder = new TextDecoder();
142
+ let text = '';
143
+ for (const c of chunks)
144
+ text += decoder.decode(c, { stream: true });
145
+ text += decoder.decode();
146
+ if (totalBytes > tailBytes) {
147
+ const dropped = totalBytes - tailBytes;
148
+ const pathHint = filePath
149
+ ? diskWriteFailed
150
+ ? `${filePath} (partial — disk write failed mid-stream)`
151
+ : filePath
152
+ : 'not persisted (no path configured)';
153
+ text = `[…${dropped} bytes truncated from head — full output at: ${pathHint}]\n${text}`;
154
+ }
155
+ return {
156
+ text,
157
+ totalBytes,
158
+ // Return the path even on partial-write failure so operators can still
159
+ // inspect the head bytes we managed to persist.
160
+ path: filePath ?? null,
161
+ };
162
+ }
32
163
  /**
33
164
  * On Windows, Bun.spawn does NOT auto-append PATHEXT extensions like
34
165
  * CreateProcess does. A bare command like `claude` fails with ENOENT if the
@@ -162,13 +293,20 @@ function resolveWindowsExe(args, envPath) {
162
293
  * H2: Build a "failed before spawn" result. Tagged as 'spawn_error' so the
163
294
  * engine can show a useful classification ("driver tried to launch X but
164
295
  * the binary wasn't found") rather than the misleading "timeout".
296
+ *
297
+ * Pre-spawn failures never opened the output files, so stdoutPath /
298
+ * stderrPath are null regardless of what the caller passed in opts — there
299
+ * is nothing on disk to point at.
165
300
  */
166
301
  function failResult(stderr, durationMs) {
167
302
  return {
168
303
  exitCode: -1,
169
304
  stdout: '',
170
305
  stderr,
306
+ stdoutPath: null,
171
307
  stderrPath: null,
308
+ stdoutBytes: 0,
309
+ stderrBytes: stderr.length,
172
310
  durationMs,
173
311
  sessionId: null,
174
312
  normalizedOutput: null,
@@ -307,14 +445,27 @@ export async function runSpawn(spec, driver, opts = {}) {
307
445
  signal.addEventListener('abort', onAbort, { once: true });
308
446
  }
309
447
  }
310
- // ── 4. Collect output & wait (parallel to avoid pipe-buffer deadlock) ─
448
+ // ── 4. Collect output & wait ──────────────────────────────────────────
449
+ // Both streams are drained concurrently with `proc.exited` to avoid the
450
+ // classic pipe-buffer deadlock (child blocks on a full stdout pipe, parent
451
+ // is blocked waiting on exit which the child can't reach). Each stream is
452
+ // persisted to disk via `collectStream` as it arrives so we never hold the
453
+ // full output in memory — only the bounded tail.
311
454
  const stdoutStream = typeof proc.stdout === 'object' ? proc.stdout : undefined;
312
455
  const stderrStream = typeof proc.stderr === 'object' ? proc.stderr : undefined;
313
- const [exitCode, stdout, stderr] = await Promise.all([
456
+ const stdoutCap = opts.maxStdoutTailBytes ?? DEFAULT_STDOUT_TAIL_BYTES;
457
+ const stderrCap = opts.maxStderrTailBytes ?? DEFAULT_STDERR_TAIL_BYTES;
458
+ const [exitCode, stdoutResult, stderrResult] = await Promise.all([
314
459
  proc.exited,
315
- stdoutStream ? new Response(stdoutStream).text() : Promise.resolve(''),
316
- stderrStream ? new Response(stderrStream).text() : Promise.resolve(''),
460
+ collectStream(stdoutStream, opts.stdoutPath, stdoutCap),
461
+ collectStream(stderrStream, opts.stderrPath, stderrCap),
317
462
  ]);
463
+ const stdout = stdoutResult.text;
464
+ const stderr = stderrResult.text;
465
+ const stdoutPath = stdoutResult.path;
466
+ const stderrPath = stderrResult.path;
467
+ const stdoutBytes = stdoutResult.totalBytes;
468
+ const stderrBytes = stderrResult.totalBytes;
318
469
  // ── 5. Cleanup timers & listeners ──────────────────────────────────────
319
470
  if (timer)
320
471
  clearTimeout(timer);
@@ -334,7 +485,10 @@ export async function runSpawn(spec, driver, opts = {}) {
334
485
  exitCode: -1,
335
486
  stdout,
336
487
  stderr,
337
- stderrPath: null,
488
+ stdoutPath,
489
+ stderrPath,
490
+ stdoutBytes,
491
+ stderrBytes,
338
492
  durationMs,
339
493
  sessionId: null,
340
494
  normalizedOutput: null,
@@ -384,7 +538,10 @@ export async function runSpawn(spec, driver, opts = {}) {
384
538
  exitCode,
385
539
  stdout,
386
540
  stderr: stderr + note,
387
- stderrPath: null,
541
+ stdoutPath,
542
+ stderrPath,
543
+ stdoutBytes,
544
+ stderrBytes,
388
545
  durationMs,
389
546
  sessionId: null,
390
547
  normalizedOutput: null,
@@ -405,7 +562,10 @@ export async function runSpawn(spec, driver, opts = {}) {
405
562
  exitCode: exitCode === 0 ? 1 : exitCode,
406
563
  stdout,
407
564
  stderr: stderr + (stderr.endsWith('\n') ? '' : '\n') + `[driver] ${forcedFailureMessage}`,
408
- stderrPath: null,
565
+ stdoutPath,
566
+ stderrPath,
567
+ stdoutBytes,
568
+ stderrBytes,
409
569
  durationMs,
410
570
  sessionId,
411
571
  normalizedOutput,
@@ -416,7 +576,10 @@ export async function runSpawn(spec, driver, opts = {}) {
416
576
  exitCode,
417
577
  stdout,
418
578
  stderr,
419
- stderrPath: null,
579
+ stdoutPath,
580
+ stderrPath,
581
+ stdoutBytes,
582
+ stderrBytes,
420
583
  durationMs,
421
584
  sessionId,
422
585
  normalizedOutput,
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runner.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.test.d.ts","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,119 @@
1
+ import { test, expect } from 'bun:test';
2
+ import { mkdtempSync, readFileSync, rmSync, statSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { runSpawn } from './runner';
6
+ // Portable output producer — node is guaranteed in the bun dev env. Using a
7
+ // known runtime avoids shell-quoting differences between platforms.
8
+ function nodeArg(script) {
9
+ return ['node', '-e', script];
10
+ }
11
+ test('runSpawn: small output is returned whole, persisted byte-identical', async () => {
12
+ const tmp = mkdtempSync(join(tmpdir(), 'tagma-runner-small-'));
13
+ const stdoutPath = join(tmp, 'out');
14
+ const stderrPath = join(tmp, 'err');
15
+ try {
16
+ const result = await runSpawn({ args: nodeArg('process.stdout.write("hello world"); process.stderr.write("oops")') }, null, { stdoutPath, stderrPath });
17
+ expect(result.exitCode).toBe(0);
18
+ expect(result.stdout).toBe('hello world');
19
+ expect(result.stderr).toBe('oops');
20
+ expect(result.stdoutBytes).toBe(11);
21
+ expect(result.stderrBytes).toBe(4);
22
+ expect(result.stdoutPath).toBe(stdoutPath);
23
+ expect(result.stderrPath).toBe(stderrPath);
24
+ expect(readFileSync(stdoutPath, 'utf8')).toBe('hello world');
25
+ expect(readFileSync(stderrPath, 'utf8')).toBe('oops');
26
+ }
27
+ finally {
28
+ rmSync(tmp, { recursive: true, force: true });
29
+ }
30
+ });
31
+ test('runSpawn: oversized output — bounded tail in memory, full bytes on disk', async () => {
32
+ const tmp = mkdtempSync(join(tmpdir(), 'tagma-runner-big-'));
33
+ const stdoutPath = join(tmp, 'out');
34
+ try {
35
+ // Produce 3 MB of output against a 512 KB cap. The child writes in one
36
+ // shot; the runner should slice the single chunk's tail rather than
37
+ // evicting (the "pathological one-chunk-over-cap" branch).
38
+ const cap = 512 * 1024;
39
+ const totalBytes = 3 * 1024 * 1024;
40
+ const result = await runSpawn({
41
+ args: nodeArg(`process.stdout.write("a".repeat(${totalBytes}))`),
42
+ }, null, { stdoutPath, maxStdoutTailBytes: cap });
43
+ expect(result.exitCode).toBe(0);
44
+ // Total bytes reported match reality
45
+ expect(result.stdoutBytes).toBe(totalBytes);
46
+ // In-memory tail bounded (tail + truncation marker header is a couple
47
+ // hundred bytes at most; give it slack)
48
+ expect(result.stdout.length).toBeLessThan(cap + 1024);
49
+ expect(result.stdout.length).toBeGreaterThan(cap - 1024);
50
+ // Truncation breadcrumb present and points at the full output
51
+ expect(result.stdout).toContain('truncated from head');
52
+ expect(result.stdout).toContain(stdoutPath);
53
+ // The tail ends with the trailing bytes the child wrote ('a')
54
+ expect(result.stdout.endsWith('a')).toBe(true);
55
+ // Disk copy is byte-exact and full-length
56
+ const onDiskBytes = statSync(stdoutPath).size;
57
+ expect(onDiskBytes).toBe(totalBytes);
58
+ }
59
+ finally {
60
+ rmSync(tmp, { recursive: true, force: true });
61
+ }
62
+ });
63
+ test('runSpawn: chunked output — tail eviction keeps retained <= cap', async () => {
64
+ const tmp = mkdtempSync(join(tmpdir(), 'tagma-runner-chunked-'));
65
+ const stdoutPath = join(tmp, 'out');
66
+ try {
67
+ // Emit 8 chunks × 64 KB with sync drains between them, so the runner
68
+ // receives them as distinct chunks rather than one blob. Cap at 128 KB
69
+ // forces eviction of older chunks.
70
+ const cap = 128 * 1024;
71
+ const chunkSize = 64 * 1024;
72
+ const nChunks = 8;
73
+ const script = `
74
+ const chunk = 'b'.repeat(${chunkSize});
75
+ (async () => {
76
+ for (let i = 0; i < ${nChunks}; i++) {
77
+ process.stdout.write(chunk);
78
+ await new Promise(r => setImmediate(r));
79
+ }
80
+ })();
81
+ `;
82
+ const result = await runSpawn({ args: nodeArg(script) }, null, { stdoutPath, maxStdoutTailBytes: cap });
83
+ expect(result.exitCode).toBe(0);
84
+ expect(result.stdoutBytes).toBe(nChunks * chunkSize);
85
+ // Retained tail should be strictly bounded by cap (eviction case, no
86
+ // single-chunk slice). Allow small overhead for the truncation marker.
87
+ expect(result.stdout.length).toBeLessThan(cap + 1024);
88
+ expect(result.stdout).toContain('truncated from head');
89
+ // Full stream on disk
90
+ expect(statSync(stdoutPath).size).toBe(nChunks * chunkSize);
91
+ }
92
+ finally {
93
+ rmSync(tmp, { recursive: true, force: true });
94
+ }
95
+ });
96
+ test('runSpawn: no path configured — memory-only tail, returns null paths', async () => {
97
+ const result = await runSpawn({ args: nodeArg('process.stdout.write("inline only")') }, null, {});
98
+ expect(result.exitCode).toBe(0);
99
+ expect(result.stdout).toBe('inline only');
100
+ expect(result.stdoutPath).toBeNull();
101
+ expect(result.stderrPath).toBeNull();
102
+ });
103
+ test('runSpawn: pre-spawn failure (bad executable) — no paths leak on disk', async () => {
104
+ const tmp = mkdtempSync(join(tmpdir(), 'tagma-runner-bad-'));
105
+ const stdoutPath = join(tmp, 'out');
106
+ try {
107
+ const result = await runSpawn({ args: ['this-command-definitely-does-not-exist-xyz123'] }, null, { stdoutPath });
108
+ expect(result.exitCode).toBe(-1);
109
+ expect(result.failureKind).toBe('spawn_error');
110
+ // On pre-spawn failure the runner never opened the file, so stdoutPath
111
+ // is null (not the unopened path). Callers can rely on this to decide
112
+ // whether a disk file exists to read.
113
+ expect(result.stdoutPath).toBeNull();
114
+ }
115
+ finally {
116
+ rmSync(tmp, { recursive: true, force: true });
117
+ }
118
+ });
119
+ //# sourceMappingURL=runner.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../src/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,4EAA4E;AAC5E,oEAAoE;AACpE,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;IACpF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,EAAE,IAAI,EAAE,OAAO,CAAC,mEAAmE,CAAC,EAAE,EACtF,IAAI,EACJ,EAAE,UAAU,EAAE,UAAU,EAAE,CAC3B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;IACzF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,uEAAuE;QACvE,oEAAoE;QACpE,2DAA2D;QAC3D,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B;YACE,IAAI,EAAE,OAAO,CACX,mCAAmC,UAAU,IAAI,CAClD;SACF,EACD,IAAI,EACJ,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,CACxC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,qCAAqC;QACrC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACzD,8DAA8D;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,8DAA8D;QAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,0CAA0C;QAC1C,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;IAChF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,qEAAqE;QACrE,uEAAuE;QACvE,mCAAmC;QACnC,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,OAAO,GAAG,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG;iCACc,SAAS;;8BAEZ,OAAO;;;;;KAKhC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EACzB,IAAI,EACJ,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,CACxC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;QACrD,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACvD,sBAAsB;QACtB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;IACrF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,EAAE,IAAI,EAAE,OAAO,CAAC,qCAAqC,CAAC,EAAE,EACxD,IAAI,EACJ,EAAE,CACH,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;IACtF,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAC3B,EAAE,IAAI,EAAE,CAAC,+CAA+C,CAAC,EAAE,EAC3D,IAAI,EACJ,EAAE,UAAU,EAAE,CACf,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,uEAAuE;QACvE,sEAAsE;QACtE,sCAAsC;QACtC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema-ports.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-ports.test.d.ts","sourceRoot":"","sources":["../src/schema-ports.test.ts"],"names":[],"mappings":""}