@polpo-ai/tools 0.6.29 → 0.6.31
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/audio-tools.d.ts +2 -1
- package/dist/audio-tools.d.ts.map +1 -1
- package/dist/audio-tools.js +56 -65
- package/dist/audio-tools.js.map +1 -1
- package/dist/browser-tools.d.ts +16 -11
- package/dist/browser-tools.d.ts.map +1 -1
- package/dist/browser-tools.js +112 -130
- package/dist/browser-tools.js.map +1 -1
- package/dist/pdf-render.mjs +113 -0
- package/dist/pdf-tools.d.ts +2 -1
- package/dist/pdf-tools.d.ts.map +1 -1
- package/dist/pdf-tools.js +105 -77
- package/dist/pdf-tools.js.map +1 -1
- package/dist/system-tools.js +3 -3
- package/dist/system-tools.js.map +1 -1
- package/package.json +3 -3
package/dist/browser-tools.js
CHANGED
|
@@ -2,107 +2,88 @@
|
|
|
2
2
|
* Browser automation tools powered by agent-browser.
|
|
3
3
|
*
|
|
4
4
|
* Uses the agent-browser CLI (https://github.com/vercel-labs/agent-browser)
|
|
5
|
-
*
|
|
5
|
+
* with --json output for structured results, routed through the
|
|
6
|
+
* Shell abstraction so it works the same in three environments:
|
|
7
|
+
* - OSS standalone (NodeShell): agent-browser must be on PATH
|
|
8
|
+
* locally (`npm install -g agent-browser && agent-browser install`).
|
|
9
|
+
* - Polpo task runner: NodeShell inside the sandbox; agent-browser
|
|
10
|
+
* is baked into the snapshot.
|
|
11
|
+
* - Cloud chat-completion (SandboxProxyShell): the worker proxies
|
|
12
|
+
* every command into the project's sandbox, where agent-browser
|
|
13
|
+
* lives. Without this routing the worker would `spawn` locally
|
|
14
|
+
* and fail with `ENOENT`, since the worker container has no
|
|
15
|
+
* Chromium and no agent-browser binary.
|
|
6
16
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* Requires `agent-browser` to be installed globally or in PATH.
|
|
11
|
-
* Install: `npm install -g agent-browser && agent-browser install`
|
|
12
|
-
*
|
|
13
|
-
* Session isolation: Each agent gets its own browser session via --session flag,
|
|
14
|
-
* preventing cross-agent interference when multiple agents use browser tools.
|
|
17
|
+
* Session isolation: each agent gets its own browser session via
|
|
18
|
+
* --session, preventing cross-agent interference.
|
|
15
19
|
*/
|
|
16
|
-
import { execSync, spawn as spawnChild } from "node:child_process";
|
|
17
20
|
import { resolve } from "node:path";
|
|
18
21
|
import { Type } from "@sinclair/typebox";
|
|
22
|
+
import { NodeShell } from "./adapters/node-shell.js";
|
|
19
23
|
const MAX_OUTPUT_BYTES = 50_000;
|
|
20
24
|
const DEFAULT_TIMEOUT = 30_000;
|
|
25
|
+
/** Quote a CLI argument so it survives `shell.execute` (which takes a
|
|
26
|
+
* full command line, not an argv). Conservative: single-quote and
|
|
27
|
+
* escape any embedded single quotes. */
|
|
28
|
+
function quote(arg) {
|
|
29
|
+
return `'${arg.replace(/'/g, `'\\''`)}'`;
|
|
30
|
+
}
|
|
21
31
|
/**
|
|
22
32
|
* Cleanup an agent-browser session: close the session.
|
|
23
33
|
* Profile data is automatically persisted by agent-browser when --profile is used.
|
|
24
34
|
* Called by the engine on agent exit.
|
|
25
35
|
*/
|
|
26
|
-
export async function cleanupAgentBrowserSession(session) {
|
|
36
|
+
export async function cleanupAgentBrowserSession(session, shell) {
|
|
37
|
+
const _shell = shell ?? new NodeShell();
|
|
27
38
|
try {
|
|
28
|
-
|
|
29
|
-
encoding: "utf-8",
|
|
30
|
-
timeout: 10_000,
|
|
31
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
32
|
-
});
|
|
39
|
+
await _shell.execute(`agent-browser --session ${quote(session)} close`, { timeout: 10_000 });
|
|
33
40
|
}
|
|
34
41
|
catch {
|
|
35
42
|
// Already closed
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
45
|
// ─── Helpers ───
|
|
39
|
-
/** Execute agent-browser CLI command
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
46
|
+
/** Execute an agent-browser CLI command via the Shell abstraction
|
|
47
|
+
* and parse the --json response. */
|
|
48
|
+
async function execBrowserAsync(shell, args, options = {}) {
|
|
49
|
+
const parts = ["agent-browser"];
|
|
50
|
+
if (options.session)
|
|
51
|
+
parts.push("--session", quote(options.session));
|
|
52
|
+
if (options.profileDir)
|
|
53
|
+
parts.push("--profile", quote(options.profileDir));
|
|
54
|
+
for (const a of args)
|
|
55
|
+
parts.push(quote(a));
|
|
56
|
+
parts.push("--json");
|
|
57
|
+
const cmd = parts.join(" ");
|
|
58
|
+
let result;
|
|
44
59
|
try {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
60
|
+
result = await shell.execute(cmd, { cwd: options.cwd, timeout: options.timeout ?? DEFAULT_TIMEOUT });
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
return { success: false, error: err?.message ?? String(err), raw: err?.message ?? String(err) };
|
|
64
|
+
}
|
|
65
|
+
let raw = (result.stdout || result.stderr || "").trim();
|
|
66
|
+
if (raw.length > MAX_OUTPUT_BYTES) {
|
|
67
|
+
raw = raw.slice(-MAX_OUTPUT_BYTES) + "\n[truncated]";
|
|
68
|
+
}
|
|
69
|
+
if (result.exitCode !== 0) {
|
|
70
|
+
// agent-browser still emits structured JSON on failure when --json
|
|
71
|
+
// is set; try to parse it before falling back to raw stderr.
|
|
51
72
|
try {
|
|
52
73
|
const parsed = JSON.parse(raw);
|
|
53
|
-
return { success: parsed.
|
|
74
|
+
return { success: false, error: parsed.error ?? raw, data: parsed.data, raw };
|
|
54
75
|
}
|
|
55
76
|
catch {
|
|
56
|
-
return { success:
|
|
77
|
+
return { success: false, error: raw || `exit ${result.exitCode}`, raw };
|
|
57
78
|
}
|
|
58
79
|
}
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
80
|
+
try {
|
|
81
|
+
const parsed = JSON.parse(raw);
|
|
82
|
+
return { success: parsed.success ?? true, data: parsed.data ?? parsed, raw };
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return { success: true, data: raw, raw };
|
|
63
86
|
}
|
|
64
|
-
}
|
|
65
|
-
/** Execute agent-browser command async with signal support */
|
|
66
|
-
function execBrowserAsync(args, options = {}) {
|
|
67
|
-
return new Promise((resolve) => {
|
|
68
|
-
const sessionArgs = options.session ? ["--session", options.session] : [];
|
|
69
|
-
const profileArgs = options.profileDir ? ["--profile", options.profileDir] : [];
|
|
70
|
-
const fullArgs = [...sessionArgs, ...profileArgs, ...args, "--json"];
|
|
71
|
-
const child = spawnChild("agent-browser", fullArgs, {
|
|
72
|
-
cwd: options.cwd,
|
|
73
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
74
|
-
});
|
|
75
|
-
const chunks = [];
|
|
76
|
-
let killed = false;
|
|
77
|
-
const timer = setTimeout(() => {
|
|
78
|
-
killed = true;
|
|
79
|
-
child.kill("SIGTERM");
|
|
80
|
-
}, options.timeout ?? DEFAULT_TIMEOUT);
|
|
81
|
-
const onAbort = () => { killed = true; child.kill("SIGTERM"); };
|
|
82
|
-
options.signal?.addEventListener("abort", onAbort, { once: true });
|
|
83
|
-
child.stdout.on("data", (d) => chunks.push(d));
|
|
84
|
-
child.stderr.on("data", (d) => chunks.push(d));
|
|
85
|
-
child.on("close", (code) => {
|
|
86
|
-
clearTimeout(timer);
|
|
87
|
-
options.signal?.removeEventListener("abort", onAbort);
|
|
88
|
-
let raw = Buffer.concat(chunks).toString("utf-8").trim();
|
|
89
|
-
if (raw.length > MAX_OUTPUT_BYTES) {
|
|
90
|
-
raw = raw.slice(-MAX_OUTPUT_BYTES) + "\n[truncated]";
|
|
91
|
-
}
|
|
92
|
-
try {
|
|
93
|
-
const parsed = JSON.parse(raw);
|
|
94
|
-
resolve({ success: parsed.success ?? (code === 0), data: parsed.data ?? parsed, raw });
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
resolve({ success: code === 0, data: raw, raw });
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
child.on("error", (err) => {
|
|
101
|
-
clearTimeout(timer);
|
|
102
|
-
options.signal?.removeEventListener("abort", onAbort);
|
|
103
|
-
resolve({ success: false, error: err.message, raw: err.message });
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
87
|
}
|
|
107
88
|
function browserResult(result) {
|
|
108
89
|
if (!result.success) {
|
|
@@ -121,14 +102,14 @@ function browserResult(result) {
|
|
|
121
102
|
const BrowserNavigateSchema = Type.Object({
|
|
122
103
|
url: Type.String({ description: "URL to navigate to (e.g. 'https://example.com')" }),
|
|
123
104
|
});
|
|
124
|
-
function createBrowserNavigateTool(session, profileDir) {
|
|
105
|
+
function createBrowserNavigateTool(shell, session, profileDir) {
|
|
125
106
|
return {
|
|
126
107
|
name: "browser_navigate",
|
|
127
108
|
label: "Browser Navigate",
|
|
128
109
|
description: "Open a URL in the browser. Launches the browser if not already running.",
|
|
129
110
|
parameters: BrowserNavigateSchema,
|
|
130
111
|
async execute(_id, params, signal) {
|
|
131
|
-
const result = await execBrowserAsync(["open", params.url], { session, profileDir
|
|
112
|
+
const result = await execBrowserAsync(shell, ["open", params.url], { session, profileDir });
|
|
132
113
|
return browserResult(result);
|
|
133
114
|
},
|
|
134
115
|
};
|
|
@@ -140,7 +121,7 @@ const BrowserSnapshotSchema = Type.Object({
|
|
|
140
121
|
max_depth: Type.Optional(Type.Number({ description: "Limit tree depth" })),
|
|
141
122
|
selector: Type.Optional(Type.String({ description: "Scope snapshot to a CSS selector" })),
|
|
142
123
|
});
|
|
143
|
-
function createBrowserSnapshotTool(session, profileDir) {
|
|
124
|
+
function createBrowserSnapshotTool(shell, session, profileDir) {
|
|
144
125
|
return {
|
|
145
126
|
name: "browser_snapshot",
|
|
146
127
|
label: "Browser Snapshot",
|
|
@@ -157,7 +138,7 @@ function createBrowserSnapshotTool(session, profileDir) {
|
|
|
157
138
|
args.push("-d", String(params.max_depth));
|
|
158
139
|
if (params.selector)
|
|
159
140
|
args.push("-s", params.selector);
|
|
160
|
-
const result = await execBrowserAsync(args, { session, profileDir,
|
|
141
|
+
const result = await execBrowserAsync(shell, args, { session, profileDir, timeout: 15_000 });
|
|
161
142
|
return browserResult(result);
|
|
162
143
|
},
|
|
163
144
|
};
|
|
@@ -166,14 +147,14 @@ function createBrowserSnapshotTool(session, profileDir) {
|
|
|
166
147
|
const BrowserClickSchema = Type.Object({
|
|
167
148
|
selector: Type.String({ description: "Element ref from snapshot (e.g. '@e2') or CSS selector" }),
|
|
168
149
|
});
|
|
169
|
-
function createBrowserClickTool(session, profileDir) {
|
|
150
|
+
function createBrowserClickTool(shell, session, profileDir) {
|
|
170
151
|
return {
|
|
171
152
|
name: "browser_click",
|
|
172
153
|
label: "Browser Click",
|
|
173
154
|
description: "Click an element. Use refs from snapshot (e.g. @e2) for reliable targeting.",
|
|
174
155
|
parameters: BrowserClickSchema,
|
|
175
156
|
async execute(_id, params, signal) {
|
|
176
|
-
const result = await execBrowserAsync(["click", params.selector], { session, profileDir
|
|
157
|
+
const result = await execBrowserAsync(shell, ["click", params.selector], { session, profileDir });
|
|
177
158
|
return browserResult(result);
|
|
178
159
|
},
|
|
179
160
|
};
|
|
@@ -183,14 +164,14 @@ const BrowserFillSchema = Type.Object({
|
|
|
183
164
|
selector: Type.String({ description: "Element ref from snapshot (e.g. '@e3') or CSS selector" }),
|
|
184
165
|
text: Type.String({ description: "Text to fill into the input" }),
|
|
185
166
|
});
|
|
186
|
-
function createBrowserFillTool(session, profileDir) {
|
|
167
|
+
function createBrowserFillTool(shell, session, profileDir) {
|
|
187
168
|
return {
|
|
188
169
|
name: "browser_fill",
|
|
189
170
|
label: "Browser Fill",
|
|
190
171
|
description: "Clear an input field and type new text. Use refs from snapshot for targeting.",
|
|
191
172
|
parameters: BrowserFillSchema,
|
|
192
173
|
async execute(_id, params, signal) {
|
|
193
|
-
const result = await execBrowserAsync(["fill", params.selector, params.text], { session, profileDir
|
|
174
|
+
const result = await execBrowserAsync(shell, ["fill", params.selector, params.text], { session, profileDir });
|
|
194
175
|
return browserResult(result);
|
|
195
176
|
},
|
|
196
177
|
};
|
|
@@ -200,14 +181,14 @@ const BrowserTypeSchema = Type.Object({
|
|
|
200
181
|
selector: Type.String({ description: "Element ref or CSS selector" }),
|
|
201
182
|
text: Type.String({ description: "Text to type (appends to existing content)" }),
|
|
202
183
|
});
|
|
203
|
-
function createBrowserTypeTool(session, profileDir) {
|
|
184
|
+
function createBrowserTypeTool(shell, session, profileDir) {
|
|
204
185
|
return {
|
|
205
186
|
name: "browser_type",
|
|
206
187
|
label: "Browser Type",
|
|
207
188
|
description: "Type text into an element without clearing it first. Use for appending text.",
|
|
208
189
|
parameters: BrowserTypeSchema,
|
|
209
190
|
async execute(_id, params, signal) {
|
|
210
|
-
const result = await execBrowserAsync(["type", params.selector, params.text], { session, profileDir
|
|
191
|
+
const result = await execBrowserAsync(shell, ["type", params.selector, params.text], { session, profileDir });
|
|
211
192
|
return browserResult(result);
|
|
212
193
|
},
|
|
213
194
|
};
|
|
@@ -216,14 +197,14 @@ function createBrowserTypeTool(session, profileDir) {
|
|
|
216
197
|
const BrowserPressSchema = Type.Object({
|
|
217
198
|
key: Type.String({ description: "Key to press (e.g. 'Enter', 'Tab', 'Control+a', 'Escape')" }),
|
|
218
199
|
});
|
|
219
|
-
function createBrowserPressTool(session, profileDir) {
|
|
200
|
+
function createBrowserPressTool(shell, session, profileDir) {
|
|
220
201
|
return {
|
|
221
202
|
name: "browser_press",
|
|
222
203
|
label: "Browser Press Key",
|
|
223
204
|
description: "Press a keyboard key. Supports modifiers like 'Control+a', 'Shift+Enter'.",
|
|
224
205
|
parameters: BrowserPressSchema,
|
|
225
206
|
async execute(_id, params, signal) {
|
|
226
|
-
const result = await execBrowserAsync(["press", params.key], { session, profileDir
|
|
207
|
+
const result = await execBrowserAsync(shell, ["press", params.key], { session, profileDir });
|
|
227
208
|
return browserResult(result);
|
|
228
209
|
},
|
|
229
210
|
};
|
|
@@ -233,7 +214,7 @@ const BrowserScreenshotSchema = Type.Object({
|
|
|
233
214
|
path: Type.Optional(Type.String({ description: "File path to save screenshot (default: auto-generated temp path)" })),
|
|
234
215
|
full_page: Type.Optional(Type.Boolean({ description: "Capture full page, not just viewport" })),
|
|
235
216
|
});
|
|
236
|
-
function createBrowserScreenshotTool(session, cwd, profileDir) {
|
|
217
|
+
function createBrowserScreenshotTool(shell, session, cwd, profileDir) {
|
|
237
218
|
return {
|
|
238
219
|
name: "browser_screenshot",
|
|
239
220
|
label: "Browser Screenshot",
|
|
@@ -245,7 +226,7 @@ function createBrowserScreenshotTool(session, cwd, profileDir) {
|
|
|
245
226
|
args.push(resolve(cwd, params.path));
|
|
246
227
|
if (params.full_page)
|
|
247
228
|
args.push("--full");
|
|
248
|
-
const result = await execBrowserAsync(args, { session, profileDir
|
|
229
|
+
const result = await execBrowserAsync(shell, args, { session, profileDir });
|
|
249
230
|
return browserResult(result);
|
|
250
231
|
},
|
|
251
232
|
};
|
|
@@ -261,7 +242,7 @@ const BrowserGetSchema = Type.Object({
|
|
|
261
242
|
], { description: "What to retrieve: text, html, value, title, or url" }),
|
|
262
243
|
selector: Type.Optional(Type.String({ description: "Element ref or CSS selector (required for text/html/value)" })),
|
|
263
244
|
});
|
|
264
|
-
function createBrowserGetTool(session, profileDir) {
|
|
245
|
+
function createBrowserGetTool(shell, session, profileDir) {
|
|
265
246
|
return {
|
|
266
247
|
name: "browser_get",
|
|
267
248
|
label: "Browser Get Info",
|
|
@@ -271,7 +252,7 @@ function createBrowserGetTool(session, profileDir) {
|
|
|
271
252
|
const args = ["get", params.what];
|
|
272
253
|
if (params.selector)
|
|
273
254
|
args.push(params.selector);
|
|
274
|
-
const result = await execBrowserAsync(args, { session, profileDir
|
|
255
|
+
const result = await execBrowserAsync(shell, args, { session, profileDir });
|
|
275
256
|
return browserResult(result);
|
|
276
257
|
},
|
|
277
258
|
};
|
|
@@ -281,14 +262,14 @@ const BrowserSelectSchema = Type.Object({
|
|
|
281
262
|
selector: Type.String({ description: "Element ref or CSS selector for the <select> element" }),
|
|
282
263
|
value: Type.String({ description: "Option value to select" }),
|
|
283
264
|
});
|
|
284
|
-
function createBrowserSelectTool(session, profileDir) {
|
|
265
|
+
function createBrowserSelectTool(shell, session, profileDir) {
|
|
285
266
|
return {
|
|
286
267
|
name: "browser_select",
|
|
287
268
|
label: "Browser Select",
|
|
288
269
|
description: "Select an option from a dropdown <select> element.",
|
|
289
270
|
parameters: BrowserSelectSchema,
|
|
290
271
|
async execute(_id, params, signal) {
|
|
291
|
-
const result = await execBrowserAsync(["select", params.selector, params.value], { session, profileDir
|
|
272
|
+
const result = await execBrowserAsync(shell, ["select", params.selector, params.value], { session, profileDir });
|
|
292
273
|
return browserResult(result);
|
|
293
274
|
},
|
|
294
275
|
};
|
|
@@ -297,14 +278,14 @@ function createBrowserSelectTool(session, profileDir) {
|
|
|
297
278
|
const BrowserHoverSchema = Type.Object({
|
|
298
279
|
selector: Type.String({ description: "Element ref or CSS selector to hover" }),
|
|
299
280
|
});
|
|
300
|
-
function createBrowserHoverTool(session, profileDir) {
|
|
281
|
+
function createBrowserHoverTool(shell, session, profileDir) {
|
|
301
282
|
return {
|
|
302
283
|
name: "browser_hover",
|
|
303
284
|
label: "Browser Hover",
|
|
304
285
|
description: "Hover over an element to trigger hover states, tooltips, or dropdown menus.",
|
|
305
286
|
parameters: BrowserHoverSchema,
|
|
306
287
|
async execute(_id, params, signal) {
|
|
307
|
-
const result = await execBrowserAsync(["hover", params.selector], { session, profileDir
|
|
288
|
+
const result = await execBrowserAsync(shell, ["hover", params.selector], { session, profileDir });
|
|
308
289
|
return browserResult(result);
|
|
309
290
|
},
|
|
310
291
|
};
|
|
@@ -319,7 +300,7 @@ const BrowserScrollSchema = Type.Object({
|
|
|
319
300
|
], { description: "Scroll direction" }),
|
|
320
301
|
pixels: Type.Optional(Type.Number({ description: "Number of pixels to scroll (default: varies)" })),
|
|
321
302
|
});
|
|
322
|
-
function createBrowserScrollTool(session, profileDir) {
|
|
303
|
+
function createBrowserScrollTool(shell, session, profileDir) {
|
|
323
304
|
return {
|
|
324
305
|
name: "browser_scroll",
|
|
325
306
|
label: "Browser Scroll",
|
|
@@ -329,7 +310,7 @@ function createBrowserScrollTool(session, profileDir) {
|
|
|
329
310
|
const args = ["scroll", params.direction];
|
|
330
311
|
if (params.pixels)
|
|
331
312
|
args.push(String(params.pixels));
|
|
332
|
-
const result = await execBrowserAsync(args, { session, profileDir
|
|
313
|
+
const result = await execBrowserAsync(shell, args, { session, profileDir });
|
|
333
314
|
return browserResult(result);
|
|
334
315
|
},
|
|
335
316
|
};
|
|
@@ -346,7 +327,7 @@ const BrowserWaitSchema = Type.Object({
|
|
|
346
327
|
Type.Literal("networkidle"),
|
|
347
328
|
], { description: "Wait for load state" })),
|
|
348
329
|
});
|
|
349
|
-
function createBrowserWaitTool(session, profileDir) {
|
|
330
|
+
function createBrowserWaitTool(shell, session, profileDir) {
|
|
350
331
|
return {
|
|
351
332
|
name: "browser_wait",
|
|
352
333
|
label: "Browser Wait",
|
|
@@ -364,7 +345,7 @@ function createBrowserWaitTool(session, profileDir) {
|
|
|
364
345
|
args.push(String(params.timeout_ms));
|
|
365
346
|
if (params.load_state)
|
|
366
347
|
args.push("--load", params.load_state);
|
|
367
|
-
const result = await execBrowserAsync(args, { session, profileDir,
|
|
348
|
+
const result = await execBrowserAsync(shell, args, { session, profileDir, timeout: 60_000 });
|
|
368
349
|
return browserResult(result);
|
|
369
350
|
},
|
|
370
351
|
};
|
|
@@ -373,7 +354,7 @@ function createBrowserWaitTool(session, profileDir) {
|
|
|
373
354
|
const BrowserEvalSchema = Type.Object({
|
|
374
355
|
javascript: Type.String({ description: "JavaScript code to execute in the browser page context" }),
|
|
375
356
|
});
|
|
376
|
-
function createBrowserEvalTool(session, profileDir) {
|
|
357
|
+
function createBrowserEvalTool(shell, session, profileDir) {
|
|
377
358
|
return {
|
|
378
359
|
name: "browser_eval",
|
|
379
360
|
label: "Browser Evaluate JS",
|
|
@@ -383,57 +364,57 @@ function createBrowserEvalTool(session, profileDir) {
|
|
|
383
364
|
async execute(_id, params, signal) {
|
|
384
365
|
// Use base64 encoding for safe transport of complex JS
|
|
385
366
|
const b64 = Buffer.from(params.javascript).toString("base64");
|
|
386
|
-
const result = await execBrowserAsync(["eval", b64, "-b"], { session, profileDir
|
|
367
|
+
const result = await execBrowserAsync(shell, ["eval", b64, "-b"], { session, profileDir });
|
|
387
368
|
return browserResult(result);
|
|
388
369
|
},
|
|
389
370
|
};
|
|
390
371
|
}
|
|
391
372
|
// ─── Tool: browser_close ───
|
|
392
373
|
const BrowserCloseSchema = Type.Object({});
|
|
393
|
-
function createBrowserCloseTool(session) {
|
|
374
|
+
function createBrowserCloseTool(shell, session) {
|
|
394
375
|
return {
|
|
395
376
|
name: "browser_close",
|
|
396
377
|
label: "Browser Close",
|
|
397
378
|
description: "Close the browser session. Profile data (cookies, login) is saved automatically.",
|
|
398
379
|
parameters: BrowserCloseSchema,
|
|
399
380
|
async execute(_id, _params, signal) {
|
|
400
|
-
const result = await execBrowserAsync(["close"], { session
|
|
381
|
+
const result = await execBrowserAsync(shell, ["close"], { session });
|
|
401
382
|
return browserResult(result);
|
|
402
383
|
},
|
|
403
384
|
};
|
|
404
385
|
}
|
|
405
386
|
// ─── Tool: browser_back / browser_forward / browser_reload ───
|
|
406
387
|
const BrowserNavActionSchema = Type.Object({});
|
|
407
|
-
function createBrowserBackTool(session, profileDir) {
|
|
388
|
+
function createBrowserBackTool(shell, session, profileDir) {
|
|
408
389
|
return {
|
|
409
390
|
name: "browser_back",
|
|
410
391
|
label: "Browser Back",
|
|
411
392
|
description: "Navigate back in browser history.",
|
|
412
393
|
parameters: BrowserNavActionSchema,
|
|
413
394
|
async execute(_id, _params, signal) {
|
|
414
|
-
return browserResult(await execBrowserAsync(["back"], { session, profileDir
|
|
395
|
+
return browserResult(await execBrowserAsync(shell, ["back"], { session, profileDir }));
|
|
415
396
|
},
|
|
416
397
|
};
|
|
417
398
|
}
|
|
418
|
-
function createBrowserForwardTool(session, profileDir) {
|
|
399
|
+
function createBrowserForwardTool(shell, session, profileDir) {
|
|
419
400
|
return {
|
|
420
401
|
name: "browser_forward",
|
|
421
402
|
label: "Browser Forward",
|
|
422
403
|
description: "Navigate forward in browser history.",
|
|
423
404
|
parameters: BrowserNavActionSchema,
|
|
424
405
|
async execute(_id, _params, signal) {
|
|
425
|
-
return browserResult(await execBrowserAsync(["forward"], { session, profileDir
|
|
406
|
+
return browserResult(await execBrowserAsync(shell, ["forward"], { session, profileDir }));
|
|
426
407
|
},
|
|
427
408
|
};
|
|
428
409
|
}
|
|
429
|
-
function createBrowserReloadTool(session, profileDir) {
|
|
410
|
+
function createBrowserReloadTool(shell, session, profileDir) {
|
|
430
411
|
return {
|
|
431
412
|
name: "browser_reload",
|
|
432
413
|
label: "Browser Reload",
|
|
433
414
|
description: "Reload the current page.",
|
|
434
415
|
parameters: BrowserNavActionSchema,
|
|
435
416
|
async execute(_id, _params, signal) {
|
|
436
|
-
return browserResult(await execBrowserAsync(["reload"], { session, profileDir
|
|
417
|
+
return browserResult(await execBrowserAsync(shell, ["reload"], { session, profileDir }));
|
|
437
418
|
},
|
|
438
419
|
};
|
|
439
420
|
}
|
|
@@ -448,7 +429,7 @@ const BrowserTabsSchema = Type.Object({
|
|
|
448
429
|
index: Type.Optional(Type.Number({ description: "Tab index for switch/close actions" })),
|
|
449
430
|
url: Type.Optional(Type.String({ description: "URL to open in new tab" })),
|
|
450
431
|
});
|
|
451
|
-
function createBrowserTabsTool(session, profileDir) {
|
|
432
|
+
function createBrowserTabsTool(shell, session, profileDir) {
|
|
452
433
|
return {
|
|
453
434
|
name: "browser_tabs",
|
|
454
435
|
label: "Browser Tabs",
|
|
@@ -474,7 +455,7 @@ function createBrowserTabsTool(session, profileDir) {
|
|
|
474
455
|
args.push(String(params.index));
|
|
475
456
|
break;
|
|
476
457
|
}
|
|
477
|
-
const result = await execBrowserAsync(args, { session, profileDir
|
|
458
|
+
const result = await execBrowserAsync(shell, args, { session, profileDir });
|
|
478
459
|
return browserResult(result);
|
|
479
460
|
},
|
|
480
461
|
};
|
|
@@ -496,26 +477,27 @@ export const ALL_BROWSER_TOOL_NAMES = [
|
|
|
496
477
|
* Stores cookies, localStorage, auth state across sessions.
|
|
497
478
|
* Typically `.polpo/browser-profiles/<agent>/`.
|
|
498
479
|
*/
|
|
499
|
-
export function createBrowserTools(cwd, session = "default", allowedTools, profileDir) {
|
|
480
|
+
export function createBrowserTools(cwd, session = "default", allowedTools, profileDir, shell) {
|
|
481
|
+
const _shell = shell ?? new NodeShell();
|
|
500
482
|
const factories = {
|
|
501
|
-
browser_navigate: () => createBrowserNavigateTool(session, profileDir),
|
|
502
|
-
browser_snapshot: () => createBrowserSnapshotTool(session, profileDir),
|
|
503
|
-
browser_click: () => createBrowserClickTool(session, profileDir),
|
|
504
|
-
browser_fill: () => createBrowserFillTool(session, profileDir),
|
|
505
|
-
browser_type: () => createBrowserTypeTool(session, profileDir),
|
|
506
|
-
browser_press: () => createBrowserPressTool(session, profileDir),
|
|
507
|
-
browser_screenshot: () => createBrowserScreenshotTool(session, cwd, profileDir),
|
|
508
|
-
browser_get: () => createBrowserGetTool(session, profileDir),
|
|
509
|
-
browser_select: () => createBrowserSelectTool(session, profileDir),
|
|
510
|
-
browser_hover: () => createBrowserHoverTool(session, profileDir),
|
|
511
|
-
browser_scroll: () => createBrowserScrollTool(session, profileDir),
|
|
512
|
-
browser_wait: () => createBrowserWaitTool(session, profileDir),
|
|
513
|
-
browser_eval: () => createBrowserEvalTool(session, profileDir),
|
|
514
|
-
browser_close: () => createBrowserCloseTool(session),
|
|
515
|
-
browser_back: () => createBrowserBackTool(session, profileDir),
|
|
516
|
-
browser_forward: () => createBrowserForwardTool(session, profileDir),
|
|
517
|
-
browser_reload: () => createBrowserReloadTool(session, profileDir),
|
|
518
|
-
browser_tabs: () => createBrowserTabsTool(session, profileDir),
|
|
483
|
+
browser_navigate: () => createBrowserNavigateTool(_shell, session, profileDir),
|
|
484
|
+
browser_snapshot: () => createBrowserSnapshotTool(_shell, session, profileDir),
|
|
485
|
+
browser_click: () => createBrowserClickTool(_shell, session, profileDir),
|
|
486
|
+
browser_fill: () => createBrowserFillTool(_shell, session, profileDir),
|
|
487
|
+
browser_type: () => createBrowserTypeTool(_shell, session, profileDir),
|
|
488
|
+
browser_press: () => createBrowserPressTool(_shell, session, profileDir),
|
|
489
|
+
browser_screenshot: () => createBrowserScreenshotTool(_shell, session, cwd, profileDir),
|
|
490
|
+
browser_get: () => createBrowserGetTool(_shell, session, profileDir),
|
|
491
|
+
browser_select: () => createBrowserSelectTool(_shell, session, profileDir),
|
|
492
|
+
browser_hover: () => createBrowserHoverTool(_shell, session, profileDir),
|
|
493
|
+
browser_scroll: () => createBrowserScrollTool(_shell, session, profileDir),
|
|
494
|
+
browser_wait: () => createBrowserWaitTool(_shell, session, profileDir),
|
|
495
|
+
browser_eval: () => createBrowserEvalTool(_shell, session, profileDir),
|
|
496
|
+
browser_close: () => createBrowserCloseTool(_shell, session),
|
|
497
|
+
browser_back: () => createBrowserBackTool(_shell, session, profileDir),
|
|
498
|
+
browser_forward: () => createBrowserForwardTool(_shell, session, profileDir),
|
|
499
|
+
browser_reload: () => createBrowserReloadTool(_shell, session, profileDir),
|
|
500
|
+
browser_tabs: () => createBrowserTabsTool(_shell, session, profileDir),
|
|
519
501
|
};
|
|
520
502
|
const names = allowedTools
|
|
521
503
|
? ALL_BROWSER_TOOL_NAMES.filter(n => allowedTools.some(a => a.toLowerCase() === n))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-tools.js","sourceRoot":"","sources":["../src/browser-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-tools.js","sourceRoot":"","sources":["../src/browser-tools.ts"],"names":[],"mappings":"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"}
|