@proposit/proposit-core 1.0.1 → 1.1.1
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 +0 -1
- package/dist/cli/commands/parse.d.ts.map +1 -1
- package/dist/cli/commands/parse.js +62 -27
- package/dist/cli/commands/parse.js.map +1 -1
- package/dist/cli/llm/index.d.ts +5 -4
- package/dist/cli/llm/index.d.ts.map +1 -1
- package/dist/cli/llm/index.js +15 -3
- package/dist/cli/llm/index.js.map +1 -1
- package/dist/extensions/argument-ingestion/index.d.ts +9 -0
- package/dist/extensions/argument-ingestion/index.d.ts.map +1 -0
- package/dist/extensions/argument-ingestion/index.js +11 -0
- package/dist/extensions/argument-ingestion/index.js.map +1 -0
- package/dist/extensions/argument-ingestion/shared/basics-extension.d.ts +9 -0
- package/dist/extensions/argument-ingestion/shared/basics-extension.d.ts.map +1 -0
- package/dist/extensions/argument-ingestion/shared/basics-extension.js +25 -0
- package/dist/extensions/argument-ingestion/shared/basics-extension.js.map +1 -0
- package/dist/extensions/argument-ingestion/shared/finalize-response.d.ts +21 -0
- package/dist/extensions/argument-ingestion/shared/finalize-response.d.ts.map +1 -0
- package/dist/extensions/argument-ingestion/shared/finalize-response.js +33 -0
- package/dist/extensions/argument-ingestion/shared/finalize-response.js.map +1 -0
- package/dist/extensions/argument-ingestion/shared/role-derivation.d.ts +11 -0
- package/dist/extensions/argument-ingestion/shared/role-derivation.d.ts.map +1 -0
- package/dist/extensions/argument-ingestion/shared/role-derivation.js +26 -0
- package/dist/extensions/argument-ingestion/shared/role-derivation.js.map +1 -0
- package/dist/extensions/argument-ingestion/shared/types.d.ts +34 -0
- package/dist/extensions/argument-ingestion/shared/types.d.ts.map +1 -0
- package/dist/extensions/argument-ingestion/shared/types.js +16 -0
- package/dist/extensions/argument-ingestion/shared/types.js.map +1 -0
- package/dist/extensions/argument-ingestion/v1-single-shot.d.ts +18 -0
- package/dist/extensions/argument-ingestion/v1-single-shot.d.ts.map +1 -0
- package/dist/extensions/argument-ingestion/v1-single-shot.js +105 -0
- package/dist/extensions/argument-ingestion/v1-single-shot.js.map +1 -0
- package/dist/extensions/basics/schemata.d.ts +39 -0
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/extensions/basics/schemata.js +21 -7
- package/dist/extensions/basics/schemata.js.map +1 -1
- package/dist/extensions/openai/errors.d.ts +49 -0
- package/dist/extensions/openai/errors.d.ts.map +1 -0
- package/dist/extensions/openai/errors.js +85 -0
- package/dist/extensions/openai/errors.js.map +1 -0
- package/dist/extensions/openai/index.d.ts +7 -0
- package/dist/extensions/openai/index.d.ts.map +1 -0
- package/dist/extensions/openai/index.js +10 -0
- package/dist/extensions/openai/index.js.map +1 -0
- package/dist/extensions/openai/provider.d.ts +22 -0
- package/dist/extensions/openai/provider.d.ts.map +1 -0
- package/dist/extensions/openai/provider.js +385 -0
- package/dist/extensions/openai/provider.js.map +1 -0
- package/dist/extensions/openai/structured-output.d.ts +18 -0
- package/dist/extensions/openai/structured-output.d.ts.map +1 -0
- package/dist/extensions/openai/structured-output.js +201 -0
- package/dist/extensions/openai/structured-output.js.map +1 -0
- package/dist/extensions/openai/types.d.ts +81 -0
- package/dist/extensions/openai/types.d.ts.map +1 -0
- package/dist/extensions/openai/types.js +21 -0
- package/dist/extensions/openai/types.js.map +1 -0
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +56 -1
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/expression-manager.d.ts.map +1 -1
- package/dist/lib/core/expression-manager.js +16 -30
- package/dist/lib/core/expression-manager.js.map +1 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +30 -2
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.js +7 -13
- package/dist/lib/core/premise-engine.js.map +1 -1
- package/dist/lib/grammar/repair.js +17 -0
- package/dist/lib/grammar/repair.js.map +1 -1
- package/dist/lib/grammar/validators/evaluable.d.ts +10 -0
- package/dist/lib/grammar/validators/evaluable.d.ts.map +1 -1
- package/dist/lib/grammar/validators/evaluable.js +10 -0
- package/dist/lib/grammar/validators/evaluable.js.map +1 -1
- package/dist/lib/grammar/validators/structural.d.ts +12 -6
- package/dist/lib/grammar/validators/structural.d.ts.map +1 -1
- package/dist/lib/grammar/validators/structural.js +13 -19
- package/dist/lib/grammar/validators/structural.js.map +1 -1
- package/dist/lib/index.d.ts +8 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +15 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/llm/index.d.ts +2 -0
- package/dist/lib/llm/index.d.ts.map +1 -0
- package/dist/lib/llm/index.js +3 -0
- package/dist/lib/llm/index.js.map +1 -0
- package/dist/lib/llm/types.d.ts +49 -0
- package/dist/lib/llm/types.d.ts.map +1 -0
- package/dist/lib/llm/types.js +15 -0
- package/dist/lib/llm/types.js.map +1 -0
- package/dist/lib/pipelines/execute.d.ts +23 -0
- package/dist/lib/pipelines/execute.d.ts.map +1 -0
- package/dist/lib/pipelines/execute.js +541 -0
- package/dist/lib/pipelines/execute.js.map +1 -0
- package/dist/lib/pipelines/index.d.ts +7 -0
- package/dist/lib/pipelines/index.d.ts.map +1 -0
- package/dist/lib/pipelines/index.js +5 -0
- package/dist/lib/pipelines/index.js.map +1 -0
- package/dist/lib/pipelines/stage-helpers.d.ts +94 -0
- package/dist/lib/pipelines/stage-helpers.d.ts.map +1 -0
- package/dist/lib/pipelines/stage-helpers.js +354 -0
- package/dist/lib/pipelines/stage-helpers.js.map +1 -0
- package/dist/lib/pipelines/types.d.ts +88 -0
- package/dist/lib/pipelines/types.d.ts.map +1 -0
- package/dist/lib/pipelines/types.js +36 -0
- package/dist/lib/pipelines/types.js.map +1 -0
- package/package.json +14 -1
- package/dist/cli/llm/openai.d.ts +0 -4
- package/dist/cli/llm/openai.d.ts.map +0 -1
- package/dist/cli/llm/openai.js +0 -44
- package/dist/cli/llm/openai.js.map +0 -1
- package/dist/cli/llm/types.d.ts +0 -14
- package/dist/cli/llm/types.d.ts.map +0 -1
- package/dist/cli/llm/types.js +0 -2
- package/dist/cli/llm/types.js.map +0 -1
|
@@ -0,0 +1,541 @@
|
|
|
1
|
+
// The pipeline scheduler.
|
|
2
|
+
//
|
|
3
|
+
// Validates input + DAG up front, then runs eligible stages
|
|
4
|
+
// concurrently (bounded by `concurrencyLimit`). Failure propagation
|
|
5
|
+
// is required-vs-optional aware: a failed stage marks downstream
|
|
6
|
+
// stages with required deps on it as `skipped`; optional dependents
|
|
7
|
+
// run with `ctx.get` returning `undefined`.
|
|
8
|
+
//
|
|
9
|
+
// Schema-validation failures on a stage's `outputSchema` and
|
|
10
|
+
// retry-exhaustion thrown from `llmStage` turn into
|
|
11
|
+
// `ProcessingFailure { severity: "error" }`. Throws that escape are
|
|
12
|
+
// reserved for executor-build errors: DAG misconfiguration, input-
|
|
13
|
+
// schema rejection, and abort (we surface those by returning early
|
|
14
|
+
// with `output: null` for abort; we throw for misconfiguration).
|
|
15
|
+
import { Value } from "typebox/value";
|
|
16
|
+
import { depId, isOptionalDep } from "./types.js";
|
|
17
|
+
import { LlmStageRetryExhaustedError, StageAbortedError, SubPipelineFailedError, readStashedTokenUsage, } from "./stage-helpers.js";
|
|
18
|
+
export class PipelineConfigurationError extends Error {
|
|
19
|
+
code;
|
|
20
|
+
stageId;
|
|
21
|
+
depId;
|
|
22
|
+
constructor(args) {
|
|
23
|
+
super(args.message);
|
|
24
|
+
this.name = "PipelineConfigurationError";
|
|
25
|
+
this.code = args.code;
|
|
26
|
+
this.stageId = args.stageId;
|
|
27
|
+
this.depId = args.depId;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function now() {
|
|
31
|
+
return typeof performance !== "undefined" && performance.now
|
|
32
|
+
? performance.now()
|
|
33
|
+
: Date.now();
|
|
34
|
+
}
|
|
35
|
+
function defaultGenerateId() {
|
|
36
|
+
return globalThis.crypto.randomUUID();
|
|
37
|
+
}
|
|
38
|
+
function noopEmit(_event) {
|
|
39
|
+
// intentional no-op
|
|
40
|
+
}
|
|
41
|
+
function validateDag(pipeline) {
|
|
42
|
+
const stageById = new Map();
|
|
43
|
+
for (const stage of pipeline.stages) {
|
|
44
|
+
if (stageById.has(stage.id)) {
|
|
45
|
+
throw new PipelineConfigurationError({
|
|
46
|
+
code: "DUPLICATE_STAGE_ID",
|
|
47
|
+
message: `Duplicate stage id "${stage.id}" in pipeline ${pipeline.id}.`,
|
|
48
|
+
stageId: stage.id,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
stageById.set(stage.id, stage);
|
|
52
|
+
}
|
|
53
|
+
const checkRef = (stageId, deps, kind) => {
|
|
54
|
+
for (const dep of deps) {
|
|
55
|
+
const id = depId(dep);
|
|
56
|
+
if (kind === "stage" && id === stageId) {
|
|
57
|
+
throw new PipelineConfigurationError({
|
|
58
|
+
code: "SELF_DEP",
|
|
59
|
+
message: `Stage "${stageId}" cannot depend on itself.`,
|
|
60
|
+
stageId,
|
|
61
|
+
depId: id,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (!stageById.has(id)) {
|
|
65
|
+
throw new PipelineConfigurationError({
|
|
66
|
+
code: "UNKNOWN_DEP",
|
|
67
|
+
message: `${kind === "stage"
|
|
68
|
+
? `Stage "${stageId}"`
|
|
69
|
+
: `Finalize step in pipeline "${pipeline.id}"`} depends on unknown stage "${id}".`,
|
|
70
|
+
stageId: kind === "stage" ? stageId : undefined,
|
|
71
|
+
depId: id,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
for (const stage of pipeline.stages) {
|
|
77
|
+
checkRef(stage.id, stage.dependsOn, "stage");
|
|
78
|
+
}
|
|
79
|
+
checkRef(pipeline.id, pipeline.finalize.dependsOn, "finalize");
|
|
80
|
+
const visit = new Map();
|
|
81
|
+
for (const stage of pipeline.stages) {
|
|
82
|
+
visit.set(stage.id, "unvisited");
|
|
83
|
+
}
|
|
84
|
+
const stack = [];
|
|
85
|
+
const dfs = (stageId) => {
|
|
86
|
+
const state = visit.get(stageId);
|
|
87
|
+
if (state === "visiting") {
|
|
88
|
+
const cycleStart = stack.indexOf(stageId);
|
|
89
|
+
const cycle = stack.slice(cycleStart).concat(stageId).join(" → ");
|
|
90
|
+
throw new PipelineConfigurationError({
|
|
91
|
+
code: "DAG_CYCLE",
|
|
92
|
+
message: `Cycle detected in pipeline "${pipeline.id}": ${cycle}.`,
|
|
93
|
+
stageId,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
if (state === "visited") {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
visit.set(stageId, "visiting");
|
|
100
|
+
stack.push(stageId);
|
|
101
|
+
const stage = stageById.get(stageId);
|
|
102
|
+
if (stage) {
|
|
103
|
+
for (const dep of stage.dependsOn) {
|
|
104
|
+
dfs(depId(dep));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
stack.pop();
|
|
108
|
+
visit.set(stageId, "visited");
|
|
109
|
+
};
|
|
110
|
+
for (const stage of pipeline.stages) {
|
|
111
|
+
dfs(stage.id);
|
|
112
|
+
}
|
|
113
|
+
return { stageById };
|
|
114
|
+
}
|
|
115
|
+
export async function executePipeline(pipeline, input, deps) {
|
|
116
|
+
// 1. Input validation. A schema mismatch is a caller bug; we throw.
|
|
117
|
+
// Value.Parse infers its return type from the schema; since
|
|
118
|
+
// pipeline.inputSchema is typed as TSchema, that inference comes
|
|
119
|
+
// out broad — we re-narrow to TInput, which is the caller's
|
|
120
|
+
// declared input type for the pipeline.
|
|
121
|
+
const parsedInput = Value.Parse(pipeline.inputSchema, input);
|
|
122
|
+
const validatedInput = parsedInput;
|
|
123
|
+
// 2. DAG validation. All before any stage runs.
|
|
124
|
+
const { stageById } = validateDag(pipeline);
|
|
125
|
+
const emit = deps.onEvent ?? noopEmit;
|
|
126
|
+
const signal = deps.signal ?? new AbortController().signal;
|
|
127
|
+
const generateId = deps.generateId ?? defaultGenerateId;
|
|
128
|
+
const concurrencyLimit = deps.concurrencyLimit ?? 4;
|
|
129
|
+
const startAt = now();
|
|
130
|
+
emit({
|
|
131
|
+
kind: "pipeline:start",
|
|
132
|
+
pipelineId: pipeline.id,
|
|
133
|
+
pipelineVersion: pipeline.version,
|
|
134
|
+
at: startAt,
|
|
135
|
+
});
|
|
136
|
+
const failures = [];
|
|
137
|
+
const records = new Map();
|
|
138
|
+
// A PipelineConfigurationError raised inside a stage's `run`
|
|
139
|
+
// (i.e. a `ctx.get` called on a non-dependency stage id) is a
|
|
140
|
+
// caller bug, not a recoverable runtime failure. We capture the
|
|
141
|
+
// first one and re-throw after the scheduler drains so the
|
|
142
|
+
// executor still emits the bookend events.
|
|
143
|
+
let capturedConfigError = null;
|
|
144
|
+
// Build per-stage `ctx.get` dep sets up front so we can throw on
|
|
145
|
+
// out-of-deps access.
|
|
146
|
+
const stageDepIds = new Map();
|
|
147
|
+
for (const stage of pipeline.stages) {
|
|
148
|
+
stageDepIds.set(stage.id, new Set(stage.dependsOn.map((d) => depId(d))));
|
|
149
|
+
}
|
|
150
|
+
const finalizeDepIds = new Set(pipeline.finalize.dependsOn.map((d) => depId(d)));
|
|
151
|
+
// -- Helpers --
|
|
152
|
+
const makeCtx = (allowedDeps, contextLabel) => {
|
|
153
|
+
const ctx = {
|
|
154
|
+
input: validatedInput,
|
|
155
|
+
get(stageId) {
|
|
156
|
+
if (!allowedDeps.has(stageId)) {
|
|
157
|
+
throw new PipelineConfigurationError({
|
|
158
|
+
code: "GET_OUTSIDE_DEPS",
|
|
159
|
+
message: `${contextLabel} called ctx.get("${stageId}"), which is not in its dependsOn.`,
|
|
160
|
+
stageId: contextLabel,
|
|
161
|
+
depId: stageId,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const record = records.get(stageId);
|
|
165
|
+
if (!record)
|
|
166
|
+
return undefined;
|
|
167
|
+
if (record.outcome !== "completed")
|
|
168
|
+
return undefined;
|
|
169
|
+
return record.output;
|
|
170
|
+
},
|
|
171
|
+
stageStatus(stageId) {
|
|
172
|
+
// Mirror the `ctx.get` strictness: stages may only
|
|
173
|
+
// query the status of stages declared in their own
|
|
174
|
+
// `dependsOn` (required OR optional). Querying a
|
|
175
|
+
// non-dependency is a caller bug — surface it loudly
|
|
176
|
+
// rather than silently returning "skipped" for a
|
|
177
|
+
// stage id the calling stage shouldn't be peeking at.
|
|
178
|
+
if (!allowedDeps.has(stageId)) {
|
|
179
|
+
throw new PipelineConfigurationError({
|
|
180
|
+
code: "STATUS_OUTSIDE_DEPS",
|
|
181
|
+
message: `${contextLabel} called ctx.stageStatus("${stageId}"), which is not in its dependsOn.`,
|
|
182
|
+
stageId: contextLabel,
|
|
183
|
+
depId: stageId,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
const record = records.get(stageId);
|
|
187
|
+
if (record)
|
|
188
|
+
return record.outcome;
|
|
189
|
+
return "skipped";
|
|
190
|
+
},
|
|
191
|
+
llm: deps.llm,
|
|
192
|
+
generateId,
|
|
193
|
+
signal,
|
|
194
|
+
emit,
|
|
195
|
+
addFailure: (failure) => {
|
|
196
|
+
failures.push({ ...failure, stage: contextLabel });
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
return ctx;
|
|
200
|
+
};
|
|
201
|
+
const isStageEligible = (stage) => {
|
|
202
|
+
for (const dep of stage.dependsOn) {
|
|
203
|
+
const id = depId(dep);
|
|
204
|
+
const record = records.get(id);
|
|
205
|
+
if (isOptionalDep(dep)) {
|
|
206
|
+
// Optional: eligible once the upstream has any final outcome.
|
|
207
|
+
if (!record)
|
|
208
|
+
return false;
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
if (!record)
|
|
212
|
+
return false;
|
|
213
|
+
if (record.outcome !== "completed")
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
return true;
|
|
217
|
+
};
|
|
218
|
+
const hasRequiredFailureUpstream = (stage) => {
|
|
219
|
+
for (const dep of stage.dependsOn) {
|
|
220
|
+
if (isOptionalDep(dep))
|
|
221
|
+
continue;
|
|
222
|
+
const record = records.get(depId(dep));
|
|
223
|
+
if (record && record.outcome !== "completed")
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
226
|
+
return false;
|
|
227
|
+
};
|
|
228
|
+
// -- Stage execution --
|
|
229
|
+
const runStage = async (stage) => {
|
|
230
|
+
if (signal.aborted) {
|
|
231
|
+
// Pending stages don't start once aborted. Emit `stage:start`
|
|
232
|
+
// before `stage:end` so consumers walking the event stream
|
|
233
|
+
// for symmetric pairs (e.g. the SSE bridge in slice 2C) see
|
|
234
|
+
// a balanced sequence — every `stage:end` is preceded by a
|
|
235
|
+
// matching `stage:start`.
|
|
236
|
+
const startAt = now();
|
|
237
|
+
emit({ kind: "stage:start", stageId: stage.id, at: startAt });
|
|
238
|
+
records.set(stage.id, { outcome: "skipped", output: undefined });
|
|
239
|
+
emit({
|
|
240
|
+
kind: "stage:end",
|
|
241
|
+
stageId: stage.id,
|
|
242
|
+
status: "skipped",
|
|
243
|
+
at: now(),
|
|
244
|
+
});
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
emit({ kind: "stage:start", stageId: stage.id, at: now() });
|
|
248
|
+
const ctx = makeCtx(stageDepIds.get(stage.id) ?? new Set(), stage.id);
|
|
249
|
+
try {
|
|
250
|
+
const output = await stage.run(ctx);
|
|
251
|
+
if (!Value.Check(stage.outputSchema, output)) {
|
|
252
|
+
const errors = [...Value.Errors(stage.outputSchema, output)];
|
|
253
|
+
const message = errors
|
|
254
|
+
.map((e) => `${e.instancePath}: ${e.message}`)
|
|
255
|
+
.join("; ");
|
|
256
|
+
failures.push({
|
|
257
|
+
stage: stage.id,
|
|
258
|
+
code: "OUTPUT_SCHEMA_INVALID",
|
|
259
|
+
message,
|
|
260
|
+
severity: "error",
|
|
261
|
+
});
|
|
262
|
+
records.set(stage.id, {
|
|
263
|
+
outcome: "failed",
|
|
264
|
+
output: undefined,
|
|
265
|
+
});
|
|
266
|
+
emit({
|
|
267
|
+
kind: "stage:end",
|
|
268
|
+
stageId: stage.id,
|
|
269
|
+
status: "failed",
|
|
270
|
+
at: now(),
|
|
271
|
+
});
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
const tokenUsage = readStashedTokenUsage(ctx, stage.id);
|
|
275
|
+
records.set(stage.id, {
|
|
276
|
+
outcome: "completed",
|
|
277
|
+
output,
|
|
278
|
+
tokenUsage,
|
|
279
|
+
});
|
|
280
|
+
emit({
|
|
281
|
+
kind: "stage:end",
|
|
282
|
+
stageId: stage.id,
|
|
283
|
+
status: "completed",
|
|
284
|
+
tokenUsage,
|
|
285
|
+
at: now(),
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
catch (err) {
|
|
289
|
+
if (err instanceof PipelineConfigurationError) {
|
|
290
|
+
// ctx.get violation — caller bug. Stash for re-throw,
|
|
291
|
+
// mark the stage failed for bookkeeping, and emit
|
|
292
|
+
// stage:end so consumers see a clean per-stage close.
|
|
293
|
+
records.set(stage.id, {
|
|
294
|
+
outcome: "failed",
|
|
295
|
+
output: undefined,
|
|
296
|
+
});
|
|
297
|
+
emit({
|
|
298
|
+
kind: "stage:end",
|
|
299
|
+
stageId: stage.id,
|
|
300
|
+
status: "failed",
|
|
301
|
+
at: now(),
|
|
302
|
+
});
|
|
303
|
+
capturedConfigError ??= err;
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
if (err instanceof StageAbortedError) {
|
|
307
|
+
// Caller cancellation surfaced mid-stage. This is not
|
|
308
|
+
// a stage failure to report — no ProcessingFailure is
|
|
309
|
+
// recorded — and the outcome is `skipped` rather than
|
|
310
|
+
// `failed` so consumers can distinguish abort from a
|
|
311
|
+
// genuine provider error.
|
|
312
|
+
records.set(stage.id, {
|
|
313
|
+
outcome: "skipped",
|
|
314
|
+
output: undefined,
|
|
315
|
+
});
|
|
316
|
+
emit({
|
|
317
|
+
kind: "stage:end",
|
|
318
|
+
stageId: stage.id,
|
|
319
|
+
status: "skipped",
|
|
320
|
+
at: now(),
|
|
321
|
+
});
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
if (err instanceof LlmStageRetryExhaustedError) {
|
|
325
|
+
failures.push({
|
|
326
|
+
stage: stage.id,
|
|
327
|
+
code: err.code,
|
|
328
|
+
message: err.message,
|
|
329
|
+
severity: "error",
|
|
330
|
+
context: err.failureContext,
|
|
331
|
+
});
|
|
332
|
+
records.set(stage.id, {
|
|
333
|
+
outcome: "failed",
|
|
334
|
+
output: undefined,
|
|
335
|
+
});
|
|
336
|
+
emit({
|
|
337
|
+
kind: "stage:end",
|
|
338
|
+
stageId: stage.id,
|
|
339
|
+
status: "failed",
|
|
340
|
+
at: now(),
|
|
341
|
+
});
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
if (err instanceof SubPipelineFailedError) {
|
|
345
|
+
failures.push({
|
|
346
|
+
stage: stage.id,
|
|
347
|
+
code: err.code,
|
|
348
|
+
message: err.message,
|
|
349
|
+
severity: "error",
|
|
350
|
+
context: err.failureContext,
|
|
351
|
+
});
|
|
352
|
+
records.set(stage.id, {
|
|
353
|
+
outcome: "failed",
|
|
354
|
+
output: undefined,
|
|
355
|
+
});
|
|
356
|
+
emit({
|
|
357
|
+
kind: "stage:end",
|
|
358
|
+
stageId: stage.id,
|
|
359
|
+
status: "failed",
|
|
360
|
+
at: now(),
|
|
361
|
+
});
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
365
|
+
failures.push({
|
|
366
|
+
stage: stage.id,
|
|
367
|
+
code: "STAGE_UNCAUGHT_ERROR",
|
|
368
|
+
message,
|
|
369
|
+
severity: "error",
|
|
370
|
+
});
|
|
371
|
+
records.set(stage.id, { outcome: "failed", output: undefined });
|
|
372
|
+
emit({
|
|
373
|
+
kind: "stage:end",
|
|
374
|
+
stageId: stage.id,
|
|
375
|
+
status: "failed",
|
|
376
|
+
at: now(),
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
// -- Scheduler loop --
|
|
381
|
+
//
|
|
382
|
+
// We maintain a pool of in-flight stage promises capped at
|
|
383
|
+
// concurrencyLimit. On each iteration, we mark newly skip-eligible
|
|
384
|
+
// stages (whose required deps are known-failed), then start any
|
|
385
|
+
// eligible stages until either the pool is full or no eligible
|
|
386
|
+
// stages remain. We await `Promise.race(pool)` to yield, then loop.
|
|
387
|
+
const remaining = new Set(pipeline.stages.map((s) => s.id));
|
|
388
|
+
const pool = [];
|
|
389
|
+
while (remaining.size > 0 || pool.length > 0) {
|
|
390
|
+
// Eagerly mark skipped stages whose required deps are now failed.
|
|
391
|
+
let skippedAny = true;
|
|
392
|
+
while (skippedAny) {
|
|
393
|
+
skippedAny = false;
|
|
394
|
+
for (const id of remaining) {
|
|
395
|
+
const stage = stageById.get(id);
|
|
396
|
+
if (!stage)
|
|
397
|
+
continue;
|
|
398
|
+
if (hasRequiredFailureUpstream(stage)) {
|
|
399
|
+
records.set(stage.id, {
|
|
400
|
+
outcome: "skipped",
|
|
401
|
+
output: undefined,
|
|
402
|
+
});
|
|
403
|
+
emit({
|
|
404
|
+
kind: "stage:start",
|
|
405
|
+
stageId: stage.id,
|
|
406
|
+
at: now(),
|
|
407
|
+
});
|
|
408
|
+
emit({
|
|
409
|
+
kind: "stage:end",
|
|
410
|
+
stageId: stage.id,
|
|
411
|
+
status: "skipped",
|
|
412
|
+
at: now(),
|
|
413
|
+
});
|
|
414
|
+
remaining.delete(id);
|
|
415
|
+
skippedAny = true;
|
|
416
|
+
break;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
// Start eligible stages up to the concurrency cap.
|
|
421
|
+
let startedSomething = true;
|
|
422
|
+
while (startedSomething && pool.length < concurrencyLimit) {
|
|
423
|
+
startedSomething = false;
|
|
424
|
+
for (const id of remaining) {
|
|
425
|
+
const stage = stageById.get(id);
|
|
426
|
+
if (!stage)
|
|
427
|
+
continue;
|
|
428
|
+
if (!isStageEligible(stage))
|
|
429
|
+
continue;
|
|
430
|
+
remaining.delete(id);
|
|
431
|
+
const promise = runStage(stage).then(() => {
|
|
432
|
+
const idx = pool.findIndex((p) => p.id === id);
|
|
433
|
+
if (idx >= 0)
|
|
434
|
+
pool.splice(idx, 1);
|
|
435
|
+
}, (err) => {
|
|
436
|
+
const idx = pool.findIndex((p) => p.id === id);
|
|
437
|
+
if (idx >= 0)
|
|
438
|
+
pool.splice(idx, 1);
|
|
439
|
+
throw err;
|
|
440
|
+
});
|
|
441
|
+
pool.push({ id, promise });
|
|
442
|
+
startedSomething = true;
|
|
443
|
+
if (pool.length >= concurrencyLimit)
|
|
444
|
+
break;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
if (pool.length === 0) {
|
|
448
|
+
// Nothing in flight and nothing eligible. If `remaining`
|
|
449
|
+
// is non-empty, those stages are unreachable — DAG
|
|
450
|
+
// validation should have caught this; fail loudly.
|
|
451
|
+
if (remaining.size > 0) {
|
|
452
|
+
throw new PipelineConfigurationError({
|
|
453
|
+
code: "DAG_CYCLE",
|
|
454
|
+
message: `Unreachable stages remain at scheduler exhaustion: ${[
|
|
455
|
+
...remaining,
|
|
456
|
+
].join(", ")}.`,
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
break;
|
|
460
|
+
}
|
|
461
|
+
await Promise.race(pool.map((p) => p.promise));
|
|
462
|
+
}
|
|
463
|
+
// Wait for the pool to drain (race exits at the first settled
|
|
464
|
+
// promise; we want them all settled).
|
|
465
|
+
await Promise.allSettled(pool.map((p) => p.promise));
|
|
466
|
+
// If a stage observed a configuration violation (ctx.get on a
|
|
467
|
+
// non-dep), surface that as a thrown error after emitting the
|
|
468
|
+
// pipeline:end bookend so event consumers still see a clean
|
|
469
|
+
// close.
|
|
470
|
+
if (capturedConfigError !== null) {
|
|
471
|
+
const err = capturedConfigError;
|
|
472
|
+
emit({
|
|
473
|
+
kind: "pipeline:end",
|
|
474
|
+
status: "failed",
|
|
475
|
+
output: "null",
|
|
476
|
+
at: now(),
|
|
477
|
+
});
|
|
478
|
+
throw err;
|
|
479
|
+
}
|
|
480
|
+
// -- Finalize --
|
|
481
|
+
let output = null;
|
|
482
|
+
const finalizeRequiredOk = () => {
|
|
483
|
+
for (const dep of pipeline.finalize.dependsOn) {
|
|
484
|
+
if (isOptionalDep(dep))
|
|
485
|
+
continue;
|
|
486
|
+
const record = records.get(depId(dep));
|
|
487
|
+
if (record?.outcome !== "completed")
|
|
488
|
+
return false;
|
|
489
|
+
}
|
|
490
|
+
return true;
|
|
491
|
+
};
|
|
492
|
+
if (finalizeRequiredOk() && !signal.aborted) {
|
|
493
|
+
const finalizeCtx = makeCtx(finalizeDepIds, "finalize");
|
|
494
|
+
try {
|
|
495
|
+
output = pipeline.finalize.run(finalizeCtx);
|
|
496
|
+
}
|
|
497
|
+
catch (err) {
|
|
498
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
499
|
+
failures.push({
|
|
500
|
+
stage: "finalize",
|
|
501
|
+
code: "FINALIZE_UNCAUGHT_ERROR",
|
|
502
|
+
message,
|
|
503
|
+
severity: "error",
|
|
504
|
+
});
|
|
505
|
+
output = null;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
// Aggregate stage outcomes + token usage.
|
|
509
|
+
const stageOutcomes = {};
|
|
510
|
+
let aggregatedTokens;
|
|
511
|
+
for (const stage of pipeline.stages) {
|
|
512
|
+
const record = records.get(stage.id);
|
|
513
|
+
stageOutcomes[stage.id] = record?.outcome ?? "skipped";
|
|
514
|
+
if (record?.tokenUsage) {
|
|
515
|
+
aggregatedTokens ??= { input: 0, output: 0 };
|
|
516
|
+
aggregatedTokens.input += record.tokenUsage.input;
|
|
517
|
+
aggregatedTokens.output += record.tokenUsage.output;
|
|
518
|
+
if (record.tokenUsage.reasoning !== undefined) {
|
|
519
|
+
aggregatedTokens.reasoning =
|
|
520
|
+
(aggregatedTokens.reasoning ?? 0) +
|
|
521
|
+
record.tokenUsage.reasoning;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
const endStatus = signal.aborted
|
|
526
|
+
? "failed"
|
|
527
|
+
: "completed";
|
|
528
|
+
emit({
|
|
529
|
+
kind: "pipeline:end",
|
|
530
|
+
status: endStatus,
|
|
531
|
+
output: output === null ? "null" : "present",
|
|
532
|
+
at: now(),
|
|
533
|
+
});
|
|
534
|
+
return {
|
|
535
|
+
output,
|
|
536
|
+
failures,
|
|
537
|
+
stageOutcomes,
|
|
538
|
+
tokenUsage: aggregatedTokens,
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/lib/pipelines/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { optional, isOptionalDep, depId } from "./types.js";
|
|
2
|
+
export type { TDepSpec, TOptionalDep, TStage, TStageContext, TStageStatus, TPipeline, TPipelineFinalize, TProcessingFailure, TPipelineResult, TPipelineEvent, } from "./types.js";
|
|
3
|
+
export { deterministicStage, llmStage, subPipelineStage, DEFAULT_RETRY_POLICY, LlmStageRetryExhaustedError, StageAbortedError, SubPipelineFailedError, } from "./stage-helpers.js";
|
|
4
|
+
export type { TRetryPolicy, TRetryReason } from "./stage-helpers.js";
|
|
5
|
+
export { executePipeline, PipelineConfigurationError } from "./execute.js";
|
|
6
|
+
export type { TExecutePipelineDeps } from "./execute.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/pipelines/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC3D,YAAY,EACR,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,GACjB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACH,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEpE,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAC1E,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Public barrel for the pipeline framework.
|
|
2
|
+
export { optional, isOptionalDep, depId } from "./types.js";
|
|
3
|
+
export { deterministicStage, llmStage, subPipelineStage, DEFAULT_RETRY_POLICY, LlmStageRetryExhaustedError, StageAbortedError, SubPipelineFailedError, } from "./stage-helpers.js";
|
|
4
|
+
export { executePipeline, PipelineConfigurationError } from "./execute.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/pipelines/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAc3D,OAAO,EACH,kBAAkB,EAClB,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,GACzB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA"}
|