@minicor/mcp-server 3.3.4 → 3.4.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 +148 -25
- package/dist/__tests__/middleware-service-client.test.d.ts +2 -0
- package/dist/__tests__/middleware-service-client.test.d.ts.map +1 -0
- package/dist/__tests__/middleware-service-client.test.js +293 -0
- package/dist/__tests__/middleware-service-client.test.js.map +1 -0
- package/dist/codemode.js +10 -9
- package/dist/codemode.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/middleware-service-client.d.ts +258 -0
- package/dist/middleware-service-client.d.ts.map +1 -0
- package/dist/middleware-service-client.js +264 -0
- package/dist/middleware-service-client.js.map +1 -0
- package/dist/prompts/build-rpa.d.ts.map +1 -1
- package/dist/prompts/build-rpa.js +17 -0
- package/dist/prompts/build-rpa.js.map +1 -1
- package/dist/prompts/nestjs-to-job.d.ts +11 -0
- package/dist/prompts/nestjs-to-job.d.ts.map +1 -0
- package/dist/prompts/nestjs-to-job.js +110 -0
- package/dist/prompts/nestjs-to-job.js.map +1 -0
- package/dist/tools/jobs.d.ts +21 -0
- package/dist/tools/jobs.d.ts.map +1 -0
- package/dist/tools/jobs.js +470 -0
- package/dist/tools/jobs.js.map +1 -0
- package/dist/tools/vm-rpa.d.ts.map +1 -1
- package/dist/tools/vm-rpa.js +109 -25
- package/dist/tools/vm-rpa.js.map +1 -1
- package/package.json +1 -1
- package/skills/general/nestjs-middleware-to-job.md +82 -0
package/dist/tools/vm-rpa.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { ok, text, json,
|
|
3
|
-
import { ldsConnection, ldsAuth } from "../state.js";
|
|
2
|
+
import { ok, text, json, buildRpaProgram, NOT_CONNECTED_VM, } from "../helpers.js";
|
|
3
|
+
import { ldsConnection, ldsAuth, getWorkspaceRegion } from "../state.js";
|
|
4
4
|
import * as lds from "../lds-client.js";
|
|
5
|
+
import { MiddlewareServiceClient } from "../middleware-service-client.js";
|
|
5
6
|
const regionParam = z
|
|
6
7
|
.enum(["us", "ca"])
|
|
7
8
|
.optional()
|
|
@@ -38,15 +39,34 @@ export function register(deps) {
|
|
|
38
39
|
.describe("Natural-language description of the expected UI state AFTER this step runs. Use generate_state_description to author these."),
|
|
39
40
|
}, async ({ workflowId, name, description, pythonScript, executionOrder, flowId, dispatchPattern, region, expectedPreState, expectedPostState, }) => {
|
|
40
41
|
const program = buildRpaProgram(pythonScript, dispatchPattern, flowId, name, description, expectedPreState, expectedPostState);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
try {
|
|
43
|
+
const flow = await deps
|
|
44
|
+
.client(region)
|
|
45
|
+
.createFlow({
|
|
46
|
+
workflowId,
|
|
47
|
+
name,
|
|
48
|
+
description,
|
|
49
|
+
program,
|
|
50
|
+
executionOrder,
|
|
51
|
+
flowType: "RPA",
|
|
52
|
+
language: "js",
|
|
53
|
+
});
|
|
54
|
+
return ok({
|
|
55
|
+
flow,
|
|
56
|
+
draftTestCase: {
|
|
57
|
+
hint: "Step saved. To lock in this behavior as a regression test, register this workflow as a Job (register_job) and call add_test_case with the input you validated and assertions over the output. Then run_tests as your green-gate.",
|
|
58
|
+
name: `${name} — happy path`,
|
|
59
|
+
input: {},
|
|
60
|
+
assertions: [
|
|
61
|
+
{ name: "job succeeds", expr: 'ctx.execution?.status === "succeeded" || output != null' },
|
|
62
|
+
{ name: "output is returned", expr: "output != null" },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
return text(`Error: ${e.message}`);
|
|
69
|
+
}
|
|
50
70
|
});
|
|
51
71
|
// ── Debug / test ──────────────────────────────────────────
|
|
52
72
|
server.tool("debug_rpa_step", "Test-drive an automation script with visual proof: captures a BEFORE screenshot, runs the Python script, captures an AFTER screenshot. If expectedPreState / expectedPostState are provided, LLM state verification runs on the VM and results are included. Use this to validate every step before saving to a workflow.", {
|
|
@@ -104,6 +124,28 @@ export function register(deps) {
|
|
|
104
124
|
mimeType: "image/png",
|
|
105
125
|
},
|
|
106
126
|
];
|
|
127
|
+
if (execResult.success) {
|
|
128
|
+
let observed = execResult.stdout;
|
|
129
|
+
try {
|
|
130
|
+
observed = JSON.parse(String(execResult.stdout));
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
/* stdout is not JSON; surface raw */
|
|
134
|
+
}
|
|
135
|
+
content.push({
|
|
136
|
+
type: "text",
|
|
137
|
+
text: json({
|
|
138
|
+
draftTestCase: {
|
|
139
|
+
hint: "This step succeeded. Capture it as a regression test: once these steps form a workflow, register it as a Job (register_job) and add_test_case with this observed output to assert against. Then run_tests.",
|
|
140
|
+
name: `${stepName ?? "RPA Step"} — happy path`,
|
|
141
|
+
observedOutput: observed,
|
|
142
|
+
suggestedAssertions: [
|
|
143
|
+
{ name: "output is returned", expr: "output != null" },
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
}),
|
|
147
|
+
});
|
|
148
|
+
}
|
|
107
149
|
return { content };
|
|
108
150
|
}
|
|
109
151
|
catch (e) {
|
|
@@ -223,37 +265,79 @@ if not found:
|
|
|
223
265
|
}
|
|
224
266
|
});
|
|
225
267
|
// ── Batch testing ─────────────────────────────────────────
|
|
226
|
-
server.tool("batch_test_rpa", "Run a workflow for each set of test inputs and collect pass/fail results.", {
|
|
268
|
+
server.tool("batch_test_rpa", "Run a workflow for each set of test inputs and collect pass/fail results. Optionally persist each successful input as a real Job test case (set persistAsTestCases + routeId + middlewareId + workspaceId) so the validated inputs become regression tests on the job.", {
|
|
227
269
|
workflowId: z.number().describe("Workflow ID to execute"),
|
|
228
270
|
testInputs: z
|
|
229
271
|
.array(z.record(z.string(), z.unknown()))
|
|
230
272
|
.describe("Array of input objects — one execution per entry"),
|
|
273
|
+
persistAsTestCases: z
|
|
274
|
+
.boolean()
|
|
275
|
+
.optional()
|
|
276
|
+
.describe("If true, persist each successful input as a Job test case. Requires routeId, middlewareId and workspaceId."),
|
|
277
|
+
routeId: z
|
|
278
|
+
.string()
|
|
279
|
+
.optional()
|
|
280
|
+
.describe("Job (route) ID to attach persisted test cases to"),
|
|
281
|
+
middlewareId: z
|
|
282
|
+
.string()
|
|
283
|
+
.optional()
|
|
284
|
+
.describe("Router (middleware) ID owning the job (for persistAsTestCases)"),
|
|
285
|
+
workspaceId: z
|
|
286
|
+
.number()
|
|
287
|
+
.optional()
|
|
288
|
+
.describe("Workspace ID (for persistAsTestCases)"),
|
|
231
289
|
region: regionParam,
|
|
232
|
-
}, async ({ workflowId, testInputs, region }) => {
|
|
290
|
+
}, async ({ workflowId, testInputs, persistAsTestCases, routeId, middlewareId, workspaceId, region }) => {
|
|
233
291
|
const results = [];
|
|
234
|
-
const r = region
|
|
292
|
+
const r = region ??
|
|
293
|
+
(workspaceId != null ? getWorkspaceRegion(workspaceId) : undefined);
|
|
294
|
+
const wantPersist = !!persistAsTestCases;
|
|
295
|
+
if (wantPersist && (!routeId || !middlewareId || workspaceId == null)) {
|
|
296
|
+
return text("persistAsTestCases requires routeId, middlewareId and workspaceId so the test cases can be attached to the job.");
|
|
297
|
+
}
|
|
298
|
+
const mwClient = wantPersist
|
|
299
|
+
? new MiddlewareServiceClient(deps.getApiBase(r), deps.getAuthToken?.(r) || "")
|
|
300
|
+
: null;
|
|
235
301
|
for (let i = 0; i < testInputs.length; i++) {
|
|
302
|
+
const entry = {
|
|
303
|
+
index: i,
|
|
304
|
+
input: testInputs[i],
|
|
305
|
+
passed: false,
|
|
306
|
+
};
|
|
236
307
|
try {
|
|
237
|
-
const res = await deps
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
results.push({ index: i, input: testInputs[i], passed: true, result: res });
|
|
308
|
+
const res = await deps.client(r).executeWorkflow(workflowId, testInputs[i]);
|
|
309
|
+
entry.passed = true;
|
|
310
|
+
entry.result = res;
|
|
241
311
|
}
|
|
242
312
|
catch (e) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
313
|
+
entry.error = e.message;
|
|
314
|
+
}
|
|
315
|
+
if (entry.passed && mwClient) {
|
|
316
|
+
try {
|
|
317
|
+
const tc = await mwClient.addTestCase(workspaceId, middlewareId, routeId, {
|
|
318
|
+
name: `batch_test_rpa case ${i + 1}`,
|
|
319
|
+
description: "Auto-persisted from a passing batch_test_rpa run",
|
|
320
|
+
input: testInputs[i],
|
|
321
|
+
assertions: [{ name: "output is returned", expr: "output != null" }],
|
|
322
|
+
tags: ["batch_test_rpa"],
|
|
323
|
+
enabled: true,
|
|
324
|
+
});
|
|
325
|
+
entry.testCaseId = tc.id;
|
|
326
|
+
}
|
|
327
|
+
catch (e) {
|
|
328
|
+
entry.persistError = e.message;
|
|
329
|
+
}
|
|
249
330
|
}
|
|
331
|
+
results.push(entry);
|
|
250
332
|
}
|
|
251
|
-
const passed = results.filter((
|
|
333
|
+
const passed = results.filter((x) => x.passed).length;
|
|
334
|
+
const persisted = results.filter((x) => x.testCaseId).length;
|
|
252
335
|
return ok({
|
|
253
336
|
summary: {
|
|
254
337
|
total: testInputs.length,
|
|
255
338
|
passed,
|
|
256
339
|
failed: testInputs.length - passed,
|
|
340
|
+
...(wantPersist ? { testCasesPersisted: persisted } : {}),
|
|
257
341
|
},
|
|
258
342
|
results,
|
|
259
343
|
});
|
package/dist/tools/vm-rpa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-rpa.js","sourceRoot":"","sources":["../../src/tools/vm-rpa.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vm-rpa.js","sourceRoot":"","sources":["../../src/tools/vm-rpa.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@minicor/mcp-server",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "Desktop and browser RPA automation, workflow management, and AI-powered debugging for the Minicor platform. Formerly Laminar.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/lib.js",
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nestjs-middleware-to-job
|
|
3
|
+
description: Turn an existing NestJS customer middleware endpoint (a controller that orchestrates Minicor workflows) into a Job — a structured JobDefinition step graph registered via register_job, with test cases as the green-gate. Use when migrating customers/middlewares/* controllers onto the Jobs layer.
|
|
4
|
+
category: task
|
|
5
|
+
tags: [jobs, middleware, nestjs, migration, testing, register_job]
|
|
6
|
+
priority: 80
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# NestJS Middleware → Job
|
|
10
|
+
|
|
11
|
+
A **Job** is a middleware route whose behavior is a structured `definition` (a step graph)
|
|
12
|
+
instead of freeform NestJS handler code. Jobs sit **above** workflows: a job step calls an
|
|
13
|
+
entire Minicor workflow (`kind: "workflow"`, by `workflowId`) or runs a code block
|
|
14
|
+
(`kind: "code"`). This skill maps an existing Nest.js controller onto that model.
|
|
15
|
+
|
|
16
|
+
## When to use
|
|
17
|
+
|
|
18
|
+
You have a customer middleware (e.g. `customers/middlewares/furtherai-middleware`) whose
|
|
19
|
+
controllers call `laminarService.executeWorkflow(...)` in sequence (login → lookup → create,
|
|
20
|
+
plus header/result munging and error mapping). You want that orchestration to run as a
|
|
21
|
+
job-backed route on middleware-service so it is versioned, testable, and observable.
|
|
22
|
+
|
|
23
|
+
## Mapping table
|
|
24
|
+
|
|
25
|
+
| NestJS construct | JobDefinition |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| `@Body() dto` + DTO class | `inputSchema` (JSON Schema) |
|
|
28
|
+
| return type / response DTO | `outputSchema` (JSON Schema) |
|
|
29
|
+
| `executeWorkflow({ workflowId: LOGIN, data: {} })` | `kind:"workflow"` step + `cache` (login gate) |
|
|
30
|
+
| `executeWorkflow({ workflowId: TARGET, data })` | `kind:"workflow"` step; `input` = `{{ctx.input.*}}` template or `(ctx) => ({...})` CodeBlock |
|
|
31
|
+
| header munging (`x-recording-url` → `web_agent_video_url`) | `output` CodeBlock or a `kind:"code"` step |
|
|
32
|
+
| `if (cond)` branching | step `when` (skip), `onError`, `{ goto }` |
|
|
33
|
+
| looping over a collection | step `forEach` |
|
|
34
|
+
| `throw new HttpException(...)` | engine sets `failed` on `onError:"abort"`; `output` decides `partial`/`review` |
|
|
35
|
+
| login must land before run (serialized queue) | `resource.lockKey` |
|
|
36
|
+
| secrets / config | `resource.configStoreId` or step `configStoreId` (never hardcode) |
|
|
37
|
+
|
|
38
|
+
## Worked example: FurtherAI AMS360 `runWithLogin`
|
|
39
|
+
|
|
40
|
+
The controller method "ensure AMS360 login → run target workflow → merge recording URL header
|
|
41
|
+
→ return / map errors" becomes a Job:
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"region": "us",
|
|
46
|
+
"resource": { "lockKey": "ams360-desktop" },
|
|
47
|
+
"inputSchema": { "type": "object", "properties": { "insured_name": { "type": "string" } }, "required": ["insured_name"] },
|
|
48
|
+
"outputSchema": { "type": "object" },
|
|
49
|
+
"steps": [
|
|
50
|
+
{ "id": "login", "name": "AMS360 Login", "kind": "workflow", "workflowId": 0, "input": {}, "cache": { "key": "ams360-login", "ttlMs": 1800000 }, "onError": "abort" },
|
|
51
|
+
{ "id": "lookup", "name": "Account Lookup", "kind": "workflow", "workflowId": 2078, "saveAs": "lookup", "input": { "task_type": "ams_account_lookup", "insured_name": "{{ctx.input.insured_name}}" }, "onError": "abort" }
|
|
52
|
+
],
|
|
53
|
+
"output": "(ctx) => { const r = ctx.lookup?.data ?? ctx.lookup; const rec = ctx.lookup?.headers?.['x-recording-url']; return rec ? { ...r, web_agent_video_url: String(rec) } : r; }"
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Replace placeholder workflow ids (`0`, `2078`) with real ones from `list_workflows` /
|
|
58
|
+
the controller's `WORKFLOW_IDS` constants.
|
|
59
|
+
|
|
60
|
+
## Procedure
|
|
61
|
+
|
|
62
|
+
1. Read the controller and its DTOs/constants. List each endpoint, the workflow ids it calls,
|
|
63
|
+
call order, and result-shaping logic.
|
|
64
|
+
2. `list_workflows(workspaceId)` — resolve the controller's `WORKFLOW_IDS` to live ids.
|
|
65
|
+
3. Author `inputSchema`/`outputSchema` from the DTOs.
|
|
66
|
+
4. Build the step graph per the table. Login/smart-launch → a `cache`d workflow step. Each
|
|
67
|
+
downstream workflow → a workflow step with templated `input`. Munging → the `output` block.
|
|
68
|
+
5. **Define the green-gate FIRST**: `add_test_case` with a representative (test-only) input and
|
|
69
|
+
assertions over the expected output, e.g. `output.web_agent_video_url != null`.
|
|
70
|
+
6. `register_job(workspaceId, middlewareId, path, definition)` (create a router first with
|
|
71
|
+
`create_router` if needed).
|
|
72
|
+
7. `run_job` with the test input; inspect the JobExecution — each workflow step carries
|
|
73
|
+
`workflowExecutionId` + `region` to deep-link the real Minicor run.
|
|
74
|
+
8. **Green-gate**: `run_tests` until `green: true`. Drill into failures → job execution → step →
|
|
75
|
+
Minicor run; fix with `update_job` and re-run.
|
|
76
|
+
|
|
77
|
+
## Rules
|
|
78
|
+
|
|
79
|
+
- One job per controller endpoint; keep the graph shallow (login → work → shape).
|
|
80
|
+
- Never hardcode credentials — use the workflow's config store.
|
|
81
|
+
- Preserve ordering guarantees with `resource.lockKey`.
|
|
82
|
+
- Test data only — never real patient/customer data.
|