browser-autopilot 0.4.0 → 0.4.1
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/agent/loop.js +15 -28
- package/dist/agent/loop.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/loop.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Uses the Vercel AI SDK gateway — works with any model provider
|
|
5
5
|
* (Anthropic, OpenAI, Google, etc.) via AI_GATEWAY_API_KEY.
|
|
6
6
|
*/
|
|
7
|
-
import { generateText, stepCountIs
|
|
7
|
+
import { generateText, stepCountIs } from "ai";
|
|
8
8
|
import { gateway } from "ai";
|
|
9
9
|
import { writeFileSync, mkdirSync } from "fs";
|
|
10
10
|
import { captureBrowserState, formatStateForLLM } from "./state.js";
|
|
@@ -33,55 +33,42 @@ For each step, think about:
|
|
|
33
33
|
3. What should you do next? (next goal)
|
|
34
34
|
4. What specific actions to take?`;
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function wrapToolsForTracking(rawTools, dataDir, tracker) {
|
|
37
37
|
const wrapped = {};
|
|
38
38
|
for (const [name, t] of Object.entries(rawTools)) {
|
|
39
39
|
if (!t)
|
|
40
40
|
continue;
|
|
41
|
-
const
|
|
42
|
-
if (!
|
|
41
|
+
const originalExecute = t.execute;
|
|
42
|
+
if (!originalExecute) {
|
|
43
|
+
wrapped[name] = t;
|
|
43
44
|
continue;
|
|
44
|
-
|
|
45
|
+
}
|
|
45
46
|
const isDone = name === "done";
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
...(isScreenshot
|
|
50
|
-
? {
|
|
51
|
-
experimental_toToolResultContent: (result) => {
|
|
52
|
-
if (result?.image_base64) {
|
|
53
|
-
return [{ type: "image", data: Buffer.from(result.image_base64, "base64"), mediaType: "image/png" }];
|
|
54
|
-
}
|
|
55
|
-
return [{ type: "text", text: JSON.stringify(result) }];
|
|
56
|
-
},
|
|
57
|
-
}
|
|
58
|
-
: {}),
|
|
47
|
+
const isScreenshot = name === "screenshot";
|
|
48
|
+
wrapped[name] = {
|
|
49
|
+
...t,
|
|
59
50
|
execute: async (args) => {
|
|
60
51
|
console.log(` → ${name}(${JSON.stringify(args).slice(0, 80)})`);
|
|
61
52
|
const action = { name, params: args };
|
|
62
53
|
tracker.actions.push(action);
|
|
63
54
|
try {
|
|
64
|
-
const toolResult = await
|
|
55
|
+
const toolResult = await originalExecute(args);
|
|
65
56
|
action.result = typeof toolResult === "string" ? toolResult : JSON.stringify(toolResult);
|
|
66
57
|
if (isDone) {
|
|
67
58
|
tracker.result = toolResult.text ?? action.result;
|
|
68
59
|
tracker.success = toolResult.success ?? true;
|
|
69
60
|
console.log(`\n✓ Task complete: ${tracker.result?.slice(0, 100)}`);
|
|
70
|
-
return toolResult;
|
|
71
61
|
}
|
|
72
|
-
if (isScreenshot)
|
|
62
|
+
if (isScreenshot)
|
|
73
63
|
action.result = "(screenshot taken)";
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
if (action.result.length > 4000) {
|
|
64
|
+
if (!isDone && !isScreenshot && action.result.length > 4000) {
|
|
77
65
|
const spillPath = `${dataDir}/tool_result_${name}.txt`;
|
|
78
66
|
try {
|
|
79
67
|
mkdirSync(dataDir, { recursive: true });
|
|
80
68
|
writeFileSync(spillPath, action.result);
|
|
81
69
|
}
|
|
82
70
|
catch { }
|
|
83
|
-
|
|
84
|
-
return `${preview}\n\n... (${action.result.length} chars total — full output saved to ${spillPath}, use shell to search)`;
|
|
71
|
+
return `${action.result.slice(0, 1500)}\n\n... (${action.result.length} chars — full: ${spillPath})`;
|
|
85
72
|
}
|
|
86
73
|
return toolResult;
|
|
87
74
|
}
|
|
@@ -91,7 +78,7 @@ function wrapToolsForGateway(rawTools, dataDir, tracker) {
|
|
|
91
78
|
throw e;
|
|
92
79
|
}
|
|
93
80
|
},
|
|
94
|
-
}
|
|
81
|
+
};
|
|
95
82
|
}
|
|
96
83
|
return wrapped;
|
|
97
84
|
}
|
|
@@ -135,7 +122,7 @@ export async function runAgent(opts) {
|
|
|
135
122
|
result: null,
|
|
136
123
|
success: false,
|
|
137
124
|
};
|
|
138
|
-
const wrappedTools =
|
|
125
|
+
const wrappedTools = wrapToolsForTracking(rawTools, dataDir, tracker);
|
|
139
126
|
const messages = [{
|
|
140
127
|
role: "user",
|
|
141
128
|
content: [
|
package/dist/agent/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED