@revisium/orchestrator 0.1.0-alpha.2 → 0.1.0-alpha.3
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 +47 -2
- package/control-plane/default-playbook/catalog/pipelines.json +329 -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 +25 -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 +27 -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 +1 -0
- package/dist/control-plane/json-fields.js.map +1 -1
- package/dist/control-plane/schema-migration.js +79 -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/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 +403 -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 +150 -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 +134 -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 +124 -0
- package/dist/pipeline-core/types.js.map +1 -0
- package/dist/pipeline-core/validate.js +1032 -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 +8 -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/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/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
|
@@ -11,26 +11,26 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
|
-
* PipelineService — the
|
|
14
|
+
* PipelineService — DBOS registration hub for the data-driven pipeline engine (plan 0015).
|
|
15
15
|
*
|
|
16
16
|
* INVARIANT: `src/pipeline/*` imports NO `@dbos-inc/dbos-sdk` (M1 — DBOS sealed).
|
|
17
17
|
* All DBOS interaction goes through the generic DbosService verbs.
|
|
18
18
|
*
|
|
19
19
|
* Registration happens in the constructor, BEFORE DBOS.launch() (mirroring dev:ping).
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
21
|
+
* CUTOVER (plan 0015 slice 3): the old hardcoded `developTask` workflow + its role→phase classifiers
|
|
22
|
+
* (`planRouteExecution`, `isDeveloperRole`/…, `validatePostIntegratorBindings`, `beforeDeveloperPhase`)
|
|
23
|
+
* have been REMOVED. The data-driven engine (`makeDataDrivenTask`, executing a `pipeline-core` graph) is
|
|
24
|
+
* the SOLE pipeline engine; selection routes EVERY pipeline to it (TaskControlPlaneApiService.startRun),
|
|
25
|
+
* and a pipeline lacking a valid data-driven template FAILS LOUD there (PIPELINE_NOT_DATA_DRIVEN).
|
|
26
|
+
*
|
|
27
|
+
* KEPT here (the shared seams the data-driven adapter reuses):
|
|
28
|
+
* - `makeRunStep` — the generic per-step runner (role→runner dispatch, attempt/cost/event bookkeeping).
|
|
29
|
+
* - the run lifecycle verbs (complete/fail/block) + `awaitHuman` (gate park/resume) + the integrator
|
|
30
|
+
* (real + stub) + the live preflight, wired as DataDrivenTaskDeps.
|
|
31
31
|
*
|
|
32
32
|
* C1 architecture: the step and workflow bodies are extracted as DBOS-free builder functions
|
|
33
|
-
* (`makeRunStep` / `
|
|
33
|
+
* (`makeRunStep` / `makeDataDrivenTask`). PipelineService registers exactly those builders via
|
|
34
34
|
* the engine seam, so tests can import and exercise the SAME production logic directly.
|
|
35
35
|
*/
|
|
36
36
|
import { Injectable, Inject } from '@nestjs/common';
|
|
@@ -39,78 +39,48 @@ import { RolesService } from '../revisium/roles.service.js';
|
|
|
39
39
|
import { RunService } from '../revisium/run.service.js';
|
|
40
40
|
import { InboxService } from '../revisium/inbox.service.js';
|
|
41
41
|
import { IntegratorService } from '../runners/integrator.js';
|
|
42
|
+
import { redactTokens } from '../runners/gh-identity.js';
|
|
42
43
|
import { RUN_AGENT } from '../runners/tokens.js';
|
|
43
44
|
import { buildContext } from '../worker/build-context.js';
|
|
45
|
+
import { artifactsFromRunAgentError } from '../worker/runner.js';
|
|
44
46
|
import { fnv1a64Hex } from '../control-plane/steps.js';
|
|
45
47
|
import { makeAwaitHuman } from './await-human.js';
|
|
48
|
+
import { makeDataDrivenTask, } from './data-driven-task.workflow.js';
|
|
49
|
+
import { dispatchRunnerId, } from './route-contract.js';
|
|
46
50
|
/** Queue name for the dev-tasks WorkflowQueue. */
|
|
47
51
|
const DEV_TASKS_QUEUE = 'dev-tasks';
|
|
48
|
-
/** Concurrency limit for the dev-tasks queue. */
|
|
49
|
-
const DEV_TASKS_CONCURRENCY = 2;
|
|
50
52
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* Maps the seeded reviewer prompt vocabulary: APPROVE→PASS, REQUEST_CHANGES→MAJOR.
|
|
55
|
-
* Explicit BLOCKER passes through. PASS and MINOR proceed.
|
|
56
|
-
*
|
|
57
|
-
* 0008 dogfood fix: a real claude reviewer emits its verdict as a FREE-TEXT string that BEGINS
|
|
58
|
-
* with the verdict word (e.g. `"APPROVE — all gates pass…"`, `"REQUEST_CHANGES: …"`), not as a
|
|
59
|
-
* structured `{ verdict: … }` object. The original parser only read `output.verdict` and
|
|
60
|
-
* fail-closed every string output to BLOCKER — so genuine APPROVEs looped to the cap and the
|
|
61
|
-
* pipeline never reached the integrator. We now also recognize the leading token of a string
|
|
62
|
-
* output. Fail-closed is preserved: an object with no known verdict, or a string with no
|
|
63
|
-
* recognized LEADING token, still returns BLOCKER (don't integrate ambiguously-reviewed code).
|
|
53
|
+
* Concurrency limit for the dev-tasks queue. Default 2; overridable via `REVO_DEV_TASKS_CONCURRENCY`
|
|
54
|
+
* (a deployment throughput knob, and what lets the e2e crash-recovery suite hold several PENDING
|
|
55
|
+
* runs at once — each parked run occupies a slot until recovered).
|
|
64
56
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
case 'MAJOR':
|
|
73
|
-
case 'REQUEST_CHANGES': // seeded reviewer prompt vocabulary mapping
|
|
74
|
-
return 'MAJOR';
|
|
75
|
-
case 'BLOCKER':
|
|
76
|
-
return 'BLOCKER';
|
|
77
|
-
default:
|
|
78
|
-
return null; // unrecognized
|
|
79
|
-
}
|
|
57
|
+
const DEV_TASKS_CONCURRENCY = (() => {
|
|
58
|
+
const raw = Number.parseInt(process.env['REVO_DEV_TASKS_CONCURRENCY'] ?? '', 10);
|
|
59
|
+
return Number.isFinite(raw) && raw > 0 ? raw : 2;
|
|
60
|
+
})();
|
|
61
|
+
const RUNNER_FAILURE_REASON_MAX = 2_000;
|
|
62
|
+
function isRecord(value) {
|
|
63
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
80
64
|
}
|
|
81
65
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
66
|
+
* verdictForAttemptRow — best-effort verdict label for the observability attempts row.
|
|
67
|
+
*
|
|
68
|
+
* The data-driven engine routes on a node's DOMAIN verdict (resolved in the adapter, §8) and never
|
|
69
|
+
* consults this. This is purely the human-readable verdict surfaced on the per-attempt log row: read
|
|
70
|
+
* an explicit `output.verdict` (string) or the leading token of a free-text string output, else mark
|
|
71
|
+
* it `unknown`. No engine semantics are derived from it.
|
|
86
72
|
*/
|
|
87
|
-
function
|
|
88
|
-
const m = /^(APPROVE|REQUEST_CHANGES|BLOCKER|MAJOR|MINOR|PASS)\b/.exec(text.trimStart().toUpperCase());
|
|
89
|
-
return m ? mapVerdictToken(m[1]) : null;
|
|
90
|
-
}
|
|
91
|
-
export function verdictOf(result) {
|
|
73
|
+
function verdictForAttemptRow(result) {
|
|
92
74
|
const output = result.output;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return mapVerdictToken(output.verdict) ?? 'BLOCKER';
|
|
96
|
-
}
|
|
97
|
-
// Free-text form: reviewer emitted a string whose leading token is the verdict.
|
|
75
|
+
if (isRecord(output) && typeof output.verdict === 'string')
|
|
76
|
+
return output.verdict;
|
|
98
77
|
if (typeof output === 'string') {
|
|
99
|
-
|
|
78
|
+
const token = output.trim().split(/\s+/)[0];
|
|
79
|
+
if (token)
|
|
80
|
+
return token.toUpperCase();
|
|
100
81
|
}
|
|
101
|
-
|
|
102
|
-
return 'BLOCKER';
|
|
82
|
+
return 'unknown';
|
|
103
83
|
}
|
|
104
|
-
function isBlocking(verdict) {
|
|
105
|
-
return verdict === 'MAJOR' || verdict === 'BLOCKER';
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* makeRunStep — DBOS-free factory for the runStep async function.
|
|
109
|
-
*
|
|
110
|
-
* Returns a plain async function with the same signature as the DBOS step.
|
|
111
|
-
* PipelineService passes this to `dbos.registerStep(...)` so tests can import
|
|
112
|
-
* and call it directly — exercising the SAME code path as production (C1).
|
|
113
|
-
*/
|
|
114
84
|
/** Parse the rework iteration from a stepKey (`developer#2` → 2; `developer` → 0). */
|
|
115
85
|
function iterationOf(stepKey) {
|
|
116
86
|
const hashIdx = stepKey.lastIndexOf('#');
|
|
@@ -119,10 +89,34 @@ function iterationOf(stepKey) {
|
|
|
119
89
|
const n = Number.parseInt(stepKey.slice(hashIdx + 1), 10);
|
|
120
90
|
return Number.isFinite(n) && n > 0 ? n : 0;
|
|
121
91
|
}
|
|
92
|
+
function runnerFailureReason(err) {
|
|
93
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
94
|
+
return redactTokens(message).slice(0, RUNNER_FAILURE_REASON_MAX);
|
|
95
|
+
}
|
|
96
|
+
function processArtifactFields(artifacts) {
|
|
97
|
+
const processArtifact = isRecord(artifacts) && isRecord(artifacts.process) ? artifacts.process : artifacts;
|
|
98
|
+
if (!isRecord(processArtifact))
|
|
99
|
+
return {};
|
|
100
|
+
const ref = processArtifact.ref;
|
|
101
|
+
const stdoutTail = processArtifact.stdoutTail;
|
|
102
|
+
const stderrTail = processArtifact.stderrTail;
|
|
103
|
+
return {
|
|
104
|
+
artifactRef: typeof ref === 'string' ? ref : undefined,
|
|
105
|
+
stdoutTail: typeof stdoutTail === 'string' ? stdoutTail : undefined,
|
|
106
|
+
stderrTail: typeof stderrTail === 'string' ? stderrTail : undefined,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* makeRunStep — DBOS-free factory for the runStep async function.
|
|
111
|
+
*
|
|
112
|
+
* Returns a plain async function with the same signature as the DBOS step.
|
|
113
|
+
* PipelineService passes this to `dbos.registerStep(...)` so tests can import
|
|
114
|
+
* and call it directly — exercising the SAME code path as production (C1).
|
|
115
|
+
*/
|
|
122
116
|
export function makeRunStep(deps) {
|
|
123
117
|
const { loadRole, loadModelProfile, loadPipelineContext, appendEvent, appendCost, appendAttempt, runAgent } = deps;
|
|
124
118
|
const clock = deps.now ?? (() => Date.now());
|
|
125
|
-
return async function runStepImpl(runId, role, stepKey, stepInput,
|
|
119
|
+
return async function runStepImpl(runId, role, stepKey, stepInput, resolvedRunnerId, executionProfile) {
|
|
126
120
|
// 1. Load the canonical role (B1: role is NEVER mutated with #k).
|
|
127
121
|
const loadedRole = await loadRole(role);
|
|
128
122
|
// 2. Load the model profile from the role's modelLevel (B7: not hardcoded 'standard').
|
|
@@ -133,14 +127,65 @@ export function makeRunStep(deps) {
|
|
|
133
127
|
const context = await buildContext(da, step, loadedRole);
|
|
134
128
|
// 5. Deterministic, bounded attemptId (B2).
|
|
135
129
|
const attemptId = `attempt_${fnv1a64Hex(`${runId}|${stepKey}`)}`;
|
|
136
|
-
// 6.
|
|
137
|
-
//
|
|
138
|
-
const effectiveRunner =
|
|
130
|
+
// 6. Dispatch through the resolved per-role runner binding. Legacy direct callers may still
|
|
131
|
+
// pass runnerMode ('script'|'live') without a route; that fallback is intentionally private.
|
|
132
|
+
const effectiveRunner = dispatchRunnerId(resolveStepRunner(loadedRole.runner, resolvedRunnerId, executionProfile));
|
|
139
133
|
const dispatchRole = { ...loadedRole, runner: effectiveRunner };
|
|
140
|
-
// 7. Run the agent (timed for the attempt-row duration).
|
|
134
|
+
// 7. Run the agent (timed for the attempt-row duration). Runner-process failures are domain
|
|
135
|
+
// failures, not DBOS step failures: convert them to a blocking attempt so the workflow can
|
|
136
|
+
// park/fail the run row instead of leaving DBOS=ERROR with task_runs.status='ready'.
|
|
141
137
|
const startedAt = clock();
|
|
142
|
-
|
|
138
|
+
let result;
|
|
139
|
+
try {
|
|
140
|
+
result = await runAgent({ role: dispatchRole, profile, context, attemptId, step });
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
const durationMs = Math.max(0, clock() - startedAt);
|
|
144
|
+
const reason = runnerFailureReason(err);
|
|
145
|
+
const artifactFields = processArtifactFields(artifactsFromRunAgentError(err));
|
|
146
|
+
const output = {
|
|
147
|
+
verdict: 'BLOCKER',
|
|
148
|
+
error: 'runner_failed',
|
|
149
|
+
role,
|
|
150
|
+
stepKey,
|
|
151
|
+
reason,
|
|
152
|
+
};
|
|
153
|
+
await appendEvent({
|
|
154
|
+
runId,
|
|
155
|
+
taskId: step.taskId,
|
|
156
|
+
stepId: step.id,
|
|
157
|
+
stepKey,
|
|
158
|
+
type: 'step_failed',
|
|
159
|
+
payload: { output, role, stepKey, attemptId },
|
|
160
|
+
});
|
|
161
|
+
try {
|
|
162
|
+
await appendAttempt({
|
|
163
|
+
runId,
|
|
164
|
+
stepId: step.id,
|
|
165
|
+
attemptId,
|
|
166
|
+
attemptNo: iterationOf(stepKey) + 1,
|
|
167
|
+
iteration: iterationOf(stepKey),
|
|
168
|
+
status: 'failed',
|
|
169
|
+
modelProfile: step.modelProfile,
|
|
170
|
+
verdict: 'BLOCKER',
|
|
171
|
+
inputTokens: 0,
|
|
172
|
+
outputTokens: 0,
|
|
173
|
+
costAmount: 0,
|
|
174
|
+
durationMs,
|
|
175
|
+
output,
|
|
176
|
+
lesson: reason,
|
|
177
|
+
error: reason,
|
|
178
|
+
...artifactFields,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
catch (attemptErr) {
|
|
182
|
+
console.warn(`[pipeline] failed-attempt row write failed for ${stepKey} (${attemptId}) — observability only. ` +
|
|
183
|
+
`${String(attemptErr)}`);
|
|
184
|
+
}
|
|
185
|
+
return { output, nextSteps: [], costs: [], needsHuman: true, lesson: reason };
|
|
186
|
+
}
|
|
143
187
|
const durationMs = Math.max(0, clock() - startedAt);
|
|
188
|
+
const artifactFields = processArtifactFields(result.artifacts);
|
|
144
189
|
// 8. Persist event to Revisium draft (idempotent — ROW_CONFLICT = no-op on replay).
|
|
145
190
|
await appendEvent({
|
|
146
191
|
runId,
|
|
@@ -165,7 +210,7 @@ export function makeRunStep(deps) {
|
|
|
165
210
|
});
|
|
166
211
|
}
|
|
167
212
|
// 10. Persist the per-attempt observability row (0008 #4). Aggregate tokens/cost from the
|
|
168
|
-
// cost records;
|
|
213
|
+
// cost records; surface the verdict; redact secrets on store. Idempotent by attemptId.
|
|
169
214
|
// NON-FATAL: the attempts row is pure observability — a write failure (e.g. a control-plane
|
|
170
215
|
// whose attempts schema predates 0008's fields, additionalProperties:false → VALIDATION_FAILURE)
|
|
171
216
|
// must NEVER fail an otherwise-successful agent step. Log and continue.
|
|
@@ -181,13 +226,14 @@ export function makeRunStep(deps) {
|
|
|
181
226
|
iteration: iterationOf(stepKey),
|
|
182
227
|
status: result.needsHuman ? 'awaiting_approval' : 'succeeded',
|
|
183
228
|
modelProfile: step.modelProfile,
|
|
184
|
-
verdict:
|
|
229
|
+
verdict: verdictForAttemptRow(result),
|
|
185
230
|
inputTokens,
|
|
186
231
|
outputTokens,
|
|
187
232
|
costAmount,
|
|
188
233
|
durationMs,
|
|
189
234
|
output: result.output,
|
|
190
235
|
lesson: result.lesson,
|
|
236
|
+
...artifactFields,
|
|
191
237
|
});
|
|
192
238
|
}
|
|
193
239
|
catch (err) {
|
|
@@ -197,228 +243,13 @@ export function makeRunStep(deps) {
|
|
|
197
243
|
return result;
|
|
198
244
|
};
|
|
199
245
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
*/
|
|
208
|
-
export function makeDevelopTask(runStepFn, deps) {
|
|
209
|
-
const { appendEvent, awaitHuman, cancelRun, failRun, completeRun, loadRunTaskContext, loadPipelinePolicy, integrateFn, runStub, preflightFn } = deps;
|
|
210
|
-
return async function developTaskImpl(runId, opts) {
|
|
211
|
-
try {
|
|
212
|
-
return await runDevelopTaskBody(runId, opts);
|
|
213
|
-
}
|
|
214
|
-
catch (err) {
|
|
215
|
-
// TERMINAL step failure (0008 #2): a step threw and propagated to the workflow body. Before
|
|
216
|
-
// re-throwing (so DBOS still records the workflow as ERROR — progress truth is preserved),
|
|
217
|
-
// mark the Revisium run-row `failed` + write a run_failed event so the run-row stops lying.
|
|
218
|
-
// failRun is idempotent (event-first, deterministic id) so DBOS recovery replays are no-ops.
|
|
219
|
-
const reason = err instanceof Error ? err.message : String(err);
|
|
220
|
-
try {
|
|
221
|
-
await failRun(runId, reason);
|
|
222
|
-
}
|
|
223
|
-
catch (failErr) {
|
|
224
|
-
// Never let bookkeeping mask the original failure — log and re-throw the ORIGINAL error.
|
|
225
|
-
console.error(`[pipeline] failRun(${runId}) itself failed: ${String(failErr)}`);
|
|
226
|
-
}
|
|
227
|
-
throw err;
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
async function runDevelopTaskBody(runId, opts) {
|
|
231
|
-
// Coerce mode: missing/invalid → 'script' (NEVER 'live' — fail-safe, M1).
|
|
232
|
-
const mode = opts?.runnerMode === 'live' ? 'live' : 'script';
|
|
233
|
-
// B6: resolve task context once at workflow start (deterministic pure read).
|
|
234
|
-
const { taskId, title, base } = await loadRunTaskContext(runId);
|
|
235
|
-
// 0008 #5: pipeline limits are DATA (routing_policy), not hardcoded consts. Loaded once.
|
|
236
|
-
const policy = await loadPipelinePolicy();
|
|
237
|
-
// Run-level cost/token BUDGET (0008 #5): accrue each step's cost; a hard-stop blocks the run
|
|
238
|
-
// (pipeline_blocked, reason 'budget') rather than letting an unbounded loop burn the budget.
|
|
239
|
-
let spentUsd = 0;
|
|
240
|
-
let spentTokens = 0;
|
|
241
|
-
let iteration = 0;
|
|
242
|
-
const accrue = (r) => {
|
|
243
|
-
for (const c of r.costs) {
|
|
244
|
-
if (!c)
|
|
245
|
-
continue;
|
|
246
|
-
spentUsd += c.costAmount ?? 0;
|
|
247
|
-
spentTokens += (c.inputTokens ?? 0) + (c.outputTokens ?? 0);
|
|
248
|
-
}
|
|
249
|
-
};
|
|
250
|
-
const overBudget = () => (policy.budgetUsd > 0 && spentUsd > policy.budgetUsd) ||
|
|
251
|
-
(policy.budgetTokens > 0 && spentTokens > policy.budgetTokens);
|
|
252
|
-
const blockBudget = async () => {
|
|
253
|
-
await appendEvent({
|
|
254
|
-
runId,
|
|
255
|
-
taskId,
|
|
256
|
-
stepId: '',
|
|
257
|
-
stepKey: 'pipeline',
|
|
258
|
-
type: 'pipeline_blocked',
|
|
259
|
-
payload: {
|
|
260
|
-
reason: 'budget',
|
|
261
|
-
spentUsd,
|
|
262
|
-
spentTokens,
|
|
263
|
-
budgetUsd: policy.budgetUsd,
|
|
264
|
-
budgetTokens: policy.budgetTokens,
|
|
265
|
-
},
|
|
266
|
-
});
|
|
267
|
-
return { runId, blocked: true, iterations: iteration, verdict: 'BLOCKED', cancelled: false };
|
|
268
|
-
};
|
|
269
|
-
// runStep — wraps runStepFn to accrue cost so the budget guard sees every step's spend.
|
|
270
|
-
const runStep = async (role, stepKey, input) => {
|
|
271
|
-
const r = await runStepFn(runId, role, stepKey, input, mode);
|
|
272
|
-
accrue(r);
|
|
273
|
-
return r;
|
|
274
|
-
};
|
|
275
|
-
// B5/B7: live preflight — one memoized DBOS step, evaluated exactly once.
|
|
276
|
-
// Skipped entirely on script/stub runs (no git, no cost, no mutation beyond fetch).
|
|
277
|
-
if (mode === 'live') {
|
|
278
|
-
const pf = await preflightFn(taskId, base);
|
|
279
|
-
if ('needsHuman' in pf) {
|
|
280
|
-
await appendEvent({
|
|
281
|
-
runId,
|
|
282
|
-
taskId,
|
|
283
|
-
stepId: '',
|
|
284
|
-
stepKey: 'pipeline',
|
|
285
|
-
type: 'pipeline_blocked',
|
|
286
|
-
payload: { reason: 'preflight', lesson: pf.lesson },
|
|
287
|
-
});
|
|
288
|
-
return { runId, blocked: true, iterations: 0, verdict: 'BLOCKED', cancelled: false };
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
// architect step
|
|
292
|
-
const architectResult = await runStep('architect', 'architect', { phase: 'plan' });
|
|
293
|
-
if (overBudget())
|
|
294
|
-
return await blockBudget();
|
|
295
|
-
// ── PLAN GATE (after architect, before developer) ──────────────────────────
|
|
296
|
-
const planDecision = await awaitHuman(runId, 'plan', 'Plan approval', architectResult.output);
|
|
297
|
-
if (planDecision.decision === 'reject') {
|
|
298
|
-
await appendEvent({
|
|
299
|
-
runId,
|
|
300
|
-
taskId: '',
|
|
301
|
-
stepId: '',
|
|
302
|
-
stepKey: 'gate:plan',
|
|
303
|
-
type: 'gate_rejected',
|
|
304
|
-
payload: { topic: 'plan' },
|
|
305
|
-
});
|
|
306
|
-
await cancelRun(runId, { actor: 'pipeline', source: 'plan-gate-reject' });
|
|
307
|
-
return { runId, blocked: false, iterations: 0, verdict: 'CANCELLED', cancelled: true };
|
|
308
|
-
}
|
|
309
|
-
// ── end PLAN GATE ──────────────────────────────────────────────────────────
|
|
310
|
-
// developer step (first pass)
|
|
311
|
-
let developerResult = await runStep('developer', 'developer', {
|
|
312
|
-
phase: 'implement',
|
|
313
|
-
from: architectResult.output,
|
|
314
|
-
});
|
|
315
|
-
if (overBudget())
|
|
316
|
-
return await blockBudget();
|
|
317
|
-
// reviewer step (first pass)
|
|
318
|
-
let reviewResult = await runStep('reviewer', 'reviewer', {
|
|
319
|
-
phase: 'review',
|
|
320
|
-
from: developerResult.output,
|
|
321
|
-
});
|
|
322
|
-
if (overBudget())
|
|
323
|
-
return await blockBudget();
|
|
324
|
-
// bounded reviewer→developer loop (E5, E6); iteration cap is DATA (0008 #5).
|
|
325
|
-
// Budget is checked after EVERY step so a hard-stop fires before the NEXT agent call burns spend.
|
|
326
|
-
while (isBlocking(verdictOf(reviewResult)) && iteration < policy.maxReviewIterations) {
|
|
327
|
-
iteration++;
|
|
328
|
-
developerResult = await runStep('developer', `developer#${iteration}`, {
|
|
329
|
-
phase: 'rework',
|
|
330
|
-
feedback: reviewResult.output,
|
|
331
|
-
});
|
|
332
|
-
if (overBudget())
|
|
333
|
-
return await blockBudget();
|
|
334
|
-
reviewResult = await runStep('reviewer', `reviewer#${iteration}`, {
|
|
335
|
-
phase: 'review',
|
|
336
|
-
from: developerResult.output,
|
|
337
|
-
});
|
|
338
|
-
if (overBudget())
|
|
339
|
-
return await blockBudget();
|
|
340
|
-
}
|
|
341
|
-
// Cap exhausted — still blocking: write pipeline_blocked and stop (E6).
|
|
342
|
-
if (isBlocking(verdictOf(reviewResult))) {
|
|
343
|
-
await appendEvent({
|
|
344
|
-
runId,
|
|
345
|
-
taskId: '',
|
|
346
|
-
stepId: '',
|
|
347
|
-
stepKey: 'pipeline',
|
|
348
|
-
type: 'pipeline_blocked',
|
|
349
|
-
payload: { lastVerdict: verdictOf(reviewResult), iterations: iteration },
|
|
350
|
-
});
|
|
351
|
-
return {
|
|
352
|
-
runId,
|
|
353
|
-
blocked: true,
|
|
354
|
-
iterations: iteration,
|
|
355
|
-
verdict: verdictOf(reviewResult),
|
|
356
|
-
cancelled: false,
|
|
357
|
-
};
|
|
358
|
-
}
|
|
359
|
-
// B3 — mode-gated integrator step (core Round-4 fix).
|
|
360
|
-
// live → DBOS-registered integrateFn (real git/gh, resumable).
|
|
361
|
-
// script → runStub (pure, zero external effects — no git, no gh, no fs).
|
|
362
|
-
const integratorInput = { runId, taskId, title, base };
|
|
363
|
-
const integratorResult = mode === 'live'
|
|
364
|
-
? await integrateFn(integratorInput)
|
|
365
|
-
: runStub(integratorInput);
|
|
366
|
-
// On integrator blocked (live only — nothing to integrate / ambiguous PR / missing remote)
|
|
367
|
-
if ('needsHuman' in integratorResult) {
|
|
368
|
-
await appendEvent({
|
|
369
|
-
runId,
|
|
370
|
-
taskId,
|
|
371
|
-
stepId: '',
|
|
372
|
-
stepKey: 'pipeline',
|
|
373
|
-
type: 'pipeline_blocked',
|
|
374
|
-
payload: { reason: 'integrate', lesson: integratorResult.lesson },
|
|
375
|
-
});
|
|
376
|
-
return { runId, blocked: true, iterations: iteration, verdict: 'BLOCKED', cancelled: false };
|
|
377
|
-
}
|
|
378
|
-
// Observability MINOR: integrate_succeeded event (mirrors step_succeeded at makeRunStep).
|
|
379
|
-
await appendEvent({
|
|
380
|
-
runId,
|
|
381
|
-
taskId,
|
|
382
|
-
stepId: '',
|
|
383
|
-
stepKey: 'integrator',
|
|
384
|
-
type: 'integrate_succeeded',
|
|
385
|
-
payload: {
|
|
386
|
-
prUrl: integratorResult.prUrl,
|
|
387
|
-
branch: integratorResult.branch,
|
|
388
|
-
prNumber: integratorResult.prNumber,
|
|
389
|
-
},
|
|
390
|
-
});
|
|
391
|
-
// ── MERGE GATE (after integrator) ──────────────────────────────────────────
|
|
392
|
-
// Real prUrl from the integrator (live) or 'stub://pr/placeholder' (script).
|
|
393
|
-
const prUrl = integratorResult.prUrl ?? 'stub://pr/placeholder';
|
|
394
|
-
const mergeDecision = await awaitHuman(runId, 'merge', 'Merge approval', { prUrl });
|
|
395
|
-
if (mergeDecision.decision === 'reject') {
|
|
396
|
-
await appendEvent({
|
|
397
|
-
runId,
|
|
398
|
-
taskId: '',
|
|
399
|
-
stepId: '',
|
|
400
|
-
stepKey: 'gate:merge',
|
|
401
|
-
type: 'gate_rejected',
|
|
402
|
-
payload: { topic: 'merge' },
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
// ── end MERGE GATE ─────────────────────────────────────────────────────────
|
|
406
|
-
const finalVerdict = verdictOf(reviewResult);
|
|
407
|
-
await completeRun(runId, {
|
|
408
|
-
actor: 'pipeline',
|
|
409
|
-
source: mergeDecision.decision === 'reject' ? 'merge-gate-reject' : 'merge-gate-approve',
|
|
410
|
-
verdict: finalVerdict,
|
|
411
|
-
iterations: iteration,
|
|
412
|
-
});
|
|
413
|
-
return {
|
|
414
|
-
runId,
|
|
415
|
-
blocked: false,
|
|
416
|
-
iterations: iteration,
|
|
417
|
-
verdict: finalVerdict,
|
|
418
|
-
cancelled: false,
|
|
419
|
-
};
|
|
420
|
-
}
|
|
421
|
-
;
|
|
246
|
+
function resolveStepRunner(roleRunner, resolvedRunnerId, executionProfile) {
|
|
247
|
+
if (resolvedRunnerId && resolvedRunnerId !== 'live')
|
|
248
|
+
return resolvedRunnerId;
|
|
249
|
+
if (resolvedRunnerId === 'script')
|
|
250
|
+
return 'script';
|
|
251
|
+
const profileResolved = executionProfile?.runnerOverrides[roleRunner];
|
|
252
|
+
return profileResolved || roleRunner;
|
|
422
253
|
}
|
|
423
254
|
let PipelineService = class PipelineService {
|
|
424
255
|
dbos;
|
|
@@ -428,7 +259,12 @@ let PipelineService = class PipelineService {
|
|
|
428
259
|
integratorService;
|
|
429
260
|
/** Registered DBOS-wrapped function types. */
|
|
430
261
|
runStepFn;
|
|
431
|
-
|
|
262
|
+
/**
|
|
263
|
+
* The DATA-DRIVEN workflow (plan 0015) — the SOLE pipeline engine. Selection routes EVERY pipeline
|
|
264
|
+
* here (TaskControlPlaneApiService); the engine executes the pinned `pipeline-core` graph on real
|
|
265
|
+
* DBOS, reusing the SAME runStep DBOS step + awaitHuman + integrator + live preflight.
|
|
266
|
+
*/
|
|
267
|
+
dataDrivenTaskFn;
|
|
432
268
|
/** The single run-agent used by all steps. */
|
|
433
269
|
runAgent;
|
|
434
270
|
constructor(dbos, rolesService, runService, inboxService, integratorService, runAgentToken) {
|
|
@@ -460,36 +296,34 @@ let PipelineService = class PipelineService {
|
|
|
460
296
|
awaitDecision: (topic) => this.dbos.awaitDecision(topic),
|
|
461
297
|
appendEvent: stepDeps.appendEvent,
|
|
462
298
|
});
|
|
463
|
-
|
|
299
|
+
// Register the DATA-DRIVEN workflow (plan 0015) using the production builder with the DBOS-wrapped
|
|
300
|
+
// step. Reuses the SAME runStep + awaitHuman + integrator + preflight so capabilities resolve
|
|
301
|
+
// through the existing runner machinery (no duplicate dispatch logic, no role-ids in the engine).
|
|
302
|
+
const dataDrivenDeps = {
|
|
464
303
|
appendEvent: stepDeps.appendEvent,
|
|
465
304
|
awaitHuman,
|
|
466
|
-
cancelRun: (runId, cancelOpts) => this.runService.cancelRun(runId, cancelOpts),
|
|
467
|
-
failRun: (runId, reason) => this.runService.failRun(runId, reason),
|
|
468
305
|
completeRun: (runId, completeOpts) => this.runService.completeRun(runId, completeOpts),
|
|
306
|
+
failRun: (runId, reason) => this.runService.failRun(runId, reason),
|
|
307
|
+
blockRun: (runId, blockOpts) => this.runService.blockRun(runId, blockOpts),
|
|
469
308
|
loadRunTaskContext: this.runService.loadRunTaskContext.bind(this.runService),
|
|
470
|
-
loadPipelinePolicy: this.rolesService.loadPipelinePolicy.bind(this.rolesService),
|
|
471
309
|
integrateFn,
|
|
472
310
|
runStub: this.integratorService.runStub,
|
|
473
311
|
preflightFn,
|
|
474
312
|
};
|
|
475
|
-
|
|
476
|
-
this.developTaskFn = this.dbos.registerWorkflow('PipelineService.developTask', makeDevelopTask(this.runStepFn, workflowDeps));
|
|
313
|
+
this.dataDrivenTaskFn = this.dbos.registerWorkflow('PipelineService.dataDrivenTask', makeDataDrivenTask(this.runStepFn, dataDrivenDeps));
|
|
477
314
|
// Register the WorkflowQueue (idempotent — Map-guarded in DbosService).
|
|
478
315
|
this.dbos.registerQueue(DEV_TASKS_QUEUE, { concurrency: DEV_TASKS_CONCURRENCY });
|
|
479
316
|
}
|
|
480
317
|
/**
|
|
481
|
-
* Enqueue the
|
|
482
|
-
*
|
|
483
|
-
* Idempotent by workflowID=runId: re-starting the same runId returns the existing handle.
|
|
484
|
-
* opts.runnerMode is required and forwarded as a durable workflow argument (M1/B11) —
|
|
485
|
-
* persisted in the DBOS workflow input row, re-supplied verbatim on crash recovery.
|
|
318
|
+
* Enqueue the DATA-DRIVEN workflow for the given runId (plan 0015).
|
|
486
319
|
*
|
|
487
|
-
*
|
|
488
|
-
* a
|
|
489
|
-
*
|
|
320
|
+
* Idempotent by workflowID=runId: re-starting the same runId returns the existing handle. The pinned,
|
|
321
|
+
* validated template is passed as a DBOS workflow ARGUMENT, so it is durable and replayed verbatim on
|
|
322
|
+
* recovery (the MVP pin — a Revisium-revision pin is a later upgrade per §11/§14 Q4). Route role
|
|
323
|
+
* bindings are persisted in the DBOS workflow input row and are authoritative for runner dispatch.
|
|
490
324
|
*/
|
|
491
|
-
|
|
492
|
-
return this.dbos.startWorkflowOn(this.
|
|
325
|
+
startDataDrivenTask(runId, opts) {
|
|
326
|
+
return this.dbos.startWorkflowOn(this.dataDrivenTaskFn, runId, DEV_TASKS_QUEUE, runId, opts);
|
|
493
327
|
}
|
|
494
328
|
};
|
|
495
329
|
PipelineService = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"develop-task.workflow.js","sourceRoot":"","sources":["../../src/pipeline/develop-task.workflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"develop-task.workflow.js","sourceRoot":"","sources":["../../src/pipeline/develop-task.workflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,kBAAkB,GAInB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAE7B,kDAAkD;AAClD,MAAM,eAAe,GAAG,WAAW,CAAC;AAEpC;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAWxC,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;AAkBD;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,MAAqB;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAClF,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAkB;IAC/C,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3G,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC;IAChC,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;IAC9C,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;IAC9C,OAAO;QACL,WAAW,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QACtD,UAAU,EAAE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACnE,UAAU,EAAE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7C,OAAO,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,IAAY,EACZ,OAAe,EACf,SAAkB,EAClB,gBAAyB,EACzB,gBAAmC;QAEnC,kEAAkE;QAClE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAExC,uFAAuF;QACvF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE9D,kFAAkF;QAClF,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAC5C,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,CAAC,KAAK,CACd,CAAC;QAEF,qCAAqC;QACrC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAEzD,4CAA4C;QAC5C,MAAM,SAAS,GAAG,WAAW,UAAU,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;QAEjE,4FAA4F;QAC5F,gGAAgG;QAChG,MAAM,eAAe,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACnH,MAAM,YAAY,GAAG,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAEhE,4FAA4F;QAC5F,2FAA2F;QAC3F,qFAAqF;QACrF,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;QAC1B,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,cAAc,GAAG,qBAAqB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,eAAe;gBACtB,IAAI;gBACJ,OAAO;gBACP,MAAM;aACP,CAAC;YACF,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO;gBACP,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC;oBAClB,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,SAAS;oBACT,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;oBACnC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;oBAC/B,MAAM,EAAE,QAAQ;oBAChB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,OAAO,EAAE,SAAS;oBAClB,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,UAAU,EAAE,CAAC;oBACb,UAAU;oBACV,MAAM;oBACN,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,MAAM;oBACb,GAAG,cAAc;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CACV,kDAAkD,OAAO,KAAK,SAAS,0BAA0B;oBAC/F,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAC1B,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAChF,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE/D,oFAAoF;QACpF,MAAM,WAAW,CAAC;YAChB,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO;YACP,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;SAC7D,CAAC,CAAC;QAEH,8CAA8C;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,UAAU,CAAC;gBACf,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO;gBACP,SAAS;gBACT,IAAI;gBACJ,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC;QAED,0FAA0F;QAC1F,2FAA2F;QAC3F,gGAAgG;QAChG,qGAAqG;QACrG,4EAA4E;QAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,aAAa,CAAC;gBAClB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS;gBACT,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;gBACnC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;gBAC/B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW;gBAC7D,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC;gBACrC,WAAW;gBACX,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,cAAc;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,2CAA2C,OAAO,KAAK,SAAS,+CAA+C;gBAC7G,iGAAiG,MAAM,CAAC,GAAG,CAAC,EAAE,CACjH,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,gBAAyB,EACzB,gBAAmC;IAEnC,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,MAAM;QAAE,OAAO,gBAAgB,CAAC;IAC7E,IAAI,gBAAgB,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACnD,MAAM,eAAe,GAAG,gBAAgB,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACtE,OAAO,eAAe,IAAI,UAAU,CAAC;AACvC,CAAC;AAGM,IAAM,eAAe,GAArB,MAAM,eAAe;IAyBP;IACA;IACA;IACA;IACA;IA5BnB,8CAA8C;IAC7B,SAAS,CAOE;IAE5B;;;;OAIG;IACc,gBAAgB,CAGF;IAE/B,8CAA8C;IAC7B,QAAQ,CAAW;IAEpC,YACmB,IAAiB,EACjB,YAA0B,EAC1B,UAAsB,EACtB,YAA0B,EAC1B,iBAAoC,EAClC,aAAuB;QALzB,SAAI,GAAJ,IAAI,CAAa;QACjB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,eAAU,GAAV,UAAU,CAAY;QACtB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAmB;QAGrD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;QAE9B,qEAAqE;QACrE,MAAM,QAAQ,GAAgB;YAC5B,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5D,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5E,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9E,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9D,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5D,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAClE,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QAEF,qFAAqF;QACrF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CACrC,yBAAyB,EACzB,WAAW,CAAC,QAAQ,CAAC,CACtB,CAAC;QAEF,8FAA8F;QAC9F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CACxC,2BAA2B,EAC3B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CACjE,CAAC;QAEF,+DAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CACxC,+BAA+B,EAC/B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CACjE,CAAC;QAEF,+EAA+E;QAC/E,MAAM,UAAU,GAAG,cAAc,CAAC;YAChC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAClE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC,CAAC;QAEH,mGAAmG;QACnG,8FAA8F;QAC9F,kGAAkG;QAClG,MAAM,cAAc,GAAuB;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,UAAU;YACV,WAAW,EAAE,CACX,KAAa,EACb,YAAyF,EACzF,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;YACrD,OAAO,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YAClF,QAAQ,EAAE,CACR,KAAa,EACb,SAAgE,EAChE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;YAC/C,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5E,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;YACvC,WAAW;SACZ,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAChD,gCAAgC,EAChC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CACnD,CAAC;QAEF,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,CACjB,KAAa,EACb,IAAwB;QAExB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;CACF,CAAA;AAjHY,eAAe;IAD3B,UAAU,EAAE;IA+BR,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;qCALK,WAAW;QACH,YAAY;QACd,UAAU;QACR,YAAY;QACP,iBAAiB;GA7B5C,eAAe,CAiH3B"}
|
|
@@ -10,7 +10,7 @@ import { RevisiumModule } from '../revisium/revisium.module.js';
|
|
|
10
10
|
import { RunnerModule } from '../runners/runner.module.js';
|
|
11
11
|
import { PipelineService } from './develop-task.workflow.js';
|
|
12
12
|
/**
|
|
13
|
-
* PipelineModule — registers PipelineService, which registers the
|
|
13
|
+
* PipelineModule — registers PipelineService, which registers the data-driven pipeline
|
|
14
14
|
* workflow + runStep step + dev-tasks queue with DBOS in its constructor.
|
|
15
15
|
*
|
|
16
16
|
* Imports RunnerModule so RUN_AGENT + IntegratorService are injectable.
|