openclaw-cascade-plugin 1.0.1 → 1.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.
package/README.md CHANGED
@@ -12,7 +12,22 @@ openclaw plugins install openclaw-cascade-plugin
12
12
 
13
13
  ## Configuration
14
14
 
15
- Add to your OpenClaw config:
15
+ The installer auto-creates the plugin entry in `~/.openclaw/openclaw.json`. If you want to edit manually, the entry key must match the manifest id (`openclaw-cascade-plugin`).
16
+
17
+ If `mcp_server` is not found, set `cascadePythonModulePath` to your Cascade repo's `python/` directory.
18
+
19
+ If you previously installed `cascade` (v1.0.0), uninstall it and reinstall v1.0.3:
20
+ ```bash
21
+ openclaw plugins uninstall cascade
22
+ openclaw plugins install openclaw-cascade-plugin@1.0.3
23
+ ```
24
+
25
+ For one-command install (auto-config):
26
+ ```bash
27
+ export CASCADE_REPO_PATH=/path/to/cascade
28
+ openclaw plugins install openclaw-cascade-plugin@1.0.3
29
+ ```
30
+
16
31
 
17
32
  ```json5
18
33
  {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAK9C;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAS1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAoChE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CA2BnF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB,CAWpE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAK9C;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAS1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAoChE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CA2BnF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB,CAYpE"}
package/dist/config.js CHANGED
@@ -106,10 +106,11 @@ function loadConfig(input) {
106
106
  * Load configuration from OpenClaw API
107
107
  */
108
108
  function loadConfigFromOpenClaw(api) {
109
- const pluginConfig = api.config?.plugins?.entries?.cascade?.config;
109
+ const entries = api.config?.plugins?.entries || {};
110
+ const pluginConfig = entries['openclaw-cascade-plugin']?.config || entries.cascade?.config;
110
111
  if (!pluginConfig) {
111
112
  throw new Error('Cascade plugin configuration not found. ' +
112
- 'Please add cascade configuration to your OpenClaw config.');
113
+ 'Please add openclaw-cascade-plugin configuration to your OpenClaw config.');
113
114
  }
114
115
  return loadConfig(pluginConfig);
115
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,12 @@ interface OpenClawApi {
15
15
  cascade?: {
16
16
  config?: any;
17
17
  };
18
+ 'openclaw-cascade-plugin'?: {
19
+ config?: any;
20
+ };
21
+ [key: string]: {
22
+ config?: any;
23
+ } | undefined;
18
24
  };
19
25
  };
20
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAYtC,UAAU,WAAW;IACnB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,OAAO,CAAC,EAAE;oBACR,MAAM,CAAC,EAAE,GAAG,CAAC;iBACd,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;IACF,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjE,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAA8B,QAAQ,CAAC,GAAG,EAAE,WAAW,iBAwHtD;AAGD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAatC,UAAU,WAAW;IACnB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,OAAO,CAAC,EAAE;oBAAE,MAAM,CAAC,EAAE,GAAG,CAAA;iBAAE,CAAC;gBAC3B,yBAAyB,CAAC,EAAE;oBAAE,MAAM,CAAC,EAAE,GAAG,CAAA;iBAAE,CAAC;gBAC7C,CAAC,GAAG,EAAE,MAAM,GAAG;oBAAE,MAAM,CAAC,EAAE,GAAG,CAAA;iBAAE,GAAG,SAAS,CAAC;aAC7C,CAAC;SACH,CAAC;KACH,CAAC;IACF,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjE,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAA8B,QAAQ,CAAC,GAAG,EAAE,WAAW,iBAuItD;AAGD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -31,6 +31,7 @@ Object.defineProperty(exports, "CascadeA2AClient", { enumerable: true, get: func
31
31
  const config_1 = require("./config");
32
32
  Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_1.loadConfig; } });
33
33
  const types_1 = require("./types");
34
+ const path_1 = require("path");
34
35
  const tools_1 = require("./tools");
35
36
  const tool_registry_1 = require("./tools/tool-registry");
36
37
  async function register(api) {
@@ -38,7 +39,10 @@ async function register(api) {
38
39
  let a2aClient = null;
39
40
  try {
40
41
  // Load and validate configuration
41
- const config = (0, config_1.loadConfig)(api.config.plugins.entries.cascade?.config || {});
42
+ const entries = api.config.plugins.entries || {};
43
+ const config = (0, config_1.loadConfig)(entries['openclaw-cascade-plugin']?.config ||
44
+ entries.cascade?.config ||
45
+ {});
42
46
  console.log('Initializing Cascade plugin...');
43
47
  console.log(`gRPC Endpoint: ${config.cascadeGrpcEndpoint}`);
44
48
  // Initialize Python Manager
@@ -46,14 +50,22 @@ async function register(api) {
46
50
  const pythonPath = await pythonManager.findOrInstallPython();
47
51
  console.log(`Python: ${pythonPath}`);
48
52
  // Initialize MCP Client
49
- mcpClient = new cascade_client_1.CascadeMcpClient(pythonPath, {
53
+ const pythonEnv = {
50
54
  CASCADE_GRPC_ENDPOINT: config.cascadeGrpcEndpoint,
51
55
  CASCADE_APP_ID: config.firestoreProjectId || 'openclaw',
52
56
  CASCADE_USER_ID: 'openclaw-user',
53
57
  ...(config.firestoreCredentialsPath && {
54
58
  GOOGLE_APPLICATION_CREDENTIALS: config.firestoreCredentialsPath
55
59
  })
56
- });
60
+ };
61
+ const modulePath = config.cascadePythonModulePath || process.env.CASCADE_PYTHON_MODULE_PATH;
62
+ if (modulePath) {
63
+ const existingPath = process.env.PYTHONPATH || '';
64
+ pythonEnv.PYTHONPATH = existingPath
65
+ ? `${modulePath}${path_1.delimiter}${existingPath}`
66
+ : modulePath;
67
+ }
68
+ mcpClient = new cascade_client_1.CascadeMcpClient(pythonPath, pythonEnv);
57
69
  await mcpClient.start();
58
70
  console.log('Cascade MCP client connected');
59
71
  // Initialize A2A Client if enabled
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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"}
@@ -4,6 +4,7 @@
4
4
  export interface CascadePluginConfig {
5
5
  cascadeGrpcEndpoint: string;
6
6
  cascadePythonPath?: string;
7
+ cascadePythonModulePath?: string;
7
8
  firestoreProjectId?: string;
8
9
  firestoreCredentialsPath?: string;
9
10
  headless?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAkGH,cAAc;AACd,MAAa,YAAa,SAAQ,KAAK;IACrC,YACE,OAAe,EACR,IAAY,EACZ,UAAmB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AATD,oCASC;AAED,MAAa,gBAAiB,SAAQ,YAAY;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED,MAAa,oBAAqB,SAAQ,YAAY;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC;AAED,MAAa,kBAAmB,SAAQ,YAAY;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAmGH,cAAc;AACd,MAAa,YAAa,SAAQ,KAAK;IACrC,YACE,OAAe,EACR,IAAY,EACZ,UAAmB;QAE1B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AATD,oCASC;AAED,MAAa,gBAAiB,SAAQ,YAAY;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED,MAAa,oBAAqB,SAAQ,YAAY;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC;AAED,MAAa,kBAAmB,SAAQ,YAAY;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC"}
@@ -2,7 +2,7 @@
2
2
  "id": "openclaw-cascade-plugin",
3
3
  "name": "Cascade Desktop Automation",
4
4
  "description": "Control Windows desktop apps and web browsers through OpenClaw. Provides desktop automation, web automation with Playwright, and skill learning capabilities.",
5
- "version": "1.0.1",
5
+ "version": "1.0.3",
6
6
  "configSchema": {
7
7
  "type": "object",
8
8
  "additionalProperties": false,
@@ -17,6 +17,10 @@
17
17
  "type": "string",
18
18
  "description": "Path to Python executable (optional, auto-detected if not set)"
19
19
  },
20
+ "cascadePythonModulePath": {
21
+ "type": "string",
22
+ "description": "Path to Cascade Python modules (e.g., /path/to/cascade/python)"
23
+ },
20
24
  "firestoreProjectId": {
21
25
  "type": "string",
22
26
  "description": "Firebase project ID for skill storage (optional)"
@@ -80,6 +84,10 @@
80
84
  "label": "Python Path",
81
85
  "placeholder": "/usr/bin/python3 (auto-detected)"
82
86
  },
87
+ "cascadePythonModulePath": {
88
+ "label": "Python Module Path",
89
+ "placeholder": "/path/to/cascade/python"
90
+ },
83
91
  "firestoreProjectId": {
84
92
  "label": "Firestore Project ID"
85
93
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-cascade-plugin",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Desktop automation plugin for OpenClaw powered by Cascade",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,7 +12,8 @@
12
12
  "test:coverage": "jest --coverage",
13
13
  "lint": "eslint src/**/*.ts",
14
14
  "lint:fix": "eslint src/**/*.ts --fix",
15
- "clean": "rm -rf dist coverage"
15
+ "clean": "rm -rf dist coverage",
16
+ "postinstall": "node scripts/postinstall.js"
16
17
  },
17
18
  "openclaw": {
18
19
  "extensions": [
@@ -0,0 +1,84 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const os = require('os');
4
+
5
+ const PLUGIN_ID = 'openclaw-cascade-plugin';
6
+ const DEFAULT_ENDPOINT = 'localhost:50051';
7
+ const defaultConfigPath = path.join(os.homedir(), '.openclaw', 'openclaw.json');
8
+ const legacyConfigPath = path.join(os.homedir(), '.openclaw', 'config.json');
9
+ const configPath = process.env.OPENCLAW_CONFIG_PATH ||
10
+ (fs.existsSync(defaultConfigPath) ? defaultConfigPath : legacyConfigPath);
11
+
12
+ function readConfig(filePath) {
13
+ if (!fs.existsSync(filePath)) {
14
+ return { plugins: { entries: {} } };
15
+ }
16
+
17
+ const content = fs.readFileSync(filePath, 'utf8');
18
+ try {
19
+ return JSON.parse(content);
20
+ } catch (error) {
21
+ console.warn('[cascade] Could not parse OpenClaw config; skipping auto-update:', error.message);
22
+ return null;
23
+ }
24
+ }
25
+
26
+ function writeConfig(filePath, config) {
27
+ const dir = path.dirname(filePath);
28
+ if (!fs.existsSync(dir)) {
29
+ fs.mkdirSync(dir, { recursive: true });
30
+ }
31
+
32
+ fs.writeFileSync(filePath, JSON.stringify(config, null, 2));
33
+ }
34
+
35
+ function ensurePluginEntry(config) {
36
+ config.plugins = config.plugins || {};
37
+ config.plugins.entries = config.plugins.entries || {};
38
+
39
+ // Migrate legacy entry if present
40
+ if (config.plugins.entries.cascade && !config.plugins.entries[PLUGIN_ID]) {
41
+ config.plugins.entries[PLUGIN_ID] = config.plugins.entries.cascade;
42
+ delete config.plugins.entries.cascade;
43
+ }
44
+
45
+ const entry = config.plugins.entries[PLUGIN_ID] || {};
46
+ const existingConfig = entry.config || {};
47
+
48
+ const cascadeRepoPath = process.env.CASCADE_REPO_PATH;
49
+ const cascadePythonModulePath = process.env.CASCADE_PYTHON_MODULE_PATH ||
50
+ (cascadeRepoPath ? path.join(cascadeRepoPath, 'python') : undefined);
51
+
52
+ config.plugins.entries[PLUGIN_ID] = {
53
+ enabled: entry.enabled !== false,
54
+ config: {
55
+ cascadeGrpcEndpoint: existingConfig.cascadeGrpcEndpoint || DEFAULT_ENDPOINT,
56
+ cascadePythonModulePath: existingConfig.cascadePythonModulePath || cascadePythonModulePath,
57
+ cascadePythonPath: existingConfig.cascadePythonPath,
58
+ firestoreProjectId: existingConfig.firestoreProjectId,
59
+ firestoreCredentialsPath: existingConfig.firestoreCredentialsPath,
60
+ headless: existingConfig.headless,
61
+ actionTimeoutMs: existingConfig.actionTimeoutMs,
62
+ enableA2A: existingConfig.enableA2A,
63
+ allowedAgents: existingConfig.allowedAgents,
64
+ requireAgentConfirmation: existingConfig.requireAgentConfirmation,
65
+ verbose: existingConfig.verbose,
66
+ screenshotMode: existingConfig.screenshotMode,
67
+ screenshotDir: existingConfig.screenshotDir
68
+ }
69
+ };
70
+ }
71
+
72
+ const config = readConfig(configPath);
73
+ if (!config) {
74
+ process.exit(0);
75
+ }
76
+
77
+ ensurePluginEntry(config);
78
+ writeConfig(configPath, config);
79
+
80
+ console.log(`[cascade] OpenClaw config updated: ${configPath}`);
81
+ console.log('[cascade] Plugin entry ensured under plugins.entries.openclaw-cascade-plugin');
82
+ if (!process.env.CASCADE_REPO_PATH && !process.env.CASCADE_PYTHON_MODULE_PATH) {
83
+ console.log('[cascade] Tip: set CASCADE_REPO_PATH to your repo to auto-configure PYTHONPATH.');
84
+ }
package/src/config.ts CHANGED
@@ -122,12 +122,13 @@ export function loadConfig(input: Partial<CascadePluginConfig>): CascadePluginCo
122
122
  * Load configuration from OpenClaw API
123
123
  */
124
124
  export function loadConfigFromOpenClaw(api: any): CascadePluginConfig {
125
- const pluginConfig = api.config?.plugins?.entries?.cascade?.config;
125
+ const entries = api.config?.plugins?.entries || {};
126
+ const pluginConfig = entries['openclaw-cascade-plugin']?.config || entries.cascade?.config;
126
127
 
127
128
  if (!pluginConfig) {
128
129
  throw new Error(
129
130
  'Cascade plugin configuration not found. ' +
130
- 'Please add cascade configuration to your OpenClaw config.'
131
+ 'Please add openclaw-cascade-plugin configuration to your OpenClaw config.'
131
132
  );
132
133
  }
133
134
 
package/src/index.ts CHANGED
@@ -10,6 +10,7 @@ import { CascadeMcpClient } from './cascade-client';
10
10
  import { CascadeA2AClient } from './a2a-client';
11
11
  import { loadConfig } from './config';
12
12
  import { CascadeError } from './types';
13
+ import { delimiter as pathDelimiter } from 'path';
13
14
  import {
14
15
  registerDesktopTools,
15
16
  registerWebTools,
@@ -24,9 +25,9 @@ interface OpenClawApi {
24
25
  config: {
25
26
  plugins: {
26
27
  entries: {
27
- cascade?: {
28
- config?: any;
29
- };
28
+ cascade?: { config?: any };
29
+ 'openclaw-cascade-plugin'?: { config?: any };
30
+ [key: string]: { config?: any } | undefined;
30
31
  };
31
32
  };
32
33
  };
@@ -42,7 +43,12 @@ export default async function register(api: OpenClawApi) {
42
43
 
43
44
  try {
44
45
  // Load and validate configuration
45
- const config = loadConfig(api.config.plugins.entries.cascade?.config || {});
46
+ const entries = api.config.plugins.entries || {};
47
+ const config = loadConfig(
48
+ entries['openclaw-cascade-plugin']?.config ||
49
+ entries.cascade?.config ||
50
+ {}
51
+ );
46
52
 
47
53
  console.log('Initializing Cascade plugin...');
48
54
  console.log(`gRPC Endpoint: ${config.cascadeGrpcEndpoint}`);
@@ -53,14 +59,24 @@ export default async function register(api: OpenClawApi) {
53
59
  console.log(`Python: ${pythonPath}`);
54
60
 
55
61
  // Initialize MCP Client
56
- mcpClient = new CascadeMcpClient(pythonPath, {
62
+ const pythonEnv: NodeJS.ProcessEnv = {
57
63
  CASCADE_GRPC_ENDPOINT: config.cascadeGrpcEndpoint,
58
64
  CASCADE_APP_ID: config.firestoreProjectId || 'openclaw',
59
65
  CASCADE_USER_ID: 'openclaw-user',
60
66
  ...(config.firestoreCredentialsPath && {
61
67
  GOOGLE_APPLICATION_CREDENTIALS: config.firestoreCredentialsPath
62
68
  })
63
- });
69
+ };
70
+
71
+ const modulePath = config.cascadePythonModulePath || process.env.CASCADE_PYTHON_MODULE_PATH;
72
+ if (modulePath) {
73
+ const existingPath = process.env.PYTHONPATH || '';
74
+ pythonEnv.PYTHONPATH = existingPath
75
+ ? `${modulePath}${pathDelimiter}${existingPath}`
76
+ : modulePath;
77
+ }
78
+
79
+ mcpClient = new CascadeMcpClient(pythonPath, pythonEnv);
64
80
 
65
81
  await mcpClient.start();
66
82
  console.log('Cascade MCP client connected');
@@ -173,6 +173,9 @@ describe('Desktop Automation Tools', () => {
173
173
  test('should save large screenshot to disk', async () => {
174
174
  // Arrange
175
175
  const largeImage = 'A'.repeat(5000000); // 5MB base64 = ~3.75MB actual
176
+ const diskRegistry = new ToolRegistry();
177
+ registerDesktopTools(diskRegistry, mockClient as any, { screenshotMode: 'disk' } as any);
178
+
176
179
  mockClient.registerMockTool('get_screenshot', () => ({
177
180
  image: largeImage,
178
181
  format: 'PNG',
@@ -180,7 +183,7 @@ describe('Desktop Automation Tools', () => {
180
183
  }));
181
184
 
182
185
  // Act
183
- const result = await registry.call('cascade_get_screenshot', {});
186
+ const result = await diskRegistry.call('cascade_get_screenshot', {});
184
187
 
185
188
  // Assert
186
189
  expect(result.content[0].type).toBe('text');
@@ -6,6 +6,7 @@
6
6
  export interface CascadePluginConfig {
7
7
  cascadeGrpcEndpoint: string;
8
8
  cascadePythonPath?: string;
9
+ cascadePythonModulePath?: string;
9
10
  firestoreProjectId?: string;
10
11
  firestoreCredentialsPath?: string;
11
12
  headless?: boolean;