@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
package/dist/runners/tokens.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/runners/tokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/runners/tokens.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -10,18 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
/**
|
|
14
|
-
* worktree.service.ts — @Injectable wrapper over the per-run git worktree manager (plan 0017).
|
|
15
|
-
*
|
|
16
|
-
* DBOS-SEALED: zero @dbos-inc imports. PipelineService registers `ensure`/`release` as memoized DBOS
|
|
17
|
-
* steps and wires them into the data-driven adapter's run lifecycle (create after live preflight,
|
|
18
|
-
* release at terminal via the workflow `finally`).
|
|
19
|
-
*
|
|
20
|
-
* Resolves the BASE target-repo checkout (where `git worktree add/remove` run) and the feature branch
|
|
21
|
-
* (the SAME `branchName` the integrator commits/pushes on) so the worktree is created already on that
|
|
22
|
-
* branch — making the integrator's branchExists→switch path a no-op and avoiding its dirty-tree
|
|
23
|
-
* `switch -c origin/<base>` failure.
|
|
24
|
-
*/
|
|
25
13
|
import { Inject, Injectable } from '@nestjs/common';
|
|
26
14
|
import { RunService } from '../revisium/run.service.js';
|
|
27
15
|
import { getConfig } from '../config.js';
|
|
@@ -34,24 +22,20 @@ let WorktreeService = class WorktreeService {
|
|
|
34
22
|
this.runService = runService;
|
|
35
23
|
this.resolveBaseCwd = this.runService.makeResolveTaskCwd();
|
|
36
24
|
}
|
|
37
|
-
/** Create-if-absent the run's isolated worktree. Arrow property: safe to pass unbound to registerStep. */
|
|
38
25
|
ensure = async (runId, taskId, title, base, issueRef) => {
|
|
39
26
|
const baseRepoCwd = await this.resolveBaseCwd(taskId);
|
|
40
27
|
const branch = branchName(taskId, title, issueRef);
|
|
41
28
|
return createRunWorktree({ runId, baseRepoCwd, base, branch, dataDir: getConfig().dataDir });
|
|
42
29
|
};
|
|
43
|
-
/** Release the run's worktree (best-effort, idempotent). Arrow property for safe unbound registration. */
|
|
44
30
|
release = async (runId, taskId) => {
|
|
45
31
|
let baseRepoCwd;
|
|
46
32
|
try {
|
|
47
33
|
baseRepoCwd = await this.resolveBaseCwd(taskId);
|
|
48
34
|
}
|
|
49
35
|
catch {
|
|
50
|
-
// Task/repo no longer resolvable — nothing to remove from; the worktree dir (if any) is orphaned
|
|
51
|
-
// and will be swept by `git worktree prune` on a later run against the same base repo.
|
|
52
36
|
return;
|
|
53
37
|
}
|
|
54
|
-
releaseRunWorktree({ runId, baseRepoCwd, dataDir: getConfig().dataDir });
|
|
38
|
+
void releaseRunWorktree({ runId, baseRepoCwd, dataDir: getConfig().dataDir });
|
|
55
39
|
};
|
|
56
40
|
};
|
|
57
41
|
WorktreeService = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.service.js","sourceRoot":"","sources":["../../src/runners/worktree.service.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"worktree.service.js","sourceRoot":"","sources":["../../src/runners/worktree.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGnF,IAAM,eAAe,GAArB,MAAM,eAAe;IAGuB;IAFhC,cAAc,CAAsC;IAErE,YAAiD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACrE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAC7D,CAAC;IAGD,MAAM,GAAG,KAAK,EACZ,KAAa,EACb,MAAc,EACd,KAAa,EACb,IAAY,EACZ,QAAmB,EACgB,EAAE;QACrC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,OAAO,iBAAiB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/F,CAAC,CAAC;IAGF,OAAO,GAAG,KAAK,EAAE,KAAa,EAAE,MAAc,EAAiB,EAAE;QAC/D,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC,CAAC;CACH,CAAA;AA9BY,eAAe;IAD3B,UAAU,EAAE;IAIE,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;qCAA8B,UAAU;GAH5D,eAAe,CA8B3B"}
|
|
@@ -1,40 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* RunWatchService — bounded long-poll watch primitive over many runs (slice 141 D2).
|
|
3
|
-
*
|
|
4
|
-
* The MCP HTTP transport is stateless-per-request with a request timeout (see McpHttpService): no
|
|
5
|
-
* session, no held async-iterator, no server-initiated SSE survives one POST. So we cannot "subscribe
|
|
6
|
-
* over MCP"; instead we convert the daemon's existing in-process push (APP_PUB_SUB) into a bounded
|
|
7
|
-
* long-poll that RETURNS UNDER THE BRIDGE TIMEOUT with a resume cursor.
|
|
8
|
-
*
|
|
9
|
-
* Correctness rests on the SWEEP + CURSOR, not the push. The push (option A) only lowers latency; a
|
|
10
|
-
* pure poll (option B, no pubSub) is an equivalent-correctness degrade. Delivery is **at-least-once +
|
|
11
|
-
* idempotent**: `resolveRunState` is a point-in-time LEVEL read (a gate is `inbox.find(approval)`, not
|
|
12
|
-
* an event edge), so the cursor is a per-run *marker* watermark — a re-call suppresses a run whose
|
|
13
|
-
* actionable level it already delivered, and reports it again only when the marker changes (a new gate
|
|
14
|
-
* id, or a status transition). Approving the same gate twice is already guarded downstream.
|
|
15
|
-
*/
|
|
16
1
|
import { ControlPlaneError } from '../control-plane/errors.js';
|
|
17
2
|
import { deriveCanonicalActivitySignal, } from '../observability/activity-signal.js';
|
|
18
|
-
// Single source of truth for the topic names (a zero-import leaf module, so no import cycle). The
|
|
19
|
-
// ControlPlaneSubscriptionBridge publishes these from the Postgres LISTEN feed, each payload carrying
|
|
20
|
-
// `runId` — the field we filter wakeups on.
|
|
21
3
|
import { INBOX_ITEM_ADDED_TOPIC, RUN_UPDATED_TOPIC } from '../api/graphql-api/graphql-ws/constants.js';
|
|
22
4
|
export const MAX_RUN_IDS = 50;
|
|
23
|
-
/** Below the SDK inner-hop default of 60000ms with margin for two serial hops + the sweep itself. */
|
|
24
5
|
export const MAX_SERVER_HOLD_MS = 45_000;
|
|
25
6
|
export const DEFAULT_SERVER_HOLD_MS = 28_000;
|
|
26
7
|
const WAKEUP_DEBOUNCE_MS = 75;
|
|
27
8
|
const POLL_INTERVAL_MS = 500;
|
|
28
9
|
const ACTIVITY_READ_TIMEOUT_MS = 250;
|
|
29
|
-
const
|
|
30
|
-
const WATCH_STATES = new Set([
|
|
31
|
-
'pending_gate',
|
|
32
|
-
'question',
|
|
33
|
-
'completed',
|
|
34
|
-
'failed',
|
|
35
|
-
'blocked',
|
|
36
|
-
]);
|
|
37
|
-
const OBSERVE_TRANSITION_STATES = new Set([
|
|
10
|
+
const WATCH_TRANSITION_STATES = new Set([
|
|
38
11
|
'ready',
|
|
39
12
|
'pending_gate',
|
|
40
13
|
'question',
|
|
@@ -44,12 +17,9 @@ const OBSERVE_TRANSITION_STATES = new Set([
|
|
|
44
17
|
'retrying',
|
|
45
18
|
]);
|
|
46
19
|
const TERMINAL_RUN_STATUS = new Set(['completed', 'failed', 'cancelled']);
|
|
47
|
-
|
|
20
|
+
const REQUIRES_ATTENTION = new Set(['start_run', 'ask_human', 'inspect_digest', 'inspect_log']);
|
|
48
21
|
const MAX_CURSOR_ENTRIES = 200;
|
|
49
22
|
export const MAX_WATCH_CURSOR_CHARS = 8_192;
|
|
50
|
-
export const DEFAULT_HEARTBEAT_EVERY_MS = 5_000;
|
|
51
|
-
export const MAX_HEARTBEAT_EVERY_MS = MAX_SERVER_HOLD_MS;
|
|
52
|
-
/** The topics this watch composes off APP_PUB_SUB — exported so a test can assert sync with constants.js. */
|
|
53
23
|
export const WATCH_TOPICS = [INBOX_ITEM_ADDED_TOPIC, RUN_UPDATED_TOPIC];
|
|
54
24
|
export function clampServerHold(timeoutMs) {
|
|
55
25
|
const requested = timeoutMs ?? DEFAULT_SERVER_HOLD_MS;
|
|
@@ -57,18 +27,6 @@ export function clampServerHold(timeoutMs) {
|
|
|
57
27
|
return DEFAULT_SERVER_HOLD_MS;
|
|
58
28
|
return Math.min(requested, MAX_SERVER_HOLD_MS);
|
|
59
29
|
}
|
|
60
|
-
export function clampHeartbeatEvery(heartbeatEveryMs) {
|
|
61
|
-
const requested = heartbeatEveryMs ?? DEFAULT_HEARTBEAT_EVERY_MS;
|
|
62
|
-
if (!Number.isFinite(requested) || requested <= 0)
|
|
63
|
-
return DEFAULT_HEARTBEAT_EVERY_MS;
|
|
64
|
-
return Math.min(requested, MAX_HEARTBEAT_EVERY_MS);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* The cursor marker for an *actionable* run level. A *changed* marker (vs the caller's cursor) is a new
|
|
68
|
-
* transition worth delivering: a gate is keyed by its inbox id (deterministic per gateKey, so a
|
|
69
|
-
* *different* gate yields a different id), a terminal/blocked run by its status. `running` is not
|
|
70
|
-
* actionable and is never recorded — `null`.
|
|
71
|
-
*/
|
|
72
30
|
function markerFor(state) {
|
|
73
31
|
switch (state.state) {
|
|
74
32
|
case 'ready':
|
|
@@ -100,7 +58,6 @@ function decodeCursor(cursor) {
|
|
|
100
58
|
const parsed = JSON.parse(Buffer.from(cursor, 'base64url').toString('utf8'));
|
|
101
59
|
if (!parsed || parsed.v !== 1 || !parsed.m || typeof parsed.m !== 'object')
|
|
102
60
|
return {};
|
|
103
|
-
// Keep only well-formed string markers, capped — a forged/oversized cursor can't force unbounded work.
|
|
104
61
|
const out = {};
|
|
105
62
|
for (const [runId, marker] of Object.entries(parsed.m)) {
|
|
106
63
|
if (typeof marker !== 'string')
|
|
@@ -118,61 +75,64 @@ function decodeCursor(cursor) {
|
|
|
118
75
|
export class RunWatchService {
|
|
119
76
|
api;
|
|
120
77
|
pubSub;
|
|
121
|
-
|
|
122
|
-
constructor(api, pubSub, now = () => Date.now()) {
|
|
78
|
+
constructor(api, pubSub) {
|
|
123
79
|
this.api = api;
|
|
124
80
|
this.pubSub = pubSub;
|
|
125
|
-
this.now = now;
|
|
126
81
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
watchRuns(input) {
|
|
133
|
-
return this.watch(input, WATCH_STATES);
|
|
134
|
-
}
|
|
135
|
-
async observeRun(input) {
|
|
136
|
-
const mode = input.mode ?? 'actionable';
|
|
137
|
-
const activityRead = this.startActivitySignalRead(input.runId);
|
|
138
|
-
const timeoutMs = mode === 'heartbeat'
|
|
139
|
-
? Math.min(clampServerHold(input.timeoutMs), clampHeartbeatEvery(input.heartbeatEveryMs))
|
|
140
|
-
: clampServerHold(input.timeoutMs);
|
|
141
|
-
const watched = await this.watch({
|
|
142
|
-
runIds: [input.runId],
|
|
143
|
-
cursor: input.cursor,
|
|
144
|
-
timeoutMs,
|
|
145
|
-
signal: input.signal,
|
|
146
|
-
}, OBSERVE_TRANSITION_STATES);
|
|
147
|
-
const transition = watched.transitions[0];
|
|
148
|
-
const state = transition ?? await this.resolveRunState(input.runId);
|
|
149
|
-
const rawActivity = await activityRead.readIfSettled();
|
|
82
|
+
async getRunAttention(runId) {
|
|
83
|
+
const [state, rawActivity] = await Promise.all([
|
|
84
|
+
this.api.resolveRunState(runId),
|
|
85
|
+
this.readActivitySignal(runId),
|
|
86
|
+
]);
|
|
150
87
|
const activity = shouldExposeActivitySignal(state, rawActivity) ? rawActivity : undefined;
|
|
151
|
-
const nextAction =
|
|
88
|
+
const nextAction = deriveRunAttentionNextAction(state, activity);
|
|
152
89
|
const activeAttempt = shouldExposeActiveAttempt(state, activity) ? activity?.attempt : undefined;
|
|
153
|
-
const
|
|
154
|
-
? observeHeartbeat(state, activity, this.now)
|
|
155
|
-
: undefined;
|
|
90
|
+
const inbox = compactInbox(state.inbox);
|
|
156
91
|
return {
|
|
157
|
-
runId
|
|
158
|
-
cursor: watched.cursor,
|
|
92
|
+
runId,
|
|
159
93
|
state: state.state,
|
|
160
|
-
|
|
94
|
+
requiresAttention: REQUIRES_ATTENTION.has(nextAction),
|
|
95
|
+
nextAction,
|
|
161
96
|
...(state.issueRef ? { issueRef: state.issueRef } : {}),
|
|
162
|
-
...(
|
|
97
|
+
...(inbox ? { inbox } : {}),
|
|
98
|
+
...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
|
|
163
99
|
...(activeAttempt ? { activeAttempt } : {}),
|
|
164
|
-
|
|
165
|
-
nextAction,
|
|
166
|
-
...(mode === 'diagnostic' ? { diagnostic: observeDiagnostic(state, activity) } : {}),
|
|
100
|
+
suggestedTools: suggestedTools(state, activity),
|
|
167
101
|
};
|
|
168
102
|
}
|
|
103
|
+
async getRunStatus(runId) {
|
|
104
|
+
const [state, rawActivity] = await Promise.all([
|
|
105
|
+
this.api.resolveRunState(runId),
|
|
106
|
+
this.readActivitySignal(runId),
|
|
107
|
+
]);
|
|
108
|
+
const activity = shouldExposeActivitySignal(state, rawActivity) ? rawActivity : undefined;
|
|
109
|
+
const inbox = compactInbox(state.inbox);
|
|
110
|
+
const compact = compactActivity(activity);
|
|
111
|
+
return {
|
|
112
|
+
runId,
|
|
113
|
+
state: state.state,
|
|
114
|
+
runStatus: state.runStatus,
|
|
115
|
+
workflowStatus: state.workflowStatus,
|
|
116
|
+
...(state.issueRef ? { issueRef: state.issueRef } : {}),
|
|
117
|
+
...(state.latestEventAt ? { latestEventAt: state.latestEventAt } : {}),
|
|
118
|
+
...(state.latestEventType ? { latestEventType: state.latestEventType } : {}),
|
|
119
|
+
...(inbox ? { inbox } : {}),
|
|
120
|
+
...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
|
|
121
|
+
...(compact ? { activity: compact } : {}),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
watchRunChanges(input) {
|
|
125
|
+
return this.watch({
|
|
126
|
+
runIds: [input.runId],
|
|
127
|
+
cursor: input.cursor,
|
|
128
|
+
timeoutMs: input.timeoutMs,
|
|
129
|
+
signal: input.signal,
|
|
130
|
+
}, WATCH_TRANSITION_STATES);
|
|
131
|
+
}
|
|
169
132
|
async watch(input, actionable) {
|
|
170
133
|
const prev = decodeCursor(input.cursor);
|
|
171
134
|
const runIds = await this.resolveRunIds(input.runIds);
|
|
172
135
|
const serverHold = clampServerHold(input.timeoutMs);
|
|
173
|
-
// 1. Initial sweep first — deliver anything already actionable (the common "already gated" case
|
|
174
|
-
// returns instantly) without arming a subscription. A transition that lands AFTER this read but
|
|
175
|
-
// BEFORE the subscription resolves is not lost: the cursor re-call's next sweep observes it.
|
|
176
136
|
const sweep = await this.sweep(runIds);
|
|
177
137
|
const initial = collectNew(sweep, prev, actionable);
|
|
178
138
|
const cursor0 = mergeCursor(sweep, actionable);
|
|
@@ -182,7 +142,6 @@ export class RunWatchService {
|
|
|
182
142
|
if (runIds.length === 0 || serverHold <= 0 || input.signal?.aborted) {
|
|
183
143
|
return { transitions: [], cursor: encodeCursor(cursor0), timedOut: true };
|
|
184
144
|
}
|
|
185
|
-
// 2. Nothing actionable yet → hold this single request open for the next transition.
|
|
186
145
|
return this.holdForTransition(runIds, prev, actionable, cursor0, serverHold, input.signal);
|
|
187
146
|
}
|
|
188
147
|
holdForTransition(runIds, prev, actionable, cursor0, serverHold, signal) {
|
|
@@ -201,8 +160,6 @@ export class RunWatchService {
|
|
|
201
160
|
clearTimeout(debounceTimer);
|
|
202
161
|
if (pollTimer)
|
|
203
162
|
clearInterval(pollTimer);
|
|
204
|
-
// Detach the pubsub subscription — a held-open request that is torn down (abort/timeout) must
|
|
205
|
-
// not leak a subscriber on the long-lived APP_PUB_SUB.
|
|
206
163
|
for (const id of subIds)
|
|
207
164
|
this.pubSub?.unsubscribe(id);
|
|
208
165
|
subIds.length = 0;
|
|
@@ -223,18 +180,15 @@ export class RunWatchService {
|
|
|
223
180
|
states = await this.sweep(ids);
|
|
224
181
|
}
|
|
225
182
|
catch {
|
|
226
|
-
return;
|
|
183
|
+
return;
|
|
227
184
|
}
|
|
228
185
|
if (settled)
|
|
229
186
|
return;
|
|
230
187
|
const found = collectNew(states, prev, actionable);
|
|
231
|
-
// Merge the re-swept (dirty) runs' markers over this call's initial cursor so the other watched
|
|
232
|
-
// runs keep theirs; still this-call-only (no cross-call carry-forward → bounded).
|
|
233
188
|
if (found.length > 0) {
|
|
234
189
|
settle({ transitions: found, cursor: encodeCursor({ ...cursor0, ...mergeCursor(states, actionable) }), timedOut: false });
|
|
235
190
|
}
|
|
236
191
|
};
|
|
237
|
-
// Coalesce a burst of wakeups into one re-sweep per tick (each sweep is ~4 control-plane reads/run).
|
|
238
192
|
const scheduleReSweep = () => {
|
|
239
193
|
if (settled || debounceTimer)
|
|
240
194
|
return;
|
|
@@ -243,7 +197,6 @@ export class RunWatchService {
|
|
|
243
197
|
void reSweep();
|
|
244
198
|
}, WAKEUP_DEBOUNCE_MS);
|
|
245
199
|
};
|
|
246
|
-
// res.on('close') in McpHttpService aborts extra.signal mid-handler (SDK protocol _onclose).
|
|
247
200
|
if (signal)
|
|
248
201
|
signal.addEventListener('abort', onAbort, { once: true });
|
|
249
202
|
const holdTimer = setTimeout(() => settle(timeout()), serverHold);
|
|
@@ -251,7 +204,7 @@ export class RunWatchService {
|
|
|
251
204
|
const onMessage = (payload) => {
|
|
252
205
|
const rid = payload?.runId;
|
|
253
206
|
if (rid !== undefined && !watched.has(rid))
|
|
254
|
-
return;
|
|
207
|
+
return;
|
|
255
208
|
if (rid)
|
|
256
209
|
dirty.add(rid);
|
|
257
210
|
scheduleReSweep();
|
|
@@ -260,7 +213,6 @@ export class RunWatchService {
|
|
|
260
213
|
this.pubSub
|
|
261
214
|
.subscribe(topic, onMessage)
|
|
262
215
|
.then((id) => {
|
|
263
|
-
// The hold may have settled (timer/abort) before subscribe resolved — detach immediately.
|
|
264
216
|
if (settled)
|
|
265
217
|
this.pubSub?.unsubscribe(id);
|
|
266
218
|
else
|
|
@@ -270,7 +222,6 @@ export class RunWatchService {
|
|
|
270
222
|
}
|
|
271
223
|
}
|
|
272
224
|
else {
|
|
273
|
-
// Option B: no push source → poll. Same sweep+cursor correctness, latency rises by one interval.
|
|
274
225
|
pollTimer = setInterval(() => {
|
|
275
226
|
if (!settled)
|
|
276
227
|
void reSweep();
|
|
@@ -285,9 +236,6 @@ export class RunWatchService {
|
|
|
285
236
|
}
|
|
286
237
|
return [...new Set(provided)];
|
|
287
238
|
}
|
|
288
|
-
// Omitted → watch every active (non-terminal) run, capped. A run that terminates between polls drops
|
|
289
|
-
// out of this set, so omit-mode is best-effort for terminal transitions — pass explicit runIds for
|
|
290
|
-
// guaranteed terminal delivery (those are always swept regardless of status).
|
|
291
239
|
const runs = await this.api.listRuns({});
|
|
292
240
|
return runs
|
|
293
241
|
.filter((run) => !TERMINAL_RUN_STATUS.has(run.status))
|
|
@@ -302,7 +250,6 @@ export class RunWatchService {
|
|
|
302
250
|
if (error instanceof ControlPlaneError && error.code === 'ROW_NOT_FOUND') {
|
|
303
251
|
return { runId, state: 'failed', nextAction: 'run not found', runStatus: 'not_found', workflowStatus: '' };
|
|
304
252
|
}
|
|
305
|
-
// A transient read error must not masquerade as a terminal transition; keep waiting.
|
|
306
253
|
return { runId, state: 'running', nextAction: 'transient read error; will retry', runStatus: 'unknown', workflowStatus: '' };
|
|
307
254
|
});
|
|
308
255
|
}
|
|
@@ -316,19 +263,6 @@ export class RunWatchService {
|
|
|
316
263
|
return undefined;
|
|
317
264
|
}
|
|
318
265
|
}
|
|
319
|
-
startActivitySignalRead(runId) {
|
|
320
|
-
let settled = false;
|
|
321
|
-
const read = this.readActivitySignal(runId).then((activity) => {
|
|
322
|
-
settled = true;
|
|
323
|
-
return activity;
|
|
324
|
-
}, () => {
|
|
325
|
-
settled = true;
|
|
326
|
-
return undefined;
|
|
327
|
-
});
|
|
328
|
-
return {
|
|
329
|
-
readIfSettled: async () => settled ? read : undefined,
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
266
|
}
|
|
333
267
|
async function withDeadline(promise, timeoutMs) {
|
|
334
268
|
let timer;
|
|
@@ -370,13 +304,6 @@ function collectNew(states, prev, actionable) {
|
|
|
370
304
|
}
|
|
371
305
|
return out;
|
|
372
306
|
}
|
|
373
|
-
/**
|
|
374
|
-
* Build the next cursor from THIS sweep only — no carry-forward of prior keys, so it never grows beyond
|
|
375
|
-
* the watched set (bounds it at ≤ MAX_RUN_IDS). Records a marker only for states actionable in the
|
|
376
|
-
* CURRENT mode: a tool must not advance the cursor past a transition it did not deliver (else a later
|
|
377
|
-
* call in the other mode — e.g. watch_runs after wait_for_any_gate saw a `completed` run — would
|
|
378
|
-
* wrongly suppress it). `running` and other non-actionable states carry no marker.
|
|
379
|
-
*/
|
|
380
307
|
function mergeCursor(states, actionable) {
|
|
381
308
|
const next = {};
|
|
382
309
|
for (const state of states) {
|
|
@@ -414,7 +341,7 @@ function shouldExposeActivitySignal(state, activity) {
|
|
|
414
341
|
return false;
|
|
415
342
|
return state.state !== 'completed';
|
|
416
343
|
}
|
|
417
|
-
function
|
|
344
|
+
function deriveRunAttentionNextAction(state, activity) {
|
|
418
345
|
switch (state.state) {
|
|
419
346
|
case 'ready':
|
|
420
347
|
return 'start_run';
|
|
@@ -434,45 +361,6 @@ function observeNextAction(state, activity) {
|
|
|
434
361
|
return 'wait';
|
|
435
362
|
}
|
|
436
363
|
}
|
|
437
|
-
function observeTransition(state, activity) {
|
|
438
|
-
const inbox = compactInbox(state.inbox);
|
|
439
|
-
return {
|
|
440
|
-
runId: state.runId,
|
|
441
|
-
state: state.state,
|
|
442
|
-
nextAction: observeNextAction(state, activity),
|
|
443
|
-
...(state.issueRef ? { issueRef: state.issueRef } : {}),
|
|
444
|
-
...(inbox ? { inbox } : {}),
|
|
445
|
-
...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
|
|
446
|
-
};
|
|
447
|
-
}
|
|
448
|
-
function observeHeartbeat(state, activity, now) {
|
|
449
|
-
const compact = compactActivity(activity);
|
|
450
|
-
return {
|
|
451
|
-
observedAt: new Date(now()).toISOString(),
|
|
452
|
-
workflow: {
|
|
453
|
-
runStatus: state.runStatus,
|
|
454
|
-
workflowStatus: state.workflowStatus,
|
|
455
|
-
...(state.latestEventAt ? { latestEventAt: state.latestEventAt } : {}),
|
|
456
|
-
...(state.latestEventType ? { latestEventType: state.latestEventType } : {}),
|
|
457
|
-
},
|
|
458
|
-
...(compact ? { activity: compact } : {}),
|
|
459
|
-
};
|
|
460
|
-
}
|
|
461
|
-
function asRecord(value) {
|
|
462
|
-
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
463
|
-
return null;
|
|
464
|
-
return value;
|
|
465
|
-
}
|
|
466
|
-
function compactBlockingEvent(event) {
|
|
467
|
-
const record = asRecord(event);
|
|
468
|
-
if (!record)
|
|
469
|
-
return undefined;
|
|
470
|
-
return {
|
|
471
|
-
...(typeof record.eventId === 'string' ? { eventId: record.eventId } : {}),
|
|
472
|
-
...(typeof record.type === 'string' ? { type: record.type } : {}),
|
|
473
|
-
...(typeof record.createdAt === 'string' ? { createdAt: record.createdAt } : {}),
|
|
474
|
-
};
|
|
475
|
-
}
|
|
476
364
|
function compactActivity(activity) {
|
|
477
365
|
if (!activity)
|
|
478
366
|
return undefined;
|
|
@@ -486,27 +374,15 @@ function compactActivity(activity) {
|
|
|
486
374
|
};
|
|
487
375
|
}
|
|
488
376
|
function suggestedTools(state, activity) {
|
|
489
|
-
const nextAction =
|
|
377
|
+
const nextAction = deriveRunAttentionNextAction(state, activity);
|
|
490
378
|
if (nextAction === 'inspect_log')
|
|
491
379
|
return ['get_agent_log'];
|
|
492
380
|
if (nextAction === 'inspect_digest')
|
|
493
381
|
return ['get_run_digest'];
|
|
494
382
|
if (nextAction === 'ask_human')
|
|
495
|
-
return ['get_inbox_item', 'approve_gate', 'reject_gate', 'answer_question'];
|
|
383
|
+
return ['get_inbox_item', 'resolve_gate', 'approve_gate', 'reject_gate', 'answer_question'];
|
|
496
384
|
if (nextAction === 'start_run')
|
|
497
385
|
return ['start_run'];
|
|
498
386
|
return [];
|
|
499
387
|
}
|
|
500
|
-
function observeDiagnostic(state, activity) {
|
|
501
|
-
const latestBlockingEvent = compactBlockingEvent(state.latestBlockingEvent);
|
|
502
|
-
const compact = compactActivity(activity);
|
|
503
|
-
return {
|
|
504
|
-
runStatus: state.runStatus,
|
|
505
|
-
workflowStatus: state.workflowStatus,
|
|
506
|
-
...(state.blockedReason ? { blockedReason: state.blockedReason } : {}),
|
|
507
|
-
...(latestBlockingEvent ? { latestBlockingEvent } : {}),
|
|
508
|
-
...(compact ? { activity: compact } : {}),
|
|
509
|
-
suggestedTools: suggestedTools(state, activity),
|
|
510
|
-
};
|
|
511
|
-
}
|
|
512
388
|
//# sourceMappingURL=run-watch.service.js.map
|
|
@@ -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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"}
|