@kritchoff/agent-browser 0.9.5 → 0.9.7
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/bin/agent-browser.js +51 -92
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/bin/agent-browser.js
CHANGED
|
@@ -1,109 +1,68 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* WootzApp Agent Browser CLI
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Provides terminal-based control over the Android Agent environment.
|
|
7
|
+
* Usage:
|
|
8
|
+
* agent-browser start - Initialize environment (Warm/Cold boot)
|
|
9
|
+
* agent-browser stop - Stop environment
|
|
10
|
+
* agent-browser reset - Fast browser reset (15s)
|
|
11
|
+
* agent-browser open <url> - Open a URL in the browser
|
|
9
12
|
*/
|
|
10
13
|
|
|
11
|
-
import {
|
|
12
|
-
import { existsSync, accessSync, chmodSync, constants } from 'fs';
|
|
13
|
-
import { dirname, join } from 'path';
|
|
14
|
-
import { fileURLToPath } from 'url';
|
|
15
|
-
import { platform, arch } from 'os';
|
|
14
|
+
import { WootzAgent } from '../dist/index.js';
|
|
16
15
|
|
|
17
|
-
const
|
|
16
|
+
const args = process.argv.slice(2);
|
|
17
|
+
const command = args[0];
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const cpuArch = arch();
|
|
19
|
+
if (!command || command === '--help' || command === '-h') {
|
|
20
|
+
console.log(`
|
|
21
|
+
WootzApp Agent Browser CLI
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
case 'linux':
|
|
30
|
-
osKey = 'linux';
|
|
31
|
-
break;
|
|
32
|
-
case 'win32':
|
|
33
|
-
osKey = 'win32';
|
|
34
|
-
break;
|
|
35
|
-
default:
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
let archKey;
|
|
40
|
-
switch (cpuArch) {
|
|
41
|
-
case 'x64':
|
|
42
|
-
case 'x86_64':
|
|
43
|
-
archKey = 'x64';
|
|
44
|
-
break;
|
|
45
|
-
case 'arm64':
|
|
46
|
-
case 'aarch64':
|
|
47
|
-
archKey = 'arm64';
|
|
48
|
-
break;
|
|
49
|
-
default:
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
23
|
+
Usage:
|
|
24
|
+
agent-browser start Initialize and start the environment
|
|
25
|
+
agent-browser stop Stop the environment
|
|
26
|
+
agent-browser reset Fast reset the browser state
|
|
27
|
+
agent-browser <cmd> Run an agent command (e.g. open https://google.com)
|
|
52
28
|
|
|
53
|
-
|
|
54
|
-
|
|
29
|
+
Options:
|
|
30
|
+
--dist Use pre-built images from Docker Hub (default)
|
|
31
|
+
--local Build images locally from source
|
|
32
|
+
`);
|
|
33
|
+
process.exit(0);
|
|
55
34
|
}
|
|
56
35
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
// Binary exists but isn't executable - fix it
|
|
83
|
-
try {
|
|
84
|
-
chmodSync(binaryPath, 0o755);
|
|
85
|
-
} catch (chmodErr) {
|
|
86
|
-
console.error(`Error: Cannot make binary executable: ${chmodErr.message}`);
|
|
87
|
-
console.error('Try running: chmod +x ' + binaryPath);
|
|
88
|
-
process.exit(1);
|
|
89
|
-
}
|
|
36
|
+
// Check for mode flags
|
|
37
|
+
const isLocal = args.includes('--local');
|
|
38
|
+
// Filter out the --local/--dist flags before passing to command if necessary,
|
|
39
|
+
// but currently our command() method handles raw args.
|
|
40
|
+
const filteredArgs = args.filter(arg => arg !== '--local' && arg !== '--dist');
|
|
41
|
+
|
|
42
|
+
const agent = new WootzAgent({ dist: !isLocal });
|
|
43
|
+
|
|
44
|
+
async function main() {
|
|
45
|
+
try {
|
|
46
|
+
switch (command) {
|
|
47
|
+
case 'start':
|
|
48
|
+
await agent.start();
|
|
49
|
+
break;
|
|
50
|
+
case 'stop':
|
|
51
|
+
await agent.stop();
|
|
52
|
+
break;
|
|
53
|
+
case 'reset':
|
|
54
|
+
await agent.reset();
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
// Pass through arbitrary commands to the agent daemon
|
|
58
|
+
// e.g. "agent-browser open https://google.com"
|
|
59
|
+
await agent.command(...filteredArgs);
|
|
60
|
+
break;
|
|
90
61
|
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Spawn the native binary with inherited stdio
|
|
94
|
-
const child = spawn(binaryPath, process.argv.slice(2), {
|
|
95
|
-
stdio: 'inherit',
|
|
96
|
-
windowsHide: false,
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
child.on('error', (err) => {
|
|
100
|
-
console.error(`Error executing binary: ${err.message}`);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
console.error(`\n❌ Error: ${error.message}`);
|
|
101
64
|
process.exit(1);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
child.on('close', (code) => {
|
|
105
|
-
process.exit(code ?? 0);
|
|
106
|
-
});
|
|
65
|
+
}
|
|
107
66
|
}
|
|
108
67
|
|
|
109
68
|
main();
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,GAAE,YAAiB;IAOtC;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,GAAE,YAAiB;IAOtC;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACG,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,CAAC,aAAa;CAsBtB;AAGD,eAAe,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,20 +18,22 @@ export class WootzAgent {
|
|
|
18
18
|
* - Subsequent runs: Warm boot (~20s) using snapshot.
|
|
19
19
|
*/
|
|
20
20
|
async start() {
|
|
21
|
-
const args = [
|
|
21
|
+
const args = [];
|
|
22
22
|
if (this.options.dist) {
|
|
23
23
|
args.push('--dist');
|
|
24
24
|
}
|
|
25
|
+
args.push('start');
|
|
25
26
|
await this.runSdkCommand(args);
|
|
26
27
|
}
|
|
27
28
|
/**
|
|
28
29
|
* Stop the Agent Environment (graceful shutdown).
|
|
29
30
|
*/
|
|
30
31
|
async stop() {
|
|
31
|
-
const args = [
|
|
32
|
+
const args = [];
|
|
32
33
|
if (this.options.dist) {
|
|
33
34
|
args.push('--dist');
|
|
34
35
|
}
|
|
36
|
+
args.push('stop');
|
|
35
37
|
await this.runSdkCommand(args);
|
|
36
38
|
}
|
|
37
39
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,gEAAgE;AAChE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAUxD,MAAM,OAAO,UAAU;IACb,OAAO,CAAe;IAE9B,YAAY,UAAwB,EAAE;QACpC,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,IAAI,EAAE,6CAA6C;YACzD,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,gEAAgE;AAChE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAUxD,MAAM,OAAO,UAAU;IACb,OAAO,CAAe;IAE9B,YAAY,UAAwB,EAAE;QACpC,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,IAAI,EAAE,6CAA6C;YACzD,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,GAAG,IAAc;QAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,aAAa,CAAC,IAAc;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAE9D,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;gBACpC,KAAK,EAAE,SAAS,EAAE,gCAAgC;gBAClD,KAAK,EAAE,IAAI,EAAO,iCAAiC;aACpD,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,iCAAiC;AACjC,eAAe,UAAU,CAAC"}
|