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
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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":";AAAA;;;;GAIG;;AAOH,4CA0fC;AA5fD,yDAAkE;AAElE,SAAgB,gBAAgB,CAAC,QAAsB,EAAE,MAAwB;IAC/E,uBAAuB;IAEvB,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;iBAClC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,CAAC;oBACjD,OAAO,EAAE,aAAa;oBACtB,WAAW,EAAE,sCAAsC;iBACpD;aACF;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAyB,EAAE;YAC7C,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACd,OAAO,IAAA,gCAAa,EAAC,iBAAiB,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;oBAC9C,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,aAAa;iBAC7C,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,oBAAoB,EAC7D,4CAA4C,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK,IAA2B,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBACpD,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,mBAAmB,CAC7D,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,wBAAwB;IACxB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK,IAA2B,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACvD,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,sBAAsB,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,aAAa,CAAC;oBACjD,OAAO,EAAE,aAAa;iBACvB;aACF;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAyB,EAAE;YAC7C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;oBAChD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,aAAa;iBAC7C,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,uBAAuB,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,yBAAyB;iBACvC;aACF;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAyB,EAAE;YAC7C,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACd,OAAO,IAAA,gCAAa,EAAC,iBAAiB,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE;oBACtD,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK;iBACrC,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,wBAAwB,EACjE,iEAAiE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,oBAAoB;IAEpB,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;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;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE;oBACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,IAAA,gCAAa,EAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CACpE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,yBAAyB;iBACvC;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;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;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE;oBACtD,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;iBACpC,CAAC,CAAC;gBACH,OAAO,IAAA,gCAAa,EAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CACtE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,wBAAwB;IAExB,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;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;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;oBAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;iBACpC,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,yBAAyB,EAClE,6CAA6C,CAC9C,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,cAAc;iBAC5B;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;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,SAAS,EAAE;oBAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;iBACpC,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,sBAAsB,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;iBACd;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;SAC9B;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,GAAG,EAAE,CAAC;oBACd,OAAO,IAAA,gCAAa,EAAC,iBAAiB,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;oBAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;iBACpC,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,qBAAqB,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,kBAAkB;iBAChC;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;SACjC;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,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChD,OAAO,IAAA,gCAAa,EAAC,yCAAyC,CAAC,CAAC;gBAClE,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE;oBACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;gBACH,OAAO,IAAA,gCAAa,EAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,uBAAuB;IAEvB,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;iBACjD;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAyB,EAAE;YAC7C,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,OAAO,IAAA,gCAAa,EAAC,wBAAwB,CAAC,CAAC;gBACjD,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;oBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;gBACH,OAAO,IAAA,gCAAa,EAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yDAAyD;iBACvE;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;SACrC;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,UAAU,EAAE,CAAC;oBACrB,OAAO,IAAA,gCAAa,EAAC,wBAAwB,CAAC,CAAC;gBACjD,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE;oBAC1D,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;gBACH,OAAO,IAAA,gCAAa,EAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,+CAA+C;QAC5D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK,IAA2B,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC3D,OAAO,IAAA,gCAAa,EAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC;QAChB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;QACD,OAAO,EAAE,KAAK,IAA2B,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAC3D,OAAO,IAAA,gCAAa,EAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAA,gCAAa,EAClB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"web-automation.js","sourceRoot":"","sources":["../../src/tools/web-automation.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/openclaw.plugin.json
CHANGED
|
@@ -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.
|
|
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
package/src/config.test.ts
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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
|
|
93
|
-
|
|
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(
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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:',
|
|
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
|
}
|
package/src/tools/a2a-tools.ts
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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
|
|
143
|
+
await await (await getA2aClient())?.sendToAgent('orchestrator', {
|
|
144
144
|
type: 'coordinate',
|
|
145
145
|
goal: args.goal,
|
|
146
146
|
requireApproval: args.require_approval !== false
|
package/src/tools/api-tools.ts
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
357
|
+
const result = await await (await getClient()).callTool('wait_visible', args);
|
|
358
358
|
return formatSuccess(result);
|
|
359
359
|
} catch (error) {
|
|
360
360
|
return errorResponse(
|