@tagma/sdk 0.7.33 → 0.7.35

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/index.d.ts CHANGED
@@ -4,6 +4,8 @@ export { bunRuntime } from '@tagma/runtime-bun';
4
4
  export type { EnvPolicy, TagmaRuntime, RunOptions as RuntimeRunOptions } from '@tagma/core';
5
5
  export { definePipeline, PluginRegistry, TriggerBlockedError, TriggerTimeoutError, } from '@tagma/core';
6
6
  export type { EngineResult, RegisterPluginOptions, RunEventPayload } from '@tagma/core';
7
- export { RUN_PROTOCOL_VERSION, TASK_LOG_CAP } from '@tagma/types';
8
- export type { PipelineConfig, PipelineExecutionMode, RawPipelineConfig, RawTrackConfig, RawTaskConfig, TrackConfig, TaskConfig, RunSnapshotPayload, WireRunEvent, RunTaskState, TaskLogLine, SecretResolver, SecretResolverContext, ApprovalRequestInfo, ApprovalRequestHandle, TaskStatus, ApprovalRequest, ApprovalGateway, PluginCategory, PluginCapabilities, TagmaPlugin, DriverPlugin, TriggerPlugin, TriggerWatchHandle, CompletionPlugin, MiddlewarePlugin, RunEventPayload as PipelineRunEventPayload, } from '@tagma/types';
7
+ export { RUN_PROTOCOL_VERSION, TASK_LOG_CAP, TASK_LIVE_OUTPUT_CAP, appendLiveOutput, } from '@tagma/types';
8
+ export { PipelineGroup, PipelineGraphRunner, WorkflowValidationError, createPipelineGroup, loadWorkflow, parseWorkflowYaml, runPipelineGraph, serializeWorkflow, validateRawWorkflow, } from './workflow';
9
+ export type { CreatePipelineGroupOptions, PipelineGraphPipelineResult, PipelineGraphResult, PipelineGraphRunnerOptions, PipelineGroupAddOptions, } from './workflow';
10
+ export type { PipelineConfig, PipelineExecutionMode, PipelineGraphAbortReason, PipelineGraphConfig, PipelineGraphEventPayload, PipelineGraphNodeState, PipelineGraphNodeStatus, PipelineGraphPipelineConfig, RawPipelineConfig, RawWorkflowConfig, RawWorkflowPipelineConfig, RawTrackConfig, RawTaskConfig, TrackConfig, TaskConfig, WorkflowConfig, WorkflowFailurePolicy, WorkflowPipelineConfig, RunSnapshotPayload, WireRunEvent, RunTaskState, TaskLogLine, SecretResolver, SecretResolverContext, ApprovalRequestInfo, ApprovalRequestHandle, TaskStatus, ApprovalRequest, ApprovalGateway, PluginCategory, PluginCapabilities, TagmaPlugin, DriverPlugin, TriggerPlugin, TriggerWatchHandle, CompletionPlugin, MiddlewarePlugin, RunEventPayload as PipelineRunEventPayload, } from '@tagma/types';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAMhB,eAAe,IAAI,uBAAuB,GAC3C,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAMhB,eAAe,IAAI,uBAAuB,GAC3C,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { createTagma } from './tagma';
2
2
  export { bunRuntime } from '@tagma/runtime-bun';
3
3
  export { definePipeline, PluginRegistry, TriggerBlockedError, TriggerTimeoutError, } from '@tagma/core';
4
- export { RUN_PROTOCOL_VERSION, TASK_LOG_CAP } from '@tagma/types';
4
+ export { RUN_PROTOCOL_VERSION, TASK_LOG_CAP, TASK_LIVE_OUTPUT_CAP, appendLiveOutput, } from '@tagma/types';
5
+ export { PipelineGroup, PipelineGraphRunner, WorkflowValidationError, createPipelineGroup, loadWorkflow, parseWorkflowYaml, runPipelineGraph, serializeWorkflow, validateRawWorkflow, } from './workflow';
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { type EngineResult, type RunPipelineOptions } from '@tagma/core';
2
+ import type { PipelineGraphAbortReason, PipelineGraphConfig, PipelineGraphEventPayload, PipelineGraphNodeState, PipelineGraphPipelineConfig, RawWorkflowConfig, WorkflowConfig, WorkflowFailurePolicy } from '@tagma/types';
3
+ import { PipelineValidationError } from './schema';
4
+ import type { ValidationError } from './validate-raw';
5
+ export type { PipelineGraphAbortReason, PipelineGraphConfig, PipelineGraphEventPayload, PipelineGraphNodeState, PipelineGraphNodeStatus, PipelineGraphPipelineConfig, RawWorkflowConfig, RawWorkflowPipelineConfig, WorkflowConfig, WorkflowFailurePolicy, WorkflowPipelineConfig, } from '@tagma/types';
6
+ export type { EngineResult };
7
+ export interface PipelineGraphPipelineResult extends PipelineGraphNodeState {
8
+ readonly result: EngineResult | null;
9
+ }
10
+ export interface PipelineGraphResult {
11
+ readonly graphRunId: string;
12
+ readonly success: boolean;
13
+ readonly abortReason: PipelineGraphAbortReason;
14
+ readonly pipelines: readonly PipelineGraphPipelineResult[];
15
+ }
16
+ export interface PipelineGraphRunnerOptions extends Omit<RunPipelineOptions, 'signal' | 'onEvent'> {
17
+ readonly signal?: AbortSignal;
18
+ readonly onEvent?: (event: PipelineGraphEventPayload) => void;
19
+ }
20
+ export declare class WorkflowValidationError extends PipelineValidationError {
21
+ constructor(diagnostics: readonly ValidationError[]);
22
+ }
23
+ export declare function parseWorkflowYaml(content: string): RawWorkflowConfig;
24
+ export declare function serializeWorkflow(config: RawWorkflowConfig | WorkflowConfig): string;
25
+ export declare function validateRawWorkflow(config: RawWorkflowConfig): ValidationError[];
26
+ export declare function loadWorkflow(content: string, workDir: string): Promise<WorkflowConfig>;
27
+ export declare function runPipelineGraph(config: PipelineGraphConfig, workDir: string, options: PipelineGraphRunnerOptions): Promise<PipelineGraphResult>;
28
+ export declare class PipelineGraphRunner {
29
+ private readonly config;
30
+ private readonly workDir;
31
+ private readonly options;
32
+ readonly graphRunId: string;
33
+ private readonly order;
34
+ private readonly nodes;
35
+ private readonly nodeConfigs;
36
+ private readonly handlers;
37
+ private readonly activeControllers;
38
+ private result;
39
+ private abortReason;
40
+ private aborted;
41
+ constructor(config: PipelineGraphConfig, workDir: string, options: PipelineGraphRunnerOptions);
42
+ start(): Promise<PipelineGraphResult>;
43
+ abort(_reason?: string): void;
44
+ subscribe(handler: (event: PipelineGraphEventPayload) => void): () => void;
45
+ private runGraph;
46
+ private launchReadyNodes;
47
+ private runOnePipeline;
48
+ private stopAllForFailure;
49
+ private skipNodesWithFailedDeps;
50
+ private skipWaitingNodes;
51
+ private failWaitingNodes;
52
+ private allTerminal;
53
+ private updateNode;
54
+ private snapshotNodes;
55
+ private snapshotResults;
56
+ private emit;
57
+ }
58
+ export interface CreatePipelineGroupOptions {
59
+ readonly name?: string;
60
+ readonly maxConcurrency?: number;
61
+ readonly failurePolicy?: WorkflowFailurePolicy;
62
+ }
63
+ export interface PipelineGroupAddOptions {
64
+ readonly id: string;
65
+ readonly config: PipelineGraphPipelineConfig['config'];
66
+ readonly cwd?: string;
67
+ readonly path?: string;
68
+ readonly dependsOn?: readonly string[];
69
+ }
70
+ export declare class PipelineGroup {
71
+ private readonly options;
72
+ private readonly pipelines;
73
+ constructor(options?: CreatePipelineGroupOptions);
74
+ add(options: PipelineGroupAddOptions): this;
75
+ toConfig(): PipelineGraphConfig;
76
+ run(workDir: string, options: PipelineGraphRunnerOptions): Promise<PipelineGraphResult>;
77
+ }
78
+ export declare function createPipelineGroup(options?: CreatePipelineGroupOptions): PipelineGroup;
79
+ export declare function resolveWorkflowPipelinePath(workDir: string, path: string): string;
80
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,592 @@
1
+ import yaml from 'js-yaml';
2
+ import { readFileSync } from 'node:fs';
3
+ import { isAbsolute, resolve } from 'node:path';
4
+ import { generateRunId, isValidTaskId, runPipeline, validatePath, } from '@tagma/core';
5
+ import { PipelineValidationError, loadPipeline } from './schema';
6
+ const VALID_FAILURE_POLICIES = new Set([
7
+ 'stop_all',
8
+ 'continue_independent',
9
+ ]);
10
+ export class WorkflowValidationError extends PipelineValidationError {
11
+ constructor(diagnostics) {
12
+ super(diagnostics);
13
+ this.name = 'WorkflowValidationError';
14
+ }
15
+ }
16
+ export function parseWorkflowYaml(content) {
17
+ const doc = yaml.load(content);
18
+ if (!doc?.workflow) {
19
+ throw new Error('YAML must contain a top-level "workflow" key');
20
+ }
21
+ if (typeof doc.workflow !== 'object' || Array.isArray(doc.workflow)) {
22
+ throw new Error('workflow must be an object');
23
+ }
24
+ const workflow = doc.workflow;
25
+ if (!Array.isArray(workflow.pipelines)) {
26
+ throw new Error('workflow.pipelines must be an array');
27
+ }
28
+ for (let i = 0; i < workflow.pipelines.length; i++) {
29
+ const pipeline = workflow.pipelines[i];
30
+ if (!pipeline || typeof pipeline !== 'object' || Array.isArray(pipeline)) {
31
+ throw new Error(`workflow.pipelines[${i}] must be an object`);
32
+ }
33
+ }
34
+ return workflow;
35
+ }
36
+ export function serializeWorkflow(config) {
37
+ return yaml.dump({ workflow: stripLoadedPipelines(config) }, { lineWidth: 120, indent: 2 });
38
+ }
39
+ function stripLoadedPipelines(config) {
40
+ return {
41
+ name: config.name,
42
+ ...(config.max_concurrency !== undefined ? { max_concurrency: config.max_concurrency } : {}),
43
+ ...(config.failure_policy ? { failure_policy: config.failure_policy } : {}),
44
+ pipelines: config.pipelines.map((pipeline) => ({
45
+ id: pipeline.id,
46
+ path: pipeline.path,
47
+ ...(pipeline.depends_on?.length ? { depends_on: pipeline.depends_on } : {}),
48
+ })),
49
+ };
50
+ }
51
+ export function validateRawWorkflow(config) {
52
+ const errors = [];
53
+ validateGraphHeader(config, errors);
54
+ if (!Array.isArray(config.pipelines)) {
55
+ errors.push({ path: 'pipelines', message: 'workflow.pipelines must be an array' });
56
+ return errors;
57
+ }
58
+ if (config.pipelines.length === 0) {
59
+ errors.push({ path: 'pipelines', message: 'At least one pipeline is required' });
60
+ return errors;
61
+ }
62
+ validatePipelineNodes(config.pipelines, errors, true);
63
+ errors.push(...detectPipelineCycles(config.pipelines));
64
+ return errors;
65
+ }
66
+ export async function loadWorkflow(content, workDir) {
67
+ const raw = parseWorkflowYaml(content);
68
+ const diagnostics = validateRawWorkflow(raw);
69
+ if (diagnostics.length > 0)
70
+ throw new WorkflowValidationError(diagnostics);
71
+ const pipelines = await Promise.all(raw.pipelines.map(async (pipeline) => {
72
+ const resolved = validatePath(pipeline.path, workDir);
73
+ const pipelineYaml = readFileSync(resolved, 'utf8');
74
+ const config = await loadPipeline(pipelineYaml, workDir);
75
+ return {
76
+ id: pipeline.id,
77
+ path: pipeline.path,
78
+ cwd: workDir,
79
+ depends_on: pipeline.depends_on,
80
+ config,
81
+ };
82
+ }));
83
+ return {
84
+ name: raw.name,
85
+ max_concurrency: raw.max_concurrency,
86
+ failure_policy: raw.failure_policy,
87
+ pipelines,
88
+ };
89
+ }
90
+ export async function runPipelineGraph(config, workDir, options) {
91
+ return await new PipelineGraphRunner(config, workDir, options).start();
92
+ }
93
+ export class PipelineGraphRunner {
94
+ config;
95
+ workDir;
96
+ options;
97
+ graphRunId;
98
+ order;
99
+ nodes = new Map();
100
+ nodeConfigs = new Map();
101
+ handlers = new Set();
102
+ activeControllers = new Map();
103
+ result = null;
104
+ abortReason = null;
105
+ aborted = false;
106
+ constructor(config, workDir, options) {
107
+ this.config = config;
108
+ this.workDir = workDir;
109
+ this.options = options;
110
+ const diagnostics = validatePipelineGraphConfig(config);
111
+ if (diagnostics.length > 0)
112
+ throw new WorkflowValidationError(diagnostics);
113
+ this.graphRunId = generateRunId();
114
+ this.order = topologicalPipelineOrder(config.pipelines);
115
+ for (const pipeline of config.pipelines) {
116
+ this.nodeConfigs.set(pipeline.id, pipeline);
117
+ this.nodes.set(pipeline.id, {
118
+ pipelineId: pipeline.id,
119
+ path: pipeline.path ?? null,
120
+ dependsOn: [...(pipeline.depends_on ?? [])],
121
+ status: 'waiting',
122
+ runId: null,
123
+ startedAt: null,
124
+ finishedAt: null,
125
+ error: null,
126
+ result: null,
127
+ });
128
+ }
129
+ }
130
+ start() {
131
+ if (this.result)
132
+ return this.result;
133
+ if (this.options.signal?.aborted)
134
+ this.abort('external');
135
+ const onAbort = () => this.abort('external');
136
+ this.options.signal?.addEventListener('abort', onAbort, { once: true });
137
+ this.result = this.runGraph().finally(() => {
138
+ this.options.signal?.removeEventListener('abort', onAbort);
139
+ });
140
+ return this.result;
141
+ }
142
+ abort(_reason) {
143
+ if (this.abortReason === null)
144
+ this.abortReason = 'external';
145
+ this.aborted = true;
146
+ for (const controller of this.activeControllers.values()) {
147
+ controller.abort(_reason);
148
+ }
149
+ }
150
+ subscribe(handler) {
151
+ this.handlers.add(handler);
152
+ return () => this.handlers.delete(handler);
153
+ }
154
+ async runGraph() {
155
+ this.emit({
156
+ type: 'graph_start',
157
+ graphRunId: this.graphRunId,
158
+ workflowName: this.config.name,
159
+ pipelines: this.snapshotNodes(),
160
+ });
161
+ const running = new Map();
162
+ const maxConcurrency = this.config.max_concurrency ?? 1;
163
+ while (!this.allTerminal()) {
164
+ if (this.aborted) {
165
+ this.skipWaitingNodes();
166
+ }
167
+ else {
168
+ this.skipNodesWithFailedDeps();
169
+ this.launchReadyNodes(running, maxConcurrency);
170
+ }
171
+ if (this.allTerminal())
172
+ break;
173
+ if (running.size === 0) {
174
+ const message = 'Pipeline graph scheduler stalled with non-terminal pipelines';
175
+ this.emit({ type: 'graph_error', graphRunId: this.graphRunId, error: message });
176
+ this.failWaitingNodes(message);
177
+ break;
178
+ }
179
+ await Promise.race(running.values());
180
+ }
181
+ if (running.size > 0) {
182
+ await Promise.allSettled(running.values());
183
+ }
184
+ const pipelines = this.snapshotResults();
185
+ const success = pipelines.every((pipeline) => pipeline.status === 'success');
186
+ const result = {
187
+ graphRunId: this.graphRunId,
188
+ success,
189
+ abortReason: this.abortReason,
190
+ pipelines,
191
+ };
192
+ this.emit({
193
+ type: 'graph_end',
194
+ graphRunId: this.graphRunId,
195
+ success,
196
+ abortReason: this.abortReason,
197
+ pipelines: this.snapshotNodes(),
198
+ });
199
+ return result;
200
+ }
201
+ launchReadyNodes(running, maxConcurrency) {
202
+ for (const pipelineId of this.order) {
203
+ if (running.size >= maxConcurrency)
204
+ return;
205
+ const state = this.nodes.get(pipelineId);
206
+ if (state.status !== 'waiting')
207
+ continue;
208
+ if (!state.dependsOn.every((dep) => this.nodes.get(dep)?.status === 'success'))
209
+ continue;
210
+ const task = this.runOnePipeline(pipelineId).finally(() => {
211
+ running.delete(pipelineId);
212
+ });
213
+ running.set(pipelineId, task);
214
+ }
215
+ }
216
+ async runOnePipeline(pipelineId) {
217
+ const pipeline = this.nodeConfigs.get(pipelineId);
218
+ const controller = new AbortController();
219
+ this.activeControllers.set(pipelineId, controller);
220
+ this.updateNode(pipelineId, { status: 'running', startedAt: new Date().toISOString() });
221
+ const { signal: _graphSignal, onEvent: _graphOnEvent, ...pipelineOptions } = this.options;
222
+ try {
223
+ const result = await runPipeline(pipeline.config, pipeline.cwd ?? this.workDir, {
224
+ ...pipelineOptions,
225
+ signal: controller.signal,
226
+ onEvent: (event) => {
227
+ if (event.type === 'run_start') {
228
+ this.updateNode(pipelineId, { runId: event.runId });
229
+ }
230
+ this.emit({
231
+ type: 'pipeline_event',
232
+ graphRunId: this.graphRunId,
233
+ pipelineId,
234
+ event,
235
+ });
236
+ },
237
+ });
238
+ const status = controller.signal.aborted
239
+ ? 'aborted'
240
+ : result.success
241
+ ? 'success'
242
+ : 'failed';
243
+ this.updateNode(pipelineId, {
244
+ status,
245
+ result,
246
+ finishedAt: new Date().toISOString(),
247
+ error: status === 'failed' ? 'Pipeline failed' : null,
248
+ });
249
+ if (status === 'failed' && (this.config.failure_policy ?? 'stop_all') === 'stop_all') {
250
+ this.stopAllForFailure();
251
+ }
252
+ }
253
+ catch (err) {
254
+ const status = controller.signal.aborted ? 'aborted' : 'failed';
255
+ const error = errorMessage(err);
256
+ this.updateNode(pipelineId, {
257
+ status,
258
+ error,
259
+ finishedAt: new Date().toISOString(),
260
+ });
261
+ if (status === 'failed') {
262
+ this.emit({ type: 'graph_error', graphRunId: this.graphRunId, error });
263
+ if ((this.config.failure_policy ?? 'stop_all') === 'stop_all')
264
+ this.stopAllForFailure();
265
+ }
266
+ }
267
+ finally {
268
+ this.activeControllers.delete(pipelineId);
269
+ }
270
+ }
271
+ stopAllForFailure() {
272
+ if (this.abortReason === null)
273
+ this.abortReason = 'stop_all';
274
+ this.aborted = true;
275
+ for (const controller of this.activeControllers.values())
276
+ controller.abort('stop_all');
277
+ this.skipWaitingNodes();
278
+ }
279
+ skipNodesWithFailedDeps() {
280
+ for (const pipelineId of this.order) {
281
+ const state = this.nodes.get(pipelineId);
282
+ if (state.status !== 'waiting')
283
+ continue;
284
+ const deps = state.dependsOn.map((dep) => this.nodes.get(dep));
285
+ if (!deps.every((dep) => isTerminal(dep.status)))
286
+ continue;
287
+ if (deps.some((dep) => dep.status !== 'success')) {
288
+ this.updateNode(pipelineId, {
289
+ status: 'skipped',
290
+ finishedAt: new Date().toISOString(),
291
+ error: 'Skipped because an upstream pipeline did not succeed',
292
+ });
293
+ }
294
+ }
295
+ }
296
+ skipWaitingNodes() {
297
+ for (const pipelineId of this.order) {
298
+ const state = this.nodes.get(pipelineId);
299
+ if (state.status !== 'waiting')
300
+ continue;
301
+ this.updateNode(pipelineId, {
302
+ status: 'skipped',
303
+ finishedAt: new Date().toISOString(),
304
+ error: 'Skipped because the pipeline graph was aborted',
305
+ });
306
+ }
307
+ }
308
+ failWaitingNodes(message) {
309
+ for (const pipelineId of this.order) {
310
+ const state = this.nodes.get(pipelineId);
311
+ if (state.status !== 'waiting')
312
+ continue;
313
+ this.updateNode(pipelineId, {
314
+ status: 'failed',
315
+ finishedAt: new Date().toISOString(),
316
+ error: message,
317
+ });
318
+ }
319
+ }
320
+ allTerminal() {
321
+ for (const state of this.nodes.values()) {
322
+ if (!isTerminal(state.status))
323
+ return false;
324
+ }
325
+ return true;
326
+ }
327
+ updateNode(pipelineId, patch) {
328
+ const state = this.nodes.get(pipelineId);
329
+ Object.assign(state, patch);
330
+ this.emit({
331
+ type: 'pipeline_update',
332
+ graphRunId: this.graphRunId,
333
+ pipelineId,
334
+ status: state.status,
335
+ runId: state.runId,
336
+ startedAt: state.startedAt,
337
+ finishedAt: state.finishedAt,
338
+ error: state.error,
339
+ });
340
+ }
341
+ snapshotNodes() {
342
+ return [...this.nodes.values()].map(({ result: _result, ...state }) => ({ ...state }));
343
+ }
344
+ snapshotResults() {
345
+ return [...this.nodes.values()].map((state) => ({
346
+ pipelineId: state.pipelineId,
347
+ path: state.path,
348
+ dependsOn: [...state.dependsOn],
349
+ status: state.status,
350
+ runId: state.runId,
351
+ startedAt: state.startedAt,
352
+ finishedAt: state.finishedAt,
353
+ error: state.error,
354
+ result: state.result,
355
+ }));
356
+ }
357
+ emit(event) {
358
+ try {
359
+ this.options.onEvent?.(event);
360
+ }
361
+ catch (err) {
362
+ console.error('[PipelineGraphRunner] onEvent handler threw', err);
363
+ }
364
+ for (const handler of [...this.handlers]) {
365
+ try {
366
+ handler(event);
367
+ }
368
+ catch (err) {
369
+ console.error('[PipelineGraphRunner] subscriber threw while handling graph event', err);
370
+ }
371
+ }
372
+ }
373
+ }
374
+ export class PipelineGroup {
375
+ options;
376
+ pipelines = [];
377
+ constructor(options = {}) {
378
+ this.options = options;
379
+ }
380
+ add(options) {
381
+ this.pipelines.push({
382
+ id: options.id,
383
+ config: options.config,
384
+ cwd: options.cwd,
385
+ path: options.path,
386
+ depends_on: options.dependsOn,
387
+ });
388
+ return this;
389
+ }
390
+ toConfig() {
391
+ return {
392
+ name: this.options.name ?? 'pipeline-group',
393
+ max_concurrency: this.options.maxConcurrency,
394
+ failure_policy: this.options.failurePolicy,
395
+ pipelines: this.pipelines,
396
+ };
397
+ }
398
+ run(workDir, options) {
399
+ return runPipelineGraph(this.toConfig(), workDir, options);
400
+ }
401
+ }
402
+ export function createPipelineGroup(options = {}) {
403
+ return new PipelineGroup(options);
404
+ }
405
+ function validatePipelineGraphConfig(config) {
406
+ const errors = [];
407
+ validateGraphHeader(config, errors);
408
+ if (!Array.isArray(config.pipelines)) {
409
+ errors.push({ path: 'pipelines', message: 'workflow.pipelines must be an array' });
410
+ return errors;
411
+ }
412
+ if (config.pipelines.length === 0) {
413
+ errors.push({ path: 'pipelines', message: 'At least one pipeline is required' });
414
+ return errors;
415
+ }
416
+ validatePipelineNodes(config.pipelines, errors, false);
417
+ errors.push(...detectPipelineCycles(config.pipelines));
418
+ return errors;
419
+ }
420
+ function validateGraphHeader(config, errors) {
421
+ if (typeof config.name !== 'string' || config.name.trim().length === 0) {
422
+ errors.push({ path: 'name', message: 'Workflow name is required' });
423
+ }
424
+ if (config.max_concurrency !== undefined &&
425
+ (!Number.isInteger(config.max_concurrency) || config.max_concurrency < 1)) {
426
+ errors.push({ path: 'max_concurrency', message: 'max_concurrency must be a positive integer' });
427
+ }
428
+ if (config.failure_policy !== undefined && !VALID_FAILURE_POLICIES.has(config.failure_policy)) {
429
+ errors.push({
430
+ path: 'failure_policy',
431
+ message: 'failure_policy must be "stop_all" or "continue_independent"',
432
+ });
433
+ }
434
+ }
435
+ function validatePipelineNodes(pipelines, errors, requirePath) {
436
+ const seen = new Set();
437
+ const ids = new Set();
438
+ pipelines.forEach((pipeline, index) => {
439
+ const path = `pipelines[${index}]`;
440
+ if (typeof pipeline.id !== 'string' || pipeline.id.trim().length === 0) {
441
+ errors.push({ path: `${path}.id`, message: 'Pipeline id is required' });
442
+ }
443
+ else if (!isValidTaskId(pipeline.id)) {
444
+ errors.push({
445
+ path: `${path}.id`,
446
+ message: `Pipeline id "${pipeline.id}" is invalid`,
447
+ });
448
+ }
449
+ else if (seen.has(pipeline.id)) {
450
+ errors.push({ path: `${path}.id`, message: `Duplicate pipeline id "${pipeline.id}"` });
451
+ }
452
+ else {
453
+ seen.add(pipeline.id);
454
+ ids.add(pipeline.id);
455
+ }
456
+ if (requirePath)
457
+ validateWorkflowPath(pipeline.path, path, errors);
458
+ });
459
+ pipelines.forEach((pipeline, index) => {
460
+ const deps = pipeline.depends_on;
461
+ if (deps === undefined)
462
+ return;
463
+ if (!Array.isArray(deps)) {
464
+ errors.push({ path: `pipelines[${index}].depends_on`, message: 'depends_on must be an array' });
465
+ return;
466
+ }
467
+ for (let di = 0; di < deps.length; di++) {
468
+ const dep = deps[di];
469
+ if (typeof dep !== 'string' || dep.trim().length === 0) {
470
+ errors.push({
471
+ path: `pipelines[${index}].depends_on[${di}]`,
472
+ message: 'depends_on entries must be non-empty strings',
473
+ });
474
+ continue;
475
+ }
476
+ if (!ids.has(dep)) {
477
+ errors.push({
478
+ path: `pipelines[${index}].depends_on`,
479
+ message: `Pipeline "${pipeline.id}" depends_on "${dep}" - no such pipeline found`,
480
+ });
481
+ }
482
+ }
483
+ });
484
+ }
485
+ function validateWorkflowPath(value, basePath, errors) {
486
+ if (typeof value !== 'string' || value.trim().length === 0) {
487
+ errors.push({ path: `${basePath}.path`, message: 'pipeline path must be a non-empty string' });
488
+ return;
489
+ }
490
+ const parts = value.split(/[\\/]+/);
491
+ if (isAbsolute(value) || parts.includes('..')) {
492
+ errors.push({
493
+ path: `${basePath}.path`,
494
+ message: 'pipeline path must be workspace-relative and cannot contain ".."',
495
+ });
496
+ }
497
+ if (!/\.ya?ml$/i.test(value)) {
498
+ errors.push({ path: `${basePath}.path`, message: 'pipeline path must be a .yaml or .yml file' });
499
+ }
500
+ }
501
+ function detectPipelineCycles(pipelines) {
502
+ const ids = new Set(pipelines
503
+ .map((pipeline) => pipeline.id)
504
+ .filter((id) => typeof id === 'string' && id.length > 0));
505
+ const depsById = new Map();
506
+ for (const pipeline of pipelines) {
507
+ if (!ids.has(pipeline.id))
508
+ continue;
509
+ depsById.set(pipeline.id, (pipeline.depends_on ?? []).filter((dep) => ids.has(dep)));
510
+ }
511
+ const errors = [];
512
+ const visited = new Set();
513
+ const inStack = new Set();
514
+ const stack = [];
515
+ const reported = new Set();
516
+ function dfs(id) {
517
+ if (inStack.has(id)) {
518
+ const start = stack.indexOf(id);
519
+ const cycle = stack.slice(start);
520
+ const key = [...cycle].sort().join(',');
521
+ if (!reported.has(key)) {
522
+ reported.add(key);
523
+ errors.push({
524
+ path: 'pipelines',
525
+ message: `Circular dependency detected: ${[...cycle, id].join(' -> ')}`,
526
+ });
527
+ }
528
+ return;
529
+ }
530
+ if (visited.has(id))
531
+ return;
532
+ visited.add(id);
533
+ inStack.add(id);
534
+ stack.push(id);
535
+ for (const dep of depsById.get(id) ?? [])
536
+ dfs(dep);
537
+ stack.pop();
538
+ inStack.delete(id);
539
+ }
540
+ for (const id of depsById.keys())
541
+ dfs(id);
542
+ return errors;
543
+ }
544
+ function topologicalPipelineOrder(pipelines) {
545
+ const nodes = new Set(pipelines.map((pipeline) => pipeline.id));
546
+ const inDegree = new Map();
547
+ const children = new Map();
548
+ for (const id of nodes) {
549
+ inDegree.set(id, 0);
550
+ children.set(id, []);
551
+ }
552
+ for (const pipeline of pipelines) {
553
+ for (const dep of pipeline.depends_on ?? []) {
554
+ children.get(dep).push(pipeline.id);
555
+ inDegree.set(pipeline.id, (inDegree.get(pipeline.id) ?? 0) + 1);
556
+ }
557
+ }
558
+ const ready = [...inDegree.entries()]
559
+ .filter(([, degree]) => degree === 0)
560
+ .map(([id]) => id)
561
+ .sort();
562
+ const sorted = [];
563
+ let index = 0;
564
+ while (index < ready.length) {
565
+ const id = ready[index++];
566
+ sorted.push(id);
567
+ const newlyReady = [];
568
+ for (const child of children.get(id) ?? []) {
569
+ const degree = inDegree.get(child) - 1;
570
+ inDegree.set(child, degree);
571
+ if (degree === 0)
572
+ newlyReady.push(child);
573
+ }
574
+ newlyReady.sort();
575
+ ready.push(...newlyReady);
576
+ }
577
+ return sorted;
578
+ }
579
+ function isTerminal(status) {
580
+ return status === 'success' || status === 'failed' || status === 'skipped' || status === 'aborted';
581
+ }
582
+ function errorMessage(err) {
583
+ if (err instanceof Error && err.message)
584
+ return err.message;
585
+ if (typeof err === 'string')
586
+ return err;
587
+ return 'Unknown error';
588
+ }
589
+ export function resolveWorkflowPipelinePath(workDir, path) {
590
+ return resolve(validatePath(path, workDir));
591
+ }
592
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
package/dist/yaml.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { parseYaml, resolveConfig, loadPipeline, PipelineValidationError, serializePipeline, deresolvePipeline, validateConfig, } from './schema';
2
2
  export { compileYamlContent } from './yaml-compiler';
3
3
  export type { YamlCompileResult, CompileYamlOptions } from './yaml-compiler';
4
+ export { loadWorkflow, parseWorkflowYaml, serializeWorkflow, validateRawWorkflow, } from './workflow';
5
+ export type { RawWorkflowConfig, RawWorkflowPipelineConfig, WorkflowConfig, WorkflowPipelineConfig, } from './workflow';
4
6
  //# sourceMappingURL=yaml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
package/dist/yaml.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { parseYaml, resolveConfig, loadPipeline, PipelineValidationError, serializePipeline, deresolvePipeline, validateConfig, } from './schema';
2
2
  export { compileYamlContent } from './yaml-compiler';
3
+ export { loadWorkflow, parseWorkflowYaml, serializeWorkflow, validateRawWorkflow, } from './workflow';
3
4
  //# sourceMappingURL=yaml.js.map
package/dist/yaml.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tagma/sdk",
3
- "version": "0.7.33",
3
+ "version": "0.7.35",
4
4
  "description": "Local AI task orchestration SDK for Tagma pipelines",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,6 +41,11 @@
41
41
  "import": "./dist/pipeline-runner.js",
42
42
  "default": "./dist/pipeline-runner.js"
43
43
  },
44
+ "./workflow": {
45
+ "types": "./dist/workflow.d.ts",
46
+ "import": "./dist/workflow.js",
47
+ "default": "./dist/workflow.js"
48
+ },
44
49
  "./approval": {
45
50
  "types": "./dist/approval.d.ts",
46
51
  "import": "./dist/approval.js",
@@ -74,9 +79,9 @@
74
79
  "test": "bun test"
75
80
  },
76
81
  "dependencies": {
77
- "@tagma/core": "0.1.31",
78
- "@tagma/runtime-bun": "0.1.23",
79
- "@tagma/types": "0.4.38",
82
+ "@tagma/core": "0.1.33",
83
+ "@tagma/runtime-bun": "0.1.24",
84
+ "@tagma/types": "0.4.40",
80
85
  "js-yaml": "^4.1.0"
81
86
  }
82
87
  }