@revisium/orchestrator 0.1.0-alpha.8 → 0.1.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.
Files changed (127) hide show
  1. package/README.md +150 -130
  2. package/control-plane/default-playbook/catalog/pipelines.json +280 -11
  3. package/control-plane/default-playbook/package.json +1 -1
  4. package/control-plane/default-playbook/prompts/developer.md +1 -0
  5. package/control-plane/default-playbook/prompts/triager.md +3 -0
  6. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +3 -0
  7. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
  8. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
  9. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
  10. package/dist/api/graphql-api/pr/model/pr-readiness.model.js +30 -0
  11. package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
  12. package/dist/api/graphql-api/runs/inputs/create-run.input.js +6 -0
  13. package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
  14. package/dist/api/graphql-api/runs/model/run.model.js +6 -0
  15. package/dist/api/graphql-api/runs/model/run.model.js.map +1 -1
  16. package/dist/api/graphql-api/share/model/issue-ref.model.js +53 -0
  17. package/dist/api/graphql-api/share/model/issue-ref.model.js.map +1 -0
  18. package/dist/cli/commands/lifecycle.js +113 -8
  19. package/dist/cli/commands/lifecycle.js.map +1 -1
  20. package/dist/cli/commands/mcp.js +8 -1
  21. package/dist/cli/commands/mcp.js.map +1 -1
  22. package/dist/cli/commands/process-tree.js +42 -0
  23. package/dist/cli/commands/process-tree.js.map +1 -1
  24. package/dist/cli/commands/rogue-reaper.js +63 -0
  25. package/dist/cli/commands/rogue-reaper.js.map +1 -0
  26. package/dist/config.js +9 -0
  27. package/dist/config.js.map +1 -1
  28. package/dist/control-plane/bootstrap.js +14 -1
  29. package/dist/control-plane/bootstrap.js.map +1 -1
  30. package/dist/control-plane/client-transport.js +1 -1
  31. package/dist/control-plane/client-transport.js.map +1 -1
  32. package/dist/control-plane/default-playbook-policy.js +593 -0
  33. package/dist/control-plane/default-playbook-policy.js.map +1 -0
  34. package/dist/control-plane/seed-default-playbook.js +77 -8
  35. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  36. package/dist/e2e/kit/agents.js +15 -21
  37. package/dist/e2e/kit/agents.js.map +1 -1
  38. package/dist/e2e/kit/assertions.js +18 -13
  39. package/dist/e2e/kit/assertions.js.map +1 -1
  40. package/dist/e2e/kit/fake-integrator.js +11 -2
  41. package/dist/e2e/kit/fake-integrator.js.map +1 -1
  42. package/dist/e2e/kit/gh-emulator.js +2 -1
  43. package/dist/e2e/kit/gh-emulator.js.map +1 -1
  44. package/dist/e2e/kit/git-target-repo.js +1 -1
  45. package/dist/engine/dbos.service.js +3 -0
  46. package/dist/engine/dbos.service.js.map +1 -1
  47. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
  48. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
  49. package/dist/features/runs/queries/handlers/runs-query.handlers.js +1 -0
  50. package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -1
  51. package/dist/host/daemon.js +14 -1
  52. package/dist/host/daemon.js.map +1 -1
  53. package/dist/host/host-runtime.js +20 -2
  54. package/dist/host/host-runtime.js.map +1 -1
  55. package/dist/mcp/mcp-capabilities.js +16 -1
  56. package/dist/mcp/mcp-capabilities.js.map +1 -1
  57. package/dist/mcp/mcp-facade.service.js +325 -12
  58. package/dist/mcp/mcp-facade.service.js.map +1 -1
  59. package/dist/mcp/mcp-tools.js +58 -12
  60. package/dist/mcp/mcp-tools.js.map +1 -1
  61. package/dist/observability/activity-signal.js +107 -0
  62. package/dist/observability/activity-signal.js.map +1 -0
  63. package/dist/observability/index.js +1 -0
  64. package/dist/observability/index.js.map +1 -1
  65. package/dist/pipeline/data-driven-task.workflow.js +549 -44
  66. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  67. package/dist/pipeline/pipeline.service.js +195 -101
  68. package/dist/pipeline/pipeline.service.js.map +1 -1
  69. package/dist/pipeline/route-contract.js +4 -3
  70. package/dist/pipeline/route-contract.js.map +1 -1
  71. package/dist/pipeline-core/interpret.js +2 -0
  72. package/dist/pipeline-core/interpret.js.map +1 -1
  73. package/dist/pipeline-core/kit/builders.js +2 -0
  74. package/dist/pipeline-core/kit/builders.js.map +1 -1
  75. package/dist/pipeline-core/kit/fixtures.js +72 -21
  76. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  77. package/dist/pipeline-core/types.js +2 -0
  78. package/dist/pipeline-core/types.js.map +1 -1
  79. package/dist/pipeline-core/validate-dataflow.js +32 -0
  80. package/dist/pipeline-core/validate-dataflow.js.map +1 -1
  81. package/dist/playbook/import-mapper.js +8 -1
  82. package/dist/playbook/import-mapper.js.map +1 -1
  83. package/dist/poller/pr-readiness-core.js +299 -28
  84. package/dist/poller/pr-readiness-core.js.map +1 -1
  85. package/dist/revisium/playbooks.service.js +17 -2
  86. package/dist/revisium/playbooks.service.js.map +1 -1
  87. package/dist/revisium/run.service.js +1 -0
  88. package/dist/revisium/run.service.js.map +1 -1
  89. package/dist/run/append-event.js +8 -5
  90. package/dist/run/append-event.js.map +1 -1
  91. package/dist/run/create-run.js +5 -1
  92. package/dist/run/create-run.js.map +1 -1
  93. package/dist/run/inspect-run.js +30 -4
  94. package/dist/run/inspect-run.js.map +1 -1
  95. package/dist/run/issue-ref.js +88 -0
  96. package/dist/run/issue-ref.js.map +1 -0
  97. package/dist/runners/claude-code.service.js +2 -2
  98. package/dist/runners/claude-code.service.js.map +1 -1
  99. package/dist/runners/codex.service.js +2 -2
  100. package/dist/runners/codex.service.js.map +1 -1
  101. package/dist/runners/integrator-branch-naming.js +33 -13
  102. package/dist/runners/integrator-branch-naming.js.map +1 -1
  103. package/dist/runners/integrator.js +285 -72
  104. package/dist/runners/integrator.js.map +1 -1
  105. package/dist/runners/worktree.service.js +2 -2
  106. package/dist/runners/worktree.service.js.map +1 -1
  107. package/dist/task-control-plane/pr-readiness.service.js +15 -13
  108. package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
  109. package/dist/task-control-plane/run-watch.service.js +512 -0
  110. package/dist/task-control-plane/run-watch.service.js.map +1 -0
  111. package/dist/task-control-plane/task-control-plane-api.service.js +277 -25
  112. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  113. package/dist/worker/artifact-store.js +21 -3
  114. package/dist/worker/artifact-store.js.map +1 -1
  115. package/dist/worker/build-context.js +19 -3
  116. package/dist/worker/build-context.js.map +1 -1
  117. package/dist/worker/claude-code-runner.js +76 -15
  118. package/dist/worker/claude-code-runner.js.map +1 -1
  119. package/dist/worker/codex-runner.js +40 -13
  120. package/dist/worker/codex-runner.js.map +1 -1
  121. package/dist/worker/process-executor.js +149 -20
  122. package/dist/worker/process-executor.js.map +1 -1
  123. package/dist/worker/runner-common.js +29 -0
  124. package/dist/worker/runner-common.js.map +1 -1
  125. package/dist/worker/runner.js +16 -1
  126. package/dist/worker/runner.js.map +1 -1
  127. package/package.json +1 -1
@@ -5,7 +5,9 @@ import { bootstrapControlPlane, listInstalledPlaybooks } from '../control-plane/
5
5
  import { createDaemonInstaller, seedDefaultPlaybook, seedDefaultPlaybookBestEffort, } from '../control-plane/seed-default-playbook.js';
6
6
  import { McpFacadeService } from '../mcp/mcp-facade.service.js';
7
7
  import { McpHttpService } from '../mcp/mcp-http.service.js';
8
+ import { RunWatchService } from '../task-control-plane/run-watch.service.js';
8
9
  import { TaskControlPlaneApiService } from '../task-control-plane/task-control-plane-api.service.js';
10
+ import { APP_PUB_SUB } from '../api/graphql-api/graphql-ws/constants.js';
9
11
  import { hostCodeVersion, removeHostRuntimeIfMatches, writeHostRuntime } from './host-runtime.js';
10
12
  import { acquireQueueOwnership } from './queue-ownership.js';
11
13
  /** MCP endpoint port: REVO_MCP_PORT, else the GraphQL port + 1 (kept in the profile band). */
@@ -41,7 +43,18 @@ export async function runHostDaemon() {
41
43
  // resolvers use): resolving McpFacadeService itself via app.get left its injected `api` undefined.
42
44
  const mcpPort = resolveMcpPort(started.port);
43
45
  const api = started.app.get(TaskControlPlaneApiService, { strict: false });
44
- mcpServer = await new McpHttpService(new McpFacadeService(api)).start(mcpPort);
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
+ let watchPubSub;
50
+ try {
51
+ watchPubSub = started.app.get(APP_PUB_SUB, { strict: false });
52
+ }
53
+ catch {
54
+ watchPubSub = undefined;
55
+ }
56
+ const runWatch = new RunWatchService(api, watchPubSub);
57
+ mcpServer = await new McpHttpService(new McpFacadeService(api, runWatch)).start(mcpPort);
45
58
  const startedAt = new Date().toISOString();
46
59
  const snapshot = { pid: process.pid, startedAt };
47
60
  // host.json is written LAST — its presence is the "fully ready" signal ensureHost waits on.
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/host/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/host/daemon.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  import { existsSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
12
12
  import { join } from 'node:path';
13
13
  import { fileURLToPath } from 'node:url';
14
- import { getConfig, isAlive } from '../config.js';
14
+ import { getConfig, isAlive, profileDataDir, PROFILES } from '../config.js';
15
15
  let cachedCodeVersion;
16
16
  /**
17
17
  * This build's package version (e.g. `0.1.0-alpha.7`). Recorded in host.json so `ensureHost`/`doctor`
@@ -35,7 +35,10 @@ export function hostRuntimeFile() {
35
35
  return join(getConfig().dataDir, 'host.json');
36
36
  }
37
37
  export function readHostRuntime() {
38
- const file = hostRuntimeFile();
38
+ return readHostRuntimeAt(hostRuntimeFile());
39
+ }
40
+ /** Read+parse a host.json at an ARBITRARY path (a sibling profile's). Null when absent/corrupt. */
41
+ export function readHostRuntimeAt(file) {
39
42
  if (!existsSync(file))
40
43
  return null;
41
44
  try {
@@ -45,6 +48,21 @@ export function readHostRuntime() {
45
48
  return null;
46
49
  }
47
50
  }
51
+ /**
52
+ * Live tracked daemon pids across ALL profiles (slice 140 Phase 2). The rogue reaper must protect
53
+ * EVERY profile's daemon tree, not just the active one — else `revo stop --all --profile default`
54
+ * would SIGKILL a live `dev` daemon (and its bridges), aborting that profile's in-flight DBOS work.
55
+ * Band-default dirs only (a custom REVO_DATA_DIR layout isn't enumerable; documented in profileDataDir).
56
+ */
57
+ export function allTrackedHostPids() {
58
+ const pids = [];
59
+ for (const profile of Object.keys(PROFILES)) {
60
+ const runtime = readHostRuntimeAt(join(profileDataDir(profile), 'host.json'));
61
+ if (runtime && isAlive(runtime.pid))
62
+ pids.push(runtime.pid);
63
+ }
64
+ return pids;
65
+ }
48
66
  export function writeHostRuntime(state) {
49
67
  writeFileSync(hostRuntimeFile(), JSON.stringify(state, null, 2));
50
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"host-runtime.js","sourceRoot":"","sources":["../../src/host/host-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAalD,IAAI,iBAAqC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAA0B,CAAC;YAC/E,iBAAiB,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAKD,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAqB,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAuB;IACtD,aAAa,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAA6B;IACtE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,OAAO,EAAE,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,OAAO,EAAE,SAAS,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC/E,iBAAiB,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"host-runtime.js","sourceRoot":"","sources":["../../src/host/host-runtime.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export const MCP_TOOL_NAMES = [
8
8
  'create_run',
9
9
  'start_run',
10
10
  'resume_run',
11
+ 'observe_run',
11
12
  'cancel_run',
12
13
  'list_runs',
13
14
  'get_run',
@@ -20,6 +21,8 @@ export const MCP_TOOL_NAMES = [
20
21
  'read_agent_output_events',
21
22
  'get_run_digest',
22
23
  'wait_for_run',
24
+ 'wait_for_any_gate',
25
+ 'watch_runs',
23
26
  'list_inbox',
24
27
  'get_inbox_item',
25
28
  'get_pending_decisions',
@@ -42,12 +45,24 @@ export const MCP_INSTRUCTIONS = `Revo is a local-first software-development task
42
45
 
43
46
  Use these tools to manage tasks end-to-end from your coding agent:
44
47
  - create and start runs;
45
- - inspect run status, events, attempts, agent activity, bounded logs, and digests;
48
+ - resume terminal recoverable preflight blocks with resume_run after the target repo is repaired;
49
+ - observe run state through the low-context observe_run contract;
50
+ - inspect bounded digests, events, attempts, agent activity, and logs only when needed;
46
51
  - resolve human inbox gates and questions;
47
52
  - inspect installed playbooks, roles, and pipelines;
48
53
  - inspect PR readiness and actionable review feedback before resuming work;
49
54
  - validate repository context before starting live work.
50
55
 
56
+ Preferred run observation order:
57
+ 1. Use observe_run with the returned cursor for normal observation loops.
58
+ 2. Use observe_run with mode:"heartbeat" for explicit liveness checks.
59
+ 3. Use get_run_digest when observe_run.nextAction is "inspect_digest".
60
+ 4. Use get_agent_log with offsetBytes/limitBytes or tailBytes only when observe_run.nextAction is "inspect_log" or explicit debugging requires logs.
61
+ 5. Avoid get_run(includeEvents:true) and raw agent logs in polling loops.
62
+
63
+ Compatibility note: wait_for_run, wait_for_any_gate, and watch_runs remain registered for existing clients and
64
+ diagnostic scripts, but observe_run is the canonical normal observation surface.
65
+
51
66
  This MCP server is local stdio only and does not expose generic Revisium table CRUD.
52
67
  Use product-level tools instead of writing raw rows.`;
53
68
  //# sourceMappingURL=mcp-capabilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-capabilities.js","sourceRoot":"","sources":["../../src/mcp/mcp-capabilities.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY;IACZ,QAAQ;IACR,kBAAkB;IAClB,qBAAqB;IACrB,wBAAwB;IACxB,aAAa;IACb,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,0BAA0B;IAC1B,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,uBAAuB;IACvB,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;CACV,CAAC;AAIX,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;qDAWqB,CAAC"}
1
+ {"version":3,"file":"mcp-capabilities.js","sourceRoot":"","sources":["../../src/mcp/mcp-capabilities.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY;IACZ,QAAQ;IACR,kBAAkB;IAClB,qBAAqB;IACrB,wBAAwB;IACxB,aAAa;IACb,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,0BAA0B;IAC1B,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,gBAAgB;IAChB,uBAAuB;IACvB,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;CACV,CAAC;AAIX,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;qDAuBqB,CAAC"}
@@ -12,7 +12,10 @@ import { TaskControlPlaneApiService, } from '../task-control-plane/task-control-
12
12
  import { ControlPlaneError } from '../control-plane/errors.js';
13
13
  import { AgentObservabilityError } from '../observability/types.js';
14
14
  import { CreateRunWorkflowError } from '../run/create-run.js';
15
+ import { RunWatchService, } from '../task-control-plane/run-watch.service.js';
15
16
  import { MCP_TOOL_NAMES } from './mcp-capabilities.js';
17
+ const MCP_ACTIVITY_TIMEOUT_MS = 500;
18
+ const COMPACT_TEXT_LIMIT = 240;
16
19
  function formatCause(error) {
17
20
  if (error instanceof ControlPlaneError) {
18
21
  const status = error.status === undefined ? '' : ` status=${error.status}`;
@@ -30,10 +33,291 @@ function exposeApplicationError(promise) {
30
33
  throw error;
31
34
  });
32
35
  }
36
+ function asRecord(value) {
37
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
38
+ return null;
39
+ return value;
40
+ }
41
+ function asString(value) {
42
+ return typeof value === 'string' && value.length > 0 ? value : undefined;
43
+ }
44
+ function asNumber(value) {
45
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
46
+ }
47
+ function compactText(value, limit = COMPACT_TEXT_LIMIT) {
48
+ if (typeof value !== 'string')
49
+ return undefined;
50
+ const normalized = value.replace(/\s+/g, ' ').trim();
51
+ if (!normalized)
52
+ return undefined;
53
+ return normalized.length > limit ? `${normalized.slice(0, limit - 3)}...` : normalized;
54
+ }
55
+ function compactStringArray(value, limit = COMPACT_TEXT_LIMIT) {
56
+ if (!Array.isArray(value))
57
+ return [];
58
+ return value.map((item) => compactText(item, limit)).filter((item) => Boolean(item));
59
+ }
60
+ function compactRecordArray(value) {
61
+ if (!Array.isArray(value))
62
+ return [];
63
+ return value.map(asRecord).filter((item) => item !== null);
64
+ }
65
+ function withDeadline(promise, timeoutMs) {
66
+ let timer;
67
+ const timeout = new Promise((resolve) => {
68
+ timer = setTimeout(() => resolve(undefined), timeoutMs);
69
+ });
70
+ return Promise.race([promise, timeout]).finally(() => {
71
+ if (timer)
72
+ clearTimeout(timer);
73
+ });
74
+ }
75
+ function definedEntries(record) {
76
+ return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
77
+ }
78
+ function compactRouteSummary(result) {
79
+ const workflow = asRecord(result.workflow);
80
+ const route = asRecord(workflow?.route) ?? asRecord(result.route) ?? result;
81
+ if (!route)
82
+ return undefined;
83
+ const routeGates = compactStringArray(route.routeGates);
84
+ const roles = Array.isArray(route.roles)
85
+ ? route.roles
86
+ .map((role) => {
87
+ if (typeof role === 'string')
88
+ return role;
89
+ const roleRecord = asRecord(role);
90
+ return asString(roleRecord?.role) ?? asString(roleRecord?.roleId) ?? asString(roleRecord?.id);
91
+ })
92
+ .filter((role) => Boolean(role))
93
+ : [];
94
+ const summary = definedEntries({
95
+ playbookId: asString(route.playbookId),
96
+ pipelineId: asString(route.pipelineId),
97
+ engine: asString(workflow?.engine) ?? asString(route.engine),
98
+ routeGates: routeGates.length > 0 ? routeGates : undefined,
99
+ roles: roles.length > 0 ? roles : undefined,
100
+ });
101
+ return Object.keys(summary).length > 0 ? summary : undefined;
102
+ }
103
+ function compactExecutionProfile(value) {
104
+ const profile = asRecord(value);
105
+ if (!profile)
106
+ return undefined;
107
+ return definedEntries({
108
+ id: asString(profile.id),
109
+ });
110
+ }
111
+ function compactRouteDecision(value) {
112
+ const route = asRecord(value);
113
+ if (!route)
114
+ return value;
115
+ const roleBindings = compactRecordArray(route.roleBindings);
116
+ const summary = compactRouteSummary(route) ?? {};
117
+ return definedEntries({
118
+ ...summary,
119
+ source: asString(route.source),
120
+ executionProfile: compactExecutionProfile(route.executionProfile),
121
+ roleBindingCount: roleBindings.length > 0 ? roleBindings.length : undefined,
122
+ });
123
+ }
124
+ function compactExecutionPolicySummary(value) {
125
+ const policy = asRecord(value);
126
+ const template = asRecord(policy?.template_json) ?? asRecord(policy?.templateJson);
127
+ const nodes = asRecord(template?.nodes);
128
+ return definedEntries({
129
+ hasTemplate: Boolean(template),
130
+ specVersion: asString(template?.specVersion),
131
+ pipelineId: asString(template?.pipelineId),
132
+ nodeCount: nodes ? Object.keys(nodes).length : undefined,
133
+ });
134
+ }
135
+ function compactPipeline(value) {
136
+ const pipeline = asRecord(value);
137
+ if (!pipeline)
138
+ return value;
139
+ return definedEntries({
140
+ id: asString(pipeline.id),
141
+ playbookId: asString(pipeline.playbookId),
142
+ pipelineId: asString(pipeline.pipelineId),
143
+ path: asString(pipeline.path),
144
+ triggers: compactStringArray(pipeline.triggers),
145
+ requiredRoles: compactStringArray(pipeline.requiredRoles),
146
+ alternativeRoles: compactRecordArray(pipeline.alternativeRoles),
147
+ optionalRoles: compactStringArray(pipeline.optionalRoles),
148
+ routeGates: compactStringArray(pipeline.routeGates),
149
+ executionPolicySummary: compactExecutionPolicySummary(pipeline.executionPolicy),
150
+ });
151
+ }
152
+ function compactCreateRunResult(value) {
153
+ const result = asRecord(value);
154
+ if (!result)
155
+ return value;
156
+ const workflow = asRecord(result.workflow);
157
+ return definedEntries({
158
+ runId: asString(result.runId),
159
+ taskId: asString(result.taskId),
160
+ eventId: asString(result.eventId),
161
+ status: asString(result.status),
162
+ started: typeof result.started === 'boolean' ? result.started : undefined,
163
+ workflow: workflow
164
+ ? definedEntries({
165
+ runId: asString(workflow.runId),
166
+ workflowID: asString(workflow.workflowID),
167
+ alreadyStarted: typeof workflow.alreadyStarted === 'boolean' ? workflow.alreadyStarted : undefined,
168
+ engine: asString(workflow.engine),
169
+ })
170
+ : undefined,
171
+ routeSummary: compactRouteSummary(result),
172
+ });
173
+ }
174
+ function compactInboxItem(value) {
175
+ const item = asRecord(value);
176
+ if (!item)
177
+ return value;
178
+ const context = asRecord(item.context);
179
+ const options = Array.isArray(context?.options) ? context.options.length : undefined;
180
+ return definedEntries({
181
+ id: asString(item.id),
182
+ kind: asString(item.kind),
183
+ status: asString(item.status),
184
+ title: compactText(item.title),
185
+ runId: asString(item.runId),
186
+ stepId: asString(item.stepId),
187
+ topic: asString(context?.topic),
188
+ optionCount: options,
189
+ });
190
+ }
191
+ function compactEventSummary(event) {
192
+ const payload = asRecord(event.payload);
193
+ const parts = [payload?.role, payload?.stepKey, payload?.attemptId]
194
+ .filter((part) => typeof part === 'string' && part.length > 0);
195
+ if (parts.length > 0)
196
+ return parts.join(' ');
197
+ return compactText(payload?.reason) ?? compactText(payload?.verdict) ?? compactText(payload?.lesson) ?? asString(event.type) ?? 'event';
198
+ }
199
+ function compactRunEvent(value) {
200
+ const event = asRecord(value);
201
+ if (!event)
202
+ return value;
203
+ return definedEntries({
204
+ eventId: asString(event.eventId),
205
+ type: asString(event.type),
206
+ actor: asString(event.actor),
207
+ createdAt: event.createdAt,
208
+ taskId: asString(event.taskId),
209
+ stepId: asString(event.stepId),
210
+ summary: compactEventSummary(event),
211
+ });
212
+ }
213
+ function compactRunDigest(value) {
214
+ const digest = asRecord(value);
215
+ if (!digest)
216
+ return value;
217
+ return definedEntries({
218
+ run: digest.run,
219
+ tasks: digest.tasks,
220
+ pendingInbox: Array.isArray(digest.pendingInbox) ? digest.pendingInbox.map(compactInboxItem) : digest.pendingInbox,
221
+ latestEvents: Array.isArray(digest.latestEvents) ? digest.latestEvents.map(compactRunEvent) : digest.latestEvents,
222
+ usage: digest.usage,
223
+ blockedReason: compactText(digest.blockedReason),
224
+ });
225
+ }
226
+ function compactFeedbackItems(value) {
227
+ return compactRecordArray(value).map((item) => definedEntries({
228
+ source: asString(item.source),
229
+ summary: compactText(item.summary),
230
+ severity: asString(item.severity),
231
+ path: asString(item.path),
232
+ line: asNumber(item.line),
233
+ author: asString(item.author),
234
+ provider: asString(item.provider),
235
+ reason: compactText(item.reason),
236
+ blocking: typeof item.blocking === 'boolean' ? item.blocking : undefined,
237
+ evidence: compactStringArray(item.evidence),
238
+ resumeAfter: asString(item.resumeAfter),
239
+ }));
240
+ }
241
+ function compactFeedback(value) {
242
+ const feedback = asRecord(value);
243
+ if (!feedback)
244
+ return value;
245
+ return definedEntries({
246
+ developerFixes: compactFeedbackItems(feedback.developerFixes),
247
+ humanDecisions: compactFeedbackItems(feedback.humanDecisions),
248
+ providerWait: compactFeedbackItems(feedback.providerWait),
249
+ ignoredNoise: compactFeedbackItems(feedback.ignoredNoise),
250
+ });
251
+ }
252
+ function compactReviewThreads(value) {
253
+ const reviewThreads = asRecord(value);
254
+ if (!reviewThreads)
255
+ return value;
256
+ return definedEntries({
257
+ totalCount: asNumber(reviewThreads.totalCount),
258
+ items: compactRecordArray(reviewThreads.items).map((thread) => definedEntries({
259
+ id: asString(thread.id),
260
+ path: asString(thread.path),
261
+ line: asNumber(thread.line),
262
+ author: asString(thread.author),
263
+ body: compactText(thread.body),
264
+ url: asString(thread.url),
265
+ })),
266
+ });
267
+ }
268
+ function compactCiSummary(value) {
269
+ const summary = asRecord(value);
270
+ if (!summary)
271
+ return value;
272
+ return definedEntries({
273
+ ci_passed: typeof summary.ci_passed === 'boolean' ? summary.ci_passed : undefined,
274
+ checks: summary.checks,
275
+ isDraft: typeof summary.isDraft === 'boolean' ? summary.isDraft : undefined,
276
+ mergeStateStatus: asString(summary.mergeStateStatus),
277
+ reviewDecision: asString(summary.reviewDecision),
278
+ mergeable: asString(summary.mergeable),
279
+ issueRef: summary.issueRef,
280
+ sonar_issues: asNumber(summary.sonar_issues),
281
+ sonar_hotspots_to_review: asNumber(summary.sonar_hotspots_to_review),
282
+ sonar_unavailable: summary.sonar_unavailable,
283
+ humanReviewCount: compactRecordArray(summary.human_reviews).length,
284
+ humanCommentCount: compactRecordArray(summary.human_comments).length,
285
+ botCommentCount: compactRecordArray(summary.bot_comments).length,
286
+ });
287
+ }
288
+ function compactPrReadiness(value) {
289
+ const readiness = asRecord(value);
290
+ if (!readiness)
291
+ return value;
292
+ const evidence = compactStringArray(readiness.evidence);
293
+ return definedEntries({
294
+ verdict: asString(readiness.verdict),
295
+ pr: readiness.pr,
296
+ checks: readiness.checks,
297
+ reviewDecision: asString(readiness.reviewDecision),
298
+ reviewThreads: compactReviewThreads(readiness.reviewThreads),
299
+ providerState: readiness.providerState,
300
+ sonar: readiness.sonar,
301
+ nextAction: asString(readiness.nextAction),
302
+ evidence: evidence.length > 0 ? evidence : undefined,
303
+ feedback: compactFeedback(readiness.feedback),
304
+ ciSummary: compactCiSummary(readiness.ciSummary),
305
+ });
306
+ }
33
307
  let McpFacadeService = class McpFacadeService {
34
308
  api;
35
- constructor(api) {
309
+ /**
310
+ * `runWatch` is injected by the daemon with a pubSub-backed instance (slice 141 D2, option A). When
311
+ * absent (e2e/stdio/tests construct the facade with only the api), we lazily build a poll-fallback
312
+ * watch (option B) — equivalent correctness, slightly higher latency.
313
+ */
314
+ runWatchInstance;
315
+ constructor(api, runWatch) {
36
316
  this.api = api;
317
+ this.runWatchInstance = runWatch;
318
+ }
319
+ get runWatch() {
320
+ return (this.runWatchInstance ??= new RunWatchService(this.api));
37
321
  }
38
322
  getCapabilities() {
39
323
  return {
@@ -44,7 +328,19 @@ let McpFacadeService = class McpFacadeService {
44
328
  'Local stdio MCP server; no remote HTTP listener.',
45
329
  'Tools expose product operations, not generic Revisium row CRUD.',
46
330
  'Runs are driven by installed playbooks, pipeline catalogs, and execution profiles.',
331
+ 'Normal run polling should use observe_run with its cursor; compatibility watch tools remain available for older clients and diagnostics.',
47
332
  ],
333
+ observation: {
334
+ preferredOrder: [
335
+ 'observe_run with cursor for normal observation',
336
+ 'observe_run mode:"heartbeat" for explicit liveness checks',
337
+ 'get_run_digest when observe_run.nextAction is "inspect_digest"',
338
+ 'get_agent_log with offsetBytes/limitBytes or tailBytes when observe_run.nextAction is "inspect_log" or explicit debugging requires logs',
339
+ 'avoid get_run(includeEvents:true) and raw agent logs in polling loops',
340
+ ],
341
+ compatibilityTools: ['wait_for_run', 'wait_for_any_gate', 'watch_runs'],
342
+ diagnosticTools: ['get_run_digest', 'get_agent_log', 'get_run_events', 'get_agent_activity'],
343
+ },
48
344
  };
49
345
  }
50
346
  getStatus() {
@@ -63,7 +359,7 @@ let McpFacadeService = class McpFacadeService {
63
359
  return this.api.getRepositoryContext(input);
64
360
  }
65
361
  createRun(input) {
66
- return this.api.createRun(input).catch((error) => {
362
+ return this.api.createRun(input).then((result) => compactCreateRunResult(result)).catch((error) => {
67
363
  if (error instanceof CreateRunWorkflowError) {
68
364
  const created = Object.keys(error.createdIds).length > 0
69
365
  ? `; createdBeforeFailure=${JSON.stringify(error.createdIds)}`
@@ -95,7 +391,10 @@ let McpFacadeService = class McpFacadeService {
95
391
  return this.api.getRunLog(input);
96
392
  }
97
393
  getAgentActivity(runId) {
98
- return exposeApplicationError(this.api.getAgentActivity(runId));
394
+ return withDeadline(exposeApplicationError(this.api.getAgentActivity(runId)), MCP_ACTIVITY_TIMEOUT_MS)
395
+ .then((activity) => activity === undefined
396
+ ? { runId, activity: null, unavailable: true, reason: 'timeout' }
397
+ : activity);
99
398
  }
100
399
  getAgentAttempts(runId) {
101
400
  return exposeApplicationError(this.api.getAgentAttempts(runId));
@@ -110,11 +409,20 @@ let McpFacadeService = class McpFacadeService {
110
409
  return exposeApplicationError(this.api.readAgentOutputEvents(input));
111
410
  }
112
411
  getRunDigest(runId) {
113
- return this.api.getRunDigest(runId);
412
+ return this.api.getRunDigest(runId).then((digest) => compactRunDigest(digest));
114
413
  }
115
414
  waitForRun(input) {
116
415
  return this.api.waitForRun(input);
117
416
  }
417
+ observeRun(input) {
418
+ return this.runWatch.observeRun(input);
419
+ }
420
+ waitForAnyGate(input) {
421
+ return this.runWatch.waitForAnyGate(input);
422
+ }
423
+ watchRuns(input) {
424
+ return this.runWatch.watchRuns(input);
425
+ }
118
426
  listInbox(filter) {
119
427
  return this.api.listInbox(filter);
120
428
  }
@@ -151,17 +459,21 @@ let McpFacadeService = class McpFacadeService {
151
459
  getRole(roleId) {
152
460
  return this.api.getRole(roleId);
153
461
  }
154
- listPipelines() {
155
- return this.api.listPipelines();
462
+ async listPipelines(input = {}) {
463
+ const pipelines = await this.api.listPipelines();
464
+ return input.includeDetails ? pipelines : pipelines.map(compactPipeline);
156
465
  }
157
- getPipeline(pipelineId) {
158
- return this.api.getPipeline(pipelineId);
466
+ async getPipeline(input) {
467
+ const pipeline = await this.api.getPipeline(input.pipelineId);
468
+ return input.includeDetails ? pipeline : compactPipeline(pipeline);
159
469
  }
160
- simulateRoute(input) {
161
- return this.api.simulateRoute(input);
470
+ async simulateRoute(input) {
471
+ const { includeDetails, ...routeInput } = input;
472
+ const route = await this.api.simulateRoute(routeInput);
473
+ return includeDetails ? route : compactRouteDecision(route);
162
474
  }
163
475
  getPrReadiness(input) {
164
- return this.api.getPrReadiness(input);
476
+ return this.api.getPrReadiness(input).then((readiness) => compactPrReadiness(readiness));
165
477
  }
166
478
  listPrFeedback(input) {
167
479
  return this.api.listPrFeedback(input);
@@ -169,7 +481,8 @@ let McpFacadeService = class McpFacadeService {
169
481
  };
170
482
  McpFacadeService = __decorate([
171
483
  Injectable(),
172
- __metadata("design:paramtypes", [TaskControlPlaneApiService])
484
+ __metadata("design:paramtypes", [TaskControlPlaneApiService,
485
+ RunWatchService])
173
486
  ], McpFacadeService);
174
487
  export { McpFacadeService };
175
488
  //# sourceMappingURL=mcp-facade.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-facade.service.js","sourceRoot":"","sources":["../../src/mcp/mcp-facade.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-facade.service.js","sourceRoot":"","sources":["../../src/mcp/mcp-facade.service.ts"],"names":[],"mappings":"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"}