@kritchoff/agent-browser 0.9.14 → 0.9.16

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/dist/index.d.ts CHANGED
@@ -5,29 +5,11 @@ export interface AgentOptions {
5
5
  */
6
6
  dist?: boolean;
7
7
  }
8
- /**
9
- * WootzAgent SDK
10
- *
11
- * A high-level, Playwright-compatible API for controlling the WootzApp Android Agent.
12
- * Handles environment lifecycle (VDI snapshots, fast resets) and browser automation.
13
- */
14
8
  export declare class WootzAgent {
15
9
  private options;
16
10
  constructor(options?: AgentOptions);
17
- /**
18
- * Start the Agent Environment.
19
- * - First run: Cold boot (~60s), creates baseline snapshot.
20
- * - Subsequent runs: Warm boot (~20s) using snapshot.
21
- */
22
11
  start(): Promise<void>;
23
- /**
24
- * Stop the Agent Environment (graceful shutdown).
25
- */
26
12
  stop(): Promise<void>;
27
- /**
28
- * Fast Reset (~15s).
29
- * Restarts the Android framework and browser to a clean state.
30
- */
31
13
  reset(): Promise<void>;
32
14
  navigate(url: string, waitUntil?: 'load' | 'domcontentloaded' | 'networkidle'): Promise<string>;
33
15
  click(selector: string): Promise<string>;
@@ -40,9 +22,6 @@ export declare class WootzAgent {
40
22
  focus(selector: string): Promise<string>;
41
23
  press(key: string, selector?: string): Promise<string>;
42
24
  selectOption(selector: string, value: string | string[]): Promise<string>;
43
- /**
44
- * Get an accessibility snapshot (AXTree) of the current page.
45
- */
46
25
  snapshot(): Promise<string>;
47
26
  innerText(selector: string): Promise<string>;
48
27
  innerHTML(selector: string): Promise<string>;
@@ -58,22 +37,29 @@ export declare class WootzAgent {
58
37
  goBack(): Promise<string>;
59
38
  goForward(): Promise<string>;
60
39
  getByRole(role: string, name?: string, exact?: boolean): Promise<string>;
61
- getByText(text: string, exact?: boolean): Promise<string>;
62
- getByPlaceholder(placeholder: string, exact?: boolean): Promise<string>;
63
- getByTestId(testId: string): Promise<string>;
64
40
  screenshot(path?: string): Promise<string>;
65
41
  scroll(x: number, y: number): Promise<string>;
66
- evaluate(script: string): Promise<string>;
42
+ evaluate(script: string): Promise<any>;
67
43
  newTab(url?: string): Promise<string>;
68
44
  switchTab(index: number): Promise<string>;
69
45
  closeTab(index?: number): Promise<string>;
70
- listTabs(): Promise<string>;
46
+ listTabs(): Promise<any[]>;
71
47
  /**
72
48
  * Execute an arbitrary agent command CLI-style.
73
- * Returns the command output as a string.
49
+ * e.g. agent.command('open', 'https://google.com')
50
+ * This legacy method parses string args into a JSON command.
51
+ */
52
+ command(action: string, ...args: string[]): Promise<string>;
53
+ /**
54
+ * Send a raw JSON command to the daemon via TCP.
55
+ * @param command The command object (must include 'action')
56
+ * @param returnData If true, return the 'data' object. If false, return a success message.
57
+ */
58
+ private sendCommand;
59
+ /**
60
+ * Run a shell script (for start/stop/reset infrastructure)
74
61
  */
75
- command(...args: string[]): Promise<string>;
76
- private runSdkCommand;
62
+ private runSdkScript;
77
63
  }
78
64
  export default WootzAgent;
79
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,227 +1,286 @@
1
1
  import { spawn } from 'child_process';
2
2
  import path from 'path';
3
3
  import { fileURLToPath } from 'url';
4
+ import * as net from 'net';
5
+ import { randomUUID } from 'crypto';
4
6
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
7
  const SDK_SCRIPT = path.resolve(__dirname, '../sdk.sh');
6
- /**
7
- * WootzAgent SDK
8
- *
9
- * A high-level, Playwright-compatible API for controlling the WootzApp Android Agent.
10
- * Handles environment lifecycle (VDI snapshots, fast resets) and browser automation.
11
- */
8
+ const DAEMON_PORT = 3000;
12
9
  export class WootzAgent {
13
10
  options;
14
11
  constructor(options = {}) {
15
12
  this.options = {
16
- dist: true,
13
+ dist: true, // Default to distribution mode for end users
17
14
  ...options,
18
15
  };
19
16
  }
20
- // --- Lifecycle Management ---
21
- /**
22
- * Start the Agent Environment.
23
- * - First run: Cold boot (~60s), creates baseline snapshot.
24
- * - Subsequent runs: Warm boot (~20s) using snapshot.
25
- */
17
+ // --- Lifecycle Management (Infrastructure) ---
26
18
  async start() {
27
19
  const args = [];
28
20
  if (this.options.dist) {
29
21
  args.push('--dist');
30
22
  }
31
23
  args.push('start');
32
- await this.runSdkCommand(args);
24
+ await this.runSdkScript(args);
33
25
  }
34
- /**
35
- * Stop the Agent Environment (graceful shutdown).
36
- */
37
26
  async stop() {
38
27
  const args = [];
39
28
  if (this.options.dist) {
40
29
  args.push('--dist');
41
30
  }
42
31
  args.push('stop');
43
- await this.runSdkCommand(args);
32
+ await this.runSdkScript(args);
44
33
  }
45
- /**
46
- * Fast Reset (~15s).
47
- * Restarts the Android framework and browser to a clean state.
48
- */
49
34
  async reset() {
50
- await this.runSdkCommand(['reset']);
35
+ await this.runSdkScript(['reset']);
51
36
  }
52
- // --- Core Browser Actions ---
37
+ // --- Core Browser Actions (Direct Daemon) ---
53
38
  async navigate(url, waitUntil = 'load') {
54
- return await this.command('navigate', url, `--waitUntil=${waitUntil}`);
39
+ return await this.sendCommand({ action: 'navigate', url, waitUntil });
55
40
  }
56
41
  async click(selector) {
57
- return await this.command('click', selector);
42
+ return await this.sendCommand({ action: 'click', selector });
58
43
  }
59
44
  async doubleClick(selector) {
60
- return await this.command('dblclick', selector);
45
+ return await this.sendCommand({ action: 'dblclick', selector });
61
46
  }
62
47
  async type(selector, text, delay) {
63
- const args = ['type', selector, text];
64
- if (delay)
65
- args.push(`--delay=${delay}`);
66
- return await this.command(...args);
48
+ return await this.sendCommand({ action: 'type', selector, text, delay });
67
49
  }
68
50
  async fill(selector, value) {
69
- return await this.command('fill', selector, value);
51
+ return await this.sendCommand({ action: 'fill', selector, value });
70
52
  }
71
53
  async check(selector) {
72
- return await this.command('check', selector);
54
+ return await this.sendCommand({ action: 'check', selector });
73
55
  }
74
56
  async uncheck(selector) {
75
- return await this.command('uncheck', selector);
57
+ return await this.sendCommand({ action: 'uncheck', selector });
76
58
  }
77
59
  async hover(selector) {
78
- return await this.command('hover', selector);
60
+ return await this.sendCommand({ action: 'hover', selector });
79
61
  }
80
62
  async focus(selector) {
81
- return await this.command('focus', selector);
63
+ return await this.sendCommand({ action: 'focus', selector });
82
64
  }
83
65
  async press(key, selector) {
84
- if (selector)
85
- return await this.command('press', selector, key);
86
- return await this.command('press', key);
66
+ return await this.sendCommand({ action: 'press', key, selector });
87
67
  }
88
68
  async selectOption(selector, value) {
89
- const val = Array.isArray(value) ? value.join(',') : value;
90
- return await this.command('select', selector, val);
69
+ return await this.sendCommand({ action: 'select', selector, values: value });
91
70
  }
92
71
  // --- Introspection & State ---
93
- /**
94
- * Get an accessibility snapshot (AXTree) of the current page.
95
- */
96
72
  async snapshot() {
97
- return await this.command('snapshot');
73
+ // We request the raw response data for the snapshot
74
+ const result = await this.sendCommand({ action: 'snapshot' }, true);
75
+ // The daemon returns { snapshot: "...", refs: ... }
76
+ return result.snapshot || '';
98
77
  }
99
78
  async innerText(selector) {
100
- return await this.command('innertext', selector);
79
+ const res = await this.sendCommand({ action: 'innertext', selector }, true);
80
+ return res.text;
101
81
  }
102
82
  async innerHTML(selector) {
103
- return await this.command('innerhtml', selector);
83
+ const res = await this.sendCommand({ action: 'innerhtml', selector }, true);
84
+ return res.html;
104
85
  }
105
86
  async getAttribute(selector, attribute) {
106
- return await this.command('getattribute', selector, attribute);
87
+ const res = await this.sendCommand({ action: 'getattribute', selector, attribute }, true);
88
+ return res.value;
107
89
  }
108
90
  async inputValue(selector) {
109
- return await this.command('inputvalue', selector);
91
+ const res = await this.sendCommand({ action: 'inputvalue', selector }, true);
92
+ return res.value;
110
93
  }
111
94
  async isVisible(selector) {
112
- const out = await this.command('isvisible', selector);
113
- return out.includes('true');
95
+ const res = await this.sendCommand({ action: 'isvisible', selector }, true);
96
+ return res.visible;
114
97
  }
115
98
  async isEnabled(selector) {
116
- const out = await this.command('isenabled', selector);
117
- return out.includes('true');
99
+ const res = await this.sendCommand({ action: 'isenabled', selector }, true);
100
+ return res.enabled;
118
101
  }
119
102
  async isChecked(selector) {
120
- const out = await this.command('ischecked', selector);
121
- return out.includes('true');
103
+ const res = await this.sendCommand({ action: 'ischecked', selector }, true);
104
+ return res.checked;
122
105
  }
123
106
  // --- Waiting & Navigation ---
124
107
  async waitForSelector(selector, state = 'visible', timeout) {
125
- const args = ['wait', selector, `--state=${state}`];
126
- if (timeout)
127
- args.push(`--timeout=${timeout}`);
128
- return await this.command(...args);
108
+ return await this.sendCommand({ action: 'wait', selector, state, timeout });
129
109
  }
130
110
  async waitForTimeout(ms) {
131
- return await this.command('wait', ms.toString());
111
+ return await this.sendCommand({ action: 'wait', timeout: ms });
132
112
  }
133
113
  async waitForLoadState(state = 'load') {
134
- return await this.command('wait', `--state=${state}`);
114
+ return await this.sendCommand({ action: 'waitforloadstate', state });
135
115
  }
136
116
  async reload() {
137
- return await this.command('reload');
117
+ return await this.sendCommand({ action: 'reload' });
138
118
  }
139
119
  async goBack() {
140
- return await this.command('back');
120
+ return await this.sendCommand({ action: 'back' });
141
121
  }
142
122
  async goForward() {
143
- return await this.command('forward');
123
+ return await this.sendCommand({ action: 'forward' });
144
124
  }
145
125
  // --- Semantic Locators ---
146
126
  async getByRole(role, name, exact = false) {
147
- const args = ['getbyrole', role];
148
- if (name)
149
- args.push(`--name="${name}"`);
150
- if (exact)
151
- args.push('--exact');
152
- return await this.command(...args);
153
- }
154
- async getByText(text, exact = false) {
155
- const args = ['getbytext', text];
156
- if (exact)
157
- args.push('--exact');
158
- return await this.command(...args);
159
- }
160
- async getByPlaceholder(placeholder, exact = false) {
161
- const args = ['getbyplaceholder', placeholder];
162
- if (exact)
163
- args.push('--exact');
164
- return await this.command(...args);
165
- }
166
- async getByTestId(testId) {
167
- return await this.command('getbytestid', testId);
127
+ // Currently mapping to generic command, or implement specific logic if daemon supports getbyrole directly
128
+ // The daemon supports 'getbyrole', so we pass it through
129
+ // subaction is required by daemon logic for these commands to do something (click/fill etc) immediately?
130
+ // Wait, the daemon logic for getbyrole requires a 'subaction'. This API style is slightly different.
131
+ // For now, let's map to the generic command pass-through which might just return the selector?
132
+ // Actually, the daemon requires subaction. So "getByRole" alone isn't a stateful return like Playwright.
133
+ // It performs an action immediately.
134
+ // Let's defer strict implementation of these "Locator" builders for now and rely on selectors or direct actions.
135
+ throw new Error("Locator builders (getByRole) are not fully supported in stateless mode yet. Use standard selectors.");
168
136
  }
169
137
  // --- Utilities ---
170
138
  async screenshot(path) {
171
- return await this.command('screenshot', path || '');
139
+ const res = await this.sendCommand({ action: 'screenshot', path }, true);
140
+ return res.path;
172
141
  }
173
142
  async scroll(x, y) {
174
- return await this.command('scroll', x.toString(), y.toString());
143
+ return await this.sendCommand({ action: 'scroll', x, y });
175
144
  }
176
145
  async evaluate(script) {
177
- return await this.command('evaluate', script);
146
+ const res = await this.sendCommand({ action: 'evaluate', script }, true);
147
+ return res.result;
178
148
  }
179
149
  // --- Tab Management ---
180
150
  async newTab(url) {
181
- const args = ['tab_new'];
182
- if (url)
183
- args.push(url);
184
- return await this.command(...args);
151
+ return await this.sendCommand({ action: 'tab_new', url });
185
152
  }
186
153
  async switchTab(index) {
187
- return await this.command('tab_switch', index.toString());
154
+ return await this.sendCommand({ action: 'tab_switch', index });
188
155
  }
189
156
  async closeTab(index) {
190
- const args = ['tab_close'];
191
- if (index !== undefined)
192
- args.push(index.toString());
193
- return await this.command(...args);
157
+ return await this.sendCommand({ action: 'tab_close', index });
194
158
  }
195
159
  async listTabs() {
196
- return await this.command('tab_list');
160
+ const res = await this.sendCommand({ action: 'tab_list' }, true);
161
+ return res.tabs;
197
162
  }
198
163
  // --- Generic Execution ---
199
164
  /**
200
165
  * Execute an arbitrary agent command CLI-style.
201
- * Returns the command output as a string.
166
+ * e.g. agent.command('open', 'https://google.com')
167
+ * This legacy method parses string args into a JSON command.
168
+ */
169
+ async command(action, ...args) {
170
+ // Map legacy CLI args to JSON command object manually for common cases
171
+ // Or simpler: We can keep the CLI wrapper logic if we want, OR
172
+ // we can try to construct the object.
173
+ // For robustness, let's map the most common ones.
174
+ const cmd = { action };
175
+ if (action === 'open' || action === 'navigate') {
176
+ cmd.action = 'navigate';
177
+ cmd.url = args[0];
178
+ }
179
+ else if (action === 'click') {
180
+ cmd.selector = args[0];
181
+ }
182
+ else if (action === 'type') {
183
+ cmd.selector = args[0];
184
+ cmd.text = args[1];
185
+ }
186
+ else if (action === 'press') {
187
+ cmd.key = args[0];
188
+ }
189
+ else if (action === 'scroll') {
190
+ cmd.x = parseInt(args[0] || '0');
191
+ cmd.y = parseInt(args[1] || '0');
192
+ }
193
+ else if (action === 'wait') {
194
+ // heuristic for selector vs number
195
+ if (/^\d+$/.test(args[0]))
196
+ cmd.timeout = parseInt(args[0]);
197
+ else
198
+ cmd.selector = args[0];
199
+ }
200
+ else {
201
+ // Fallback for unknown commands: pass args as properties if we can guess?
202
+ // Actually, for arbitrary commands, it's safer to rely on specific methods.
203
+ // But for CLI usage, we might just pass the first arg as 'selector' or 'url' depending on action name.
204
+ if (args[0])
205
+ cmd.selector = args[0];
206
+ if (args[1])
207
+ cmd.text = args[1] || args[1]; // value/text
208
+ }
209
+ const res = await this.sendCommand(cmd, true);
210
+ // For CLI output, we want a string representation
211
+ if (typeof res === 'object') {
212
+ // If it has specific fields like 'text', 'url', return those
213
+ if (res.text)
214
+ return res.text;
215
+ if (res.url)
216
+ return res.url;
217
+ if (res.snapshot)
218
+ return res.snapshot;
219
+ return JSON.stringify(res);
220
+ }
221
+ return String(res);
222
+ }
223
+ /**
224
+ * Send a raw JSON command to the daemon via TCP.
225
+ * @param command The command object (must include 'action')
226
+ * @param returnData If true, return the 'data' object. If false, return a success message.
202
227
  */
203
- async command(...args) {
204
- return await this.runSdkCommand(['agent', ...args]);
228
+ sendCommand(command, returnData = false) {
229
+ return new Promise((resolve, reject) => {
230
+ // Ensure ID exists
231
+ if (!command.id)
232
+ command.id = randomUUID();
233
+ const client = new net.Socket();
234
+ // Connect to localhost:3000
235
+ client.connect(DAEMON_PORT, '127.0.0.1', () => {
236
+ client.write(JSON.stringify(command) + '\n');
237
+ });
238
+ let responseBuffer = '';
239
+ client.on('data', (data) => {
240
+ responseBuffer += data.toString();
241
+ // Check for newline (end of response)
242
+ if (responseBuffer.includes('\n')) {
243
+ client.end();
244
+ }
245
+ });
246
+ client.on('end', () => {
247
+ try {
248
+ const response = JSON.parse(responseBuffer.trim());
249
+ if (response.success) {
250
+ resolve(returnData ? response.data : 'OK');
251
+ }
252
+ else {
253
+ reject(new Error(response.error || 'Unknown error'));
254
+ }
255
+ }
256
+ catch (e) {
257
+ reject(new Error(`Invalid response from daemon: ${responseBuffer}`));
258
+ }
259
+ });
260
+ client.on('error', (err) => {
261
+ reject(new Error(`Failed to connect to agent daemon (is it running?): ${err.message}`));
262
+ });
263
+ });
205
264
  }
206
- runSdkCommand(args) {
265
+ /**
266
+ * Run a shell script (for start/stop/reset infrastructure)
267
+ */
268
+ runSdkScript(args) {
207
269
  return new Promise((resolve, reject) => {
270
+ console.log(`[WootzAgent] Running: sdk.sh ${args.join(' ')}`);
208
271
  const child = spawn(SDK_SCRIPT, args, {
209
- stdio: ['inherit', 'pipe', 'inherit'], // Capture stdout, inherit stderr for logs
272
+ stdio: ['inherit', 'pipe', 'inherit'],
210
273
  shell: true,
211
274
  });
212
- let output = '';
213
275
  child.stdout?.on('data', (data) => {
214
- const str = data.toString();
215
- output += str;
216
- // Stream output to terminal for observability
217
- process.stdout.write(str);
276
+ process.stdout.write(data);
218
277
  });
219
278
  child.on('error', (err) => {
220
279
  reject(new Error(`Failed to start SDK script: ${err.message}`));
221
280
  });
222
281
  child.on('close', (code) => {
223
282
  if (code === 0) {
224
- resolve(output.trim());
283
+ resolve();
225
284
  }
226
285
  else {
227
286
  reject(new Error(`SDK script exited with code ${code}`));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kritchoff/agent-browser",
3
- "version": "0.9.14",
3
+ "version": "0.9.16",
4
4
  "description": "Headless browser automation CLI for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",