@tagma/sdk 0.6.10 → 0.6.11

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.
@@ -13,6 +13,8 @@ function buildQidIndex(config) {
13
13
  for (const track of config.tracks ?? []) {
14
14
  if (!track.id)
15
15
  continue;
16
+ if (!Array.isArray(track.tasks))
17
+ continue;
16
18
  for (const task of track.tasks ?? []) {
17
19
  if (!task.id)
18
20
  continue;
@@ -34,6 +36,7 @@ function isValidDuration(input) {
34
36
  const isValidId = isValidTaskId;
35
37
  const VALID_ON_FAILURE = new Set(['skip_downstream', 'stop_all', 'ignore']);
36
38
  const VALID_REASONING_EFFORT = new Set(['low', 'medium', 'high']);
39
+ const PERMISSION_FIELDS = ['read', 'write', 'execute'];
37
40
  // Built-in plugin types always known to the SDK core, regardless of which
38
41
  // external plugin packages are installed. These MUST stay in sync with the
39
42
  // types that `bootstrapBuiltins()` registers, otherwise the editor will
@@ -89,7 +92,12 @@ export function validateRaw(config, knownTypes) {
89
92
  severity: 'warning',
90
93
  });
91
94
  }
92
- if (!config.tracks || config.tracks.length === 0) {
95
+ validatePermissions(config.permissions, 'permissions', errors);
96
+ if (!Array.isArray(config.tracks)) {
97
+ errors.push({ path: 'tracks', message: 'pipeline.tracks must be an array' });
98
+ return errors;
99
+ }
100
+ if (config.tracks.length === 0) {
93
101
  errors.push({ path: 'tracks', message: 'At least one track is required' });
94
102
  return errors; // No point going further without tracks
95
103
  }
@@ -104,8 +112,13 @@ export function validateRaw(config, knownTypes) {
104
112
  // ── Per-track validation ──
105
113
  const seenTrackIds = new Set();
106
114
  for (let ti = 0; ti < config.tracks.length; ti++) {
107
- const track = config.tracks[ti];
115
+ const maybeTrack = config.tracks[ti];
108
116
  const trackPath = `tracks[${ti}]`;
117
+ if (!maybeTrack || typeof maybeTrack !== 'object' || Array.isArray(maybeTrack)) {
118
+ errors.push({ path: trackPath, message: `Track ${ti} must be an object` });
119
+ continue;
120
+ }
121
+ const track = maybeTrack;
109
122
  if (!track.id?.trim()) {
110
123
  errors.push({ path: `${trackPath}.id`, message: 'Track id is required' });
111
124
  }
@@ -143,6 +156,7 @@ export function validateRaw(config, knownTypes) {
143
156
  severity: 'warning',
144
157
  });
145
158
  }
159
+ validatePermissions(track.permissions, `${trackPath}.permissions`, errors);
146
160
  // Track-level middlewares can reference a plugin that was uninstalled
147
161
  // after the YAML was written — surface a warning so the user notices
148
162
  // before hitting Run.
@@ -158,7 +172,14 @@ export function validateRaw(config, knownTypes) {
158
172
  }
159
173
  }
160
174
  }
161
- if (!track.tasks || track.tasks.length === 0) {
175
+ if (!Array.isArray(track.tasks)) {
176
+ errors.push({
177
+ path: `${trackPath}.tasks`,
178
+ message: `Track "${track.id || ti}": tasks must be an array`,
179
+ });
180
+ continue;
181
+ }
182
+ if (track.tasks.length === 0) {
162
183
  errors.push({
163
184
  path: `${trackPath}.tasks`,
164
185
  message: `Track "${track.id || ti}": must have at least one task`,
@@ -235,6 +256,7 @@ export function validateRaw(config, knownTypes) {
235
256
  severity: 'warning',
236
257
  });
237
258
  }
259
+ validatePermissions(task.permissions, `${taskPath}.permissions`, errors);
238
260
  // ── Plugin type warnings (trigger / completion / middlewares) ──
239
261
  // Only fire when the host supplied a `knownTypes` snapshot, so offline
240
262
  // validation stays quiet. The messages deliberately name the npm
@@ -325,6 +347,28 @@ export function validateRaw(config, knownTypes) {
325
347
  errors.push(...detectCycles(config, index));
326
348
  return errors;
327
349
  }
350
+ function validatePermissions(value, basePath, errors) {
351
+ if (value === undefined)
352
+ return;
353
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
354
+ errors.push({
355
+ path: basePath,
356
+ message: 'permissions must be an object with read/write/execute booleans',
357
+ });
358
+ return;
359
+ }
360
+ const p = value;
361
+ for (const field of PERMISSION_FIELDS) {
362
+ const path = `${basePath}.${field}`;
363
+ if (!(field in p)) {
364
+ errors.push({ path, message: `permissions.${field} is required` });
365
+ continue;
366
+ }
367
+ if (typeof p[field] !== 'boolean') {
368
+ errors.push({ path, message: `permissions.${field} must be a boolean` });
369
+ }
370
+ }
371
+ }
328
372
  const VALID_PORT_TYPES = new Set([
329
373
  'string',
330
374
  'number',
@@ -661,6 +705,8 @@ function detectCycles(config, index) {
661
705
  for (const track of config.tracks) {
662
706
  if (!track.id)
663
707
  continue;
708
+ if (!Array.isArray(track.tasks))
709
+ continue;
664
710
  for (const task of track.tasks ?? []) {
665
711
  if (!task.id)
666
712
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"validate-raw.js","sourceRoot":"","sources":["../src/validate-raw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-raw.js","sourceRoot":"","sources":["../src/validate-raw.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"yaml-compiler.d.ts","sourceRoot":"","sources":["../src/yaml-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QAC1E,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;KAC7E,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,kBAAuB,GAC5B,iBAAiB,CAmDnB"}
1
+ {"version":3,"file":"yaml-compiler.d.ts","sourceRoot":"","sources":["../src/yaml-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;QAC1E,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;KAC7E,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,kBAAuB,GAC5B,iBAAiB,CAuCnB"}
@@ -1,11 +1,11 @@
1
- import { parseYaml } from './schema';
1
+ import yaml from 'js-yaml';
2
2
  import { validateRaw } from './validate-raw';
3
3
  export function compileYamlContent(content, opts = {}) {
4
4
  const timestamp = new Date().toISOString();
5
5
  const sourceName = opts.sourceName ?? 'untitled';
6
- let config;
6
+ let doc;
7
7
  try {
8
- config = parseYaml(content);
8
+ doc = yaml.load(content);
9
9
  }
10
10
  catch (err) {
11
11
  return {
@@ -17,6 +17,11 @@ export function compileYamlContent(content, opts = {}) {
17
17
  summary: `YAML parse error: ${errorMessage(err)}`,
18
18
  };
19
19
  }
20
+ const envelopeErrors = validateEnvelope(doc);
21
+ if (envelopeErrors.length > 0) {
22
+ return buildValidationResult(timestamp, sourceName, envelopeErrors);
23
+ }
24
+ const config = doc.pipeline;
20
25
  let errors;
21
26
  try {
22
27
  errors = validateRaw(config, opts.knownTypes);
@@ -31,8 +36,21 @@ export function compileYamlContent(content, opts = {}) {
31
36
  summary: `Validation crashed: ${errorMessage(err)}`,
32
37
  };
33
38
  }
34
- const validationErrors = errors.filter((e) => e.severity === 'error' || e.severity == null);
35
- const validationWarnings = errors.filter((e) => e.severity === 'warning');
39
+ return buildValidationResult(timestamp, sourceName, errors);
40
+ }
41
+ function validateEnvelope(doc) {
42
+ if (!doc || typeof doc !== 'object' || Array.isArray(doc) || !('pipeline' in doc)) {
43
+ return [{ path: 'pipeline', message: 'Top-level "pipeline" key is required' }];
44
+ }
45
+ const pipeline = doc.pipeline;
46
+ if (!pipeline || typeof pipeline !== 'object' || Array.isArray(pipeline)) {
47
+ return [{ path: 'pipeline', message: 'pipeline must be an object' }];
48
+ }
49
+ return [];
50
+ }
51
+ function buildValidationResult(timestamp, sourceName, diagnostics) {
52
+ const validationErrors = diagnostics.filter((e) => e.severity === 'error' || e.severity == null);
53
+ const validationWarnings = diagnostics.filter((e) => e.severity === 'warning');
36
54
  return {
37
55
  timestamp,
38
56
  sourceName,
@@ -1 +1 @@
1
- {"version":3,"file":"yaml-compiler.js","sourceRoot":"","sources":["../src/yaml-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAqB7C,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,OAA2B,EAAE;IAE7B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;IAEjD,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,SAAS;YACT,UAAU;YACV,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxC,OAAO,EAAE,qBAAqB,YAAY,CAAC,GAAG,CAAC,EAAE;SAClD,CAAC;IACJ,CAAC;IAED,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,SAAS;YACT,UAAU;YACV,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxC,OAAO,EAAE,uBAAuB,YAAY,CAAC,GAAG,CAAC,EAAE;SACpD,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IAC5F,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAE1E,OAAO;QACL,SAAS;QACT,UAAU;QACV,OAAO,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;QACtC,OAAO,EAAE,IAAI;QACb,UAAU,EAAE;YACV,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAChF;QACD,OAAO,EACL,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAC3B,CAAC,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBAC/B,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,cAAc,kBAAkB,CAAC,MAAM,aAAa;YACxD,CAAC,CAAC,YAAY,gBAAgB,CAAC,MAAM,cAAc,kBAAkB,CAAC,MAAM,aAAa;KAC9F,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC5D,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"yaml-compiler.js","sourceRoot":"","sources":["../src/yaml-compiler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tagma/sdk",
3
- "version": "0.6.10",
3
+ "version": "0.6.11",
4
4
  "description": "Local AI task orchestration engine — core SDK for tagma pipelines",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -47,7 +47,7 @@
47
47
  "release:publish": "bun scripts/release.ts --publish"
48
48
  },
49
49
  "dependencies": {
50
- "@tagma/types": "0.4.6",
50
+ "@tagma/types": "0.4.7",
51
51
  "js-yaml": "^4.1.0",
52
52
  "chokidar": "^4.0.0"
53
53
  }
@@ -0,0 +1,50 @@
1
+ import { expect, test } from 'bun:test';
2
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { OutputCheckCompletion } from './output-check';
6
+ import type { TaskResult } from '../types';
7
+
8
+ function taskResult(stdout = 'payload'): TaskResult {
9
+ return {
10
+ exitCode: 0,
11
+ stdout,
12
+ stderr: '',
13
+ stdoutPath: null,
14
+ stderrPath: null,
15
+ stdoutBytes: stdout.length,
16
+ stderrBytes: 0,
17
+ durationMs: 0,
18
+ sessionId: null,
19
+ normalizedOutput: null,
20
+ failureKind: null,
21
+ };
22
+ }
23
+
24
+ test(
25
+ 'output_check drains verbose check stdout so the check process can exit',
26
+ async () => {
27
+ const dir = mkdtempSync(join(tmpdir(), 'tagma-output-check-'));
28
+ try {
29
+ const script = join(dir, 'verbose-check.js');
30
+ writeFileSync(
31
+ script,
32
+ 'process.stdout.write("x".repeat(16 * 1024 * 1024));\n',
33
+ );
34
+
35
+ const passed = await OutputCheckCompletion.check(
36
+ {
37
+ check: `node "${script}"`,
38
+ timeout: '1s',
39
+ },
40
+ taskResult(),
41
+ { workDir: dir, signal: new AbortController().signal },
42
+ );
43
+
44
+ expect(passed).toBe(true);
45
+ } finally {
46
+ rmSync(dir, { recursive: true, force: true });
47
+ }
48
+ },
49
+ 5_000,
50
+ );
@@ -0,0 +1,70 @@
1
+ import { describe, expect, test } from 'bun:test';
2
+ import { transferTask } from './config-ops';
3
+ import type { RawPipelineConfig } from './types';
4
+
5
+ describe('transferTask', () => {
6
+ test('does not remove the source task when the target track is missing', () => {
7
+ const config: RawPipelineConfig = {
8
+ name: 'Transfer',
9
+ tracks: [
10
+ {
11
+ id: 'a',
12
+ name: 'A',
13
+ tasks: [{ id: 'move_me', command: 'echo a' }],
14
+ },
15
+ ],
16
+ };
17
+
18
+ const next = transferTask(config, 'a', 'move_me', 'missing');
19
+
20
+ expect(next).toEqual(config);
21
+ });
22
+
23
+ test('qualifies moved task same-track dependencies so they keep pointing at the old track', () => {
24
+ const config: RawPipelineConfig = {
25
+ name: 'Transfer',
26
+ tracks: [
27
+ {
28
+ id: 'a',
29
+ name: 'A',
30
+ tasks: [
31
+ { id: 'build', command: 'echo old' },
32
+ { id: 'move_me', command: 'echo move', depends_on: ['build'] },
33
+ ],
34
+ },
35
+ {
36
+ id: 'b',
37
+ name: 'B',
38
+ tasks: [{ id: 'build', command: 'echo new' }],
39
+ },
40
+ ],
41
+ };
42
+
43
+ const next = transferTask(config, 'a', 'move_me', 'b');
44
+ const moved = next.tracks[1].tasks.find((task) => task.id === 'move_me');
45
+
46
+ expect(moved?.depends_on).toEqual(['a.build']);
47
+ });
48
+
49
+ test('does not overwrite an existing task in the target track with the same id', () => {
50
+ const config: RawPipelineConfig = {
51
+ name: 'Transfer',
52
+ tracks: [
53
+ {
54
+ id: 'a',
55
+ name: 'A',
56
+ tasks: [{ id: 'same', command: 'echo source' }],
57
+ },
58
+ {
59
+ id: 'b',
60
+ name: 'B',
61
+ tasks: [{ id: 'same', command: 'echo target' }],
62
+ },
63
+ ],
64
+ };
65
+
66
+ const next = transferTask(config, 'a', 'same', 'b');
67
+
68
+ expect(next).toEqual(config);
69
+ });
70
+ });
package/src/config-ops.ts CHANGED
@@ -228,19 +228,30 @@ export function transferTask(
228
228
  qualifyRefs = true,
229
229
  ): RawPipelineConfig {
230
230
  if (fromTrackId === toTrackId) return config;
231
+ const targetTrack = config.tracks.find((t) => t.id === toTrackId);
232
+ if (!targetTrack) return config;
233
+ if (targetTrack.tasks.some((tk) => tk.id === taskId)) return config;
231
234
 
232
235
  let task: RawTaskConfig | undefined;
236
+ let sourceLocalIds = new Set<string>();
233
237
  const afterRemove = {
234
238
  ...config,
235
239
  tracks: config.tracks.map((t) => {
236
240
  if (t.id !== fromTrackId) return t;
237
241
  const found = t.tasks.find((tk) => tk.id === taskId);
238
242
  if (!found) return t;
243
+ sourceLocalIds = new Set(t.tasks.map((tk) => tk.id));
239
244
  task = found;
240
245
  return { ...t, tasks: t.tasks.filter((tk) => tk.id !== taskId) };
241
246
  }),
242
247
  };
243
248
  if (!task) return config;
249
+ if (qualifyRefs) {
250
+ task = qualifyTaskRefs(task, (ref) => {
251
+ if (ref.includes('.') || !sourceLocalIds.has(ref)) return ref;
252
+ return `${fromTrackId}.${ref}`;
253
+ });
254
+ }
244
255
  const afterInsert = upsertTask(afterRemove, toTrackId, task);
245
256
 
246
257
  if (!qualifyRefs) return afterInsert;
@@ -0,0 +1,95 @@
1
+ import { describe, expect, test } from 'bun:test';
2
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import { bootstrapBuiltins } from './bootstrap';
6
+ import { PipelineRunner } from './pipeline-runner';
7
+ import { PluginRegistry } from './registry';
8
+ import type { PipelineConfig } from './types';
9
+
10
+ function makeDir(): string {
11
+ return mkdtempSync(join(tmpdir(), 'tagma-pipeline-runner-'));
12
+ }
13
+
14
+ function portsPipeline(dir: string): PipelineConfig {
15
+ const emit = join(dir, 'emit.js');
16
+ writeFileSync(
17
+ emit,
18
+ 'process.stdout.write(JSON.stringify({ city: "Shanghai" }) + "\\n");\n',
19
+ );
20
+ const echo = join(dir, 'echo.js');
21
+ writeFileSync(echo, 'process.stdout.write(process.argv[2] + "\\n");\n');
22
+
23
+ return {
24
+ name: 'runner-snapshot',
25
+ tracks: [
26
+ {
27
+ id: 't',
28
+ name: 'T',
29
+ tasks: [
30
+ {
31
+ id: 'up',
32
+ name: 'up',
33
+ command: `node "${emit}"`,
34
+ ports: {
35
+ outputs: [{ name: 'city', type: 'string' }],
36
+ },
37
+ },
38
+ {
39
+ id: 'down',
40
+ name: 'down',
41
+ depends_on: ['up'],
42
+ command: `node "${echo}" "{{inputs.city}}"`,
43
+ ports: {
44
+ inputs: [{ name: 'city', type: 'string', required: true }],
45
+ },
46
+ },
47
+ ],
48
+ },
49
+ ],
50
+ };
51
+ }
52
+
53
+ async function run(config: PipelineConfig, dir: string): Promise<PipelineRunner> {
54
+ const registry = new PluginRegistry();
55
+ bootstrapBuiltins(registry);
56
+ const runner = new PipelineRunner(config, dir, {
57
+ registry,
58
+ skipPluginLoading: true,
59
+ });
60
+
61
+ const result = await runner.start();
62
+ expect(result.success).toBe(true);
63
+ return runner;
64
+ }
65
+
66
+ describe('PipelineRunner task snapshot', () => {
67
+ test('getTasks reflects task_update inputs and outputs', async () => {
68
+ const dir = makeDir();
69
+ try {
70
+ const runner = await run(portsPipeline(dir), dir);
71
+
72
+ const tasks = runner.getTasks();
73
+ const up = tasks.get('t.up');
74
+ const down = tasks.get('t.down');
75
+ expect(up?.outputs).toEqual({ city: 'Shanghai' });
76
+ expect(down?.inputs).toEqual({ city: 'Shanghai' });
77
+ } finally {
78
+ rmSync(dir, { recursive: true, force: true });
79
+ }
80
+ });
81
+
82
+ test('getTasks folds streamed task logs into the task snapshot', async () => {
83
+ const dir = makeDir();
84
+ try {
85
+ const runner = await run(portsPipeline(dir), dir);
86
+
87
+ const tasks = runner.getTasks();
88
+ const up = tasks.get('t.up');
89
+ expect(up?.logs.length).toBeGreaterThan(0);
90
+ expect(up?.totalLogCount).toBeGreaterThan(0);
91
+ } finally {
92
+ rmSync(dir, { recursive: true, force: true });
93
+ }
94
+ });
95
+ });
@@ -23,7 +23,7 @@
23
23
 
24
24
  import { runPipeline } from './engine';
25
25
  import type { EngineResult, RunPipelineOptions } from './engine';
26
- import type { PipelineConfig, RunEventPayload, RunTaskState } from './types';
26
+ import { TASK_LOG_CAP, type PipelineConfig, type RunEventPayload, type RunTaskState } from './types';
27
27
  import { generateRunId } from './utils';
28
28
 
29
29
  export type { EngineResult };
@@ -132,12 +132,29 @@ export class PipelineRunner {
132
132
  stderrBytes: pick(event.stderrBytes, prev.stderrBytes),
133
133
  sessionId: pick(event.sessionId, prev.sessionId),
134
134
  normalizedOutput: pick(event.normalizedOutput, prev.normalizedOutput),
135
+ outputs: pick(event.outputs, prev.outputs),
136
+ inputs: pick(event.inputs, prev.inputs),
135
137
  resolvedDriver: pick(event.resolvedDriver, prev.resolvedDriver),
136
138
  resolvedModel: pick(event.resolvedModel, prev.resolvedModel),
137
139
  resolvedPermissions: pick(event.resolvedPermissions, prev.resolvedPermissions),
138
140
  });
139
141
  return;
140
142
  }
143
+ case 'task_log': {
144
+ if (event.taskId === null) return;
145
+ const prev = this._tasks.get(event.taskId);
146
+ if (!prev) return;
147
+ const logs = [
148
+ ...prev.logs,
149
+ { level: event.level, timestamp: event.timestamp, text: event.text },
150
+ ];
151
+ this._tasks.set(event.taskId, {
152
+ ...prev,
153
+ logs: logs.slice(-TASK_LOG_CAP),
154
+ totalLogCount: prev.totalLogCount + 1,
155
+ });
156
+ return;
157
+ }
141
158
  case 'run_end':
142
159
  this._status = this._abortController.signal.aborted ? 'aborted' : 'done';
143
160
  return;