@studio-foundation/engine 0.4.0-beta → 0.6.0
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 +1 -1
- package/dist/__tests__/engine.script-stage.test.js +13 -32
- package/dist/__tests__/engine.script-stage.test.js.map +1 -1
- package/dist/engine.d.ts +2 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +139 -1
- package/dist/engine.js.map +1 -1
- package/dist/events.d.ts +50 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline/call-input.d.ts +4 -0
- package/dist/pipeline/call-input.d.ts.map +1 -0
- package/dist/pipeline/call-input.js +28 -0
- package/dist/pipeline/call-input.js.map +1 -0
- package/dist/pipeline/call-orchestrator.d.ts +21 -0
- package/dist/pipeline/call-orchestrator.d.ts.map +1 -0
- package/dist/pipeline/call-orchestrator.js +127 -0
- package/dist/pipeline/call-orchestrator.js.map +1 -0
- package/dist/pipeline/condition-evaluator.d.ts +12 -0
- package/dist/pipeline/condition-evaluator.d.ts.map +1 -1
- package/dist/pipeline/condition-evaluator.js +27 -9
- package/dist/pipeline/condition-evaluator.js.map +1 -1
- package/dist/pipeline/context-propagation.d.ts +1 -0
- package/dist/pipeline/context-propagation.d.ts.map +1 -1
- package/dist/pipeline/context-propagation.js +18 -0
- package/dist/pipeline/context-propagation.js.map +1 -1
- package/dist/pipeline/contract-loader.d.ts.map +1 -1
- package/dist/pipeline/contract-loader.js +67 -0
- package/dist/pipeline/contract-loader.js.map +1 -1
- package/dist/pipeline/external-validator.d.ts +3 -0
- package/dist/pipeline/external-validator.d.ts.map +1 -0
- package/dist/pipeline/external-validator.js +65 -0
- package/dist/pipeline/external-validator.js.map +1 -0
- package/dist/pipeline/external-validator.test.d.ts +2 -0
- package/dist/pipeline/external-validator.test.d.ts.map +1 -0
- package/dist/pipeline/external-validator.test.js +40 -0
- package/dist/pipeline/external-validator.test.js.map +1 -0
- package/dist/pipeline/loader.d.ts.map +1 -1
- package/dist/pipeline/loader.js +158 -1
- package/dist/pipeline/loader.js.map +1 -1
- package/dist/pipeline/loader.test.js +30 -0
- package/dist/pipeline/loader.test.js.map +1 -1
- package/dist/pipeline/map-input.d.ts +13 -0
- package/dist/pipeline/map-input.d.ts.map +1 -0
- package/dist/pipeline/map-input.js +80 -0
- package/dist/pipeline/map-input.js.map +1 -0
- package/dist/pipeline/map-item-cache.d.ts +47 -0
- package/dist/pipeline/map-item-cache.d.ts.map +1 -0
- package/dist/pipeline/map-item-cache.js +0 -0
- package/dist/pipeline/map-item-cache.js.map +1 -0
- package/dist/pipeline/map-orchestrator.d.ts +42 -0
- package/dist/pipeline/map-orchestrator.d.ts.map +1 -0
- package/dist/pipeline/map-orchestrator.js +283 -0
- package/dist/pipeline/map-orchestrator.js.map +1 -0
- package/dist/pipeline/output-checker.d.ts +3 -0
- package/dist/pipeline/output-checker.d.ts.map +1 -0
- package/dist/pipeline/output-checker.js +40 -0
- package/dist/pipeline/output-checker.js.map +1 -0
- package/dist/pipeline/output-checker.test.d.ts +2 -0
- package/dist/pipeline/output-checker.test.d.ts.map +1 -0
- package/dist/pipeline/output-checker.test.js +62 -0
- package/dist/pipeline/output-checker.test.js.map +1 -0
- package/dist/pipeline/stage-executor.d.ts.map +1 -1
- package/dist/pipeline/stage-executor.js +48 -9
- package/dist/pipeline/stage-executor.js.map +1 -1
- package/dist/pipeline/stage-resolver.js +1 -1
- package/dist/pipeline/stage-resolver.js.map +1 -1
- package/dist/pipeline/strict-fields.d.ts +20 -0
- package/dist/pipeline/strict-fields.d.ts.map +1 -0
- package/dist/pipeline/strict-fields.js +62 -0
- package/dist/pipeline/strict-fields.js.map +1 -0
- package/dist/pipeline/task-input.d.ts +14 -0
- package/dist/pipeline/task-input.d.ts.map +1 -0
- package/dist/pipeline/task-input.js +22 -0
- package/dist/pipeline/task-input.js.map +1 -0
- package/dist/pipeline/task-input.test.d.ts +2 -0
- package/dist/pipeline/task-input.test.d.ts.map +1 -0
- package/dist/pipeline/task-input.test.js +33 -0
- package/dist/pipeline/task-input.test.js.map +1 -0
- package/dist/pipeline/template-interpolation.d.ts +9 -0
- package/dist/pipeline/template-interpolation.d.ts.map +1 -0
- package/dist/pipeline/template-interpolation.js +33 -0
- package/dist/pipeline/template-interpolation.js.map +1 -0
- package/dist/state/status-derivation.js +3 -3
- package/dist/state/status-derivation.js.map +1 -1
- package/package.json +5 -5
package/dist/pipeline/loader.js
CHANGED
|
@@ -2,6 +2,77 @@
|
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import * as yaml from 'js-yaml';
|
|
5
|
+
import { assertKnownFields, suggestClosest } from './strict-fields.js';
|
|
6
|
+
import { CONTEXT_INCLUDE_DIRECTIVES } from './context-propagation.js';
|
|
7
|
+
// Every field the kernel implements, per block (see PipelineDefinition and
|
|
8
|
+
// friends in @studio-foundation/contracts). Anything else is config-theatre
|
|
9
|
+
// and must be rejected at load time, not silently ignored.
|
|
10
|
+
const PIPELINE_FIELDS = [
|
|
11
|
+
'name', 'description', 'version', 'on_pipeline_start', 'input_schema', 'repo', 'stages',
|
|
12
|
+
];
|
|
13
|
+
const STAGE_FIELDS = [
|
|
14
|
+
'name', 'condition', 'kind', 'agent', 'executor', 'script', 'runtime',
|
|
15
|
+
'timeout_ms', 'contract', 'ralph', 'context', 'tools', 'hooks',
|
|
16
|
+
];
|
|
17
|
+
const GROUP_FIELDS = ['group', 'max_iterations', 'mode', 'on_failure', 'stages'];
|
|
18
|
+
const MAP_FIELDS = ['map', 'condition', 'over', 'pipeline', 'input', 'as', 'concurrency', 'on_item_failure', 'resume'];
|
|
19
|
+
const CALL_FIELDS = ['call', 'condition', 'pipeline', 'input'];
|
|
20
|
+
const RALPH_FIELDS = ['max_attempts', 'retry_strategy', 'max_tool_calls'];
|
|
21
|
+
const CONTEXT_FIELDS = ['include', 'packs'];
|
|
22
|
+
const TOOLS_FIELDS = ['required'];
|
|
23
|
+
const HOOKS_FIELDS = ['on_stage_start', 'on_stage_complete', 'pre_tool_use', 'post_tool_use'];
|
|
24
|
+
const STAGE_HOOK_FIELDS = ['command', 'on_failure'];
|
|
25
|
+
const TOOL_HOOK_FIELDS = ['matcher', 'command', 'on_failure'];
|
|
26
|
+
const STARTUP_COMMAND_FIELDS = ['command', 'inject_as'];
|
|
27
|
+
const REPO_FIELDS = ['url', 'branch'];
|
|
28
|
+
const INPUT_SCHEMA_FIELDS = ['type', 'fields'];
|
|
29
|
+
const INPUT_FIELD_FIELDS = ['name', 'type', 'prompt', 'required', 'default', 'items'];
|
|
30
|
+
/** assertKnownFields on a block only if it is a plain object. */
|
|
31
|
+
function checkBlock(block, allowed, what, context) {
|
|
32
|
+
if (block && typeof block === 'object' && !Array.isArray(block)) {
|
|
33
|
+
assertKnownFields(block, allowed, what, context);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reject a `context.include` directive the kernel does not implement. The block
|
|
38
|
+
* keys (include/packs) are already checked; this checks the include *values* —
|
|
39
|
+
* an unknown one has no switch case in getContextForStage and is silently
|
|
40
|
+
* dropped, so the user believes a context is wired that never arrives (STU-593).
|
|
41
|
+
*/
|
|
42
|
+
function checkContextInclude(stage, context) {
|
|
43
|
+
const includes = stage.context?.include;
|
|
44
|
+
if (!Array.isArray(includes))
|
|
45
|
+
return;
|
|
46
|
+
for (const directive of includes) {
|
|
47
|
+
if (typeof directive === 'string' && !CONTEXT_INCLUDE_DIRECTIVES.includes(directive)) {
|
|
48
|
+
const suggestion = suggestClosest(directive, CONTEXT_INCLUDE_DIRECTIVES);
|
|
49
|
+
throw new Error(`Unknown context.include '${directive}' in stage '${stage.name}'${context}.` +
|
|
50
|
+
(suggestion ? ` Did you mean '${suggestion}'?` : '') +
|
|
51
|
+
` Known directives: ${[...CONTEXT_INCLUDE_DIRECTIVES].sort().join(', ')}.`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Strict-check a stage and every nested block the kernel owns. */
|
|
56
|
+
function checkStageFields(stage, context) {
|
|
57
|
+
const inStage = `of stage '${stage.name}'`;
|
|
58
|
+
assertKnownFields(stage, STAGE_FIELDS, `stage '${stage.name}'`, context);
|
|
59
|
+
checkBlock(stage.ralph, RALPH_FIELDS, `ralph ${inStage}`, context);
|
|
60
|
+
checkBlock(stage.context, CONTEXT_FIELDS, `context ${inStage}`, context);
|
|
61
|
+
checkContextInclude(stage, context);
|
|
62
|
+
checkBlock(stage.tools, TOOLS_FIELDS, `tools ${inStage}`, context);
|
|
63
|
+
checkBlock(stage.hooks, HOOKS_FIELDS, `hooks ${inStage}`, context);
|
|
64
|
+
if (stage.hooks && typeof stage.hooks === 'object') {
|
|
65
|
+
for (const point of HOOKS_FIELDS) {
|
|
66
|
+
const entries = stage.hooks[point];
|
|
67
|
+
if (!Array.isArray(entries))
|
|
68
|
+
continue;
|
|
69
|
+
const allowed = point.startsWith('on_stage') ? STAGE_HOOK_FIELDS : TOOL_HOOK_FIELDS;
|
|
70
|
+
for (const entry of entries) {
|
|
71
|
+
checkBlock(entry, allowed, `hooks.${point} entry ${inStage}`, context);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
5
76
|
export async function loadPipeline(path) {
|
|
6
77
|
let content;
|
|
7
78
|
try {
|
|
@@ -31,15 +102,39 @@ export function parsePipelineYaml(yamlContent, sourcePath) {
|
|
|
31
102
|
if (parsed.stages.length === 0) {
|
|
32
103
|
throw new Error(`Pipeline must have at least one stage${context}`);
|
|
33
104
|
}
|
|
105
|
+
assertKnownFields(parsed, PIPELINE_FIELDS, `pipeline '${parsed.name}'`, context);
|
|
106
|
+
checkBlock(parsed.repo, REPO_FIELDS, `repo of pipeline '${parsed.name}'`, context);
|
|
107
|
+
checkBlock(parsed.input_schema, INPUT_SCHEMA_FIELDS, `input_schema of pipeline '${parsed.name}'`, context);
|
|
108
|
+
const inputFields = parsed.input_schema?.fields;
|
|
109
|
+
if (Array.isArray(inputFields)) {
|
|
110
|
+
for (const f of inputFields) {
|
|
111
|
+
checkBlock(f, INPUT_FIELD_FIELDS, `input_schema field of pipeline '${parsed.name}'`, context);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (Array.isArray(parsed.on_pipeline_start)) {
|
|
115
|
+
for (const cmd of parsed.on_pipeline_start) {
|
|
116
|
+
checkBlock(cmd, STARTUP_COMMAND_FIELDS, `on_pipeline_start entry of pipeline '${parsed.name}'`, context);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
34
119
|
const stages = [];
|
|
35
120
|
for (const entry of parsed.stages) {
|
|
36
|
-
if (entry.
|
|
121
|
+
if (entry.map !== undefined) {
|
|
122
|
+
// Fan-out / map stage
|
|
123
|
+
stages.push(parseMapStage(entry, context));
|
|
124
|
+
}
|
|
125
|
+
else if (entry.call !== undefined) {
|
|
126
|
+
// One-shot sub-pipeline call
|
|
127
|
+
stages.push(parseCallStage(entry, context));
|
|
128
|
+
}
|
|
129
|
+
else if (entry.group) {
|
|
37
130
|
// Group entry
|
|
131
|
+
assertKnownFields(entry, GROUP_FIELDS, `group '${entry.group}'`, context);
|
|
38
132
|
if (!Array.isArray(entry.stages) || entry.stages.length < 2) {
|
|
39
133
|
throw new Error(`Group '${entry.group}' must have at least 2 stages${context}`);
|
|
40
134
|
}
|
|
41
135
|
for (const s of entry.stages) {
|
|
42
136
|
validateStageFields(s, context);
|
|
137
|
+
checkStageFields(s, context);
|
|
43
138
|
}
|
|
44
139
|
const mode = entry.mode === 'parallel' ? 'parallel' : undefined;
|
|
45
140
|
let maxIterations = entry.max_iterations ?? 3;
|
|
@@ -58,6 +153,7 @@ export function parsePipelineYaml(yamlContent, sourcePath) {
|
|
|
58
153
|
else {
|
|
59
154
|
// Simple stage
|
|
60
155
|
validateStageFields(entry, context);
|
|
156
|
+
checkStageFields(entry, context);
|
|
61
157
|
stages.push({ ...entry, hooks: parseStageHooks(entry) });
|
|
62
158
|
}
|
|
63
159
|
}
|
|
@@ -129,4 +225,65 @@ function validateStageFields(stage, context) {
|
|
|
129
225
|
if (stage.executor === 'script' && !stage.script)
|
|
130
226
|
throw new Error(`Stage '${stage.name}' missing 'script' (required when executor: 'script')${context}`);
|
|
131
227
|
}
|
|
228
|
+
function parseMapStage(entry, context) {
|
|
229
|
+
const name = entry.map;
|
|
230
|
+
if (!name || typeof name !== 'string') {
|
|
231
|
+
throw new Error(`Map stage missing 'map' (the fan-out stage name)${context}`);
|
|
232
|
+
}
|
|
233
|
+
assertKnownFields(entry, MAP_FIELDS, `map stage '${name}'`, context);
|
|
234
|
+
if (!entry.over || typeof entry.over !== 'string') {
|
|
235
|
+
throw new Error(`Map stage '${name}' missing 'over' (context path to the list, e.g. stages.plan.output.items)${context}`);
|
|
236
|
+
}
|
|
237
|
+
if (!entry.pipeline || typeof entry.pipeline !== 'string') {
|
|
238
|
+
throw new Error(`Map stage '${name}' missing 'pipeline' (the sub-pipeline to run per item)${context}`);
|
|
239
|
+
}
|
|
240
|
+
if (entry.input !== undefined && (typeof entry.input !== 'object' || entry.input === null || Array.isArray(entry.input))) {
|
|
241
|
+
throw new Error(`Map stage '${name}' field 'input' must be an object of key → template${context}`);
|
|
242
|
+
}
|
|
243
|
+
if (entry.as !== undefined && typeof entry.as !== 'string') {
|
|
244
|
+
throw new Error(`Map stage '${name}' field 'as' must be a string${context}`);
|
|
245
|
+
}
|
|
246
|
+
if (entry.concurrency !== undefined) {
|
|
247
|
+
if (typeof entry.concurrency !== 'number' || !Number.isInteger(entry.concurrency) || entry.concurrency < 1) {
|
|
248
|
+
throw new Error(`Map stage '${name}' field 'concurrency' must be a positive integer${context}`);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
const onItemFailure = entry.on_item_failure ?? 'fail-fast';
|
|
252
|
+
if (onItemFailure !== 'fail-fast' && onItemFailure !== 'collect-all') {
|
|
253
|
+
throw new Error(`Map stage '${name}' field 'on_item_failure' must be 'fail-fast' or 'collect-all'${context}`);
|
|
254
|
+
}
|
|
255
|
+
if (entry.resume !== undefined && typeof entry.resume !== 'boolean') {
|
|
256
|
+
throw new Error(`Map stage '${name}' field 'resume' must be a boolean${context}`);
|
|
257
|
+
}
|
|
258
|
+
return {
|
|
259
|
+
map: name,
|
|
260
|
+
over: entry.over,
|
|
261
|
+
pipeline: entry.pipeline,
|
|
262
|
+
...(entry.condition !== undefined ? { condition: entry.condition } : {}),
|
|
263
|
+
...(entry.input !== undefined ? { input: entry.input } : {}),
|
|
264
|
+
...(entry.as !== undefined ? { as: entry.as } : {}),
|
|
265
|
+
...(entry.concurrency !== undefined ? { concurrency: entry.concurrency } : {}),
|
|
266
|
+
on_item_failure: onItemFailure,
|
|
267
|
+
...(entry.resume !== undefined ? { resume: entry.resume } : {}),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
function parseCallStage(entry, context) {
|
|
271
|
+
const name = entry.call;
|
|
272
|
+
if (!name || typeof name !== 'string') {
|
|
273
|
+
throw new Error(`Call stage missing 'call' (the stage name)${context}`);
|
|
274
|
+
}
|
|
275
|
+
assertKnownFields(entry, CALL_FIELDS, `call stage '${name}'`, context);
|
|
276
|
+
if (entry.pipeline !== undefined && typeof entry.pipeline !== 'string') {
|
|
277
|
+
throw new Error(`Call stage '${name}' field 'pipeline' must be a string${context}`);
|
|
278
|
+
}
|
|
279
|
+
if (entry.input !== undefined && (typeof entry.input !== 'object' || entry.input === null || Array.isArray(entry.input))) {
|
|
280
|
+
throw new Error(`Call stage '${name}' field 'input' must be an object of key → template${context}`);
|
|
281
|
+
}
|
|
282
|
+
return {
|
|
283
|
+
call: name,
|
|
284
|
+
...(entry.pipeline !== undefined ? { pipeline: entry.pipeline } : {}),
|
|
285
|
+
...(entry.condition !== undefined ? { condition: entry.condition } : {}),
|
|
286
|
+
...(entry.input !== undefined ? { input: entry.input } : {}),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
132
289
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/pipeline/loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/pipeline/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -117,4 +117,34 @@ stages:
|
|
|
117
117
|
expect(stage.hooks).toBeUndefined();
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
|
+
describe('parsePipelineYaml — context.include directives (STU-593)', () => {
|
|
121
|
+
const withInclude = (include) => `
|
|
122
|
+
name: test-pipeline
|
|
123
|
+
description: test
|
|
124
|
+
version: 1
|
|
125
|
+
stages:
|
|
126
|
+
- name: analyze
|
|
127
|
+
kind: analysis
|
|
128
|
+
agent: analyst
|
|
129
|
+
context:
|
|
130
|
+
include:
|
|
131
|
+
- input
|
|
132
|
+
- ${include}
|
|
133
|
+
`;
|
|
134
|
+
it('accepts every directive getContextForStage implements', () => {
|
|
135
|
+
for (const directive of [
|
|
136
|
+
'input', 'previous_stage_output', 'all_stage_outputs', 'stage_name',
|
|
137
|
+
'group_feedback', 'previous_stage_tool_results', 'all_stage_tool_results',
|
|
138
|
+
'repo_files', 'repo_structure', 'pipeline_start_context',
|
|
139
|
+
]) {
|
|
140
|
+
expect(() => parsePipelineYaml(withInclude(directive))).not.toThrow();
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
it('throws on an unknown context.include directive instead of silently dropping it', () => {
|
|
144
|
+
expect(() => parsePipelineYaml(withInclude('entity-classification'))).toThrow(/Unknown context\.include 'entity-classification' in stage 'analyze'/);
|
|
145
|
+
});
|
|
146
|
+
it('suggests the closest directive on a typo', () => {
|
|
147
|
+
expect(() => parsePipelineYaml(withInclude('all_stage_output'))).toThrow(/Did you mean 'all_stage_outputs'\?/);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
120
150
|
//# sourceMappingURL=loader.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/pipeline/loader.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/pipeline/loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MapStage } from '@studio-foundation/contracts';
|
|
2
|
+
import type { PipelineInput } from './context-propagation.js';
|
|
3
|
+
/**
|
|
4
|
+
* A short, human-readable identity for one item of a fan-out list, for progress
|
|
5
|
+
* display. Prefers a meaningful field of an object item (title/name/id/…) over
|
|
6
|
+
* a bare index, so an operator watching a --live run sees *which* entity is in
|
|
7
|
+
* flight, not just "#37". Never throws — it is display-only and must tolerate
|
|
8
|
+
* any item shape (including the ones buildItemInput would reject).
|
|
9
|
+
*/
|
|
10
|
+
export declare function mapItemLabel(item: unknown, index: number): string;
|
|
11
|
+
/** Build the sub-pipeline input for one item of a fan-out stage. */
|
|
12
|
+
export declare function buildItemInput(map: MapStage, item: unknown, index: number, pipelineInput: PipelineInput): Record<string, unknown>;
|
|
13
|
+
//# sourceMappingURL=map-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-input.d.ts","sourceRoot":"","sources":["../../src/pipeline/map-input.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA4B9D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAejE;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,aAAa,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBzB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Build the per-item input for a fan-out (map) stage.
|
|
2
|
+
//
|
|
3
|
+
// Each item of the `over:` list becomes one sub-pipeline run. The input for
|
|
4
|
+
// that run is derived from the map stage config:
|
|
5
|
+
// - `input:` template → interpolate {{item}}, {{item.<path>}}, {{index}},
|
|
6
|
+
// {{input}}, {{input.<path>}} in each value.
|
|
7
|
+
// - `as:` shorthand → { [as]: item }
|
|
8
|
+
// - neither → the item itself, if it is a plain object.
|
|
9
|
+
import { interpolateTemplate } from './template-interpolation.js';
|
|
10
|
+
/** Resolve a single {{...}} reference against the item/index/input scope. */
|
|
11
|
+
function resolveRef(ref, scope) {
|
|
12
|
+
if (ref === 'item')
|
|
13
|
+
return scope.item;
|
|
14
|
+
if (ref === 'index')
|
|
15
|
+
return scope.index;
|
|
16
|
+
if (ref === 'input')
|
|
17
|
+
return scope.input;
|
|
18
|
+
if (ref.startsWith('item.'))
|
|
19
|
+
return traverse(scope.item, ref.slice('item.'.length));
|
|
20
|
+
if (ref.startsWith('input.'))
|
|
21
|
+
return traverse(scope.input, ref.slice('input.'.length));
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function traverse(obj, path) {
|
|
25
|
+
let current = obj;
|
|
26
|
+
for (const part of path.split('.')) {
|
|
27
|
+
if (current === null || current === undefined || typeof current !== 'object')
|
|
28
|
+
return undefined;
|
|
29
|
+
current = current[part];
|
|
30
|
+
}
|
|
31
|
+
return current;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A short, human-readable identity for one item of a fan-out list, for progress
|
|
35
|
+
* display. Prefers a meaningful field of an object item (title/name/id/…) over
|
|
36
|
+
* a bare index, so an operator watching a --live run sees *which* entity is in
|
|
37
|
+
* flight, not just "#37". Never throws — it is display-only and must tolerate
|
|
38
|
+
* any item shape (including the ones buildItemInput would reject).
|
|
39
|
+
*/
|
|
40
|
+
export function mapItemLabel(item, index) {
|
|
41
|
+
if (typeof item === 'string')
|
|
42
|
+
return item.trim() || `#${index}`;
|
|
43
|
+
if (typeof item === 'number' || typeof item === 'boolean')
|
|
44
|
+
return String(item);
|
|
45
|
+
if (item !== null && typeof item === 'object' && !Array.isArray(item)) {
|
|
46
|
+
const obj = item;
|
|
47
|
+
for (const key of ['title', 'name', 'id', 'slug', 'label', 'key', 'entity']) {
|
|
48
|
+
const v = obj[key];
|
|
49
|
+
if (typeof v === 'string' && v.trim())
|
|
50
|
+
return v.trim();
|
|
51
|
+
if (typeof v === 'number')
|
|
52
|
+
return String(v);
|
|
53
|
+
}
|
|
54
|
+
for (const v of Object.values(obj)) {
|
|
55
|
+
if (typeof v === 'string' && v.trim())
|
|
56
|
+
return v.trim();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return `#${index}`;
|
|
60
|
+
}
|
|
61
|
+
/** Build the sub-pipeline input for one item of a fan-out stage. */
|
|
62
|
+
export function buildItemInput(map, item, index, pipelineInput) {
|
|
63
|
+
const scope = { item, index, input: pipelineInput };
|
|
64
|
+
if (map.input) {
|
|
65
|
+
const result = {};
|
|
66
|
+
for (const [key, template] of Object.entries(map.input)) {
|
|
67
|
+
result[key] = interpolateTemplate(template, (ref) => resolveRef(ref, scope));
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
if (map.as) {
|
|
72
|
+
return { [map.as]: item };
|
|
73
|
+
}
|
|
74
|
+
if (item !== null && typeof item === 'object' && !Array.isArray(item)) {
|
|
75
|
+
return item;
|
|
76
|
+
}
|
|
77
|
+
throw new Error(`Map stage '${map.map}': item at index ${index} is not an object, so it cannot be used as pipeline input directly. ` +
|
|
78
|
+
`Add 'as: <key>' (input becomes { <key>: item }) or an 'input:' template.`);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=map-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-input.js","sourceRoot":"","sources":["../../src/pipeline/map-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** A completed item's stored result. */
|
|
2
|
+
export interface CachedMapItem {
|
|
3
|
+
output: unknown;
|
|
4
|
+
run_id?: string;
|
|
5
|
+
cached_at: string;
|
|
6
|
+
}
|
|
7
|
+
/** Identifies which map stage a cached item belongs to. */
|
|
8
|
+
export interface MapCacheNamespace {
|
|
9
|
+
pipeline: string;
|
|
10
|
+
stage: string;
|
|
11
|
+
subPipeline: string;
|
|
12
|
+
}
|
|
13
|
+
export interface MapItemCache {
|
|
14
|
+
/** The cached result for this item input, or undefined on a miss. Never throws. */
|
|
15
|
+
get(ns: MapCacheNamespace, itemHash: string): Promise<CachedMapItem | undefined>;
|
|
16
|
+
/** Persist a completed item. Best-effort — must never throw. */
|
|
17
|
+
set(ns: MapCacheNamespace, itemHash: string, value: CachedMapItem): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Deterministic JSON with object keys sorted recursively. Two objects that
|
|
21
|
+
* differ only in key order serialize identically (so they hash the same), while
|
|
22
|
+
* arrays keep their order (a list is ordered data — [1,2] and [2,1] are not the
|
|
23
|
+
* same input).
|
|
24
|
+
*/
|
|
25
|
+
export declare function canonicalize(value: unknown): string;
|
|
26
|
+
/**
|
|
27
|
+
* The resume key for one item: a hash of its sub-pipeline input. Keyed on the
|
|
28
|
+
* input, never the index — so a changed item misses (recomputes) and a
|
|
29
|
+
* reordered list hits.
|
|
30
|
+
*/
|
|
31
|
+
export declare function hashItemInput(input: unknown): string;
|
|
32
|
+
/** Filesystem-backed cache: `<root>/<pipeline>/<stage>/<subPipeline>/<itemHash>.json`. */
|
|
33
|
+
export declare class FileSystemMapItemCache implements MapItemCache {
|
|
34
|
+
private root;
|
|
35
|
+
constructor(root: string);
|
|
36
|
+
private pathFor;
|
|
37
|
+
get(ns: MapCacheNamespace, itemHash: string): Promise<CachedMapItem | undefined>;
|
|
38
|
+
set(ns: MapCacheNamespace, itemHash: string, value: CachedMapItem): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
/** In-memory cache for tests — same contract, no filesystem. */
|
|
41
|
+
export declare class InMemoryMapItemCache implements MapItemCache {
|
|
42
|
+
private store;
|
|
43
|
+
private keyFor;
|
|
44
|
+
get(ns: MapCacheNamespace, itemHash: string): Promise<CachedMapItem | undefined>;
|
|
45
|
+
set(ns: MapCacheNamespace, itemHash: string, value: CachedMapItem): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=map-item-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-item-cache.d.ts","sourceRoot":"","sources":["../../src/pipeline/map-item-cache.ts"],"names":[],"mappings":"AAkBA,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,mFAAmF;IACnF,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACjF,gEAAgE;IAChE,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAOD,0FAA0F;AAC1F,qBAAa,sBAAuB,YAAW,YAAY;IAC7C,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,MAAM;IAEhC,OAAO,CAAC,OAAO;IAUT,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAUhF,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CASxF;AAED,gEAAgE;AAChE,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,KAAK,CAAoC;IAEjD,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAIhF,GAAG,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxF"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-item-cache.js","sourceRoot":"","sources":["../../src/pipeline/map-item-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { MapStage, RunSpawner, StageRun, StageStatus } from '@studio-foundation/contracts';
|
|
2
|
+
import type { EngineEvents, PipelineEventEmitter } from '../events.js';
|
|
3
|
+
import type { PipelineContext } from './context-propagation.js';
|
|
4
|
+
import { type MapItemCache } from './map-item-cache.js';
|
|
5
|
+
export interface MapItemResult {
|
|
6
|
+
index: number;
|
|
7
|
+
status: 'success' | 'failed';
|
|
8
|
+
output?: unknown;
|
|
9
|
+
error?: string;
|
|
10
|
+
run_id?: string;
|
|
11
|
+
/** True when served from the resume cache instead of spawned this run. */
|
|
12
|
+
cached?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface MapStageOutput {
|
|
15
|
+
total: number;
|
|
16
|
+
succeeded: number;
|
|
17
|
+
failed: number;
|
|
18
|
+
/** Of the successes, how many were served from the resume cache (not spawned). */
|
|
19
|
+
resumed: number;
|
|
20
|
+
results: MapItemResult[];
|
|
21
|
+
/** Successful item outputs in index order — the common "collect what worked" path. */
|
|
22
|
+
outputs: unknown[];
|
|
23
|
+
}
|
|
24
|
+
export interface MapRunResult {
|
|
25
|
+
status: StageStatus;
|
|
26
|
+
stageRun: StageRun;
|
|
27
|
+
output?: MapStageOutput;
|
|
28
|
+
}
|
|
29
|
+
export interface MapOrchestratorConfig {
|
|
30
|
+
events?: EngineEvents;
|
|
31
|
+
emitter: PipelineEventEmitter;
|
|
32
|
+
spawner?: RunSpawner;
|
|
33
|
+
maxDepth: number;
|
|
34
|
+
/** Durable per-item store for `resume: true` map stages. Absent → resume is a no-op. */
|
|
35
|
+
cache?: MapItemCache;
|
|
36
|
+
}
|
|
37
|
+
export declare class MapOrchestrator {
|
|
38
|
+
private config;
|
|
39
|
+
constructor(config: MapOrchestratorConfig);
|
|
40
|
+
run(map: MapStage, context: PipelineContext, stageIndex: number, totalStages: number, runId: string, depth: number, pipelineName: string, signal?: AbortSignal): Promise<MapRunResult>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=map-orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-orchestrator.d.ts","sourceRoot":"","sources":["../../src/pipeline/map-orchestrator.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAW,MAAM,8BAA8B,CAAC;AACzG,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAiB,KAAK,YAAY,EAA8C,MAAM,qBAAqB,CAAC;AAEnH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,sFAAsF;IACtF,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAMD,qBAAa,eAAe;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,qBAAqB;IAE3C,GAAG,CACP,GAAG,EAAE,QAAQ,EACb,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC;CAuRzB"}
|