openclaw-cascade-plugin 1.0.3 → 1.0.5

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 (41) hide show
  1. package/README.md +21 -24
  2. package/dist/config.d.ts +1 -1
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +3 -10
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +53 -46
  8. package/dist/index.js.map +1 -1
  9. package/dist/tools/a2a-tools.d.ts +1 -1
  10. package/dist/tools/a2a-tools.d.ts.map +1 -1
  11. package/dist/tools/a2a-tools.js +4 -4
  12. package/dist/tools/a2a-tools.js.map +1 -1
  13. package/dist/tools/api-tools.d.ts +1 -1
  14. package/dist/tools/api-tools.d.ts.map +1 -1
  15. package/dist/tools/api-tools.js +3 -3
  16. package/dist/tools/api-tools.js.map +1 -1
  17. package/dist/tools/desktop-automation.d.ts +1 -1
  18. package/dist/tools/desktop-automation.d.ts.map +1 -1
  19. package/dist/tools/desktop-automation.js +10 -10
  20. package/dist/tools/desktop-automation.js.map +1 -1
  21. package/dist/tools/sandbox-tools.d.ts +1 -1
  22. package/dist/tools/sandbox-tools.d.ts.map +1 -1
  23. package/dist/tools/sandbox-tools.js +2 -2
  24. package/dist/tools/sandbox-tools.js.map +1 -1
  25. package/dist/tools/web-automation.d.ts +1 -1
  26. package/dist/tools/web-automation.d.ts.map +1 -1
  27. package/dist/tools/web-automation.js +16 -16
  28. package/dist/tools/web-automation.js.map +1 -1
  29. package/openclaw-cascade-plugin-1.0.4.tgz +0 -0
  30. package/openclaw.plugin.json +1 -2
  31. package/package.json +1 -1
  32. package/src/config.test.ts +3 -8
  33. package/src/config.ts +4 -14
  34. package/src/index.ts +55 -53
  35. package/src/tools/a2a-tools.ts +4 -4
  36. package/src/tools/api-tools.ts +3 -3
  37. package/src/tools/desktop-automation.test.ts +2 -2
  38. package/src/tools/desktop-automation.ts +10 -10
  39. package/src/tools/sandbox-tools.ts +2 -2
  40. package/src/tools/web-automation.test.ts +1 -1
  41. package/src/tools/web-automation.ts +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-tools.js","sourceRoot":"","sources":["../../src/tools/sandbox-tools.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAOH,oDAuEC;AAzED,yDAAkE;AAElE,SAAgB,oBAAoB,CAAC,QAAsB,EAAE,MAAwB;IACnF,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,iEAAiE;QAC9E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACnC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qCAAqC;iBACnD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,oBAAoB,EAAE,IAAI;iBAC3B;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,iCAAiC;oBAC9C,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;yBAC7D;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC;qBACzC;iBACF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kEAAkE;iBAChF;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;SAC/B;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAyB,EAAE;YAC7C,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,IAAA,gCAAa,EAAC,sBAAsB,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,IAAA,gCAAa,EAAC,kBAAkB,CAAC,CAAC;gBAC3C,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE;oBAC5D,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;oBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;gBACH,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAC1E,oDAAoD,CACrD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sandbox-tools.js","sourceRoot":"","sources":["../../src/tools/sandbox-tools.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAOH,oDAuEC;AAzED,yDAAkE;AAElE,SAAgB,oBAAoB,CAAC,QAAsB,EAAE,SAA0C;IACrG,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,iEAAiE;QAC9E,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACnC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qCAAqC;iBACnD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,oBAAoB,EAAE,IAAI;iBAC3B;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,iCAAiC;oBAC9C,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAChC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;yBAC7D;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC;qBACzC;iBACF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wDAAwD;iBACtE;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kEAAkE;iBAChF;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;SAC/B;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAyB,EAAE;YAC7C,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,OAAO,IAAA,gCAAa,EAAC,sBAAsB,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,IAAA,gCAAa,EAAC,kBAAkB,CAAC,CAAC;gBAC3C,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,EAAE;oBAC/E,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;oBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;gBACH,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAC1E,oDAAoD,CACrD,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -5,5 +5,5 @@
5
5
  */
6
6
  import { ToolRegistry } from './tool-registry';
7
7
  import { CascadeMcpClient } from '../cascade-client';
8
- export declare function registerWebTools(registry: ToolRegistry, client: CascadeMcpClient): void;
8
+ export declare function registerWebTools(registry: ToolRegistry, getClient: () => Promise<CascadeMcpClient>): void;
9
9
  //# sourceMappingURL=web-automation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-automation.d.ts","sourceRoot":"","sources":["../../src/tools/web-automation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA0fvF"}
1
+ {"version":3,"file":"web-automation.d.ts","sourceRoot":"","sources":["../../src/tools/web-automation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CA0fzG"}
@@ -7,7 +7,7 @@
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.registerWebTools = registerWebTools;
9
9
  const response_helpers_1 = require("./response-helpers");
10
- function registerWebTools(registry, client) {
10
+ function registerWebTools(registry, getClient) {
11
11
  // Navigation Tools (5)
12
12
  // 1. cascade_pw_goto
13
13
  registry.register({
@@ -34,7 +34,7 @@ function registerWebTools(registry, client) {
34
34
  if (!args.url) {
35
35
  return (0, response_helpers_1.errorResponse)('url is required');
36
36
  }
37
- const result = await client.callTool('pw_goto', {
37
+ const result = await await (await getClient()).callTool('pw_goto', {
38
38
  url: args.url,
39
39
  wait_until: args.wait_until || 'networkidle'
40
40
  });
@@ -55,7 +55,7 @@ function registerWebTools(registry, client) {
55
55
  },
56
56
  handler: async () => {
57
57
  try {
58
- const result = await client.callTool('pw_back', {});
58
+ const result = await await (await getClient()).callTool('pw_back', {});
59
59
  return (0, response_helpers_1.formatSuccess)(result);
60
60
  }
61
61
  catch (error) {
@@ -73,7 +73,7 @@ function registerWebTools(registry, client) {
73
73
  },
74
74
  handler: async () => {
75
75
  try {
76
- const result = await client.callTool('pw_forward', {});
76
+ const result = await await (await getClient()).callTool('pw_forward', {});
77
77
  return (0, response_helpers_1.formatSuccess)(result);
78
78
  }
79
79
  catch (error) {
@@ -97,7 +97,7 @@ function registerWebTools(registry, client) {
97
97
  },
98
98
  handler: async (args) => {
99
99
  try {
100
- const result = await client.callTool('pw_reload', {
100
+ const result = await await (await getClient()).callTool('pw_reload', {
101
101
  wait_until: args.wait_until || 'networkidle'
102
102
  });
103
103
  return (0, response_helpers_1.formatSuccess)(result);
@@ -131,7 +131,7 @@ function registerWebTools(registry, client) {
131
131
  if (!args.url) {
132
132
  return (0, response_helpers_1.errorResponse)('url is required');
133
133
  }
134
- const result = await client.callTool('pw_wait_for_url', {
134
+ const result = await await (await getClient()).callTool('pw_wait_for_url', {
135
135
  url: args.url,
136
136
  timeout_ms: args.timeout_ms || 10000
137
137
  });
@@ -162,7 +162,7 @@ function registerWebTools(registry, client) {
162
162
  if (!args.selector) {
163
163
  return (0, response_helpers_1.errorResponse)('selector is required');
164
164
  }
165
- const result = await client.callTool('pw_locator_count', {
165
+ const result = await await (await getClient()).callTool('pw_locator_count', {
166
166
  selector: args.selector
167
167
  });
168
168
  return (0, response_helpers_1.formatSuccess)({ count: result.count });
@@ -196,7 +196,7 @@ function registerWebTools(registry, client) {
196
196
  if (!args.selector) {
197
197
  return (0, response_helpers_1.errorResponse)('selector is required');
198
198
  }
199
- const result = await client.callTool('pw_locator_text', {
199
+ const result = await await (await getClient()).callTool('pw_locator_text', {
200
200
  selector: args.selector,
201
201
  timeout_ms: args.timeout_ms || 8000
202
202
  });
@@ -231,7 +231,7 @@ function registerWebTools(registry, client) {
231
231
  if (!args.selector) {
232
232
  return (0, response_helpers_1.errorResponse)('selector is required');
233
233
  }
234
- const result = await client.callTool('pw_click', {
234
+ const result = await await (await getClient()).callTool('pw_click', {
235
235
  selector: args.selector,
236
236
  timeout_ms: args.timeout_ms || 8000
237
237
  });
@@ -272,7 +272,7 @@ function registerWebTools(registry, client) {
272
272
  if (!args.text) {
273
273
  return (0, response_helpers_1.errorResponse)('text is required');
274
274
  }
275
- const result = await client.callTool('pw_fill', {
275
+ const result = await await (await getClient()).callTool('pw_fill', {
276
276
  selector: args.selector,
277
277
  text: args.text,
278
278
  timeout_ms: args.timeout_ms || 8000
@@ -314,7 +314,7 @@ function registerWebTools(registry, client) {
314
314
  if (!args.key) {
315
315
  return (0, response_helpers_1.errorResponse)('key is required');
316
316
  }
317
- const result = await client.callTool('pw_press', {
317
+ const result = await await (await getClient()).callTool('pw_press', {
318
318
  selector: args.selector,
319
319
  key: args.key,
320
320
  timeout_ms: args.timeout_ms || 8000
@@ -353,7 +353,7 @@ function registerWebTools(registry, client) {
353
353
  if (!args.values || !Array.isArray(args.values)) {
354
354
  return (0, response_helpers_1.errorResponse)('values is required and must be an array');
355
355
  }
356
- const result = await client.callTool('pw_select_option', {
356
+ const result = await await (await getClient()).callTool('pw_select_option', {
357
357
  selector: args.selector,
358
358
  values: args.values
359
359
  });
@@ -384,7 +384,7 @@ function registerWebTools(registry, client) {
384
384
  if (!args.expression) {
385
385
  return (0, response_helpers_1.errorResponse)('expression is required');
386
386
  }
387
- const result = await client.callTool('pw_eval', {
387
+ const result = await await (await getClient()).callTool('pw_eval', {
388
388
  expression: args.expression
389
389
  });
390
390
  return (0, response_helpers_1.formatSuccess)({ result: result.result });
@@ -420,7 +420,7 @@ function registerWebTools(registry, client) {
420
420
  if (!args.expression) {
421
421
  return (0, response_helpers_1.errorResponse)('expression is required');
422
422
  }
423
- const result = await client.callTool('pw_eval_on_selector', {
423
+ const result = await await (await getClient()).callTool('pw_eval_on_selector', {
424
424
  selector: args.selector,
425
425
  expression: args.expression
426
426
  });
@@ -441,7 +441,7 @@ function registerWebTools(registry, client) {
441
441
  },
442
442
  handler: async () => {
443
443
  try {
444
- const result = await client.callTool('pw_list_frames', {});
444
+ const result = await await (await getClient()).callTool('pw_list_frames', {});
445
445
  return (0, response_helpers_1.formatSuccess)({ frames: result.frames });
446
446
  }
447
447
  catch (error) {
@@ -459,7 +459,7 @@ function registerWebTools(registry, client) {
459
459
  },
460
460
  handler: async () => {
461
461
  try {
462
- const result = await client.callTool('pw_get_cookies', {});
462
+ const result = await await (await getClient()).callTool('pw_get_cookies', {});
463
463
  return (0, response_helpers_1.formatSuccess)({ cookies: result.cookies });
464
464
  }
465
465
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"web-automation.js","sourceRoot":"","sources":["../../src/tools/web-automation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-automation.js","sourceRoot":"","sources":["../../src/tools/web-automation.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,10 @@
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.3",
5
+ "version": "1.0.4",
6
6
  "configSchema": {
7
7
  "type": "object",
8
8
  "additionalProperties": false,
9
- "required": ["cascadeGrpcEndpoint"],
10
9
  "properties": {
11
10
  "cascadeGrpcEndpoint": {
12
11
  "type": "string",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-cascade-plugin",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Desktop automation plugin for OpenClaw powered by Cascade",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -119,14 +119,9 @@ describe('Config', () => {
119
119
  });
120
120
 
121
121
  describe('loadConfig', () => {
122
- test('should load config with defaults', () => {
123
- // Arrange
124
- const input = {
125
- cascadeGrpcEndpoint: 'localhost:50051'
126
- };
127
-
122
+ test('should load config with defaults when input is empty', () => {
128
123
  // Act
129
- const config = loadConfig(input);
124
+ const config = loadConfig({});
130
125
 
131
126
  // Assert
132
127
  expect(config.cascadeGrpcEndpoint).toBe('localhost:50051');
@@ -184,7 +179,7 @@ describe('Config', () => {
184
179
  test('should validate loaded config', () => {
185
180
  // Arrange
186
181
  const input = {
187
- headless: true
182
+ cascadeGrpcEndpoint: ''
188
183
  };
189
184
 
190
185
  // Act & Assert
package/src/config.ts CHANGED
@@ -89,16 +89,13 @@ export function expandEnvVars(value: string): string {
89
89
  /**
90
90
  * Load and validate configuration
91
91
  */
92
- export function loadConfig(input: Partial<CascadePluginConfig>): CascadePluginConfig {
93
- // Check required field before merging
94
- if (!input.cascadeGrpcEndpoint) {
95
- throw new Error('cascadeGrpcEndpoint is required');
96
- }
92
+ export function loadConfig(input?: Partial<CascadePluginConfig>): CascadePluginConfig {
93
+ const actualInput = input || {};
97
94
 
98
95
  // Expand environment variables in string fields
99
96
  const expanded: Partial<CascadePluginConfig> = {};
100
97
 
101
- for (const [key, value] of Object.entries(input)) {
98
+ for (const [key, value] of Object.entries(actualInput)) {
102
99
  if (typeof value === 'string') {
103
100
  (expanded as any)[key] = expandEnvVars(value);
104
101
  } else {
@@ -123,14 +120,7 @@ export function loadConfig(input: Partial<CascadePluginConfig>): CascadePluginCo
123
120
  */
124
121
  export function loadConfigFromOpenClaw(api: any): CascadePluginConfig {
125
122
  const entries = api.config?.plugins?.entries || {};
126
- const pluginConfig = entries['openclaw-cascade-plugin']?.config || entries.cascade?.config;
123
+ const pluginConfig = entries['openclaw-cascade-plugin']?.config || entries.cascade?.config || {};
127
124
 
128
- if (!pluginConfig) {
129
- throw new Error(
130
- 'Cascade plugin configuration not found. ' +
131
- 'Please add openclaw-cascade-plugin configuration to your OpenClaw config.'
132
- );
133
- }
134
-
135
125
  return loadConfig(pluginConfig);
136
126
  }
package/src/index.ts CHANGED
@@ -50,39 +50,45 @@ export default async function register(api: OpenClawApi) {
50
50
  {}
51
51
  );
52
52
 
53
- console.log('Initializing Cascade plugin...');
54
- console.log(`gRPC Endpoint: ${config.cascadeGrpcEndpoint}`);
55
-
56
- // Initialize Python Manager
57
- const pythonManager = new PythonManager(config);
58
- const pythonPath = await pythonManager.findOrInstallPython();
59
- console.log(`Python: ${pythonPath}`);
60
-
61
- // Initialize MCP Client
62
- const pythonEnv: NodeJS.ProcessEnv = {
63
- CASCADE_GRPC_ENDPOINT: config.cascadeGrpcEndpoint,
64
- CASCADE_APP_ID: config.firestoreProjectId || 'openclaw',
65
- CASCADE_USER_ID: 'openclaw-user',
66
- ...(config.firestoreCredentialsPath && {
67
- GOOGLE_APPLICATION_CREDENTIALS: config.firestoreCredentialsPath
68
- })
53
+ // Lazy loaded clients
54
+ let pythonPath: string | null = null;
55
+ let initialized = false;
56
+
57
+ const getMcpClient = async (): Promise<CascadeMcpClient> => {
58
+ if (mcpClient && initialized) return mcpClient;
59
+
60
+ // Initialize Python Manager
61
+ const pythonManager = new PythonManager(config);
62
+ pythonPath = await pythonManager.findOrInstallPython();
63
+
64
+ // Initialize MCP Client
65
+ const pythonEnv: NodeJS.ProcessEnv = {
66
+ CASCADE_GRPC_ENDPOINT: config.cascadeGrpcEndpoint,
67
+ CASCADE_APP_ID: config.firestoreProjectId || 'openclaw',
68
+ CASCADE_USER_ID: 'openclaw-user',
69
+ ...(config.firestoreCredentialsPath && {
70
+ GOOGLE_APPLICATION_CREDENTIALS: config.firestoreCredentialsPath
71
+ })
72
+ };
73
+
74
+ const modulePath = config.cascadePythonModulePath || process.env.CASCADE_PYTHON_MODULE_PATH;
75
+ if (modulePath) {
76
+ const existingPath = process.env.PYTHONPATH || '';
77
+ pythonEnv.PYTHONPATH = existingPath
78
+ ? `${modulePath}${pathDelimiter}${existingPath}`
79
+ : modulePath;
80
+ }
81
+
82
+ mcpClient = new CascadeMcpClient(pythonPath, pythonEnv);
83
+ await mcpClient.start();
84
+ initialized = true;
85
+ return mcpClient;
69
86
  };
70
87
 
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
- }
88
+ const getA2aClient = async (): Promise<CascadeA2AClient | null> => {
89
+ if (!config.enableA2A) return null;
90
+ if (a2aClient) return a2aClient;
78
91
 
79
- mcpClient = new CascadeMcpClient(pythonPath, pythonEnv);
80
-
81
- await mcpClient.start();
82
- console.log('Cascade MCP client connected');
83
-
84
- // Initialize A2A Client if enabled
85
- if (config.enableA2A) {
86
92
  a2aClient = new CascadeA2AClient(
87
93
  config.cascadeGrpcEndpoint,
88
94
  'openclaw-user',
@@ -90,26 +96,21 @@ export default async function register(api: OpenClawApi) {
90
96
  '' // auth token would come from config
91
97
  );
92
98
  await a2aClient.initialize();
93
- console.log('Cascade A2A client initialized');
94
- }
99
+ return a2aClient;
100
+ };
95
101
 
96
102
  // Create tool registry
97
103
  const toolRegistry = new ToolRegistry();
98
104
 
99
- // Register all tools
100
- console.log('Registering tools...');
101
- registerDesktopTools(toolRegistry, mcpClient, config);
102
- registerWebTools(toolRegistry, mcpClient);
103
- registerApiTools(toolRegistry, mcpClient);
104
- registerSandboxTools(toolRegistry, mcpClient);
105
-
106
- if (a2aClient) {
107
- registerA2ATools(toolRegistry, a2aClient);
108
- }
105
+ // Register all tools using the getters
106
+ registerDesktopTools(toolRegistry, getMcpClient, config);
107
+ registerWebTools(toolRegistry, getMcpClient);
108
+ registerApiTools(toolRegistry, getMcpClient);
109
+ registerSandboxTools(toolRegistry, getMcpClient);
110
+ registerA2ATools(toolRegistry, getA2aClient);
109
111
 
110
112
  // Register tools with OpenClaw
111
113
  const tools = toolRegistry.getAll();
112
- console.log(`Registering ${tools.length} tools with OpenClaw`);
113
114
 
114
115
  for (const tool of tools) {
115
116
  api.registerTool({
@@ -134,11 +135,19 @@ export default async function register(api: OpenClawApi) {
134
135
  program
135
136
  .command('cascade:status')
136
137
  .description('Check Cascade plugin status')
137
- .action(() => {
138
+ .action(async () => {
139
+ let connected = false;
140
+ try {
141
+ // Only check if it's already initialized to avoid triggering init
142
+ if (initialized && mcpClient) {
143
+ connected = mcpClient.isConnected();
144
+ }
145
+ } catch(e) {}
146
+
138
147
  console.log('Cascade Plugin Status:');
139
- console.log(' Connected:', mcpClient?.isConnected() || false);
148
+ console.log(' Connected:', connected);
140
149
  console.log(' Tools:', tools.length);
141
- console.log(' Python:', pythonPath);
150
+ console.log(' Python:', pythonPath || 'Not yet initialized');
142
151
  console.log(' gRPC:', config.cascadeGrpcEndpoint);
143
152
  console.log(' A2A:', config.enableA2A ? 'enabled' : 'disabled');
144
153
  });
@@ -154,16 +163,9 @@ export default async function register(api: OpenClawApi) {
154
163
  });
155
164
  });
156
165
 
157
- console.log(`Cascade plugin initialized successfully with ${tools.length} tools`);
158
-
159
166
  } catch (error) {
160
167
  console.error('Failed to initialize Cascade plugin:', error);
161
168
 
162
- // Cleanup on error
163
- if (mcpClient) {
164
- mcpClient.stop();
165
- }
166
-
167
169
  if (error instanceof CascadeError) {
168
170
  throw error;
169
171
  }
@@ -9,7 +9,7 @@ import { CascadeA2AClient } from '../a2a-client';
9
9
  import { ToolResponse } from '../types';
10
10
  import { errorResponse, formatSuccess } from './response-helpers';
11
11
 
12
- export function registerA2ATools(registry: ToolRegistry, a2aClient: CascadeA2AClient): void {
12
+ export function registerA2ATools(registry: ToolRegistry, getA2aClient: () => Promise<CascadeA2AClient | null>): void {
13
13
  // 1. cascade_run_explorer
14
14
  registry.register({
15
15
  name: 'cascade_run_explorer',
@@ -39,7 +39,7 @@ export function registerA2ATools(registry: ToolRegistry, a2aClient: CascadeA2ACl
39
39
  return errorResponse('app_name is required');
40
40
  }
41
41
 
42
- await a2aClient.sendToAgent('explorer', {
42
+ await await (await getA2aClient())?.sendToAgent('explorer', {
43
43
  type: 'start_exploration',
44
44
  appName: args.app_name,
45
45
  instructions: args.instructions || `Learn how to use ${args.app_name}`,
@@ -93,7 +93,7 @@ export function registerA2ATools(registry: ToolRegistry, a2aClient: CascadeA2ACl
93
93
  return errorResponse('task is required');
94
94
  }
95
95
 
96
- await a2aClient.sendToAgent('worker', {
96
+ await await (await getA2aClient())?.sendToAgent('worker', {
97
97
  type: 'execute_task',
98
98
  task: args.task,
99
99
  skillId: args.skill_id,
@@ -140,7 +140,7 @@ export function registerA2ATools(registry: ToolRegistry, a2aClient: CascadeA2ACl
140
140
  return errorResponse('goal is required');
141
141
  }
142
142
 
143
- await a2aClient.sendToAgent('orchestrator', {
143
+ await await (await getA2aClient())?.sendToAgent('orchestrator', {
144
144
  type: 'coordinate',
145
145
  goal: args.goal,
146
146
  requireApproval: args.require_approval !== false
@@ -9,7 +9,7 @@ import { CascadeMcpClient } from '../cascade-client';
9
9
  import { ToolResponse } from '../types';
10
10
  import { errorResponse, formatSuccess } from './response-helpers';
11
11
 
12
- export function registerApiTools(registry: ToolRegistry, client: CascadeMcpClient): void {
12
+ export function registerApiTools(registry: ToolRegistry, getClient: () => Promise<CascadeMcpClient>): void {
13
13
  // 1. cascade_web_search
14
14
  registry.register({
15
15
  name: 'cascade_web_search',
@@ -35,7 +35,7 @@ export function registerApiTools(registry: ToolRegistry, client: CascadeMcpClien
35
35
  return errorResponse('query is required');
36
36
  }
37
37
 
38
- const result = await client.callTool('web_search', {
38
+ const result = await await (await getClient()).callTool('web_search', {
39
39
  query: args.query,
40
40
  top_k: args.top_k || 5
41
41
  });
@@ -91,7 +91,7 @@ export function registerApiTools(registry: ToolRegistry, client: CascadeMcpClien
91
91
  return errorResponse('url is required');
92
92
  }
93
93
 
94
- const result = await client.callTool('call_http_api', {
94
+ const result = await await (await getClient()).callTool('call_http_api', {
95
95
  method: args.method,
96
96
  url: args.url,
97
97
  headers: args.headers,
@@ -13,7 +13,7 @@ describe('Desktop Automation Tools', () => {
13
13
  beforeEach(() => {
14
14
  registry = new ToolRegistry();
15
15
  mockClient = new MockCascadeMcpClient();
16
- registerDesktopTools(registry, mockClient as any);
16
+ registerDesktopTools(registry, async () => mockClient as any);
17
17
  });
18
18
 
19
19
  describe('cascade_click_element', () => {
@@ -174,7 +174,7 @@ describe('Desktop Automation Tools', () => {
174
174
  // Arrange
175
175
  const largeImage = 'A'.repeat(5000000); // 5MB base64 = ~3.75MB actual
176
176
  const diskRegistry = new ToolRegistry();
177
- registerDesktopTools(diskRegistry, mockClient as any, { screenshotMode: 'disk' } as any);
177
+ registerDesktopTools(diskRegistry, async () => mockClient as any, { screenshotMode: 'disk' } as any);
178
178
 
179
179
  mockClient.registerMockTool('get_screenshot', () => ({
180
180
  image: largeImage,
@@ -17,7 +17,7 @@ const MAX_EMBED_SIZE = 4 * 1024 * 1024;
17
17
 
18
18
  export function registerDesktopTools(
19
19
  registry: ToolRegistry,
20
- client: CascadeMcpClient,
20
+ getClient: () => Promise<CascadeMcpClient>,
21
21
  config?: CascadePluginConfig
22
22
  ): void {
23
23
  const screenshotMode = config?.screenshotMode || 'auto';
@@ -58,7 +58,7 @@ export function registerDesktopTools(
58
58
  return errorResponse('platform_source is required');
59
59
  }
60
60
 
61
- const result = await client.callTool('click_element', args);
61
+ const result = await await (await getClient()).callTool('click_element', args);
62
62
  return formatSuccess(result);
63
63
  } catch (error) {
64
64
  return errorResponse(
@@ -112,7 +112,7 @@ export function registerDesktopTools(
112
112
  return errorResponse('text is required');
113
113
  }
114
114
 
115
- const result = await client.callTool('type_text', args);
115
+ const result = await await (await getClient()).callTool('type_text', args);
116
116
  return formatSuccess(result);
117
117
  } catch (error) {
118
118
  return errorResponse(
@@ -132,7 +132,7 @@ export function registerDesktopTools(
132
132
  },
133
133
  handler: async (): Promise<ToolResponse> => {
134
134
  try {
135
- const result = await client.callTool('get_semantic_tree', {});
135
+ const result = await await (await getClient()).callTool('get_semantic_tree', {});
136
136
  return formatSuccess(result);
137
137
  } catch (error) {
138
138
  return errorResponse(
@@ -152,7 +152,7 @@ export function registerDesktopTools(
152
152
  },
153
153
  handler: async (): Promise<ToolResponse> => {
154
154
  try {
155
- const result = await client.callTool('get_screenshot', {});
155
+ const result = await await (await getClient()).callTool('get_screenshot', {});
156
156
 
157
157
  if (!result.image) {
158
158
  return errorResponse('No image data received');
@@ -209,7 +209,7 @@ export function registerDesktopTools(
209
209
  return errorResponse('app_name is required');
210
210
  }
211
211
 
212
- const result = await client.callTool('start_app', args);
212
+ const result = await await (await getClient()).callTool('start_app', args);
213
213
  return formatSuccess(result);
214
214
  } catch (error) {
215
215
  return errorResponse(
@@ -246,7 +246,7 @@ export function registerDesktopTools(
246
246
  },
247
247
  handler: async (args): Promise<ToolResponse> => {
248
248
  try {
249
- const result = await client.callTool('hover_element', args);
249
+ const result = await await (await getClient()).callTool('hover_element', args);
250
250
  return formatSuccess(result);
251
251
  } catch (error) {
252
252
  return errorResponse(
@@ -282,7 +282,7 @@ export function registerDesktopTools(
282
282
  },
283
283
  handler: async (args): Promise<ToolResponse> => {
284
284
  try {
285
- const result = await client.callTool('focus_element', args);
285
+ const result = await await (await getClient()).callTool('focus_element', args);
286
286
  return formatSuccess(result);
287
287
  } catch (error) {
288
288
  return errorResponse(
@@ -318,7 +318,7 @@ export function registerDesktopTools(
318
318
  },
319
319
  handler: async (args): Promise<ToolResponse> => {
320
320
  try {
321
- const result = await client.callTool('scroll_element', args);
321
+ const result = await await (await getClient()).callTool('scroll_element', args);
322
322
  return formatSuccess(result);
323
323
  } catch (error) {
324
324
  return errorResponse(
@@ -354,7 +354,7 @@ export function registerDesktopTools(
354
354
  },
355
355
  handler: async (args): Promise<ToolResponse> => {
356
356
  try {
357
- const result = await client.callTool('wait_visible', args);
357
+ const result = await await (await getClient()).callTool('wait_visible', args);
358
358
  return formatSuccess(result);
359
359
  } catch (error) {
360
360
  return errorResponse(