@minicor/mcp-server 2.0.2 → 2.0.3

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.
Files changed (43) hide show
  1. package/dist/config.d.ts +3 -13
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +4 -30
  4. package/dist/config.js.map +1 -1
  5. package/dist/helpers.d.ts +0 -3
  6. package/dist/helpers.d.ts.map +1 -1
  7. package/dist/helpers.js +0 -31
  8. package/dist/helpers.js.map +1 -1
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -36
  12. package/dist/index.js.map +1 -1
  13. package/dist/prompts/build-nerve-rpa.d.ts +3 -0
  14. package/dist/prompts/build-nerve-rpa.d.ts.map +1 -0
  15. package/dist/prompts/build-nerve-rpa.js +148 -0
  16. package/dist/prompts/build-nerve-rpa.js.map +1 -0
  17. package/dist/prompts/build-rpa.d.ts.map +1 -1
  18. package/dist/prompts/build-rpa.js +123 -20
  19. package/dist/prompts/build-rpa.js.map +1 -1
  20. package/dist/prompts/debug-execution.d.ts.map +1 -1
  21. package/dist/prompts/debug-execution.js +22 -1
  22. package/dist/prompts/debug-execution.js.map +1 -1
  23. package/dist/prompts/workflow-guide.d.ts.map +1 -1
  24. package/dist/prompts/workflow-guide.js +3 -14
  25. package/dist/prompts/workflow-guide.js.map +1 -1
  26. package/dist/setup.js +19 -83
  27. package/dist/setup.js.map +1 -1
  28. package/dist/state.d.ts +0 -9
  29. package/dist/state.d.ts.map +1 -1
  30. package/dist/state.js +0 -9
  31. package/dist/state.js.map +1 -1
  32. package/dist/tools/core.d.ts.map +1 -1
  33. package/dist/tools/core.js +0 -7
  34. package/dist/tools/core.js.map +1 -1
  35. package/dist/tools/vm-rpa.d.ts.map +1 -1
  36. package/dist/tools/vm-rpa.js +60 -3
  37. package/dist/tools/vm-rpa.js.map +1 -1
  38. package/dist/tools/vm.d.ts.map +1 -1
  39. package/dist/tools/vm.js +16 -5
  40. package/dist/tools/vm.js.map +1 -1
  41. package/dist/types.d.ts +0 -3
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +1 -1
package/dist/config.d.ts CHANGED
@@ -1,20 +1,10 @@
1
1
  /**
2
- * Optional service configuration for Minicor MCP.
2
+ * Configuration helpers for Minicor MCP.
3
3
  *
4
- * Priority: env vars > config file (~/.minicor/config.json, falls back to ~/.laminar/config.json)
4
+ * Previously housed Elasticsearch + CRON service config.
5
+ * Kept for future extensibility; config file paths still used by setup.
5
6
  */
6
- export interface ElasticsearchConfig {
7
- endpoint: string;
8
- apiKey: string;
9
- indexName?: string;
10
- }
11
- export interface CronConfig {
12
- apiBase?: string;
13
- apiKey: string;
14
- }
15
7
  export interface ServiceConfig {
16
- elasticsearch?: ElasticsearchConfig;
17
- cron?: CronConfig;
18
8
  }
19
9
  export declare function loadServiceConfig(): ServiceConfig;
20
10
  export declare function saveServiceConfig(update: ServiceConfig): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,wBAAgB,iBAAiB,IAAI,aAAa,CAkCjD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,QAiBtD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,aAAa;CAAG;AAEjC,wBAAgB,iBAAiB,IAAI,aAAa,CAEjD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,QAiBtD"}
package/dist/config.js CHANGED
@@ -1,40 +1,14 @@
1
1
  /**
2
- * Optional service configuration for Minicor MCP.
2
+ * Configuration helpers for Minicor MCP.
3
3
  *
4
- * Priority: env vars > config file (~/.minicor/config.json, falls back to ~/.laminar/config.json)
4
+ * Previously housed Elasticsearch + CRON service config.
5
+ * Kept for future extensibility; config file paths still used by setup.
5
6
  */
6
7
  import fs from "node:fs";
7
8
  import path from "node:path";
8
9
  import { getConfigPath, getWriteConfigPath } from "./paths.js";
9
10
  export function loadServiceConfig() {
10
- const config = {};
11
- if (process.env.ELASTICSEARCH_ENDPOINT && process.env.ELASTICSEARCH_API_KEY) {
12
- config.elasticsearch = {
13
- endpoint: process.env.ELASTICSEARCH_ENDPOINT,
14
- apiKey: process.env.ELASTICSEARCH_API_KEY,
15
- indexName: process.env.ELASTICSEARCH_INDEX_NAME,
16
- };
17
- }
18
- if (process.env.CRON_API_KEY) {
19
- config.cron = {
20
- apiBase: process.env.CRON_API_BASE,
21
- apiKey: process.env.CRON_API_KEY,
22
- };
23
- }
24
- try {
25
- const cfgPath = getConfigPath();
26
- if (fs.existsSync(cfgPath)) {
27
- const file = JSON.parse(fs.readFileSync(cfgPath, "utf-8"));
28
- if (!config.elasticsearch && file.elasticsearch) {
29
- config.elasticsearch = file.elasticsearch;
30
- }
31
- if (!config.cron && file.cron) {
32
- config.cron = file.cron;
33
- }
34
- }
35
- }
36
- catch { }
37
- return config;
11
+ return {};
38
12
  }
39
13
  export function saveServiceConfig(update) {
40
14
  const writePath = getWriteConfigPath();
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkB/D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QAC5E,MAAM,CAAC,aAAa,GAAG;YACrB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;YAC5C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YACzC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,GAAG;YACZ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;YAClC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;SACjC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAkB,IAAI,CAAC,KAAK,CACpC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAClC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAChD,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,IAAI,QAAQ,GAAkB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAClE,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAI/D,MAAM,UAAU,iBAAiB;IAC/B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,IAAI,QAAQ,GAAkB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAClE,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC"}
package/dist/helpers.d.ts CHANGED
@@ -20,9 +20,6 @@ export declare function safe<T>(fn: () => Promise<T>): Promise<{
20
20
  text: string;
21
21
  }[];
22
22
  }>;
23
- export declare const NOT_CONFIGURED_ES = "Elasticsearch is not configured. Log search requires ES credentials.\n\n**Option 1 \u2014 Environment variables:**\n ELASTICSEARCH_ENDPOINT=https://your-es-cluster\n ELASTICSEARCH_API_KEY=your-api-key\n ELASTICSEARCH_INDEX_NAME=search-workflow-executions (optional)\n\n**Option 2 \u2014 Config file** (~/.laminar/config.json):\n {\n \"elasticsearch\": {\n \"endpoint\": \"https://your-es-cluster\",\n \"apiKey\": \"your-api-key\"\n }\n }\n\n**Option 3 \u2014 Run setup:** laminar-mcp-setup \u2192 Advanced Settings";
24
- export declare const NOT_CONFIGURED_CRON = "CRON service is not configured. Scheduling requires CRON credentials.\n\n**Option 1 \u2014 Environment variables:**\n CRON_API_KEY=your-cron-api-key\n CRON_API_BASE=https://cron.laminar.run (optional)\n\n**Option 2 \u2014 Config file** (~/.laminar/config.json):\n {\n \"cron\": {\n \"apiKey\": \"your-cron-api-key\"\n }\n }\n\n**Option 3 \u2014 Run setup:** laminar-mcp-setup \u2192 Advanced Settings";
25
23
  export declare const NOT_CONNECTED_VM = "No VM connected. Ask the user for their Cloudflare Tunnel URL for the Laminar Desktop Service, then call vm_connect.";
26
- export declare const NOT_CONNECTED_BROWSER = "No browser RPA service connected. Call browser_connect with the service base URL and bearer token first.";
27
24
  export declare function buildRpaProgram(pythonScript: string, pattern: "cloudflare_tunnel" | "channel", flowId: string, stepName: string, stepDescription: string): string;
28
25
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE1C;AAED,wBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO;;;;;EAE/B;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM;;;;;EAE/B;AAED,wBAAsB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;;;;;GAMjD;AAED,eAAO,MAAM,iBAAiB,4hBAekC,CAAC;AAEjE,eAAO,MAAM,mBAAmB,oaAagC,CAAC;AAEjE,eAAO,MAAM,gBAAgB,yHAAyH,CAAC;AAEvJ,eAAO,MAAM,qBAAqB,6GAA6G,CAAC;AAEhJ,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,mBAAmB,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,MAAM,CAqCR"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAE1C;AAED,wBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO;;;;;EAE/B;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM;;;;;EAE/B;AAED,wBAAsB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;;;;;GAMjD;AAED,eAAO,MAAM,gBAAgB,yHAAyH,CAAC;AAEvJ,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,mBAAmB,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,GACtB,MAAM,CAqCR"}
package/dist/helpers.js CHANGED
@@ -18,38 +18,7 @@ export async function safe(fn) {
18
18
  return text(`Error: ${e.message}`);
19
19
  }
20
20
  }
21
- export const NOT_CONFIGURED_ES = `Elasticsearch is not configured. Log search requires ES credentials.
22
-
23
- **Option 1 — Environment variables:**
24
- ELASTICSEARCH_ENDPOINT=https://your-es-cluster
25
- ELASTICSEARCH_API_KEY=your-api-key
26
- ELASTICSEARCH_INDEX_NAME=search-workflow-executions (optional)
27
-
28
- **Option 2 — Config file** (~/.laminar/config.json):
29
- {
30
- "elasticsearch": {
31
- "endpoint": "https://your-es-cluster",
32
- "apiKey": "your-api-key"
33
- }
34
- }
35
-
36
- **Option 3 — Run setup:** laminar-mcp-setup → Advanced Settings`;
37
- export const NOT_CONFIGURED_CRON = `CRON service is not configured. Scheduling requires CRON credentials.
38
-
39
- **Option 1 — Environment variables:**
40
- CRON_API_KEY=your-cron-api-key
41
- CRON_API_BASE=https://cron.laminar.run (optional)
42
-
43
- **Option 2 — Config file** (~/.laminar/config.json):
44
- {
45
- "cron": {
46
- "apiKey": "your-cron-api-key"
47
- }
48
- }
49
-
50
- **Option 3 — Run setup:** laminar-mcp-setup → Advanced Settings`;
51
21
  export const NOT_CONNECTED_VM = `No VM connected. Ask the user for their Cloudflare Tunnel URL for the Laminar Desktop Service, then call vm_connect.`;
52
- export const NOT_CONNECTED_BROWSER = `No browser RPA service connected. Call browser_connect with the service base URL and bearer token first.`;
53
22
  export function buildRpaProgram(pythonScript, pattern, flowId, stepName, stepDescription) {
54
23
  const escaped = pythonScript.replace(/`/g, "\\`").replace(/\$/g, "\\$");
55
24
  if (pattern === "channel") {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,IAAI,CAAC,IAAa;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,IAAa;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAI,EAAoB;IAChD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;gEAe+B,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;gEAa6B,CAAC;AAEjE,MAAM,CAAC,MAAM,gBAAgB,GAAG,sHAAsH,CAAC;AAEvJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,0GAA0G,CAAC;AAEhJ,MAAM,UAAU,eAAe,CAC7B,YAAoB,EACpB,OAAwC,EACxC,MAAc,EACd,QAAgB,EAChB,eAAuB;IAEvB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;;EAET,OAAO;;;;;;;;EAQP,CAAC;IACD,CAAC;IACD,OAAO;;EAEP,OAAO;;;;;;;;;;;;qBAYY,MAAM;;;2BAGA,MAAM,eAAe,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,sBAAsB,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;EAIrI,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,IAAI,CAAC,IAAa;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,IAAa;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAI,EAAoB;IAChD,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,sHAAsH,CAAC;AAEvJ,MAAM,UAAU,eAAe,CAC7B,YAAoB,EACpB,OAAwC,EACxC,MAAc,EACd,QAAgB,EAChB,eAAuB;IAEvB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;;EAET,OAAO;;;;;;;;EAQP,CAAC;IACD,CAAC;IACD,OAAO;;EAEP,OAAO;;;;;;;;;;;;qBAYY,MAAM;;;2BAGA,MAAM,eAAe,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,sBAAsB,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;;;EAIrI,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Minicor MCP Server (formerly Laminar)
3
+ * Minicor MCP Server
4
4
  *
5
5
  * Brings your Minicor workspace into Cursor / Claude Code.
6
- * Core tools always available; Elasticsearch + CRON unlock with advanced setup.
6
+ * Build, deploy, and debug VM-based automations from your IDE.
7
7
  */
8
8
  export declare function getApiBase(): string;
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAkEH,wBAAgB,UAAU,IAAI,MAAM,CAKnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AA0DH,wBAAgB,UAAU,IAAI,MAAM,CAKnC"}
package/dist/index.js CHANGED
@@ -1,33 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Minicor MCP Server (formerly Laminar)
3
+ * Minicor MCP Server
4
4
  *
5
5
  * Brings your Minicor workspace into Cursor / Claude Code.
6
- * Core tools always available; Elasticsearch + CRON unlock with advanced setup.
6
+ * Build, deploy, and debug VM-based automations from your IDE.
7
7
  */
8
8
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
9
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
10
10
  import fs from "node:fs";
11
11
  import path from "node:path";
12
- import { loadServiceConfig } from "./config.js";
13
12
  import { LaminarClient } from "./laminar-client.js";
14
13
  import { getTokenPath, getWriteTokenPath, regionToApiBase, apiBaseToRegion, } from "./paths.js";
15
- import { CronService, ElasticsearchService } from "./services.js";
16
14
  import { register as registerCore } from "./tools/core.js";
17
15
  import { register as registerWorkflowOps } from "./tools/workflow-ops.js";
18
16
  import { register as registerConfigStores } from "./tools/config-stores.js";
19
- import { register as registerIssues } from "./tools/issues.js";
20
- import { register as registerStats } from "./tools/stats.js";
21
- import { register as registerElasticsearch } from "./tools/elasticsearch.js";
22
- import { register as registerCron } from "./tools/cron.js";
23
17
  import { register as registerSyncTools } from "./tools/sync-tools.js";
24
18
  import { register as registerVm } from "./tools/vm.js";
25
19
  import { register as registerVmRpa } from "./tools/vm-rpa.js";
26
- import { register as registerBrowser } from "./tools/browser.js";
27
20
  import { register as registerWorkflowGuide } from "./prompts/workflow-guide.js";
28
21
  import { register as registerDebugExecution } from "./prompts/debug-execution.js";
29
22
  import { register as registerBuildRpa } from "./prompts/build-rpa.js";
30
- import { register as registerBuildBrowserRpa } from "./prompts/build-browser-rpa.js";
31
23
  // ─── Token management ────────────────────────────────────────
32
24
  const REFRESH_BUFFER_MS = 5 * 60 * 1000;
33
25
  function readStoredTokens() {
@@ -111,11 +103,9 @@ async function resolveAuth() {
111
103
  }
112
104
  // ─── Server state ────────────────────────────────────────────
113
105
  let client;
114
- let esService = null;
115
- let cronService = null;
116
106
  const server = new McpServer({
117
107
  name: "minicor",
118
- version: "2.0.0",
108
+ version: "3.0.0",
119
109
  });
120
110
  function scheduleTokenRefresh() {
121
111
  const tokens = readStoredTokens();
@@ -155,24 +145,16 @@ function registerAll() {
155
145
  server,
156
146
  client: () => client,
157
147
  getApiBase,
158
- esService: () => esService,
159
- cronService: () => cronService,
160
148
  };
161
149
  registerCore(deps);
162
150
  registerWorkflowOps(deps);
163
151
  registerConfigStores(deps);
164
- registerIssues(deps);
165
- registerStats(deps);
166
- registerElasticsearch(deps);
167
- registerCron(deps);
168
152
  registerSyncTools(deps);
169
153
  registerVm(deps);
170
154
  registerVmRpa(deps);
171
- registerBrowser(deps);
172
155
  registerWorkflowGuide(deps);
173
156
  registerDebugExecution(deps);
174
157
  registerBuildRpa(deps);
175
- registerBuildBrowserRpa(deps);
176
158
  }
177
159
  // ─── Main ────────────────────────────────────────────────────
178
160
  async function main() {
@@ -184,21 +166,6 @@ async function main() {
184
166
  else {
185
167
  client = new LaminarClient(authResult.auth, authResult.baseUrl);
186
168
  scheduleTokenRefresh();
187
- const svcConfig = loadServiceConfig();
188
- if (svcConfig.elasticsearch) {
189
- esService = new ElasticsearchService(svcConfig.elasticsearch);
190
- console.error("Elasticsearch: configured");
191
- }
192
- else {
193
- console.error("Elasticsearch: not configured (log search disabled)");
194
- }
195
- if (svcConfig.cron) {
196
- cronService = new CronService(svcConfig.cron);
197
- console.error("CRON service: configured");
198
- }
199
- else {
200
- console.error("CRON service: not configured (scheduling disabled)");
201
- }
202
169
  registerAll();
203
170
  }
204
171
  const transport = new StdioServerTransport();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDeps } from "../types.js";
2
+ export declare function register({ server }: ToolDeps): void;
3
+ //# sourceMappingURL=build-nerve-rpa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-nerve-rpa.d.ts","sourceRoot":"","sources":["../../src/prompts/build-nerve-rpa.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,QAsJ5C"}
@@ -0,0 +1,148 @@
1
+ import { z } from "zod";
2
+ export function register({ server }) {
3
+ server.prompt("build-nerve-rpa-workflow", "Build an RPA workflow using NERVE's atomic operations: annotated screenshots, element clicking/typing, CDP browser control, OCR, and self-healing. Optimized for NERVE (not legacy LDS).", {
4
+ workspaceId: z.string().describe("Laminar workspace ID"),
5
+ task: z.string().describe("What to automate"),
6
+ appName: z.string().describe("Target application name"),
7
+ workflowId: z.string().optional().describe("Existing workflow ID to add steps to"),
8
+ }, async ({ workspaceId, task, appName, workflowId }) => ({
9
+ messages: [
10
+ {
11
+ role: "user",
12
+ content: {
13
+ type: "text",
14
+ text: `You are building an RPA workflow using NERVE on the Laminar platform. NERVE gives you direct atomic control over the Windows desktop — you do NOT need to write Python scripts for simple interactions.
15
+
16
+ ## Task
17
+ ${task}
18
+
19
+ ## Target Application
20
+ ${appName}
21
+
22
+ ## Workspace
23
+ ID: ${workspaceId}${workflowId ? `\nExisting workflow ID: ${workflowId}` : "\nCreate a new workflow for this automation."}
24
+
25
+ ## How NERVE Works
26
+
27
+ NERVE runs on the VM and exposes the full OS via HTTP APIs. When you call \`vm_connect\`, check the \`capabilities\` array in the response to see what's available.
28
+
29
+ Key capabilities:
30
+ - \`annotated_screenshots\` — X-Ray Vision: screenshot with numbered element overlays
31
+ - \`ui_tree_cache\` — Persistent accessibility tree
32
+ - \`atomic_input\` — Click/type/invoke by element ID
33
+ - \`script_execution\` — Run Python scripts
34
+ - \`cdp\` — Chrome DevTools Protocol for browser control
35
+ - \`ocr\` / \`template_matching\` — For Citrix/pixel-based apps
36
+ - \`self_healing\` — Pause on error + intervention
37
+
38
+ ## Step 1: Connect and Survey
39
+
40
+ 1. \`vm_connect\` — connect to the VM
41
+ 2. Check \`capabilities\` in the response
42
+ 3. \`vm_annotated_screenshot\` — see the desktop with numbered elements
43
+ 4. \`vm_system_info\` — get OS, RAM, CPU info
44
+ 5. \`vm_processes\` — see what's running
45
+
46
+ ## Step 2: Understand the UI
47
+
48
+ Use the annotated screenshot to understand the screen. Each interactive element has a number:
49
+ \`\`\`
50
+ [1] Username field (Edit)
51
+ [2] Password field (Edit)
52
+ [3] OK button (Button)
53
+ [4] Cancel button (Button)
54
+ \`\`\`
55
+
56
+ For deeper inspection:
57
+ - \`vm_inspect_ui\` mode \`element_tree\` — full accessibility tree
58
+ - \`vm_inspect_ui\` mode \`element_at_point\` — inspect specific coordinates
59
+
60
+ ## Step 3: Interact with Atomic Operations
61
+
62
+ **DO NOT write Python scripts for simple click/type operations.** Use atomic tools:
63
+
64
+ - \`vm_click_element\` {element_id: 3} — click element #3 from annotated screenshot
65
+ - \`vm_type_into_element\` {element_id: 1, text: "admin"} — type into element #1
66
+ - \`vm_set_value\` {element_id: 2, value: "password"} — set value directly
67
+ - \`vm_invoke_element\` {element_id: 3} — invoke button via accessibility pattern
68
+ - \`vm_shell\` {command: "Start-Process notepad"} — run commands
69
+
70
+ After each action, take another \`vm_annotated_screenshot\` to verify it worked.
71
+
72
+ ## Step 4: For Web Apps — Use CDP
73
+
74
+ If the target is a browser or Electron app:
75
+
76
+ 1. \`cdp_connect\` — connect to Chrome/Edge DevTools
77
+ 2. \`cdp_dom\` — get the full DOM tree
78
+ 3. \`cdp_query\` {selector: "#username"} — find elements by CSS
79
+ 4. \`cdp_click\` {selector: "#login-btn"} — click via DOM
80
+ 5. \`cdp_type\` {selector: "#email", text: "user@example.com"} — type via DOM
81
+ 6. \`cdp_js\` — execute arbitrary JavaScript
82
+ 7. \`cdp_network\` — see API calls the app makes
83
+
84
+ CDP is MORE RELIABLE than screen-based automation for web apps.
85
+
86
+ ## Step 5: For Citrix / Legacy Apps — Use OCR + Template Matching
87
+
88
+ When there's no accessibility tree (Citrix, RDP, custom-rendered apps):
89
+
90
+ 1. \`vm_ocr\` {x, y, width, height} — read text from a screen region
91
+ 2. \`vm_template_match\` {template_b64: "..."} — find a visual element
92
+ 3. \`vm_wait_for_text\` {text: "Login", region: {...}} — wait for text to appear
93
+ 4. \`vm_wait_for_change\` {region: {...}} — wait for visual change (replaces sleep)
94
+ 5. \`vm_region_ocr\` {regions: [...]} — batch OCR multiple fields
95
+ 6. Click by coordinates from template match results
96
+
97
+ ## Step 6: Build Production Scripts
98
+
99
+ Once you understand the UI and have tested atomic operations, consolidate into Python scripts for production:
100
+
101
+ 1. Write a Python script that performs the full sequence
102
+ 2. Test with \`debug_rpa_step\` — returns before/after screenshots + timeline
103
+ 3. Save with \`create_rpa_flow\` — wraps Python in Laminar workflow format
104
+
105
+ ## Step 7: Self-Healing Pattern
106
+
107
+ For robust automations, enable self-healing:
108
+
109
+ 1. Execute with \`on_error: "pause"\` — script pauses at failure instead of crashing
110
+ 2. \`vm_failure_context\` — get screenshot, UI tree, error details at failure point
111
+ 3. \`vm_annotated_screenshot\` — see current screen state
112
+ 4. Fix with atomic operations (\`vm_click_element\`, etc.)
113
+ 5. Resume execution
114
+
115
+ ## Step 8: End-to-End Validation
116
+
117
+ 1. \`execute_workflow\` to run the full sequence
118
+ 2. \`vm_annotated_screenshot\` to verify final state
119
+ 3. \`vm_execution_timeline\` to review frame-by-frame what happened
120
+ 4. \`diagnose_execution\` if anything fails
121
+
122
+ ## Data Extraction Priority
123
+
124
+ When you need to READ data from the screen:
125
+
126
+ 1. **Accessibility tree** — \`vm_inspect_ui\` with \`element_tree\` (most reliable)
127
+ 2. **Focused element** — Tab through fields, read via \`vm_inspect_ui\` \`focused_element\`
128
+ 3. **Clipboard** — Click field, Ctrl+A, Ctrl+C, then \`vm_read_clipboard\`
129
+ 4. **OCR** — \`vm_ocr\` on a specific region
130
+ 5. **CDP extraction** — \`cdp_js\` to read DOM values (for web apps)
131
+ 6. **Region screenshot** — \`vm_screenshot\` of a specific area (last resort)
132
+
133
+ ## Key Rules
134
+
135
+ - **Annotated screenshots FIRST** — always start by seeing the screen with element IDs
136
+ - **Atomic ops for exploration** — use click/type tools to test, scripts for production
137
+ - **Verify after every action** — take another annotated screenshot
138
+ - **Never hardcode coordinates** — use element IDs or accessibility patterns
139
+ - **Use wait_for_text/wait_for_change** — never use time.sleep() for synchronization
140
+ - **Use \`create_rpa_flow\`** to save steps — never construct JS wrappers manually
141
+ - **Use \`{{config.variables}}\`** for secrets — never hardcode credentials
142
+ `,
143
+ },
144
+ },
145
+ ],
146
+ }));
147
+ }
148
+ //# sourceMappingURL=build-nerve-rpa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-nerve-rpa.js","sourceRoot":"","sources":["../../src/prompts/build-nerve-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,0BAA0B,EAC1B,0LAA0L,EAC1L;QACE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACxD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KACnF,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,EAAE,CAAC,CAAC,CAAC,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHxH;iBACU;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -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,QAgL5C"}
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,QAuR5C"}