@minicor/mcp-server 4.1.0 → 4.3.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 +15 -2
- package/dist/__tests__/recording-frames.test.js +42 -1
- package/dist/__tests__/recording-frames.test.js.map +1 -1
- package/dist/__tests__/seeer-client.test.d.ts +2 -0
- package/dist/__tests__/seeer-client.test.d.ts.map +1 -0
- package/dist/__tests__/seeer-client.test.js +57 -0
- package/dist/__tests__/seeer-client.test.js.map +1 -0
- package/dist/index.js +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 +173 -0
- package/dist/seeer-client.d.ts.map +1 -0
- package/dist/seeer-client.js +181 -0
- package/dist/seeer-client.js.map +1 -0
- package/dist/server-surface.d.ts.map +1 -1
- package/dist/server-surface.js +2 -0
- package/dist/server-surface.js.map +1 -1
- package/dist/tools/core.d.ts.map +1 -1
- package/dist/tools/core.js +189 -22
- package/dist/tools/core.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 +237 -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
|
@@ -0,0 +1,181 @@
|
|
|
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 — zero config in production:
|
|
9
|
+
*
|
|
10
|
+
* 1. PROXY override — set `SEEER_SERVICE_PROXY_BASE` (the deployed frontend
|
|
11
|
+
* origin, e.g. https://app.laminar.run) to pin the proxy explicitly.
|
|
12
|
+
*
|
|
13
|
+
* 2. DIRECT override — set `SEEER_SERVICE_URL` (e.g. the Cloud Run URL).
|
|
14
|
+
* Auth is the shared app token via `SEEER_SERVICE_TOKEN` (sent as
|
|
15
|
+
* X-API-Key). The service runs IAM-gated on Cloud Run (org policy
|
|
16
|
+
* forbids public access), so requests also need a Google identity token
|
|
17
|
+
* in Authorization:
|
|
18
|
+
* SEEER_SERVICE_ID_TOKEN static token (local testing:
|
|
19
|
+
* `gcloud auth print-identity-token`)
|
|
20
|
+
* SEEER_SERVICE_USE_GCP_IDENTITY set to 1 when the MCP itself runs on
|
|
21
|
+
* GCP; tokens come from the metadata
|
|
22
|
+
* server with the service URL audience
|
|
23
|
+
*
|
|
24
|
+
* 3. DERIVED proxy (the default) — the frontend origin is derived from the
|
|
25
|
+
* region's API base the MCP already knows (api.laminar.run ->
|
|
26
|
+
* app.laminar.run, ca.api.laminar.run -> ca.app.laminar.run). Requests
|
|
27
|
+
* go to `${proxyBase}${prefix}/<path>` where `prefix` defaults to
|
|
28
|
+
* `/api/video-tool` (override with SEEER_SERVICE_PROXY_PREFIX) and the
|
|
29
|
+
* leading `/v1/` is stripped. Auth is the USER's Laminar bearer token —
|
|
30
|
+
* the frontend validates it and forwards with the service's API key,
|
|
31
|
+
* the same pattern as the agents / stitchy / cron proxies.
|
|
32
|
+
*
|
|
33
|
+
* Precedence: PROXY override (1) > DIRECT override (2) > DERIVED proxy (3) >
|
|
34
|
+
* disabled (API base not derivable, e.g. a localhost backend, and no
|
|
35
|
+
* override). When disabled, the frame/zoom/clip tools fall back to local
|
|
36
|
+
* ffmpeg (recording-frames.ts); analysis/annotation tools require the
|
|
37
|
+
* service.
|
|
38
|
+
*/
|
|
39
|
+
export function seeerServiceUrl() {
|
|
40
|
+
const url = process.env.SEEER_SERVICE_URL?.trim();
|
|
41
|
+
return url ? url.replace(/\/+$/, "") : undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Derive the deployed frontend origin (which hosts the /api/video-tool proxy)
|
|
45
|
+
* from the API base the MCP already resolves per region:
|
|
46
|
+
* https://api.laminar.run -> https://app.laminar.run,
|
|
47
|
+
* https://ca.api.laminar.run -> https://ca.app.laminar.run.
|
|
48
|
+
* Non-derivable hosts (localhost, custom dev backends) return undefined.
|
|
49
|
+
*/
|
|
50
|
+
export function deriveSeeerProxyBase(apiBase) {
|
|
51
|
+
if (!apiBase)
|
|
52
|
+
return undefined;
|
|
53
|
+
let url;
|
|
54
|
+
try {
|
|
55
|
+
url = new URL(apiBase);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
if (!/(^|\.)api\./.test(url.hostname))
|
|
61
|
+
return undefined;
|
|
62
|
+
url.hostname = url.hostname.replace(/(^|\.)api\./, "$1app.");
|
|
63
|
+
return url.origin;
|
|
64
|
+
}
|
|
65
|
+
export function seeerProxyBase(apiBase) {
|
|
66
|
+
const base = process.env.SEEER_SERVICE_PROXY_BASE?.trim();
|
|
67
|
+
if (base)
|
|
68
|
+
return base.replace(/\/+$/, "");
|
|
69
|
+
// Explicit DIRECT config takes precedence over the derived proxy.
|
|
70
|
+
if (seeerServiceUrl())
|
|
71
|
+
return undefined;
|
|
72
|
+
return deriveSeeerProxyBase(apiBase);
|
|
73
|
+
}
|
|
74
|
+
function seeerProxyPrefix() {
|
|
75
|
+
return ("/" +
|
|
76
|
+
(process.env.SEEER_SERVICE_PROXY_PREFIX ?? "/api/video-tool")
|
|
77
|
+
.replace(/^\/+/, "")
|
|
78
|
+
.replace(/\/+$/, ""));
|
|
79
|
+
}
|
|
80
|
+
export function seeerAvailable(apiBase) {
|
|
81
|
+
return seeerProxyBase(apiBase) != null || seeerServiceUrl() != null;
|
|
82
|
+
}
|
|
83
|
+
let cachedIdentity = null;
|
|
84
|
+
/** Identity token for IAM-gated Cloud Run, from env or the GCP metadata server. */
|
|
85
|
+
async function identityToken(audience) {
|
|
86
|
+
const staticToken = process.env.SEEER_SERVICE_ID_TOKEN;
|
|
87
|
+
if (staticToken)
|
|
88
|
+
return staticToken;
|
|
89
|
+
if (process.env.SEEER_SERVICE_USE_GCP_IDENTITY !== "1")
|
|
90
|
+
return null;
|
|
91
|
+
if (cachedIdentity &&
|
|
92
|
+
cachedIdentity.audience === audience &&
|
|
93
|
+
Date.now() < cachedIdentity.expiresAtMs) {
|
|
94
|
+
return cachedIdentity.token;
|
|
95
|
+
}
|
|
96
|
+
const res = await fetch("http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity" +
|
|
97
|
+
`?audience=${encodeURIComponent(audience)}`, {
|
|
98
|
+
headers: { "Metadata-Flavor": "Google" },
|
|
99
|
+
// Never let a stalled metadata server hang recording-tool calls.
|
|
100
|
+
signal: AbortSignal.timeout(10_000),
|
|
101
|
+
});
|
|
102
|
+
if (!res.ok) {
|
|
103
|
+
throw new Error(`failed to fetch GCP identity token (${res.status})`);
|
|
104
|
+
}
|
|
105
|
+
const token = await res.text();
|
|
106
|
+
// Identity tokens last 1h; refresh with a 5 min buffer.
|
|
107
|
+
cachedIdentity = { audience, token, expiresAtMs: Date.now() + 55 * 60 * 1000 };
|
|
108
|
+
return token;
|
|
109
|
+
}
|
|
110
|
+
async function call(path, body, opts = {}, timeoutMs = 120_000) {
|
|
111
|
+
const proxy = seeerProxyBase(opts.apiBase);
|
|
112
|
+
const direct = seeerServiceUrl();
|
|
113
|
+
if (!proxy && !direct) {
|
|
114
|
+
throw new Error("The video-tool service is not reachable: no frontend origin is derivable from the " +
|
|
115
|
+
"API base, and no override is set (SEEER_SERVICE_PROXY_BASE or SEEER_SERVICE_URL).");
|
|
116
|
+
}
|
|
117
|
+
const headers = { "Content-Type": "application/json" };
|
|
118
|
+
let url;
|
|
119
|
+
if (proxy) {
|
|
120
|
+
// PROXY mode: the frontend validates the USER bearer and forwards with the
|
|
121
|
+
// service API key (agents/stitchy/cron proxy convention).
|
|
122
|
+
if (!opts.userToken) {
|
|
123
|
+
throw new Error("video-tool proxy mode requires the user's bearer token.");
|
|
124
|
+
}
|
|
125
|
+
url = `${proxy}${seeerProxyPrefix()}/${path.replace(/^\/v1\//, "").replace(/^\/+/, "")}`;
|
|
126
|
+
headers["Authorization"] = `Bearer ${opts.userToken}`;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// DIRECT mode: app token in X-API-Key; Authorization stays free for the
|
|
130
|
+
// Google identity token that IAM-gated Cloud Run requires.
|
|
131
|
+
url = `${direct}${path}`;
|
|
132
|
+
const token = process.env.SEEER_SERVICE_TOKEN;
|
|
133
|
+
if (token)
|
|
134
|
+
headers["X-API-Key"] = token;
|
|
135
|
+
const idToken = await identityToken(direct);
|
|
136
|
+
if (idToken)
|
|
137
|
+
headers["Authorization"] = `Bearer ${idToken}`;
|
|
138
|
+
}
|
|
139
|
+
const controller = new AbortController();
|
|
140
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
141
|
+
try {
|
|
142
|
+
const res = await fetch(url, {
|
|
143
|
+
method: "POST",
|
|
144
|
+
headers,
|
|
145
|
+
body: JSON.stringify(body),
|
|
146
|
+
signal: controller.signal,
|
|
147
|
+
});
|
|
148
|
+
if (!res.ok) {
|
|
149
|
+
let detail = `${res.status}`;
|
|
150
|
+
try {
|
|
151
|
+
const parsed = (await res.json());
|
|
152
|
+
if (parsed.detail)
|
|
153
|
+
detail = `${res.status}: ${parsed.detail}`;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
/* non-JSON error body */
|
|
157
|
+
}
|
|
158
|
+
throw new Error(`seeer service error (${detail})`);
|
|
159
|
+
}
|
|
160
|
+
return (await res.json());
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
clearTimeout(timer);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export async function seeerAnalyze(params, opts = {}) {
|
|
167
|
+
return call("/v1/analyze", params, opts);
|
|
168
|
+
}
|
|
169
|
+
export async function seeerFrames(params, opts = {}) {
|
|
170
|
+
return call("/v1/frames", params, opts);
|
|
171
|
+
}
|
|
172
|
+
export async function seeerZoom(params, opts = {}) {
|
|
173
|
+
return call("/v1/zoom", params, opts);
|
|
174
|
+
}
|
|
175
|
+
export async function seeerClip(params, opts = {}) {
|
|
176
|
+
return call("/v1/clip", params, opts);
|
|
177
|
+
}
|
|
178
|
+
export async function seeerAnnotate(params, opts = {}) {
|
|
179
|
+
return call("/v1/annotate", params, opts);
|
|
180
|
+
}
|
|
181
|
+
//# 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";
|
|
@@ -94,6 +95,7 @@ export function registerSurface(deps, opts) {
|
|
|
94
95
|
registerAgents(deps);
|
|
95
96
|
registerSkills(deps);
|
|
96
97
|
registerJobs(deps);
|
|
98
|
+
registerRecording(deps);
|
|
97
99
|
if (opts.localTools) {
|
|
98
100
|
registerSyncTools(deps);
|
|
99
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA2CiB,CAAC;AAEpC,MAAM,gBAAgB,GAAG;;;;;;;;;;CAUxB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IACnD,MAAM,MAAM,GACV,8EAA8E,CAAC;IACjF,OAAO,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc,EAAE,IAAoB;IAClE,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1B,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3B,UAAU,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3B,WAAW,CAAC,IAAI,CAAC,CAAC;IAClB,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,YAAY,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server-surface.js","sourceRoot":"","sources":["../src/server-surface.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,QAi2BtC"}
|
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,61 @@ 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
|
+
apiBase: deps.getApiBase(r),
|
|
305
|
+
});
|
|
306
|
+
const extractFrames = async (url, opts, r) => {
|
|
307
|
+
if (seeerAvailable(deps.getApiBase(r))) {
|
|
308
|
+
try {
|
|
309
|
+
const res = await seeerFrames({
|
|
310
|
+
videoUrl: url,
|
|
311
|
+
// Sorted copy: the tool promises chronological output.
|
|
312
|
+
timestamps: opts.timestamps
|
|
313
|
+
? [...opts.timestamps].sort((a, b) => a - b)
|
|
314
|
+
: undefined,
|
|
315
|
+
range: opts.range,
|
|
316
|
+
count: opts.count,
|
|
317
|
+
width: opts.maxWidth,
|
|
318
|
+
region: opts.region,
|
|
319
|
+
}, callOpts(r));
|
|
320
|
+
return res.frames.map((f) => ({
|
|
321
|
+
label: `t=${f.t.toFixed(1)}s`,
|
|
322
|
+
timestampSeconds: f.t,
|
|
323
|
+
base64: f.jpegBase64,
|
|
324
|
+
}));
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
// Service hiccup — fall back to local extraction.
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return extractFramesFromUrl(url, opts);
|
|
331
|
+
};
|
|
332
|
+
const framesContent = (intro, frames) => {
|
|
333
|
+
const content = [{ type: "text", text: intro }];
|
|
334
|
+
for (const frame of frames) {
|
|
335
|
+
content.push({ type: "text", text: `── ${frame.label} ──` });
|
|
336
|
+
content.push({ type: "image", data: frame.base64, mimeType: "image/jpeg" });
|
|
337
|
+
}
|
|
338
|
+
return { content };
|
|
339
|
+
};
|
|
340
|
+
const cropRegionParam = z
|
|
341
|
+
.object({
|
|
342
|
+
x: z.number().int().describe("Left edge in native video pixels"),
|
|
343
|
+
y: z.number().int().describe("Top edge in native video pixels"),
|
|
344
|
+
width: z.number().int().min(1),
|
|
345
|
+
height: z.number().int().min(1),
|
|
346
|
+
pad: z.number().int().min(0).optional().describe("Extra context padding in px (default 0)"),
|
|
347
|
+
})
|
|
348
|
+
.optional()
|
|
349
|
+
.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.");
|
|
350
|
+
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
351
|
workflowId: z.number().describe("Workflow ID"),
|
|
296
352
|
executionId: z.number().describe("Execution ID"),
|
|
297
353
|
flowRunId: z
|
|
@@ -304,7 +360,29 @@ export function register(deps) {
|
|
|
304
360
|
.min(1)
|
|
305
361
|
.max(12)
|
|
306
362
|
.optional()
|
|
307
|
-
.describe("
|
|
363
|
+
.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."),
|
|
364
|
+
timestamps: z
|
|
365
|
+
.array(z.number().min(0))
|
|
366
|
+
.max(16)
|
|
367
|
+
.optional()
|
|
368
|
+
.describe("Exact timestamps in seconds to extract (max 16). Takes precedence over startTime/endTime and frameCount."),
|
|
369
|
+
startTime: z
|
|
370
|
+
.number()
|
|
371
|
+
.min(0)
|
|
372
|
+
.optional()
|
|
373
|
+
.describe("Range mode: window start in seconds. Use with endTime to densely sample a specific moment."),
|
|
374
|
+
endTime: z
|
|
375
|
+
.number()
|
|
376
|
+
.min(0)
|
|
377
|
+
.optional()
|
|
378
|
+
.describe("Range mode: window end in seconds."),
|
|
379
|
+
fps: z
|
|
380
|
+
.number()
|
|
381
|
+
.min(0.1)
|
|
382
|
+
.max(4)
|
|
383
|
+
.optional()
|
|
384
|
+
.describe("Range mode: sampling rate within the window (default 1, max 4). Capped at 16 total frames."),
|
|
385
|
+
cropRegion: cropRegionParam,
|
|
308
386
|
maxWidth: z
|
|
309
387
|
.number()
|
|
310
388
|
.int()
|
|
@@ -312,31 +390,120 @@ export function register(deps) {
|
|
|
312
390
|
.optional()
|
|
313
391
|
.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
392
|
region: regionParam,
|
|
315
|
-
}, async ({ workflowId, executionId, flowRunId, frameCount, maxWidth, region }) => {
|
|
393
|
+
}, async ({ workflowId, executionId, flowRunId, frameCount, timestamps, startTime, endTime, fps, cropRegion, maxWidth, region, }) => {
|
|
316
394
|
const r = region;
|
|
317
395
|
try {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
const frames = await
|
|
396
|
+
if ((startTime != null) !== (endTime != null)) {
|
|
397
|
+
return text("Error: startTime and endTime must be provided together.");
|
|
398
|
+
}
|
|
399
|
+
const url = await recordingUrl(r, workflowId, executionId, flowRunId);
|
|
400
|
+
const frames = await extractFrames(url, {
|
|
401
|
+
count: frameCount ?? 4,
|
|
402
|
+
timestamps,
|
|
403
|
+
range: startTime != null && endTime != null
|
|
404
|
+
? { start: startTime, end: endTime, fps: fps ?? 1 }
|
|
405
|
+
: undefined,
|
|
406
|
+
region: cropRegion,
|
|
407
|
+
maxWidth,
|
|
408
|
+
}, r);
|
|
323
409
|
if (frames.length === 0) {
|
|
324
410
|
return text("No frames could be extracted from the recording.");
|
|
325
411
|
}
|
|
326
|
-
const
|
|
327
|
-
? `
|
|
328
|
-
:
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
412
|
+
const cropNote = cropRegion
|
|
413
|
+
? ` (cropped to x=${cropRegion.x} y=${cropRegion.y} ${cropRegion.width}x${cropRegion.height})`
|
|
414
|
+
: "";
|
|
415
|
+
return framesContent(`Extracted ${frames.length} frame(s) from the recording for ${recordingSource(executionId, flowRunId)}${cropNote}, in chronological order:`, frames);
|
|
416
|
+
}
|
|
417
|
+
catch (e) {
|
|
418
|
+
return text(`Error: ${e.message}`);
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
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.", {
|
|
422
|
+
workflowId: z.number().describe("Workflow ID"),
|
|
423
|
+
executionId: z.number().describe("Execution ID"),
|
|
424
|
+
flowRunId: z
|
|
425
|
+
.number()
|
|
426
|
+
.optional()
|
|
427
|
+
.describe("Flow Run ID. If provided, targets that single step's recording instead of the full execution recording."),
|
|
428
|
+
time: z.number().min(0).describe("Timestamp in seconds to zoom into"),
|
|
429
|
+
x: z.number().int().describe("Region left edge in native video pixels"),
|
|
430
|
+
y: z.number().int().describe("Region top edge in native video pixels"),
|
|
431
|
+
width: z.number().int().min(1).describe("Region width in native video pixels"),
|
|
432
|
+
height: z.number().int().min(1).describe("Region height in native video pixels"),
|
|
433
|
+
pad: z
|
|
434
|
+
.number()
|
|
435
|
+
.int()
|
|
436
|
+
.min(0)
|
|
437
|
+
.optional()
|
|
438
|
+
.describe("Extra context padding around the region in px (default 48)"),
|
|
439
|
+
region: regionParam,
|
|
440
|
+
}, async ({ workflowId, executionId, flowRunId, time, x, y, width, height, pad, region }) => {
|
|
441
|
+
const r = region;
|
|
442
|
+
try {
|
|
443
|
+
const url = await recordingUrl(r, workflowId, executionId, flowRunId);
|
|
444
|
+
const frames = await extractFrames(url, {
|
|
445
|
+
timestamps: [time],
|
|
446
|
+
region: { x, y, width, height, pad: pad ?? 48 },
|
|
447
|
+
}, r);
|
|
448
|
+
if (frames.length === 0) {
|
|
449
|
+
return text("No frame could be extracted at that timestamp.");
|
|
450
|
+
}
|
|
451
|
+
return framesContent(`Native-resolution zoom of ${recordingSource(executionId, flowRunId)} at ${frames[0].label}, region x=${x} y=${y} ${width}x${height}:`, frames);
|
|
452
|
+
}
|
|
453
|
+
catch (e) {
|
|
454
|
+
return text(`Error: ${e.message}`);
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
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.", {
|
|
458
|
+
workflowId: z.number().describe("Workflow ID"),
|
|
459
|
+
executionId: z.number().describe("Execution ID"),
|
|
460
|
+
flowRunId: z
|
|
461
|
+
.number()
|
|
462
|
+
.optional()
|
|
463
|
+
.describe("Flow Run ID. If provided, targets that single step's recording instead of the full execution recording."),
|
|
464
|
+
startTime: z.number().min(0).describe("Clip start in seconds"),
|
|
465
|
+
endTime: z.number().min(0).describe("Clip end in seconds"),
|
|
466
|
+
fps: z
|
|
467
|
+
.number()
|
|
468
|
+
.min(0.1)
|
|
469
|
+
.max(4)
|
|
470
|
+
.optional()
|
|
471
|
+
.describe("Frames per second in the filmstrip (default 2, max 4). Capped at 16 total frames — for longer windows the frames spread out evenly."),
|
|
472
|
+
cropRegion: cropRegionParam,
|
|
473
|
+
maxWidth: z
|
|
474
|
+
.number()
|
|
475
|
+
.int()
|
|
476
|
+
.min(1)
|
|
477
|
+
.optional()
|
|
478
|
+
.describe("Optional max frame width in px. Omit to keep the recording's original resolution."),
|
|
479
|
+
asVideoUrl: z
|
|
480
|
+
.boolean()
|
|
481
|
+
.optional()
|
|
482
|
+
.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)."),
|
|
483
|
+
region: regionParam,
|
|
484
|
+
}, async ({ workflowId, executionId, flowRunId, startTime, endTime, fps, cropRegion, maxWidth, asVideoUrl, region }) => {
|
|
485
|
+
const r = region;
|
|
486
|
+
try {
|
|
487
|
+
if (endTime <= startTime) {
|
|
488
|
+
return text("Error: endTime must be greater than startTime.");
|
|
489
|
+
}
|
|
490
|
+
const url = await recordingUrl(r, workflowId, executionId, flowRunId);
|
|
491
|
+
if (asVideoUrl) {
|
|
492
|
+
if (!seeerAvailable(deps.getApiBase(r))) {
|
|
493
|
+
return text("Error: asVideoUrl requires the seeer service, which is not reachable from this API base. Omit it to get a filmstrip instead.");
|
|
494
|
+
}
|
|
495
|
+
const clip = await seeerClip({ videoUrl: url, start: startTime, end: endTime }, callOpts(r));
|
|
496
|
+
return ok(clip);
|
|
497
|
+
}
|
|
498
|
+
const frames = await extractFrames(url, {
|
|
499
|
+
range: { start: startTime, end: endTime, fps: fps ?? 2 },
|
|
500
|
+
region: cropRegion,
|
|
501
|
+
maxWidth,
|
|
502
|
+
}, r);
|
|
503
|
+
if (frames.length === 0) {
|
|
504
|
+
return text("No frames could be extracted for that time window.");
|
|
338
505
|
}
|
|
339
|
-
return {
|
|
506
|
+
return framesContent(`Filmstrip of ${recordingSource(executionId, flowRunId)} from t=${startTime}s to t=${endTime}s (${frames.length} frames):`, frames);
|
|
340
507
|
}
|
|
341
508
|
catch (e) {
|
|
342
509
|
return text(`Error: ${e.message}`);
|
package/dist/tools/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/tools/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for the recording tool groups (core.ts frame primitives and
|
|
3
|
+
* recording.ts analysis tools), so recording-endpoint selection can't diverge.
|
|
4
|
+
*/
|
|
5
|
+
import type { Region } from "../paths.js";
|
|
6
|
+
import type { ToolDeps } from "../types.js";
|
|
7
|
+
/** Signed URL for an execution's (or one flow run's) recording. */
|
|
8
|
+
export declare function recordingUrl(deps: ToolDeps, r: Region | undefined, workflowId: number, executionId: number, flowRunId?: number): Promise<string>;
|
|
9
|
+
/** Human-readable label for which recording a tool result refers to. */
|
|
10
|
+
export declare function recordingSource(executionId: number, flowRunId?: number): string;
|
|
11
|
+
//# sourceMappingURL=recording-common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-common.d.ts","sourceRoot":"","sources":["../../src/tools/recording-common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,mEAAmE;AACnE,wBAAsB,YAAY,CAChC,IAAI,EAAE,QAAQ,EACd,CAAC,EAAE,MAAM,GAAG,SAAS,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Signed URL for an execution's (or one flow run's) recording. */
|
|
2
|
+
export async function recordingUrl(deps, r, workflowId, executionId, flowRunId) {
|
|
3
|
+
const client = deps.client(r);
|
|
4
|
+
const { url } = flowRunId != null
|
|
5
|
+
? await client.getFlowRunRecording(workflowId, executionId, flowRunId)
|
|
6
|
+
: await client.getExecutionRecording(workflowId, executionId);
|
|
7
|
+
return url;
|
|
8
|
+
}
|
|
9
|
+
/** Human-readable label for which recording a tool result refers to. */
|
|
10
|
+
export function recordingSource(executionId, flowRunId) {
|
|
11
|
+
return flowRunId != null
|
|
12
|
+
? `flow run ${flowRunId} (execution ${executionId})`
|
|
13
|
+
: `execution ${executionId}`;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=recording-common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-common.js","sourceRoot":"","sources":["../../src/tools/recording-common.ts"],"names":[],"mappings":"AAOA,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,CAAqB,EACrB,UAAkB,EAClB,WAAmB,EACnB,SAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,EAAE,GACX,SAAS,IAAI,IAAI;QACf,CAAC,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC;QACtE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,SAAkB;IACrE,OAAO,SAAS,IAAI,IAAI;QACtB,CAAC,CAAC,YAAY,SAAS,eAAe,WAAW,GAAG;QACpD,CAAC,CAAC,aAAa,WAAW,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/tools/recording.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA6C5C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,QAsPtC"}
|