@revisium/orchestrator 0.1.0-alpha.9 → 0.2.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +210 -146
- package/control-plane/bootstrap.config.json +43 -1
- package/control-plane/default-playbook/catalog/pipelines.json +1157 -10
- package/control-plane/default-playbook/catalog/roles.json +54 -0
- package/control-plane/default-playbook/package.json +1 -1
- package/control-plane/default-playbook/prompts/developer.md +1 -0
- package/control-plane/default-playbook/prompts/triager.md +3 -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/graphql-ws/subscription-mappers.js +3 -0
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js +26 -0
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
- package/dist/api/graphql-api/runs/inputs/create-run.input.js +6 -0
- package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
- package/dist/api/graphql-api/runs/model/run.model.js +6 -0
- package/dist/api/graphql-api/runs/model/run.model.js.map +1 -1
- package/dist/api/graphql-api/share/model/issue-ref.model.js +53 -0
- package/dist/api/graphql-api/share/model/issue-ref.model.js.map +1 -0
- 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 +12 -27
- 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 +1 -12
- package/dist/control-plane/client-transport.js.map +1 -1
- package/dist/control-plane/default-playbook-policy.js +593 -0
- package/dist/control-plane/default-playbook-policy.js.map +1 -0
- 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 +50 -46
- 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/agents.js +15 -21
- package/dist/e2e/kit/agents.js.map +1 -1
- package/dist/e2e/kit/assertions.js +12 -8
- package/dist/e2e/kit/assertions.js.map +1 -1
- package/dist/e2e/kit/fake-integrator.js +11 -2
- package/dist/e2e/kit/fake-integrator.js.map +1 -1
- package/dist/e2e/kit/git-target-repo.js +1 -1
- package/dist/engine/dbos.service.js +12 -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/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
- package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
- package/dist/features/runs/queries/handlers/runs-query.handlers.js +1 -0
- package/dist/features/runs/queries/handlers/runs-query.handlers.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 +23 -5
- package/dist/mcp/mcp-capabilities.js.map +1 -1
- package/dist/mcp/mcp-facade.service.js +335 -22
- 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 +41 -36
- package/dist/mcp/mcp-tools.js.map +1 -1
- package/dist/observability/activity-signal.js +103 -0
- package/dist/observability/activity-signal.js.map +1 -0
- package/dist/observability/agent-activity-reporter.js +0 -4
- package/dist/observability/agent-activity-reporter.js.map +1 -1
- package/dist/observability/index.js +1 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/pipeline/await-human.js +0 -40
- package/dist/pipeline/await-human.js.map +1 -1
- package/dist/pipeline/data-driven-task.workflow.js +563 -251
- 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 +194 -189
- package/dist/pipeline/pipeline.service.js.map +1 -1
- package/dist/pipeline/route-contract.js +4 -3
- package/dist/pipeline/route-contract.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 +1 -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 +78 -101
- 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 +0 -17
- 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 +4 -5
- package/dist/playbook/import-mapper.js.map +1 -1
- package/dist/poller/pr-readiness-core.js +226 -29
- 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 +15 -2
- 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 +2 -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 +6 -37
- 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 +5 -8
- 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 +10 -29
- package/dist/run/inspect-run.js.map +1 -1
- package/dist/run/issue-ref.js +88 -0
- package/dist/run/issue-ref.js.map +1 -0
- 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 +2 -13
- package/dist/runners/claude-code.service.js.map +1 -1
- package/dist/runners/codex.service.js +2 -11
- 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 +16 -19
- 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 +231 -230
- 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 +3 -19
- package/dist/runners/worktree.service.js.map +1 -1
- package/dist/task-control-plane/pr-readiness.service.js +15 -13
- package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
- package/dist/task-control-plane/run-watch.service.js +170 -63
- package/dist/task-control-plane/run-watch.service.js.map +1 -1
- package/dist/task-control-plane/task-control-plane-api.service.js +285 -40
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/worker/artifact-store.js +21 -3
- package/dist/worker/artifact-store.js.map +1 -1
- package/dist/worker/build-context.js +10 -10
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +76 -48
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/codex-runner.js +128 -35
- 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 +144 -27
- 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-common.js +29 -0
- package/dist/worker/runner-common.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 +16 -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbos.service.js","sourceRoot":"","sources":["../../src/engine/dbos.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dbos.service.js","sourceRoot":"","sources":["../../src/engine/dbos.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ensurePostgres() — creates the `dbos` database in Revisium's embedded Postgres if absent.
|
|
3
|
-
*
|
|
4
|
-
* Idempotent: checks pg_database first; only issues CREATE DATABASE when absent.
|
|
5
|
-
* Uses the pid-proven pg port from runtime.json (never hardcodes it — ADR-0001 #4).
|
|
6
|
-
*
|
|
7
|
-
* PG creds default: `revisium`/`password` — confirmed from @revisium/standalone 2.8.2 (F5).
|
|
8
|
-
* Kept parameterized so a future config change is one line.
|
|
9
|
-
*
|
|
10
|
-
* Race safety (F17): Two concurrent first-run hosts may both observe count=0 and both issue
|
|
11
|
-
* CREATE DATABASE. PostgreSQL raises SQLSTATE 42P04 (duplicate_database) for the loser.
|
|
12
|
-
* We catch 42P04 and treat it as success — the database now exists, which is the desired
|
|
13
|
-
* postcondition. All other errors are re-thrown verbatim.
|
|
14
|
-
*
|
|
15
|
-
* Testability (F20): ensurePostgres accepts an optional `deps.createClient` factory so tests
|
|
16
|
-
* can inject a fake client that exercises the real 42P04 catch / SELECT fast-path without a
|
|
17
|
-
* live Postgres. The production default constructs a real `pg.Client`.
|
|
18
|
-
*/
|
|
19
1
|
import pg from 'pg';
|
|
20
2
|
import { PROFILES, resolveProfileName } from '../config.js';
|
|
21
|
-
/**
|
|
22
|
-
* DBOS system-database name. `REVO_DBOS_DB` overrides; otherwise it falls back to the active
|
|
23
|
-
* profile's db (default `dbos`, dev `dbos_dev`) so a profiled host keeps its DBOS progress separate.
|
|
24
|
-
* Validated to a safe identifier because the name is interpolated into a non-parameterizable
|
|
25
|
-
* `CREATE DATABASE` (CREATE DATABASE cannot bind params).
|
|
26
|
-
*/
|
|
27
3
|
export function resolveDbosDbName() {
|
|
28
4
|
const name = process.env['REVO_DBOS_DB'] ?? PROFILES[resolveProfileName()].dbosDb;
|
|
29
5
|
if (!/^[a-z_][a-z0-9_]*$/i.test(name)) {
|
|
@@ -32,25 +8,15 @@ export function resolveDbosDbName() {
|
|
|
32
8
|
return name;
|
|
33
9
|
}
|
|
34
10
|
const MAINTENANCE_DB = 'postgres';
|
|
35
|
-
/** PostgreSQL SQLSTATE for "database already exists" (duplicate_database). */
|
|
36
11
|
const PG_SQLSTATE_DUPLICATE_DATABASE = '42P04';
|
|
37
12
|
const DEFAULT_CREDS = {
|
|
38
13
|
user: 'revisium',
|
|
39
14
|
password: 'password',
|
|
40
15
|
adminDb: MAINTENANCE_DB,
|
|
41
16
|
};
|
|
42
|
-
/**
|
|
43
|
-
* Ensure the `dbos` database exists on the Revisium embedded Postgres.
|
|
44
|
-
* @param pgPort - The pid-proven pg port from runtime.json.
|
|
45
|
-
* @param opts - Optional credential overrides (default: revisium/password).
|
|
46
|
-
* @param deps - Optional injectable dependencies for testing (F20).
|
|
47
|
-
*/
|
|
48
17
|
export async function ensurePostgres(pgPort, opts = {}, deps = {}) {
|
|
49
18
|
const dbosDbName = resolveDbosDbName();
|
|
50
19
|
const { user, password, adminDb } = { ...DEFAULT_CREDS, ...opts };
|
|
51
|
-
// pg.Client.connect() returns Promise<Client> while ClientLike.connect() returns
|
|
52
|
-
// Promise<void>; they are structurally compatible at the call sites used here, but
|
|
53
|
-
// TypeScript requires an explicit cast via unknown to bridge the return-type difference.
|
|
54
20
|
const pgClientFactory = () => new pg.Client({ host: 'localhost', port: pgPort, user, password, database: adminDb });
|
|
55
21
|
const createClient = deps.createClient ?? pgClientFactory;
|
|
56
22
|
const client = createClient();
|
|
@@ -59,16 +25,11 @@ export async function ensurePostgres(pgPort, opts = {}, deps = {}) {
|
|
|
59
25
|
const result = await client.query(`SELECT count(*)::text AS count FROM pg_database WHERE datname = $1`, [dbosDbName]);
|
|
60
26
|
const exists = result.rows[0]?.count !== '0';
|
|
61
27
|
if (!exists) {
|
|
62
|
-
// CREATE DATABASE cannot be parameterized; `dbos` is a fixed literal with no injection surface.
|
|
63
|
-
// Race backstop (F17): if two hosts both observed count=0 and both issue CREATE DATABASE,
|
|
64
|
-
// PostgreSQL raises 42P04 (duplicate_database) for the loser. Treat it as success
|
|
65
|
-
// (idempotent — the database now exists). Re-throw any other error.
|
|
66
28
|
try {
|
|
67
29
|
await client.query(`CREATE DATABASE ${dbosDbName}`);
|
|
68
30
|
}
|
|
69
31
|
catch (err) {
|
|
70
32
|
if (err.code === PG_SQLSTATE_DUPLICATE_DATABASE) {
|
|
71
|
-
// Another concurrent host already created it — this is fine.
|
|
72
33
|
return;
|
|
73
34
|
}
|
|
74
35
|
throw err;
|
|
@@ -79,15 +40,6 @@ export async function ensurePostgres(pgPort, opts = {}, deps = {}) {
|
|
|
79
40
|
await client.end();
|
|
80
41
|
}
|
|
81
42
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Build the DBOS system database URL from the pid-proven pg port.
|
|
84
|
-
* Single place; never hardcodes the port.
|
|
85
|
-
*
|
|
86
|
-
* CR4: user and password are percent-encoded via encodeURIComponent so that
|
|
87
|
-
* reserved characters (e.g. '@', ':', '/', '%') do not break the URI.
|
|
88
|
-
* The default credentials ('revisium'/'password') contain no reserved chars
|
|
89
|
-
* and encode to themselves, so existing behaviour is unchanged.
|
|
90
|
-
*/
|
|
91
43
|
export function dbosSystemDatabaseUrl(pgPort, user = 'revisium', password = 'password') {
|
|
92
44
|
return `postgresql://${encodeURIComponent(user)}:${encodeURIComponent(password)}@localhost:${pgPort}/${resolveDbosDbName()}`;
|
|
93
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-postgres.js","sourceRoot":"","sources":["../../src/engine/ensure-postgres.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensure-postgres.js","sourceRoot":"","sources":["../../src/engine/ensure-postgres.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAM5D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;IAClF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,qDAAqD,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,cAAc,GAAG,UAAU,CAAC;AAGlC,MAAM,8BAA8B,GAAG,OAAO,CAAC;AAQ/C,MAAM,aAAa,GAAwB;IACzC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,cAAc;CACxB,CAAC;AAoBF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,OAAqC,EAAE,EACvC,OAA2B,EAAE;IAE7B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,IAAI,EAAE,CAAC;IAClE,MAAM,eAAe,GAAG,GAAe,EAAE,CACvC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAA0B,CAAC;IACjH,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,eAAe,CAAC;IAE1D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,oEAAoE,EACpE,CAAC,UAAU,CAAC,CACb,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,GAAG,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAAyB,CAAC,IAAI,KAAK,8BAA8B,EAAE,CAAC;oBACvE,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AASD,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,IAAI,GAAG,UAAU,EACjB,QAAQ,GAAG,UAAU;IAErB,OAAO,gBAAgB,kBAAkB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,cAAc,MAAM,IAAI,iBAAiB,EAAE,EAAE,CAAC;AAC/H,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-pr-readiness.query.js","sourceRoot":"","sources":["../../../../../src/features/pr/queries/impl/get-pr-readiness.query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-pr-readiness.query.js","sourceRoot":"","sources":["../../../../../src/features/pr/queries/impl/get-pr-readiness.query.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,mBAAmB;IACT;IAArB,YAAqB,IAA6B;QAA7B,SAAI,GAAJ,IAAI,CAAyB;IAAG,CAAC;CACvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-run.command.js","sourceRoot":"","sources":["../../../../../src/features/runs/commands/impl/create-run.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-run.command.js","sourceRoot":"","sources":["../../../../../src/features/runs/commands/impl/create-run.command.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,gBAAgB;IACN;IAArB,YAAqB,IAA0B;QAA1B,SAAI,GAAJ,IAAI,CAAsB;IAAG,CAAC;CACpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs-query.handlers.js","sourceRoot":"","sources":["../../../../../src/features/runs/queries/handlers/runs-query.handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runs-query.handlers.js","sourceRoot":"","sources":["../../../../../src/features/runs/queries/handlers/runs-query.handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/host/daemon.js
CHANGED
|
@@ -10,21 +10,12 @@ import { TaskControlPlaneApiService } from '../task-control-plane/task-control-p
|
|
|
10
10
|
import { APP_PUB_SUB } from '../api/graphql-api/graphql-ws/constants.js';
|
|
11
11
|
import { hostCodeVersion, removeHostRuntimeIfMatches, writeHostRuntime } from './host-runtime.js';
|
|
12
12
|
import { acquireQueueOwnership } from './queue-ownership.js';
|
|
13
|
-
/** MCP endpoint port: REVO_MCP_PORT, else the GraphQL port + 1 (kept in the profile band). */
|
|
14
13
|
function resolveMcpPort(graphqlPort) {
|
|
15
14
|
const env = process.env['REVO_MCP_PORT'];
|
|
16
15
|
return env && /^\d+$/.test(env.trim()) ? Number(env.trim()) : graphqlPort + 1;
|
|
17
16
|
}
|
|
18
|
-
/** The detached host-daemon entrypoint (spawned by ensureHost): boot the stack, then serve + stay alive. */
|
|
19
17
|
export async function runHostDaemon() {
|
|
20
|
-
// 1. Standalone up first, then 2. all control-plane writes via fresh client scopes — BEFORE the
|
|
21
|
-
// service layer (startGraphqlHost) caches its read scope, so same-boot reads see a ready control-plane.
|
|
22
18
|
const { runtime } = await ensureRevisium();
|
|
23
|
-
// Singleton gate (slice 139): exactly ONE host daemon per profile may own + poll the dev-tasks
|
|
24
|
-
// queue. Acquired here — BEFORE DBOS.launch()/queue polling (startGraphqlHost) — so a daemon that
|
|
25
|
-
// lost a concurrent cold-start race exits cleanly without ever touching the queue; ensureHost then
|
|
26
|
-
// attaches to the winner via host.json. Crash-safe: the connection-scoped advisory lock frees itself
|
|
27
|
-
// if this process dies.
|
|
28
19
|
const ownership = await acquireQueueOwnership(getConfig().profile, runtime.pgPort);
|
|
29
20
|
if (!ownership.owned) {
|
|
30
21
|
console.error(`[host] profile "${getConfig().profile}" is already owned by another daemon — exiting; the owner serves the queue.`);
|
|
@@ -32,20 +23,11 @@ export async function runHostDaemon() {
|
|
|
32
23
|
}
|
|
33
24
|
await bootstrapControlPlane(runtime.httpPort);
|
|
34
25
|
await seedDefaultPlaybookBestEffort(() => seedDefaultPlaybook(createDaemonInstaller(() => listInstalledPlaybooks(runtime.httpPort))));
|
|
35
|
-
// 3. Now bring up the Nest/GraphQL/DBOS layer (HostLifecycle re-ensures Revisium = no-op).
|
|
36
26
|
const started = await startGraphqlHost();
|
|
37
|
-
// 4. MCP front door + 5. host.json. Wrapped so a failure AFTER startGraphqlHost (DBOS already
|
|
38
|
-
// launched) never leaves a live DBOS owner without host.json: on error we close the MCP server +
|
|
39
|
-
// Nest app (→ DBOS.shutdown) and exit non-zero, so ensureHost reports the failure, not a zombie.
|
|
40
27
|
let mcpServer;
|
|
41
28
|
try {
|
|
42
|
-
// Build the MCP facade from the DI-resolved TaskControlPlaneApiService (the surface the GraphQL
|
|
43
|
-
// resolvers use): resolving McpFacadeService itself via app.get left its injected `api` undefined.
|
|
44
29
|
const mcpPort = resolveMcpPort(started.port);
|
|
45
30
|
const api = started.app.get(TaskControlPlaneApiService, { strict: false });
|
|
46
|
-
// Option A (slice 141 D2): give the watch primitive APP_PUB_SUB so a gate/terminal wakes a held
|
|
47
|
-
// long-poll instead of polling. PubSubModule is @Global, so it resolves off the started handle; if
|
|
48
|
-
// it can't, RunWatchService degrades to its internal poll (option B) — same correctness.
|
|
49
31
|
let watchPubSub;
|
|
50
32
|
try {
|
|
51
33
|
watchPubSub = started.app.get(APP_PUB_SUB, { strict: false });
|
|
@@ -57,7 +39,6 @@ export async function runHostDaemon() {
|
|
|
57
39
|
mcpServer = await new McpHttpService(new McpFacadeService(api, runWatch)).start(mcpPort);
|
|
58
40
|
const startedAt = new Date().toISOString();
|
|
59
41
|
const snapshot = { pid: process.pid, startedAt };
|
|
60
|
-
// host.json is written LAST — its presence is the "fully ready" signal ensureHost waits on.
|
|
61
42
|
writeHostRuntime({
|
|
62
43
|
pid: process.pid,
|
|
63
44
|
graphqlPort: started.port,
|
|
@@ -74,11 +55,11 @@ export async function runHostDaemon() {
|
|
|
74
55
|
closing = true;
|
|
75
56
|
runningMcp.close();
|
|
76
57
|
started.app
|
|
77
|
-
.close()
|
|
58
|
+
.close()
|
|
78
59
|
.catch(() => undefined)
|
|
79
60
|
.finally(() => {
|
|
80
61
|
ownership
|
|
81
|
-
.release()
|
|
62
|
+
.release()
|
|
82
63
|
.catch(() => undefined)
|
|
83
64
|
.finally(() => {
|
|
84
65
|
removeHostRuntimeIfMatches(snapshot);
|
package/dist/host/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/host/daemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/host/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pinned DBOS identity for the host daemon (slice 140, Part A Layer 2).
|
|
3
|
-
*
|
|
4
|
-
* DBOS derives two identifiers from the environment AT IMPORT TIME (dbos-sdk `utils.js` `globalParams`
|
|
5
|
-
* is a module-level literal: `executorID = process.env.DBOS__VMID || 'local'`,
|
|
6
|
-
* `appVersion = process.env.DBOS__APPVERSION || ''`). Left unset, every daemon is `executorID='local'`
|
|
7
|
-
* with a source-MD5 appVersion — indistinguishable in `pg_stat_activity` and brittle across releases.
|
|
8
|
-
* We pin both, so:
|
|
9
|
-
* - executorID = `revo-<profile>` makes each daemon's DBOS connections self-identifying in
|
|
10
|
-
* `pg_stat_activity.application_name` (`dbos_transact_<executorID>_<appVersion>`), which is the
|
|
11
|
-
* ONLY way `revo doctor` can see a rogue/legacy poller that holds no inbound port.
|
|
12
|
-
* - appVersion = a value WE control, decoupled from the npm release version. DBOS recovery keys on
|
|
13
|
-
* a HARD `application_version` equality, so a per-release version would strand in-flight PENDING
|
|
14
|
-
* work on every alpha bump. Pinning a stable workflow version keeps recovery working across a
|
|
15
|
-
* routine upgrade; it is bumped ONLY when the durable workflow/step SOURCE actually changes.
|
|
16
|
-
*
|
|
17
|
-
* Because `globalParams` is read at import time, the pin must be present in the daemon process's
|
|
18
|
-
* environment from the start — it is applied to the detached child's env in `ensure-host.spawnDaemon`,
|
|
19
|
-
* never mutated after the dbos-sdk module has loaded.
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Pinned DBOS `appVersion`. NOT the npm package version — bump this ONLY when the durable DBOS
|
|
23
|
-
* workflow/step function SOURCE changes (which moves the recovery/dequeue version boundary). A routine
|
|
24
|
-
* release that does not touch workflow-step code keeps this value so in-flight work recovers cleanly.
|
|
25
|
-
*/
|
|
26
1
|
export const DBOS_WORKFLOW_VERSION = '1';
|
|
27
|
-
/** Stable per-profile DBOS executor id (`revo-<profile>`) — the owner identity the census matches on. */
|
|
28
2
|
export function dbosExecutorId(profile) {
|
|
29
3
|
return `revo-${profile}`;
|
|
30
4
|
}
|
|
31
|
-
/**
|
|
32
|
-
* The `DBOS__VMID` / `DBOS__APPVERSION` env pin for a profile's daemon. An explicitly-SET value in
|
|
33
|
-
* `env` wins (so a custom layout / test can override) — including an explicit empty string, hence `??`
|
|
34
|
-
* not `||`; only an absent (undefined) var falls back to the pinned defaults.
|
|
35
|
-
*/
|
|
36
5
|
export function dbosEnvPin(profile, env = process.env) {
|
|
37
6
|
return {
|
|
38
7
|
DBOS__VMID: env['DBOS__VMID'] ?? dbosExecutorId(profile),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbos-identity.js","sourceRoot":"","sources":["../../src/host/dbos-identity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dbos-identity.js","sourceRoot":"","sources":["../../src/host/dbos-identity.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAGzC,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,QAAQ,OAAO,EAAE,CAAC;AAC3B,CAAC;AAKD,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO;QACL,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC;QACxD,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,CAAC,IAAI,qBAAqB;KACnE,CAAC;AACJ,CAAC"}
|
package/dist/host/ensure-host.js
CHANGED
|
@@ -1,30 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ensureHost() — attach-or-spawn the long-lived Revo host daemon (ADR 0006), mirroring the
|
|
3
|
-
* three-state model of ensureRevisium:
|
|
4
|
-
* 1. HEALTHY → attach, return alreadyRunning=true.
|
|
5
|
-
* 2. ALIVE BUT UNHEALTHY → wait for it to finish booting; never spawn a duplicate (the GraphQL
|
|
6
|
-
* port would collide), then throw if it stays unhealthy.
|
|
7
|
-
* 3. NO LIVE DAEMON → spawn detached + unref, wait for GraphQL health.
|
|
8
|
-
*
|
|
9
|
-
* The daemon is the single DBOS owner; this helper is the ONLY way the stack acquires a host.
|
|
10
|
-
*/
|
|
11
1
|
import { spawn } from 'node:child_process';
|
|
12
2
|
import { closeSync, openSync } from 'node:fs';
|
|
13
3
|
import { getConfig, isAlive, resolveDefaultGraphqlPort } from '../config.js';
|
|
14
4
|
import { hostCodeVersion, isHostRunning, readHostRuntime, removeHostRuntime, } from './host-runtime.js';
|
|
15
5
|
import { dbosEnvPin } from './dbos-identity.js';
|
|
16
6
|
const DEFAULT_TIMEOUT_MS = 120_000;
|
|
17
|
-
/** Budget to let an alive-but-not-yet-healthy daemon finish booting before giving up. */
|
|
18
7
|
const DEFAULT_RECHECK_MS = 20_000;
|
|
19
8
|
const POLL_INTERVAL_MS = 300;
|
|
20
|
-
/** The GraphQL port the daemon listens on — must match startGraphqlHost's resolution. */
|
|
21
9
|
export function expectedGraphqlPort() {
|
|
22
10
|
const env = process.env['REVO_GRAPHQL_PORT'];
|
|
23
11
|
if (env && /^\d+$/.test(env.trim()))
|
|
24
12
|
return Number(env.trim());
|
|
25
13
|
return resolveDefaultGraphqlPort();
|
|
26
14
|
}
|
|
27
|
-
/** GraphQL liveness probe: the daemon answers a trivial query on its port. */
|
|
28
15
|
export async function isGraphqlHealthy(port) {
|
|
29
16
|
try {
|
|
30
17
|
const res = await fetch(`http://127.0.0.1:${port}/graphql`, {
|
|
@@ -39,11 +26,6 @@ export async function isGraphqlHealthy(port) {
|
|
|
39
26
|
return false;
|
|
40
27
|
}
|
|
41
28
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Ready = `host.json` present with a LIVE pid AND GraphQL answering. The daemon writes host.json
|
|
44
|
-
* last (after the control-plane bootstrap), so readiness implies the whole stack is usable — not
|
|
45
|
-
* merely that the GraphQL socket is open.
|
|
46
|
-
*/
|
|
47
29
|
async function waitForReady(timeoutMs) {
|
|
48
30
|
const deadline = Date.now() + timeoutMs;
|
|
49
31
|
for (;;) {
|
|
@@ -55,11 +37,6 @@ async function waitForReady(timeoutMs) {
|
|
|
55
37
|
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
56
38
|
}
|
|
57
39
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Build the argv to re-invoke THIS CLI as the detached daemon. Handles dev (tsx running the `.ts`
|
|
60
|
-
* source — node needs the tsx loader) vs prod (node running the compiled `.js` entry directly).
|
|
61
|
-
* `entry` defaults to this process's script; it is a parameter so the dev/prod split is unit-testable.
|
|
62
|
-
*/
|
|
63
40
|
export function daemonSpawnArgv(entry = process.argv[1]) {
|
|
64
41
|
const daemonArgs = ['__daemon'];
|
|
65
42
|
if (entry.endsWith('.ts')) {
|
|
@@ -70,44 +47,31 @@ export function daemonSpawnArgv(entry = process.argv[1]) {
|
|
|
70
47
|
function spawnDaemon() {
|
|
71
48
|
const out = openSync(getConfig().hostLogFile, 'a');
|
|
72
49
|
const [cmd, args] = daemonSpawnArgv();
|
|
73
|
-
// env inheritance carries the resolved profile (REVO_PROFILE / REVO_* knobs) to the daemon, PLUS the
|
|
74
|
-
// pinned DBOS identity (DBOS__VMID/DBOS__APPVERSION). dbos-sdk reads those at IMPORT time, so they
|
|
75
|
-
// must be in the child's env from the start — set here, never mutated after launch (slice 140).
|
|
76
50
|
const env = { ...process.env, ...dbosEnvPin(getConfig().profile, process.env) };
|
|
77
51
|
const child = spawn(cmd, args, { detached: true, stdio: ['ignore', out, out], env });
|
|
78
52
|
closeSync(out);
|
|
79
53
|
if (!child.pid)
|
|
80
54
|
throw new Error('Failed to spawn Revo host daemon: spawn returned no pid');
|
|
81
|
-
child.unref();
|
|
55
|
+
child.unref();
|
|
82
56
|
}
|
|
83
|
-
/** Attach to the running host daemon, or spawn one if absent — the only way the stack acquires a host. */
|
|
84
57
|
export async function ensureHost(options = {}) {
|
|
85
58
|
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
86
59
|
const recheckMs = options.recheckMs ?? DEFAULT_RECHECK_MS;
|
|
87
60
|
const existing = readHostRuntime();
|
|
88
61
|
if (existing && isHostRunning()) {
|
|
89
62
|
if (await isGraphqlHealthy(existing.graphqlPort)) {
|
|
90
|
-
// Version-check (slice 139): surface a daemon running a DIFFERENT build than this install so it
|
|
91
|
-
// can't silently serve stale behavior. We warn (not auto-kill) to avoid disrupting in-flight runs;
|
|
92
|
-
// `revo restart` (or `doctor`) replaces it. A 0.0.0 dev checkout doesn't change version → no warn.
|
|
93
63
|
if (existing.version !== undefined && existing.version !== hostCodeVersion()) {
|
|
94
64
|
console.warn(`[host] attached to a daemon running version ${existing.version}, but this build is ` +
|
|
95
65
|
`${hostCodeVersion()} — run \`revo restart\` to replace the stale daemon.`);
|
|
96
66
|
}
|
|
97
67
|
return { runtime: existing, alreadyRunning: true };
|
|
98
68
|
}
|
|
99
|
-
// Alive but not ready — likely mid-boot/bootstrap. Wait; never spawn a duplicate (port collision).
|
|
100
69
|
const ready = await waitForReady(recheckMs);
|
|
101
70
|
if (ready)
|
|
102
71
|
return { runtime: ready, alreadyRunning: true };
|
|
103
72
|
throw new Error(`Revo host daemon (pid ${existing.pid}) is alive but not healthy on GraphQL port ` +
|
|
104
73
|
`${existing.graphqlPort}. Stop it with \`revo stop\` and retry.`);
|
|
105
74
|
}
|
|
106
|
-
// No live daemon — clear a stale host.json (dead pid), then spawn a fresh detached one.
|
|
107
|
-
// The check-then-spawn is not atomic, but the daemon's advisory-lock singleton (slice 139,
|
|
108
|
-
// queue-ownership.ts) makes a concurrent cold-start safe: if two ensureHost() callers both spawn
|
|
109
|
-
// `__daemon`, only one wins the per-profile lock and lives; the loser exits before DBOS/queue, and
|
|
110
|
-
// every waiter observes the winner's host.json via waitForReady.
|
|
111
75
|
if (existing)
|
|
112
76
|
removeHostRuntime();
|
|
113
77
|
spawnDaemon();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure-host.js","sourceRoot":"","sources":["../../src/host/ensure-host.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensure-host.js","sourceRoot":"","sources":["../../src/host/ensure-host.ts"],"names":[],"mappings":"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"}
|