@kritchoff/agent-browser 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 +35 -35
- package/dist/orchestrator.d.ts +1 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +18 -12
- package/dist/orchestrator.js.map +1 -1
- package/docker-compose.sdk.yml +2 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# @kritchoff/agent-browser
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<strong>The Ultimate Headless Android Browser SDK for AI Agents</strong>
|
|
4
|
+
<strong>The Ultimate Headless Android Browser SDK & CLI for AI Agents</strong>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
|
-
This
|
|
7
|
+
This package provides a **Real Android Browser** (WootzApp) wrapped in a Docker container, controlled by a high-speed, Playwright-like TypeScript daemon.
|
|
8
8
|
|
|
9
9
|
It is specifically designed for AI Agents to navigate the mobile web, bypass bot detection, and generate LLM-friendly semantic trees (`AXTree`).
|
|
10
10
|
|
|
@@ -13,6 +13,7 @@ It is specifically designed for AI Agents to navigate the mobile web, bypass bot
|
|
|
13
13
|
## 🌟 Key Features
|
|
14
14
|
|
|
15
15
|
- **Cross-Platform**: Works natively on **Windows, macOS (Intel & Apple Silicon), and Linux** using a pure Node.js Orchestrator (No WSL or bash required).
|
|
16
|
+
- **Bundled CLI**: Control the browser directly from your terminal (`agent-browser start`).
|
|
16
17
|
- **Zero-Config Setup**: Automatically downloads and orchestrates the required Docker containers.
|
|
17
18
|
- **Hyper-Speed Warm Boots**: Uses advanced VDI Volume Mounting to boot the Android environment in **< 5 seconds** after the first run.
|
|
18
19
|
- **Fast Resets**: Cleans the browser state via Android userspace reboot in **~15 seconds**.
|
|
@@ -30,24 +31,47 @@ It is specifically designed for AI Agents to navigate the mobile web, bypass bot
|
|
|
30
31
|
|
|
31
32
|
---
|
|
32
33
|
|
|
33
|
-
##
|
|
34
|
+
## 💻 Global CLI Usage (Recommended for Testing)
|
|
34
35
|
|
|
35
|
-
|
|
36
|
+
The easiest way to use the Agent Browser is via the global Command Line Interface.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# 1. Install globally
|
|
40
|
+
npm install -g @kritchoff/agent-browser
|
|
41
|
+
|
|
42
|
+
# 2. Start the environment (Takes ~90s first time, ~5s after)
|
|
43
|
+
agent-browser start
|
|
44
|
+
|
|
45
|
+
# 3. Run commands interactively
|
|
46
|
+
agent-browser navigate https://news.ycombinator.com
|
|
47
|
+
agent-browser click ".titleline a"
|
|
48
|
+
|
|
49
|
+
# 4. Get the Semantic UI Tree printed to your terminal
|
|
50
|
+
agent-browser snapshot
|
|
51
|
+
|
|
52
|
+
# 5. Clean the browser state for a new session (~15s)
|
|
53
|
+
agent-browser reset
|
|
54
|
+
|
|
55
|
+
# 6. Completely stop and tear down containers
|
|
56
|
+
agent-browser stop
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 📦 Node.js SDK Usage (For your AI Agents)
|
|
62
|
+
|
|
63
|
+
Install the SDK locally in your project:
|
|
36
64
|
|
|
37
65
|
```bash
|
|
38
66
|
npm install @kritchoff/agent-browser
|
|
39
67
|
```
|
|
40
68
|
|
|
41
|
-
*(Optional but recommended)* Install `tsx` to run TypeScript files natively
|
|
69
|
+
*(Optional but recommended)* Install `tsx` to run TypeScript files natively:
|
|
42
70
|
```bash
|
|
43
71
|
npm install -D tsx
|
|
44
72
|
```
|
|
45
73
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
## 🚀 Quick Start Guide
|
|
49
|
-
|
|
50
|
-
Create a file named `agent.ts`:
|
|
74
|
+
### Quick Start Code (`agent.ts`)
|
|
51
75
|
|
|
52
76
|
```typescript
|
|
53
77
|
import { WootzAgent } from '@kritchoff/agent-browser';
|
|
@@ -91,30 +115,6 @@ npx tsx agent.ts
|
|
|
91
115
|
|
|
92
116
|
---
|
|
93
117
|
|
|
94
|
-
## 💻 CLI Usage (Global Install)
|
|
95
|
-
|
|
96
|
-
You can use the SDK directly from your terminal to debug or control the browser manually without writing code. The CLI is automatically installed when you install the package globally.
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
npm install -g @kritchoff/agent-browser
|
|
100
|
-
|
|
101
|
-
# 1. Start the environment (Takes ~90s first time, ~5s after)
|
|
102
|
-
agent-browser start
|
|
103
|
-
|
|
104
|
-
# 2. Run commands interactively
|
|
105
|
-
agent-browser navigate https://news.ycombinator.com
|
|
106
|
-
agent-browser click ".titleline a"
|
|
107
|
-
agent-browser snapshot
|
|
108
|
-
|
|
109
|
-
# 3. Clean the browser for a new session
|
|
110
|
-
agent-browser reset
|
|
111
|
-
|
|
112
|
-
# 4. Stop and clean up containers
|
|
113
|
-
agent-browser stop
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
118
|
## 📖 Complete API Reference
|
|
119
119
|
|
|
120
120
|
For a complete list of all available commands (clicking, typing, tabbing, network interception, storage), please read the **[COMMANDS.md](./COMMANDS.md)** file.
|
|
@@ -125,7 +125,7 @@ For a complete list of all available commands (clicking, typing, tabbing, networ
|
|
|
125
125
|
|
|
126
126
|
### `Error: Timed out waiting for Agent Daemon on port 32001`
|
|
127
127
|
- **Cause**: The Android container took too long to download or boot, or your machine is slow. (We wait 3 minutes by default).
|
|
128
|
-
- **Fix**: Run `agent
|
|
128
|
+
- **Fix**: Run `agent-browser stop` and try `agent-browser start` again. The Docker images might still be downloading in the background.
|
|
129
129
|
|
|
130
130
|
### `net::ERR_NAME_NOT_RESOLVED`
|
|
131
131
|
- **Cause**: The Android Emulator temporarily lost its internet connection after a Warm Boot.
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAQA,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;gBAEhB,QAAQ,EAAE,OAAO;IAI7B,OAAO,CAAC,GAAG;IAWX,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,YAAY;YASN,mBAAmB;YAkBnB,WAAW;IAcZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqGtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DnC,OAAO,CAAC,UAAU;CAgCnB"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import { spawn, execSync } from 'child_process';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import fs from 'fs';
|
|
4
3
|
import { fileURLToPath } from 'url';
|
|
5
4
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
6
5
|
const PROJECT_ROOT = path.resolve(__dirname, '..');
|
|
7
|
-
const CACHE_DIR = path.join(PROJECT_ROOT, 'cache');
|
|
8
|
-
const SNAPSHOT_DIR = path.join(CACHE_DIR, 'snapshots', 'quickboot');
|
|
9
6
|
export class Orchestrator {
|
|
10
7
|
composeFile;
|
|
11
8
|
constructor(distMode) {
|
|
12
9
|
this.composeFile = path.join(PROJECT_ROOT, distMode ? 'docker-compose.sdk.yml' : 'docker-compose.prod.yml');
|
|
13
|
-
// Ensure cache dir exists
|
|
14
|
-
if (!fs.existsSync(path.join(CACHE_DIR, 'snapshots'))) {
|
|
15
|
-
fs.mkdirSync(path.join(CACHE_DIR, 'snapshots'), { recursive: true });
|
|
16
|
-
}
|
|
17
10
|
}
|
|
18
11
|
log(msg, level = 'info') {
|
|
19
12
|
const colors = {
|
|
@@ -70,12 +63,25 @@ export class Orchestrator {
|
|
|
70
63
|
this.log(`Failed to download images after ${maxRetries} attempts. Check internet connection.`, 'error');
|
|
71
64
|
process.exit(1);
|
|
72
65
|
}
|
|
66
|
+
async hasSnapshot() {
|
|
67
|
+
try {
|
|
68
|
+
// 1. Check if volume exists
|
|
69
|
+
execSync(`docker volume inspect agent-snapshots`, { stdio: 'ignore' });
|
|
70
|
+
// 2. Check if volume contains the 'quickboot' directory
|
|
71
|
+
// We use a tiny helper container to look inside the managed volume
|
|
72
|
+
const output = execSync(`docker run --rm -v agent-snapshots:/data busybox ls /data`, { encoding: 'utf-8' });
|
|
73
|
+
return output.includes('quickboot');
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
73
79
|
async start() {
|
|
74
80
|
this.log(`Initializing Agent Environment...`, 'info');
|
|
75
81
|
await this.pullImagesWithRetry();
|
|
76
82
|
this.log("Cleaning up previous container state...", 'info');
|
|
77
83
|
this.runCommand(`docker compose -f "${this.composeFile}" down -v --remove-orphans`);
|
|
78
|
-
const hasSnapshot =
|
|
84
|
+
const hasSnapshot = await this.hasSnapshot();
|
|
79
85
|
if (hasSnapshot) {
|
|
80
86
|
// === WARM START ===
|
|
81
87
|
this.log("Found cached baseline snapshot. Performing HYPER-SPEED WARM BOOT...", 'success');
|
|
@@ -96,11 +102,8 @@ export class Orchestrator {
|
|
|
96
102
|
EMULATOR_SNAPSHOT_NAME: 'quickboot'
|
|
97
103
|
});
|
|
98
104
|
}
|
|
99
|
-
this.log("Waiting for Daemon Connection...");
|
|
100
|
-
if (agentCont)
|
|
101
|
-
await this.waitForLog(agentCont, "Daemon listening on TCP");
|
|
102
105
|
if (androidCont) {
|
|
103
|
-
this.log("Rehydrating Android network connection...");
|
|
106
|
+
this.log("Rehydrating Android network connection...", 'info');
|
|
104
107
|
try {
|
|
105
108
|
execSync(`docker exec "${androidCont}" adb shell cmd connectivity airplane-mode enable`, { stdio: 'ignore' });
|
|
106
109
|
await new Promise(r => setTimeout(r, 2000));
|
|
@@ -111,6 +114,9 @@ export class Orchestrator {
|
|
|
111
114
|
this.log(`Network rehydration warning: ${e}`, 'warn');
|
|
112
115
|
}
|
|
113
116
|
}
|
|
117
|
+
this.log("Waiting for Daemon Connection...");
|
|
118
|
+
if (agentCont)
|
|
119
|
+
await this.waitForLog(agentCont, "Daemon listening on TCP", 180000);
|
|
114
120
|
}
|
|
115
121
|
else {
|
|
116
122
|
// === COLD START ===
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/docker-compose.sdk.yml
CHANGED
|
@@ -20,7 +20,7 @@ services:
|
|
|
20
20
|
- /dev/kvm:/dev/kvm
|
|
21
21
|
volumes:
|
|
22
22
|
- avd-data:/root/.android
|
|
23
|
-
-
|
|
23
|
+
- agent-snapshots:/root/.android/avd/Pixel_6_API_34.avd/snapshots
|
|
24
24
|
healthcheck:
|
|
25
25
|
test: ["CMD", "curl", "-f", "http://localhost:9224/json/version"]
|
|
26
26
|
interval: 10s
|
|
@@ -49,6 +49,7 @@ services:
|
|
|
49
49
|
|
|
50
50
|
volumes:
|
|
51
51
|
avd-data:
|
|
52
|
+
agent-snapshots:
|
|
52
53
|
|
|
53
54
|
networks:
|
|
54
55
|
agent-network:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kritchoff/agent-browser",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Headless browser automation CLI for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -45,12 +45,12 @@
|
|
|
45
45
|
"license": "Apache-2.0",
|
|
46
46
|
"repository": {
|
|
47
47
|
"type": "git",
|
|
48
|
-
"url": "git+https://github.com/
|
|
48
|
+
"url": "git+https://github.com/kritagya-khanna/agent-browser.git"
|
|
49
49
|
},
|
|
50
50
|
"bugs": {
|
|
51
|
-
"url": "https://github.com/
|
|
51
|
+
"url": "https://github.com/kritagya-khanna/agent-browser/issues"
|
|
52
52
|
},
|
|
53
|
-
"homepage": "https://github.com/
|
|
53
|
+
"homepage": "https://github.com/kritagya-khanna/agent-browser#readme",
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"node-simctl": "^7.4.0",
|
|
56
56
|
"playwright-core": "^1.57.0",
|