@revisium/orchestrator 0.1.0 → 0.2.0-alpha.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 +78 -0
- package/control-plane/bootstrap.config.json +43 -1
- package/control-plane/default-playbook/catalog/pipelines.json +1250 -7
- package/control-plane/default-playbook/catalog/roles.json +54 -0
- package/dist/api/graphql-api/graphql-ws/pubsub.module.js +0 -1
- package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -1
- package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js +0 -1
- package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js.map +1 -1
- package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +0 -1
- package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -1
- package/dist/api/graphql-api/inbox/inbox.resolver.js +12 -0
- package/dist/api/graphql-api/inbox/inbox.resolver.js.map +1 -1
- package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js +37 -0
- package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js.map +1 -0
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js +0 -4
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
- package/dist/cli/commands/doctor-report.js +0 -18
- package/dist/cli/commands/doctor-report.js.map +1 -1
- package/dist/cli/commands/lifecycle.js +3 -71
- package/dist/cli/commands/lifecycle.js.map +1 -1
- package/dist/cli/commands/mcp.js +0 -14
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/process-tree.js +4 -26
- package/dist/cli/commands/process-tree.js.map +1 -1
- package/dist/cli/commands/revisium-helpers.js +0 -6
- package/dist/cli/commands/revisium-helpers.js.map +1 -1
- package/dist/cli/commands/rogue-reaper.js +0 -34
- package/dist/cli/commands/rogue-reaper.js.map +1 -1
- package/dist/cli/index.js +0 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/program.js +0 -5
- package/dist/cli/program.js.map +1 -1
- package/dist/config.js +0 -25
- package/dist/config.js.map +1 -1
- package/dist/control-plane/bootstrap.js +0 -28
- package/dist/control-plane/bootstrap.js.map +1 -1
- package/dist/control-plane/change-notifications.js +0 -1
- package/dist/control-plane/change-notifications.js.map +1 -1
- package/dist/control-plane/client-transport.js +0 -11
- package/dist/control-plane/client-transport.js.map +1 -1
- package/dist/control-plane/default-playbook-policy.js +64 -4
- package/dist/control-plane/default-playbook-policy.js.map +1 -1
- package/dist/control-plane/definitions.js +8 -17
- package/dist/control-plane/definitions.js.map +1 -1
- package/dist/control-plane/inbox.js +2 -120
- package/dist/control-plane/inbox.js.map +1 -1
- package/dist/control-plane/resolve-cwd.js +0 -61
- package/dist/control-plane/resolve-cwd.js.map +1 -1
- package/dist/control-plane/schema-migration.js +0 -9
- package/dist/control-plane/schema-migration.js.map +1 -1
- package/dist/control-plane/seed-default-playbook.js +5 -70
- package/dist/control-plane/seed-default-playbook.js.map +1 -1
- package/dist/control-plane/steps.js +0 -15
- package/dist/control-plane/steps.js.map +1 -1
- package/dist/e2e/kit/assertions.js +1 -1
- package/dist/e2e/kit/assertions.js.map +1 -1
- package/dist/engine/dbos.service.js +9 -179
- package/dist/engine/dbos.service.js.map +1 -1
- package/dist/engine/ensure-postgres.js +0 -48
- package/dist/engine/ensure-postgres.js.map +1 -1
- package/dist/features/inbox/commands/handlers/inbox-command.handlers.js +16 -0
- package/dist/features/inbox/commands/handlers/inbox-command.handlers.js.map +1 -1
- package/dist/features/inbox/commands/impl/resolve-gate.command.js +7 -0
- package/dist/features/inbox/commands/impl/resolve-gate.command.js.map +1 -0
- package/dist/features/inbox/commands/index.js +2 -1
- package/dist/features/inbox/commands/index.js.map +1 -1
- package/dist/features/inbox/inbox-api.service.js +4 -0
- package/dist/features/inbox/inbox-api.service.js.map +1 -1
- package/dist/host/daemon.js +2 -21
- package/dist/host/daemon.js.map +1 -1
- package/dist/host/dbos-identity.js +0 -31
- package/dist/host/dbos-identity.js.map +1 -1
- package/dist/host/ensure-host.js +1 -37
- package/dist/host/ensure-host.js.map +1 -1
- package/dist/host/ensure-revisium.js +1 -135
- package/dist/host/ensure-revisium.js.map +1 -1
- package/dist/host/host-runtime.js +0 -28
- package/dist/host/host-runtime.js.map +1 -1
- package/dist/host/host.lifecycle.js +0 -27
- package/dist/host/host.lifecycle.js.map +1 -1
- package/dist/host/queue-ownership.js +0 -42
- package/dist/host/queue-ownership.js.map +1 -1
- package/dist/host/queue-poller-census.js +1 -28
- package/dist/host/queue-poller-census.js.map +1 -1
- package/dist/http/graphql-host.module.js +0 -3
- package/dist/http/graphql-host.module.js.map +1 -1
- package/dist/mcp/mcp-capabilities.js +20 -14
- package/dist/mcp/mcp-capabilities.js.map +1 -1
- package/dist/mcp/mcp-facade.service.js +44 -23
- package/dist/mcp/mcp-facade.service.js.map +1 -1
- package/dist/mcp/mcp-http.service.js +0 -18
- package/dist/mcp/mcp-http.service.js.map +1 -1
- package/dist/mcp/mcp-tools.js +28 -40
- package/dist/mcp/mcp-tools.js.map +1 -1
- package/dist/observability/activity-signal.js +0 -4
- package/dist/observability/activity-signal.js.map +1 -1
- package/dist/observability/agent-activity-reporter.js +0 -4
- package/dist/observability/agent-activity-reporter.js.map +1 -1
- package/dist/pipeline/await-human.js +13 -43
- package/dist/pipeline/await-human.js.map +1 -1
- package/dist/pipeline/data-driven-task.workflow.js +121 -238
- package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
- package/dist/pipeline/data-driven-template.js +0 -25
- package/dist/pipeline/data-driven-template.js.map +1 -1
- package/dist/pipeline/pipeline.module.js +0 -12
- package/dist/pipeline/pipeline.module.js.map +1 -1
- package/dist/pipeline/pipeline.service.js +10 -99
- package/dist/pipeline/pipeline.service.js.map +1 -1
- package/dist/pipeline-core/index.js +1 -13
- package/dist/pipeline-core/index.js.map +1 -1
- package/dist/pipeline-core/interpret.js +21 -94
- package/dist/pipeline-core/interpret.js.map +1 -1
- package/dist/pipeline-core/kit/assertions.js +0 -19
- package/dist/pipeline-core/kit/assertions.js.map +1 -1
- package/dist/pipeline-core/kit/builders.js +2 -21
- package/dist/pipeline-core/kit/builders.js.map +1 -1
- package/dist/pipeline-core/kit/drive.js +1 -31
- package/dist/pipeline-core/kit/drive.js.map +1 -1
- package/dist/pipeline-core/kit/fixtures.js +26 -86
- package/dist/pipeline-core/kit/fixtures.js.map +1 -1
- package/dist/pipeline-core/kit/index.js +0 -8
- package/dist/pipeline-core/kit/index.js.map +1 -1
- package/dist/pipeline-core/types.js +13 -52
- package/dist/pipeline-core/types.js.map +1 -1
- package/dist/pipeline-core/validate-capability.js +0 -3
- package/dist/pipeline-core/validate-capability.js.map +1 -1
- package/dist/pipeline-core/validate-conflicts.js +0 -9
- package/dist/pipeline-core/validate-conflicts.js.map +1 -1
- package/dist/pipeline-core/validate-dataflow.js +2 -21
- package/dist/pipeline-core/validate-dataflow.js.map +1 -1
- package/dist/pipeline-core/validate-diff.js +3 -36
- package/dist/pipeline-core/validate-diff.js.map +1 -1
- package/dist/pipeline-core/validate-edges.js +0 -6
- package/dist/pipeline-core/validate-edges.js.map +1 -1
- package/dist/pipeline-core/validate-graph.js +0 -11
- package/dist/pipeline-core/validate-graph.js.map +1 -1
- package/dist/pipeline-core/validate-loops.js +37 -44
- package/dist/pipeline-core/validate-loops.js.map +1 -1
- package/dist/pipeline-core/validate-parallel.js +9 -15
- package/dist/pipeline-core/validate-parallel.js.map +1 -1
- package/dist/pipeline-core/validate-sink.js +0 -7
- package/dist/pipeline-core/validate-sink.js.map +1 -1
- package/dist/pipeline-core/validate-topology.js +1 -20
- package/dist/pipeline-core/validate-topology.js.map +1 -1
- package/dist/pipeline-core/validate-verdict.js +52 -7
- package/dist/pipeline-core/validate-verdict.js.map +1 -1
- package/dist/pipeline-core/validate.js +5 -29
- package/dist/pipeline-core/validate.js.map +1 -1
- package/dist/playbook/catalog-loader.js +8 -3
- package/dist/playbook/catalog-loader.js.map +1 -1
- package/dist/playbook/import-mapper.js +1 -9
- package/dist/playbook/import-mapper.js.map +1 -1
- package/dist/poller/pr-readiness-core.js +0 -74
- package/dist/poller/pr-readiness-core.js.map +1 -1
- package/dist/revisium/inbox.service.js +0 -24
- package/dist/revisium/inbox.service.js.map +1 -1
- package/dist/revisium/playbooks.service.js +2 -4
- package/dist/revisium/playbooks.service.js.map +1 -1
- package/dist/revisium/revisium.module.js +0 -12
- package/dist/revisium/revisium.module.js.map +1 -1
- package/dist/revisium/roles.service.js +0 -6
- package/dist/revisium/roles.service.js.map +1 -1
- package/dist/revisium/run.service.js +1 -75
- package/dist/revisium/run.service.js.map +1 -1
- package/dist/revisium/tokens.js +0 -4
- package/dist/revisium/tokens.js.map +1 -1
- package/dist/run/append-event.js +0 -34
- package/dist/run/append-event.js.map +1 -1
- package/dist/run/block-run.js.map +1 -1
- package/dist/run/cancel-run.js +0 -33
- package/dist/run/cancel-run.js.map +1 -1
- package/dist/run/complete-run.js.map +1 -1
- package/dist/run/create-run.js +0 -7
- package/dist/run/create-run.js.map +1 -1
- package/dist/run/fail-run.js +0 -3
- package/dist/run/fail-run.js.map +1 -1
- package/dist/run/inspect-run.js +0 -26
- package/dist/run/inspect-run.js.map +1 -1
- package/dist/run/run-outputs.js +0 -19
- package/dist/run/run-outputs.js.map +1 -1
- package/dist/run/terminal-run-status.js +0 -12
- package/dist/run/terminal-run-status.js.map +1 -1
- package/dist/runners/claude-code.service.js +0 -11
- package/dist/runners/claude-code.service.js.map +1 -1
- package/dist/runners/codex.service.js +0 -9
- package/dist/runners/codex.service.js.map +1 -1
- package/dist/runners/gh-identity.js +0 -52
- package/dist/runners/gh-identity.js.map +1 -1
- package/dist/runners/integrator-branch-naming.js +3 -11
- package/dist/runners/integrator-branch-naming.js.map +1 -1
- package/dist/runners/integrator-git.js +0 -25
- package/dist/runners/integrator-git.js.map +1 -1
- package/dist/runners/integrator-remote.js +0 -2
- package/dist/runners/integrator-remote.js.map +1 -1
- package/dist/runners/integrator-types.js +0 -7
- package/dist/runners/integrator-types.js.map +1 -1
- package/dist/runners/integrator.js +44 -176
- package/dist/runners/integrator.js.map +1 -1
- package/dist/runners/runner.module.js +0 -6
- package/dist/runners/runner.module.js.map +1 -1
- package/dist/runners/tokens.js +0 -4
- package/dist/runners/tokens.js.map +1 -1
- package/dist/runners/worktree.service.js +1 -17
- package/dist/runners/worktree.service.js.map +1 -1
- package/dist/task-control-plane/run-watch.service.js +50 -174
- package/dist/task-control-plane/run-watch.service.js.map +1 -1
- package/dist/task-control-plane/task-control-plane-api.service.js +134 -36
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/worker/build-context.js +0 -16
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +9 -42
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/codex-runner.js +88 -22
- package/dist/worker/codex-runner.js.map +1 -1
- package/dist/worker/git-worktree-manager.js +20 -67
- package/dist/worker/git-worktree-manager.js.map +1 -1
- package/dist/worker/process-executor.js +0 -12
- package/dist/worker/process-executor.js.map +1 -1
- package/dist/worker/result-envelope.js +33 -49
- package/dist/worker/result-envelope.js.map +1 -1
- package/dist/worker/runner-dispatch.js +0 -3
- package/dist/worker/runner-dispatch.js.map +1 -1
- package/dist/worker/runner.js.map +1 -1
- package/dist/worker/stub-runner.js +0 -7
- package/dist/worker/stub-runner.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* resolve-cwd.ts — shared B1 contract for resolving the working directory from a repo_ref.
|
|
3
|
-
*
|
|
4
|
-
* B1 CONTRACT — the resolved working directory MUST be an existing directory. We accept:
|
|
5
|
-
* • '' or '.' → base (the workspace cwd)
|
|
6
|
-
* • an ABSOLUTE existing dir → that dir (the external target repo — the MVP case)
|
|
7
|
-
* • a relative path under base → resolve(base, ref), if it stays under base AND exists
|
|
8
|
-
* We REJECT (throw a lesson-bearing error):
|
|
9
|
-
* • a non-existent path → never launch claude in a directory that isn't there
|
|
10
|
-
* • a path that is not a dir → never launch claude against a file
|
|
11
|
-
* • a relative '../…' escape → traversal guard (only relative refs are guarded; an ABSOLUTE
|
|
12
|
-
* ref is taken as the literal target repo, existence-checked).
|
|
13
|
-
*/
|
|
14
1
|
import { resolve, isAbsolute, relative, sep, join } from 'node:path';
|
|
15
2
|
import { existsSync, lstatSync, realpathSync, statSync } from 'node:fs';
|
|
16
3
|
import { toStr } from './steps.js';
|
|
17
|
-
/** Resolve a repo_ref string to an absolute, existing directory path. */
|
|
18
4
|
export async function resolveRepoCwdFromRef(repoRef, base) {
|
|
19
5
|
if (repoRef === '' || repoRef === '.')
|
|
20
6
|
return base;
|
|
@@ -27,10 +13,6 @@ export async function resolveRepoCwdFromRef(repoRef, base) {
|
|
|
27
13
|
throw new Error(`resolveCwd: repo path ${JSON.stringify(resolved)} does not exist or is not a directory ` +
|
|
28
14
|
`— refusing to launch claude`);
|
|
29
15
|
}
|
|
30
|
-
// Symlink escape guard: canonicalize via realpathSync and re-check containment.
|
|
31
|
-
// This prevents a symlink inside the allowed base from pointing outside it.
|
|
32
|
-
// Only applied when the ref is relative (absolute refs designate an external target repo
|
|
33
|
-
// and are accepted as-is — their real path IS the intended target).
|
|
34
16
|
if (!isAbsolute(repoRef)) {
|
|
35
17
|
let realTarget;
|
|
36
18
|
let realBase;
|
|
@@ -39,7 +21,6 @@ export async function resolveRepoCwdFromRef(repoRef, base) {
|
|
|
39
21
|
realBase = realpathSync(base);
|
|
40
22
|
}
|
|
41
23
|
catch {
|
|
42
|
-
// realpathSync throws on non-existent paths — treat as non-existent (same as above check).
|
|
43
24
|
throw new Error(`resolveCwd: repo path ${JSON.stringify(resolved)} does not exist or is not a directory ` +
|
|
44
25
|
`— refusing to launch claude`);
|
|
45
26
|
}
|
|
@@ -58,15 +39,6 @@ async function readRepoRef(da, taskId) {
|
|
|
58
39
|
}
|
|
59
40
|
return toStr(task.data.repo_ref);
|
|
60
41
|
}
|
|
61
|
-
// ─── Per-run worktree isolation (plan 0017) ────────────────────────────────────
|
|
62
|
-
/**
|
|
63
|
-
* Deterministic per-run worktree path: `<dataDir>/worktrees/<runId>`. COMPUTED, never stored —
|
|
64
|
-
* preserving invariant #1 (no durable state in local files; the durable artifact is the pushed
|
|
65
|
-
* branch + DBOS progress, the worktree is execution scratch). Sited under the data dir, NOT inside
|
|
66
|
-
* the target repo, so a live worktree never pollutes the target's own `git status`.
|
|
67
|
-
*/
|
|
68
|
-
/** Guard a value used as a single filesystem path segment — refuse separators / traversal so a
|
|
69
|
-
* malformed runId can never make a worktree path escape `<dataDir>/worktrees/` (release rm's it). */
|
|
70
42
|
function assertPathSegment(value, label) {
|
|
71
43
|
if (value === '' || value === '.' || value === '..' || value.includes('/') || value.includes('\\') || value.includes('..') || value.includes('\0')) {
|
|
72
44
|
throw new Error(`${label} ${JSON.stringify(value)} must be a single safe path segment`);
|
|
@@ -76,22 +48,10 @@ export function worktreePathFor(dataDir, runId) {
|
|
|
76
48
|
assertPathSegment(runId, 'runId');
|
|
77
49
|
return join(dataDir, 'worktrees', runId);
|
|
78
50
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Live-run worktree marker: `<dataDir>/worktrees/<runId>.live`. Its presence means "this run is live
|
|
81
|
-
* and MUST resolve to its worktree". It lets the run resolver FAIL LOUD when a live run's worktree is
|
|
82
|
-
* missing/lost instead of silently falling back to the shared base checkout (which would re-introduce
|
|
83
|
-
* the exact cross-run corruption worktree isolation exists to prevent). Written at create, removed at
|
|
84
|
-
* release.
|
|
85
|
-
*/
|
|
86
51
|
export function worktreeMarkerFor(dataDir, runId) {
|
|
87
52
|
assertPathSegment(runId, 'runId');
|
|
88
53
|
return join(dataDir, 'worktrees', `${runId}.live`);
|
|
89
54
|
}
|
|
90
|
-
/**
|
|
91
|
-
* A path is a usable LINKED git worktree iff it is a directory carrying a `.git` POINTER FILE (a linked
|
|
92
|
-
* worktree's `.git` is a file `gitdir: …`, never a directory). Requiring a file rejects a normal clone's
|
|
93
|
-
* `.git` directory and stale/corrupt paths, so a live run never silently runs effects in an invalid tree.
|
|
94
|
-
*/
|
|
95
55
|
export function isWorktreeDir(path) {
|
|
96
56
|
try {
|
|
97
57
|
return statSync(path).isDirectory() && lstatSync(join(path, '.git')).isFile();
|
|
@@ -100,12 +60,6 @@ export function isWorktreeDir(path) {
|
|
|
100
60
|
return false;
|
|
101
61
|
}
|
|
102
62
|
}
|
|
103
|
-
/**
|
|
104
|
-
* RUN-level resolver (plan 0017) — the cwd for every repo-touching LIVE effect (developer/rework steps
|
|
105
|
-
* + the integrator). Prefers the run's isolated worktree; FAILS LOUD for a live run whose worktree is
|
|
106
|
-
* missing (marker present, worktree gone); falls back to the shared base checkout ONLY for non-live
|
|
107
|
-
* runs (script/stub do no real git, so no worktree/marker is ever created for them).
|
|
108
|
-
*/
|
|
109
63
|
export async function resolveRunCwd(da, dataDir, runId, taskId, base = process.cwd()) {
|
|
110
64
|
const wt = worktreePathFor(dataDir, runId);
|
|
111
65
|
if (isWorktreeDir(wt))
|
|
@@ -116,27 +70,12 @@ export async function resolveRunCwd(da, dataDir, runId, taskId, base = process.c
|
|
|
116
70
|
}
|
|
117
71
|
return resolveRepoCwdFromRef(await readRepoRef(da, taskId), base);
|
|
118
72
|
}
|
|
119
|
-
/**
|
|
120
|
-
* STEP-level resolver (M3, plan 0017) — shape expected by the claude runner: (step) => Promise<string>.
|
|
121
|
-
* Now WORKTREE-AWARE: resolves to the run's isolated worktree (keyed by step.runId) for live runs,
|
|
122
|
-
* else the shared base checkout. Reads tasks.repo_ref via the data-access layer for the fallback.
|
|
123
|
-
*/
|
|
124
73
|
export function makeResolveCwd(da, dataDir, base = process.cwd()) {
|
|
125
74
|
return (step) => resolveRunCwd(da, dataDir, step.runId, step.taskId, base);
|
|
126
75
|
}
|
|
127
|
-
/**
|
|
128
|
-
* RUN-level resolver shape for the integrator: (runId, taskId) => Promise<string>. Same contract as
|
|
129
|
-
* the step resolver but keyed explicitly by runId (concurrent runs share a taskId, so the integrator
|
|
130
|
-
* MUST resolve by runId or two runs collide on one tree).
|
|
131
|
-
*/
|
|
132
76
|
export function makeResolveRunCwd(da, dataDir, base = process.cwd()) {
|
|
133
77
|
return (runId, taskId) => resolveRunCwd(da, dataDir, runId, taskId, base);
|
|
134
78
|
}
|
|
135
|
-
/**
|
|
136
|
-
* TASK-level resolver (M3) — the BASE checkout, keyed by taskId: (taskId: string) => Promise<string>.
|
|
137
|
-
* Used by the LIVE PREFLIGHT, which must run against the user's base checkout BEFORE the worktree is
|
|
138
|
-
* created (its fetch + clean/freshness checks protect the base repo). NOT worktree-aware by design.
|
|
139
|
-
*/
|
|
140
79
|
export function makeResolveTaskCwd(da, base = process.cwd()) {
|
|
141
80
|
return async (taskId) => resolveRepoCwdFromRef(await readRepoRef(da, taskId), base);
|
|
142
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-cwd.js","sourceRoot":"","sources":["../../src/control-plane/resolve-cwd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-cwd.js","sourceRoot":"","sources":["../../src/control-plane/resolve-cwd.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,11 +46,6 @@ function loadBootstrapTables(configPath) {
|
|
|
46
46
|
return [{ id: item.id, schema: item.schema }];
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
/**
|
|
50
|
-
* Apply the bootstrap.config.json table schemas additively onto a caller-provided DRAFT scope:
|
|
51
|
-
* create missing tables, patch additive drift on existing ones. Does NOT commit — the caller owns the
|
|
52
|
-
* scope and commits the whole bootstrap once (one `client.revision('draft')` → tables + rows → commit).
|
|
53
|
-
*/
|
|
54
49
|
export async function applyAdditiveSchemaMigration(draft, configPath) {
|
|
55
50
|
const tables = loadBootstrapTables(configPath);
|
|
56
51
|
const updatedTables = [];
|
|
@@ -61,10 +56,6 @@ export async function applyAdditiveSchemaMigration(draft, configPath) {
|
|
|
61
56
|
currentSchema = await draft.getTableSchema(table.id);
|
|
62
57
|
}
|
|
63
58
|
catch {
|
|
64
|
-
// Table absent on an upgraded control-plane (e.g. `run_outputs`, added in 0016). The previous
|
|
65
|
-
// code only PATCHED existing tables, so a brand-new table would never land on an already-
|
|
66
|
-
// bootstrapped control-plane. Create it from the bootstrap schema (fresh bootstrap already
|
|
67
|
-
// creates every config table; this covers the upgrade path).
|
|
68
59
|
await draft.createTable(table.id, table.schema);
|
|
69
60
|
updatedTables.push(table.id);
|
|
70
61
|
patchCount += 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-migration.js","sourceRoot":"","sources":["../../src/control-plane/schema-migration.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema-migration.js","sourceRoot":"","sources":["../../src/control-plane/schema-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* seed-default-playbook.ts — install the BUILT-IN DEFAULT playbook during `revo bootstrap` (slice 5,
|
|
3
|
-
* plan 0015).
|
|
4
|
-
*
|
|
5
|
-
* The default is DATA, not engine code: a committed playbook source under
|
|
6
|
-
* `control-plane/default-playbook/` (manifest + roles/pipelines catalogs carrying data-driven
|
|
7
|
-
* `template_json`). `revo bootstrap` seeds the control-plane SCHEMA (bootstrap.config.json), then this
|
|
8
|
-
* installs the default playbook so a FRESH control-plane has a working `feature-development` +
|
|
9
|
-
* `local-change` pipeline out-of-the-box — without depending on the external agent-playbook repo.
|
|
10
|
-
*
|
|
11
|
-
* Idempotent: skips when the default playbook is already installed (so re-running bootstrap is a
|
|
12
|
-
* no-op), and tolerates a benign concurrent/duplicate commit ("revision is not a draft").
|
|
13
|
-
*/
|
|
14
1
|
import { join } from 'node:path';
|
|
15
2
|
import { existsSync } from 'node:fs';
|
|
16
3
|
import { repoRoot } from '../config.js';
|
|
@@ -20,19 +7,8 @@ import { readPlaybookManifest } from '../playbook/manifest.js';
|
|
|
20
7
|
import { loadPlaybookCatalogs } from '../playbook/catalog-loader.js';
|
|
21
8
|
import { mapPlaybookRows } from '../playbook/import-mapper.js';
|
|
22
9
|
import { createVersionedMeaningAccess } from './versioned-meaning.js';
|
|
23
|
-
/** Installed row id of the built-in default playbook (distinct from the e2e fixture playbook). */
|
|
24
10
|
export const DEFAULT_PLAYBOOK_ID = 'revisium-default';
|
|
25
|
-
/**
|
|
26
|
-
* Source directory of the committed default playbook. Packaged at the repo/package root (see the
|
|
27
|
-
* package `files` allowlist) so the SHIPPED `revo bootstrap` (running from dist/) resolves it.
|
|
28
|
-
*/
|
|
29
11
|
export const DEFAULT_PLAYBOOK_SOURCE = join(repoRoot, 'control-plane', 'default-playbook');
|
|
30
|
-
/**
|
|
31
|
-
* Compare two `x.y.z` semver strings numerically: returns >0 when `a` is newer, <0 when older, 0 when
|
|
32
|
-
* equal. Missing/non-numeric components read as 0 (so `0.1` == `0.1.0`). We hand-roll this rather than
|
|
33
|
-
* pull in a `semver` dependency: the default playbook only ever carries simple dotted release versions,
|
|
34
|
-
* and an unparsable component degrades to "older" via the missing-version path in the caller.
|
|
35
|
-
*/
|
|
36
12
|
function compareSemver(a, b) {
|
|
37
13
|
const parse = (v) => v.split('.').map((part) => Number.parseInt(part, 10) || 0);
|
|
38
14
|
const left = parse(a);
|
|
@@ -45,55 +21,27 @@ function compareSemver(a, b) {
|
|
|
45
21
|
}
|
|
46
22
|
return 0;
|
|
47
23
|
}
|
|
48
|
-
/**
|
|
49
|
-
* True for a benign "already committed / nothing to do" race during a concurrent bootstrap. Matched
|
|
50
|
-
* narrowly against the explicit duplicate-commit signals (Revisium draft commit + control-plane
|
|
51
|
-
* ROW_CONFLICT) — a generic `already` substring would misclassify unrelated installer failures as a
|
|
52
|
-
* race and silently swallow them.
|
|
53
|
-
*/
|
|
54
24
|
function isBenignInstallRace(err) {
|
|
55
25
|
const message = err instanceof Error ? err.message : String(err);
|
|
56
26
|
return /revision is not a draft|nothing to commit|ROW_CONFLICT/i.test(message);
|
|
57
27
|
}
|
|
58
|
-
|
|
59
|
-
* Recompute the content fingerprint for the bundled default playbook at `source`. Exported so tests
|
|
60
|
-
* can compute the expected hash without a live daemon and pin the "identical content → skip" case.
|
|
61
|
-
* Uses the exact same path as the installer (mapPlaybookRows with nameOverride) so the two hashes
|
|
62
|
-
* are always in sync.
|
|
63
|
-
*/
|
|
64
|
-
export function bundledCatalogHash(source) {
|
|
28
|
+
export function playbookCatalogHash(source, nameOverride = DEFAULT_PLAYBOOK_ID) {
|
|
65
29
|
const resolved = resolvePlaybookSource(source);
|
|
66
30
|
const manifest = readPlaybookManifest(resolved.root);
|
|
67
31
|
const catalogs = loadPlaybookCatalogs(resolved.root, manifest);
|
|
68
|
-
return mapPlaybookRows({ root: resolved.root, source: resolved, manifest, catalogs, nameOverride
|
|
32
|
+
return mapPlaybookRows({ root: resolved.root, source: resolved, manifest, catalogs, nameOverride }).catalogHash;
|
|
33
|
+
}
|
|
34
|
+
export function bundledCatalogHash(source) {
|
|
35
|
+
return playbookCatalogHash(source, DEFAULT_PLAYBOOK_ID);
|
|
69
36
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Install the built-in default playbook if it is not already present, OR re-install (overwrite) it
|
|
72
|
-
* when the bundled content has changed. Returns a status discriminant so the caller can log
|
|
73
|
-
* appropriately; never throws on a benign duplicate-install race.
|
|
74
|
-
*
|
|
75
|
-
* Decision priority (B1 content-hash re-seed):
|
|
76
|
-
* 1. catalogHash present on installed row → compare to bundledCatalogHash(source):
|
|
77
|
-
* - match → skip (content unchanged, any version).
|
|
78
|
-
* - differ → re-seed (the installer upserts by row id).
|
|
79
|
-
* 2. no catalogHash (legacy row predating B1) → fall back to version compare:
|
|
80
|
-
* - bundle NEWER → re-seed.
|
|
81
|
-
* - equal/older → skip (never downgrade).
|
|
82
|
-
* - no version → treat as "0.0.0" → re-seed once so the one-time upgrade lands.
|
|
83
|
-
* `install()` is the same upsert+commit path used for a fresh install, so re-seed is idempotent.
|
|
84
|
-
*/
|
|
85
37
|
export async function seedDefaultPlaybook(installer, source = DEFAULT_PLAYBOOK_SOURCE, log = () => { }) {
|
|
86
38
|
if (!existsSync(source)) {
|
|
87
39
|
throw new Error(`default playbook source not found: ${source}`);
|
|
88
40
|
}
|
|
89
|
-
// `listPlaybooks` is the accurate presence signal: bootstrap seeds role/profile rows but NOT a
|
|
90
|
-
// playbook record, so this is empty until the default playbook is installed.
|
|
91
41
|
const installed = await installer.listPlaybooks();
|
|
92
42
|
const existing = installed.find((p) => p.id === DEFAULT_PLAYBOOK_ID);
|
|
93
43
|
if (existing) {
|
|
94
44
|
if (existing.catalogHash) {
|
|
95
|
-
// Content-hash path (B1): detects any change — catalog records, pipelines, or prompt bodies —
|
|
96
|
-
// without requiring a manual version bump.
|
|
97
45
|
const currentHash = bundledCatalogHash(source);
|
|
98
46
|
if (currentHash === existing.catalogHash) {
|
|
99
47
|
log(`Default playbook ${DEFAULT_PLAYBOOK_ID} content unchanged (hash match) — skipping seed.`);
|
|
@@ -102,8 +50,6 @@ export async function seedDefaultPlaybook(installer, source = DEFAULT_PLAYBOOK_S
|
|
|
102
50
|
log(`Default playbook ${DEFAULT_PLAYBOOK_ID} content changed (hash mismatch) — re-seeding.`);
|
|
103
51
|
}
|
|
104
52
|
else {
|
|
105
|
-
// Legacy fallback: row predates the B1 content-hash signal; compare by version so pre-B1
|
|
106
|
-
// installs still get re-seeded when the bundle version advances.
|
|
107
53
|
const bundledVersion = resolvePlaybookSource(source).version;
|
|
108
54
|
const installedVersion = existing.version ?? '';
|
|
109
55
|
const comparison = compareSemver(bundledVersion, installedVersion || '0.0.0');
|
|
@@ -126,23 +72,12 @@ export async function seedDefaultPlaybook(installer, source = DEFAULT_PLAYBOOK_S
|
|
|
126
72
|
throw err;
|
|
127
73
|
}
|
|
128
74
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Default-daemon installer adapter used by `revo bootstrap`: a minimal {@link DefaultPlaybookInstaller}
|
|
131
|
-
* backed by the live draft scope (the same versioned-meaning access the `revo playbook install` CLI
|
|
132
|
-
* uses). Reads the installed playbooks list from HEAD via the provided reader.
|
|
133
|
-
*/
|
|
134
75
|
export function createDaemonInstaller(listPlaybooks) {
|
|
135
76
|
return {
|
|
136
77
|
listPlaybooks,
|
|
137
78
|
install: (options) => new PlaybookInstaller({ access: createVersionedMeaningAccess({}) }).install(options),
|
|
138
79
|
};
|
|
139
80
|
}
|
|
140
|
-
/**
|
|
141
|
-
* Run {@link seedDefaultPlaybook} as a BEST-EFFORT step: report the outcome but never throw. The
|
|
142
|
-
* schema is the critical bootstrap artifact; a playbook-seed failure must not fail stack bring-up
|
|
143
|
-
* (it is logged so the operator can re-run the install). `runSeed`/`log` are injected so the logging
|
|
144
|
-
* policy is unit-testable without a live daemon.
|
|
145
|
-
*/
|
|
146
81
|
export async function seedDefaultPlaybookBestEffort(runSeed, log = (message) => console.error(message)) {
|
|
147
82
|
try {
|
|
148
83
|
const outcome = await runSeed();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-default-playbook.js","sourceRoot":"","sources":["../../src/control-plane/seed-default-playbook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"seed-default-playbook.js","sourceRoot":"","sources":["../../src/control-plane/seed-default-playbook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Step types + deterministic id / format helpers for the control plane.
|
|
3
|
-
*
|
|
4
|
-
* NOTE: the legacy step-lifecycle verbs (`claimNextStep`/`startAttempt`/`writeResult`/`failStep`/
|
|
5
|
-
* `recoverInFlight`/`createSteps`) were the pre-pivot dumb-loop step queue. They are superseded by the
|
|
6
|
-
* DBOS-driven data-driven engine and were removed (audit §2.1). What remains here is the `Step` shape the
|
|
7
|
-
* runner machinery still consumes (synthesized in-memory by the engine — `RunService.loadPipelineContext` —
|
|
8
|
-
* not read from a `steps` row) plus a few pure id / format helpers reused across the run / inbox / pipeline
|
|
9
|
-
* layers.
|
|
10
|
-
*/
|
|
11
|
-
// ─── id / format helpers ─────────────────────────────────────
|
|
12
1
|
export function compactStamp(date) {
|
|
13
2
|
const pad = (v, l = 2) => String(v).padStart(l, '0');
|
|
14
3
|
return [
|
|
@@ -23,10 +12,6 @@ export function compactStamp(date) {
|
|
|
23
12
|
'Z',
|
|
24
13
|
].join('');
|
|
25
14
|
}
|
|
26
|
-
// Non-cryptographic FNV-1a 64-bit hash → 16 hex chars. Used to derive DETERMINISTIC, BOUNDED row ids
|
|
27
|
-
// (same input → same id, so a crash-retry is idempotent) that fit Revisium's 64-char rowId limit:
|
|
28
|
-
// `inbox_`/`event_`/`cost_`/`attempt_`/`out_`/`step_` + 16 hex stays well under the cap. Not crypto, so
|
|
29
|
-
// it does not trip the weak-hash security hotspot.
|
|
30
15
|
export function fnv1a64Hex(input) {
|
|
31
16
|
let hash = 0xcbf29ce484222325n;
|
|
32
17
|
const prime = 0x100000001b3n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/control-plane/steps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/control-plane/steps.ts"],"names":[],"mappings":"AAmDA,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO;QACL,IAAI,CAAC,cAAc,EAAE;QACrB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACjC,GAAG;KACJ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,IAAI,GAAG,mBAAmB,CAAC;IAC/B,MAAM,KAAK,GAAG,cAAc,CAAC;IAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAU;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -36,7 +36,7 @@ export async function assertEventsPresent(api, runId, types) {
|
|
|
36
36
|
}
|
|
37
37
|
// Deterministic fallback for terminal events: under load the run-row status can become visible before
|
|
38
38
|
// the event query sees the terminal event. The run STATUS is the authoritative signal observed by
|
|
39
|
-
//
|
|
39
|
+
// terminal waiters, so accept matching terminal statuses after the event poll.
|
|
40
40
|
let terminalStatus = '';
|
|
41
41
|
const terminalFallbacks = new Map([
|
|
42
42
|
['run_completed', 'completed'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/e2e/kit/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAGxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAI7E,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAQ,EAAE,KAAa;IAC3D,oGAAoG;IACpG,qGAAqG;IACrG,qFAAqF;IACrF,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;QACxF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAQ,EAAE,KAAa,EAAE,QAAkB;IACrF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,sCAAsC,CAAC,CAAC;IACvH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;2GAI2G;AAC3G,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAQ,EAAE,KAAa,EAAE,KAAe;IAChF,sGAAsG;IACtG,+FAA+F;IAC/F,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;IACnF,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;QAC3E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,sGAAsG;IACtG,kGAAkG;IAClG
|
|
1
|
+
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/e2e/kit/assertions.ts"],"names":[],"mappings":"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"}
|