@revisium/orchestrator 0.1.0-alpha.2 → 0.1.0-alpha.4
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/control-plane/bootstrap.config.json +103 -2
- package/control-plane/default-playbook/catalog/pipelines.json +360 -0
- package/control-plane/default-playbook/catalog/roles.json +56 -0
- package/control-plane/default-playbook/package.json +5 -0
- package/control-plane/default-playbook/playbook.json +13 -0
- package/control-plane/default-playbook/prompts/analyst.md +27 -0
- package/control-plane/default-playbook/prompts/developer.md +26 -0
- package/control-plane/default-playbook/prompts/integrator.md +20 -0
- package/control-plane/default-playbook/prompts/orchestrator.md +23 -0
- package/control-plane/default-playbook/prompts/reviewer.md +28 -0
- package/control-plane/default-playbook/prompts/watcher.md +24 -0
- package/dist/cli/commands/bootstrap.js +68 -7
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/inbox.js +0 -21
- package/dist/cli/commands/inbox.js.map +1 -1
- package/dist/cli/commands/run.js +76 -49
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/needs-host.js +7 -8
- package/dist/cli/needs-host.js.map +1 -1
- package/dist/cli/program.js +0 -2
- package/dist/cli/program.js.map +1 -1
- package/dist/config.js +18 -1
- package/dist/config.js.map +1 -1
- package/dist/control-plane/client-transport.js +73 -40
- package/dist/control-plane/client-transport.js.map +1 -1
- package/dist/control-plane/data-access.js +3 -2
- package/dist/control-plane/data-access.js.map +1 -1
- package/dist/control-plane/definitions.js +1 -1
- package/dist/control-plane/definitions.js.map +1 -1
- package/dist/control-plane/json-fields.js +2 -0
- package/dist/control-plane/json-fields.js.map +1 -1
- package/dist/control-plane/schema-migration.js +86 -0
- package/dist/control-plane/schema-migration.js.map +1 -0
- package/dist/control-plane/seed-default-playbook.js +71 -0
- package/dist/control-plane/seed-default-playbook.js.map +1 -0
- package/dist/control-plane/tables.js +1 -0
- package/dist/control-plane/tables.js.map +1 -1
- package/dist/e2e/kit/agents.js +113 -0
- package/dist/e2e/kit/agents.js.map +1 -0
- package/dist/e2e/kit/assertions.js +119 -0
- package/dist/e2e/kit/assertions.js.map +1 -0
- package/dist/e2e/kit/crash.js +44 -0
- package/dist/e2e/kit/crash.js.map +1 -0
- package/dist/e2e/kit/drive.js +49 -0
- package/dist/e2e/kit/drive.js.map +1 -0
- package/dist/e2e/kit/env.js +16 -0
- package/dist/e2e/kit/env.js.map +1 -0
- package/dist/e2e/kit/fake-integrator.js +42 -0
- package/dist/e2e/kit/fake-integrator.js.map +1 -0
- package/dist/e2e/kit/gh-emulator.js +49 -0
- package/dist/e2e/kit/gh-emulator.js.map +1 -0
- package/dist/e2e/kit/git-target-repo.js +83 -0
- package/dist/e2e/kit/git-target-repo.js.map +1 -0
- package/dist/e2e/kit/harness.js +59 -0
- package/dist/e2e/kit/harness.js.map +1 -0
- package/dist/e2e/kit/index.js +14 -0
- package/dist/e2e/kit/index.js.map +1 -0
- package/dist/e2e/kit/mcp.js +32 -0
- package/dist/e2e/kit/mcp.js.map +1 -0
- package/dist/e2e/kit/scenarios.js +196 -0
- package/dist/e2e/kit/scenarios.js.map +1 -0
- package/dist/e2e/recovery-crash-child.js +29 -0
- package/dist/e2e/recovery-crash-child.js.map +1 -0
- package/dist/e2e/recovery-dd-crash-child.js +42 -0
- package/dist/e2e/recovery-dd-crash-child.js.map +1 -0
- package/dist/engine/ensure-postgres.js +13 -1
- package/dist/engine/ensure-postgres.js.map +1 -1
- package/dist/mcp/mcp-capabilities.js +1 -0
- package/dist/mcp/mcp-capabilities.js.map +1 -1
- package/dist/mcp/mcp-facade.service.js +24 -3
- package/dist/mcp/mcp-facade.service.js.map +1 -1
- package/dist/mcp/mcp-tools.js +16 -7
- package/dist/mcp/mcp-tools.js.map +1 -1
- package/dist/pipeline/data-driven-task.workflow.js +493 -0
- package/dist/pipeline/data-driven-task.workflow.js.map +1 -0
- package/dist/pipeline/data-driven-template.js +57 -0
- package/dist/pipeline/data-driven-template.js.map +1 -0
- package/dist/pipeline/develop-task.workflow.js +151 -316
- package/dist/pipeline/develop-task.workflow.js.map +1 -1
- package/dist/pipeline/pipeline.module.js +1 -1
- package/dist/pipeline/route-contract.js +82 -0
- package/dist/pipeline/route-contract.js.map +1 -0
- package/dist/pipeline-core/index.js +16 -0
- package/dist/pipeline-core/index.js.map +1 -0
- package/dist/pipeline-core/interpret.js +351 -0
- package/dist/pipeline-core/interpret.js.map +1 -0
- package/dist/pipeline-core/kit/assertions.js +61 -0
- package/dist/pipeline-core/kit/assertions.js.map +1 -0
- package/dist/pipeline-core/kit/builders.js +136 -0
- package/dist/pipeline-core/kit/builders.js.map +1 -0
- package/dist/pipeline-core/kit/drive.js +96 -0
- package/dist/pipeline-core/kit/drive.js.map +1 -0
- package/dist/pipeline-core/kit/fixtures.js +248 -0
- package/dist/pipeline-core/kit/fixtures.js.map +1 -0
- package/dist/pipeline-core/kit/index.js +13 -0
- package/dist/pipeline-core/kit/index.js.map +1 -0
- package/dist/pipeline-core/types.js +132 -0
- package/dist/pipeline-core/types.js.map +1 -0
- package/dist/pipeline-core/validate.js +1192 -0
- package/dist/pipeline-core/validate.js.map +1 -0
- package/dist/playbook/catalog-loader.js +14 -1
- package/dist/playbook/catalog-loader.js.map +1 -1
- package/dist/playbook/import-mapper.js +14 -38
- package/dist/playbook/import-mapper.js.map +1 -1
- package/dist/playbook/manifest.js +1 -1
- package/dist/revisium/playbooks.service.js +95 -17
- package/dist/revisium/playbooks.service.js.map +1 -1
- package/dist/revisium/roles.service.js +1 -1
- package/dist/revisium/roles.service.js.map +1 -1
- package/dist/revisium/run.service.js +16 -0
- package/dist/revisium/run.service.js.map +1 -1
- package/dist/run/append-event.js +24 -1
- package/dist/run/append-event.js.map +1 -1
- package/dist/run/block-run.js +17 -0
- package/dist/run/block-run.js.map +1 -0
- package/dist/run/create-run.js +28 -5
- package/dist/run/create-run.js.map +1 -1
- package/dist/run/inspect-run.js +9 -0
- package/dist/run/inspect-run.js.map +1 -1
- package/dist/run/run-outputs.js +88 -0
- package/dist/run/run-outputs.js.map +1 -0
- package/dist/run/terminal-run-status.js +89 -7
- package/dist/run/terminal-run-status.js.map +1 -1
- package/dist/runners/claude-code.service.js +4 -0
- package/dist/runners/claude-code.service.js.map +1 -1
- package/dist/runners/integrator.js +25 -9
- package/dist/runners/integrator.js.map +1 -1
- package/dist/task-control-plane/task-control-plane-api.service.js +247 -28
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/worker/artifact-store.js +111 -0
- package/dist/worker/artifact-store.js.map +1 -0
- package/dist/worker/build-context.js +17 -0
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +44 -5
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/process-executor.js +23 -2
- package/dist/worker/process-executor.js.map +1 -1
- package/dist/worker/runner-dispatch.js +1 -0
- package/dist/worker/runner-dispatch.js.map +1 -1
- package/dist/worker/runner.js +11 -1
- package/dist/worker/runner.js.map +1 -1
- package/dist/worker/stub-runner.js +7 -45
- package/dist/worker/stub-runner.js.map +1 -1
- package/package.json +3 -1
- package/dist/cli/commands/work.js +0 -149
- package/dist/cli/commands/work.js.map +0 -1
- package/dist/worker/git-worktree-manager.js +0 -84
- package/dist/worker/git-worktree-manager.js.map +0 -1
- package/dist/worker/loop.js +0 -122
- package/dist/worker/loop.js.map +0 -1
- package/dist/worker/script-runner.js +0 -28
- package/dist/worker/script-runner.js.map +0 -1
- package/dist/worker/worker-id.js +0 -18
- package/dist/worker/worker-id.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../../src/mcp/mcp-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-tools.js","sourceRoot":"","sources":["../../src/mcp/mcp-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* data-driven-task.workflow.ts — the DBOS effect-adapter for a DATA-DRIVEN pipeline (plan 0015 §10).
|
|
3
|
+
*
|
|
4
|
+
* Runs the pure `pipeline-core` graph on REAL DBOS. As of slice 3 this is the SOLE pipeline engine:
|
|
5
|
+
* selection routes EVERY pipeline here (TaskControlPlaneApiService), executing the state-machine
|
|
6
|
+
* template pinned for the run; a pipeline without a valid template FAILS LOUD at selection. The old
|
|
7
|
+
* hardcoded `developTask` workflow + its role→phase classifiers were removed.
|
|
8
|
+
*
|
|
9
|
+
* INVARIANT: `src/pipeline/*` imports NO `@dbos-inc/dbos-sdk` (M1 — DBOS sealed). All DBOS interaction
|
|
10
|
+
* goes through the generic DbosService verbs (registerStep/registerWorkflow/awaitDecision) injected as
|
|
11
|
+
* deps. This file is registered via the engine seam in PipelineService.
|
|
12
|
+
*
|
|
13
|
+
* GENERIC ENGINE: zero role-ids / pipeline shapes here. `roleRef`/`scriptRef` are opaque capability
|
|
14
|
+
* handles resolved against the run's route bindings + the existing runner machinery (§1/§10).
|
|
15
|
+
*
|
|
16
|
+
* The loop (§10):
|
|
17
|
+
* { state, decision } = core.step(template, state, lastResult)
|
|
18
|
+
* → execute `decision` as a durable DBOS step (runner / human gate / integrator / fork)
|
|
19
|
+
* → validate result vs the node's `resultSchema` + redact at this boundary (reuse runStep/append)
|
|
20
|
+
* → record the result as the next `lastResult`
|
|
21
|
+
* → repeat until `decision.type === 'complete'` → finish the run.
|
|
22
|
+
*
|
|
23
|
+
* RECOVERY: DBOS replays the workflow body; `core.step` is deterministic and every effect is a durable
|
|
24
|
+
* memoized DBOS step, so a replay re-derives the identical Decision sequence and consumes the recorded
|
|
25
|
+
* step results — no live race, no duplicate effects (deterministic ids + ROW_CONFLICT no-op).
|
|
26
|
+
*
|
|
27
|
+
* C1 architecture: the body is an extracted DBOS-free builder (`makeDataDrivenTask`) registered via the
|
|
28
|
+
* engine seam, so tests exercise the SAME production logic directly with a plain step fn.
|
|
29
|
+
*/
|
|
30
|
+
import { step as coreStep, initialState, validateTemplate, InterpretError, } from '../pipeline-core/index.js';
|
|
31
|
+
import { runnerNeedsLivePreflight, runnerUsesRealIntegrator } from './route-contract.js';
|
|
32
|
+
const MAX_STEPS = 1_000; // a VALID template terminates; guards a data/loop authoring mistake at runtime.
|
|
33
|
+
/**
|
|
34
|
+
* Reserved engine error codes (matched only by a node's `catch`, §3/§6).
|
|
35
|
+
*
|
|
36
|
+
* A built-in script (the integrator) has TWO distinct failure modes the routing data discriminates:
|
|
37
|
+
* - `revo.ScriptBlocked` — the script needs a human (nothing-to-integrate, ambiguous PRs, a refused
|
|
38
|
+
* pinned identity, a non-JSON `pr view`). NOT a crash; a `catch` routes it to a `blocked` terminal,
|
|
39
|
+
* and the adapter surfaces the human-readable lesson on a `pipeline_blocked` event (parity with the
|
|
40
|
+
* old engine's `blockPipeline({ reason:'integrate' })`).
|
|
41
|
+
* - `revo.ScriptFailed` — the script THREW (a gh/push error). A `catch` routes it to a `failed`
|
|
42
|
+
* terminal (parity with the old engine's top-level catch → failRun).
|
|
43
|
+
*/
|
|
44
|
+
const REVO_SCRIPT_FAILED = 'revo.ScriptFailed';
|
|
45
|
+
const REVO_SCRIPT_BLOCKED = 'revo.ScriptBlocked';
|
|
46
|
+
const REVO_RESULT_INVALID = 'revo.ResultInvalid';
|
|
47
|
+
const REVO_INPUT_MISSING = 'revo.InputMissing';
|
|
48
|
+
/** Per-node execution stepKey: the bare nodeId on the first entry (stable ids for existing tests), an
|
|
49
|
+
* ordinal-suffixed key on loop re-entries so attempts/events/outputs are distinct per iteration (0016
|
|
50
|
+
* §4.1 — fixes the latent 0015 stepKey-reuse collision). */
|
|
51
|
+
function stepKeyFor(nodeId, ordinal) {
|
|
52
|
+
return ordinal <= 1 ? nodeId : `${nodeId}#${ordinal}`;
|
|
53
|
+
}
|
|
54
|
+
/** Next per-(run,node) execution ordinal (1-based). Deterministic on DBOS replay: the runBody loop
|
|
55
|
+
* re-runs identically (coreStep is pure, effects are memoized), so the accumulator is rebuilt 1:1. */
|
|
56
|
+
function nextOrdinal(byNode, nodeId) {
|
|
57
|
+
const n = (byNode.get(nodeId) ?? 0) + 1;
|
|
58
|
+
byNode.set(nodeId, n);
|
|
59
|
+
return n;
|
|
60
|
+
}
|
|
61
|
+
function isRecord(value) {
|
|
62
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Extract the DOMAIN verdict from a recorded agent/script result, restricted to the node's declared
|
|
66
|
+
* `outcomes`/domain vocabulary. The engine treats domain verdicts as opaque labels (§8): we read the
|
|
67
|
+
* agent's free output for a label the template can route on, never inventing engine semantics.
|
|
68
|
+
*
|
|
69
|
+
* Resolution order: explicit `output.verdict` (string) → a leading-token string output → undefined.
|
|
70
|
+
* The value is lowercased to match the spec's domain vocabulary (`approved|blocker|clean|…`).
|
|
71
|
+
*/
|
|
72
|
+
function domainVerdictOf(result) {
|
|
73
|
+
const output = result.output;
|
|
74
|
+
const raw = isRecord(output) ? output.verdict : output;
|
|
75
|
+
if (typeof raw !== 'string')
|
|
76
|
+
return undefined;
|
|
77
|
+
return normalizeDomainLabel(raw);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Normalize an agent's free-text verdict token to a domain label. The seeded test/agent vocabulary
|
|
81
|
+
* uses PASS/BLOCKER/MAJOR/etc.; the data-driven templates use approved/blocker/clean/dirty/… . We map
|
|
82
|
+
* the well-known structural tokens to the closest domain label and otherwise pass the lowercased token
|
|
83
|
+
* through (so a template that declares its own labels just works). Total + deterministic.
|
|
84
|
+
*/
|
|
85
|
+
function normalizeDomainLabel(raw) {
|
|
86
|
+
const token = raw.trim().toUpperCase().replace(/[\s-]+/g, '_');
|
|
87
|
+
switch (token) {
|
|
88
|
+
case 'PASS':
|
|
89
|
+
case 'PASSED':
|
|
90
|
+
case 'APPROVE':
|
|
91
|
+
case 'APPROVED':
|
|
92
|
+
case 'CLEAN':
|
|
93
|
+
case 'READY':
|
|
94
|
+
case 'VERIFIED':
|
|
95
|
+
// A passing structural token maps to the canonical "good" labels; the interpreter only routes on
|
|
96
|
+
// labels a guard names, so emitting both-equivalents is unnecessary — return the lowercased token.
|
|
97
|
+
return token === 'CLEAN' ? 'clean' : 'approved';
|
|
98
|
+
case 'MINOR':
|
|
99
|
+
return 'approved'; // MINOR proceeds (parity with the hardcoded isBlocking)
|
|
100
|
+
case 'MAJOR':
|
|
101
|
+
case 'REQUEST_CHANGES':
|
|
102
|
+
case 'CHANGES_REQUESTED':
|
|
103
|
+
return 'changes_requested';
|
|
104
|
+
case 'BLOCKER':
|
|
105
|
+
case 'BLOCK':
|
|
106
|
+
case 'DIRTY':
|
|
107
|
+
return token === 'DIRTY' ? 'dirty' : 'blocker';
|
|
108
|
+
default:
|
|
109
|
+
return raw.trim().toLowerCase();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Validate a recorded result against a node's `resultSchema` at the ADAPTER boundary (§10). MVP
|
|
114
|
+
* contract (resolves §14 Q3 — resultSchema is a DATA handle, validated structurally here): a declared
|
|
115
|
+
* `resultSchema` requires a non-empty object/string output. Token redaction already happens inside
|
|
116
|
+
* `runStep`/`appendEvent`; this guards a malformed effect result → `revo.ResultInvalid` (§6 precedence).
|
|
117
|
+
*/
|
|
118
|
+
function resultSatisfiesSchema(node, result) {
|
|
119
|
+
if (!('resultSchema' in node) || !node.resultSchema)
|
|
120
|
+
return true;
|
|
121
|
+
const output = result.output;
|
|
122
|
+
if (output === null || output === undefined)
|
|
123
|
+
return false;
|
|
124
|
+
if (typeof output === 'string')
|
|
125
|
+
return output.length > 0;
|
|
126
|
+
if (isRecord(output))
|
|
127
|
+
return true;
|
|
128
|
+
return Array.isArray(output);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Map an approve/reject human decision onto a DOMAIN verdict the template's gate `outcomes` can route.
|
|
132
|
+
* The core never sees approve/reject — it routes on a domain label (§8). Approve → the first declared
|
|
133
|
+
* outcome (the "proceed" label by template convention, e.g. `approved`); reject → fail-closed to a
|
|
134
|
+
* NON-first outcome if one exists (e.g. `changes_requested`), else undefined so the gate's `default`
|
|
135
|
+
* (typically a `blocked` terminal) fires. This keeps gate semantics 100% in the routing data (§6/§8).
|
|
136
|
+
*/
|
|
137
|
+
function gateVerdict(decision, outcomes) {
|
|
138
|
+
if (decision.decision === 'approve')
|
|
139
|
+
return outcomes[0];
|
|
140
|
+
// reject: prefer a declared "rework/changes" outcome; else let the default branch route (blocked).
|
|
141
|
+
return outcomes.length > 1 ? outcomes.at(-1) : undefined;
|
|
142
|
+
}
|
|
143
|
+
/** Stable gate topic from a node's reason (plan-review → 'plan', merge-review → 'merge', else 'plan'). */
|
|
144
|
+
function gateTopicFor(reason) {
|
|
145
|
+
return /merge/i.test(reason) ? 'merge' : 'plan';
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* makeDataDrivenTask — DBOS-free factory for the dataDrivenTask async function (C1).
|
|
149
|
+
*
|
|
150
|
+
* Receives the (DBOS-wrapped in prod, plain in tests) `runStepFn` so the body is IDENTICAL across
|
|
151
|
+
* production and tests. Returns a plain async function with the workflow signature.
|
|
152
|
+
*/
|
|
153
|
+
export function makeDataDrivenTask(runStepFn, deps) {
|
|
154
|
+
const { appendEvent, appendRunOutput, awaitHuman, completeRun, failRun, blockRun, loadRunTaskContext, integrateFn, runStub, preflightFn } = deps;
|
|
155
|
+
/** Resolve a node's `consumes` from the workflow-local output accumulator — NOT live Revisium reads
|
|
156
|
+
* (0016 §6 / consensus M4: a live read on replay can see rows written past the replay point). */
|
|
157
|
+
function resolveConsumes(node, outputsByNode) {
|
|
158
|
+
const refs = 'consumes' in node ? (node.consumes ?? []) : [];
|
|
159
|
+
const inputs = {};
|
|
160
|
+
for (const ref of refs) {
|
|
161
|
+
const produced = outputsByNode.get(ref.node) ?? [];
|
|
162
|
+
const iteration = ref.iteration ?? 'latest';
|
|
163
|
+
let value;
|
|
164
|
+
let found;
|
|
165
|
+
if (iteration === 'all') {
|
|
166
|
+
value = produced.map((o) => o.payload);
|
|
167
|
+
found = produced.length > 0;
|
|
168
|
+
}
|
|
169
|
+
else if (iteration === 'latest') {
|
|
170
|
+
value = produced.length ? produced[produced.length - 1].payload : undefined;
|
|
171
|
+
found = produced.length > 0;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
const hit = produced.find((o) => o.ordinal === iteration);
|
|
175
|
+
value = hit?.payload;
|
|
176
|
+
found = hit !== undefined;
|
|
177
|
+
}
|
|
178
|
+
if (!found) {
|
|
179
|
+
if (ref.optional)
|
|
180
|
+
continue;
|
|
181
|
+
return { missing: `${ref.node} as ${ref.as}` };
|
|
182
|
+
}
|
|
183
|
+
inputs[ref.as] = value;
|
|
184
|
+
}
|
|
185
|
+
return { inputs };
|
|
186
|
+
}
|
|
187
|
+
/** Record a node's produced output to the workflow-local accumulator + Revisium (when `produces`). */
|
|
188
|
+
async function recordOutput(runId, node, ordinal, output, outputsByNode) {
|
|
189
|
+
if (!('produces' in node) || !node.produces)
|
|
190
|
+
return;
|
|
191
|
+
const row = {
|
|
192
|
+
runId,
|
|
193
|
+
nodeId: node.id,
|
|
194
|
+
ordinal,
|
|
195
|
+
name: node.produces.name,
|
|
196
|
+
schemaRef: ('resultSchema' in node && node.resultSchema) || '',
|
|
197
|
+
payload: output,
|
|
198
|
+
attemptId: stepKeyFor(node.id, ordinal),
|
|
199
|
+
};
|
|
200
|
+
const list = outputsByNode.get(node.id) ?? [];
|
|
201
|
+
list.push(row);
|
|
202
|
+
outputsByNode.set(node.id, list);
|
|
203
|
+
await appendRunOutput(row);
|
|
204
|
+
}
|
|
205
|
+
return async function dataDrivenTaskImpl(runId, opts) {
|
|
206
|
+
try {
|
|
207
|
+
return await runBody(runId, opts);
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
// TERMINAL failure: mark the Revisium run-row `failed` (idempotent, event-first) before
|
|
211
|
+
// re-throwing so DBOS still records the workflow ERROR (progress truth) and the run-row stops
|
|
212
|
+
// lying. The run's terminal-failure surfacing contract (0008 #2).
|
|
213
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
214
|
+
try {
|
|
215
|
+
await failRun(runId, reason);
|
|
216
|
+
}
|
|
217
|
+
catch (failErr) {
|
|
218
|
+
console.error(`[data-driven] failRun(${runId}) itself failed: ${String(failErr)}`);
|
|
219
|
+
}
|
|
220
|
+
throw err;
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
async function runBody(runId, opts) {
|
|
224
|
+
const { route, template } = opts;
|
|
225
|
+
// Defense-in-depth: the pinned template is validated at the boundary (§9 — pipeline-core is the
|
|
226
|
+
// authoritative validator even though selection already validated it). A broken pin fails the run.
|
|
227
|
+
const diagnostics = validateTemplate(template).filter((d) => d.severity === 'error');
|
|
228
|
+
if (diagnostics.length > 0) {
|
|
229
|
+
throw new Error(`PINNED_TEMPLATE_INVALID: ${template.pipelineId} — ${diagnostics.map((d) => d.code).join(', ')}`);
|
|
230
|
+
}
|
|
231
|
+
const { taskId, title, base } = await loadRunTaskContext(runId);
|
|
232
|
+
// B5/B7 — live preflight: one memoized DBOS step, evaluated exactly once BEFORE the graph runs.
|
|
233
|
+
// Skipped entirely when every selected binding resolves to a stub/script runner (mirrors the old
|
|
234
|
+
// engine's gate). A `needsHuman` preflight blocks the run (clean/base invariant unmet) and surfaces
|
|
235
|
+
// the lesson — the run never enters the graph. This is an engine-level guard (infrastructure), not a
|
|
236
|
+
// template node: it is cross-cutting and identical for every pinned pipeline (zero role-ids/shapes).
|
|
237
|
+
if (route.roleBindings.some((b) => runnerNeedsLivePreflight(b.resolvedRunnerId))) {
|
|
238
|
+
const pf = await preflightFn(taskId, base);
|
|
239
|
+
if ('needsHuman' in pf) {
|
|
240
|
+
return await blockWithLesson(runId, taskId, 'preflight', pf.lesson, 0);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Capability resolution map (GENERIC — no role-ids in the engine): roleRef/scriptRef → route binding.
|
|
244
|
+
// The route's bindings are authoritative for runner dispatch (and durable on recovery via the DBOS
|
|
245
|
+
// workflow input). A `role:<id>` handle resolves to the binding whose roleId matches `<id>`. A
|
|
246
|
+
// `script:<id>` handle likewise resolves by roleId; additionally the canonical `script:integrator`
|
|
247
|
+
// handle resolves to whichever binding's RESOLVED runner mechanically performs the merge (runner-
|
|
248
|
+
// wins, D7) so the integrator script dispatches real-vs-stub exactly like the hardcoded path.
|
|
249
|
+
const bindingByRef = new Map();
|
|
250
|
+
for (const binding of route.roleBindings) {
|
|
251
|
+
bindingByRef.set(`role:${binding.roleId}`, binding);
|
|
252
|
+
bindingByRef.set(`script:${binding.roleId}`, binding);
|
|
253
|
+
bindingByRef.set(binding.roleId, binding);
|
|
254
|
+
if (runnerUsesRealIntegrator(binding.resolvedRunnerId) && !bindingByRef.has('script:integrator')) {
|
|
255
|
+
bindingByRef.set('script:integrator', binding);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
const executionProfile = route.executionProfile;
|
|
259
|
+
let state = initialState(template);
|
|
260
|
+
let lastResult;
|
|
261
|
+
let lastVerdict = '';
|
|
262
|
+
let stepCount = 0;
|
|
263
|
+
// Workflow-local dataflow state (0016 §4.1/§6): per-node execution ordinals + produced outputs.
|
|
264
|
+
// Both are rebuilt deterministically on DBOS replay (the loop re-runs identically); the adapter
|
|
265
|
+
// hydrates consumers from `outputsByNode`, never from a live Revisium read.
|
|
266
|
+
const effectOrdinalByNode = new Map();
|
|
267
|
+
const outputsByNode = new Map();
|
|
268
|
+
for (let i = 0; i < MAX_STEPS; i++) {
|
|
269
|
+
const { state: nextState, decision } = coreStep(template, state, lastResult);
|
|
270
|
+
state = nextState;
|
|
271
|
+
if (decision.type === 'complete') {
|
|
272
|
+
return await finish(runId, decision.status, lastVerdict, stepCount);
|
|
273
|
+
}
|
|
274
|
+
const eff = await applyDecision(decision, {
|
|
275
|
+
runId, template, bindingByRef, executionProfile, taskId, title, base,
|
|
276
|
+
effectOrdinalByNode, outputsByNode,
|
|
277
|
+
});
|
|
278
|
+
lastResult = eff.lastResult;
|
|
279
|
+
if (eff.lastVerdict !== undefined)
|
|
280
|
+
lastVerdict = eff.lastVerdict;
|
|
281
|
+
stepCount += eff.stepDelta;
|
|
282
|
+
}
|
|
283
|
+
throw new InterpretError(`data-driven ${template.pipelineId} did not terminate within ${MAX_STEPS} steps (template loop bug)`);
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Execute ONE non-terminal Decision as a durable effect and return the next `lastResult`/`lastVerdict`
|
|
287
|
+
* + the step-count delta. Extracted from the `runBody` loop so each is small + independently testable
|
|
288
|
+
* (the loop just threads the result; this is the per-kind dispatch).
|
|
289
|
+
*/
|
|
290
|
+
async function applyDecision(decision, ctx) {
|
|
291
|
+
const { runId, template, bindingByRef, executionProfile, taskId, title, base } = ctx;
|
|
292
|
+
switch (decision.type) {
|
|
293
|
+
case 'invokeRole': {
|
|
294
|
+
const node = resolveNode(template, decision.nodeId);
|
|
295
|
+
const ordinal = nextOrdinal(ctx.effectOrdinalByNode, node.id);
|
|
296
|
+
const stepKey = stepKeyFor(node.id, ordinal);
|
|
297
|
+
const resolved = resolveConsumes(node, ctx.outputsByNode);
|
|
298
|
+
if ('missing' in resolved) {
|
|
299
|
+
// A required upstream output is absent → fail-loud as a WIRING fault (0016 §6 / consensus M3):
|
|
300
|
+
// a dedicated step_failed names the missing (node, as), distinct from a domain `blocker`. The
|
|
301
|
+
// node's default onFailure='abort' then routes to a failed terminal (the run fails loud).
|
|
302
|
+
await appendEvent({
|
|
303
|
+
runId, taskId, stepId: '', stepKey, type: 'step_failed',
|
|
304
|
+
payload: { nodeId: node.id, error: `${REVO_INPUT_MISSING}: required input ${resolved.missing} was not produced` },
|
|
305
|
+
});
|
|
306
|
+
return { lastResult: { outcome: 'failed', errorCode: REVO_INPUT_MISSING }, lastVerdict: 'failed', stepDelta: 1 };
|
|
307
|
+
}
|
|
308
|
+
const result = await invokeRole(runId, decision, node, bindingByRef, executionProfile, resolved.inputs, stepKey);
|
|
309
|
+
if (result.failed) {
|
|
310
|
+
return { lastResult: { outcome: 'failed', errorCode: result.errorCode }, lastVerdict: 'failed', stepDelta: 1 };
|
|
311
|
+
}
|
|
312
|
+
await recordOutput(runId, node, ordinal, result.output, ctx.outputsByNode);
|
|
313
|
+
const verdict = result.verdict;
|
|
314
|
+
return {
|
|
315
|
+
lastResult: { outcome: 'succeeded', ...(verdict ? { verdict } : {}) },
|
|
316
|
+
...(verdict ? { lastVerdict: verdict } : {}),
|
|
317
|
+
stepDelta: 1,
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
case 'invokeScript': {
|
|
321
|
+
const node = resolveNode(template, decision.nodeId);
|
|
322
|
+
const ordinal = nextOrdinal(ctx.effectOrdinalByNode, node.id);
|
|
323
|
+
const scriptResult = await invokeScript(runId, decision, { taskId, title, base }, bindingByRef, stepKeyFor(node.id, ordinal));
|
|
324
|
+
// A blocked script (needsHuman) routes via revo.ScriptBlocked → a `blocked` terminal; a thrown
|
|
325
|
+
// script routes via revo.ScriptFailed → a `failed` terminal (§6 catch). The lesson-bearing
|
|
326
|
+
// pipeline_blocked is emitted inside invokeScript for the block path (parity with the old engine).
|
|
327
|
+
if (scriptResult.outcome === 'blocked') {
|
|
328
|
+
return { lastResult: { outcome: 'failed', errorCode: REVO_SCRIPT_BLOCKED }, lastVerdict: 'blocked', stepDelta: 1 };
|
|
329
|
+
}
|
|
330
|
+
if (scriptResult.outcome === 'failed') {
|
|
331
|
+
return { lastResult: { outcome: 'failed', errorCode: REVO_SCRIPT_FAILED }, lastVerdict: 'failed', stepDelta: 1 };
|
|
332
|
+
}
|
|
333
|
+
await recordOutput(runId, node, ordinal, scriptResult.pointer, ctx.outputsByNode);
|
|
334
|
+
return { lastResult: { outcome: 'succeeded' }, stepDelta: 1 };
|
|
335
|
+
}
|
|
336
|
+
case 'awaitGate': {
|
|
337
|
+
const topic = gateTopicFor(decision.reason);
|
|
338
|
+
const human = await awaitHuman(runId, topic, `${decision.reason} approval`, {
|
|
339
|
+
nodeId: decision.nodeId,
|
|
340
|
+
outcomes: decision.outcomes,
|
|
341
|
+
});
|
|
342
|
+
const verdict = gateVerdict(human, decision.outcomes);
|
|
343
|
+
return { lastResult: verdict ? { verdict } : {}, ...(verdict ? { lastVerdict: verdict } : {}), stepDelta: 0 };
|
|
344
|
+
}
|
|
345
|
+
case 'fork': {
|
|
346
|
+
// Fork/join is supported by the core; the MVP feature-development pipeline has none. Record a
|
|
347
|
+
// deterministic barrier arrival per branch (verdict undefined) so an `all` join proceeds. A richer
|
|
348
|
+
// concurrent-branch executor (DBOS child workflows) is a later slice (§14 Q1).
|
|
349
|
+
await appendEvent({
|
|
350
|
+
runId,
|
|
351
|
+
taskId,
|
|
352
|
+
stepId: '',
|
|
353
|
+
stepKey: `fork:${decision.nodeId}`,
|
|
354
|
+
type: 'pipeline_fork',
|
|
355
|
+
payload: { nodeId: decision.nodeId, branches: decision.branches.map((b) => b.id), joinId: decision.joinId },
|
|
356
|
+
});
|
|
357
|
+
return {
|
|
358
|
+
lastResult: { joinArrivals: decision.branches.map((b, idx) => ({ branchId: b.id, seq: idx + 1 })) },
|
|
359
|
+
stepDelta: 0,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
case 'startTimer':
|
|
363
|
+
// `wait` nodes are rare (§1) and unused by the MVP templates; a durable timer executor is a later
|
|
364
|
+
// slice. Treat as an immediate (recorded) resume so a template using it still advances.
|
|
365
|
+
return { lastResult: {}, stepDelta: 0 };
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// ── Effect executors ─────────────────────────────────────────────────────────
|
|
369
|
+
/** invokeRole → dispatch via the existing runStep DBOS step; validate result vs resultSchema. */
|
|
370
|
+
async function invokeRole(runId, decision, node, bindingByRef, executionProfile, inputs, stepKey) {
|
|
371
|
+
const binding = bindingByRef.get(decision.roleRef);
|
|
372
|
+
if (!binding) {
|
|
373
|
+
// A VALID template's caps resolve at run start; an unresolved roleRef is a fatal config gap.
|
|
374
|
+
throw new Error(`CAPABILITY_UNRESOLVED: roleRef ${decision.roleRef} has no route binding`);
|
|
375
|
+
}
|
|
376
|
+
// stepKey is ordinal-aware (0016 §4.1): distinct per loop iteration, stable across replay. The
|
|
377
|
+
// hydrated `inputs` (consumed upstream outputs) ride in stepInput → the runner renders them as a
|
|
378
|
+
// `## Inputs (from previous steps)` prompt section (build-context).
|
|
379
|
+
const stepInput = Object.keys(inputs).length > 0 ? { nodeId: decision.nodeId, inputs } : { nodeId: decision.nodeId };
|
|
380
|
+
const result = await runStepFn(runId, binding.rowId, stepKey, stepInput, binding.resolvedRunnerId, executionProfile);
|
|
381
|
+
// runStep converts a runner-process crash into a blocking attempt (needsHuman + verdict BLOCKER);
|
|
382
|
+
// that is a domain failure of the node → route via §6 precedence as a result-invalid/failed effect.
|
|
383
|
+
if (result.needsHuman || !resultSatisfiesSchema(node, result)) {
|
|
384
|
+
return { failed: true, errorCode: REVO_RESULT_INVALID };
|
|
385
|
+
}
|
|
386
|
+
return { failed: false, verdict: domainVerdictOf(result), output: result.output };
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* invokeScript → the built-in system SCRIPT library. The only built-in v1 script is the integrator
|
|
390
|
+
* (`script:integrator`); it dispatches to the real integrator (live) or the stub (script) exactly as
|
|
391
|
+
* the hardcoded path does — runner-wins via the resolved binding (D7).
|
|
392
|
+
*
|
|
393
|
+
* Two distinct outcomes the routing data discriminates (parity with the old engine):
|
|
394
|
+
* - `blocked`: the integrator needs a human (nothing to integrate, ambiguous PRs, refused identity,
|
|
395
|
+
* non-JSON pr view). We emit a `pipeline_blocked` event carrying the human-readable lesson (so the
|
|
396
|
+
* human sees WHY — the persist boundary redacts any token), then the node's `catch[revo.ScriptBlocked]`
|
|
397
|
+
* routes to a `blocked` terminal.
|
|
398
|
+
* - `failed`: the integrator THREW (a gh/push error). `catch[revo.ScriptFailed]` routes to a `failed`
|
|
399
|
+
* terminal; the run's top-level catch failRuns (the thrown reason is recorded, redacted).
|
|
400
|
+
*/
|
|
401
|
+
async function invokeScript(runId, decision, ctx, bindingByRef, stepKey) {
|
|
402
|
+
const binding = bindingByRef.get(decision.scriptRef) ?? bindingByRef.get('script:integrator');
|
|
403
|
+
const integratorInput = { runId, taskId: ctx.taskId, title: ctx.title, base: ctx.base };
|
|
404
|
+
let result;
|
|
405
|
+
try {
|
|
406
|
+
// A script node whose resolved runner mechanically performs the merge uses the real integrator;
|
|
407
|
+
// otherwise the pure stub (zero git/gh). Absent a binding (template-only script), default to stub.
|
|
408
|
+
result = binding && runnerUsesRealIntegrator(binding.resolvedRunnerId)
|
|
409
|
+
? await integrateFn(integratorInput)
|
|
410
|
+
: runStub(integratorInput);
|
|
411
|
+
}
|
|
412
|
+
catch (err) {
|
|
413
|
+
await appendEvent({
|
|
414
|
+
runId,
|
|
415
|
+
taskId: ctx.taskId,
|
|
416
|
+
stepId: '',
|
|
417
|
+
stepKey,
|
|
418
|
+
type: 'step_failed',
|
|
419
|
+
payload: { scriptRef: decision.scriptRef, error: err instanceof Error ? err.message : String(err) },
|
|
420
|
+
});
|
|
421
|
+
return { outcome: 'failed' };
|
|
422
|
+
}
|
|
423
|
+
if ('needsHuman' in result) {
|
|
424
|
+
// Surface the blocking reason as pipeline_blocked (the persist boundary redacts any token, D15) so
|
|
425
|
+
// the human sees WHY the integrator could not proceed — exactly as the old engine's blockPipeline.
|
|
426
|
+
await appendEvent({
|
|
427
|
+
runId,
|
|
428
|
+
taskId: ctx.taskId,
|
|
429
|
+
stepId: '',
|
|
430
|
+
stepKey: 'pipeline',
|
|
431
|
+
type: 'pipeline_blocked',
|
|
432
|
+
payload: { reason: 'integrate', lesson: result.lesson, nodeId: decision.nodeId },
|
|
433
|
+
});
|
|
434
|
+
return { outcome: 'blocked' };
|
|
435
|
+
}
|
|
436
|
+
await appendEvent({
|
|
437
|
+
runId,
|
|
438
|
+
taskId: ctx.taskId,
|
|
439
|
+
stepId: '',
|
|
440
|
+
stepKey,
|
|
441
|
+
type: 'integrate_succeeded',
|
|
442
|
+
payload: { prUrl: result.prUrl, branch: result.branch, prNumber: result.prNumber },
|
|
443
|
+
});
|
|
444
|
+
return { outcome: 'ok', pointer: { prUrl: result.prUrl, branch: result.branch, prNumber: result.prNumber } };
|
|
445
|
+
}
|
|
446
|
+
/** Terminal: finish the run in Revisium per the core's terminal status. */
|
|
447
|
+
async function finish(runId, status, verdict, steps) {
|
|
448
|
+
if (status === 'succeeded') {
|
|
449
|
+
await completeRun(runId, { actor: 'pipeline', source: 'data-driven-complete', verdict, iterations: steps });
|
|
450
|
+
}
|
|
451
|
+
else if (status === 'blocked') {
|
|
452
|
+
await appendEvent({
|
|
453
|
+
runId,
|
|
454
|
+
taskId: '',
|
|
455
|
+
stepId: '',
|
|
456
|
+
stepKey: 'pipeline',
|
|
457
|
+
type: 'pipeline_blocked',
|
|
458
|
+
payload: { reason: 'route-terminal', lastVerdict: verdict, steps },
|
|
459
|
+
});
|
|
460
|
+
await blockRun(runId, { actor: 'pipeline', source: 'data-driven-blocked', reason: 'route-terminal' });
|
|
461
|
+
}
|
|
462
|
+
else {
|
|
463
|
+
await failRun(runId, `data-driven pipeline reached a failed terminal (lastVerdict=${verdict})`);
|
|
464
|
+
}
|
|
465
|
+
return { runId, status, verdict, steps };
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Block the run early with a human-readable lesson (the engine-level preflight guard — there is no
|
|
469
|
+
* graph node for it). Emits a lesson-bearing `pipeline_blocked` (token-redacted at the persist
|
|
470
|
+
* boundary) + marks the Revisium run-row blocked, then returns a `blocked` result WITHOUT entering the
|
|
471
|
+
* graph. Mirrors the old engine's `blockPipeline({ reason })`.
|
|
472
|
+
*/
|
|
473
|
+
async function blockWithLesson(runId, taskId, reason, lesson, steps) {
|
|
474
|
+
await appendEvent({
|
|
475
|
+
runId,
|
|
476
|
+
taskId,
|
|
477
|
+
stepId: '',
|
|
478
|
+
stepKey: 'pipeline',
|
|
479
|
+
type: 'pipeline_blocked',
|
|
480
|
+
payload: { reason, lesson },
|
|
481
|
+
});
|
|
482
|
+
await blockRun(runId, { actor: 'pipeline', source: `data-driven-${reason}`, reason });
|
|
483
|
+
return { runId, status: 'blocked', verdict: 'blocked', steps };
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
/** Resolve a node id against the template (a VALID template never dangles — guarded defensively). */
|
|
487
|
+
function resolveNode(template, nodeId) {
|
|
488
|
+
const node = template.nodes[nodeId];
|
|
489
|
+
if (!node)
|
|
490
|
+
throw new InterpretError(`unknown node id "${nodeId}" (invalid template)`);
|
|
491
|
+
return node;
|
|
492
|
+
}
|
|
493
|
+
//# sourceMappingURL=data-driven-task.workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-driven-task.workflow.js","sourceRoot":"","sources":["../../src/pipeline/data-driven-task.workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* data-driven-template.ts — read + validate the PINNED state-machine template for a run (0015 §9/§11).
|
|
3
|
+
*
|
|
4
|
+
* MVP STORAGE (resolves §14 Q4 for now): the data-driven template is carried inside the pipeline row's
|
|
5
|
+
* `execution_policy` under a `template_json` key — the only free-form slot that round-trips through
|
|
6
|
+
* playbook install with NO control-plane schema migration. A pipeline is DATA-DRIVEN iff that template
|
|
7
|
+
* parses, declares `specVersion` + `nodes`, and validates clean via `pipeline-core.validateTemplate`
|
|
8
|
+
* (the authoritative validator, §9). Native Revisium typing / a dedicated `template_json` column is a
|
|
9
|
+
* strictly-additive later upgrade (the Desktop handoff tracks it).
|
|
10
|
+
*
|
|
11
|
+
* Pure + I/O-free: it inspects already-loaded `executionPolicy` data. The adapter pins the returned
|
|
12
|
+
* template as a DBOS workflow argument (durable on recovery), so selection reads it once at run start.
|
|
13
|
+
*/
|
|
14
|
+
import { validateTemplate } from '../pipeline-core/index.js';
|
|
15
|
+
function isRecord(value) {
|
|
16
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A loose structural pre-check before handing to the authoritative validator: a `specVersion` string
|
|
20
|
+
* and a `nodes` object. (validateTemplate then does the full §12 closure.)
|
|
21
|
+
*/
|
|
22
|
+
function looksLikeTemplate(value) {
|
|
23
|
+
return isRecord(value) && typeof value.specVersion === 'string' && isRecord(value.nodes);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Extract a data-driven template from a pipeline's executionPolicy, if present + valid.
|
|
27
|
+
*
|
|
28
|
+
* Returns the validated `Template` when the pipeline carries a clean state-machine spec, else `null`
|
|
29
|
+
* (→ the run takes the existing hardcoded `develop-task` path). A present-but-INVALID template throws,
|
|
30
|
+
* so a broken data-driven pipeline fails loudly at run start rather than silently degrading to the
|
|
31
|
+
* hardcoded engine (which would mask the authoring bug).
|
|
32
|
+
*/
|
|
33
|
+
export function templateFromExecutionPolicy(executionPolicy) {
|
|
34
|
+
if (!isRecord(executionPolicy))
|
|
35
|
+
return null;
|
|
36
|
+
const raw = executionPolicy.template_json ?? executionPolicy.templateJson;
|
|
37
|
+
if (raw === undefined || raw === null)
|
|
38
|
+
return null;
|
|
39
|
+
const parsed = typeof raw === 'string' ? safeParse(raw) : raw;
|
|
40
|
+
if (!looksLikeTemplate(parsed)) {
|
|
41
|
+
throw new Error('DATA_DRIVEN_TEMPLATE_MALFORMED: execution_policy.template_json is not a template');
|
|
42
|
+
}
|
|
43
|
+
const errors = validateTemplate(parsed).filter((d) => d.severity === 'error');
|
|
44
|
+
if (errors.length > 0) {
|
|
45
|
+
throw new Error(`DATA_DRIVEN_TEMPLATE_INVALID: ${parsed.pipelineId} — ${errors.map((d) => d.code).join(', ')}`);
|
|
46
|
+
}
|
|
47
|
+
return parsed;
|
|
48
|
+
}
|
|
49
|
+
function safeParse(raw) {
|
|
50
|
+
try {
|
|
51
|
+
return JSON.parse(raw);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
throw new Error('DATA_DRIVEN_TEMPLATE_MALFORMED: execution_policy.template_json is not valid JSON');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data-driven-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-driven-template.js","sourceRoot":"","sources":["../../src/pipeline/data-driven-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAiB,MAAM,2BAA2B,CAAC;AAE5E,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,eAAwB;IAClE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,GAAG,GAAG,eAAe,CAAC,aAAa,IAAI,eAAe,CAAC,YAAY,CAAC;IAC1E,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEnD,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9D,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;AACH,CAAC"}
|