@revisium/orchestrator 0.2.0-alpha.2 → 0.2.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/control-plane/bootstrap.config.json +104 -550
- package/control-plane/default-playbook/catalog/pipelines.json +405 -1065
- package/control-plane/default-playbook/catalog/run-profiles.json +208 -0
- package/control-plane/default-playbook/package.json +1 -1
- package/control-plane/default-playbook/playbook.json +2 -1
- package/control-plane/default-playbook/prompts/developer.md +6 -6
- package/dist/__generated__/client/browser.js +18 -0
- package/dist/__generated__/client/browser.js.map +1 -0
- package/dist/__generated__/client/client.js +32 -0
- package/dist/__generated__/client/client.js.map +1 -0
- package/dist/__generated__/client/commonInputTypes.js +11 -0
- package/dist/__generated__/client/commonInputTypes.js.map +1 -0
- package/dist/__generated__/client/enums.js +19 -0
- package/dist/__generated__/client/enums.js.map +1 -0
- package/dist/__generated__/client/internal/class.js +53 -0
- package/dist/__generated__/client/internal/class.js.map +1 -0
- package/dist/__generated__/client/internal/prismaNamespace.js +451 -0
- package/dist/__generated__/client/internal/prismaNamespace.js.map +1 -0
- package/dist/__generated__/client/internal/prismaNamespaceBrowser.js +422 -0
- package/dist/__generated__/client/internal/prismaNamespaceBrowser.js.map +1 -0
- package/dist/__generated__/client/models/Branch.js +2 -0
- package/dist/__generated__/client/models/Branch.js.map +1 -0
- package/dist/__generated__/client/models/CostLedgerEntry.js +2 -0
- package/dist/__generated__/client/models/CostLedgerEntry.js.map +1 -0
- package/dist/__generated__/client/models/FileBlob.js +2 -0
- package/dist/__generated__/client/models/FileBlob.js.map +1 -0
- package/dist/__generated__/client/models/InboxItem.js +2 -0
- package/dist/__generated__/client/models/InboxItem.js.map +1 -0
- package/dist/__generated__/client/models/ProjectFileUsage.js +2 -0
- package/dist/__generated__/client/models/ProjectFileUsage.js.map +1 -0
- package/dist/__generated__/client/models/Revision.js +2 -0
- package/dist/__generated__/client/models/Revision.js.map +1 -0
- package/dist/__generated__/client/models/RevoProject.js +2 -0
- package/dist/__generated__/client/models/RevoProject.js.map +1 -0
- package/dist/__generated__/client/models/Row.js +2 -0
- package/dist/__generated__/client/models/Row.js.map +1 -0
- package/dist/__generated__/client/models/RunAttempt.js +2 -0
- package/dist/__generated__/client/models/RunAttempt.js.map +1 -0
- package/dist/__generated__/client/models/RunEvent.js +2 -0
- package/dist/__generated__/client/models/RunEvent.js.map +1 -0
- package/dist/__generated__/client/models/RunOutput.js +2 -0
- package/dist/__generated__/client/models/RunOutput.js.map +1 -0
- package/dist/__generated__/client/models/RunTask.js +2 -0
- package/dist/__generated__/client/models/RunTask.js.map +1 -0
- package/dist/__generated__/client/models/Table.js +2 -0
- package/dist/__generated__/client/models/Table.js.map +1 -0
- package/dist/__generated__/client/models/TableMigration.js +2 -0
- package/dist/__generated__/client/models/TableMigration.js.map +1 -0
- package/dist/__generated__/client/models/TaskRun.js +2 -0
- package/dist/__generated__/client/models/TaskRun.js.map +1 -0
- package/dist/__generated__/client/models.js +2 -0
- package/dist/__generated__/client/models.js.map +1 -0
- package/dist/api/graphql-api/graphql-ws/pubsub.module.js +2 -1
- package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -1
- package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +110 -28
- 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 -1
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
- package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.js +46 -0
- package/dist/api/graphql-api/inbox/inputs/resolve-gate.input.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/registerGraphqlEnums.js +2 -0
- package/dist/api/graphql-api/registerGraphqlEnums.js.map +1 -1
- package/dist/api/graphql-api/runs/inputs/create-run.input.js +17 -0
- package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
- package/dist/api/graphql-api/runs/inputs/execution-profile.input.js +85 -0
- package/dist/api/graphql-api/runs/inputs/execution-profile.input.js.map +1 -0
- package/dist/api/graphql-api/runs/inputs/simulate-route.input.js +11 -0
- package/dist/api/graphql-api/runs/inputs/simulate-route.input.js.map +1 -1
- package/dist/api/graphql-api/runs/model/run-workflow.model.js +5 -0
- package/dist/api/graphql-api/runs/model/run-workflow.model.js.map +1 -1
- package/dist/api/graphql-api/share/model/issue-action.model.js +7 -0
- package/dist/api/graphql-api/share/model/issue-action.model.js.map +1 -0
- package/dist/cli/commands/doctor-report.js +1 -13
- package/dist/cli/commands/doctor-report.js.map +1 -1
- package/dist/cli/commands/lifecycle.js +50 -65
- package/dist/cli/commands/lifecycle.js.map +1 -1
- package/dist/cli/commands/{revisium-helpers.js → process-helpers.js} +1 -24
- package/dist/cli/commands/process-helpers.js.map +1 -0
- package/dist/config.js +17 -55
- package/dist/config.js.map +1 -1
- package/dist/control-plane/audit-validation-helpers.js +31 -0
- package/dist/control-plane/audit-validation-helpers.js.map +1 -0
- package/dist/control-plane/bootstrap-json-validator.js +65 -0
- package/dist/control-plane/bootstrap-json-validator.js.map +1 -0
- package/dist/control-plane/bootstrap.js +25 -38
- package/dist/control-plane/bootstrap.js.map +1 -1
- package/dist/control-plane/change-notifications.js +45 -14
- package/dist/control-plane/change-notifications.js.map +1 -1
- package/dist/control-plane/data-access.js +1 -106
- package/dist/control-plane/data-access.js.map +1 -1
- package/dist/control-plane/default-playbook-policy.js +499 -78
- package/dist/control-plane/default-playbook-policy.js.map +1 -1
- package/dist/control-plane/definitions.js +4 -5
- package/dist/control-plane/definitions.js.map +1 -1
- package/dist/control-plane/engine-transport.js +381 -0
- package/dist/control-plane/engine-transport.js.map +1 -0
- package/dist/control-plane/inbox.js +15 -7
- package/dist/control-plane/inbox.js.map +1 -1
- package/dist/control-plane/index.js +0 -1
- package/dist/control-plane/index.js.map +1 -1
- package/dist/control-plane/manual-adoption-audit.js +3 -24
- package/dist/control-plane/manual-adoption-audit.js.map +1 -1
- package/dist/control-plane/merge-override-audit.js +44 -0
- package/dist/control-plane/merge-override-audit.js.map +1 -0
- package/dist/control-plane/pipeline-coverage-registry.js +478 -0
- package/dist/control-plane/pipeline-coverage-registry.js.map +1 -0
- package/dist/control-plane/query-types.js +2 -0
- package/dist/control-plane/query-types.js.map +1 -0
- package/dist/control-plane/run-profiles.js +89 -0
- package/dist/control-plane/run-profiles.js.map +1 -0
- package/dist/control-plane/schema-migration.js +0 -35
- package/dist/control-plane/schema-migration.js.map +1 -1
- package/dist/control-plane/seed-default-playbook.js +2 -31
- package/dist/control-plane/seed-default-playbook.js.map +1 -1
- package/dist/control-plane/tables.js +8 -0
- package/dist/control-plane/tables.js.map +1 -1
- package/dist/control-plane/transport.js +16 -0
- package/dist/control-plane/transport.js.map +1 -0
- package/dist/control-plane/versioned-meaning.js +56 -14
- package/dist/control-plane/versioned-meaning.js.map +1 -1
- package/dist/e2e/kit/agents.js +60 -6
- package/dist/e2e/kit/agents.js.map +1 -1
- package/dist/e2e/kit/assertions.js +13 -1
- package/dist/e2e/kit/assertions.js.map +1 -1
- package/dist/e2e/kit/drive.js +46 -11
- package/dist/e2e/kit/drive.js.map +1 -1
- package/dist/e2e/kit/env.js +17 -1
- package/dist/e2e/kit/env.js.map +1 -1
- package/dist/e2e/kit/fake-integrator.js +25 -5
- package/dist/e2e/kit/fake-integrator.js.map +1 -1
- package/dist/e2e/kit/gh-emulator.js +172 -40
- package/dist/e2e/kit/gh-emulator.js.map +1 -1
- package/dist/e2e/kit/harness.js +44 -10
- package/dist/e2e/kit/harness.js.map +1 -1
- package/dist/e2e/kit/index.js +1 -0
- package/dist/e2e/kit/index.js.map +1 -1
- package/dist/e2e/kit/scenario.js +165 -0
- package/dist/e2e/kit/scenario.js.map +1 -0
- package/dist/e2e/kit/scenarios.js +12 -18
- package/dist/e2e/kit/scenarios.js.map +1 -1
- package/dist/engine/dbos.service.js +8 -1
- package/dist/engine/dbos.service.js.map +1 -1
- package/dist/features/inbox/commands/impl/resolve-gate.command.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/host/daemon.js +32 -8
- package/dist/host/daemon.js.map +1 -1
- package/dist/host/ensure-host.js +3 -3
- package/dist/host/ensure-host.js.map +1 -1
- package/dist/host/host-runtime.js.map +1 -1
- package/dist/host/host.lifecycle.js +3 -16
- package/dist/host/host.lifecycle.js.map +1 -1
- package/dist/http/graphql-host.js +17 -8
- package/dist/http/graphql-host.js.map +1 -1
- package/dist/mcp/mcp-capabilities.js +12 -11
- package/dist/mcp/mcp-capabilities.js.map +1 -1
- package/dist/mcp/mcp-facade.service.js +45 -5
- package/dist/mcp/mcp-facade.service.js.map +1 -1
- package/dist/mcp/mcp-tools.js +59 -5
- package/dist/mcp/mcp-tools.js.map +1 -1
- package/dist/mcp/monitoring-directive.js +43 -0
- package/dist/mcp/monitoring-directive.js.map +1 -0
- package/dist/pipeline/data-driven-task.workflow.js +393 -182
- package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
- package/dist/pipeline/pipeline.service.js +27 -5
- package/dist/pipeline/pipeline.service.js.map +1 -1
- package/dist/pipeline/route-contract.js +123 -3
- package/dist/pipeline/route-contract.js.map +1 -1
- package/dist/pipeline-core/condition-scopes.js +15 -0
- package/dist/pipeline-core/condition-scopes.js.map +1 -0
- package/dist/pipeline-core/index.js +2 -0
- package/dist/pipeline-core/index.js.map +1 -1
- package/dist/pipeline-core/kit/fixtures.js +81 -44
- package/dist/pipeline-core/kit/fixtures.js.map +1 -1
- package/dist/pipeline-core/materialize.js +221 -0
- package/dist/pipeline-core/materialize.js.map +1 -0
- package/dist/pipeline-core/types.js +5 -0
- package/dist/pipeline-core/types.js.map +1 -1
- package/dist/pipeline-core/validate-loops.js +2 -15
- package/dist/pipeline-core/validate-loops.js.map +1 -1
- package/dist/pipeline-core/validate-resilience.js +257 -0
- package/dist/pipeline-core/validate-resilience.js.map +1 -0
- package/dist/pipeline-core/validate.js +2 -0
- package/dist/pipeline-core/validate.js.map +1 -1
- package/dist/playbook/catalog-loader.js +39 -2
- package/dist/playbook/catalog-loader.js.map +1 -1
- package/dist/playbook/catalog-schema-validator.js +438 -0
- package/dist/playbook/catalog-schema-validator.js.map +1 -0
- package/dist/playbook/import-mapper.js +41 -0
- package/dist/playbook/import-mapper.js.map +1 -1
- package/dist/playbook/manifest.js +5 -0
- package/dist/playbook/manifest.js.map +1 -1
- package/dist/playbook/playbook-installer.js +17 -1
- package/dist/playbook/playbook-installer.js.map +1 -1
- package/dist/poller/pr-readiness-core.js +280 -94
- package/dist/poller/pr-readiness-core.js.map +1 -1
- package/dist/poller/pr-readiness.js +2 -2
- package/dist/poller/pr-readiness.js.map +1 -1
- package/dist/revisium/inbox.service.js +8 -8
- package/dist/revisium/inbox.service.js.map +1 -1
- package/dist/revisium/playbooks.service.js +116 -21
- package/dist/revisium/playbooks.service.js.map +1 -1
- package/dist/revisium/revisium.module.js +8 -8
- package/dist/revisium/revisium.module.js.map +1 -1
- package/dist/revisium/roles.service.js +3 -1
- package/dist/revisium/roles.service.js.map +1 -1
- package/dist/revisium/run.service.js +9 -8
- package/dist/revisium/run.service.js.map +1 -1
- package/dist/revisium/tokens.js +0 -1
- package/dist/revisium/tokens.js.map +1 -1
- package/dist/run/create-run.js +1 -1
- package/dist/run/create-run.js.map +1 -1
- package/dist/run/inspect-run.js +32 -28
- package/dist/run/inspect-run.js.map +1 -1
- package/dist/run/issue-ref.js +97 -2
- package/dist/run/issue-ref.js.map +1 -1
- package/dist/run/prisma-runtime-data-access.js +619 -0
- package/dist/run/prisma-runtime-data-access.js.map +1 -0
- package/dist/run/run-outputs.js +39 -14
- package/dist/run/run-outputs.js.map +1 -1
- package/dist/run/terminal-run-status.js.map +1 -1
- package/dist/runners/integrator.js +657 -56
- package/dist/runners/integrator.js.map +1 -1
- package/dist/runners/worktree.service.js +10 -8
- package/dist/runners/worktree.service.js.map +1 -1
- package/dist/schema/ajv-errors.js +15 -0
- package/dist/schema/ajv-errors.js.map +1 -0
- package/dist/smoke/isolation.js +7 -16
- package/dist/smoke/isolation.js.map +1 -1
- package/dist/storage/ensure-storage.js +117 -0
- package/dist/storage/ensure-storage.js.map +1 -0
- package/dist/storage/revo-database.js +39 -0
- package/dist/storage/revo-database.js.map +1 -0
- package/dist/storage/revo-prisma.service.js +31 -0
- package/dist/storage/revo-prisma.service.js.map +1 -0
- package/dist/storage/revo-storage.module.js +18 -0
- package/dist/storage/revo-storage.module.js.map +1 -0
- package/dist/task-control-plane/pr-readiness.service.js +5 -2
- package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
- package/dist/task-control-plane/run-watch.service.js +3 -6
- package/dist/task-control-plane/run-watch.service.js.map +1 -1
- package/dist/task-control-plane/task-control-plane-api.service.js +234 -43
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/testing/runtime-data-access.js +175 -0
- package/dist/testing/runtime-data-access.js.map +1 -0
- package/dist/worker/build-context.js +178 -2
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +22 -3
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/codex-runner.js +6 -1
- package/dist/worker/codex-runner.js.map +1 -1
- package/package.json +20 -7
- package/prisma/migrations/20260707080500_initial_schema/migration.sql +259 -0
- package/prisma/migrations/20260707103000_prisma_runtime_tables/migration.sql +235 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +339 -0
- package/prisma.config.ts +11 -0
- package/dist/cli/commands/revisium-helpers.js.map +0 -1
- package/dist/control-plane/client-transport.js +0 -168
- package/dist/control-plane/client-transport.js.map +0 -1
- package/dist/engine/ensure-postgres.js +0 -46
- package/dist/engine/ensure-postgres.js.map +0 -1
- package/dist/host/ensure-revisium.js +0 -135
- package/dist/host/ensure-revisium.js.map +0 -1
- package/revisium.config.json +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-watch.service.js","sourceRoot":"","sources":["../../src/task-control-plane/run-watch.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-watch.service.js","sourceRoot":"","sources":["../../src/task-control-plane/run-watch.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,16 +15,23 @@ import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
|
15
15
|
import { basename, join, resolve } from 'node:path';
|
|
16
16
|
import { promisify } from 'node:util';
|
|
17
17
|
import { Inject, Injectable } from '@nestjs/common';
|
|
18
|
-
import { baseUrl, getConfig, isAlive
|
|
18
|
+
import { baseUrl, getConfig, isAlive } from '../cli/config.js';
|
|
19
|
+
import { isGraphqlHealthy } from '../host/ensure-host.js';
|
|
20
|
+
import { readHostRuntime } from '../host/host-runtime.js';
|
|
19
21
|
import { AgentObservabilityService } from '../observability/agent-observability.service.js';
|
|
20
22
|
import { ControlPlaneError } from '../control-plane/errors.js';
|
|
23
|
+
import { VALID_MODEL_LEVELS } from '../control-plane/definitions.js';
|
|
21
24
|
import { validateManualAdoptionAudit } from '../control-plane/manual-adoption-audit.js';
|
|
25
|
+
import { validateMergeOverrideAudit } from '../control-plane/merge-override-audit.js';
|
|
22
26
|
import { fnv1a64Hex } from '../control-plane/steps.js';
|
|
27
|
+
import { POLICY_VERSION } from '../control-plane/default-playbook-policy.js';
|
|
28
|
+
import { executionProfileFromRunProfile, topologyProfileFromRunProfile } from '../control-plane/run-profiles.js';
|
|
29
|
+
import { materializeTemplate, MATERIALIZER_VERSION } from '../pipeline-core/materialize.js';
|
|
23
30
|
import { DbosService } from '../engine/dbos.service.js';
|
|
24
31
|
import { PipelineService } from '../pipeline/pipeline.service.js';
|
|
25
|
-
import { RUN_PROGRESS_EVENT_KEY } from '../pipeline/data-driven-task.workflow.js';
|
|
32
|
+
import { INTEGRATOR_PROGRESS_EVENT_TYPES, RUN_PROGRESS_EVENT_KEY } from '../pipeline/data-driven-task.workflow.js';
|
|
26
33
|
import { templateFromExecutionPolicy } from '../pipeline/data-driven-template.js';
|
|
27
|
-
import { normalizeExecutionProfile, normalizeParams, normalizeRouteGates,
|
|
34
|
+
import { normalizeExecutionProfile, normalizeParams, normalizeRouteGates, resolveBindingForRole, resolveRunnerForRole, RUNNER_PERMISSION_MODES, } from '../pipeline/route-contract.js';
|
|
28
35
|
import { InboxService } from '../revisium/inbox.service.js';
|
|
29
36
|
import { PlaybooksService } from '../revisium/playbooks.service.js';
|
|
30
37
|
import { RolesService } from '../revisium/roles.service.js';
|
|
@@ -35,6 +42,11 @@ const execFileAsync = promisify(execFile);
|
|
|
35
42
|
const GATE_TOPICS = new Set(['plan', 'merge', 'question']);
|
|
36
43
|
const WORKFLOW_SUCCESS_EVENT_TYPES = new Set(['step_succeeded', 'gate_signaled']);
|
|
37
44
|
const WORKFLOW_FAILURE_EVENT_TYPES = new Set(['step_failed', 'attempt_failed']);
|
|
45
|
+
export const WORKFLOW_PROGRESS_EVENT_TYPES = new Set([
|
|
46
|
+
'pipeline_blocked',
|
|
47
|
+
'pr_polled',
|
|
48
|
+
...INTEGRATOR_PROGRESS_EVENT_TYPES,
|
|
49
|
+
]);
|
|
38
50
|
const BUILTIN_RUNNERS = new Set(['claude-code', 'codex', 'script', 'stub-agent', 'revo-integrator', 'revo-merger', 'revo-deterministic']);
|
|
39
51
|
function asErrorMessage(error) {
|
|
40
52
|
if (error instanceof Error)
|
|
@@ -75,6 +87,31 @@ function gateDeclaredOutcomes(item) {
|
|
|
75
87
|
function gateOutcomes(item) {
|
|
76
88
|
return gateDeclaredOutcomes(item);
|
|
77
89
|
}
|
|
90
|
+
function gateSummaryNodeId(item) {
|
|
91
|
+
const context = asRecord(item.context);
|
|
92
|
+
const summary = asRecord(context?.summary);
|
|
93
|
+
const nodeId = summary?.nodeId;
|
|
94
|
+
return typeof nodeId === 'string' ? nodeId : undefined;
|
|
95
|
+
}
|
|
96
|
+
function isQuestionGateReasonOutcome(item, outcome) {
|
|
97
|
+
if (outcome !== 'fix' && outcome !== 'wontfix')
|
|
98
|
+
return false;
|
|
99
|
+
if (gateSummaryNodeId(item) === 'questionGate')
|
|
100
|
+
return true;
|
|
101
|
+
const outcomes = gateOutcomes(item);
|
|
102
|
+
return gateTopic(item) === 'question' && outcomes.includes('fix') && outcomes.includes('wontfix');
|
|
103
|
+
}
|
|
104
|
+
function assertRequiredGateNote(item, outcome, note) {
|
|
105
|
+
if (outcome === 'approve_anyway' && !note) {
|
|
106
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', 'approve_anyway requires a non-empty note');
|
|
107
|
+
}
|
|
108
|
+
if (outcome === 'override_merge' && !note) {
|
|
109
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', 'override_merge requires a non-empty note');
|
|
110
|
+
}
|
|
111
|
+
if (isQuestionGateReasonOutcome(item, outcome) && !note) {
|
|
112
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `questionGate ${outcome} requires a non-empty note`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
78
115
|
async function git(cwd, args) {
|
|
79
116
|
try {
|
|
80
117
|
const result = await execFileAsync('git', args, {
|
|
@@ -135,13 +172,11 @@ function summarizeAttempts(attempts) {
|
|
|
135
172
|
function normalizedRunStatus(status) {
|
|
136
173
|
return status === 'paused' ? 'blocked' : status;
|
|
137
174
|
}
|
|
138
|
-
function hasWorkflowProgress(events) {
|
|
175
|
+
export function hasWorkflowProgress(events) {
|
|
139
176
|
return events.some((event) => (event.type.startsWith('step_')
|
|
140
177
|
|| event.type.startsWith('attempt_')
|
|
141
178
|
|| event.type.startsWith('gate_')
|
|
142
|
-
|| event.type
|
|
143
|
-
|| event.type === 'pr_polled'
|
|
144
|
-
|| event.type === 'integrate_succeeded'));
|
|
179
|
+
|| WORKFLOW_PROGRESS_EVENT_TYPES.has(event.type)));
|
|
145
180
|
}
|
|
146
181
|
function observedRunStatus(rowStatus, workflowStatus, events) {
|
|
147
182
|
if (rowStatus !== 'ready')
|
|
@@ -418,17 +453,17 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
418
453
|
this.prReadiness = prReadiness;
|
|
419
454
|
}
|
|
420
455
|
async getStatus() {
|
|
421
|
-
const
|
|
422
|
-
const
|
|
423
|
-
const
|
|
456
|
+
const host = readHostRuntime();
|
|
457
|
+
const hostAlive = host ? isAlive(host.pid) : false;
|
|
458
|
+
const hostHealthy = host && hostAlive ? await isGraphqlHealthy(host.graphqlPort) : false;
|
|
424
459
|
return {
|
|
425
460
|
daemon: {
|
|
426
|
-
running: Boolean(
|
|
427
|
-
healthy,
|
|
428
|
-
pid:
|
|
429
|
-
baseUrl:
|
|
430
|
-
|
|
431
|
-
|
|
461
|
+
running: Boolean(host && hostAlive),
|
|
462
|
+
healthy: hostHealthy,
|
|
463
|
+
pid: host?.pid ?? null,
|
|
464
|
+
baseUrl: host ? `${baseUrl(host.graphqlPort)}/graphql` : null,
|
|
465
|
+
graphqlPort: host?.graphqlPort ?? null,
|
|
466
|
+
mcpPort: host?.mcpPort ?? null,
|
|
432
467
|
},
|
|
433
468
|
project: this.getProject(),
|
|
434
469
|
};
|
|
@@ -437,9 +472,9 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
437
472
|
const status = await this.getStatus();
|
|
438
473
|
const issues = [];
|
|
439
474
|
if (!status.daemon.running)
|
|
440
|
-
issues.push('
|
|
475
|
+
issues.push('Revo host daemon is not running.');
|
|
441
476
|
if (status.daemon.running && !status.daemon.healthy)
|
|
442
|
-
issues.push('
|
|
477
|
+
issues.push('Revo host daemon is running but unhealthy.');
|
|
443
478
|
try {
|
|
444
479
|
await this.roles.loadPipelinePolicy();
|
|
445
480
|
}
|
|
@@ -522,8 +557,10 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
522
557
|
scope: input.scope,
|
|
523
558
|
playbookId: input.playbookId,
|
|
524
559
|
pipelineId: input.pipelineId,
|
|
560
|
+
profileId: input.profileId,
|
|
525
561
|
params: input.params,
|
|
526
562
|
issueRef: input.issueRef,
|
|
563
|
+
issueAction: input.issueAction,
|
|
527
564
|
executionProfile: input.executionProfile,
|
|
528
565
|
source: input.pipelineId ? 'explicit' : 'deterministic-installed-playbook',
|
|
529
566
|
});
|
|
@@ -814,6 +851,16 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
814
851
|
routeGates: route.routeGates,
|
|
815
852
|
activeNodeIds: activeIds,
|
|
816
853
|
status: cursorStatus(progress),
|
|
854
|
+
provenance: Object.fromEntries([
|
|
855
|
+
['requestedPipelineId', route.requestedPipelineId],
|
|
856
|
+
['basePipelineId', route.basePipelineId],
|
|
857
|
+
['profileId', route.profileId],
|
|
858
|
+
['profileVersion', route.profileVersion],
|
|
859
|
+
['profileHash', route.profileHash],
|
|
860
|
+
['materializedTemplateHash', route.materializedTemplateHash],
|
|
861
|
+
['materializerVersion', route.materializerVersion],
|
|
862
|
+
['policyVersion', route.policyVersion],
|
|
863
|
+
].filter(([, v]) => v !== undefined)),
|
|
817
864
|
},
|
|
818
865
|
nodes,
|
|
819
866
|
edges,
|
|
@@ -986,7 +1033,7 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
986
1033
|
async approveGate(input) {
|
|
987
1034
|
const item = await this.getInboxItem(input.inboxId);
|
|
988
1035
|
const outcomes = gateDeclaredOutcomes(item);
|
|
989
|
-
this.assertLegacyGateWrapperAllowed(input.inboxId, outcomes);
|
|
1036
|
+
this.assertLegacyGateWrapperAllowed(item, input.inboxId, outcomes);
|
|
990
1037
|
if (outcomes.length === 0 || (outcomes.length === 1 && outcomes[0] === 'approved')) {
|
|
991
1038
|
const resolvedBy = input.resolvedBy ?? 'mcp';
|
|
992
1039
|
return this.resolveLegacyGate(item, { decision: 'approve', resolvedBy }, resolvedBy, input.inboxId);
|
|
@@ -1000,7 +1047,7 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1000
1047
|
async rejectGate(input) {
|
|
1001
1048
|
const item = await this.getInboxItem(input.inboxId);
|
|
1002
1049
|
const outcomes = gateDeclaredOutcomes(item);
|
|
1003
|
-
this.assertLegacyGateWrapperAllowed(input.inboxId, outcomes);
|
|
1050
|
+
this.assertLegacyGateWrapperAllowed(item, input.inboxId, outcomes);
|
|
1004
1051
|
if (outcomes.length === 0) {
|
|
1005
1052
|
const resolvedBy = input.resolvedBy ?? 'mcp';
|
|
1006
1053
|
return this.resolveLegacyGate(item, { decision: 'reject', resolvedBy }, resolvedBy, input.inboxId);
|
|
@@ -1027,17 +1074,19 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1027
1074
|
throw new ControlPlaneError('VALIDATION_FAILURE', `invalid gate outcome ${outcome}; expected one of: ${outcomes.join(', ')}`);
|
|
1028
1075
|
}
|
|
1029
1076
|
const note = input.note?.trim();
|
|
1030
|
-
|
|
1031
|
-
throw new ControlPlaneError('VALIDATION_FAILURE', 'approve_anyway requires a non-empty note');
|
|
1032
|
-
}
|
|
1077
|
+
assertRequiredGateNote(item, outcome, note);
|
|
1033
1078
|
const adoptionAudit = outcome === 'adopt_patch_manually'
|
|
1034
1079
|
? validateManualAdoptionAudit(input.adoptionAudit, item)
|
|
1035
1080
|
: undefined;
|
|
1081
|
+
const mergeOverrideAudit = outcome === 'override_merge'
|
|
1082
|
+
? validateMergeOverrideAudit(input.mergeOverrideAudit, item)
|
|
1083
|
+
: undefined;
|
|
1036
1084
|
const resolvedBy = input.resolvedBy ?? 'mcp';
|
|
1037
1085
|
const answer = {
|
|
1038
1086
|
outcome,
|
|
1039
1087
|
...(note ? { note } : {}),
|
|
1040
1088
|
...(adoptionAudit ? { adoptionAudit } : {}),
|
|
1089
|
+
...(mergeOverrideAudit ? { mergeOverrideAudit } : {}),
|
|
1041
1090
|
resolvedBy,
|
|
1042
1091
|
resolvedAt: new Date().toISOString(),
|
|
1043
1092
|
inboxId: input.inboxId,
|
|
@@ -1053,8 +1102,10 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1053
1102
|
runId: item.runId,
|
|
1054
1103
|
};
|
|
1055
1104
|
}
|
|
1056
|
-
assertLegacyGateWrapperAllowed(inboxId, outcomes) {
|
|
1057
|
-
if (outcomes.length > 2
|
|
1105
|
+
assertLegacyGateWrapperAllowed(item, inboxId, outcomes) {
|
|
1106
|
+
if (outcomes.length > 2
|
|
1107
|
+
|| outcomes.includes('approve_anyway')
|
|
1108
|
+
|| outcomes.some((outcome) => isQuestionGateReasonOutcome(item, outcome))) {
|
|
1058
1109
|
throw new ControlPlaneError('VALIDATION_FAILURE', `inbox item has named gate outcomes; use resolve_gate with an explicit outcome: ${inboxId}`);
|
|
1059
1110
|
}
|
|
1060
1111
|
}
|
|
@@ -1111,17 +1162,19 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1111
1162
|
}
|
|
1112
1163
|
this.assertGateOutcome(item, outcome);
|
|
1113
1164
|
const note = typeof answer?.note === 'string' ? answer.note.trim() : '';
|
|
1114
|
-
|
|
1115
|
-
throw new ControlPlaneError('VALIDATION_FAILURE', 'approve_anyway requires a non-empty note');
|
|
1116
|
-
}
|
|
1165
|
+
assertRequiredGateNote(item, outcome, note);
|
|
1117
1166
|
const adoptionAudit = outcome === 'adopt_patch_manually'
|
|
1118
1167
|
? validateManualAdoptionAudit(answer.adoptionAudit, item)
|
|
1119
1168
|
: undefined;
|
|
1169
|
+
const mergeOverrideAudit = outcome === 'override_merge'
|
|
1170
|
+
? validateMergeOverrideAudit(answer.mergeOverrideAudit, item)
|
|
1171
|
+
: undefined;
|
|
1120
1172
|
answerToResolve = {
|
|
1121
1173
|
...answer,
|
|
1122
1174
|
outcome,
|
|
1123
1175
|
...(typeof answer.note === 'string' ? { note } : {}),
|
|
1124
1176
|
...(adoptionAudit ? { adoptionAudit } : {}),
|
|
1177
|
+
...(mergeOverrideAudit ? { mergeOverrideAudit } : {}),
|
|
1125
1178
|
};
|
|
1126
1179
|
}
|
|
1127
1180
|
}
|
|
@@ -1179,6 +1232,9 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1179
1232
|
listPipelines() {
|
|
1180
1233
|
return this.playbooks.listPipelines();
|
|
1181
1234
|
}
|
|
1235
|
+
listProfiles(input = {}) {
|
|
1236
|
+
return this.playbooks.listRunProfiles(input);
|
|
1237
|
+
}
|
|
1182
1238
|
async getPipeline(pipelineId) {
|
|
1183
1239
|
const result = await this.playbooks.getPipeline(pipelineId);
|
|
1184
1240
|
if (!result)
|
|
@@ -1191,7 +1247,9 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1191
1247
|
repo: input.repo ?? '',
|
|
1192
1248
|
playbookId: input.playbookId,
|
|
1193
1249
|
pipelineId: input.pipeline,
|
|
1250
|
+
profileId: input.profileId,
|
|
1194
1251
|
params: input.params,
|
|
1252
|
+
executionProfile: input.executionProfile,
|
|
1195
1253
|
source: input.pipeline ? 'explicit' : 'deterministic-installed-playbook',
|
|
1196
1254
|
});
|
|
1197
1255
|
}
|
|
@@ -1224,28 +1282,152 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1224
1282
|
});
|
|
1225
1283
|
}
|
|
1226
1284
|
async resolveRouteDecision(input) {
|
|
1227
|
-
const params = normalizeParams(input.params, input.issueRef);
|
|
1228
|
-
const
|
|
1285
|
+
const params = normalizeParams(input.params, input.issueRef, input.issueAction);
|
|
1286
|
+
const callerProfile = normalizeExecutionProfile(input.executionProfile);
|
|
1229
1287
|
const playbook = await this.playbooks.resolvePlaybook(input.playbookId);
|
|
1230
|
-
const
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1288
|
+
const requestedPipelineId = input.pipelineId
|
|
1289
|
+
?? (await this.resolveAutoPipeline(playbook.id, [input.title, input.description, input.scope].join(' '))).pipelineId;
|
|
1290
|
+
const pipeline = await this.playbooks.resolvePipeline({ playbookId: playbook.id, pipelineId: requestedPipelineId });
|
|
1291
|
+
let executionPolicy = pipeline.executionPolicy;
|
|
1292
|
+
let executionProfile = callerProfile;
|
|
1293
|
+
const provenanceFields = {};
|
|
1294
|
+
if (input.profileId !== undefined) {
|
|
1295
|
+
const storedProfile = await this.playbooks.resolveRunProfile({
|
|
1296
|
+
playbookId: playbook.id,
|
|
1297
|
+
pipelineId: pipeline.pipelineId,
|
|
1298
|
+
profileId: input.profileId,
|
|
1299
|
+
});
|
|
1300
|
+
const topologyProfile = topologyProfileFromRunProfile(storedProfile.profile);
|
|
1301
|
+
const baseTemplate = pipeline.executionPolicy.template_json;
|
|
1302
|
+
if (!baseTemplate) {
|
|
1303
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `pipeline "${pipeline.pipelineId}" carries no template_json`);
|
|
1304
|
+
}
|
|
1305
|
+
const { template: materializedTemplate, materializedTemplateHash, diagnostics } = materializeTemplate(baseTemplate, topologyProfile, { allowlist: topologyProfile.toggles.map((toggle) => toggle.target) });
|
|
1306
|
+
if (diagnostics.length > 0) {
|
|
1307
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `run profile ${storedProfile.profileId} cannot be materialized: ${diagnostics.map((item) => item.message).join('; ')}`, { details: { diagnostics } });
|
|
1308
|
+
}
|
|
1309
|
+
executionPolicy = { template_json: materializedTemplate };
|
|
1310
|
+
executionProfile = executionProfileFromRunProfile(storedProfile.profile, callerProfile);
|
|
1311
|
+
provenanceFields.requestedPipelineId = requestedPipelineId;
|
|
1312
|
+
provenanceFields.basePipelineId = pipeline.pipelineId;
|
|
1313
|
+
provenanceFields.profileId = storedProfile.profileId;
|
|
1314
|
+
provenanceFields.profileVersion = storedProfile.version;
|
|
1315
|
+
provenanceFields.profileHash = storedProfile.profileHash;
|
|
1316
|
+
provenanceFields.profileSnapshot = storedProfile.profile;
|
|
1317
|
+
provenanceFields.materializedTemplateHash = materializedTemplateHash;
|
|
1318
|
+
provenanceFields.materializedTemplate = materializedTemplate;
|
|
1319
|
+
provenanceFields.materializerVersion = MATERIALIZER_VERSION;
|
|
1320
|
+
provenanceFields.policyVersion = POLICY_VERSION;
|
|
1321
|
+
}
|
|
1322
|
+
const allRoles = (await this.roles.listRoles()).filter((role) => role.playbookId === playbook.id);
|
|
1323
|
+
await this.assertExecutionProfileClosed(executionProfile, allRoles);
|
|
1324
|
+
const roleBindings = await this.resolveRouteRoles(playbook.id, pipeline, executionProfile, allRoles);
|
|
1234
1325
|
return {
|
|
1235
1326
|
playbookId: playbook.id,
|
|
1236
|
-
pipelineId:
|
|
1327
|
+
pipelineId: requestedPipelineId,
|
|
1237
1328
|
pipelineRowId: pipeline.id,
|
|
1238
1329
|
source: input.source,
|
|
1239
1330
|
roles: roleBindings.map((binding) => binding.roleId),
|
|
1240
1331
|
requiredRoles: pipeline.requiredRoles,
|
|
1241
1332
|
optionalRoles: pipeline.optionalRoles,
|
|
1242
1333
|
routeGates: normalizeRouteGates(pipeline.routeGates),
|
|
1243
|
-
executionPolicy
|
|
1334
|
+
executionPolicy,
|
|
1244
1335
|
executionProfile,
|
|
1245
1336
|
roleBindings,
|
|
1246
1337
|
params,
|
|
1338
|
+
...provenanceFields,
|
|
1247
1339
|
};
|
|
1248
1340
|
}
|
|
1341
|
+
async assertExecutionProfileClosed(executionProfile, roles) {
|
|
1342
|
+
const overrides = executionProfile.bindingOverrides ?? [];
|
|
1343
|
+
if (overrides.length === 0)
|
|
1344
|
+
return;
|
|
1345
|
+
const available = executionProfile.availableRunners;
|
|
1346
|
+
const byPlaybookRole = new Map(roles.map((r) => [r.playbookRoleId || r.name, r]));
|
|
1347
|
+
const cachedProfiles = new Map();
|
|
1348
|
+
for (const override of overrides) {
|
|
1349
|
+
const matchLabel = JSON.stringify(override.match);
|
|
1350
|
+
const { roleId: mRoleId, nodeId: mNodeId, runnerId: mRunnerId } = override.match;
|
|
1351
|
+
if (!mRoleId && !mNodeId && !mRunnerId) {
|
|
1352
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} must specify at least one of roleId, nodeId, runnerId`);
|
|
1353
|
+
}
|
|
1354
|
+
// Validate match.runnerId too, not just override.runnerId — an unregistered/typo'd match
|
|
1355
|
+
// target would otherwise silently match nothing and the override becomes a no-op.
|
|
1356
|
+
if (mRunnerId !== undefined) {
|
|
1357
|
+
if (available && !available.includes(mRunnerId)) {
|
|
1358
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} runnerId "${mRunnerId}" not in availableRunners`);
|
|
1359
|
+
}
|
|
1360
|
+
if (!available && !BUILTIN_RUNNERS.has(mRunnerId)) {
|
|
1361
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} runnerId "${mRunnerId}" is not a registered runner`);
|
|
1362
|
+
}
|
|
1363
|
+
}
|
|
1364
|
+
if (override.runnerId !== undefined) {
|
|
1365
|
+
const ovRunner = override.runnerId;
|
|
1366
|
+
if (available && !available.includes(ovRunner)) {
|
|
1367
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} runnerId "${ovRunner}" not in availableRunners`);
|
|
1368
|
+
}
|
|
1369
|
+
if (!available && !BUILTIN_RUNNERS.has(ovRunner)) {
|
|
1370
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} runnerId "${ovRunner}" is not a registered runner`);
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
if (override.modelLevel !== undefined) {
|
|
1374
|
+
const lvl = override.modelLevel;
|
|
1375
|
+
if (!VALID_MODEL_LEVELS.includes(lvl)) {
|
|
1376
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} modelLevel "${lvl}" is unavailable`);
|
|
1377
|
+
}
|
|
1378
|
+
const cached = cachedProfiles.get(lvl);
|
|
1379
|
+
if (cached === undefined) {
|
|
1380
|
+
try {
|
|
1381
|
+
await this.roles.loadModelProfile(lvl);
|
|
1382
|
+
cachedProfiles.set(lvl, true);
|
|
1383
|
+
}
|
|
1384
|
+
catch (err) {
|
|
1385
|
+
const isNotFound = err instanceof ControlPlaneError && (err.code === 'ROW_NOT_FOUND' || err.code === 'VALIDATION_FAILURE');
|
|
1386
|
+
if (isNotFound) {
|
|
1387
|
+
cachedProfiles.set(lvl, false);
|
|
1388
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} modelLevel "${lvl}" is unavailable`);
|
|
1389
|
+
}
|
|
1390
|
+
throw err;
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
else if (!cached) {
|
|
1394
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} modelLevel "${lvl}" is unavailable`);
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
if (override.timeoutMs !== undefined) {
|
|
1398
|
+
const ms = override.timeoutMs;
|
|
1399
|
+
if (!Number.isInteger(ms) || ms <= 0 || ms > 86_400_000) {
|
|
1400
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} timeoutMs must be a positive integer <= 86400000, got ${ms}`);
|
|
1401
|
+
}
|
|
1402
|
+
}
|
|
1403
|
+
if (override.permissionMode !== undefined) {
|
|
1404
|
+
let effectiveRunner;
|
|
1405
|
+
if (override.runnerId) {
|
|
1406
|
+
effectiveRunner = override.runnerId;
|
|
1407
|
+
}
|
|
1408
|
+
else if (mRunnerId) {
|
|
1409
|
+
effectiveRunner = executionProfile.runnerOverrides[mRunnerId] ?? mRunnerId;
|
|
1410
|
+
}
|
|
1411
|
+
else if (mRoleId) {
|
|
1412
|
+
const role = byPlaybookRole.get(mRoleId);
|
|
1413
|
+
if (!role) {
|
|
1414
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} permissionMode override requires a resolvable runner; pin runnerId`);
|
|
1415
|
+
}
|
|
1416
|
+
effectiveRunner = executionProfile.runnerOverrides[role.runner] ?? role.runner;
|
|
1417
|
+
}
|
|
1418
|
+
else {
|
|
1419
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} permissionMode override requires a resolvable runner; pin runnerId`);
|
|
1420
|
+
}
|
|
1421
|
+
const validModes = RUNNER_PERMISSION_MODES[effectiveRunner];
|
|
1422
|
+
if (!validModes) {
|
|
1423
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} permissionMode not supported for runner ${effectiveRunner}`);
|
|
1424
|
+
}
|
|
1425
|
+
if (!validModes.includes(override.permissionMode)) {
|
|
1426
|
+
throw new ControlPlaneError('VALIDATION_FAILURE', `PROFILE_SCHEMA_CLOSED: bindingOverride match ${matchLabel} permissionMode "${override.permissionMode}" is not valid for runner ${effectiveRunner}; expected one of ${validModes.join(', ')}`);
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1249
1431
|
async resolveAutoPipeline(playbookId, text) {
|
|
1250
1432
|
const pipelines = (await this.playbooks.listPipelines())
|
|
1251
1433
|
.filter((pipeline) => pipeline.playbookId === playbookId)
|
|
@@ -1266,8 +1448,8 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1266
1448
|
}
|
|
1267
1449
|
return best.pipeline;
|
|
1268
1450
|
}
|
|
1269
|
-
async resolveRouteRoles(playbookId, pipeline, executionProfile) {
|
|
1270
|
-
const roles = (await this.roles.listRoles()).filter((role) => role.playbookId === playbookId);
|
|
1451
|
+
async resolveRouteRoles(playbookId, pipeline, executionProfile, preloadedRoles) {
|
|
1452
|
+
const roles = preloadedRoles ?? (await this.roles.listRoles()).filter((role) => role.playbookId === playbookId);
|
|
1271
1453
|
const byPlaybookRole = new Map(roles.map((role) => [role.playbookRoleId || role.name, role]));
|
|
1272
1454
|
const selected = [...pipeline.requiredRoles];
|
|
1273
1455
|
for (const group of pipeline.alternativeRoles) {
|
|
@@ -1286,16 +1468,25 @@ let TaskControlPlaneApiService = class TaskControlPlaneApiService {
|
|
|
1286
1468
|
return selected.map((roleId) => {
|
|
1287
1469
|
const role = byPlaybookRole.get(roleId);
|
|
1288
1470
|
assertProductionRunnerBinding(role.runner, 'playbook', roleId);
|
|
1289
|
-
const
|
|
1290
|
-
assertProductionRunnerBinding(
|
|
1291
|
-
assertRunnerAvailable(
|
|
1471
|
+
const runnerResolved = resolveRunnerForRole(role.runner, roleId, executionProfile);
|
|
1472
|
+
assertProductionRunnerBinding(runnerResolved.runnerId, runnerResolved.source, roleId);
|
|
1473
|
+
assertRunnerAvailable(runnerResolved.runnerId, executionProfile, roleId);
|
|
1474
|
+
const bindingResolution = resolveBindingForRole(role, roleId, runnerResolved.runnerId, executionProfile);
|
|
1292
1475
|
return {
|
|
1293
1476
|
roleId,
|
|
1294
1477
|
rowId: role.id,
|
|
1295
1478
|
modelLevel: role.modelLevel,
|
|
1296
1479
|
runnerId: role.runner,
|
|
1297
|
-
resolvedRunnerId:
|
|
1298
|
-
runnerSource:
|
|
1480
|
+
resolvedRunnerId: runnerResolved.runnerId,
|
|
1481
|
+
runnerSource: runnerResolved.source,
|
|
1482
|
+
resolvedModelLevel: bindingResolution.resolvedModelLevel,
|
|
1483
|
+
modelSource: bindingResolution.modelSource,
|
|
1484
|
+
timeoutMs: role.timeoutMs,
|
|
1485
|
+
resolvedTimeoutMs: bindingResolution.resolvedTimeoutMs,
|
|
1486
|
+
timeoutSource: bindingResolution.timeoutSource,
|
|
1487
|
+
permissionMode: role.permissionMode,
|
|
1488
|
+
resolvedPermissionMode: bindingResolution.resolvedPermissionMode,
|
|
1489
|
+
permissionSource: bindingResolution.permissionSource,
|
|
1299
1490
|
};
|
|
1300
1491
|
});
|
|
1301
1492
|
}
|