browser-use 0.2.0 → 0.3.0
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 +295 -686
- package/dist/actor/element.d.ts +19 -0
- package/dist/actor/element.js +46 -0
- package/dist/actor/index.d.ts +4 -0
- package/dist/actor/index.js +4 -0
- package/dist/actor/mouse.d.ts +19 -0
- package/dist/actor/mouse.js +39 -0
- package/dist/actor/page.d.ts +29 -0
- package/dist/actor/page.js +88 -0
- package/dist/actor/utils.d.ts +4 -0
- package/dist/actor/utils.js +35 -0
- package/dist/agent/cloud-events.d.ts +18 -0
- package/dist/agent/cloud-events.js +65 -2
- package/dist/agent/gif.d.ts +1 -0
- package/dist/agent/gif.js +24 -2
- package/dist/agent/judge.d.ts +17 -0
- package/dist/agent/judge.js +197 -0
- package/dist/agent/message-manager/service.d.ts +12 -4
- package/dist/agent/message-manager/service.js +205 -39
- package/dist/agent/message-manager/utils.js +0 -1
- package/dist/agent/message-manager/views.d.ts +4 -0
- package/dist/agent/message-manager/views.js +11 -7
- package/dist/agent/prompts.d.ts +24 -3
- package/dist/agent/prompts.js +274 -59
- package/dist/agent/service.d.ts +99 -41
- package/dist/agent/service.js +2266 -472
- package/dist/agent/variable-detector.d.ts +12 -0
- package/dist/agent/variable-detector.js +211 -0
- package/dist/agent/views.d.ts +237 -18
- package/dist/agent/views.js +446 -33
- package/dist/browser/cloud/cloud.d.ts +20 -0
- package/dist/browser/cloud/cloud.js +129 -0
- package/dist/browser/cloud/index.d.ts +2 -0
- package/dist/browser/cloud/index.js +2 -0
- package/dist/browser/cloud/views.d.ts +41 -0
- package/dist/browser/cloud/views.js +35 -0
- package/dist/browser/events.d.ts +345 -0
- package/dist/browser/events.js +566 -0
- package/dist/browser/extensions.js +17 -17
- package/dist/browser/index.d.ts +4 -0
- package/dist/browser/index.js +4 -0
- package/dist/browser/profile.d.ts +8 -2
- package/dist/browser/profile.js +79 -12
- package/dist/browser/session-manager.d.ts +85 -0
- package/dist/browser/session-manager.js +208 -0
- package/dist/browser/session.d.ts +100 -8
- package/dist/browser/session.js +1097 -58
- package/dist/browser/types.d.ts +0 -2
- package/dist/browser/views.d.ts +39 -0
- package/dist/browser/views.js +32 -0
- package/dist/browser/watchdogs/aboutblank-watchdog.d.ts +12 -0
- package/dist/browser/watchdogs/aboutblank-watchdog.js +131 -0
- package/dist/browser/watchdogs/base.d.ts +21 -0
- package/dist/browser/watchdogs/base.js +81 -0
- package/dist/browser/watchdogs/cdp-session-watchdog.d.ts +14 -0
- package/dist/browser/watchdogs/cdp-session-watchdog.js +177 -0
- package/dist/browser/watchdogs/crash-watchdog.d.ts +38 -0
- package/dist/browser/watchdogs/crash-watchdog.js +296 -0
- package/dist/browser/watchdogs/default-action-watchdog.d.ts +49 -0
- package/dist/browser/watchdogs/default-action-watchdog.js +212 -0
- package/dist/browser/watchdogs/dom-watchdog.d.ts +8 -0
- package/dist/browser/watchdogs/dom-watchdog.js +31 -0
- package/dist/browser/watchdogs/downloads-watchdog.d.ts +77 -0
- package/dist/browser/watchdogs/downloads-watchdog.js +409 -0
- package/dist/browser/watchdogs/har-recording-watchdog.d.ts +19 -0
- package/dist/browser/watchdogs/har-recording-watchdog.js +317 -0
- package/dist/browser/watchdogs/index.d.ts +15 -0
- package/dist/browser/watchdogs/index.js +15 -0
- package/dist/browser/watchdogs/local-browser-watchdog.d.ts +10 -0
- package/dist/browser/watchdogs/local-browser-watchdog.js +32 -0
- package/dist/browser/watchdogs/permissions-watchdog.d.ts +8 -0
- package/dist/browser/watchdogs/permissions-watchdog.js +73 -0
- package/dist/browser/watchdogs/popups-watchdog.d.ts +13 -0
- package/dist/browser/watchdogs/popups-watchdog.js +77 -0
- package/dist/browser/watchdogs/recording-watchdog.d.ts +27 -0
- package/dist/browser/watchdogs/recording-watchdog.js +249 -0
- package/dist/browser/watchdogs/screenshot-watchdog.d.ts +6 -0
- package/dist/browser/watchdogs/screenshot-watchdog.js +13 -0
- package/dist/browser/watchdogs/security-watchdog.d.ts +10 -0
- package/dist/browser/watchdogs/security-watchdog.js +84 -0
- package/dist/browser/watchdogs/storage-state-watchdog.d.ts +24 -0
- package/dist/browser/watchdogs/storage-state-watchdog.js +288 -0
- package/dist/cli.d.ts +7 -2
- package/dist/cli.js +182 -25
- package/dist/code-use/formatting.d.ts +3 -0
- package/dist/code-use/formatting.js +18 -0
- package/dist/code-use/index.d.ts +6 -0
- package/dist/code-use/index.js +6 -0
- package/dist/code-use/namespace.d.ts +5 -0
- package/dist/code-use/namespace.js +81 -0
- package/dist/code-use/notebook-export.d.ts +3 -0
- package/dist/code-use/notebook-export.js +56 -0
- package/dist/code-use/service.d.ts +24 -0
- package/dist/code-use/service.js +104 -0
- package/dist/code-use/utils.d.ts +4 -0
- package/dist/code-use/utils.js +98 -0
- package/dist/code-use/views.d.ts +108 -0
- package/dist/code-use/views.js +165 -0
- package/dist/config.d.ts +13 -0
- package/dist/config.js +69 -3
- package/dist/controller/registry/service.d.ts +10 -1
- package/dist/controller/registry/service.js +266 -10
- package/dist/controller/registry/views.d.ts +4 -1
- package/dist/controller/registry/views.js +25 -2
- package/dist/controller/service.d.ts +10 -1
- package/dist/controller/service.js +1807 -268
- package/dist/controller/views.d.ts +78 -155
- package/dist/controller/views.js +61 -12
- package/dist/dom/history-tree-processor/service.d.ts +5 -0
- package/dist/dom/history-tree-processor/service.js +169 -14
- package/dist/dom/history-tree-processor/view.d.ts +7 -1
- package/dist/dom/history-tree-processor/view.js +10 -1
- package/dist/dom/markdown-extractor.d.ts +37 -0
- package/dist/dom/markdown-extractor.js +345 -0
- package/dist/dom/service.d.ts +3 -1
- package/dist/dom/service.js +76 -0
- package/dist/dom/views.d.ts +1 -0
- package/dist/dom/views.js +45 -0
- package/dist/event-bus.d.ts +107 -7
- package/dist/event-bus.js +313 -10
- package/dist/exceptions.d.ts +0 -3
- package/dist/exceptions.js +0 -7
- package/dist/filesystem/file-system.d.ts +18 -0
- package/dist/filesystem/file-system.js +503 -42
- package/dist/index.d.ts +7 -0
- package/dist/index.js +6 -0
- package/dist/integrations/gmail/actions.d.ts +3 -3
- package/dist/integrations/gmail/actions.js +4 -4
- package/dist/llm/anthropic/chat.d.ts +18 -1
- package/dist/llm/anthropic/chat.js +123 -55
- package/dist/llm/anthropic/serializer.d.ts +2 -0
- package/dist/llm/anthropic/serializer.js +81 -9
- package/dist/llm/aws/chat-anthropic.d.ts +17 -0
- package/dist/llm/aws/chat-anthropic.js +126 -26
- package/dist/llm/aws/chat-bedrock.d.ts +28 -1
- package/dist/llm/aws/chat-bedrock.js +161 -34
- package/dist/llm/aws/serializer.d.ts +13 -1
- package/dist/llm/aws/serializer.js +56 -17
- package/dist/llm/azure/chat.d.ts +53 -2
- package/dist/llm/azure/chat.js +366 -54
- package/dist/llm/base.d.ts +2 -0
- package/dist/llm/browser-use/chat.d.ts +40 -0
- package/dist/llm/browser-use/chat.js +305 -0
- package/dist/llm/browser-use/index.d.ts +1 -0
- package/dist/llm/browser-use/index.js +1 -0
- package/dist/llm/cerebras/chat.d.ts +39 -0
- package/dist/llm/cerebras/chat.js +178 -0
- package/dist/llm/cerebras/index.d.ts +2 -0
- package/dist/llm/cerebras/index.js +2 -0
- package/dist/llm/cerebras/serializer.d.ts +7 -0
- package/dist/llm/cerebras/serializer.js +82 -0
- package/dist/llm/deepseek/chat.d.ts +19 -2
- package/dist/llm/deepseek/chat.js +138 -25
- package/dist/llm/google/chat.d.ts +46 -2
- package/dist/llm/google/chat.js +267 -64
- package/dist/llm/google/serializer.d.ts +9 -1
- package/dist/llm/google/serializer.js +141 -34
- package/dist/llm/groq/chat.d.ts +21 -2
- package/dist/llm/groq/chat.js +125 -26
- package/dist/llm/groq/parser.js +3 -1
- package/dist/llm/mistral/chat.d.ts +43 -0
- package/dist/llm/mistral/chat.js +154 -0
- package/dist/llm/mistral/index.d.ts +2 -0
- package/dist/llm/mistral/index.js +2 -0
- package/dist/llm/mistral/schema.d.ts +8 -0
- package/dist/llm/mistral/schema.js +27 -0
- package/dist/llm/models.d.ts +2 -0
- package/dist/llm/models.js +317 -0
- package/dist/llm/ollama/chat.d.ts +13 -1
- package/dist/llm/ollama/chat.js +110 -19
- package/dist/llm/ollama/serializer.d.ts +1 -0
- package/dist/llm/ollama/serializer.js +34 -12
- package/dist/llm/openai/chat.d.ts +16 -0
- package/dist/llm/openai/chat.js +94 -44
- package/dist/llm/openai/like.d.ts +5 -3
- package/dist/llm/openai/like.js +7 -3
- package/dist/llm/openai/responses-serializer.d.ts +18 -0
- package/dist/llm/openai/responses-serializer.js +72 -0
- package/dist/llm/openrouter/chat.d.ts +28 -2
- package/dist/llm/openrouter/chat.js +115 -29
- package/dist/llm/schema.d.ts +11 -1
- package/dist/llm/schema.js +81 -1
- package/dist/llm/vercel/chat.d.ts +50 -0
- package/dist/llm/vercel/chat.js +276 -0
- package/dist/llm/vercel/index.d.ts +1 -0
- package/dist/llm/vercel/index.js +1 -0
- package/dist/llm/vercel/serializer.d.ts +5 -0
- package/dist/llm/vercel/serializer.js +7 -0
- package/dist/llm/views.d.ts +2 -1
- package/dist/llm/views.js +3 -1
- package/dist/logging-config.d.ts +2 -0
- package/dist/logging-config.js +82 -29
- package/dist/mcp/client.d.ts +10 -5
- package/dist/mcp/client.js +14 -9
- package/dist/mcp/controller.d.ts +42 -3
- package/dist/mcp/controller.js +56 -31
- package/dist/mcp/server.d.ts +14 -0
- package/dist/mcp/server.js +255 -52
- package/dist/observability.js +10 -4
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/sandbox/index.js +2 -0
- package/dist/sandbox/sandbox.d.ts +19 -0
- package/dist/sandbox/sandbox.js +140 -0
- package/dist/sandbox/views.d.ts +67 -0
- package/dist/sandbox/views.js +121 -0
- package/dist/skill-cli/index.d.ts +3 -0
- package/dist/skill-cli/index.js +3 -0
- package/dist/skill-cli/protocol.d.ts +30 -0
- package/dist/skill-cli/protocol.js +48 -0
- package/dist/skill-cli/server.d.ts +11 -0
- package/dist/skill-cli/server.js +85 -0
- package/dist/skill-cli/sessions.d.ts +24 -0
- package/dist/skill-cli/sessions.js +47 -0
- package/dist/skills/index.d.ts +3 -0
- package/dist/skills/index.js +3 -0
- package/dist/skills/service.d.ts +27 -0
- package/dist/skills/service.js +266 -0
- package/dist/skills/utils.d.ts +6 -0
- package/dist/skills/utils.js +53 -0
- package/dist/skills/views.d.ts +40 -0
- package/dist/skills/views.js +10 -0
- package/dist/sync/auth.js +8 -3
- package/dist/sync/service.d.ts +6 -6
- package/dist/sync/service.js +54 -89
- package/dist/telemetry/views.d.ts +20 -6
- package/dist/telemetry/views.js +23 -5
- package/dist/tokens/custom-pricing.d.ts +2 -0
- package/dist/tokens/custom-pricing.js +22 -0
- package/dist/tokens/index.d.ts +2 -0
- package/dist/tokens/index.js +2 -0
- package/dist/tokens/mappings.d.ts +1 -0
- package/dist/tokens/mappings.js +3 -0
- package/dist/tokens/service.js +27 -8
- package/dist/tools/extraction/index.d.ts +2 -0
- package/dist/tools/extraction/index.js +2 -0
- package/dist/tools/extraction/schema-utils.d.ts +6 -0
- package/dist/tools/extraction/schema-utils.js +237 -0
- package/dist/tools/extraction/views.d.ts +7 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/registry/index.d.ts +2 -0
- package/dist/tools/registry/index.js +2 -0
- package/dist/tools/registry/service.d.ts +1 -0
- package/dist/tools/registry/service.js +1 -0
- package/dist/tools/registry/views.d.ts +1 -0
- package/dist/tools/registry/views.js +1 -0
- package/dist/tools/service.d.ts +2 -0
- package/dist/tools/service.js +1 -0
- package/dist/tools/utils.d.ts +2 -0
- package/dist/tools/utils.js +57 -0
- package/dist/tools/views.d.ts +1 -0
- package/dist/tools/views.js +1 -0
- package/dist/utils.d.ts +10 -1
- package/dist/utils.js +70 -3
- package/package.json +87 -26
- package/dist/dom/playground/process-dom.js +0 -5
- package/dist/dom/playground/test-accessibility.d.ts +0 -44
- package/dist/dom/playground/test-accessibility.js +0 -111
- /package/dist/{dom/playground/process-dom.d.ts → tools/extraction/views.js} +0 -0
package/dist/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createLogger } from './logging-config.js';
|
|
1
2
|
type Callback = (() => void) | undefined;
|
|
2
3
|
export interface SignalHandlerOptions {
|
|
3
4
|
pause_callback?: Callback;
|
|
@@ -35,6 +36,14 @@ export declare const check_env_variables: (keys: string[], predicate?: (values:
|
|
|
35
36
|
export declare const is_unsafe_pattern: (pattern: string) => boolean;
|
|
36
37
|
export declare const merge_dicts: (a: Record<string, any>, b: Record<string, any>, path?: (string | number)[]) => Record<string, any>;
|
|
37
38
|
export declare const get_browser_use_version: () => string;
|
|
39
|
+
export declare const check_latest_browser_use_version: () => Promise<string | null>;
|
|
40
|
+
export interface CreateTaskWithErrorHandlingOptions {
|
|
41
|
+
name?: string;
|
|
42
|
+
logger_instance?: ReturnType<typeof createLogger>;
|
|
43
|
+
suppress_exceptions?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export declare const create_task_with_error_handling: <T>(promise: Promise<T>, options?: CreateTaskWithErrorHandlingOptions) => Promise<T | undefined>;
|
|
46
|
+
export declare const sanitize_surrogates: (text: string) => string;
|
|
38
47
|
export declare const get_git_info: () => Record<string, string> | null;
|
|
39
48
|
export declare const _log_pretty_path: (input: unknown) => string;
|
|
40
49
|
export declare const _log_pretty_url: (value: string, max_len?: number | null) => string;
|
|
@@ -107,7 +116,7 @@ export declare function createSemaphore(maxConcurrent: number): {
|
|
|
107
116
|
getQueueLength(): number;
|
|
108
117
|
};
|
|
109
118
|
/**
|
|
110
|
-
* Check if a URL is a new tab page (about:blank
|
|
119
|
+
* Check if a URL is a new tab page (about:blank, chrome://new-tab-page, or chrome://newtab).
|
|
111
120
|
*/
|
|
112
121
|
export declare function is_new_tab_page(url: string): boolean;
|
|
113
122
|
/**
|
package/dist/utils.js
CHANGED
|
@@ -8,11 +8,14 @@ import { stderr } from 'node:process';
|
|
|
8
8
|
import { performance } from 'node:perf_hooks';
|
|
9
9
|
import { fileURLToPath } from 'node:url';
|
|
10
10
|
import { config as loadEnv } from 'dotenv';
|
|
11
|
-
import
|
|
11
|
+
import * as minimatchModule from 'minimatch';
|
|
12
12
|
import { createLogger } from './logging-config.js';
|
|
13
13
|
loadEnv();
|
|
14
14
|
const logger = createLogger('browser_use.utils');
|
|
15
15
|
let _exiting = false;
|
|
16
|
+
const minimatch = (minimatchModule.minimatch ??
|
|
17
|
+
minimatchModule.default ??
|
|
18
|
+
minimatchModule);
|
|
16
19
|
export class SignalHandler {
|
|
17
20
|
loop = null;
|
|
18
21
|
pause_callback;
|
|
@@ -240,6 +243,68 @@ export const get_browser_use_version = () => {
|
|
|
240
243
|
}
|
|
241
244
|
return 'unknown';
|
|
242
245
|
};
|
|
246
|
+
export const check_latest_browser_use_version = async () => {
|
|
247
|
+
const controller = new AbortController();
|
|
248
|
+
const timeout = setTimeout(() => controller.abort(), 3000);
|
|
249
|
+
timeout.unref?.();
|
|
250
|
+
try {
|
|
251
|
+
const response = await fetch('https://registry.npmjs.org/browser-use/latest', {
|
|
252
|
+
method: 'GET',
|
|
253
|
+
headers: {
|
|
254
|
+
Accept: 'application/json',
|
|
255
|
+
},
|
|
256
|
+
signal: controller.signal,
|
|
257
|
+
});
|
|
258
|
+
if (!response.ok) {
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
const payload = (await response.json());
|
|
262
|
+
if (typeof payload.version === 'string' && payload.version.trim()) {
|
|
263
|
+
return payload.version.trim();
|
|
264
|
+
}
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
clearTimeout(timeout);
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
export const create_task_with_error_handling = (promise, options = {}) => {
|
|
275
|
+
const { name = 'unnamed', logger_instance, suppress_exceptions = false, } = options;
|
|
276
|
+
const log = logger_instance ?? logger;
|
|
277
|
+
return promise.catch((error) => {
|
|
278
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
279
|
+
if (suppress_exceptions) {
|
|
280
|
+
log.error(`Exception in background task [${name}]: ${message}`);
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
log.warning(`Exception in background task [${name}]: ${message}`);
|
|
284
|
+
throw error;
|
|
285
|
+
});
|
|
286
|
+
};
|
|
287
|
+
export const sanitize_surrogates = (text) => {
|
|
288
|
+
let result = '';
|
|
289
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
290
|
+
const code = text.charCodeAt(index);
|
|
291
|
+
// High surrogate
|
|
292
|
+
if (code >= 0xd800 && code <= 0xdbff) {
|
|
293
|
+
const nextCode = index + 1 < text.length ? text.charCodeAt(index + 1) : null;
|
|
294
|
+
if (nextCode != null && nextCode >= 0xdc00 && nextCode <= 0xdfff) {
|
|
295
|
+
result += text[index] + text[index + 1];
|
|
296
|
+
index += 1;
|
|
297
|
+
}
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
// Low surrogate without preceding high surrogate
|
|
301
|
+
if (code >= 0xdc00 && code <= 0xdfff) {
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
result += text[index];
|
|
305
|
+
}
|
|
306
|
+
return result;
|
|
307
|
+
};
|
|
243
308
|
let cached_git_info;
|
|
244
309
|
export const get_git_info = () => {
|
|
245
310
|
if (cached_git_info !== undefined) {
|
|
@@ -423,12 +488,14 @@ export function createSemaphore(maxConcurrent) {
|
|
|
423
488
|
};
|
|
424
489
|
}
|
|
425
490
|
/**
|
|
426
|
-
* Check if a URL is a new tab page (about:blank
|
|
491
|
+
* Check if a URL is a new tab page (about:blank, chrome://new-tab-page, or chrome://newtab).
|
|
427
492
|
*/
|
|
428
493
|
export function is_new_tab_page(url) {
|
|
429
494
|
return (url === 'about:blank' ||
|
|
430
495
|
url === 'chrome://new-tab-page/' ||
|
|
431
|
-
url === 'chrome://new-tab-page'
|
|
496
|
+
url === 'chrome://new-tab-page' ||
|
|
497
|
+
url === 'chrome://newtab/' ||
|
|
498
|
+
url === 'chrome://newtab');
|
|
432
499
|
}
|
|
433
500
|
/**
|
|
434
501
|
* Check if a URL matches a domain pattern. SECURITY CRITICAL.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browser-use",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A TypeScript-first library for programmatic browser control, designed for building AI-powered web agents.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -16,16 +16,36 @@
|
|
|
16
16
|
"import": "./dist/agent/index.js",
|
|
17
17
|
"default": "./dist/agent/index.js"
|
|
18
18
|
},
|
|
19
|
+
"./actor": {
|
|
20
|
+
"types": "./dist/actor/index.d.ts",
|
|
21
|
+
"import": "./dist/actor/index.js",
|
|
22
|
+
"default": "./dist/actor/index.js"
|
|
23
|
+
},
|
|
19
24
|
"./browser": {
|
|
20
25
|
"types": "./dist/browser/index.d.ts",
|
|
21
26
|
"import": "./dist/browser/index.js",
|
|
22
27
|
"default": "./dist/browser/index.js"
|
|
23
28
|
},
|
|
29
|
+
"./browser/cloud": {
|
|
30
|
+
"types": "./dist/browser/cloud/index.d.ts",
|
|
31
|
+
"import": "./dist/browser/cloud/index.js",
|
|
32
|
+
"default": "./dist/browser/cloud/index.js"
|
|
33
|
+
},
|
|
24
34
|
"./controller": {
|
|
25
35
|
"types": "./dist/controller/index.d.ts",
|
|
26
36
|
"import": "./dist/controller/index.js",
|
|
27
37
|
"default": "./dist/controller/index.js"
|
|
28
38
|
},
|
|
39
|
+
"./code-use": {
|
|
40
|
+
"types": "./dist/code-use/index.d.ts",
|
|
41
|
+
"import": "./dist/code-use/index.js",
|
|
42
|
+
"default": "./dist/code-use/index.js"
|
|
43
|
+
},
|
|
44
|
+
"./tools": {
|
|
45
|
+
"types": "./dist/tools/index.d.ts",
|
|
46
|
+
"import": "./dist/tools/index.js",
|
|
47
|
+
"default": "./dist/tools/index.js"
|
|
48
|
+
},
|
|
29
49
|
"./filesystem": {
|
|
30
50
|
"types": "./dist/filesystem/index.d.ts",
|
|
31
51
|
"import": "./dist/filesystem/index.js",
|
|
@@ -51,6 +71,16 @@
|
|
|
51
71
|
"import": "./dist/llm/azure/index.js",
|
|
52
72
|
"default": "./dist/llm/azure/index.js"
|
|
53
73
|
},
|
|
74
|
+
"./llm/cerebras": {
|
|
75
|
+
"types": "./dist/llm/cerebras/index.d.ts",
|
|
76
|
+
"import": "./dist/llm/cerebras/index.js",
|
|
77
|
+
"default": "./dist/llm/cerebras/index.js"
|
|
78
|
+
},
|
|
79
|
+
"./llm/browser-use": {
|
|
80
|
+
"types": "./dist/llm/browser-use/index.d.ts",
|
|
81
|
+
"import": "./dist/llm/browser-use/index.js",
|
|
82
|
+
"default": "./dist/llm/browser-use/index.js"
|
|
83
|
+
},
|
|
54
84
|
"./llm/base": {
|
|
55
85
|
"types": "./dist/llm/base.d.ts",
|
|
56
86
|
"import": "./dist/llm/base.js",
|
|
@@ -81,6 +111,16 @@
|
|
|
81
111
|
"import": "./dist/llm/messages.js",
|
|
82
112
|
"default": "./dist/llm/messages.js"
|
|
83
113
|
},
|
|
114
|
+
"./llm/mistral": {
|
|
115
|
+
"types": "./dist/llm/mistral/index.d.ts",
|
|
116
|
+
"import": "./dist/llm/mistral/index.js",
|
|
117
|
+
"default": "./dist/llm/mistral/index.js"
|
|
118
|
+
},
|
|
119
|
+
"./llm/models": {
|
|
120
|
+
"types": "./dist/llm/models.d.ts",
|
|
121
|
+
"import": "./dist/llm/models.js",
|
|
122
|
+
"default": "./dist/llm/models.js"
|
|
123
|
+
},
|
|
84
124
|
"./llm/ollama": {
|
|
85
125
|
"types": "./dist/llm/ollama/index.d.ts",
|
|
86
126
|
"import": "./dist/llm/ollama/index.js",
|
|
@@ -96,6 +136,11 @@
|
|
|
96
136
|
"import": "./dist/llm/openrouter/index.js",
|
|
97
137
|
"default": "./dist/llm/openrouter/index.js"
|
|
98
138
|
},
|
|
139
|
+
"./llm/vercel": {
|
|
140
|
+
"types": "./dist/llm/vercel/index.d.ts",
|
|
141
|
+
"import": "./dist/llm/vercel/index.js",
|
|
142
|
+
"default": "./dist/llm/vercel/index.js"
|
|
143
|
+
},
|
|
99
144
|
"./llm/schema": {
|
|
100
145
|
"types": "./dist/llm/schema.d.ts",
|
|
101
146
|
"import": "./dist/llm/schema.js",
|
|
@@ -121,6 +166,21 @@
|
|
|
121
166
|
"import": "./dist/sync/index.js",
|
|
122
167
|
"default": "./dist/sync/index.js"
|
|
123
168
|
},
|
|
169
|
+
"./skill-cli": {
|
|
170
|
+
"types": "./dist/skill-cli/index.d.ts",
|
|
171
|
+
"import": "./dist/skill-cli/index.js",
|
|
172
|
+
"default": "./dist/skill-cli/index.js"
|
|
173
|
+
},
|
|
174
|
+
"./skills": {
|
|
175
|
+
"types": "./dist/skills/index.d.ts",
|
|
176
|
+
"import": "./dist/skills/index.js",
|
|
177
|
+
"default": "./dist/skills/index.js"
|
|
178
|
+
},
|
|
179
|
+
"./sandbox": {
|
|
180
|
+
"types": "./dist/sandbox/index.d.ts",
|
|
181
|
+
"import": "./dist/sandbox/index.js",
|
|
182
|
+
"default": "./dist/sandbox/index.js"
|
|
183
|
+
},
|
|
124
184
|
"./telemetry": {
|
|
125
185
|
"types": "./dist/telemetry/index.d.ts",
|
|
126
186
|
"import": "./dist/telemetry/index.js",
|
|
@@ -221,52 +281,53 @@
|
|
|
221
281
|
"author": "unadlib",
|
|
222
282
|
"license": "MIT",
|
|
223
283
|
"dependencies": {
|
|
224
|
-
"@anthropic-ai/sdk": "^0.
|
|
284
|
+
"@anthropic-ai/sdk": "^0.74.0",
|
|
225
285
|
"@aws-sdk/client-bedrock-runtime": "^3.985.0",
|
|
226
286
|
"@cfworker/json-schema": "^4.1.1",
|
|
227
287
|
"@google/genai": "^1.40.0",
|
|
228
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
288
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
229
289
|
"adm-zip": "^0.5.16",
|
|
230
|
-
"axios": "^1.
|
|
231
|
-
"canvas": "^3.2.
|
|
232
|
-
"dotenv": "^
|
|
233
|
-
"eventemitter3": "^5.0.
|
|
290
|
+
"axios": "^1.13.4",
|
|
291
|
+
"canvas": "^3.2.1",
|
|
292
|
+
"dotenv": "^17.2.4",
|
|
293
|
+
"eventemitter3": "^5.0.4",
|
|
234
294
|
"extract-zip": "^2.0.1",
|
|
235
295
|
"gif-encoder-2": "^1.0.5",
|
|
236
|
-
"googleapis": "^
|
|
296
|
+
"googleapis": "^171.4.0",
|
|
237
297
|
"gpt-tokenizer": "^3.4.0",
|
|
238
298
|
"groq-sdk": "^0.37.0",
|
|
239
299
|
"ollama": "^0.6.3",
|
|
240
300
|
"openai": "^6.18.0",
|
|
241
301
|
"pdf-parse": "^2.4.5",
|
|
242
302
|
"pdfkit": "^0.17.2",
|
|
243
|
-
"playwright": "^1.
|
|
244
|
-
"posthog-node": "^5.11
|
|
245
|
-
"turndown": "^7.2.
|
|
246
|
-
"zod": "^3.
|
|
247
|
-
"zod-to-json-schema": "^3.
|
|
303
|
+
"playwright": "^1.58.2",
|
|
304
|
+
"posthog-node": "^5.24.11",
|
|
305
|
+
"turndown": "^7.2.2",
|
|
306
|
+
"zod": "^4.3.6",
|
|
307
|
+
"zod-to-json-schema": "^3.25.1"
|
|
248
308
|
},
|
|
249
309
|
"devDependencies": {
|
|
310
|
+
"@eslint/js": "^10.0.1",
|
|
250
311
|
"@types/adm-zip": "^0.5.7",
|
|
251
312
|
"@types/minimatch": "^6.0.0",
|
|
252
|
-
"@types/node": "^
|
|
313
|
+
"@types/node": "^25.2.2",
|
|
253
314
|
"@types/pdf-parse": "^1.1.5",
|
|
254
|
-
"@types/pdfkit": "^0.17.
|
|
255
|
-
"@types/turndown": "^5.0.
|
|
256
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
257
|
-
"@typescript-eslint/parser": "^8.
|
|
258
|
-
"@vitest/coverage-v8": "^
|
|
315
|
+
"@types/pdfkit": "^0.17.4",
|
|
316
|
+
"@types/turndown": "^5.0.6",
|
|
317
|
+
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
318
|
+
"@typescript-eslint/parser": "^8.54.0",
|
|
319
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
259
320
|
"commitizen": "^4.3.1",
|
|
260
|
-
"eslint": "^
|
|
321
|
+
"eslint": "^10.0.0",
|
|
261
322
|
"eslint-config-prettier": "^10.1.8",
|
|
262
323
|
"eslint-plugin-import": "^2.32.0",
|
|
263
324
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
264
|
-
"eslint-plugin-prettier": "^5.5.
|
|
265
|
-
"prettier": "^3.
|
|
266
|
-
"tsx": "^4.
|
|
267
|
-
"typescript": "^5.9.
|
|
268
|
-
"vite": "^7.1
|
|
269
|
-
"vitest": "^
|
|
325
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
326
|
+
"prettier": "^3.8.1",
|
|
327
|
+
"tsx": "^4.21.0",
|
|
328
|
+
"typescript": "^5.9.3",
|
|
329
|
+
"vite": "^7.3.1",
|
|
330
|
+
"vitest": "^4.0.18"
|
|
270
331
|
},
|
|
271
332
|
"config": {
|
|
272
333
|
"commitizen": {
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Accessibility Tree Playground for browser-use
|
|
3
|
-
*
|
|
4
|
-
* - Launches a browser and navigates to a target URL (default: amazon.com)
|
|
5
|
-
* - Extracts both the full and interesting-only accessibility trees using Playwright
|
|
6
|
-
* - Prints and saves both trees to JSON files
|
|
7
|
-
* - Recursively prints relevant info for each node (role, name, value, description, focusable, focused, checked, selected, disabled, children count)
|
|
8
|
-
* - Explains the difference between the accessibility tree and the DOM tree
|
|
9
|
-
* - Notes on React/Vue/SPA apps
|
|
10
|
-
* - Easy to modify for your own experiments
|
|
11
|
-
*
|
|
12
|
-
* Run with: npx tsx src/dom/playground/test-accessibility.ts
|
|
13
|
-
*/
|
|
14
|
-
type AXNode = {
|
|
15
|
-
role?: string;
|
|
16
|
-
name?: string;
|
|
17
|
-
value?: string | number;
|
|
18
|
-
description?: string;
|
|
19
|
-
focusable?: boolean;
|
|
20
|
-
focused?: boolean;
|
|
21
|
-
checked?: boolean | 'mixed';
|
|
22
|
-
selected?: boolean;
|
|
23
|
-
disabled?: boolean;
|
|
24
|
-
children?: AXNode[];
|
|
25
|
-
[key: string]: any;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Helper to recursively print relevant info from the accessibility tree
|
|
29
|
-
*/
|
|
30
|
-
declare function printAxTree(node: AXNode | null, depth?: number): void;
|
|
31
|
-
/**
|
|
32
|
-
* Helper to print all available accessibility node attributes
|
|
33
|
-
* Prints all key-value pairs for each node (except 'children'), then recurses into children
|
|
34
|
-
*/
|
|
35
|
-
declare function printAllFields(node: AXNode | null, depth?: number): void;
|
|
36
|
-
/**
|
|
37
|
-
* Flatten the accessibility tree into a list of "role name" strings
|
|
38
|
-
*/
|
|
39
|
-
declare function flattenAxTree(node: AXNode | null, lines: string[]): void;
|
|
40
|
-
/**
|
|
41
|
-
* Get and analyze the accessibility tree for a given URL
|
|
42
|
-
*/
|
|
43
|
-
declare function getAxTree(targetUrl: string): Promise<void>;
|
|
44
|
-
export { printAxTree, printAllFields, flattenAxTree, getAxTree };
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Accessibility Tree Playground for browser-use
|
|
3
|
-
*
|
|
4
|
-
* - Launches a browser and navigates to a target URL (default: amazon.com)
|
|
5
|
-
* - Extracts both the full and interesting-only accessibility trees using Playwright
|
|
6
|
-
* - Prints and saves both trees to JSON files
|
|
7
|
-
* - Recursively prints relevant info for each node (role, name, value, description, focusable, focused, checked, selected, disabled, children count)
|
|
8
|
-
* - Explains the difference between the accessibility tree and the DOM tree
|
|
9
|
-
* - Notes on React/Vue/SPA apps
|
|
10
|
-
* - Easy to modify for your own experiments
|
|
11
|
-
*
|
|
12
|
-
* Run with: npx tsx src/dom/playground/test-accessibility.ts
|
|
13
|
-
*/
|
|
14
|
-
import { chromium } from 'playwright';
|
|
15
|
-
/**
|
|
16
|
-
* Helper to recursively print relevant info from the accessibility tree
|
|
17
|
-
*/
|
|
18
|
-
function printAxTree(node, depth = 0) {
|
|
19
|
-
if (!node) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const indent = ' '.repeat(depth);
|
|
23
|
-
const info = [
|
|
24
|
-
`role=${JSON.stringify(node.role)}`,
|
|
25
|
-
node.name ? `name=${JSON.stringify(node.name)}` : null,
|
|
26
|
-
node.value !== undefined ? `value=${JSON.stringify(node.value)}` : null,
|
|
27
|
-
node.description ? `desc=${JSON.stringify(node.description)}` : null,
|
|
28
|
-
'focusable' in node ? `focusable=${JSON.stringify(node.focusable)}` : null,
|
|
29
|
-
'focused' in node ? `focused=${JSON.stringify(node.focused)}` : null,
|
|
30
|
-
'checked' in node ? `checked=${JSON.stringify(node.checked)}` : null,
|
|
31
|
-
'selected' in node ? `selected=${JSON.stringify(node.selected)}` : null,
|
|
32
|
-
'disabled' in node ? `disabled=${JSON.stringify(node.disabled)}` : null,
|
|
33
|
-
node.children ? `children=${node.children.length}` : null,
|
|
34
|
-
];
|
|
35
|
-
console.log('--------------------------------');
|
|
36
|
-
console.log(indent + info.filter((x) => x !== null).join(', '));
|
|
37
|
-
for (const child of node.children || []) {
|
|
38
|
-
printAxTree(child, depth + 1);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Helper to print all available accessibility node attributes
|
|
43
|
-
* Prints all key-value pairs for each node (except 'children'), then recurses into children
|
|
44
|
-
*/
|
|
45
|
-
function printAllFields(node, depth = 0) {
|
|
46
|
-
if (!node) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const indent = ' '.repeat(depth);
|
|
50
|
-
for (const [k, v] of Object.entries(node)) {
|
|
51
|
-
if (k !== 'children') {
|
|
52
|
-
console.log(`${indent}${k}: ${JSON.stringify(v)}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if ('children' in node && node.children) {
|
|
56
|
-
console.log(`${indent}children: ${node.children.length}`);
|
|
57
|
-
for (const child of node.children) {
|
|
58
|
-
printAllFields(child, depth + 1);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Flatten the accessibility tree into a list of "role name" strings
|
|
64
|
-
*/
|
|
65
|
-
function flattenAxTree(node, lines) {
|
|
66
|
-
if (!node) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const role = node.role || '';
|
|
70
|
-
const name = node.name || '';
|
|
71
|
-
lines.push(`${role} ${name}`);
|
|
72
|
-
for (const child of node.children || []) {
|
|
73
|
-
flattenAxTree(child, lines);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get and analyze the accessibility tree for a given URL
|
|
78
|
-
*/
|
|
79
|
-
async function getAxTree(targetUrl) {
|
|
80
|
-
const browser = await chromium.launch({ headless: true });
|
|
81
|
-
const page = await browser.newPage();
|
|
82
|
-
console.log(`Navigating to ${targetUrl}`);
|
|
83
|
-
await page.goto(targetUrl, { waitUntil: 'load' });
|
|
84
|
-
const axTreeInteresting = await page.accessibility.snapshot({
|
|
85
|
-
interestingOnly: true,
|
|
86
|
-
});
|
|
87
|
-
const lines = [];
|
|
88
|
-
flattenAxTree(axTreeInteresting, lines);
|
|
89
|
-
console.log(lines);
|
|
90
|
-
console.log(`length of ax_tree_interesting: ${lines.length}`);
|
|
91
|
-
await browser.close();
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Main execution
|
|
95
|
-
*/
|
|
96
|
-
async function main() {
|
|
97
|
-
const TARGET_URLS = [
|
|
98
|
-
// 'https://amazon.com/',
|
|
99
|
-
// 'https://www.google.com/',
|
|
100
|
-
// 'https://www.facebook.com/',
|
|
101
|
-
// 'https://platform.openai.com/tokenizer',
|
|
102
|
-
'https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/checkbox',
|
|
103
|
-
];
|
|
104
|
-
for (const url of TARGET_URLS) {
|
|
105
|
-
await getAxTree(url);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (require.main === module) {
|
|
109
|
-
main().catch(console.error);
|
|
110
|
-
}
|
|
111
|
-
export { printAxTree, printAllFields, flattenAxTree, getAxTree };
|
|
File without changes
|