@tagma/sdk 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/utils.js CHANGED
@@ -25,18 +25,6 @@ export function validatePath(filePath, projectRoot) {
25
25
  }
26
26
  return resolved;
27
27
  }
28
- const SHELL_META_CHARS = /[;&|$`\\!><()\[\]{}*?#~]/;
29
- export function validatePathParam(filePath) {
30
- if (filePath.includes('..')) {
31
- throw new Error(`Template param type=path: ".." traversal not allowed in "${filePath}"`);
32
- }
33
- if (resolve(filePath) === filePath) {
34
- throw new Error(`Template param type=path: absolute path not allowed: "${filePath}"`);
35
- }
36
- if (SHELL_META_CHARS.test(filePath)) {
37
- throw new Error(`Template param type=path: shell metacharacters not allowed in "${filePath}"`);
38
- }
39
- }
40
28
  let runCounter = 0;
41
29
  export function generateRunId() {
42
30
  const ts = Date.now().toString(36);
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAEhD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,uCAAuC,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC;QAC9B,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,MAAM,CAAC;QAChC,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC;QACnC,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,UAAU,CAAC;QACpC,OAAO,CAAC,CAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,WAAmB;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE5C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,mBAAmB,QAAQ,0BAA0B;YACrD,uCAAuC,WAAW,IAAI,CACvD,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,OAAO,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,MAAM,GAAG,EAAE;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;IAC1C,8EAA8E;IAC9E,kFAAkF;IAClF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC;IACzD,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,+BAA+B;AAC/B,EAAE;AACF,oBAAoB;AACpB,wEAAwE;AACxE,8EAA8E;AAC9E,gBAAgB;AAChB,EAAE;AACF,0EAA0E;AAE1E,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAGhD,IAAI,aAAa,GAA6C,IAAI,CAAC;AAEnE,SAAS,WAAW;IAClB,gCAAgC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,QAAqB,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,oEAAoE;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBACzC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,aAAa,CAAC;IAC3D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,qBAAqB,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,CAAC,aAAa;QAAE,aAAa,GAAG,WAAW,EAAE,CAAC;IAClD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,uEAAuE;AACvE,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAChD,IAAI,UAAU,EAAE,CAAC;QACf,8EAA8E;QAC9E,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;IACrE,CAAC;IACD,6DAA6D;IAC7D,oDAAoD;IACpD,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAuB;IACxD,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB;IAC9B,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-raw.d.ts","sourceRoot":"","sources":["../src/validate-raw.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAoBjD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,iBAAiB,EACzB,UAAU,CAAC,EAAE,gBAAgB,GAC5B,eAAe,EAAE,CAqOnB"}
1
+ {"version":3,"file":"validate-raw.d.ts","sourceRoot":"","sources":["../src/validate-raw.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAoBjD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,iBAAiB,EACzB,UAAU,CAAC,EAAE,gBAAgB,GAC5B,eAAe,EAAE,CAkOnB"}
@@ -130,9 +130,6 @@ export function validateRaw(config, knownTypes) {
130
130
  errors.push({ path: taskPath, message: `Duplicate task id "${task.id}" in track "${track.id}"` });
131
131
  }
132
132
  seenTaskIds.add(task.id);
133
- // Template-based tasks: skip prompt/command checks (params validated at runtime)
134
- if (task.use)
135
- continue;
136
133
  const hasPromptKey = typeof task.prompt === 'string';
137
134
  const hasCommandKey = typeof task.command === 'string';
138
135
  const promptEmpty = hasPromptKey && task.prompt.trim().length === 0;
@@ -270,7 +267,7 @@ function detectCycles(config, allQualified, bareToQualified) {
270
267
  if (!track.id)
271
268
  continue;
272
269
  for (const task of track.tasks ?? []) {
273
- if (!task.id || task.use)
270
+ if (!task.id)
274
271
  continue;
275
272
  const qid = `${track.id}.${task.id}`;
276
273
  const deps = [];
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tagma/sdk",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "description": "Local AI task orchestration engine — core SDK for tagma pipelines",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/dag.ts CHANGED
@@ -178,24 +178,22 @@ export interface RawDag {
178
178
  }
179
179
 
180
180
  /**
181
- * Build a lightweight DAG from a raw (unresolved) pipeline config.
182
- * Unlike buildDag, this function:
183
- * - Does not require a workDir or resolved PipelineConfig
184
- * - Is lenient: missing or ambiguous refs are silently skipped
185
- * - Skips template-expansion tasks (those with a `use` field)
186
- *
187
- * Intended for the visual editor to render the flow graph before a pipeline is run.
188
- */
189
- export function buildRawDag(config: RawPipelineConfig): RawDag {
181
+ * Build a lightweight DAG from a raw (unresolved) pipeline config.
182
+ * Unlike buildDag, this function:
183
+ * - Does not require a workDir or resolved PipelineConfig
184
+ * - Is lenient: missing or ambiguous refs are silently skipped
185
+ *
186
+ * Intended for the visual editor to render the flow graph before a pipeline is run.
187
+ */
188
+ export function buildRawDag(config: RawPipelineConfig): RawDag {
190
189
  const nodes = new Map<string, RawDagNode>();
191
190
  const bareToQualified = new Map<string, string>();
192
191
 
193
- // 1. Register all concrete tasks
194
- for (const track of config.tracks) {
195
- for (const task of track.tasks) {
196
- if (task.use) continue; // template-expansion tasks are not yet materialized
197
- const qid = `${track.id}.${task.id}`;
198
- if (nodes.has(qid)) continue; // skip duplicates silently
192
+ // 1. Register all concrete tasks
193
+ for (const track of config.tracks) {
194
+ for (const task of track.tasks) {
195
+ const qid = `${track.id}.${task.id}`;
196
+ if (nodes.has(qid)) continue; // skip duplicates silently
199
197
 
200
198
  if (bareToQualified.has(task.id)) {
201
199
  bareToQualified.set(task.id, '__ambiguous__');
@@ -218,11 +216,10 @@ export function buildRawDag(config: RawPipelineConfig): RawDag {
218
216
 
219
217
  const edges: { from: string; to: string }[] = [];
220
218
 
221
- for (const track of config.tracks) {
222
- for (const task of track.tasks) {
223
- if (task.use) continue;
224
- const qid = `${track.id}.${task.id}`;
225
- const deps: string[] = [];
219
+ for (const track of config.tracks) {
220
+ for (const task of track.tasks) {
221
+ const qid = `${track.id}.${task.id}`;
222
+ const deps: string[] = [];
226
223
 
227
224
  for (const ref of task.depends_on ?? []) {
228
225
  const resolved = tryResolve(ref, track.id);
@@ -0,0 +1,97 @@
1
+ import { describe, expect, test } from 'bun:test';
2
+ import yaml from 'js-yaml';
3
+ import type { PipelineConfig, RawPipelineConfig } from './types';
4
+ import { parseYaml, deresolvePipeline, serializePipeline } from './schema';
5
+
6
+ function parsePipelineYaml(content: string): RawPipelineConfig {
7
+ const doc = yaml.load(content) as { pipeline: RawPipelineConfig };
8
+ return doc.pipeline;
9
+ }
10
+
11
+ describe('completion default serialization', () => {
12
+ test('serializePipeline omits default exit_code completions from raw configs', () => {
13
+ const raw: RawPipelineConfig = {
14
+ name: 'Serialize Defaults',
15
+ tracks: [
16
+ {
17
+ id: 'track_a',
18
+ name: 'Track A',
19
+ tasks: [
20
+ { id: 'task_1', prompt: 'hello', completion: { type: 'exit_code' } },
21
+ { id: 'task_2', prompt: 'world', completion: { type: 'exit_code', expect: 0 } },
22
+ { id: 'task_3', prompt: 'keep me', completion: { type: 'exit_code', expect: 2 } },
23
+ ],
24
+ },
25
+ ],
26
+ };
27
+
28
+ const parsed = parsePipelineYaml(serializePipeline(raw));
29
+ expect(parsed.tracks[0].tasks[0].completion).toBeUndefined();
30
+ expect(parsed.tracks[0].tasks[1].completion).toBeUndefined();
31
+ expect(parsed.tracks[0].tasks[2].completion).toEqual({ type: 'exit_code', expect: 2 });
32
+ });
33
+
34
+ test('serializePipeline preserves non-default completion plugins', () => {
35
+ const raw: RawPipelineConfig = {
36
+ name: 'Serialize Explicit',
37
+ tracks: [
38
+ {
39
+ id: 'track_a',
40
+ name: 'Track A',
41
+ tasks: [
42
+ { id: 'task_1', prompt: 'check file', completion: { type: 'file_exists', path: './out.txt' } },
43
+ ],
44
+ },
45
+ ],
46
+ };
47
+
48
+ const parsed = parsePipelineYaml(serializePipeline(raw));
49
+ expect(parsed.tracks[0].tasks[0].completion).toEqual({
50
+ type: 'file_exists',
51
+ path: './out.txt',
52
+ });
53
+ });
54
+
55
+ test('deresolvePipeline also omits the default exit_code completion', () => {
56
+ const resolved: PipelineConfig = {
57
+ name: 'Deresolve Defaults',
58
+ tracks: [
59
+ {
60
+ id: 'track_a',
61
+ name: 'Track A',
62
+ driver: 'claude-code',
63
+ permissions: { read: true, write: false, execute: false },
64
+ on_failure: 'skip_downstream',
65
+ cwd: 'D:/workspace',
66
+ tasks: [
67
+ {
68
+ id: 'task_1',
69
+ name: 'Task 1',
70
+ prompt: 'hello',
71
+ driver: 'claude-code',
72
+ permissions: { read: true, write: false, execute: false },
73
+ cwd: 'D:/workspace',
74
+ completion: { type: 'exit_code', expect: 0 },
75
+ },
76
+ {
77
+ id: 'task_2',
78
+ name: 'Task 2',
79
+ prompt: 'custom',
80
+ driver: 'claude-code',
81
+ permissions: { read: true, write: false, execute: false },
82
+ cwd: 'D:/workspace',
83
+ completion: { type: 'output_check', check: 'test -f ./done.txt' },
84
+ },
85
+ ],
86
+ },
87
+ ],
88
+ };
89
+
90
+ const raw = deresolvePipeline(resolved, 'D:/workspace');
91
+ expect(raw.tracks[0].tasks[0].completion).toBeUndefined();
92
+ expect(raw.tracks[0].tasks[1].completion).toEqual({
93
+ type: 'output_check',
94
+ check: 'test -f ./done.txt',
95
+ });
96
+ });
97
+ });
package/src/schema.ts CHANGED
@@ -2,10 +2,9 @@ import yaml from 'js-yaml';
2
2
  import { resolve, relative } from 'path';
3
3
  import type {
4
4
  PipelineConfig, RawPipelineConfig, RawTrackConfig, RawTaskConfig,
5
- TrackConfig, TaskConfig, Permissions, MiddlewareConfig,
6
- TemplateConfig, TemplateParamDef,
5
+ TrackConfig, TaskConfig, Permissions, MiddlewareConfig, CompletionConfig,
7
6
  } from './types';
8
- import { truncateForName, validatePathParam, validatePath } from './utils';
7
+ import { truncateForName, validatePath } from './utils';
9
8
  import { DEFAULT_PERMISSIONS } from './types';
10
9
  import { buildDag } from './dag';
11
10
 
@@ -39,7 +38,6 @@ function validateRawTrack(track: RawTrackConfig): void {
39
38
 
40
39
  function validateRawTask(task: RawTaskConfig, trackId: string): void {
41
40
  if (!task.id) throw new Error(`track "${trackId}": task.id is required`);
42
- if (task.use) return; // template usage, validated later
43
41
 
44
42
  const hasPromptKey = typeof task.prompt === 'string';
45
43
  const hasCommandKey = typeof task.command === 'string';
@@ -53,168 +51,6 @@ function validateRawTask(task: RawTaskConfig, trackId: string): void {
53
51
  // flagged as non-fatal validation errors by validate-raw.ts.
54
52
  }
55
53
 
56
- // ═══ Template Expansion ═══
57
-
58
- export async function expandTemplates(
59
- tasks: readonly RawTaskConfig[],
60
- instancePrefix: string,
61
- ): Promise<RawTaskConfig[]> {
62
- const result: RawTaskConfig[] = [];
63
-
64
- for (const task of tasks) {
65
- if (!task.use) {
66
- result.push(task);
67
- continue;
68
- }
69
-
70
- const template = await loadTemplate(task.use);
71
- const params = resolveTemplateParams(template, task.with ?? {}, task.id);
72
- const expanded = expandTemplateTask(template, params, task.id, instancePrefix);
73
- result.push(...expanded);
74
- }
75
-
76
- return result;
77
- }
78
-
79
- function validateTemplateRef(ref: string): void {
80
- const stripped = ref.replace(/@v\d+$/, '');
81
- // Reject path traversal and absolute paths before they reach import().
82
- if (stripped.includes('..') || stripped.startsWith('/') || /^[a-zA-Z]:/.test(stripped)) {
83
- throw new Error(
84
- `Invalid template ref "${ref}": path traversal and absolute paths are not allowed. ` +
85
- `Use a scoped package name, e.g. "@tagma/template-review".`
86
- );
87
- }
88
- // Whitelist: only @tagma/template-* packages are allowed.
89
- if (!stripped.startsWith('@tagma/template-')) {
90
- throw new Error(
91
- `Invalid template ref "${ref}": only "@tagma/template-*" packages are allowed as templates. ` +
92
- `Example: "@tagma/template-review".`
93
- );
94
- }
95
- }
96
-
97
- async function loadTemplate(ref: string): Promise<TemplateConfig> {
98
- validateTemplateRef(ref);
99
- // Strip version suffix for import
100
- const moduleName = ref.replace(/@v\d+$/, '');
101
- try {
102
- const mod = await import(moduleName);
103
- // Expect the module to export a template.yaml content or parsed object
104
- if (mod.template) return mod.template as TemplateConfig;
105
-
106
- // Try loading template.yaml from the package.
107
- // NOTE: require.resolve is a CommonJS API. Bun supports it natively, but
108
- // this would need import.meta.resolve() for pure ESM runtimes (e.g. Deno).
109
- const pkgPath = require.resolve(`${moduleName}/template.yaml`);
110
- const content = await Bun.file(pkgPath).text();
111
- const doc = yaml.load(content) as { template: TemplateConfig };
112
- return doc.template;
113
- } catch (err) {
114
- if (err instanceof Error && err.message.startsWith('Invalid template ref')) throw err;
115
- throw new Error(`Failed to load template: "${ref}". Is the package installed?`);
116
- }
117
- }
118
-
119
- function resolveTemplateParams(
120
- template: TemplateConfig,
121
- provided: Record<string, unknown>,
122
- instanceId: string,
123
- ): Record<string, unknown> {
124
- const params: Record<string, unknown> = {};
125
- const defs = template.params ?? {};
126
-
127
- for (const [key, def] of Object.entries(defs)) {
128
- const value = provided[key] ?? def.default;
129
- if (value === undefined) {
130
- throw new Error(`Template "${template.name}" instance "${instanceId}": missing required param "${key}"`);
131
- }
132
- validateParamType(key, value, def, template.name, instanceId);
133
- params[key] = value;
134
- }
135
-
136
- // Warn about unknown params
137
- for (const key of Object.keys(provided)) {
138
- if (!(key in defs)) {
139
- console.warn(`Template "${template.name}" instance "${instanceId}": unknown param "${key}"`);
140
- }
141
- }
142
-
143
- return params;
144
- }
145
-
146
- function validateParamType(
147
- key: string, value: unknown, def: TemplateParamDef,
148
- templateName: string, instanceId: string,
149
- ): void {
150
- const ctx = `Template "${templateName}" instance "${instanceId}" param "${key}"`;
151
- const ptype = def.type ?? 'string';
152
-
153
- switch (ptype) {
154
- case 'string':
155
- if (typeof value !== 'string') throw new Error(`${ctx}: expected string, got ${typeof value}`);
156
- break;
157
- case 'path':
158
- if (typeof value !== 'string') throw new Error(`${ctx}: expected path string, got ${typeof value}`);
159
- validatePathParam(value);
160
- break;
161
- case 'enum':
162
- if (!def.enum?.includes(value as string)) {
163
- throw new Error(`${ctx}: value "${value}" not in allowed values [${def.enum?.join(', ')}]`);
164
- }
165
- break;
166
- case 'number':
167
- if (typeof value !== 'number') throw new Error(`${ctx}: expected number, got ${typeof value}`);
168
- if (def.min !== undefined && value < def.min) throw new Error(`${ctx}: ${value} < min ${def.min}`);
169
- if (def.max !== undefined && value > def.max) throw new Error(`${ctx}: ${value} > max ${def.max}`);
170
- break;
171
- }
172
- }
173
-
174
- function expandTemplateTask(
175
- template: TemplateConfig,
176
- params: Record<string, unknown>,
177
- instanceId: string,
178
- instancePrefix: string,
179
- ): RawTaskConfig[] {
180
- return template.tasks.map(task => {
181
- const prefixedId = `${instanceId}.${task.id}`;
182
-
183
- // Replace ${{ params.xxx }} in string fields
184
- const interpolate = (s: string): string =>
185
- s.replace(/\$\{\{\s*params\.(\w+)\s*\}\}/g, (_, key) => String(params[key] ?? ''));
186
-
187
- const newTask: Record<string, unknown> = { ...task, id: prefixedId };
188
-
189
- // Interpolate string fields
190
- if (task.prompt) newTask.prompt = interpolate(task.prompt);
191
- if (task.command) newTask.command = interpolate(task.command);
192
-
193
- // Namespace depends_on
194
- if (task.depends_on) {
195
- newTask.depends_on = task.depends_on.map(dep => `${instanceId}.${dep}`);
196
- }
197
-
198
- // Namespace continue_from
199
- if (task.continue_from) {
200
- newTask.continue_from = `${instanceId}.${task.continue_from}`;
201
- }
202
-
203
- // Rewrite output path to instance namespace so parallel template
204
- // instances don't collide on the same file. Handles any relative path
205
- // (e.g. ./tmp/foo, ./output/bar, ./build/result.json) by injecting
206
- // the instanceId as the first directory component after `./`.
207
- if (task.output) {
208
- const original = interpolate(task.output);
209
- newTask.output = original.startsWith('./')
210
- ? `./${instanceId}/${original.slice(2)}`
211
- : `${instanceId}/${original}`;
212
- }
213
-
214
- return newTask as unknown as RawTaskConfig;
215
- });
216
- }
217
-
218
54
  // ═══ Config Inheritance Resolution ═══
219
55
 
220
56
  export function resolveConfig(raw: RawPipelineConfig, workDir: string): PipelineConfig {
@@ -313,6 +149,37 @@ function permissionsEqual(a: Permissions | undefined, b: Permissions | undefined
313
149
  return a.read === b.read && a.write === b.write && a.execute === b.execute;
314
150
  }
315
151
 
152
+ function isDefaultExitCodeCompletion(
153
+ completion: CompletionConfig | undefined,
154
+ ): boolean {
155
+ if (!completion || completion.type !== 'exit_code') return false;
156
+ const { type: _type, expect, ...rest } = completion as CompletionConfig & {
157
+ expect?: unknown;
158
+ };
159
+ if (Object.keys(rest).length > 0) return false;
160
+ return expect === undefined || expect === 0;
161
+ }
162
+
163
+ function stripDefaultTaskCompletion<T extends { completion?: CompletionConfig }>(
164
+ task: T,
165
+ ): T {
166
+ if (!isDefaultExitCodeCompletion(task.completion)) return task;
167
+ const { completion: _completion, ...rest } = task;
168
+ return rest as T;
169
+ }
170
+
171
+ function stripDefaultCompletionsForSerialization<
172
+ T extends PipelineConfig | RawPipelineConfig,
173
+ >(config: T): T {
174
+ return {
175
+ ...config,
176
+ tracks: config.tracks.map((track) => ({
177
+ ...track,
178
+ tasks: track.tasks.map((task) => stripDefaultTaskCompletion(task)),
179
+ })),
180
+ } as T;
181
+ }
182
+
316
183
  // ═══ YAML Serialization ═══
317
184
 
318
185
  /**
@@ -320,7 +187,10 @@ function permissionsEqual(a: Permissions | undefined, b: Permissions | undefined
320
187
  * Wraps the config under the top-level `pipeline` key as expected by parseYaml.
321
188
  */
322
189
  export function serializePipeline(config: PipelineConfig | RawPipelineConfig): string {
323
- return yaml.dump({ pipeline: config }, { lineWidth: 120, indent: 2 });
190
+ return yaml.dump(
191
+ { pipeline: stripDefaultCompletionsForSerialization(config) },
192
+ { lineWidth: 120, indent: 2 },
193
+ );
324
194
  }
325
195
 
326
196
  /**
@@ -363,7 +233,9 @@ export function deresolvePipeline(config: PipelineConfig, workDir: string): RawP
363
233
  ...(task.driver && task.driver !== effectiveTrackDriver ? { driver: task.driver } : {}),
364
234
  ...(task.timeout ? { timeout: task.timeout } : {}),
365
235
  ...(task.middlewares !== undefined ? { middlewares: task.middlewares } : {}),
366
- ...(task.completion ? { completion: task.completion } : {}),
236
+ ...(task.completion && !isDefaultExitCodeCompletion(task.completion)
237
+ ? { completion: task.completion }
238
+ : {}),
367
239
  ...(task.agent_profile ? { agent_profile: task.agent_profile } : {}),
368
240
  ...(task.permissions && !permissionsEqual(task.permissions, track.permissions)
369
241
  ? { permissions: task.permissions }
@@ -424,14 +296,5 @@ export function validateConfig(config: PipelineConfig): string[] {
424
296
 
425
297
  export async function loadPipeline(yamlContent: string, workDir: string): Promise<PipelineConfig> {
426
298
  const raw = parseYaml(yamlContent);
427
-
428
- // Expand templates in each track
429
- const expandedTracks: RawTrackConfig[] = [];
430
- for (const track of raw.tracks) {
431
- const expandedTasks = await expandTemplates(track.tasks, track.id);
432
- expandedTracks.push({ ...track, tasks: expandedTasks });
433
- }
434
-
435
- const expandedRaw: RawPipelineConfig = { ...raw, tracks: expandedTracks };
436
- return resolveConfig(expandedRaw, workDir);
299
+ return resolveConfig(raw, workDir);
437
300
  }
package/src/sdk.ts CHANGED
@@ -29,12 +29,8 @@ export {
29
29
  export { validateRaw } from './validate-raw';
30
30
  export type { ValidationError } from './validate-raw';
31
31
 
32
- // ── Schema: parse / resolve / load / serialize / validate ──
33
- export { parseYaml, resolveConfig, expandTemplates, loadPipeline, serializePipeline, deresolvePipeline, validateConfig } from './schema';
34
-
35
- // ── Templates: discovery + manifest loading (F1) ──
36
- export { discoverTemplates, loadTemplateManifest } from './templates';
37
- export type { TemplateManifest } from './templates';
32
+ // ── Schema: parse / resolve / load / serialize / validate ──
33
+ export { parseYaml, resolveConfig, loadPipeline, serializePipeline, deresolvePipeline, validateConfig } from './schema';
38
34
 
39
35
  // ── DAG ──
40
36
  export { buildDag, buildRawDag } from './dag';
package/src/utils.ts CHANGED
@@ -33,21 +33,7 @@ export function validatePath(filePath: string, projectRoot: string): string {
33
33
  return resolved;
34
34
  }
35
35
 
36
- const SHELL_META_CHARS = /[;&|$`\\!><()\[\]{}*?#~]/;
37
-
38
- export function validatePathParam(filePath: string): void {
39
- if (filePath.includes('..')) {
40
- throw new Error(`Template param type=path: ".." traversal not allowed in "${filePath}"`);
41
- }
42
- if (resolve(filePath) === filePath) {
43
- throw new Error(`Template param type=path: absolute path not allowed: "${filePath}"`);
44
- }
45
- if (SHELL_META_CHARS.test(filePath)) {
46
- throw new Error(`Template param type=path: shell metacharacters not allowed in "${filePath}"`);
47
- }
48
- }
49
-
50
- let runCounter = 0;
36
+ let runCounter = 0;
51
37
 
52
38
  export function generateRunId(): string {
53
39
  const ts = Date.now().toString(36);
@@ -180,9 +180,6 @@ export function validateRaw(
180
180
  }
181
181
  seenTaskIds.add(task.id);
182
182
 
183
- // Template-based tasks: skip prompt/command checks (params validated at runtime)
184
- if (task.use) continue;
185
-
186
183
  const hasPromptKey = typeof task.prompt === 'string';
187
184
  const hasCommandKey = typeof task.command === 'string';
188
185
  const promptEmpty = hasPromptKey && task.prompt!.trim().length === 0;
@@ -333,7 +330,7 @@ function detectCycles(
333
330
  for (const track of config.tracks) {
334
331
  if (!track.id) continue;
335
332
  for (const task of track.tasks ?? []) {
336
- if (!task.id || task.use) continue;
333
+ if (!task.id) continue;
337
334
  const qid = `${track.id}.${task.id}`;
338
335
  const deps: string[] = [];
339
336
  for (const dep of task.depends_on ?? []) {
@@ -1,20 +0,0 @@
1
- import type { TemplateConfig } from './types';
2
- export interface TemplateManifest extends TemplateConfig {
3
- /** The package ref as it would appear in `task.use`, e.g. `@tagma/template-review`. */
4
- readonly ref: string;
5
- }
6
- /**
7
- * Scan the workspace's `node_modules/@tagma/*` for packages whose name starts
8
- * with `template-` and load each one's manifest. Packages without a valid
9
- * `template.yaml` (or that fail to parse) are silently skipped.
10
- *
11
- * Returns an empty array when `workDir` doesn't exist or has no such packages.
12
- */
13
- export declare function discoverTemplates(workDir: string): TemplateManifest[];
14
- /**
15
- * Load a single template's manifest by its ref (e.g. `@tagma/template-review`)
16
- * from the given workspace's `node_modules`. Returns `null` if the package
17
- * isn't installed or its manifest can't be parsed.
18
- */
19
- export declare function loadTemplateManifest(ref: string, workDir: string): TemplateManifest | null;
20
- //# sourceMappingURL=templates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA8BrE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAO1F"}