@revisium/orchestrator 0.1.0-alpha.9 → 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 (103) hide show
  1. package/README.md +143 -157
  2. package/control-plane/default-playbook/catalog/pipelines.json +217 -8
  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/control-plane/bootstrap.js +14 -1
  19. package/dist/control-plane/bootstrap.js.map +1 -1
  20. package/dist/control-plane/client-transport.js +1 -1
  21. package/dist/control-plane/client-transport.js.map +1 -1
  22. package/dist/control-plane/default-playbook-policy.js +593 -0
  23. package/dist/control-plane/default-playbook-policy.js.map +1 -0
  24. package/dist/control-plane/seed-default-playbook.js +77 -8
  25. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  26. package/dist/e2e/kit/agents.js +15 -21
  27. package/dist/e2e/kit/agents.js.map +1 -1
  28. package/dist/e2e/kit/assertions.js +12 -8
  29. package/dist/e2e/kit/assertions.js.map +1 -1
  30. package/dist/e2e/kit/fake-integrator.js +11 -2
  31. package/dist/e2e/kit/fake-integrator.js.map +1 -1
  32. package/dist/e2e/kit/git-target-repo.js +1 -1
  33. package/dist/engine/dbos.service.js +3 -0
  34. package/dist/engine/dbos.service.js.map +1 -1
  35. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
  36. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
  37. package/dist/features/runs/queries/handlers/runs-query.handlers.js +1 -0
  38. package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -1
  39. package/dist/mcp/mcp-capabilities.js +14 -1
  40. package/dist/mcp/mcp-capabilities.js.map +1 -1
  41. package/dist/mcp/mcp-facade.service.js +306 -11
  42. package/dist/mcp/mcp-facade.service.js.map +1 -1
  43. package/dist/mcp/mcp-tools.js +41 -14
  44. package/dist/mcp/mcp-tools.js.map +1 -1
  45. package/dist/observability/activity-signal.js +107 -0
  46. package/dist/observability/activity-signal.js.map +1 -0
  47. package/dist/observability/index.js +1 -0
  48. package/dist/observability/index.js.map +1 -1
  49. package/dist/pipeline/data-driven-task.workflow.js +482 -40
  50. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  51. package/dist/pipeline/pipeline.service.js +195 -101
  52. package/dist/pipeline/pipeline.service.js.map +1 -1
  53. package/dist/pipeline/route-contract.js +4 -3
  54. package/dist/pipeline/route-contract.js.map +1 -1
  55. package/dist/pipeline-core/kit/fixtures.js +72 -21
  56. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  57. package/dist/playbook/import-mapper.js +8 -1
  58. package/dist/playbook/import-mapper.js.map +1 -1
  59. package/dist/poller/pr-readiness-core.js +299 -28
  60. package/dist/poller/pr-readiness-core.js.map +1 -1
  61. package/dist/revisium/playbooks.service.js +17 -2
  62. package/dist/revisium/playbooks.service.js.map +1 -1
  63. package/dist/revisium/run.service.js +1 -0
  64. package/dist/revisium/run.service.js.map +1 -1
  65. package/dist/run/append-event.js +8 -5
  66. package/dist/run/append-event.js.map +1 -1
  67. package/dist/run/create-run.js +5 -1
  68. package/dist/run/create-run.js.map +1 -1
  69. package/dist/run/inspect-run.js +10 -3
  70. package/dist/run/inspect-run.js.map +1 -1
  71. package/dist/run/issue-ref.js +88 -0
  72. package/dist/run/issue-ref.js.map +1 -0
  73. package/dist/runners/claude-code.service.js +2 -2
  74. package/dist/runners/claude-code.service.js.map +1 -1
  75. package/dist/runners/codex.service.js +2 -2
  76. package/dist/runners/codex.service.js.map +1 -1
  77. package/dist/runners/integrator-branch-naming.js +13 -8
  78. package/dist/runners/integrator-branch-naming.js.map +1 -1
  79. package/dist/runners/integrator.js +254 -89
  80. package/dist/runners/integrator.js.map +1 -1
  81. package/dist/runners/worktree.service.js +2 -2
  82. package/dist/runners/worktree.service.js.map +1 -1
  83. package/dist/task-control-plane/pr-readiness.service.js +15 -13
  84. package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
  85. package/dist/task-control-plane/run-watch.service.js +234 -3
  86. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  87. package/dist/task-control-plane/task-control-plane-api.service.js +272 -25
  88. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  89. package/dist/worker/artifact-store.js +21 -3
  90. package/dist/worker/artifact-store.js.map +1 -1
  91. package/dist/worker/build-context.js +19 -3
  92. package/dist/worker/build-context.js.map +1 -1
  93. package/dist/worker/claude-code-runner.js +76 -15
  94. package/dist/worker/claude-code-runner.js.map +1 -1
  95. package/dist/worker/codex-runner.js +40 -13
  96. package/dist/worker/codex-runner.js.map +1 -1
  97. package/dist/worker/process-executor.js +149 -20
  98. package/dist/worker/process-executor.js.map +1 -1
  99. package/dist/worker/runner-common.js +29 -0
  100. package/dist/worker/runner-common.js.map +1 -1
  101. package/dist/worker/runner.js +16 -1
  102. package/dist/worker/runner.js.map +1 -1
  103. package/package.json +1 -1
@@ -12,8 +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
+ import { RunWatchService, } from '../task-control-plane/run-watch.service.js';
16
16
  import { MCP_TOOL_NAMES } from './mcp-capabilities.js';
17
+ const MCP_ACTIVITY_TIMEOUT_MS = 500;
18
+ const COMPACT_TEXT_LIMIT = 240;
17
19
  function formatCause(error) {
18
20
  if (error instanceof ControlPlaneError) {
19
21
  const status = error.status === undefined ? '' : ` status=${error.status}`;
@@ -31,6 +33,277 @@ function exposeApplicationError(promise) {
31
33
  throw error;
32
34
  });
33
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
+ }
34
307
  let McpFacadeService = class McpFacadeService {
35
308
  api;
36
309
  /**
@@ -55,7 +328,19 @@ let McpFacadeService = class McpFacadeService {
55
328
  'Local stdio MCP server; no remote HTTP listener.',
56
329
  'Tools expose product operations, not generic Revisium row CRUD.',
57
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.',
58
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
+ },
59
344
  };
60
345
  }
61
346
  getStatus() {
@@ -74,7 +359,7 @@ let McpFacadeService = class McpFacadeService {
74
359
  return this.api.getRepositoryContext(input);
75
360
  }
76
361
  createRun(input) {
77
- return this.api.createRun(input).catch((error) => {
362
+ return this.api.createRun(input).then((result) => compactCreateRunResult(result)).catch((error) => {
78
363
  if (error instanceof CreateRunWorkflowError) {
79
364
  const created = Object.keys(error.createdIds).length > 0
80
365
  ? `; createdBeforeFailure=${JSON.stringify(error.createdIds)}`
@@ -106,7 +391,10 @@ let McpFacadeService = class McpFacadeService {
106
391
  return this.api.getRunLog(input);
107
392
  }
108
393
  getAgentActivity(runId) {
109
- 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);
110
398
  }
111
399
  getAgentAttempts(runId) {
112
400
  return exposeApplicationError(this.api.getAgentAttempts(runId));
@@ -121,11 +409,14 @@ let McpFacadeService = class McpFacadeService {
121
409
  return exposeApplicationError(this.api.readAgentOutputEvents(input));
122
410
  }
123
411
  getRunDigest(runId) {
124
- return this.api.getRunDigest(runId);
412
+ return this.api.getRunDigest(runId).then((digest) => compactRunDigest(digest));
125
413
  }
126
414
  waitForRun(input) {
127
415
  return this.api.waitForRun(input);
128
416
  }
417
+ observeRun(input) {
418
+ return this.runWatch.observeRun(input);
419
+ }
129
420
  waitForAnyGate(input) {
130
421
  return this.runWatch.waitForAnyGate(input);
131
422
  }
@@ -168,17 +459,21 @@ let McpFacadeService = class McpFacadeService {
168
459
  getRole(roleId) {
169
460
  return this.api.getRole(roleId);
170
461
  }
171
- listPipelines() {
172
- return this.api.listPipelines();
462
+ async listPipelines(input = {}) {
463
+ const pipelines = await this.api.listPipelines();
464
+ return input.includeDetails ? pipelines : pipelines.map(compactPipeline);
173
465
  }
174
- getPipeline(pipelineId) {
175
- 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);
176
469
  }
177
- simulateRoute(input) {
178
- 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);
179
474
  }
180
475
  getPrReadiness(input) {
181
- return this.api.getPrReadiness(input);
476
+ return this.api.getPrReadiness(input).then((readiness) => compactPrReadiness(readiness));
182
477
  }
183
478
  listPrFeedback(input) {
184
479
  return this.api.listPrFeedback(input);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-facade.service.js","sourceRoot":"","sources":["../../src/mcp/mcp-facade.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,0BAA0B,GAG3B,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAqC,MAAM,4CAA4C,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3E,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,sBAAsB,CAAI,OAAmB;IACpD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACtC,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IASR;IARnB;;;;OAIG;IACK,gBAAgB,CAAmB;IAE3C,YACmB,GAA+B,EAChD,QAA0B;QADT,QAAG,GAAH,GAAG,CAA4B;QAGhD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,eAAe;QACb,OAAO;YACL,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,CAAC,GAAG,cAAc,CAAC;YAC1B,KAAK,EAAE;gBACL,kDAAkD;gBAClD,iEAAiE;gBACjE,oFAAoF;aACrF;SACF,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;IAED,kBAAkB,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,KAUT;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxD,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;oBACtD,CAAC,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;oBAC9D,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,KAAwB;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,KAAwB;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,MAA4C;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAuE;QAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,KAAuD;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,CAAC,KAAwC;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC5B,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC5B,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,WAAW,CAAC,KAOX;QACC,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY,CAAC,KAA6E;QACxF,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,qBAAqB,CAAC,KAA6E;QACjG,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,KAAiE;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,KAAiB;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,KAAiB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,SAAS,CAAC,MAA4E;QACpF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,mBAAmB,CAAC,KAAc;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,KAA+C;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,KAA+C;QACxD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,KAAgE;QAC7E,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB,CAAC,KAKhB;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,KAMf;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa,CAAC,KAAiG;QAC7G,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,cAAc,CAAC,KAQd;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,KAQd;QACC,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;AA/OY,gBAAgB;IAD5B,UAAU,EAAE;qCAUa,0BAA0B;QACrC,eAAe;GAVjB,gBAAgB,CA+O5B"}
1
+ {"version":3,"file":"mcp-facade.service.js","sourceRoot":"","sources":["../../src/mcp/mcp-facade.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { MAX_WATCH_CURSOR_CHARS } from '../task-control-plane/run-watch.service.js';
2
3
  function json(value) {
3
4
  return {
4
5
  content: [
@@ -17,12 +18,20 @@ const agentStreamSchema = z.enum(['stdout', 'stderr', 'events', 'combined']);
17
18
  const agentLogByteSchema = z.number().int().positive().max(1048576).optional();
18
19
  const agentLogOffsetSchema = z.number().int().nonnegative().max(1048576).optional();
19
20
  const paramsSchema = z.record(z.string(), z.unknown()).optional();
21
+ const issueRefSchema = z.object({
22
+ repo: z.string().min(1),
23
+ number: z.number().int().positive(),
24
+ url: z.string().min(1),
25
+ }).optional();
26
+ const watchCursorSchema = z.string().max(MAX_WATCH_CURSOR_CHARS);
27
+ const observeRunModeSchema = z.enum(['actionable', 'heartbeat', 'diagnostic']);
20
28
  const prReadinessInputSchema = {
21
29
  repo: z.string().min(1).describe('GitHub repository in owner/name form, for example revisium/agent-orchestrator'),
22
30
  prNumber: z.number().int().positive().optional(),
23
31
  headBranch: z.string().min(1).optional(),
24
32
  baseBranch: z.string().min(1).optional().default('master'),
25
33
  sonarProject: z.string().min(1).optional(),
34
+ issueRef: issueRefSchema,
26
35
  includeComments: z.boolean().optional().default(true),
27
36
  includeReviewThreads: z.boolean().optional().default(true),
28
37
  };
@@ -31,7 +40,14 @@ const watchInputSchema = {
31
40
  // min(1): an explicit empty array would otherwise be treated like omission (watch-all) — surprising.
32
41
  runIds: z.array(z.string().min(1)).min(1).max(50).optional().describe('Runs to watch; omit to watch all active runs'),
33
42
  timeoutMs: z.number().int().nonnegative().max(45000).optional().describe('Server hold (clamped ≤45s)'),
34
- cursor: z.string().optional().describe('Resume cursor from a prior call; suppresses already-delivered transitions'),
43
+ cursor: watchCursorSchema.optional().describe('Resume cursor from a prior call; suppresses already-delivered transitions'),
44
+ };
45
+ const observeRunInputSchema = {
46
+ runId: runIdSchema,
47
+ cursor: watchCursorSchema.optional().describe('Resume cursor from a prior observe_run call'),
48
+ mode: observeRunModeSchema.optional().describe('Observation mode: actionable by default, heartbeat for liveness, diagnostic for bounded hints'),
49
+ timeoutMs: z.number().int().nonnegative().max(45000).optional().describe('Server hold (clamped ≤45s)'),
50
+ heartbeatEveryMs: z.number().int().positive().max(45000).optional().describe('Heartbeat cadence for mode:"heartbeat" (clamped ≤45s)'),
35
51
  };
36
52
  function assertValidAgentLogRange(input) {
37
53
  if (input.tailBytes !== undefined && (input.offsetBytes !== undefined || input.limitBytes !== undefined)) {
@@ -83,27 +99,33 @@ export function registerRevoMcpTools(server, facade) {
83
99
  playbookId: z.string().min(1).optional(),
84
100
  pipelineId: z.string().min(1).optional(),
85
101
  params: paramsSchema,
102
+ issueRef: issueRefSchema,
86
103
  priority: z.number().int().optional(),
87
104
  start: z.boolean().optional().describe('Start the workflow immediately after creating the run'),
88
105
  },
89
106
  annotations: { readOnlyHint: false },
90
107
  }, async (input) => json(await facade.createRun(input)));
91
108
  server.registerTool('start_run', {
92
- description: 'Start or reattach the durable pipeline workflow for an existing run.',
109
+ description: 'Start or reattach the durable pipeline workflow for an existing run. For a terminal recoverable preflight block, returns nextAction:"resume_run" without retrying or creating recovery.',
93
110
  inputSchema: {
94
111
  runId: runIdSchema,
95
112
  },
96
113
  annotations: { readOnlyHint: false },
97
114
  }, async (input) => json(await facade.startRun(input)));
98
115
  server.registerTool('resume_run', {
99
- description: 'Alias for start_run; reattaches a durable workflow by run ID.',
116
+ description: 'Resume an existing run. If the run is a terminal recoverable preflight block, creates or reuses a follow-up recovery run, returns the child runId, and starts/observes that child workflow.',
100
117
  inputSchema: {
101
118
  runId: runIdSchema,
102
119
  },
103
120
  annotations: { readOnlyHint: false },
104
121
  }, async (input) => json(await facade.resumeRun(input)));
122
+ server.registerTool('observe_run', {
123
+ description: 'Canonical low-context run observation. Use with the returned cursor for normal polling; returns compact state, transition, heartbeat/activity counters, and the next bounded action without raw logs or full events.',
124
+ inputSchema: observeRunInputSchema,
125
+ annotations: { readOnlyHint: true },
126
+ }, async (input, extra) => json(await facade.observeRun({ ...input, signal: extra?.signal })));
105
127
  server.registerTool('wait_for_run', {
106
- description: 'Resolve current run state and next action: pending_gate, question, running, blocked, failed, completed.',
128
+ description: 'Compatibility/diagnostic tool: resolve current run state and next action. Prefer observe_run with cursor for normal observation loops.',
107
129
  // Cap matches the MCP inner-hop SDK timeout budget (~60s): a longer busy-poll dies at the transport,
108
130
  // not the daemon. To wait across runs, prefer wait_for_any_gate / watch_runs.
109
131
  inputSchema: {
@@ -114,12 +136,12 @@ export function registerRevoMcpTools(server, facade) {
114
136
  annotations: { readOnlyHint: true },
115
137
  }, async (input) => json(await facade.waitForRun(input)));
116
138
  server.registerTool('wait_for_any_gate', {
117
- description: 'Bounded long-poll: block until ANY watched run hits an approval/question gate, returning the gate (with its inbox row) and a resume cursor. Returns immediately if one is already gated; otherwise holds the request open (≤45s) and returns {timedOut:true, cursor} so you can re-call with the cursor for gap-free, idempotent polling. Omit runIds to watch all active runs (capped).',
139
+ description: 'Compatibility/diagnostic bounded long-poll: block until ANY watched run hits an approval/question gate, returning the gate (with its inbox row) and a resume cursor. Prefer observe_run for normal observation loops. Omit runIds to watch all active runs (capped).',
118
140
  inputSchema: watchInputSchema,
119
141
  annotations: { readOnlyHint: true },
120
142
  }, async (input, extra) => json(await facade.waitForAnyGate({ ...input, signal: extra?.signal })));
121
143
  server.registerTool('watch_runs', {
122
- description: 'Like wait_for_any_gate, but also surfaces terminal (completed/failed) and blocked transitions block until any watched run hits the next actionable state. Returns {transitions, cursor, timedOut}; re-call with the cursor to continue. Omit runIds to watch all currently-active runs (capped); for guaranteed terminal-transition delivery pass explicit runIds (a run that terminates between polls drops out of the active set).',
144
+ description: 'Compatibility/diagnostic bounded long-poll: surfaces gate, terminal, failed, and blocked transitions. Prefer observe_run for normal observation loops. Returns {transitions, cursor, timedOut}; re-call with the cursor to continue.',
123
145
  inputSchema: watchInputSchema,
124
146
  annotations: { readOnlyHint: true },
125
147
  }, async (input, extra) => json(await facade.watchRuns({ ...input, signal: extra?.signal })));
@@ -139,7 +161,7 @@ export function registerRevoMcpTools(server, facade) {
139
161
  annotations: { readOnlyHint: true },
140
162
  }, async (input) => json(await facade.listRuns(input)));
141
163
  server.registerTool('get_run', {
142
- description: 'Show a run with tasks and steps; can include events and attempt log.',
164
+ description: 'Diagnostic tool: show a run with tasks and steps; can include bounded events and attempt summaries. Avoid includeEvents in polling loops; prefer observe_run and get_run_digest.',
143
165
  inputSchema: {
144
166
  runId: runIdSchema,
145
167
  includeEvents: z.boolean().optional(),
@@ -153,6 +175,7 @@ export function registerRevoMcpTools(server, facade) {
153
175
  runId: runIdSchema,
154
176
  type: z.string().optional(),
155
177
  limit: limitSchema,
178
+ expand: z.array(z.enum(['graph'])).optional().describe('Pass ["graph"] to include the full run_created graph payload instead of the compact summary.'),
156
179
  },
157
180
  annotations: { readOnlyHint: true },
158
181
  }, async (input) => json(await facade.getRunEvents(input)));
@@ -314,25 +337,29 @@ export function registerRevoMcpTools(server, facade) {
314
337
  annotations: { readOnlyHint: true },
315
338
  }, async ({ roleId }) => json(await facade.getRole(roleId)));
316
339
  server.registerTool('list_pipelines', {
317
- description: 'List installed pipeline summaries.',
318
- inputSchema: {},
340
+ description: 'List installed pipeline summaries. Compact by default; pass includeDetails:true only for execution policy graph/debugging.',
341
+ inputSchema: {
342
+ includeDetails: z.boolean().optional(),
343
+ },
319
344
  annotations: { readOnlyHint: true },
320
- }, async () => json(await facade.listPipelines()));
345
+ }, async (input) => json(await facade.listPipelines(input)));
321
346
  server.registerTool('get_pipeline', {
322
- description: 'Load an installed pipeline by row ID.',
347
+ description: 'Load an installed pipeline by row ID. Compact by default; pass includeDetails:true only for execution policy graph/debugging.',
323
348
  inputSchema: {
324
349
  pipelineId: z.string().min(1),
350
+ includeDetails: z.boolean().optional(),
325
351
  },
326
352
  annotations: { readOnlyHint: true },
327
- }, async ({ pipelineId }) => json(await facade.getPipeline(pipelineId)));
353
+ }, async (input) => json(await facade.getPipeline(input)));
328
354
  server.registerTool('simulate_route', {
329
- description: 'Return the current advisory route for a task without creating a run.',
355
+ description: 'Return the current advisory route for a task without creating a run. Compact by default; pass includeDetails:true only for route graph/debugging.',
330
356
  inputSchema: {
331
357
  title: z.string().min(1),
332
358
  repo: z.string().optional(),
333
359
  pipeline: z.string().optional(),
334
360
  playbookId: z.string().optional(),
335
361
  params: paramsSchema,
362
+ includeDetails: z.boolean().optional(),
336
363
  },
337
364
  annotations: { readOnlyHint: true },
338
365
  }, async (input) => json(await facade.simulateRoute(input)));
@@ -342,7 +369,7 @@ export function registerRevoMcpTools(server, facade) {
342
369
  annotations: { readOnlyHint: true },
343
370
  }, async (input) => json(await facade.getPrReadiness(input)));
344
371
  server.registerTool('list_pr_feedback', {
345
- description: 'Return the actionable PR feedback queue grouped by developer fixes, reviewer questions, provider waits, human decisions, ignored noise, and residual risks.',
372
+ description: 'Return the actionable PR feedback queue grouped by developer fixes, reviewer questions, provider waits, human decisions, ignored noise, and residual risks. Provider-wait items carry a `blocking` flag and a `nature` of "informational" (stale comment) or "blocking" (live pending check).',
346
373
  inputSchema: prReadinessInputSchema,
347
374
  annotations: { readOnlyHint: true },
348
375
  }, async (input) => json(await facade.listPrFeedback(input)));