@tagma/sdk 0.4.7 → 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/README.md +3 -34
- package/dist/dag.d.ts +0 -1
- package/dist/dag.d.ts.map +1 -1
- package/dist/dag.js +0 -5
- package/dist/dag.js.map +1 -1
- package/dist/schema.d.ts +1 -2
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -141
- package/dist/schema.js.map +1 -1
- package/dist/schema.test.js.map +1 -1
- package/dist/sdk.d.ts +1 -3
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +1 -3
- package/dist/sdk.js.map +1 -1
- package/dist/utils.d.ts +0 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +0 -12
- package/dist/utils.js.map +1 -1
- package/dist/validate-raw.d.ts.map +1 -1
- package/dist/validate-raw.js +1 -4
- package/dist/validate-raw.js.map +1 -1
- package/package.json +1 -1
- package/src/dag.ts +17 -20
- package/src/schema.test.ts +1 -1
- package/src/schema.ts +53 -226
- package/src/sdk.ts +2 -6
- package/src/utils.ts +1 -15
- package/src/validate-raw.ts +1 -4
- package/dist/templates.d.ts +0 -20
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js +0 -93
- package/dist/templates.js.map +0 -1
- package/src/templates.ts +0 -97
package/dist/validate-raw.js.map
CHANGED
|
@@ -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
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
|
-
*
|
|
186
|
-
*
|
|
187
|
-
|
|
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
|
-
|
|
197
|
-
|
|
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
|
-
|
|
224
|
-
const
|
|
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);
|
package/src/schema.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, test } from 'bun:test';
|
|
2
2
|
import yaml from 'js-yaml';
|
|
3
3
|
import type { PipelineConfig, RawPipelineConfig } from './types';
|
|
4
|
-
import { deresolvePipeline, serializePipeline } from './schema';
|
|
4
|
+
import { parseYaml, deresolvePipeline, serializePipeline } from './schema';
|
|
5
5
|
|
|
6
6
|
function parsePipelineYaml(content: string): RawPipelineConfig {
|
|
7
7
|
const doc = yaml.load(content) as { pipeline: RawPipelineConfig };
|
package/src/schema.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import yaml from 'js-yaml';
|
|
2
|
-
import { resolve, relative } from 'path';
|
|
3
|
-
import type {
|
|
4
|
-
PipelineConfig, RawPipelineConfig, RawTrackConfig, RawTaskConfig,
|
|
5
|
-
TrackConfig, TaskConfig, Permissions, MiddlewareConfig, CompletionConfig,
|
|
6
|
-
|
|
7
|
-
} from './
|
|
8
|
-
import { truncateForName, validatePathParam, validatePath } from './utils';
|
|
1
|
+
import yaml from 'js-yaml';
|
|
2
|
+
import { resolve, relative } from 'path';
|
|
3
|
+
import type {
|
|
4
|
+
PipelineConfig, RawPipelineConfig, RawTrackConfig, RawTaskConfig,
|
|
5
|
+
TrackConfig, TaskConfig, Permissions, MiddlewareConfig, CompletionConfig,
|
|
6
|
+
} from './types';
|
|
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 {
|
|
@@ -307,42 +143,42 @@ export function resolveConfig(raw: RawPipelineConfig, workDir: string): Pipeline
|
|
|
307
143
|
}
|
|
308
144
|
|
|
309
145
|
// Field-by-field permissions comparison — avoids relying on JSON.stringify key order.
|
|
310
|
-
function permissionsEqual(a: Permissions | undefined, b: Permissions | undefined): boolean {
|
|
311
|
-
if (a === b) return true;
|
|
312
|
-
if (!a || !b) return false;
|
|
313
|
-
return a.read === b.read && a.write === b.write && a.execute === b.execute;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
function isDefaultExitCodeCompletion(
|
|
317
|
-
completion: CompletionConfig | undefined,
|
|
318
|
-
): boolean {
|
|
319
|
-
if (!completion || completion.type !== 'exit_code') return false;
|
|
320
|
-
const { type: _type, expect, ...rest } = completion as CompletionConfig & {
|
|
321
|
-
expect?: unknown;
|
|
322
|
-
};
|
|
323
|
-
if (Object.keys(rest).length > 0) return false;
|
|
324
|
-
return expect === undefined || expect === 0;
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
function stripDefaultTaskCompletion<T extends { completion?: CompletionConfig }>(
|
|
328
|
-
task: T,
|
|
329
|
-
): T {
|
|
330
|
-
if (!isDefaultExitCodeCompletion(task.completion)) return task;
|
|
331
|
-
const { completion: _completion, ...rest } = task;
|
|
332
|
-
return rest as T;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
function stripDefaultCompletionsForSerialization<
|
|
336
|
-
T extends PipelineConfig | RawPipelineConfig,
|
|
337
|
-
>(config: T): T {
|
|
338
|
-
return {
|
|
339
|
-
...config,
|
|
340
|
-
tracks: config.tracks.map((track) => ({
|
|
341
|
-
...track,
|
|
342
|
-
tasks: track.tasks.map((task) => stripDefaultTaskCompletion(task)),
|
|
343
|
-
})),
|
|
344
|
-
} as T;
|
|
345
|
-
}
|
|
146
|
+
function permissionsEqual(a: Permissions | undefined, b: Permissions | undefined): boolean {
|
|
147
|
+
if (a === b) return true;
|
|
148
|
+
if (!a || !b) return false;
|
|
149
|
+
return a.read === b.read && a.write === b.write && a.execute === b.execute;
|
|
150
|
+
}
|
|
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
|
+
}
|
|
346
182
|
|
|
347
183
|
// ═══ YAML Serialization ═══
|
|
348
184
|
|
|
@@ -350,12 +186,12 @@ function stripDefaultCompletionsForSerialization<
|
|
|
350
186
|
* Serialize a pipeline config back to YAML string.
|
|
351
187
|
* Wraps the config under the top-level `pipeline` key as expected by parseYaml.
|
|
352
188
|
*/
|
|
353
|
-
export function serializePipeline(config: PipelineConfig | RawPipelineConfig): string {
|
|
354
|
-
return yaml.dump(
|
|
355
|
-
{ pipeline: stripDefaultCompletionsForSerialization(config) },
|
|
356
|
-
{ lineWidth: 120, indent: 2 },
|
|
357
|
-
);
|
|
358
|
-
}
|
|
189
|
+
export function serializePipeline(config: PipelineConfig | RawPipelineConfig): string {
|
|
190
|
+
return yaml.dump(
|
|
191
|
+
{ pipeline: stripDefaultCompletionsForSerialization(config) },
|
|
192
|
+
{ lineWidth: 120, indent: 2 },
|
|
193
|
+
);
|
|
194
|
+
}
|
|
359
195
|
|
|
360
196
|
/**
|
|
361
197
|
* Convert a resolved PipelineConfig back to a RawPipelineConfig for serialization.
|
|
@@ -397,9 +233,9 @@ export function deresolvePipeline(config: PipelineConfig, workDir: string): RawP
|
|
|
397
233
|
...(task.driver && task.driver !== effectiveTrackDriver ? { driver: task.driver } : {}),
|
|
398
234
|
...(task.timeout ? { timeout: task.timeout } : {}),
|
|
399
235
|
...(task.middlewares !== undefined ? { middlewares: task.middlewares } : {}),
|
|
400
|
-
...(task.completion && !isDefaultExitCodeCompletion(task.completion)
|
|
401
|
-
? { completion: task.completion }
|
|
402
|
-
: {}),
|
|
236
|
+
...(task.completion && !isDefaultExitCodeCompletion(task.completion)
|
|
237
|
+
? { completion: task.completion }
|
|
238
|
+
: {}),
|
|
403
239
|
...(task.agent_profile ? { agent_profile: task.agent_profile } : {}),
|
|
404
240
|
...(task.permissions && !permissionsEqual(task.permissions, track.permissions)
|
|
405
241
|
? { permissions: task.permissions }
|
|
@@ -460,14 +296,5 @@ export function validateConfig(config: PipelineConfig): string[] {
|
|
|
460
296
|
|
|
461
297
|
export async function loadPipeline(yamlContent: string, workDir: string): Promise<PipelineConfig> {
|
|
462
298
|
const raw = parseYaml(yamlContent);
|
|
463
|
-
|
|
464
|
-
// Expand templates in each track
|
|
465
|
-
const expandedTracks: RawTrackConfig[] = [];
|
|
466
|
-
for (const track of raw.tracks) {
|
|
467
|
-
const expandedTasks = await expandTemplates(track.tasks, track.id);
|
|
468
|
-
expandedTracks.push({ ...track, tasks: expandedTasks });
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
const expandedRaw: RawPipelineConfig = { ...raw, tracks: expandedTracks };
|
|
472
|
-
return resolveConfig(expandedRaw, workDir);
|
|
299
|
+
return resolveConfig(raw, workDir);
|
|
473
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,
|
|
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
|
-
|
|
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);
|
package/src/validate-raw.ts
CHANGED
|
@@ -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
|
|
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 ?? []) {
|
package/dist/templates.d.ts
DELETED
|
@@ -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
|
package/dist/templates.d.ts.map
DELETED
|
@@ -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"}
|
package/dist/templates.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
// ═══ Template Discovery (F1) ═══
|
|
2
|
-
//
|
|
3
|
-
// Public helpers so editors / UIs can enumerate installed `@tagma/template-*`
|
|
4
|
-
// packages in a workspace and read each template's declarative metadata
|
|
5
|
-
// (name, description, params) without actually expanding the template.
|
|
6
|
-
//
|
|
7
|
-
// The legacy private `loadTemplate` in schema.ts uses Bun-specific APIs
|
|
8
|
-
// (Bun.file, require.resolve). These helpers are Node-compatible because
|
|
9
|
-
// the editor server runs on Node, not Bun.
|
|
10
|
-
import { readFileSync, existsSync, readdirSync, statSync } from 'fs';
|
|
11
|
-
import { join } from 'path';
|
|
12
|
-
import yaml from 'js-yaml';
|
|
13
|
-
/**
|
|
14
|
-
* Scan the workspace's `node_modules/@tagma/*` for packages whose name starts
|
|
15
|
-
* with `template-` and load each one's manifest. Packages without a valid
|
|
16
|
-
* `template.yaml` (or that fail to parse) are silently skipped.
|
|
17
|
-
*
|
|
18
|
-
* Returns an empty array when `workDir` doesn't exist or has no such packages.
|
|
19
|
-
*/
|
|
20
|
-
export function discoverTemplates(workDir) {
|
|
21
|
-
const out = [];
|
|
22
|
-
const scopeDir = join(workDir, 'node_modules', '@tagma');
|
|
23
|
-
if (!existsSync(scopeDir))
|
|
24
|
-
return out;
|
|
25
|
-
let entries = [];
|
|
26
|
-
try {
|
|
27
|
-
entries = readdirSync(scopeDir);
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
return out;
|
|
31
|
-
}
|
|
32
|
-
for (const entry of entries) {
|
|
33
|
-
if (!entry.startsWith('template-'))
|
|
34
|
-
continue;
|
|
35
|
-
const pkgDir = join(scopeDir, entry);
|
|
36
|
-
try {
|
|
37
|
-
const st = statSync(pkgDir);
|
|
38
|
-
if (!st.isDirectory())
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
const ref = `@tagma/${entry}`;
|
|
45
|
-
const manifest = loadTemplateManifestFromDir(pkgDir, ref);
|
|
46
|
-
if (manifest)
|
|
47
|
-
out.push(manifest);
|
|
48
|
-
}
|
|
49
|
-
// Sort alphabetically for deterministic UI rendering.
|
|
50
|
-
out.sort((a, b) => a.ref.localeCompare(b.ref));
|
|
51
|
-
return out;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Load a single template's manifest by its ref (e.g. `@tagma/template-review`)
|
|
55
|
-
* from the given workspace's `node_modules`. Returns `null` if the package
|
|
56
|
-
* isn't installed or its manifest can't be parsed.
|
|
57
|
-
*/
|
|
58
|
-
export function loadTemplateManifest(ref, workDir) {
|
|
59
|
-
// Only @tagma/template-* refs are supported (matches SDK validateTemplateRef).
|
|
60
|
-
const stripped = ref.replace(/@v\d+$/, '');
|
|
61
|
-
if (!stripped.startsWith('@tagma/template-'))
|
|
62
|
-
return null;
|
|
63
|
-
const pkgDir = join(workDir, 'node_modules', stripped);
|
|
64
|
-
if (!existsSync(pkgDir))
|
|
65
|
-
return null;
|
|
66
|
-
return loadTemplateManifestFromDir(pkgDir, stripped);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Resolve a template manifest from an absolute package directory. Tries
|
|
70
|
-
* `template.yaml` first (the documented convention), then a `template` export
|
|
71
|
-
* from `package.json`'s `main`. Returns `null` on any failure so discovery
|
|
72
|
-
* stays robust against malformed packages.
|
|
73
|
-
*/
|
|
74
|
-
function loadTemplateManifestFromDir(pkgDir, ref) {
|
|
75
|
-
const yamlPath = join(pkgDir, 'template.yaml');
|
|
76
|
-
if (existsSync(yamlPath)) {
|
|
77
|
-
try {
|
|
78
|
-
const content = readFileSync(yamlPath, 'utf-8');
|
|
79
|
-
const doc = yaml.load(content);
|
|
80
|
-
const tpl = (doc && typeof doc === 'object' && 'template' in doc
|
|
81
|
-
? doc.template
|
|
82
|
-
: doc);
|
|
83
|
-
if (tpl && typeof tpl === 'object' && tpl.name && Array.isArray(tpl.tasks)) {
|
|
84
|
-
return { ...tpl, ref };
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=templates.js.map
|
package/dist/templates.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|