@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.
- package/README.md +143 -157
- package/control-plane/default-playbook/catalog/pipelines.json +217 -8
- package/control-plane/default-playbook/package.json +1 -1
- package/control-plane/default-playbook/prompts/developer.md +1 -0
- package/control-plane/default-playbook/prompts/triager.md +3 -0
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +3 -0
- package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
- package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js +30 -0
- package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
- package/dist/api/graphql-api/runs/inputs/create-run.input.js +6 -0
- package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
- package/dist/api/graphql-api/runs/model/run.model.js +6 -0
- package/dist/api/graphql-api/runs/model/run.model.js.map +1 -1
- package/dist/api/graphql-api/share/model/issue-ref.model.js +53 -0
- package/dist/api/graphql-api/share/model/issue-ref.model.js.map +1 -0
- package/dist/control-plane/bootstrap.js +14 -1
- package/dist/control-plane/bootstrap.js.map +1 -1
- package/dist/control-plane/client-transport.js +1 -1
- package/dist/control-plane/client-transport.js.map +1 -1
- package/dist/control-plane/default-playbook-policy.js +593 -0
- package/dist/control-plane/default-playbook-policy.js.map +1 -0
- package/dist/control-plane/seed-default-playbook.js +77 -8
- package/dist/control-plane/seed-default-playbook.js.map +1 -1
- package/dist/e2e/kit/agents.js +15 -21
- package/dist/e2e/kit/agents.js.map +1 -1
- package/dist/e2e/kit/assertions.js +12 -8
- package/dist/e2e/kit/assertions.js.map +1 -1
- package/dist/e2e/kit/fake-integrator.js +11 -2
- package/dist/e2e/kit/fake-integrator.js.map +1 -1
- package/dist/e2e/kit/git-target-repo.js +1 -1
- package/dist/engine/dbos.service.js +3 -0
- package/dist/engine/dbos.service.js.map +1 -1
- package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
- package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
- package/dist/features/runs/queries/handlers/runs-query.handlers.js +1 -0
- package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -1
- package/dist/mcp/mcp-capabilities.js +14 -1
- package/dist/mcp/mcp-capabilities.js.map +1 -1
- package/dist/mcp/mcp-facade.service.js +306 -11
- package/dist/mcp/mcp-facade.service.js.map +1 -1
- package/dist/mcp/mcp-tools.js +41 -14
- package/dist/mcp/mcp-tools.js.map +1 -1
- package/dist/observability/activity-signal.js +107 -0
- package/dist/observability/activity-signal.js.map +1 -0
- package/dist/observability/index.js +1 -0
- package/dist/observability/index.js.map +1 -1
- package/dist/pipeline/data-driven-task.workflow.js +482 -40
- package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
- package/dist/pipeline/pipeline.service.js +195 -101
- package/dist/pipeline/pipeline.service.js.map +1 -1
- package/dist/pipeline/route-contract.js +4 -3
- package/dist/pipeline/route-contract.js.map +1 -1
- package/dist/pipeline-core/kit/fixtures.js +72 -21
- package/dist/pipeline-core/kit/fixtures.js.map +1 -1
- package/dist/playbook/import-mapper.js +8 -1
- package/dist/playbook/import-mapper.js.map +1 -1
- package/dist/poller/pr-readiness-core.js +299 -28
- package/dist/poller/pr-readiness-core.js.map +1 -1
- package/dist/revisium/playbooks.service.js +17 -2
- package/dist/revisium/playbooks.service.js.map +1 -1
- package/dist/revisium/run.service.js +1 -0
- package/dist/revisium/run.service.js.map +1 -1
- package/dist/run/append-event.js +8 -5
- package/dist/run/append-event.js.map +1 -1
- package/dist/run/create-run.js +5 -1
- package/dist/run/create-run.js.map +1 -1
- package/dist/run/inspect-run.js +10 -3
- package/dist/run/inspect-run.js.map +1 -1
- package/dist/run/issue-ref.js +88 -0
- package/dist/run/issue-ref.js.map +1 -0
- package/dist/runners/claude-code.service.js +2 -2
- package/dist/runners/claude-code.service.js.map +1 -1
- package/dist/runners/codex.service.js +2 -2
- package/dist/runners/codex.service.js.map +1 -1
- package/dist/runners/integrator-branch-naming.js +13 -8
- package/dist/runners/integrator-branch-naming.js.map +1 -1
- package/dist/runners/integrator.js +254 -89
- package/dist/runners/integrator.js.map +1 -1
- package/dist/runners/worktree.service.js +2 -2
- package/dist/runners/worktree.service.js.map +1 -1
- package/dist/task-control-plane/pr-readiness.service.js +15 -13
- package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
- package/dist/task-control-plane/run-watch.service.js +234 -3
- package/dist/task-control-plane/run-watch.service.js.map +1 -1
- package/dist/task-control-plane/task-control-plane-api.service.js +272 -25
- package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
- package/dist/worker/artifact-store.js +21 -3
- package/dist/worker/artifact-store.js.map +1 -1
- package/dist/worker/build-context.js +19 -3
- package/dist/worker/build-context.js.map +1 -1
- package/dist/worker/claude-code-runner.js +76 -15
- package/dist/worker/claude-code-runner.js.map +1 -1
- package/dist/worker/codex-runner.js +40 -13
- package/dist/worker/codex-runner.js.map +1 -1
- package/dist/worker/process-executor.js +149 -20
- package/dist/worker/process-executor.js.map +1 -1
- package/dist/worker/runner-common.js +29 -0
- package/dist/worker/runner-common.js.map +1 -1
- package/dist/worker/runner.js +16 -1
- package/dist/worker/runner.js.map +1 -1
- 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
|
-
|
|
462
|
+
async listPipelines(input = {}) {
|
|
463
|
+
const pipelines = await this.api.listPipelines();
|
|
464
|
+
return input.includeDetails ? pipelines : pipelines.map(compactPipeline);
|
|
173
465
|
}
|
|
174
|
-
getPipeline(
|
|
175
|
-
|
|
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
|
-
|
|
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":"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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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"}
|
package/dist/mcp/mcp-tools.js
CHANGED
|
@@ -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:
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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 (
|
|
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)));
|