@cereworker/browser 26.329.22 → 26.329.23
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/backend.d.ts +17 -14
- package/dist/backend.d.ts.map +1 -1
- package/dist/cdp.d.ts +15 -15
- package/dist/cdp.d.ts.map +1 -1
- package/dist/cdp.js +14 -14
- package/dist/cdp.js.map +1 -1
- package/dist/extension-backend.d.ts +15 -15
- package/dist/extension-backend.d.ts.map +1 -1
- package/dist/extension-backend.js +27 -27
- package/dist/extension-backend.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/puppeteer.d.ts +15 -15
- package/dist/puppeteer.d.ts.map +1 -1
- package/dist/puppeteer.js +14 -14
- package/dist/puppeteer.js.map +1 -1
- package/dist/relay.d.ts +1 -1
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +34 -2
- package/dist/relay.js.map +1 -1
- package/dist/relay.test.d.ts +2 -0
- package/dist/relay.test.d.ts.map +1 -0
- package/dist/relay.test.js +37 -0
- package/dist/relay.test.js.map +1 -0
- package/dist/tools.d.ts +35 -5
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +20 -17
- package/dist/tools.js.map +1 -1
- package/package.json +3 -3
package/dist/backend.d.ts
CHANGED
|
@@ -4,21 +4,24 @@ export interface TabInfo {
|
|
|
4
4
|
url: string;
|
|
5
5
|
active: boolean;
|
|
6
6
|
}
|
|
7
|
+
export interface BrowserCommandOptions {
|
|
8
|
+
abortSignal?: AbortSignal;
|
|
9
|
+
}
|
|
7
10
|
export interface BrowserBackend {
|
|
8
|
-
navigate(url: string): Promise<string>;
|
|
9
|
-
getPageText(): Promise<string>;
|
|
10
|
-
screenshot(path?: string): Promise<string>;
|
|
11
|
-
click(selector: string): Promise<string>;
|
|
12
|
-
clickByText(text: string, role?: string): Promise<string>;
|
|
13
|
-
type(selector: string, text: string): Promise<string>;
|
|
14
|
-
evaluate(code: string): Promise<string>;
|
|
15
|
-
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
16
|
-
getPageUrl(): Promise<string>;
|
|
17
|
-
listTabs(): Promise<TabInfo[]>;
|
|
18
|
-
switchTab(tabId: string): Promise<string>;
|
|
19
|
-
newTab(url?: string): Promise<string>;
|
|
20
|
-
closeTab(tabId?: string): Promise<string>;
|
|
21
|
-
connect(): Promise<string>;
|
|
11
|
+
navigate(url: string, options?: BrowserCommandOptions): Promise<string>;
|
|
12
|
+
getPageText(options?: BrowserCommandOptions): Promise<string>;
|
|
13
|
+
screenshot(path?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
14
|
+
click(selector: string, options?: BrowserCommandOptions): Promise<string>;
|
|
15
|
+
clickByText(text: string, role?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
16
|
+
type(selector: string, text: string, options?: BrowserCommandOptions): Promise<string>;
|
|
17
|
+
evaluate(code: string, options?: BrowserCommandOptions): Promise<string>;
|
|
18
|
+
waitForSelector(selector: string, timeoutMs?: number, options?: BrowserCommandOptions): Promise<string>;
|
|
19
|
+
getPageUrl(options?: BrowserCommandOptions): Promise<string>;
|
|
20
|
+
listTabs(options?: BrowserCommandOptions): Promise<TabInfo[]>;
|
|
21
|
+
switchTab(tabId: string, options?: BrowserCommandOptions): Promise<string>;
|
|
22
|
+
newTab(url?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
23
|
+
closeTab(tabId?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
24
|
+
connect(options?: BrowserCommandOptions): Promise<string>;
|
|
22
25
|
disconnect(): Promise<void>;
|
|
23
26
|
isConnected(): boolean;
|
|
24
27
|
}
|
package/dist/backend.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,WAAW,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3F,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxG,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7D,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAG3E,OAAO,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC;CACxB"}
|
package/dist/cdp.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BrowserBackend, TabInfo } from './backend.js';
|
|
1
|
+
import type { BrowserBackend, BrowserCommandOptions, TabInfo } from './backend.js';
|
|
2
2
|
export interface CdpConnectionOptions {
|
|
3
3
|
port?: number;
|
|
4
4
|
wsEndpoint?: string;
|
|
@@ -9,20 +9,20 @@ export declare class CdpBackend implements BrowserBackend {
|
|
|
9
9
|
private options;
|
|
10
10
|
constructor(options?: CdpConnectionOptions);
|
|
11
11
|
private ensureConnected;
|
|
12
|
-
navigate(url: string): Promise<string>;
|
|
13
|
-
getPageText(): Promise<string>;
|
|
14
|
-
screenshot(path?: string): Promise<string>;
|
|
15
|
-
click(selector: string): Promise<string>;
|
|
16
|
-
clickByText(text: string, role?: string): Promise<string>;
|
|
17
|
-
type(selector: string, text: string): Promise<string>;
|
|
18
|
-
evaluate(code: string): Promise<string>;
|
|
19
|
-
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
20
|
-
getPageUrl(): Promise<string>;
|
|
21
|
-
listTabs(): Promise<TabInfo[]>;
|
|
22
|
-
switchTab(tabId: string): Promise<string>;
|
|
23
|
-
newTab(url?: string): Promise<string>;
|
|
24
|
-
closeTab(tabId?: string): Promise<string>;
|
|
25
|
-
connect(): Promise<string>;
|
|
12
|
+
navigate(url: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
13
|
+
getPageText(_options?: BrowserCommandOptions): Promise<string>;
|
|
14
|
+
screenshot(path?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
15
|
+
click(selector: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
16
|
+
clickByText(text: string, role?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
17
|
+
type(selector: string, text: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
18
|
+
evaluate(code: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
19
|
+
waitForSelector(selector: string, timeoutMs?: number, _options?: BrowserCommandOptions): Promise<string>;
|
|
20
|
+
getPageUrl(_options?: BrowserCommandOptions): Promise<string>;
|
|
21
|
+
listTabs(_options?: BrowserCommandOptions): Promise<TabInfo[]>;
|
|
22
|
+
switchTab(tabId: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
23
|
+
newTab(url?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
24
|
+
closeTab(tabId?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
25
|
+
connect(_options?: BrowserCommandOptions): Promise<string>;
|
|
26
26
|
disconnect(): Promise<void>;
|
|
27
27
|
isConnected(): boolean;
|
|
28
28
|
}
|
package/dist/cdp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAW,YAAW,cAAc;IAC/C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,CAAC,EAAE,oBAAoB;YAI5B,eAAe;IAuBvB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxE,WAAW,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAO9D,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAU1E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB3F,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUtG,UAAU,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW9D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAY3E,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAWvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB3E,OAAO,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,WAAW,IAAI,OAAO;CAGvB"}
|
package/dist/cdp.js
CHANGED
|
@@ -28,24 +28,24 @@ export class CdpBackend {
|
|
|
28
28
|
'Start Chrome with --remote-debugging-port=9222, or use httpFetch/shell tools instead.');
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
async navigate(url) {
|
|
31
|
+
async navigate(url, _options) {
|
|
32
32
|
const { page } = await this.ensureConnected();
|
|
33
33
|
await page.goto(url, { waitUntil: 'networkidle2', timeout: 30000 });
|
|
34
34
|
return `Navigated to ${page.url()} - Title: ${await page.title()}`;
|
|
35
35
|
}
|
|
36
|
-
async getPageText() {
|
|
36
|
+
async getPageText(_options) {
|
|
37
37
|
const { page } = await this.ensureConnected();
|
|
38
38
|
const text = await page.evaluate(() => document.body.innerText);
|
|
39
39
|
const maxLen = 10000;
|
|
40
40
|
return text.length > maxLen ? text.slice(0, maxLen) + '\n... (truncated)' : text;
|
|
41
41
|
}
|
|
42
|
-
async screenshot(path) {
|
|
42
|
+
async screenshot(path, _options) {
|
|
43
43
|
const { page } = await this.ensureConnected();
|
|
44
44
|
const filePath = path ?? `/tmp/cereworker-screenshot-${Date.now()}.png`;
|
|
45
45
|
await page.screenshot({ path: filePath, fullPage: false });
|
|
46
46
|
return `Screenshot saved to ${filePath}`;
|
|
47
47
|
}
|
|
48
|
-
async click(selector) {
|
|
48
|
+
async click(selector, _options) {
|
|
49
49
|
const { page } = await this.ensureConnected();
|
|
50
50
|
try {
|
|
51
51
|
await page.click(selector);
|
|
@@ -55,7 +55,7 @@ export class CdpBackend {
|
|
|
55
55
|
return `Element not found: ${selector}`;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
async clickByText(text, role) {
|
|
58
|
+
async clickByText(text, role, _options) {
|
|
59
59
|
const { page } = await this.ensureConnected();
|
|
60
60
|
try {
|
|
61
61
|
const selector = role ? `[role="${role}"]` : 'button, [role="button"], a';
|
|
@@ -75,7 +75,7 @@ export class CdpBackend {
|
|
|
75
75
|
return `No clickable element found with text: "${text}"`;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
async type(selector, text) {
|
|
78
|
+
async type(selector, text, _options) {
|
|
79
79
|
const { page } = await this.ensureConnected();
|
|
80
80
|
try {
|
|
81
81
|
await page.type(selector, text);
|
|
@@ -85,7 +85,7 @@ export class CdpBackend {
|
|
|
85
85
|
return `Element not found: ${selector}`;
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
async evaluate(code) {
|
|
88
|
+
async evaluate(code, _options) {
|
|
89
89
|
const { page } = await this.ensureConnected();
|
|
90
90
|
try {
|
|
91
91
|
const result = await page.evaluate(code);
|
|
@@ -95,7 +95,7 @@ export class CdpBackend {
|
|
|
95
95
|
return `Error: ${err instanceof Error ? err.message : String(err)}`;
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
async waitForSelector(selector, timeoutMs = 5000) {
|
|
98
|
+
async waitForSelector(selector, timeoutMs = 5000, _options) {
|
|
99
99
|
const { page } = await this.ensureConnected();
|
|
100
100
|
try {
|
|
101
101
|
await page.waitForSelector(selector, { timeout: timeoutMs });
|
|
@@ -105,11 +105,11 @@ export class CdpBackend {
|
|
|
105
105
|
return `Timeout waiting for: ${selector}`;
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
async getPageUrl() {
|
|
108
|
+
async getPageUrl(_options) {
|
|
109
109
|
const { page } = await this.ensureConnected();
|
|
110
110
|
return page.url();
|
|
111
111
|
}
|
|
112
|
-
async listTabs() {
|
|
112
|
+
async listTabs(_options) {
|
|
113
113
|
const { browser, page } = await this.ensureConnected();
|
|
114
114
|
const pages = await browser.pages();
|
|
115
115
|
return pages.map((p, i) => ({
|
|
@@ -119,7 +119,7 @@ export class CdpBackend {
|
|
|
119
119
|
active: p === page,
|
|
120
120
|
}));
|
|
121
121
|
}
|
|
122
|
-
async switchTab(tabId) {
|
|
122
|
+
async switchTab(tabId, _options) {
|
|
123
123
|
const { browser } = await this.ensureConnected();
|
|
124
124
|
const pages = await browser.pages();
|
|
125
125
|
const idx = parseInt(tabId, 10);
|
|
@@ -130,7 +130,7 @@ export class CdpBackend {
|
|
|
130
130
|
await this.page.bringToFront();
|
|
131
131
|
return `Switched to tab ${idx}: ${this.page.url()}`;
|
|
132
132
|
}
|
|
133
|
-
async newTab(url) {
|
|
133
|
+
async newTab(url, _options) {
|
|
134
134
|
const { browser } = await this.ensureConnected();
|
|
135
135
|
const page = await browser.newPage();
|
|
136
136
|
if (url) {
|
|
@@ -140,7 +140,7 @@ export class CdpBackend {
|
|
|
140
140
|
const pages = await browser.pages();
|
|
141
141
|
return `Opened new tab (${pages.length} total)${url ? `: ${page.url()}` : ''}`;
|
|
142
142
|
}
|
|
143
|
-
async closeTab(tabId) {
|
|
143
|
+
async closeTab(tabId, _options) {
|
|
144
144
|
const { browser } = await this.ensureConnected();
|
|
145
145
|
const pages = await browser.pages();
|
|
146
146
|
if (pages.length <= 1)
|
|
@@ -162,7 +162,7 @@ export class CdpBackend {
|
|
|
162
162
|
this.page = remaining[remaining.length - 1];
|
|
163
163
|
return `Closed current tab. Now on: ${this.page.url()}`;
|
|
164
164
|
}
|
|
165
|
-
async connect() {
|
|
165
|
+
async connect(_options) {
|
|
166
166
|
const { page } = await this.ensureConnected();
|
|
167
167
|
return `Connected to Chrome via CDP. Current page: ${page.url()}`;
|
|
168
168
|
}
|
package/dist/cdp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsC,MAAM,WAAW,CAAC;AAQ/D,MAAM,OAAO,UAAU;IACb,OAAO,GAAmB,IAAI,CAAC;IAC/B,IAAI,GAAgB,IAAI,CAAC;IACzB,OAAO,CAAuB;IAEtC,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACjF,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;gBACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,eAAe,CAAC,CAAC;gBACtE,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqC,CAAC;gBACzE,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,qCAAqC,GAAG,KAAK;gBAC7C,uFAAuF,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;
|
|
1
|
+
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type { BrowserBackend, TabInfo } from './backend.js';
|
|
1
|
+
import type { BrowserBackend, BrowserCommandOptions, TabInfo } from './backend.js';
|
|
2
2
|
import type { BrowserRelay } from './relay.js';
|
|
3
3
|
export declare class ExtensionBackend implements BrowserBackend {
|
|
4
4
|
private relay;
|
|
5
5
|
constructor(relay: BrowserRelay);
|
|
6
|
-
navigate(url: string): Promise<string>;
|
|
7
|
-
getPageText(): Promise<string>;
|
|
8
|
-
screenshot(path?: string): Promise<string>;
|
|
9
|
-
click(selector: string): Promise<string>;
|
|
10
|
-
clickByText(text: string, role?: string): Promise<string>;
|
|
11
|
-
type(selector: string, text: string): Promise<string>;
|
|
12
|
-
evaluate(code: string): Promise<string>;
|
|
13
|
-
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
14
|
-
getPageUrl(): Promise<string>;
|
|
15
|
-
listTabs(): Promise<TabInfo[]>;
|
|
16
|
-
switchTab(tabId: string): Promise<string>;
|
|
17
|
-
newTab(url?: string): Promise<string>;
|
|
18
|
-
closeTab(tabId?: string): Promise<string>;
|
|
19
|
-
connect(): Promise<string>;
|
|
6
|
+
navigate(url: string, options?: BrowserCommandOptions): Promise<string>;
|
|
7
|
+
getPageText(options?: BrowserCommandOptions): Promise<string>;
|
|
8
|
+
screenshot(path?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
9
|
+
click(selector: string, options?: BrowserCommandOptions): Promise<string>;
|
|
10
|
+
clickByText(text: string, role?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
11
|
+
type(selector: string, text: string, options?: BrowserCommandOptions): Promise<string>;
|
|
12
|
+
evaluate(code: string, options?: BrowserCommandOptions): Promise<string>;
|
|
13
|
+
waitForSelector(selector: string, timeoutMs?: number, options?: BrowserCommandOptions): Promise<string>;
|
|
14
|
+
getPageUrl(options?: BrowserCommandOptions): Promise<string>;
|
|
15
|
+
listTabs(options?: BrowserCommandOptions): Promise<TabInfo[]>;
|
|
16
|
+
switchTab(tabId: string, options?: BrowserCommandOptions): Promise<string>;
|
|
17
|
+
newTab(url?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
18
|
+
closeTab(tabId?: string, options?: BrowserCommandOptions): Promise<string>;
|
|
19
|
+
connect(_options?: BrowserCommandOptions): Promise<string>;
|
|
20
20
|
disconnect(): Promise<void>;
|
|
21
21
|
isConnected(): boolean;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-backend.d.ts","sourceRoot":"","sources":["../src/extension-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"extension-backend.d.ts","sourceRoot":"","sources":["../src/extension-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,KAAK,CAAe;gBAEhB,KAAK,EAAE,YAAY;IAIzB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvE,WAAW,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7D,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1F,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAItF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrG,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK7D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1E,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAItE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1E,OAAO,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAU1D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,WAAW,IAAI,OAAO;CAGvB"}
|
|
@@ -3,47 +3,47 @@ export class ExtensionBackend {
|
|
|
3
3
|
constructor(relay) {
|
|
4
4
|
this.relay = relay;
|
|
5
5
|
}
|
|
6
|
-
async navigate(url) {
|
|
7
|
-
return this.relay.send('navigate', { url });
|
|
6
|
+
async navigate(url, options) {
|
|
7
|
+
return this.relay.send('navigate', { url }, 30_000, options?.abortSignal);
|
|
8
8
|
}
|
|
9
|
-
async getPageText() {
|
|
10
|
-
return this.relay.send('getPageText');
|
|
9
|
+
async getPageText(options) {
|
|
10
|
+
return this.relay.send('getPageText', undefined, 30_000, options?.abortSignal);
|
|
11
11
|
}
|
|
12
|
-
async screenshot(path) {
|
|
13
|
-
return this.relay.send('screenshot', { path });
|
|
12
|
+
async screenshot(path, options) {
|
|
13
|
+
return this.relay.send('screenshot', { path }, 30_000, options?.abortSignal);
|
|
14
14
|
}
|
|
15
|
-
async click(selector) {
|
|
16
|
-
return this.relay.send('click', { selector });
|
|
15
|
+
async click(selector, options) {
|
|
16
|
+
return this.relay.send('click', { selector }, 30_000, options?.abortSignal);
|
|
17
17
|
}
|
|
18
|
-
async clickByText(text, role) {
|
|
19
|
-
return this.relay.send('clickByText', { text, role });
|
|
18
|
+
async clickByText(text, role, options) {
|
|
19
|
+
return this.relay.send('clickByText', { text, role }, 30_000, options?.abortSignal);
|
|
20
20
|
}
|
|
21
|
-
async type(selector, text) {
|
|
22
|
-
return this.relay.send('type', { selector, text });
|
|
21
|
+
async type(selector, text, options) {
|
|
22
|
+
return this.relay.send('type', { selector, text }, 30_000, options?.abortSignal);
|
|
23
23
|
}
|
|
24
|
-
async evaluate(code) {
|
|
25
|
-
return this.relay.send('evaluate', { code });
|
|
24
|
+
async evaluate(code, options) {
|
|
25
|
+
return this.relay.send('evaluate', { code }, 30_000, options?.abortSignal);
|
|
26
26
|
}
|
|
27
|
-
async waitForSelector(selector, timeoutMs = 5000) {
|
|
28
|
-
return this.relay.send('waitForSelector', { selector, timeout: timeoutMs }, timeoutMs + 5000);
|
|
27
|
+
async waitForSelector(selector, timeoutMs = 5000, options) {
|
|
28
|
+
return this.relay.send('waitForSelector', { selector, timeout: timeoutMs }, timeoutMs + 5000, options?.abortSignal);
|
|
29
29
|
}
|
|
30
|
-
async getPageUrl() {
|
|
31
|
-
return this.relay.send('getPageUrl');
|
|
30
|
+
async getPageUrl(options) {
|
|
31
|
+
return this.relay.send('getPageUrl', undefined, 30_000, options?.abortSignal);
|
|
32
32
|
}
|
|
33
|
-
async listTabs() {
|
|
34
|
-
const result = await this.relay.send('listTabs');
|
|
33
|
+
async listTabs(options) {
|
|
34
|
+
const result = await this.relay.send('listTabs', undefined, 30_000, options?.abortSignal);
|
|
35
35
|
return JSON.parse(result);
|
|
36
36
|
}
|
|
37
|
-
async switchTab(tabId) {
|
|
38
|
-
return this.relay.send('switchTab', { tabId });
|
|
37
|
+
async switchTab(tabId, options) {
|
|
38
|
+
return this.relay.send('switchTab', { tabId }, 30_000, options?.abortSignal);
|
|
39
39
|
}
|
|
40
|
-
async newTab(url) {
|
|
41
|
-
return this.relay.send('newTab', { url });
|
|
40
|
+
async newTab(url, options) {
|
|
41
|
+
return this.relay.send('newTab', { url }, 30_000, options?.abortSignal);
|
|
42
42
|
}
|
|
43
|
-
async closeTab(tabId) {
|
|
44
|
-
return this.relay.send('closeTab', { tabId });
|
|
43
|
+
async closeTab(tabId, options) {
|
|
44
|
+
return this.relay.send('closeTab', { tabId }, 30_000, options?.abortSignal);
|
|
45
45
|
}
|
|
46
|
-
async connect() {
|
|
46
|
+
async connect(_options) {
|
|
47
47
|
if (!this.relay.isExtensionConnected()) {
|
|
48
48
|
throw new Error('Chrome extension not connected. Load the CereWorker extension in Chrome, ' +
|
|
49
49
|
'configure the relay port and token in extension options, then click the extension icon.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-backend.js","sourceRoot":"","sources":["../src/extension-backend.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACnB,KAAK,CAAe;IAE5B,YAAY,KAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;
|
|
1
|
+
{"version":3,"file":"extension-backend.js","sourceRoot":"","sources":["../src/extension-backend.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { BrowserBackend, TabInfo } from './backend.js';
|
|
1
|
+
export type { BrowserBackend, BrowserCommandOptions, TabInfo } from './backend.js';
|
|
2
2
|
export { PuppeteerBackend, type BrowserSession } from './puppeteer.js';
|
|
3
3
|
export { CdpBackend, type CdpConnectionOptions } from './cdp.js';
|
|
4
4
|
export { createBrowserTools, type BrowserTools, type BrowserToolName } from './tools.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/puppeteer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Browser, type Page } from 'puppeteer';
|
|
2
|
-
import type { BrowserBackend, TabInfo } from './backend.js';
|
|
2
|
+
import type { BrowserBackend, BrowserCommandOptions, TabInfo } from './backend.js';
|
|
3
3
|
export interface BrowserSession {
|
|
4
4
|
browser: Browser;
|
|
5
5
|
page: Page;
|
|
@@ -11,20 +11,20 @@ export declare class PuppeteerBackend implements BrowserBackend {
|
|
|
11
11
|
headless?: boolean;
|
|
12
12
|
});
|
|
13
13
|
private getSession;
|
|
14
|
-
navigate(url: string): Promise<string>;
|
|
15
|
-
getPageText(): Promise<string>;
|
|
16
|
-
screenshot(path?: string): Promise<string>;
|
|
17
|
-
click(selector: string): Promise<string>;
|
|
18
|
-
clickByText(text: string, role?: string): Promise<string>;
|
|
19
|
-
type(selector: string, text: string): Promise<string>;
|
|
20
|
-
evaluate(code: string): Promise<string>;
|
|
21
|
-
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
22
|
-
getPageUrl(): Promise<string>;
|
|
23
|
-
listTabs(): Promise<TabInfo[]>;
|
|
24
|
-
switchTab(tabId: string): Promise<string>;
|
|
25
|
-
newTab(url?: string): Promise<string>;
|
|
26
|
-
closeTab(tabId?: string): Promise<string>;
|
|
27
|
-
connect(): Promise<string>;
|
|
14
|
+
navigate(url: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
15
|
+
getPageText(_options?: BrowserCommandOptions): Promise<string>;
|
|
16
|
+
screenshot(path?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
17
|
+
click(selector: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
18
|
+
clickByText(text: string, role?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
19
|
+
type(selector: string, text: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
20
|
+
evaluate(code: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
21
|
+
waitForSelector(selector: string, timeoutMs?: number, _options?: BrowserCommandOptions): Promise<string>;
|
|
22
|
+
getPageUrl(_options?: BrowserCommandOptions): Promise<string>;
|
|
23
|
+
listTabs(_options?: BrowserCommandOptions): Promise<TabInfo[]>;
|
|
24
|
+
switchTab(tabId: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
25
|
+
newTab(url?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
26
|
+
closeTab(tabId?: string, _options?: BrowserCommandOptions): Promise<string>;
|
|
27
|
+
connect(_options?: BrowserCommandOptions): Promise<string>;
|
|
28
28
|
disconnect(): Promise<void>;
|
|
29
29
|
isConnected(): boolean;
|
|
30
30
|
}
|
package/dist/puppeteer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer.d.ts","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"puppeteer.d.ts","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEnF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAU;gBAEd,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;YAI9B,UAAU;IAoBlB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxE,WAAW,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAO9D,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAU1E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB3F,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAUtG,UAAU,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW9D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAa3E,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAavE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B3E,OAAO,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;CAGvB"}
|
package/dist/puppeteer.js
CHANGED
|
@@ -24,24 +24,24 @@ export class PuppeteerBackend {
|
|
|
24
24
|
'Use httpFetch/shell tools for API calls, or install Chrome for browser automation.');
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
async navigate(url) {
|
|
27
|
+
async navigate(url, _options) {
|
|
28
28
|
const s = await this.getSession();
|
|
29
29
|
await s.page.goto(url, { waitUntil: 'networkidle2', timeout: 30000 });
|
|
30
30
|
return `Navigated to ${s.page.url()} - Title: ${await s.page.title()}`;
|
|
31
31
|
}
|
|
32
|
-
async getPageText() {
|
|
32
|
+
async getPageText(_options) {
|
|
33
33
|
const s = await this.getSession();
|
|
34
34
|
const text = await s.page.evaluate(() => document.body.innerText);
|
|
35
35
|
const maxLen = 10000;
|
|
36
36
|
return text.length > maxLen ? text.slice(0, maxLen) + '\n... (truncated)' : text;
|
|
37
37
|
}
|
|
38
|
-
async screenshot(path) {
|
|
38
|
+
async screenshot(path, _options) {
|
|
39
39
|
const s = await this.getSession();
|
|
40
40
|
const filePath = path ?? `/tmp/cereworker-screenshot-${Date.now()}.png`;
|
|
41
41
|
await s.page.screenshot({ path: filePath, fullPage: false });
|
|
42
42
|
return `Screenshot saved to ${filePath}`;
|
|
43
43
|
}
|
|
44
|
-
async click(selector) {
|
|
44
|
+
async click(selector, _options) {
|
|
45
45
|
const s = await this.getSession();
|
|
46
46
|
try {
|
|
47
47
|
await s.page.click(selector);
|
|
@@ -51,7 +51,7 @@ export class PuppeteerBackend {
|
|
|
51
51
|
return `Element not found: ${selector}`;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
async clickByText(text, role) {
|
|
54
|
+
async clickByText(text, role, _options) {
|
|
55
55
|
const s = await this.getSession();
|
|
56
56
|
try {
|
|
57
57
|
const selector = role ? `[role="${role}"]` : 'button, [role="button"], a';
|
|
@@ -71,7 +71,7 @@ export class PuppeteerBackend {
|
|
|
71
71
|
return `No clickable element found with text: "${text}"`;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
async type(selector, text) {
|
|
74
|
+
async type(selector, text, _options) {
|
|
75
75
|
const s = await this.getSession();
|
|
76
76
|
try {
|
|
77
77
|
await s.page.type(selector, text);
|
|
@@ -81,7 +81,7 @@ export class PuppeteerBackend {
|
|
|
81
81
|
return `Element not found: ${selector}`;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
async evaluate(code) {
|
|
84
|
+
async evaluate(code, _options) {
|
|
85
85
|
const s = await this.getSession();
|
|
86
86
|
try {
|
|
87
87
|
const result = await s.page.evaluate(code);
|
|
@@ -91,7 +91,7 @@ export class PuppeteerBackend {
|
|
|
91
91
|
return `Error: ${err instanceof Error ? err.message : String(err)}`;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
async waitForSelector(selector, timeoutMs = 5000) {
|
|
94
|
+
async waitForSelector(selector, timeoutMs = 5000, _options) {
|
|
95
95
|
const s = await this.getSession();
|
|
96
96
|
try {
|
|
97
97
|
await s.page.waitForSelector(selector, { timeout: timeoutMs });
|
|
@@ -101,11 +101,11 @@ export class PuppeteerBackend {
|
|
|
101
101
|
return `Timeout waiting for: ${selector}`;
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
async getPageUrl() {
|
|
104
|
+
async getPageUrl(_options) {
|
|
105
105
|
const s = await this.getSession();
|
|
106
106
|
return s.page.url();
|
|
107
107
|
}
|
|
108
|
-
async listTabs() {
|
|
108
|
+
async listTabs(_options) {
|
|
109
109
|
const s = await this.getSession();
|
|
110
110
|
const pages = await s.browser.pages();
|
|
111
111
|
return pages.map((p, i) => ({
|
|
@@ -115,7 +115,7 @@ export class PuppeteerBackend {
|
|
|
115
115
|
active: p === s.page,
|
|
116
116
|
}));
|
|
117
117
|
}
|
|
118
|
-
async switchTab(tabId) {
|
|
118
|
+
async switchTab(tabId, _options) {
|
|
119
119
|
const s = await this.getSession();
|
|
120
120
|
const pages = await s.browser.pages();
|
|
121
121
|
const idx = parseInt(tabId, 10);
|
|
@@ -127,7 +127,7 @@ export class PuppeteerBackend {
|
|
|
127
127
|
await s.page.bringToFront();
|
|
128
128
|
return `Switched to tab ${idx}: ${s.page.url()}`;
|
|
129
129
|
}
|
|
130
|
-
async newTab(url) {
|
|
130
|
+
async newTab(url, _options) {
|
|
131
131
|
const s = await this.getSession();
|
|
132
132
|
const page = await s.browser.newPage();
|
|
133
133
|
await page.setViewport({ width: 1280, height: 800 });
|
|
@@ -139,7 +139,7 @@ export class PuppeteerBackend {
|
|
|
139
139
|
const pages = await s.browser.pages();
|
|
140
140
|
return `Opened new tab (${pages.length} total)${url ? `: ${page.url()}` : ''}`;
|
|
141
141
|
}
|
|
142
|
-
async closeTab(tabId) {
|
|
142
|
+
async closeTab(tabId, _options) {
|
|
143
143
|
const s = await this.getSession();
|
|
144
144
|
const pages = await s.browser.pages();
|
|
145
145
|
if (pages.length <= 1)
|
|
@@ -165,7 +165,7 @@ export class PuppeteerBackend {
|
|
|
165
165
|
this.session = s;
|
|
166
166
|
return `Closed current tab. Now on: ${s.page.url()}`;
|
|
167
167
|
}
|
|
168
|
-
async connect() {
|
|
168
|
+
async connect(_options) {
|
|
169
169
|
const s = await this.getSession();
|
|
170
170
|
return `Browser launched (headless: ${this.headless}). Page: ${s.page.url()}`;
|
|
171
171
|
}
|
package/dist/puppeteer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer.js","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsC,MAAM,WAAW,CAAC;AAQ/D,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAA0B,IAAI,CAAC;IACtC,QAAQ,CAAU;IAE1B,YAAY,OAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;gBACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;gBACzC,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,CAAC;aACnD,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,yBAAyB,GAAG,KAAK;gBACjC,oFAAoF,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;
|
|
1
|
+
{"version":3,"file":"puppeteer.js","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":"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"}
|
package/dist/relay.d.ts
CHANGED
|
@@ -27,6 +27,6 @@ export declare class BrowserRelay extends EventEmitter {
|
|
|
27
27
|
start(): Promise<void>;
|
|
28
28
|
stop(): Promise<void>;
|
|
29
29
|
isExtensionConnected(): boolean;
|
|
30
|
-
send(method: string, params?: Record<string, unknown>, timeoutMs?: number): Promise<string>;
|
|
30
|
+
send(method: string, params?: Record<string, unknown>, timeoutMs?: number, abortSignal?: AbortSignal): Promise<string>;
|
|
31
31
|
}
|
|
32
32
|
//# sourceMappingURL=relay.d.ts.map
|
package/dist/relay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAA+C;gBAEpD,MAAM,EAAE,WAAW;IAKzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyFtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B,oBAAoB,IAAI,OAAO;IAIzB,IAAI,
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAA+C;gBAEpD,MAAM,EAAE,WAAW;IAKzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyFtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B,oBAAoB,IAAI,OAAO;IAIzB,IAAI,CACR,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,SAAS,EAClB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,MAAM,CAAC;CAiDnB"}
|
package/dist/relay.js
CHANGED
|
@@ -120,20 +120,52 @@ export class BrowserRelay extends EventEmitter {
|
|
|
120
120
|
isExtensionConnected() {
|
|
121
121
|
return this.extensionWs?.readyState === WebSocket.OPEN;
|
|
122
122
|
}
|
|
123
|
-
async send(method, params, timeoutMs = 30_000) {
|
|
123
|
+
async send(method, params, timeoutMs = 30_000, abortSignal) {
|
|
124
124
|
if (!this.extensionWs || this.extensionWs.readyState !== WebSocket.OPEN) {
|
|
125
125
|
throw new Error('Extension not connected. Load the CereWorker extension in Chrome and check the connection.');
|
|
126
126
|
}
|
|
127
127
|
const id = String(++this.commandId);
|
|
128
128
|
const command = { type: 'command', id, method, params };
|
|
129
129
|
return new Promise((resolve, reject) => {
|
|
130
|
+
const onAbort = () => {
|
|
131
|
+
cleanup();
|
|
132
|
+
this.pending.delete(id);
|
|
133
|
+
reject(createAbortError(`Command ${method} aborted`));
|
|
134
|
+
};
|
|
135
|
+
const cleanup = () => {
|
|
136
|
+
clearTimeout(timer);
|
|
137
|
+
abortSignal?.removeEventListener('abort', onAbort);
|
|
138
|
+
};
|
|
130
139
|
const timer = setTimeout(() => {
|
|
140
|
+
cleanup();
|
|
131
141
|
this.pending.delete(id);
|
|
132
142
|
reject(new Error(`Command ${method} timed out after ${timeoutMs}ms`));
|
|
133
143
|
}, timeoutMs);
|
|
134
|
-
|
|
144
|
+
if (abortSignal?.aborted) {
|
|
145
|
+
onAbort();
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (abortSignal) {
|
|
149
|
+
abortSignal.addEventListener('abort', onAbort, { once: true });
|
|
150
|
+
}
|
|
151
|
+
this.pending.set(id, {
|
|
152
|
+
resolve: (result) => {
|
|
153
|
+
cleanup();
|
|
154
|
+
resolve(result);
|
|
155
|
+
},
|
|
156
|
+
reject: (error) => {
|
|
157
|
+
cleanup();
|
|
158
|
+
reject(error);
|
|
159
|
+
},
|
|
160
|
+
timer,
|
|
161
|
+
});
|
|
135
162
|
this.extensionWs.send(JSON.stringify(command));
|
|
136
163
|
});
|
|
137
164
|
}
|
|
138
165
|
}
|
|
166
|
+
function createAbortError(message) {
|
|
167
|
+
const error = new Error(message);
|
|
168
|
+
error.name = 'AbortError';
|
|
169
|
+
return error;
|
|
170
|
+
}
|
|
139
171
|
//# sourceMappingURL=relay.js.map
|
package/dist/relay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.test.d.ts","sourceRoot":"","sources":["../src/relay.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import { WebSocket } from 'ws';
|
|
3
|
+
import { BrowserRelay } from './relay.js';
|
|
4
|
+
describe('BrowserRelay', () => {
|
|
5
|
+
let relay = null;
|
|
6
|
+
let extensionSocket = null;
|
|
7
|
+
afterEach(async () => {
|
|
8
|
+
if (extensionSocket) {
|
|
9
|
+
extensionSocket.close();
|
|
10
|
+
extensionSocket = null;
|
|
11
|
+
}
|
|
12
|
+
if (relay) {
|
|
13
|
+
await relay.stop();
|
|
14
|
+
relay = null;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
it('rejects pending commands immediately when aborted and clears the pending entry', async () => {
|
|
18
|
+
relay = new BrowserRelay({ port: 0 });
|
|
19
|
+
await relay.start();
|
|
20
|
+
const port = (relay.httpServer.address()).port;
|
|
21
|
+
extensionSocket = await new Promise((resolve, reject) => {
|
|
22
|
+
const socket = new WebSocket(`ws://127.0.0.1:${port}/extension`);
|
|
23
|
+
socket.once('open', () => resolve(socket));
|
|
24
|
+
socket.once('error', reject);
|
|
25
|
+
});
|
|
26
|
+
const abortController = new AbortController();
|
|
27
|
+
const sendPromise = relay.send('navigate', { url: 'https://example.com' }, 30_000, abortController.signal);
|
|
28
|
+
expect(relay.pending.size).toBe(1);
|
|
29
|
+
abortController.abort();
|
|
30
|
+
await expect(sendPromise).rejects.toMatchObject({
|
|
31
|
+
name: 'AbortError',
|
|
32
|
+
message: 'Command navigate aborted',
|
|
33
|
+
});
|
|
34
|
+
expect(relay.pending.size).toBe(0);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=relay.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relay.test.js","sourceRoot":"","sources":["../src/relay.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,KAAK,GAAwB,IAAI,CAAC;IACtC,IAAI,eAAe,GAAqB,IAAI,CAAC;IAE7C,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,KAAK,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,IAAI,GAAI,CAAE,KAAsE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAiB,CAAC,IAAI,CAAC;QAClI,eAAe,GAAG,MAAM,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,kBAAkB,IAAI,YAAY,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAE3G,MAAM,CAAE,KAAsD,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAErF,eAAe,CAAC,KAAK,EAAE,CAAC;QAExB,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;YAC9C,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;QACH,MAAM,CAAE,KAAsD,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -12,12 +12,16 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
12
12
|
}>;
|
|
13
13
|
execute: (args: {
|
|
14
14
|
url: string;
|
|
15
|
+
}, context?: {
|
|
16
|
+
abortSignal?: AbortSignal;
|
|
15
17
|
}) => Promise<string>;
|
|
16
18
|
};
|
|
17
19
|
browserGetText: {
|
|
18
20
|
description: string;
|
|
19
21
|
parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
20
|
-
execute: (args:
|
|
22
|
+
execute: (args: Record<string, never>, context?: {
|
|
23
|
+
abortSignal?: AbortSignal;
|
|
24
|
+
}) => Promise<string>;
|
|
21
25
|
};
|
|
22
26
|
browserScreenshot: {
|
|
23
27
|
description: string;
|
|
@@ -30,6 +34,8 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
30
34
|
}>;
|
|
31
35
|
execute: (args: {
|
|
32
36
|
path?: string;
|
|
37
|
+
}, context?: {
|
|
38
|
+
abortSignal?: AbortSignal;
|
|
33
39
|
}) => Promise<string>;
|
|
34
40
|
};
|
|
35
41
|
browserClick: {
|
|
@@ -43,6 +49,8 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
43
49
|
}>;
|
|
44
50
|
execute: (args: {
|
|
45
51
|
selector: string;
|
|
52
|
+
}, context?: {
|
|
53
|
+
abortSignal?: AbortSignal;
|
|
46
54
|
}) => Promise<string>;
|
|
47
55
|
};
|
|
48
56
|
browserClickByText: {
|
|
@@ -60,6 +68,8 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
60
68
|
execute: (args: {
|
|
61
69
|
text: string;
|
|
62
70
|
role?: string;
|
|
71
|
+
}, context?: {
|
|
72
|
+
abortSignal?: AbortSignal;
|
|
63
73
|
}) => Promise<string>;
|
|
64
74
|
};
|
|
65
75
|
browserType: {
|
|
@@ -77,6 +87,8 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
77
87
|
execute: (args: {
|
|
78
88
|
selector: string;
|
|
79
89
|
text: string;
|
|
90
|
+
}, context?: {
|
|
91
|
+
abortSignal?: AbortSignal;
|
|
80
92
|
}) => Promise<string>;
|
|
81
93
|
};
|
|
82
94
|
browserEval: {
|
|
@@ -90,6 +102,8 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
90
102
|
}>;
|
|
91
103
|
execute: (args: {
|
|
92
104
|
code: string;
|
|
105
|
+
}, context?: {
|
|
106
|
+
abortSignal?: AbortSignal;
|
|
93
107
|
}) => Promise<string>;
|
|
94
108
|
};
|
|
95
109
|
browserWait: {
|
|
@@ -107,17 +121,23 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
107
121
|
execute: (args: {
|
|
108
122
|
selector: string;
|
|
109
123
|
timeout?: number;
|
|
124
|
+
}, context?: {
|
|
125
|
+
abortSignal?: AbortSignal;
|
|
110
126
|
}) => Promise<string>;
|
|
111
127
|
};
|
|
112
128
|
browserGetUrl: {
|
|
113
129
|
description: string;
|
|
114
130
|
parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
115
|
-
execute: (args:
|
|
131
|
+
execute: (args: Record<string, never>, context?: {
|
|
132
|
+
abortSignal?: AbortSignal;
|
|
133
|
+
}) => Promise<string>;
|
|
116
134
|
};
|
|
117
135
|
browserListTabs: {
|
|
118
136
|
description: string;
|
|
119
137
|
parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
120
|
-
execute: (args:
|
|
138
|
+
execute: (args: Record<string, never>, context?: {
|
|
139
|
+
abortSignal?: AbortSignal;
|
|
140
|
+
}) => Promise<string>;
|
|
121
141
|
};
|
|
122
142
|
browserSwitchTab: {
|
|
123
143
|
description: string;
|
|
@@ -130,6 +150,8 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
130
150
|
}>;
|
|
131
151
|
execute: (args: {
|
|
132
152
|
tabId: string;
|
|
153
|
+
}, context?: {
|
|
154
|
+
abortSignal?: AbortSignal;
|
|
133
155
|
}) => Promise<string>;
|
|
134
156
|
};
|
|
135
157
|
browserNewTab: {
|
|
@@ -143,6 +165,8 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
143
165
|
}>;
|
|
144
166
|
execute: (args: {
|
|
145
167
|
url?: string;
|
|
168
|
+
}, context?: {
|
|
169
|
+
abortSignal?: AbortSignal;
|
|
146
170
|
}) => Promise<string>;
|
|
147
171
|
};
|
|
148
172
|
browserCloseTab: {
|
|
@@ -156,17 +180,23 @@ export declare function createBrowserTools(backend: BrowserBackend): {
|
|
|
156
180
|
}>;
|
|
157
181
|
execute: (args: {
|
|
158
182
|
tabId?: string;
|
|
183
|
+
}, context?: {
|
|
184
|
+
abortSignal?: AbortSignal;
|
|
159
185
|
}) => Promise<string>;
|
|
160
186
|
};
|
|
161
187
|
browserConnect: {
|
|
162
188
|
description: string;
|
|
163
189
|
parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
164
|
-
execute: (args:
|
|
190
|
+
execute: (args: Record<string, never>, context?: {
|
|
191
|
+
abortSignal?: AbortSignal;
|
|
192
|
+
}) => Promise<string>;
|
|
165
193
|
};
|
|
166
194
|
browserDisconnect: {
|
|
167
195
|
description: string;
|
|
168
196
|
parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
169
|
-
execute: (args: unknown
|
|
197
|
+
execute: (args: unknown, context?: {
|
|
198
|
+
abortSignal?: AbortSignal;
|
|
199
|
+
}) => Promise<string>;
|
|
170
200
|
};
|
|
171
201
|
};
|
|
172
202
|
export type BrowserTools = ReturnType<typeof createBrowserTools>;
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAiBnD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;iBAOxB,MAAM;qBApBjB;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;yDAAjD;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;mBAgC9B,MAAM;qBAhCzB;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;sBAuC3B,MAAM;qBAvC5B;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;kBA+C/B,MAAM;mBAAS,MAAM;qBA/CvC;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;sBAuD3B,MAAM;kBAAQ,MAAM;qBAvD1C;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;kBA8D/B,MAAM;qBA9DxB;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;sBAsE3B,MAAM;sBAAY,MAAM;qBAtE9C;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;yDAAjD;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;yDAAjD;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;mBA8F9B,MAAM;qBA9FzB;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;kBAqG/B,MAAM;qBArGxB;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;oBA4G7B,MAAM;qBA5G1B;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;yDAAjD;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;;;;2CAAjD;YAAE,WAAW,CAAC,EAAE,WAAW,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC;;EA4HvE;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACjE,MAAM,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC"}
|
package/dist/tools.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
function wrap(fn) {
|
|
3
|
-
return async (args) => {
|
|
3
|
+
return async (args, context) => {
|
|
4
4
|
try {
|
|
5
|
-
return await fn(args);
|
|
5
|
+
return await fn(args, context);
|
|
6
6
|
}
|
|
7
7
|
catch (err) {
|
|
8
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
9
|
+
throw err;
|
|
10
|
+
}
|
|
8
11
|
return err instanceof Error ? err.message : String(err);
|
|
9
12
|
}
|
|
10
13
|
};
|
|
@@ -16,26 +19,26 @@ export function createBrowserTools(backend) {
|
|
|
16
19
|
parameters: z.object({
|
|
17
20
|
url: z.string().describe('The URL to navigate to'),
|
|
18
21
|
}),
|
|
19
|
-
execute: wrap((args) => backend.navigate(args.url)),
|
|
22
|
+
execute: wrap((args, context) => backend.navigate(args.url, { abortSignal: context?.abortSignal })),
|
|
20
23
|
},
|
|
21
24
|
browserGetText: {
|
|
22
25
|
description: 'Get the visible text content of the current page',
|
|
23
26
|
parameters: z.object({}),
|
|
24
|
-
execute: wrap(async () => backend.getPageText()),
|
|
27
|
+
execute: wrap(async (_args, context) => backend.getPageText({ abortSignal: context?.abortSignal })),
|
|
25
28
|
},
|
|
26
29
|
browserScreenshot: {
|
|
27
30
|
description: 'Take a screenshot of the current page',
|
|
28
31
|
parameters: z.object({
|
|
29
32
|
path: z.string().optional().describe('File path to save screenshot'),
|
|
30
33
|
}),
|
|
31
|
-
execute: wrap(async (args) => backend.screenshot(args.path)),
|
|
34
|
+
execute: wrap(async (args, context) => backend.screenshot(args.path, { abortSignal: context?.abortSignal })),
|
|
32
35
|
},
|
|
33
36
|
browserClick: {
|
|
34
37
|
description: 'Click an element on the page by CSS selector. Uses full mouse event sequence for React/SPA compatibility.',
|
|
35
38
|
parameters: z.object({
|
|
36
39
|
selector: z.string().describe('CSS selector of the element to click'),
|
|
37
40
|
}),
|
|
38
|
-
execute: wrap(async (args) => backend.click(args.selector)),
|
|
41
|
+
execute: wrap(async (args, context) => backend.click(args.selector, { abortSignal: context?.abortSignal })),
|
|
39
42
|
},
|
|
40
43
|
browserClickByText: {
|
|
41
44
|
description: 'Click a button or link by its visible text. More reliable than CSS selectors for dynamic SPAs like X/Twitter. Optionally filter by ARIA role.',
|
|
@@ -43,7 +46,7 @@ export function createBrowserTools(backend) {
|
|
|
43
46
|
text: z.string().describe('Exact visible text of the element to click (e.g. "Next", "Post", "Log in")'),
|
|
44
47
|
role: z.string().optional().describe('Optional ARIA role filter (e.g. "button")'),
|
|
45
48
|
}),
|
|
46
|
-
execute: wrap(async (args) => backend.clickByText(args.text, args.role)),
|
|
49
|
+
execute: wrap(async (args, context) => backend.clickByText(args.text, args.role, { abortSignal: context?.abortSignal })),
|
|
47
50
|
},
|
|
48
51
|
browserType: {
|
|
49
52
|
description: 'Type text into an input element on the page',
|
|
@@ -51,14 +54,14 @@ export function createBrowserTools(backend) {
|
|
|
51
54
|
selector: z.string().describe('CSS selector of the input element'),
|
|
52
55
|
text: z.string().describe('Text to type'),
|
|
53
56
|
}),
|
|
54
|
-
execute: wrap(async (args) => backend.type(args.selector, args.text)),
|
|
57
|
+
execute: wrap(async (args, context) => backend.type(args.selector, args.text, { abortSignal: context?.abortSignal })),
|
|
55
58
|
},
|
|
56
59
|
browserEval: {
|
|
57
60
|
description: 'Execute JavaScript code in the browser page context',
|
|
58
61
|
parameters: z.object({
|
|
59
62
|
code: z.string().describe('JavaScript code to evaluate'),
|
|
60
63
|
}),
|
|
61
|
-
execute: wrap(async (args) => backend.evaluate(args.code)),
|
|
64
|
+
execute: wrap(async (args, context) => backend.evaluate(args.code, { abortSignal: context?.abortSignal })),
|
|
62
65
|
},
|
|
63
66
|
browserWait: {
|
|
64
67
|
description: 'Wait for a CSS selector to appear on the page',
|
|
@@ -66,18 +69,18 @@ export function createBrowserTools(backend) {
|
|
|
66
69
|
selector: z.string().describe('CSS selector to wait for'),
|
|
67
70
|
timeout: z.number().optional().default(5000).describe('Timeout in milliseconds'),
|
|
68
71
|
}),
|
|
69
|
-
execute: wrap(async (args) => backend.waitForSelector(args.selector, args.timeout)),
|
|
72
|
+
execute: wrap(async (args, context) => backend.waitForSelector(args.selector, args.timeout, { abortSignal: context?.abortSignal })),
|
|
70
73
|
},
|
|
71
74
|
browserGetUrl: {
|
|
72
75
|
description: 'Get the current URL of the browser page',
|
|
73
76
|
parameters: z.object({}),
|
|
74
|
-
execute: wrap(async () => backend.getPageUrl()),
|
|
77
|
+
execute: wrap(async (_args, context) => backend.getPageUrl({ abortSignal: context?.abortSignal })),
|
|
75
78
|
},
|
|
76
79
|
browserListTabs: {
|
|
77
80
|
description: 'List all open browser tabs with their URLs',
|
|
78
81
|
parameters: z.object({}),
|
|
79
|
-
execute: wrap(async () => {
|
|
80
|
-
const tabs = await backend.listTabs();
|
|
82
|
+
execute: wrap(async (_args, context) => {
|
|
83
|
+
const tabs = await backend.listTabs({ abortSignal: context?.abortSignal });
|
|
81
84
|
if (tabs.length === 0)
|
|
82
85
|
return 'No tabs open.';
|
|
83
86
|
return tabs.map((t) => `${t.active ? '→ ' : ' '}[${t.id}] ${t.url}${t.title ? ` - ${t.title}` : ''}`).join('\n');
|
|
@@ -88,26 +91,26 @@ export function createBrowserTools(backend) {
|
|
|
88
91
|
parameters: z.object({
|
|
89
92
|
tabId: z.string().describe('Tab ID from browserListTabs'),
|
|
90
93
|
}),
|
|
91
|
-
execute: wrap(async (args) => backend.switchTab(args.tabId)),
|
|
94
|
+
execute: wrap(async (args, context) => backend.switchTab(args.tabId, { abortSignal: context?.abortSignal })),
|
|
92
95
|
},
|
|
93
96
|
browserNewTab: {
|
|
94
97
|
description: 'Open a new browser tab, optionally navigating to a URL',
|
|
95
98
|
parameters: z.object({
|
|
96
99
|
url: z.string().optional().describe('URL to navigate to in the new tab'),
|
|
97
100
|
}),
|
|
98
|
-
execute: wrap(async (args) => backend.newTab(args.url)),
|
|
101
|
+
execute: wrap(async (args, context) => backend.newTab(args.url, { abortSignal: context?.abortSignal })),
|
|
99
102
|
},
|
|
100
103
|
browserCloseTab: {
|
|
101
104
|
description: 'Close a browser tab by ID, or close the current tab',
|
|
102
105
|
parameters: z.object({
|
|
103
106
|
tabId: z.string().optional().describe('Tab ID to close (current tab if omitted)'),
|
|
104
107
|
}),
|
|
105
|
-
execute: wrap(async (args) => backend.closeTab(args.tabId)),
|
|
108
|
+
execute: wrap(async (args, context) => backend.closeTab(args.tabId, { abortSignal: context?.abortSignal })),
|
|
106
109
|
},
|
|
107
110
|
browserConnect: {
|
|
108
111
|
description: 'Connect to the browser backend. In extension mode, waits for the Chrome extension.',
|
|
109
112
|
parameters: z.object({}),
|
|
110
|
-
execute: wrap(async () => backend.connect()),
|
|
113
|
+
execute: wrap(async (_args, context) => backend.connect({ abortSignal: context?.abortSignal })),
|
|
111
114
|
},
|
|
112
115
|
browserDisconnect: {
|
|
113
116
|
description: 'Disconnect from the browser without closing it',
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,SAAS,IAAI,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cereworker/browser",
|
|
3
|
-
"version": "26.329.
|
|
3
|
+
"version": "26.329.23",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"puppeteer": "^24.0.0",
|
|
21
21
|
"ws": "^8.18.0",
|
|
22
22
|
"zod": "^3.24.0",
|
|
23
|
-
"@cereworker/core": "26.329.
|
|
24
|
-
"@cereworker/config": "26.329.
|
|
23
|
+
"@cereworker/core": "26.329.23",
|
|
24
|
+
"@cereworker/config": "26.329.23"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/ws": "^8.5.14",
|