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.
- package/README.md +21 -24
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -10
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -46
- package/dist/index.js.map +1 -1
- package/dist/tools/a2a-tools.d.ts +1 -1
- package/dist/tools/a2a-tools.d.ts.map +1 -1
- package/dist/tools/a2a-tools.js +4 -4
- package/dist/tools/a2a-tools.js.map +1 -1
- package/dist/tools/api-tools.d.ts +1 -1
- package/dist/tools/api-tools.d.ts.map +1 -1
- package/dist/tools/api-tools.js +3 -3
- package/dist/tools/api-tools.js.map +1 -1
- package/dist/tools/desktop-automation.d.ts +1 -1
- package/dist/tools/desktop-automation.d.ts.map +1 -1
- package/dist/tools/desktop-automation.js +10 -10
- package/dist/tools/desktop-automation.js.map +1 -1
- package/dist/tools/sandbox-tools.d.ts +1 -1
- package/dist/tools/sandbox-tools.d.ts.map +1 -1
- package/dist/tools/sandbox-tools.js +2 -2
- package/dist/tools/sandbox-tools.js.map +1 -1
- package/dist/tools/web-automation.d.ts +1 -1
- package/dist/tools/web-automation.d.ts.map +1 -1
- package/dist/tools/web-automation.js +16 -16
- package/dist/tools/web-automation.js.map +1 -1
- package/openclaw-cascade-plugin-1.0.4.tgz +0 -0
- package/openclaw.plugin.json +1 -2
- package/package.json +1 -1
- package/src/config.test.ts +3 -8
- package/src/config.ts +4 -14
- package/src/index.ts +55 -53
- package/src/tools/a2a-tools.ts +4 -4
- package/src/tools/api-tools.ts +3 -3
- package/src/tools/desktop-automation.test.ts +2 -2
- package/src/tools/desktop-automation.ts +10 -10
- package/src/tools/sandbox-tools.ts +2 -2
- package/src/tools/web-automation.test.ts +1 -1
- package/src/tools/web-automation.ts +16 -16
|
@@ -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 registerSandboxTools(registry: ToolRegistry,
|
|
12
|
+
export function registerSandboxTools(registry: ToolRegistry, getClient: () => Promise<CascadeMcpClient>): void {
|
|
13
13
|
registry.register({
|
|
14
14
|
name: 'cascade_execute_sandbox_skill',
|
|
15
15
|
description: 'Execute a Python sandbox skill for programmatic file automation',
|
|
@@ -63,7 +63,7 @@ export function registerSandboxTools(registry: ToolRegistry, client: CascadeMcpC
|
|
|
63
63
|
return errorResponse('task is required');
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
const result = await
|
|
66
|
+
const result = await await (await getClient()).callTool('execute_sandbox_skill', {
|
|
67
67
|
skill_id: args.skill_id,
|
|
68
68
|
task: args.task,
|
|
69
69
|
inputs: args.inputs || {},
|
|
@@ -13,7 +13,7 @@ describe('Web Automation Tools', () => {
|
|
|
13
13
|
beforeEach(() => {
|
|
14
14
|
registry = new ToolRegistry();
|
|
15
15
|
mockClient = new MockCascadeMcpClient();
|
|
16
|
-
registerWebTools(registry, mockClient as any);
|
|
16
|
+
registerWebTools(registry, async () => mockClient as any);
|
|
17
17
|
});
|
|
18
18
|
|
|
19
19
|
describe('Navigation Tools', () => {
|
|
@@ -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 registerWebTools(registry: ToolRegistry,
|
|
12
|
+
export function registerWebTools(registry: ToolRegistry, getClient: () => Promise<CascadeMcpClient>): void {
|
|
13
13
|
// Navigation Tools (5)
|
|
14
14
|
|
|
15
15
|
// 1. cascade_pw_goto
|
|
@@ -38,7 +38,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
38
38
|
return errorResponse('url is required');
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
const result = await
|
|
41
|
+
const result = await await (await getClient()).callTool('pw_goto', {
|
|
42
42
|
url: args.url,
|
|
43
43
|
wait_until: args.wait_until || 'networkidle'
|
|
44
44
|
});
|
|
@@ -62,7 +62,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
62
62
|
},
|
|
63
63
|
handler: async (): Promise<ToolResponse> => {
|
|
64
64
|
try {
|
|
65
|
-
const result = await
|
|
65
|
+
const result = await await (await getClient()).callTool('pw_back', {});
|
|
66
66
|
return formatSuccess(result);
|
|
67
67
|
} catch (error) {
|
|
68
68
|
return errorResponse(
|
|
@@ -82,7 +82,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
82
82
|
},
|
|
83
83
|
handler: async (): Promise<ToolResponse> => {
|
|
84
84
|
try {
|
|
85
|
-
const result = await
|
|
85
|
+
const result = await await (await getClient()).callTool('pw_forward', {});
|
|
86
86
|
return formatSuccess(result);
|
|
87
87
|
} catch (error) {
|
|
88
88
|
return errorResponse(
|
|
@@ -108,7 +108,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
108
108
|
},
|
|
109
109
|
handler: async (args): Promise<ToolResponse> => {
|
|
110
110
|
try {
|
|
111
|
-
const result = await
|
|
111
|
+
const result = await await (await getClient()).callTool('pw_reload', {
|
|
112
112
|
wait_until: args.wait_until || 'networkidle'
|
|
113
113
|
});
|
|
114
114
|
return formatSuccess(result);
|
|
@@ -145,7 +145,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
145
145
|
return errorResponse('url is required');
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
const result = await
|
|
148
|
+
const result = await await (await getClient()).callTool('pw_wait_for_url', {
|
|
149
149
|
url: args.url,
|
|
150
150
|
timeout_ms: args.timeout_ms || 10000
|
|
151
151
|
});
|
|
@@ -181,7 +181,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
181
181
|
return errorResponse('selector is required');
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
-
const result = await
|
|
184
|
+
const result = await await (await getClient()).callTool('pw_locator_count', {
|
|
185
185
|
selector: args.selector
|
|
186
186
|
});
|
|
187
187
|
return formatSuccess({ count: result.count });
|
|
@@ -218,7 +218,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
218
218
|
return errorResponse('selector is required');
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
const result = await
|
|
221
|
+
const result = await await (await getClient()).callTool('pw_locator_text', {
|
|
222
222
|
selector: args.selector,
|
|
223
223
|
timeout_ms: args.timeout_ms || 8000
|
|
224
224
|
});
|
|
@@ -257,7 +257,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
257
257
|
return errorResponse('selector is required');
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
const result = await
|
|
260
|
+
const result = await await (await getClient()).callTool('pw_click', {
|
|
261
261
|
selector: args.selector,
|
|
262
262
|
timeout_ms: args.timeout_ms || 8000
|
|
263
263
|
});
|
|
@@ -302,7 +302,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
302
302
|
return errorResponse('text is required');
|
|
303
303
|
}
|
|
304
304
|
|
|
305
|
-
const result = await
|
|
305
|
+
const result = await await (await getClient()).callTool('pw_fill', {
|
|
306
306
|
selector: args.selector,
|
|
307
307
|
text: args.text,
|
|
308
308
|
timeout_ms: args.timeout_ms || 8000
|
|
@@ -347,7 +347,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
347
347
|
return errorResponse('key is required');
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
-
const result = await
|
|
350
|
+
const result = await await (await getClient()).callTool('pw_press', {
|
|
351
351
|
selector: args.selector,
|
|
352
352
|
key: args.key,
|
|
353
353
|
timeout_ms: args.timeout_ms || 8000
|
|
@@ -389,7 +389,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
389
389
|
return errorResponse('values is required and must be an array');
|
|
390
390
|
}
|
|
391
391
|
|
|
392
|
-
const result = await
|
|
392
|
+
const result = await await (await getClient()).callTool('pw_select_option', {
|
|
393
393
|
selector: args.selector,
|
|
394
394
|
values: args.values
|
|
395
395
|
});
|
|
@@ -424,7 +424,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
424
424
|
return errorResponse('expression is required');
|
|
425
425
|
}
|
|
426
426
|
|
|
427
|
-
const result = await
|
|
427
|
+
const result = await await (await getClient()).callTool('pw_eval', {
|
|
428
428
|
expression: args.expression
|
|
429
429
|
});
|
|
430
430
|
return formatSuccess({ result: result.result });
|
|
@@ -463,7 +463,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
463
463
|
return errorResponse('expression is required');
|
|
464
464
|
}
|
|
465
465
|
|
|
466
|
-
const result = await
|
|
466
|
+
const result = await await (await getClient()).callTool('pw_eval_on_selector', {
|
|
467
467
|
selector: args.selector,
|
|
468
468
|
expression: args.expression
|
|
469
469
|
});
|
|
@@ -486,7 +486,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
486
486
|
},
|
|
487
487
|
handler: async (): Promise<ToolResponse> => {
|
|
488
488
|
try {
|
|
489
|
-
const result = await
|
|
489
|
+
const result = await await (await getClient()).callTool('pw_list_frames', {});
|
|
490
490
|
return formatSuccess({ frames: result.frames });
|
|
491
491
|
} catch (error) {
|
|
492
492
|
return errorResponse(
|
|
@@ -506,7 +506,7 @@ export function registerWebTools(registry: ToolRegistry, client: CascadeMcpClien
|
|
|
506
506
|
},
|
|
507
507
|
handler: async (): Promise<ToolResponse> => {
|
|
508
508
|
try {
|
|
509
|
-
const result = await
|
|
509
|
+
const result = await await (await getClient()).callTool('pw_get_cookies', {});
|
|
510
510
|
return formatSuccess({ cookies: result.cookies });
|
|
511
511
|
} catch (error) {
|
|
512
512
|
return errorResponse(
|