@minicor/mcp-server 2.0.8 → 3.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 +29 -2
- package/dist/__tests__/state.test.d.ts +2 -0
- package/dist/__tests__/state.test.d.ts.map +1 -0
- package/dist/__tests__/state.test.js +116 -0
- package/dist/__tests__/state.test.js.map +1 -0
- package/dist/__tests__/vm-service-client.test.d.ts +2 -0
- package/dist/__tests__/vm-service-client.test.d.ts.map +1 -0
- package/dist/__tests__/vm-service-client.test.js +80 -0
- package/dist/__tests__/vm-service-client.test.js.map +1 -0
- package/dist/agent-service-client.d.ts +34 -0
- package/dist/agent-service-client.d.ts.map +1 -0
- package/dist/agent-service-client.js +64 -0
- package/dist/agent-service-client.js.map +1 -0
- package/dist/helpers.d.ts +1 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +1 -1
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111 -44
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +10 -2
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +55 -6
- package/dist/lib.js.map +1 -1
- package/dist/prompts/build-rpa.d.ts.map +1 -1
- package/dist/prompts/build-rpa.js +39 -5
- package/dist/prompts/build-rpa.js.map +1 -1
- package/dist/prompts/debug-execution.d.ts.map +1 -1
- package/dist/prompts/debug-execution.js +5 -3
- package/dist/prompts/debug-execution.js.map +1 -1
- package/dist/setup.js +86 -32
- package/dist/setup.js.map +1 -1
- package/dist/state.d.ts +14 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +20 -0
- package/dist/state.js.map +1 -1
- package/dist/tools/{stats.d.ts → agents.d.ts} +1 -1
- package/dist/tools/agents.d.ts.map +1 -0
- package/dist/tools/agents.js +92 -0
- package/dist/tools/agents.js.map +1 -0
- package/dist/tools/config-stores.d.ts.map +1 -1
- package/dist/tools/config-stores.js +59 -11
- package/dist/tools/config-stores.js.map +1 -1
- package/dist/tools/core.d.ts.map +1 -1
- package/dist/tools/core.js +141 -33
- package/dist/tools/core.js.map +1 -1
- package/dist/tools/issues.d.ts.map +1 -1
- package/dist/tools/issues.js +51 -16
- package/dist/tools/issues.js.map +1 -1
- package/dist/tools/sync-tools.d.ts.map +1 -1
- package/dist/tools/sync-tools.js +29 -12
- package/dist/tools/sync-tools.js.map +1 -1
- package/dist/tools/tfa.d.ts.map +1 -1
- package/dist/tools/tfa.js +42 -22
- package/dist/tools/tfa.js.map +1 -1
- package/dist/tools/vm-rpa.d.ts.map +1 -1
- package/dist/tools/vm-rpa.js +15 -7
- package/dist/tools/vm-rpa.js.map +1 -1
- package/dist/tools/vm.d.ts.map +1 -1
- package/dist/tools/vm.js +380 -12
- package/dist/tools/vm.js.map +1 -1
- package/dist/tools/workflow-ops.d.ts.map +1 -1
- package/dist/tools/workflow-ops.js +46 -30
- package/dist/tools/workflow-ops.js.map +1 -1
- package/dist/types.d.ts +8 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vm-service-client.d.ts +24 -0
- package/dist/vm-service-client.d.ts.map +1 -0
- package/dist/vm-service-client.js +23 -0
- package/dist/vm-service-client.js.map +1 -0
- package/package.json +2 -2
- package/dist/browser-client.d.ts +0 -42
- package/dist/browser-client.d.ts.map +0 -1
- package/dist/browser-client.js +0 -66
- package/dist/browser-client.js.map +0 -1
- package/dist/prompts/build-browser-rpa.d.ts +0 -3
- package/dist/prompts/build-browser-rpa.d.ts.map +0 -1
- package/dist/prompts/build-browser-rpa.js +0 -90
- package/dist/prompts/build-browser-rpa.js.map +0 -1
- package/dist/prompts/build-nerve-rpa.d.ts +0 -3
- package/dist/prompts/build-nerve-rpa.d.ts.map +0 -1
- package/dist/prompts/build-nerve-rpa.js +0 -148
- package/dist/prompts/build-nerve-rpa.js.map +0 -1
- package/dist/services.d.ts +0 -61
- package/dist/services.d.ts.map +0 -1
- package/dist/services.js +0 -249
- package/dist/services.js.map +0 -1
- package/dist/tools/browser.d.ts +0 -3
- package/dist/tools/browser.d.ts.map +0 -1
- package/dist/tools/browser.js +0 -254
- package/dist/tools/browser.js.map +0 -1
- package/dist/tools/cron.d.ts +0 -3
- package/dist/tools/cron.d.ts.map +0 -1
- package/dist/tools/cron.js +0 -168
- package/dist/tools/cron.js.map +0 -1
- package/dist/tools/elasticsearch.d.ts +0 -3
- package/dist/tools/elasticsearch.d.ts.map +0 -1
- package/dist/tools/elasticsearch.js +0 -248
- package/dist/tools/elasticsearch.js.map +0 -1
- package/dist/tools/stats.d.ts.map +0 -1
- package/dist/tools/stats.js +0 -18
- package/dist/tools/stats.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Brings your Minicor workspace into Cursor / Claude Code.
|
|
6
6
|
* Build, deploy, and debug VM-based automations from your IDE.
|
|
7
|
+
*
|
|
8
|
+
* Supports simultaneous US and CA region connections — each region
|
|
9
|
+
* gets its own stored credentials and LaminarClient instance.
|
|
7
10
|
*/
|
|
8
11
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
12
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -18,42 +21,64 @@ import { register as registerSyncTools } from "./tools/sync-tools.js";
|
|
|
18
21
|
import { register as registerVm } from "./tools/vm.js";
|
|
19
22
|
import { register as registerVmRpa } from "./tools/vm-rpa.js";
|
|
20
23
|
import { register as registerTfa } from "./tools/tfa.js";
|
|
24
|
+
import { register as registerIssues } from "./tools/issues.js";
|
|
25
|
+
import { register as registerAgents } from "./tools/agents.js";
|
|
21
26
|
import { register as registerWorkflowGuide } from "./prompts/workflow-guide.js";
|
|
22
27
|
import { register as registerDebugExecution } from "./prompts/debug-execution.js";
|
|
23
28
|
import { register as registerBuildRpa } from "./prompts/build-rpa.js";
|
|
24
29
|
import { register as registerTfaGuide } from "./prompts/tfa-guide.js";
|
|
25
30
|
// ─── Token management ────────────────────────────────────────
|
|
26
31
|
const REFRESH_BUFFER_MS = 5 * 60 * 1000;
|
|
32
|
+
/**
|
|
33
|
+
* Read and normalize stored tokens into multi-region format.
|
|
34
|
+
* Handles backward-compat with old flat single-region format.
|
|
35
|
+
*/
|
|
27
36
|
function readStoredTokens() {
|
|
28
37
|
try {
|
|
29
38
|
const tokenPath = getTokenPath();
|
|
30
39
|
if (!fs.existsSync(tokenPath))
|
|
31
|
-
return
|
|
32
|
-
|
|
40
|
+
return {};
|
|
41
|
+
const raw = JSON.parse(fs.readFileSync(tokenPath, "utf-8"));
|
|
42
|
+
if (raw.us || raw.ca) {
|
|
43
|
+
return raw;
|
|
44
|
+
}
|
|
45
|
+
if (raw.access_token) {
|
|
46
|
+
const region = raw.region || apiBaseToRegion(raw.api_base || "");
|
|
47
|
+
return { [region]: raw };
|
|
48
|
+
}
|
|
49
|
+
return {};
|
|
33
50
|
}
|
|
34
51
|
catch {
|
|
35
|
-
return
|
|
52
|
+
return {};
|
|
36
53
|
}
|
|
37
54
|
}
|
|
38
|
-
function
|
|
55
|
+
function readRegionTokens(region) {
|
|
56
|
+
return readStoredTokens()[region] ?? null;
|
|
57
|
+
}
|
|
58
|
+
function writeRegionTokens(region, tokens) {
|
|
39
59
|
const writePath = getWriteTokenPath();
|
|
40
60
|
const dir = path.dirname(writePath);
|
|
41
61
|
if (!fs.existsSync(dir))
|
|
42
62
|
fs.mkdirSync(dir, { recursive: true });
|
|
43
|
-
|
|
63
|
+
const existing = readStoredTokens();
|
|
64
|
+
existing[region] = tokens;
|
|
65
|
+
fs.writeFileSync(writePath, JSON.stringify(existing, null, 2) + "\n", {
|
|
44
66
|
mode: 0o600,
|
|
45
67
|
});
|
|
46
68
|
}
|
|
47
|
-
export function getApiBase() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
69
|
+
export function getApiBase(region) {
|
|
70
|
+
if (region)
|
|
71
|
+
return regionToApiBase(region);
|
|
72
|
+
const all = readStoredTokens();
|
|
73
|
+
const first = all.us ?? all.ca;
|
|
74
|
+
if (first?.region)
|
|
75
|
+
return regionToApiBase(first.region);
|
|
76
|
+
if (first?.api_base)
|
|
77
|
+
return first.api_base;
|
|
53
78
|
return regionToApiBase("us");
|
|
54
79
|
}
|
|
55
|
-
async function refreshAccessToken(refreshToken) {
|
|
56
|
-
const base =
|
|
80
|
+
async function refreshAccessToken(region, refreshToken) {
|
|
81
|
+
const base = regionToApiBase(region);
|
|
57
82
|
try {
|
|
58
83
|
const res = await fetch(`${base}/auth/refresh`, {
|
|
59
84
|
method: "POST",
|
|
@@ -68,62 +93,80 @@ async function refreshAccessToken(refreshToken) {
|
|
|
68
93
|
refresh_token: data.refresh_token || refreshToken,
|
|
69
94
|
expires_at: Date.now() + data.expires_in * 1000,
|
|
70
95
|
api_base: base,
|
|
71
|
-
region
|
|
96
|
+
region,
|
|
72
97
|
};
|
|
73
98
|
}
|
|
74
99
|
catch {
|
|
75
100
|
return null;
|
|
76
101
|
}
|
|
77
102
|
}
|
|
78
|
-
async function getValidToken() {
|
|
79
|
-
const tokens =
|
|
103
|
+
async function getValidToken(region) {
|
|
104
|
+
const tokens = readRegionTokens(region);
|
|
80
105
|
if (!tokens)
|
|
81
|
-
throw new Error(
|
|
106
|
+
throw new Error(`No stored tokens for region ${region}`);
|
|
82
107
|
if (Date.now() < tokens.expires_at - REFRESH_BUFFER_MS) {
|
|
83
108
|
return tokens.access_token;
|
|
84
109
|
}
|
|
85
110
|
if (tokens.refresh_token) {
|
|
86
|
-
console.error(
|
|
87
|
-
const refreshed = await refreshAccessToken(tokens.refresh_token);
|
|
111
|
+
console.error(`Refreshing ${region.toUpperCase()} access token...`);
|
|
112
|
+
const refreshed = await refreshAccessToken(region, tokens.refresh_token);
|
|
88
113
|
if (refreshed) {
|
|
89
|
-
|
|
90
|
-
console.error(
|
|
114
|
+
writeRegionTokens(region, refreshed);
|
|
115
|
+
console.error(`${region.toUpperCase()} token refreshed.`);
|
|
91
116
|
return refreshed.access_token;
|
|
92
117
|
}
|
|
93
118
|
}
|
|
94
|
-
console.error(
|
|
119
|
+
console.error(`Warning: ${region.toUpperCase()} token expired and refresh failed. Run \`minicor-mcp-setup\` to re-authenticate.`);
|
|
95
120
|
return tokens.access_token;
|
|
96
121
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
122
|
+
const DEFAULT_VM_SERVICE_URL = "https://lam-vm-service-ernfuwetfa-uc.a.run.app";
|
|
123
|
+
function getVmServiceBase() {
|
|
124
|
+
return process.env.VM_MANAGER_API_URL || DEFAULT_VM_SERVICE_URL;
|
|
125
|
+
}
|
|
126
|
+
async function resolveAllAuth() {
|
|
127
|
+
const allTokens = readStoredTokens();
|
|
128
|
+
const results = [];
|
|
129
|
+
for (const r of ["us", "ca"]) {
|
|
130
|
+
const t = allTokens[r];
|
|
131
|
+
if (!t)
|
|
132
|
+
continue;
|
|
133
|
+
try {
|
|
134
|
+
const token = await getValidToken(r);
|
|
135
|
+
results.push({
|
|
136
|
+
region: r,
|
|
137
|
+
auth: { type: "bearer", token },
|
|
138
|
+
baseUrl: regionToApiBase(r),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// skip region if tokens are invalid
|
|
143
|
+
}
|
|
103
144
|
}
|
|
104
|
-
return
|
|
145
|
+
return results;
|
|
105
146
|
}
|
|
106
147
|
// ─── Server state ────────────────────────────────────────────
|
|
107
|
-
|
|
148
|
+
const clients = new Map();
|
|
149
|
+
const currentTokens = new Map();
|
|
108
150
|
const server = new McpServer({
|
|
109
151
|
name: "minicor",
|
|
110
152
|
version: "3.0.0",
|
|
111
153
|
});
|
|
112
|
-
function scheduleTokenRefresh() {
|
|
113
|
-
const tokens =
|
|
154
|
+
function scheduleTokenRefresh(region) {
|
|
155
|
+
const tokens = readRegionTokens(region);
|
|
114
156
|
if (!tokens?.refresh_token)
|
|
115
157
|
return;
|
|
116
158
|
const msUntilRefresh = Math.max(tokens.expires_at - REFRESH_BUFFER_MS - Date.now(), 60_000);
|
|
117
159
|
setTimeout(async () => {
|
|
118
160
|
try {
|
|
119
|
-
const token = await getValidToken();
|
|
120
|
-
|
|
121
|
-
|
|
161
|
+
const token = await getValidToken(region);
|
|
162
|
+
clients.set(region, new LaminarClient({ type: "bearer", token }, regionToApiBase(region)));
|
|
163
|
+
currentTokens.set(region, token);
|
|
164
|
+
console.error(`${region.toUpperCase()} token auto-refreshed, client updated.`);
|
|
122
165
|
}
|
|
123
166
|
catch (e) {
|
|
124
|
-
console.error(
|
|
167
|
+
console.error(`${region.toUpperCase()} auto-refresh failed:`, e.message);
|
|
125
168
|
}
|
|
126
|
-
scheduleTokenRefresh();
|
|
169
|
+
scheduleTokenRefresh(region);
|
|
127
170
|
}, msUntilRefresh);
|
|
128
171
|
}
|
|
129
172
|
// ─── Unauthenticated mode ────────────────────────────────────
|
|
@@ -142,11 +185,28 @@ function registerUnauthenticated() {
|
|
|
142
185
|
}));
|
|
143
186
|
}
|
|
144
187
|
// ─── Register all tools and prompts ──────────────────────────
|
|
188
|
+
function getDefaultRegion() {
|
|
189
|
+
if (clients.has("us"))
|
|
190
|
+
return "us";
|
|
191
|
+
if (clients.has("ca"))
|
|
192
|
+
return "ca";
|
|
193
|
+
return "us";
|
|
194
|
+
}
|
|
145
195
|
function registerAll() {
|
|
146
196
|
const deps = {
|
|
147
197
|
server,
|
|
148
|
-
client: () =>
|
|
149
|
-
|
|
198
|
+
client: (region) => {
|
|
199
|
+
const r = region ?? getDefaultRegion();
|
|
200
|
+
const c = clients.get(r);
|
|
201
|
+
if (!c) {
|
|
202
|
+
throw new Error(`Not authenticated for ${r.toUpperCase()} region. Run \`minicor-mcp-setup\` to add credentials for this region.`);
|
|
203
|
+
}
|
|
204
|
+
return c;
|
|
205
|
+
},
|
|
206
|
+
getApiBase: (region) => regionToApiBase(region ?? getDefaultRegion()),
|
|
207
|
+
getVmServiceBase,
|
|
208
|
+
getAuthToken: (region) => currentTokens.get(region ?? getDefaultRegion()) ?? "",
|
|
209
|
+
availableRegions: () => [...clients.keys()],
|
|
150
210
|
};
|
|
151
211
|
registerCore(deps);
|
|
152
212
|
registerWorkflowOps(deps);
|
|
@@ -155,6 +215,8 @@ function registerAll() {
|
|
|
155
215
|
registerVm(deps);
|
|
156
216
|
registerVmRpa(deps);
|
|
157
217
|
registerTfa(deps);
|
|
218
|
+
registerIssues(deps);
|
|
219
|
+
registerAgents(deps);
|
|
158
220
|
registerWorkflowGuide(deps);
|
|
159
221
|
registerDebugExecution(deps);
|
|
160
222
|
registerBuildRpa(deps);
|
|
@@ -162,19 +224,24 @@ function registerAll() {
|
|
|
162
224
|
}
|
|
163
225
|
// ─── Main ────────────────────────────────────────────────────
|
|
164
226
|
async function main() {
|
|
165
|
-
const
|
|
166
|
-
if (
|
|
227
|
+
const authResults = await resolveAllAuth();
|
|
228
|
+
if (authResults.length === 0) {
|
|
167
229
|
console.error("No credentials found. Starting in limited mode.");
|
|
168
230
|
registerUnauthenticated();
|
|
169
231
|
}
|
|
170
232
|
else {
|
|
171
|
-
|
|
172
|
-
|
|
233
|
+
for (const { region, auth, baseUrl } of authResults) {
|
|
234
|
+
clients.set(region, new LaminarClient(auth, baseUrl));
|
|
235
|
+
currentTokens.set(region, auth.token);
|
|
236
|
+
scheduleTokenRefresh(region);
|
|
237
|
+
}
|
|
238
|
+
const regions = authResults.map((a) => a.region.toUpperCase()).join(" + ");
|
|
239
|
+
console.error(`Authenticated regions: ${regions}`);
|
|
173
240
|
registerAll();
|
|
174
241
|
}
|
|
175
242
|
const transport = new StdioServerTransport();
|
|
176
243
|
await server.connect(transport);
|
|
177
|
-
console.error(
|
|
244
|
+
console.error(authResults.length > 0
|
|
178
245
|
? "Minicor MCP server running on stdio"
|
|
179
246
|
: "Minicor MCP server running (limited mode — run minicor-mcp-setup to authenticate)");
|
|
180
247
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib.d.ts
CHANGED
|
@@ -15,11 +15,19 @@
|
|
|
15
15
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
16
16
|
import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
|
17
17
|
import { type LaminarAuth } from "./laminar-client.js";
|
|
18
|
+
import { type Region } from "./paths.js";
|
|
18
19
|
export interface MinicorServerOptions {
|
|
19
|
-
/**
|
|
20
|
+
/** Single-region auth (backward compat). If provided, used for the default region. */
|
|
20
21
|
auth?: LaminarAuth;
|
|
21
|
-
/**
|
|
22
|
+
/** Single-region base URL (backward compat). */
|
|
22
23
|
baseUrl?: string;
|
|
24
|
+
/** Per-region auth for multi-region support. Takes precedence over auth/baseUrl. */
|
|
25
|
+
regionAuth?: Partial<Record<Region, {
|
|
26
|
+
auth: LaminarAuth;
|
|
27
|
+
baseUrl?: string;
|
|
28
|
+
}>>;
|
|
29
|
+
/** VM Manager service base URL. Defaults to the Cloud Run instance. */
|
|
30
|
+
vmServiceBaseUrl?: string;
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
25
33
|
* Create and connect a Minicor MCP server on the given transport.
|
package/dist/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAoB1D,MAAM,WAAW,oBAAoB;IACnC,sFAAsF;IACtF,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC9E,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAqBD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAyE5D;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/lib.js
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
16
16
|
import { LaminarClient } from "./laminar-client.js";
|
|
17
|
+
import { regionToApiBase } from "./paths.js";
|
|
17
18
|
import { register as registerCore } from "./tools/core.js";
|
|
18
19
|
import { register as registerWorkflowOps } from "./tools/workflow-ops.js";
|
|
19
20
|
import { register as registerConfigStores } from "./tools/config-stores.js";
|
|
@@ -21,10 +22,13 @@ import { register as registerSyncTools } from "./tools/sync-tools.js";
|
|
|
21
22
|
import { register as registerVm } from "./tools/vm.js";
|
|
22
23
|
import { register as registerVmRpa } from "./tools/vm-rpa.js";
|
|
23
24
|
import { register as registerTfa } from "./tools/tfa.js";
|
|
25
|
+
import { register as registerIssues } from "./tools/issues.js";
|
|
26
|
+
import { register as registerAgents } from "./tools/agents.js";
|
|
24
27
|
import { register as registerWorkflowGuide } from "./prompts/workflow-guide.js";
|
|
25
28
|
import { register as registerDebugExecution } from "./prompts/debug-execution.js";
|
|
26
29
|
import { register as registerBuildRpa } from "./prompts/build-rpa.js";
|
|
27
30
|
import { register as registerTfaGuide } from "./prompts/tfa-guide.js";
|
|
31
|
+
const DEFAULT_VM_SERVICE_URL = "https://lam-vm-service-ernfuwetfa-uc.a.run.app";
|
|
28
32
|
function registerAllTools(deps) {
|
|
29
33
|
registerCore(deps);
|
|
30
34
|
registerWorkflowOps(deps);
|
|
@@ -33,6 +37,8 @@ function registerAllTools(deps) {
|
|
|
33
37
|
registerVm(deps);
|
|
34
38
|
registerVmRpa(deps);
|
|
35
39
|
registerTfa(deps);
|
|
40
|
+
registerIssues(deps);
|
|
41
|
+
registerAgents(deps);
|
|
36
42
|
registerWorkflowGuide(deps);
|
|
37
43
|
registerDebugExecution(deps);
|
|
38
44
|
registerBuildRpa(deps);
|
|
@@ -45,14 +51,57 @@ const DEFAULT_BASE_URL = "https://api.laminar.run";
|
|
|
45
51
|
*/
|
|
46
52
|
export async function createMinicorServer(transport, opts = {}) {
|
|
47
53
|
const server = new McpServer({ name: "minicor", version: "3.0.0" });
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
const clients = new Map();
|
|
55
|
+
const tokens = new Map();
|
|
56
|
+
const baseUrls = new Map();
|
|
57
|
+
if (opts.regionAuth) {
|
|
58
|
+
for (const [r, cfg] of Object.entries(opts.regionAuth)) {
|
|
59
|
+
if (!cfg)
|
|
60
|
+
continue;
|
|
61
|
+
const base = cfg.baseUrl || regionToApiBase(r);
|
|
62
|
+
clients.set(r, new LaminarClient(cfg.auth, base));
|
|
63
|
+
tokens.set(r, cfg.auth.token);
|
|
64
|
+
baseUrls.set(r, base);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (clients.size === 0 && opts.auth) {
|
|
68
|
+
const baseUrl = opts.baseUrl || DEFAULT_BASE_URL;
|
|
69
|
+
const region = baseUrl.includes("ca.api") ? "ca" : "us";
|
|
70
|
+
clients.set(region, new LaminarClient(opts.auth, baseUrl));
|
|
71
|
+
tokens.set(region, opts.auth.token);
|
|
72
|
+
baseUrls.set(region, baseUrl);
|
|
73
|
+
}
|
|
74
|
+
if (clients.size === 0) {
|
|
75
|
+
const baseUrl = opts.baseUrl || DEFAULT_BASE_URL;
|
|
76
|
+
clients.set("us", new LaminarClient({ type: "bearer", token: "" }, baseUrl));
|
|
77
|
+
tokens.set("us", "");
|
|
78
|
+
baseUrls.set("us", baseUrl);
|
|
79
|
+
}
|
|
80
|
+
const vmServiceBase = opts.vmServiceBaseUrl || process.env.VM_MANAGER_API_URL || DEFAULT_VM_SERVICE_URL;
|
|
81
|
+
function getDefaultRegion() {
|
|
82
|
+
if (clients.has("us"))
|
|
83
|
+
return "us";
|
|
84
|
+
if (clients.has("ca"))
|
|
85
|
+
return "ca";
|
|
86
|
+
return "us";
|
|
87
|
+
}
|
|
52
88
|
const deps = {
|
|
53
89
|
server,
|
|
54
|
-
client: () =>
|
|
55
|
-
|
|
90
|
+
client: (region) => {
|
|
91
|
+
const r = region ?? getDefaultRegion();
|
|
92
|
+
const c = clients.get(r);
|
|
93
|
+
if (!c) {
|
|
94
|
+
throw new Error(`No client configured for ${r.toUpperCase()} region.`);
|
|
95
|
+
}
|
|
96
|
+
return c;
|
|
97
|
+
},
|
|
98
|
+
getApiBase: (region) => {
|
|
99
|
+
const r = region ?? getDefaultRegion();
|
|
100
|
+
return baseUrls.get(r) ?? regionToApiBase(r);
|
|
101
|
+
},
|
|
102
|
+
getVmServiceBase: () => vmServiceBase,
|
|
103
|
+
getAuthToken: (region) => tokens.get(region ?? getDefaultRegion()) ?? "",
|
|
104
|
+
availableRegions: () => [...clients.keys()],
|
|
56
105
|
};
|
|
57
106
|
registerAllTools(deps);
|
|
58
107
|
await server.connect(transport);
|
package/dist/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-rpa.d.ts","sourceRoot":"","sources":["../../src/prompts/build-rpa.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"build-rpa.d.ts","sourceRoot":"","sources":["../../src/prompts/build-rpa.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,QAqV5C"}
|
|
@@ -173,7 +173,10 @@ Before writing any automation:
|
|
|
173
173
|
- \`vm_screenshot\` immediately after
|
|
174
174
|
- If result is wrong, go back to (b)
|
|
175
175
|
|
|
176
|
-
**e. SAVE — Call \`create_rpa_flow\` (only after c + d pass)**
|
|
176
|
+
**e. SAVE — Call \`create_rpa_flow\` (only after c + d pass) — then test it through Minicor individually**
|
|
177
|
+
- After saving, run \`execute_workflow_async\` with \`start_from_step\`/\`end_at_step\` to isolate this step
|
|
178
|
+
- Poll \`get_execution_status\`, then \`vm_screenshot\` to verify the Minicor-executed result
|
|
179
|
+
- Only proceed to the next step once this one passes through the real executor
|
|
177
180
|
- Pass the validated Python script, step name, description, flowId, and executionOrder
|
|
178
181
|
- The tool handles all JS wrapping automatically
|
|
179
182
|
- For browser/CDP automations: set \`dispatchPattern: "browser"\` — routes to \`/execute/browser\` (parallel-safe)
|
|
@@ -215,10 +218,11 @@ mrn = data.input.mrn # WRONG — data object doesn't exist in Python
|
|
|
215
218
|
- \`data.input\` interpolation only works through the JS wrapper
|
|
216
219
|
- Step-to-step data flow (\`data.step_N\`) only works in the real executor
|
|
217
220
|
|
|
218
|
-
**After saving ALL steps, you MUST test through Minicor:**
|
|
221
|
+
**After saving ALL steps, you MUST test end-to-end through Minicor:**
|
|
219
222
|
|
|
220
|
-
a. \`
|
|
221
|
-
|
|
223
|
+
a. \`execute_workflow_async\` with **real input data** and a **configurationId** — use async so you can monitor
|
|
224
|
+
a2. Poll \`get_execution_status\` every 5-10s and take \`vm_screenshot\` at intervals to observe progress
|
|
225
|
+
b. If a step fails → \`diagnose_execution\` + \`vm_screenshot\` to identify the issue
|
|
222
226
|
c. Use \`test_workflow_step\` to re-run individual failing steps through Minicor (NOT \`vm_execute_script\`)
|
|
223
227
|
d. Fix with \`update_flow\`, then re-test through \`execute_workflow\` again
|
|
224
228
|
e. Iterate until the **full workflow passes end-to-end** through \`execute_workflow\`
|
|
@@ -229,6 +233,21 @@ e. Iterate until the **full workflow passes end-to-end** through \`execute_workf
|
|
|
229
233
|
- Present completed workflow summary with execution results from Minicor
|
|
230
234
|
- Make adjustments, re-validate changed steps through \`execute_workflow\`
|
|
231
235
|
|
|
236
|
+
### 8. Offer Agent Setup
|
|
237
|
+
After a workflow passes end-to-end, offer to create an agent to manage it:
|
|
238
|
+
|
|
239
|
+
"Workflow is working. Want me to set up a monitoring agent? It can:
|
|
240
|
+
- **Watch for failures** and auto-recover (monitor mode)
|
|
241
|
+
- **Run on a schedule** (scheduled mode, e.g. daily at 9am)
|
|
242
|
+
- **Notify Slack** when runs complete or fail"
|
|
243
|
+
|
|
244
|
+
If the user agrees, call \`create_agent\` with:
|
|
245
|
+
- \`mode: "monitor"\` + \`watchWorkflowId\` for failure monitoring
|
|
246
|
+
- \`mode: "scheduled"\` + a cron expression for recurring runs
|
|
247
|
+
- \`task\`: describe the recovery/check behavior (e.g. "When this workflow fails, take a screenshot, check if the login expired, and re-run")
|
|
248
|
+
- \`vmUrl\`: the same VM URL used during the build
|
|
249
|
+
- Same \`workspaceId\`
|
|
250
|
+
|
|
232
251
|
## Data Extraction Strategy
|
|
233
252
|
|
|
234
253
|
When you need to READ data from the screen (not just click/type), follow this priority order. **Do NOT rely solely on screenshots for data reading.**
|
|
@@ -279,6 +298,20 @@ When you need to READ data from the screen (not just click/type), follow this pr
|
|
|
279
298
|
- **\`batch_test_rpa\`** — run the workflow with multiple test inputs.
|
|
280
299
|
- **Video Recordings** — Minicor records MP4 videos of each RPA step execution. Use \`get_full_execution\` to see recording references (\`recording.blobName\`). These can be viewed in the Minicor platform for visual debugging.
|
|
281
300
|
|
|
301
|
+
## State Reset (Idempotency)
|
|
302
|
+
|
|
303
|
+
The workflow MUST return the system to its original state so it can run repeatedly:
|
|
304
|
+
- Last step must reset — close dialogs, navigate back to the starting screen
|
|
305
|
+
- Don't include login/window-opening — those belong in a separate setup workflow
|
|
306
|
+
- After a successful run, immediately re-run to verify idempotency
|
|
307
|
+
|
|
308
|
+
## Context Persistence
|
|
309
|
+
|
|
310
|
+
Use \`create_issue\` / \`update_issue\` to persist learned context across builds:
|
|
311
|
+
- \`[Agent:<name>] Rules\` — app-specific behaviors (e.g., "Reports tab takes 15s to load")
|
|
312
|
+
- \`[Agent:<name>] Context\` — persistent facts (URLs, credential rotation dates)
|
|
313
|
+
- Read these at the start of future builds to avoid re-learning things
|
|
314
|
+
|
|
282
315
|
## Important Rules
|
|
283
316
|
- **VALIDATE BEFORE SAVING** — no exceptions unless user explicitly opts out
|
|
284
317
|
- **TEST THROUGH MINICOR** — \`vm_execute_script\` is for prototyping. Always run \`execute_workflow\` with real inputs before declaring done.
|
|
@@ -290,7 +323,8 @@ When you need to READ data from the screen (not just click/type), follow this pr
|
|
|
290
323
|
- **Start simple** — get basic automation working before adding sophistication
|
|
291
324
|
- **Add waits** — use \`time.sleep()\` or element-wait patterns between actions
|
|
292
325
|
- **Handle errors** — try/except with meaningful messages
|
|
293
|
-
- **Keep scripts focused** — one logical action per step
|
|
326
|
+
- **Keep scripts focused** — one logical action per step
|
|
327
|
+
- **Reset to original state** — every workflow must be idempotent (see State Reset section above)`,
|
|
294
328
|
},
|
|
295
329
|
},
|
|
296
330
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-rpa.js","sourceRoot":"","sources":["../../src/prompts/build-rpa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAY;IAC3C,MAAM,CAAC,MAAM,CACX,oBAAoB,EACpB,wSAAwS,EACxS;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACxD,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,iHAAiH,CAClH;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,CACP,uFAAuF,CACxF;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,sEAAsE,CACvE;KACJ,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;;EAGhB,IAAI;;;EAGJ,OAAO;;;MAGH,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,2BAA2B,UAAU,+BAA+B,CAAC,CAAC,CAAC,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAoH1I,OAAO
|
|
1
|
+
{"version":3,"file":"build-rpa.js","sourceRoot":"","sources":["../../src/prompts/build-rpa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAY;IAC3C,MAAM,CAAC,MAAM,CACX,oBAAoB,EACpB,wSAAwS,EACxS;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACxD,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,CACP,iHAAiH,CAClH;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,CACP,uFAAuF,CACxF;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,sEAAsE,CACvE;KACJ,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;;EAGhB,IAAI;;;EAGJ,OAAO;;;MAGH,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,2BAA2B,UAAU,+BAA+B,CAAC,CAAC,CAAC,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAoH1I,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kGAqL+E;iBACvF;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-execution.d.ts","sourceRoot":"","sources":["../../src/prompts/debug-execution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"debug-execution.d.ts","sourceRoot":"","sources":["../../src/prompts/debug-execution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,QA2EpD"}
|
|
@@ -4,14 +4,16 @@ export function register({ server, client }) {
|
|
|
4
4
|
server.prompt("debug-workflow-execution", "Analyze a failed workflow execution and suggest fixes", {
|
|
5
5
|
workflowId: z.string().describe("Workflow ID to debug"),
|
|
6
6
|
executionId: z.string().describe("Failed execution ID"),
|
|
7
|
-
|
|
7
|
+
region: z.string().optional().describe("Region (us or ca)"),
|
|
8
|
+
}, async ({ workflowId, executionId, region }) => {
|
|
8
9
|
const wId = parseInt(workflowId);
|
|
9
10
|
const eId = parseInt(executionId);
|
|
11
|
+
const r = region;
|
|
10
12
|
let executionData;
|
|
11
13
|
let flowsData;
|
|
12
14
|
try {
|
|
13
|
-
executionData = await client().getExecution(wId, eId);
|
|
14
|
-
flowsData = await client().getWorkflowFlows(wId);
|
|
15
|
+
executionData = await client(r).getExecution(wId, eId);
|
|
16
|
+
flowsData = await client(r).getWorkflowFlows(wId);
|
|
15
17
|
}
|
|
16
18
|
catch (e) {
|
|
17
19
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-execution.js","sourceRoot":"","sources":["../../src/prompts/debug-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"debug-execution.js","sourceRoot":"","sources":["../../src/prompts/debug-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAY;IACnD,MAAM,CAAC,MAAM,CACX,0BAA0B,EAC1B,uDAAuD,EACvD;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KAC5D,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,MAA4B,CAAC;QACvC,IAAI,aAAkB,CAAC;QACvB,IAAI,SAAc,CAAC;QAEnB,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvD,SAAS,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAe;wBACrB,OAAO,EAAE;4BACP,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,mCAAmC,CAAC,CAAC,OAAO,EAAE;yBACrD;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE;;;EAGlB,IAAI,CAAC,SAAS,CAAC;;;EAGf,IAAI,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;wEAuBmD;qBAC3D;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|