@minicor/mcp-server 4.0.0 → 4.2.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 +6 -0
- package/dist/__tests__/dev-mode-draft.test.js +27 -19
- package/dist/__tests__/dev-mode-draft.test.js.map +1 -1
- package/dist/__tests__/jobs-tools.test.js +1 -0
- package/dist/__tests__/jobs-tools.test.js.map +1 -1
- package/dist/__tests__/laminar-client.test.js +31 -31
- package/dist/__tests__/laminar-client.test.js.map +1 -1
- package/dist/__tests__/lib-dev-mode.test.js +2 -2
- package/dist/__tests__/lib-dev-mode.test.js.map +1 -1
- package/dist/__tests__/recording-frames.test.js +42 -1
- package/dist/__tests__/recording-frames.test.js.map +1 -1
- package/dist/__tests__/server-surface.test.js +11 -9
- package/dist/__tests__/server-surface.test.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/laminar-client.d.ts +11 -14
- package/dist/laminar-client.d.ts.map +1 -1
- package/dist/laminar-client.js +25 -25
- package/dist/laminar-client.js.map +1 -1
- package/dist/lib.js +1 -1
- package/dist/recording-frames.d.ts +82 -9
- package/dist/recording-frames.d.ts.map +1 -1
- package/dist/recording-frames.js +254 -32
- package/dist/recording-frames.js.map +1 -1
- package/dist/seeer-client.d.ts +153 -0
- package/dist/seeer-client.d.ts.map +1 -0
- package/dist/seeer-client.js +146 -0
- package/dist/seeer-client.js.map +1 -0
- package/dist/server-surface.d.ts.map +1 -1
- package/dist/server-surface.js +12 -7
- package/dist/server-surface.js.map +1 -1
- package/dist/sync.js +3 -2
- package/dist/sync.js.map +1 -1
- package/dist/tools/core.d.ts.map +1 -1
- package/dist/tools/core.js +188 -22
- package/dist/tools/core.js.map +1 -1
- package/dist/tools/dev-mode-draft.d.ts.map +1 -1
- package/dist/tools/dev-mode-draft.js +63 -49
- package/dist/tools/dev-mode-draft.js.map +1 -1
- package/dist/tools/jobs.js +1 -1
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/recording-common.d.ts +11 -0
- package/dist/tools/recording-common.d.ts.map +1 -0
- package/dist/tools/recording-common.js +15 -0
- package/dist/tools/recording-common.js.map +1 -0
- package/dist/tools/recording.d.ts +3 -0
- package/dist/tools/recording.d.ts.map +1 -0
- package/dist/tools/recording.js +235 -0
- package/dist/tools/recording.js.map +1 -0
- package/dist/tools/workflow-ops.d.ts.map +1 -1
- package/dist/tools/workflow-ops.js +79 -5
- package/dist/tools/workflow-ops.js.map +1 -1
- package/package.json +1 -1
- package/skills/general/job-build-loop.md +10 -7
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client for the seeer (video_tool) video-understanding service.
|
|
3
|
+
*
|
|
4
|
+
* seeer runs the CV analysis (UI events, click inference, segments, step
|
|
5
|
+
* timeline) and heavy frame extraction server-side, with derived results
|
|
6
|
+
* cached as blobs next to the recording.
|
|
7
|
+
*
|
|
8
|
+
* BASE-URL SELECTION (mirrors middleware-service-client.ts):
|
|
9
|
+
*
|
|
10
|
+
* 1. PROXY mode — set `SEEER_SERVICE_PROXY_BASE` (the deployed frontend
|
|
11
|
+
* origin, e.g. https://app.laminar.run). Requests go to
|
|
12
|
+
* `${proxyBase}${prefix}/<path>` where `prefix` defaults to
|
|
13
|
+
* `/api/video-tool` (override with SEEER_SERVICE_PROXY_PREFIX) and the
|
|
14
|
+
* leading `/v1/` is stripped. Auth is the USER's Laminar bearer token —
|
|
15
|
+
* the frontend validates it and forwards with the service's API key,
|
|
16
|
+
* the same pattern as the agents / stitchy / cron proxies.
|
|
17
|
+
*
|
|
18
|
+
* 2. DIRECT — set `SEEER_SERVICE_URL` (e.g. the Cloud Run URL). Auth is the
|
|
19
|
+
* shared app token via `SEEER_SERVICE_TOKEN` (sent as X-API-Key). The
|
|
20
|
+
* service runs IAM-gated on Cloud Run (org policy forbids public access),
|
|
21
|
+
* so requests also need a Google identity token in Authorization:
|
|
22
|
+
* SEEER_SERVICE_ID_TOKEN static token (local testing:
|
|
23
|
+
* `gcloud auth print-identity-token`)
|
|
24
|
+
* SEEER_SERVICE_USE_GCP_IDENTITY set to 1 when the MCP itself runs on
|
|
25
|
+
* GCP; tokens come from the metadata
|
|
26
|
+
* server with the service URL audience
|
|
27
|
+
*
|
|
28
|
+
* Precedence: PROXY (1) > DIRECT (2) > disabled. When disabled, the
|
|
29
|
+
* frame/zoom/clip tools fall back to local ffmpeg (recording-frames.ts);
|
|
30
|
+
* analysis/annotation tools require the service.
|
|
31
|
+
*/
|
|
32
|
+
export function seeerServiceUrl() {
|
|
33
|
+
const url = process.env.SEEER_SERVICE_URL?.trim();
|
|
34
|
+
return url ? url.replace(/\/+$/, "") : undefined;
|
|
35
|
+
}
|
|
36
|
+
export function seeerProxyBase() {
|
|
37
|
+
const base = process.env.SEEER_SERVICE_PROXY_BASE?.trim();
|
|
38
|
+
return base ? base.replace(/\/+$/, "") : undefined;
|
|
39
|
+
}
|
|
40
|
+
function seeerProxyPrefix() {
|
|
41
|
+
return ("/" +
|
|
42
|
+
(process.env.SEEER_SERVICE_PROXY_PREFIX ?? "/api/video-tool")
|
|
43
|
+
.replace(/^\/+/, "")
|
|
44
|
+
.replace(/\/+$/, ""));
|
|
45
|
+
}
|
|
46
|
+
export function seeerAvailable() {
|
|
47
|
+
return seeerProxyBase() != null || seeerServiceUrl() != null;
|
|
48
|
+
}
|
|
49
|
+
let cachedIdentity = null;
|
|
50
|
+
/** Identity token for IAM-gated Cloud Run, from env or the GCP metadata server. */
|
|
51
|
+
async function identityToken(audience) {
|
|
52
|
+
const staticToken = process.env.SEEER_SERVICE_ID_TOKEN;
|
|
53
|
+
if (staticToken)
|
|
54
|
+
return staticToken;
|
|
55
|
+
if (process.env.SEEER_SERVICE_USE_GCP_IDENTITY !== "1")
|
|
56
|
+
return null;
|
|
57
|
+
if (cachedIdentity &&
|
|
58
|
+
cachedIdentity.audience === audience &&
|
|
59
|
+
Date.now() < cachedIdentity.expiresAtMs) {
|
|
60
|
+
return cachedIdentity.token;
|
|
61
|
+
}
|
|
62
|
+
const res = await fetch("http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity" +
|
|
63
|
+
`?audience=${encodeURIComponent(audience)}`, {
|
|
64
|
+
headers: { "Metadata-Flavor": "Google" },
|
|
65
|
+
// Never let a stalled metadata server hang recording-tool calls.
|
|
66
|
+
signal: AbortSignal.timeout(10_000),
|
|
67
|
+
});
|
|
68
|
+
if (!res.ok) {
|
|
69
|
+
throw new Error(`failed to fetch GCP identity token (${res.status})`);
|
|
70
|
+
}
|
|
71
|
+
const token = await res.text();
|
|
72
|
+
// Identity tokens last 1h; refresh with a 5 min buffer.
|
|
73
|
+
cachedIdentity = { audience, token, expiresAtMs: Date.now() + 55 * 60 * 1000 };
|
|
74
|
+
return token;
|
|
75
|
+
}
|
|
76
|
+
async function call(path, body, opts = {}, timeoutMs = 120_000) {
|
|
77
|
+
const proxy = seeerProxyBase();
|
|
78
|
+
const direct = seeerServiceUrl();
|
|
79
|
+
if (!proxy && !direct) {
|
|
80
|
+
throw new Error("The video-tool service is not configured (set SEEER_SERVICE_PROXY_BASE or SEEER_SERVICE_URL).");
|
|
81
|
+
}
|
|
82
|
+
const headers = { "Content-Type": "application/json" };
|
|
83
|
+
let url;
|
|
84
|
+
if (proxy) {
|
|
85
|
+
// PROXY mode: the frontend validates the USER bearer and forwards with the
|
|
86
|
+
// service API key (agents/stitchy/cron proxy convention).
|
|
87
|
+
if (!opts.userToken) {
|
|
88
|
+
throw new Error("video-tool proxy mode requires the user's bearer token.");
|
|
89
|
+
}
|
|
90
|
+
url = `${proxy}${seeerProxyPrefix()}/${path.replace(/^\/v1\//, "").replace(/^\/+/, "")}`;
|
|
91
|
+
headers["Authorization"] = `Bearer ${opts.userToken}`;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// DIRECT mode: app token in X-API-Key; Authorization stays free for the
|
|
95
|
+
// Google identity token that IAM-gated Cloud Run requires.
|
|
96
|
+
url = `${direct}${path}`;
|
|
97
|
+
const token = process.env.SEEER_SERVICE_TOKEN;
|
|
98
|
+
if (token)
|
|
99
|
+
headers["X-API-Key"] = token;
|
|
100
|
+
const idToken = await identityToken(direct);
|
|
101
|
+
if (idToken)
|
|
102
|
+
headers["Authorization"] = `Bearer ${idToken}`;
|
|
103
|
+
}
|
|
104
|
+
const controller = new AbortController();
|
|
105
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
106
|
+
try {
|
|
107
|
+
const res = await fetch(url, {
|
|
108
|
+
method: "POST",
|
|
109
|
+
headers,
|
|
110
|
+
body: JSON.stringify(body),
|
|
111
|
+
signal: controller.signal,
|
|
112
|
+
});
|
|
113
|
+
if (!res.ok) {
|
|
114
|
+
let detail = `${res.status}`;
|
|
115
|
+
try {
|
|
116
|
+
const parsed = (await res.json());
|
|
117
|
+
if (parsed.detail)
|
|
118
|
+
detail = `${res.status}: ${parsed.detail}`;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
/* non-JSON error body */
|
|
122
|
+
}
|
|
123
|
+
throw new Error(`seeer service error (${detail})`);
|
|
124
|
+
}
|
|
125
|
+
return (await res.json());
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
clearTimeout(timer);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export async function seeerAnalyze(params, opts = {}) {
|
|
132
|
+
return call("/v1/analyze", params, opts);
|
|
133
|
+
}
|
|
134
|
+
export async function seeerFrames(params, opts = {}) {
|
|
135
|
+
return call("/v1/frames", params, opts);
|
|
136
|
+
}
|
|
137
|
+
export async function seeerZoom(params, opts = {}) {
|
|
138
|
+
return call("/v1/zoom", params, opts);
|
|
139
|
+
}
|
|
140
|
+
export async function seeerClip(params, opts = {}) {
|
|
141
|
+
return call("/v1/clip", params, opts);
|
|
142
|
+
}
|
|
143
|
+
export async function seeerAnnotate(params, opts = {}) {
|
|
144
|
+
return call("/v1/annotate", params, opts);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=seeer-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seeer-client.js","sourceRoot":"","sources":["../src/seeer-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-surface.d.ts","sourceRoot":"","sources":["../src/server-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"server-surface.d.ts","sourceRoot":"","sources":["../src/server-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuB3C,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAgED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAI7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,QA8BnE"}
|
package/dist/server-surface.js
CHANGED
|
@@ -10,6 +10,7 @@ import { register as registerIssues } from "./tools/issues.js";
|
|
|
10
10
|
import { register as registerAgents } from "./tools/agents.js";
|
|
11
11
|
import { register as registerSkills } from "./tools/skills.js";
|
|
12
12
|
import { register as registerJobs } from "./tools/jobs.js";
|
|
13
|
+
import { register as registerRecording } from "./tools/recording.js";
|
|
13
14
|
import { register as registerSession } from "./tools/session.js";
|
|
14
15
|
import { register as registerWorkflowGuide } from "./prompts/workflow-guide.js";
|
|
15
16
|
import { register as registerDebugExecution } from "./prompts/debug-execution.js";
|
|
@@ -41,7 +42,7 @@ const JOBS_LOOP = `THE MINICOR BUILD LOOP (test-case-first - follow it in this o
|
|
|
41
42
|
fromStepId/toStepId + seedExecutionId=<failed execution> (seeds ctx so
|
|
42
43
|
mid-graph starts resolve earlier steps' values).
|
|
43
44
|
- Workflow-level bug (microscope): the failing step's workflowId ->
|
|
44
|
-
dev_mode_load, edit/run the
|
|
45
|
+
dev_mode_load, edit/run the branch's flow steps (dev_mode_run needs vmId),
|
|
45
46
|
dev_mode_publish, then back to step 3 - jobs execute PUBLISHED workflows.
|
|
46
47
|
6. PUBLISH. When run_tests variant=draft is green, publish_job promotes the
|
|
47
48
|
draft; runtime traffic at /m/:slug serves it immediately.
|
|
@@ -55,12 +56,15 @@ trigger filter. cancel_build stops an autonomous teach-loop build.
|
|
|
55
56
|
When in doubt about a job, call resolve_job_state - it returns the concrete
|
|
56
57
|
next tool calls for this loop.
|
|
57
58
|
|
|
58
|
-
Dev Mode notes: find or create the workflow, call dev_mode_load
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
Dev Mode notes: find or create the workflow, call dev_mode_load to create your
|
|
60
|
+
user-scoped branch of it (all dev_mode calls take workflowId), inspect and
|
|
61
|
+
edit the branch's steps, and use the configuration-store tools when the branch
|
|
62
|
+
needs configuration values. Every dev_mode_run call must include vmId (the VM
|
|
63
|
+
that executes RPA steps). Test the branch before publishing;
|
|
64
|
+
publishing requires confirm: true and fails with a 409 conflict when
|
|
65
|
+
production changed after the branch was created. Run progress is ephemeral;
|
|
66
|
+
dev_mode_stop_run requests a cooperative stop after the current step. Jobs
|
|
67
|
+
execute PUBLISHED workflows, not unpublished Dev Mode branches.
|
|
64
68
|
|
|
65
69
|
For the microscope details, load get_skill("job-build-loop") and
|
|
66
70
|
get_skill("rpa-testing-workflow").`;
|
|
@@ -91,6 +95,7 @@ export function registerSurface(deps, opts) {
|
|
|
91
95
|
registerAgents(deps);
|
|
92
96
|
registerSkills(deps);
|
|
93
97
|
registerJobs(deps);
|
|
98
|
+
registerRecording(deps);
|
|
94
99
|
if (opts.localTools) {
|
|
95
100
|
registerSyncTools(deps);
|
|
96
101
|
registerSession(deps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-surface.js","sourceRoot":"","sources":["../src/server-surface.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAEtF,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAWrC;;;;GAIG;AACH,MAAM,SAAS,GAAG
|
|
1
|
+
{"version":3,"file":"server-surface.js","sourceRoot":"","sources":["../src/server-surface.ts"],"names":[],"mappings":"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"}
|
package/dist/sync.js
CHANGED
|
@@ -617,8 +617,9 @@ If \`.minicor/context.md\` exists, read it and skip full analysis. Update it at
|
|
|
617
617
|
- Connect to a VM: \`vm_connect\` with tunnel URL from \`.minicor/vms.json\`
|
|
618
618
|
- Screenshot, inspect UI, write Python scripts
|
|
619
619
|
- Save steps with \`create_rpa_flow\` (never \`create_flow\` for RPA)
|
|
620
|
-
- Or edit an existing workflow
|
|
621
|
-
|
|
620
|
+
- Or edit an existing workflow via your Dev Mode branch — every dev_mode call takes
|
|
621
|
+
workflowId: \`dev_mode_load\` -> edit steps -> \`dev_mode_run\` (also needs vmId) ->
|
|
622
|
+
\`dev_mode_publish\` with confirm=true (jobs execute PUBLISHED workflows)
|
|
622
623
|
|
|
623
624
|
### Phase 4: Test — run the gate, drill failures top-down
|
|
624
625
|
|
package/dist/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqC5C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,QAg2BtC"}
|
package/dist/tools/core.js
CHANGED
|
@@ -2,7 +2,9 @@ import { z } from "zod";
|
|
|
2
2
|
import { ok, text, safe } from "../helpers.js";
|
|
3
3
|
import { setWorkspaceRegion, getWorkspaceRegion } from "../state.js";
|
|
4
4
|
import { validateApiBaseUrl } from "../paths.js";
|
|
5
|
-
import { extractFramesFromUrl } from "../recording-frames.js";
|
|
5
|
+
import { extractFramesFromUrl, } from "../recording-frames.js";
|
|
6
|
+
import { seeerAvailable, seeerClip, seeerFrames, } from "../seeer-client.js";
|
|
7
|
+
import { recordingUrl as sharedRecordingUrl, recordingSource, } from "./recording-common.js";
|
|
6
8
|
import { registerCreateWorkflow, registerGetWorkflow, registerListWorkflows, registerListWorkspaces, } from "./discovery.js";
|
|
7
9
|
const regionParam = z
|
|
8
10
|
.enum(["us", "ca"])
|
|
@@ -291,7 +293,60 @@ export function register(deps) {
|
|
|
291
293
|
flowRunId: z.number().describe("Flow Run ID"),
|
|
292
294
|
region: regionParam,
|
|
293
295
|
}, async ({ workflowId, executionId, flowRunId, region }) => safe(() => deps.client(region).getFlowRunRecording(workflowId, executionId, flowRunId)));
|
|
294
|
-
|
|
296
|
+
// Shared bits for the recording frame/zoom/clip tools.
|
|
297
|
+
const recordingUrl = (r, workflowId, executionId, flowRunId) => sharedRecordingUrl(deps, r, workflowId, executionId, flowRunId);
|
|
298
|
+
/**
|
|
299
|
+
* Extract frames via the seeer service when configured (hosted MCP: no local
|
|
300
|
+
* ffmpeg needed, downloads cached server-side), else with local ffmpeg.
|
|
301
|
+
*/
|
|
302
|
+
const callOpts = (r) => ({
|
|
303
|
+
userToken: deps.getAuthToken?.(r),
|
|
304
|
+
});
|
|
305
|
+
const extractFrames = async (url, opts, r) => {
|
|
306
|
+
if (seeerAvailable()) {
|
|
307
|
+
try {
|
|
308
|
+
const res = await seeerFrames({
|
|
309
|
+
videoUrl: url,
|
|
310
|
+
// Sorted copy: the tool promises chronological output.
|
|
311
|
+
timestamps: opts.timestamps
|
|
312
|
+
? [...opts.timestamps].sort((a, b) => a - b)
|
|
313
|
+
: undefined,
|
|
314
|
+
range: opts.range,
|
|
315
|
+
count: opts.count,
|
|
316
|
+
width: opts.maxWidth,
|
|
317
|
+
region: opts.region,
|
|
318
|
+
}, callOpts(r));
|
|
319
|
+
return res.frames.map((f) => ({
|
|
320
|
+
label: `t=${f.t.toFixed(1)}s`,
|
|
321
|
+
timestampSeconds: f.t,
|
|
322
|
+
base64: f.jpegBase64,
|
|
323
|
+
}));
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
// Service hiccup — fall back to local extraction.
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return extractFramesFromUrl(url, opts);
|
|
330
|
+
};
|
|
331
|
+
const framesContent = (intro, frames) => {
|
|
332
|
+
const content = [{ type: "text", text: intro }];
|
|
333
|
+
for (const frame of frames) {
|
|
334
|
+
content.push({ type: "text", text: `── ${frame.label} ──` });
|
|
335
|
+
content.push({ type: "image", data: frame.base64, mimeType: "image/jpeg" });
|
|
336
|
+
}
|
|
337
|
+
return { content };
|
|
338
|
+
};
|
|
339
|
+
const cropRegionParam = z
|
|
340
|
+
.object({
|
|
341
|
+
x: z.number().int().describe("Left edge in native video pixels"),
|
|
342
|
+
y: z.number().int().describe("Top edge in native video pixels"),
|
|
343
|
+
width: z.number().int().min(1),
|
|
344
|
+
height: z.number().int().min(1),
|
|
345
|
+
pad: z.number().int().min(0).optional().describe("Extra context padding in px (default 0)"),
|
|
346
|
+
})
|
|
347
|
+
.optional()
|
|
348
|
+
.describe("Optional crop region (native video pixels). Crops every frame to this region BEFORE any scaling — use it to zoom into a dialog/field so small text stays readable.");
|
|
349
|
+
server.tool("get_recording_frames", "Extract still frames (as images) from an execution's or a single flow run's screen recording so you can visually verify or debug what happened on screen. Three modes: (1) default — evenly-spaced frames across the whole recording, (2) timestamps — exact moments you want to see (e.g. [41.5, 42]), (3) startTime+endTime — dense sampling of a window at fps. Add cropRegion to zoom into a screen area across all frames. Frames keep the recording's ORIGINAL resolution by default so fine on-screen detail (text, fields, errors) stays readable. Provide flowRunId to target one step; otherwise the full execution recording is used. The video download is cached, so follow-up calls on the same recording are fast — start with an overview, then drill into timestamps/regions. Requires ffmpeg on the MCP host — if unavailable, use get_execution_recording / get_flow_run_recording to get the raw video URL instead.", {
|
|
295
350
|
workflowId: z.number().describe("Workflow ID"),
|
|
296
351
|
executionId: z.number().describe("Execution ID"),
|
|
297
352
|
flowRunId: z
|
|
@@ -304,7 +359,29 @@ export function register(deps) {
|
|
|
304
359
|
.min(1)
|
|
305
360
|
.max(12)
|
|
306
361
|
.optional()
|
|
307
|
-
.describe("
|
|
362
|
+
.describe("Evenly-spaced mode: number of frames to sample (default 4, max 12). Ignored when timestamps or startTime/endTime are provided. Frames are token-expensive, so keep this small."),
|
|
363
|
+
timestamps: z
|
|
364
|
+
.array(z.number().min(0))
|
|
365
|
+
.max(16)
|
|
366
|
+
.optional()
|
|
367
|
+
.describe("Exact timestamps in seconds to extract (max 16). Takes precedence over startTime/endTime and frameCount."),
|
|
368
|
+
startTime: z
|
|
369
|
+
.number()
|
|
370
|
+
.min(0)
|
|
371
|
+
.optional()
|
|
372
|
+
.describe("Range mode: window start in seconds. Use with endTime to densely sample a specific moment."),
|
|
373
|
+
endTime: z
|
|
374
|
+
.number()
|
|
375
|
+
.min(0)
|
|
376
|
+
.optional()
|
|
377
|
+
.describe("Range mode: window end in seconds."),
|
|
378
|
+
fps: z
|
|
379
|
+
.number()
|
|
380
|
+
.min(0.1)
|
|
381
|
+
.max(4)
|
|
382
|
+
.optional()
|
|
383
|
+
.describe("Range mode: sampling rate within the window (default 1, max 4). Capped at 16 total frames."),
|
|
384
|
+
cropRegion: cropRegionParam,
|
|
308
385
|
maxWidth: z
|
|
309
386
|
.number()
|
|
310
387
|
.int()
|
|
@@ -312,31 +389,120 @@ export function register(deps) {
|
|
|
312
389
|
.optional()
|
|
313
390
|
.describe("Optional max frame width in px. Omit to keep the recording's original resolution (recommended); only set to trade detail for smaller images."),
|
|
314
391
|
region: regionParam,
|
|
315
|
-
}, async ({ workflowId, executionId, flowRunId, frameCount, maxWidth, region }) => {
|
|
392
|
+
}, async ({ workflowId, executionId, flowRunId, frameCount, timestamps, startTime, endTime, fps, cropRegion, maxWidth, region, }) => {
|
|
316
393
|
const r = region;
|
|
317
394
|
try {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
const frames = await
|
|
395
|
+
if ((startTime != null) !== (endTime != null)) {
|
|
396
|
+
return text("Error: startTime and endTime must be provided together.");
|
|
397
|
+
}
|
|
398
|
+
const url = await recordingUrl(r, workflowId, executionId, flowRunId);
|
|
399
|
+
const frames = await extractFrames(url, {
|
|
400
|
+
count: frameCount ?? 4,
|
|
401
|
+
timestamps,
|
|
402
|
+
range: startTime != null && endTime != null
|
|
403
|
+
? { start: startTime, end: endTime, fps: fps ?? 1 }
|
|
404
|
+
: undefined,
|
|
405
|
+
region: cropRegion,
|
|
406
|
+
maxWidth,
|
|
407
|
+
}, r);
|
|
323
408
|
if (frames.length === 0) {
|
|
324
409
|
return text("No frames could be extracted from the recording.");
|
|
325
410
|
}
|
|
326
|
-
const
|
|
327
|
-
? `
|
|
328
|
-
:
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
411
|
+
const cropNote = cropRegion
|
|
412
|
+
? ` (cropped to x=${cropRegion.x} y=${cropRegion.y} ${cropRegion.width}x${cropRegion.height})`
|
|
413
|
+
: "";
|
|
414
|
+
return framesContent(`Extracted ${frames.length} frame(s) from the recording for ${recordingSource(executionId, flowRunId)}${cropNote}, in chronological order:`, frames);
|
|
415
|
+
}
|
|
416
|
+
catch (e) {
|
|
417
|
+
return text(`Error: ${e.message}`);
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
server.tool("get_recording_zoom", "Zoom into a screen region of an execution's or flow run's recording at a specific moment: returns one NATIVE-resolution crop image. Use this after an overview frame showed something you need to read precisely (a dialog, an error message, a form field) — full frames downscale small text into mush, a zoom keeps it readable. Coordinates are native video pixels (recordings are typically the VM's full desktop resolution, e.g. 2560x1440). The video download is cached, so zooming repeatedly into the same recording is cheap.", {
|
|
421
|
+
workflowId: z.number().describe("Workflow ID"),
|
|
422
|
+
executionId: z.number().describe("Execution ID"),
|
|
423
|
+
flowRunId: z
|
|
424
|
+
.number()
|
|
425
|
+
.optional()
|
|
426
|
+
.describe("Flow Run ID. If provided, targets that single step's recording instead of the full execution recording."),
|
|
427
|
+
time: z.number().min(0).describe("Timestamp in seconds to zoom into"),
|
|
428
|
+
x: z.number().int().describe("Region left edge in native video pixels"),
|
|
429
|
+
y: z.number().int().describe("Region top edge in native video pixels"),
|
|
430
|
+
width: z.number().int().min(1).describe("Region width in native video pixels"),
|
|
431
|
+
height: z.number().int().min(1).describe("Region height in native video pixels"),
|
|
432
|
+
pad: z
|
|
433
|
+
.number()
|
|
434
|
+
.int()
|
|
435
|
+
.min(0)
|
|
436
|
+
.optional()
|
|
437
|
+
.describe("Extra context padding around the region in px (default 48)"),
|
|
438
|
+
region: regionParam,
|
|
439
|
+
}, async ({ workflowId, executionId, flowRunId, time, x, y, width, height, pad, region }) => {
|
|
440
|
+
const r = region;
|
|
441
|
+
try {
|
|
442
|
+
const url = await recordingUrl(r, workflowId, executionId, flowRunId);
|
|
443
|
+
const frames = await extractFrames(url, {
|
|
444
|
+
timestamps: [time],
|
|
445
|
+
region: { x, y, width, height, pad: pad ?? 48 },
|
|
446
|
+
}, r);
|
|
447
|
+
if (frames.length === 0) {
|
|
448
|
+
return text("No frame could be extracted at that timestamp.");
|
|
449
|
+
}
|
|
450
|
+
return framesContent(`Native-resolution zoom of ${recordingSource(executionId, flowRunId)} at ${frames[0].label}, region x=${x} y=${y} ${width}x${height}:`, frames);
|
|
451
|
+
}
|
|
452
|
+
catch (e) {
|
|
453
|
+
return text(`Error: ${e.message}`);
|
|
454
|
+
}
|
|
455
|
+
});
|
|
456
|
+
server.tool("get_recording_clip", "Cut a time window out of an execution's or flow run's screen recording and return it as a filmstrip: a chronological sequence of labeled frames sampled at fps. Use it to understand exactly what happened during a specific moment (an error appearing, a step failing, a dialog flow) without re-sampling the whole video. Combine with cropRegion to follow one screen area through time. Set asVideoUrl to instead get a signed URL to a downloadable MP4 sub-clip (for sharing with humans; requires the seeer service). The video download is cached across calls.", {
|
|
457
|
+
workflowId: z.number().describe("Workflow ID"),
|
|
458
|
+
executionId: z.number().describe("Execution ID"),
|
|
459
|
+
flowRunId: z
|
|
460
|
+
.number()
|
|
461
|
+
.optional()
|
|
462
|
+
.describe("Flow Run ID. If provided, targets that single step's recording instead of the full execution recording."),
|
|
463
|
+
startTime: z.number().min(0).describe("Clip start in seconds"),
|
|
464
|
+
endTime: z.number().min(0).describe("Clip end in seconds"),
|
|
465
|
+
fps: z
|
|
466
|
+
.number()
|
|
467
|
+
.min(0.1)
|
|
468
|
+
.max(4)
|
|
469
|
+
.optional()
|
|
470
|
+
.describe("Frames per second in the filmstrip (default 2, max 4). Capped at 16 total frames — for longer windows the frames spread out evenly."),
|
|
471
|
+
cropRegion: cropRegionParam,
|
|
472
|
+
maxWidth: z
|
|
473
|
+
.number()
|
|
474
|
+
.int()
|
|
475
|
+
.min(1)
|
|
476
|
+
.optional()
|
|
477
|
+
.describe("Optional max frame width in px. Omit to keep the recording's original resolution."),
|
|
478
|
+
asVideoUrl: z
|
|
479
|
+
.boolean()
|
|
480
|
+
.optional()
|
|
481
|
+
.describe("Return a signed URL to an actual MP4 sub-clip instead of a filmstrip (requires the seeer service; useful for handing to a human)."),
|
|
482
|
+
region: regionParam,
|
|
483
|
+
}, async ({ workflowId, executionId, flowRunId, startTime, endTime, fps, cropRegion, maxWidth, asVideoUrl, region }) => {
|
|
484
|
+
const r = region;
|
|
485
|
+
try {
|
|
486
|
+
if (endTime <= startTime) {
|
|
487
|
+
return text("Error: endTime must be greater than startTime.");
|
|
488
|
+
}
|
|
489
|
+
const url = await recordingUrl(r, workflowId, executionId, flowRunId);
|
|
490
|
+
if (asVideoUrl) {
|
|
491
|
+
if (!seeerAvailable()) {
|
|
492
|
+
return text("Error: asVideoUrl requires the seeer service (set SEEER_SERVICE_URL). Omit it to get a filmstrip instead.");
|
|
493
|
+
}
|
|
494
|
+
const clip = await seeerClip({ videoUrl: url, start: startTime, end: endTime }, callOpts(r));
|
|
495
|
+
return ok(clip);
|
|
496
|
+
}
|
|
497
|
+
const frames = await extractFrames(url, {
|
|
498
|
+
range: { start: startTime, end: endTime, fps: fps ?? 2 },
|
|
499
|
+
region: cropRegion,
|
|
500
|
+
maxWidth,
|
|
501
|
+
}, r);
|
|
502
|
+
if (frames.length === 0) {
|
|
503
|
+
return text("No frames could be extracted for that time window.");
|
|
338
504
|
}
|
|
339
|
-
return {
|
|
505
|
+
return framesContent(`Filmstrip of ${recordingSource(executionId, flowRunId)} from t=${startTime}s to t=${endTime}s (${frames.length} frames):`, frames);
|
|
340
506
|
}
|
|
341
507
|
catch (e) {
|
|
342
508
|
return text(`Error: ${e.message}`);
|