browserclaw-agent 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop.js +296 -58
- package/dist/agent-loop.js.map +1 -1
- package/dist/routes.js +2 -2
- package/dist/routes.js.map +1 -1
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +1 -0
- package/dist/session-manager.js.map +1 -1
- package/dist/skills/dismiss-popup.d.ts +2 -1
- package/dist/skills/dismiss-popup.d.ts.map +1 -1
- package/dist/skills/dismiss-popup.js +47 -23
- package/dist/skills/dismiss-popup.js.map +1 -1
- package/dist/skills/extract-items.d.ts +9 -1
- package/dist/skills/extract-items.d.ts.map +1 -1
- package/dist/skills/extract-items.js +228 -16
- package/dist/skills/extract-items.js.map +1 -1
- package/dist/skills/loop-detection.d.ts.map +1 -1
- package/dist/skills/loop-detection.js +9 -0
- package/dist/skills/loop-detection.js.map +1 -1
- package/dist/skills/press-and-hold.d.ts.map +1 -1
- package/dist/skills/press-and-hold.js +12 -3
- package/dist/skills/press-and-hold.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { logger } from '../logger.js';
|
|
2
|
-
const MAX_RECORDS =
|
|
2
|
+
const MAX_RECORDS = 50;
|
|
3
3
|
const EXTRACTION_FN = `
|
|
4
4
|
(function() {
|
|
5
|
-
const MAX =
|
|
5
|
+
const MAX = 50;
|
|
6
6
|
const seen = new Set();
|
|
7
7
|
|
|
8
8
|
function isItemLike(obj) {
|
|
@@ -16,6 +16,51 @@ const EXTRACTION_FN = `
|
|
|
16
16
|
return hits >= 2;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
function identityFor(node) {
|
|
20
|
+
if (node && typeof node === 'object') {
|
|
21
|
+
if (typeof node.url === 'string' && node.url) return 'u:' + node.url;
|
|
22
|
+
if (typeof node.href === 'string' && node.href) return 'u:' + node.href;
|
|
23
|
+
if (typeof node.link === 'string' && node.link) return 'u:' + node.link;
|
|
24
|
+
if (typeof node.id === 'string' && node.id) return 'i:' + node.id;
|
|
25
|
+
if ((typeof node['@id'] === 'string') && node['@id']) return 'i:' + node['@id'];
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
return 'j:' + JSON.stringify(node).slice(0, 300);
|
|
29
|
+
} catch (e) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function findHomogeneousItemArray(root) {
|
|
35
|
+
var best = null;
|
|
36
|
+
var bestScore = 0;
|
|
37
|
+
function visit(n, d) {
|
|
38
|
+
if (d > 12) return;
|
|
39
|
+
if (Array.isArray(n)) {
|
|
40
|
+
if (n.length >= 3) {
|
|
41
|
+
var items = [];
|
|
42
|
+
for (var i = 0; i < n.length; i++) {
|
|
43
|
+
if (isItemLike(n[i])) items.push(n[i]);
|
|
44
|
+
}
|
|
45
|
+
var ratio = items.length / n.length;
|
|
46
|
+
if (items.length >= 3 && ratio >= 0.6 && items.length > bestScore) {
|
|
47
|
+
bestScore = items.length;
|
|
48
|
+
best = items;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
for (var j = 0; j < n.length; j++) visit(n[j], d + 1);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (n && typeof n === 'object') {
|
|
55
|
+
for (var k in n) {
|
|
56
|
+
if (Object.prototype.hasOwnProperty.call(n, k)) visit(n[k], d + 1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
visit(root, 0);
|
|
61
|
+
return best;
|
|
62
|
+
}
|
|
63
|
+
|
|
19
64
|
function harvestFromJson(node, out, depth) {
|
|
20
65
|
if (out.length >= MAX) return;
|
|
21
66
|
if (depth > 10) return;
|
|
@@ -25,10 +70,10 @@ const EXTRACTION_FN = `
|
|
|
25
70
|
}
|
|
26
71
|
if (node === null || typeof node !== 'object') return;
|
|
27
72
|
if (isItemLike(node)) {
|
|
28
|
-
|
|
29
|
-
if (!seen.has(
|
|
73
|
+
var id = identityFor(node);
|
|
74
|
+
if (id !== null && !seen.has(id)) {
|
|
30
75
|
out.push(node);
|
|
31
|
-
seen.add(
|
|
76
|
+
seen.add(id);
|
|
32
77
|
}
|
|
33
78
|
}
|
|
34
79
|
for (const v of Object.values(node)) harvestFromJson(v, out, depth + 1);
|
|
@@ -39,6 +84,8 @@ const EXTRACTION_FN = `
|
|
|
39
84
|
if (!el || !el.textContent) return null;
|
|
40
85
|
try {
|
|
41
86
|
const data = JSON.parse(el.textContent);
|
|
87
|
+
const arr = findHomogeneousItemArray(data);
|
|
88
|
+
if (arr && arr.length > 0) return arr.slice(0, MAX);
|
|
42
89
|
const out = [];
|
|
43
90
|
harvestFromJson(data, out, 0);
|
|
44
91
|
return out.length > 0 ? out : null;
|
|
@@ -48,13 +95,93 @@ const EXTRACTION_FN = `
|
|
|
48
95
|
function tryGlobalState(name) {
|
|
49
96
|
const v = window[name];
|
|
50
97
|
if (!v || typeof v !== 'object') return null;
|
|
98
|
+
const arr = findHomogeneousItemArray(v);
|
|
99
|
+
if (arr && arr.length > 0) return arr.slice(0, MAX);
|
|
51
100
|
const out = [];
|
|
52
101
|
harvestFromJson(v, out, 0);
|
|
53
102
|
return out.length > 0 ? out : null;
|
|
54
103
|
}
|
|
55
104
|
|
|
105
|
+
function flattenItemListItem(node) {
|
|
106
|
+
if (!node || typeof node !== 'object') return null;
|
|
107
|
+
var rec = {};
|
|
108
|
+
if (node.name) rec.name = String(node.name);
|
|
109
|
+
if (node.url) rec.url = String(node.url);
|
|
110
|
+
if (node.description) rec.description = String(node.description);
|
|
111
|
+
if (node.image) rec.image = typeof node.image === 'string' ? node.image : (node.image && node.image.url) ? String(node.image.url) : undefined;
|
|
112
|
+
// schema.org RealEstateListing / ApartmentComplex nest address under about or directly
|
|
113
|
+
var addrSrc = node.address || (node.about && node.about.address) || null;
|
|
114
|
+
if (addrSrc && typeof addrSrc === 'object') {
|
|
115
|
+
var parts = [];
|
|
116
|
+
if (addrSrc.streetAddress) parts.push(String(addrSrc.streetAddress));
|
|
117
|
+
if (addrSrc.addressLocality) parts.push(String(addrSrc.addressLocality));
|
|
118
|
+
if (addrSrc.addressRegion) parts.push(String(addrSrc.addressRegion));
|
|
119
|
+
if (addrSrc.postalCode) parts.push(String(addrSrc.postalCode));
|
|
120
|
+
if (parts.length > 0) rec.address = parts.join(', ');
|
|
121
|
+
}
|
|
122
|
+
// Price: offers can be AggregateOffer or array of Offer
|
|
123
|
+
var offers = node.offers || (node.about && node.about.offers) || null;
|
|
124
|
+
if (offers) {
|
|
125
|
+
var offerArr = Array.isArray(offers) ? offers : [offers];
|
|
126
|
+
var prices = [];
|
|
127
|
+
for (var i = 0; i < offerArr.length; i++) {
|
|
128
|
+
var o = offerArr[i];
|
|
129
|
+
if (!o) continue;
|
|
130
|
+
if (o.price) prices.push(String(o.price));
|
|
131
|
+
else if (o.lowPrice) prices.push(String(o.lowPrice));
|
|
132
|
+
else if (o.priceSpecification && o.priceSpecification.price) prices.push(String(o.priceSpecification.price));
|
|
133
|
+
}
|
|
134
|
+
if (prices.length > 0) rec.price = prices.join(' - ');
|
|
135
|
+
}
|
|
136
|
+
return Object.keys(rec).length >= 2 ? rec : null;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function collectItemListElements(node, out, depth) {
|
|
140
|
+
if (out.length >= MAX) return;
|
|
141
|
+
if (depth > 10) return;
|
|
142
|
+
if (Array.isArray(node)) {
|
|
143
|
+
for (var i = 0; i < node.length; i++) collectItemListElements(node[i], out, depth + 1);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (!node || typeof node !== 'object') return;
|
|
147
|
+
var type = node['@type'];
|
|
148
|
+
var types = Array.isArray(type) ? type : (type ? [type] : []);
|
|
149
|
+
if (types.indexOf('ItemList') !== -1 && Array.isArray(node.itemListElement)) {
|
|
150
|
+
for (var j = 0; j < node.itemListElement.length && out.length < MAX; j++) {
|
|
151
|
+
var el = node.itemListElement[j];
|
|
152
|
+
var item = el && el.item ? el.item : el;
|
|
153
|
+
var flat = flattenItemListItem(item);
|
|
154
|
+
if (flat) out.push(flat);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
for (var k in node) {
|
|
158
|
+
if (!Object.prototype.hasOwnProperty.call(node, k)) continue;
|
|
159
|
+
if (k === 'itemListElement') continue;
|
|
160
|
+
collectItemListElements(node[k], out, depth + 1);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
56
164
|
function tryJsonLd() {
|
|
57
165
|
const scripts = document.querySelectorAll('script[type="application/ld+json"]');
|
|
166
|
+
// First pass: ItemList.itemListElement — the schema.org standard for list pages.
|
|
167
|
+
const listItems = [];
|
|
168
|
+
for (const s of scripts) {
|
|
169
|
+
try {
|
|
170
|
+
const data = JSON.parse(s.textContent || '');
|
|
171
|
+
collectItemListElements(data, listItems, 0);
|
|
172
|
+
if (listItems.length >= MAX) break;
|
|
173
|
+
} catch (e) {}
|
|
174
|
+
}
|
|
175
|
+
if (listItems.length > 0) return listItems;
|
|
176
|
+
// Second pass: homogeneous array anywhere inside any JSON-LD script.
|
|
177
|
+
for (const s of scripts) {
|
|
178
|
+
try {
|
|
179
|
+
const data = JSON.parse(s.textContent || '');
|
|
180
|
+
const arr = findHomogeneousItemArray(data);
|
|
181
|
+
if (arr && arr.length > 0) return arr.slice(0, MAX);
|
|
182
|
+
} catch (e) {}
|
|
183
|
+
}
|
|
184
|
+
// Fallback: heuristic harvest from any JSON-LD.
|
|
58
185
|
const out = [];
|
|
59
186
|
for (const s of scripts) {
|
|
60
187
|
try {
|
|
@@ -67,12 +194,12 @@ const EXTRACTION_FN = `
|
|
|
67
194
|
}
|
|
68
195
|
|
|
69
196
|
function tryDom() {
|
|
70
|
-
const candidates = document.querySelectorAll('article, li, [class*="card" i], [class*="listing" i], [class*="item" i], [data-testid*="card" i], [data-testid*="listing" i]');
|
|
197
|
+
const candidates = document.querySelectorAll('article, li, section, [role="listitem"], [role="article"], [class*="card" i], [class*="listing" i], [class*="item" i], [class*="result" i], [class*="search" i][class*="card" i], [data-testid*="card" i], [data-testid*="listing" i], [data-qa*="card" i], [data-qa*="listing" i], [data-qa*="result" i]');
|
|
71
198
|
const out = [];
|
|
72
199
|
for (const el of candidates) {
|
|
73
200
|
if (out.length >= MAX) break;
|
|
74
201
|
const text = (el.innerText || '').trim();
|
|
75
|
-
if (text.length <
|
|
202
|
+
if (text.length < 15 || text.length > 1500) continue;
|
|
76
203
|
const link = el.querySelector('a[href]');
|
|
77
204
|
const href = link ? link.href : null;
|
|
78
205
|
if (!href) continue;
|
|
@@ -88,26 +215,70 @@ const EXTRACTION_FN = `
|
|
|
88
215
|
return out.length > 0 ? out : null;
|
|
89
216
|
}
|
|
90
217
|
|
|
91
|
-
|
|
92
|
-
|
|
218
|
+
function mergeWithDom(source, records) {
|
|
219
|
+
var dom = tryDom();
|
|
220
|
+
if (!dom || dom.length === 0) return { source: source, records: records.slice(0, MAX) };
|
|
221
|
+
// DOM records first — they carry per-item URLs and visible text. Structured-state
|
|
222
|
+
// records often hold page-level aggregate metadata (Organization, WebPage) that
|
|
223
|
+
// masquerades as items under the loose isItemLike heuristic; DOM cards are the
|
|
224
|
+
// reliable per-item source on list/results pages.
|
|
225
|
+
var combined = dom.concat(records).slice(0, MAX);
|
|
226
|
+
return { source: source, records: combined };
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
var domOnly = tryDom();
|
|
230
|
+
if (domOnly && domOnly.length >= 3) {
|
|
231
|
+
var strong = [];
|
|
232
|
+
for (var k = 0; k < domOnly.length; k++) {
|
|
233
|
+
if (Object.keys(domOnly[k]).length >= 3) strong.push(domOnly[k]);
|
|
234
|
+
}
|
|
235
|
+
if (strong.length >= 3) return { source: 'dom', records: strong.slice(0, MAX) };
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
var results = tryNextData();
|
|
239
|
+
if (results) return mergeWithDom('next-data', results);
|
|
93
240
|
|
|
94
|
-
|
|
95
|
-
if (apollo) return
|
|
241
|
+
var apollo = tryGlobalState('__APOLLO_STATE__');
|
|
242
|
+
if (apollo) return mergeWithDom('apollo', apollo);
|
|
96
243
|
|
|
97
|
-
|
|
98
|
-
if (initial) return
|
|
244
|
+
var initial = tryGlobalState('__INITIAL_STATE__');
|
|
245
|
+
if (initial) return mergeWithDom('initial-state', initial);
|
|
99
246
|
|
|
100
|
-
|
|
101
|
-
if (ld) return
|
|
247
|
+
var ld = tryJsonLd();
|
|
248
|
+
if (ld) return mergeWithDom('json-ld', ld);
|
|
102
249
|
|
|
103
|
-
|
|
250
|
+
var dom = tryDom();
|
|
104
251
|
if (dom) return { source: 'dom', records: dom.slice(0, MAX) };
|
|
105
252
|
|
|
106
253
|
return { source: 'none', records: [] };
|
|
107
254
|
})()
|
|
108
255
|
`;
|
|
256
|
+
const LAZY_LOAD_TRIGGER_FN = `
|
|
257
|
+
(async function() {
|
|
258
|
+
const start = Date.now();
|
|
259
|
+
const step = Math.max(400, window.innerHeight);
|
|
260
|
+
let pos = 0;
|
|
261
|
+
let lastHeight = 0;
|
|
262
|
+
while (Date.now() - start < 5000) {
|
|
263
|
+
pos += step;
|
|
264
|
+
window.scrollTo(0, pos);
|
|
265
|
+
await new Promise(function(r) { setTimeout(r, 400); });
|
|
266
|
+
const h = document.body.scrollHeight;
|
|
267
|
+
if (pos >= h && h === lastHeight) break;
|
|
268
|
+
lastHeight = h;
|
|
269
|
+
}
|
|
270
|
+
window.scrollTo(0, 0);
|
|
271
|
+
await new Promise(function(r) { setTimeout(r, 300); });
|
|
272
|
+
})()
|
|
273
|
+
`;
|
|
109
274
|
export async function extractItems(page) {
|
|
110
275
|
try {
|
|
276
|
+
try {
|
|
277
|
+
await page.evaluate(LAZY_LOAD_TRIGGER_FN);
|
|
278
|
+
}
|
|
279
|
+
catch (scrollErr) {
|
|
280
|
+
logger.warn({ err: scrollErr instanceof Error ? scrollErr.message : scrollErr }, 'extract-items: lazy-load trigger failed');
|
|
281
|
+
}
|
|
111
282
|
const raw = await page.evaluate(EXTRACTION_FN);
|
|
112
283
|
if (raw === null || typeof raw !== 'object') {
|
|
113
284
|
return { source: 'none', count: 0, records: [], truncated: false };
|
|
@@ -128,4 +299,45 @@ export async function extractItems(page) {
|
|
|
128
299
|
return { source: 'none', count: 0, records: [], truncated: false };
|
|
129
300
|
}
|
|
130
301
|
}
|
|
302
|
+
const DEFAULT_CONCURRENCY = 5;
|
|
303
|
+
const MAX_URLS = 10;
|
|
304
|
+
export async function extractItemsFromUrls(browser, urls, opts) {
|
|
305
|
+
const deduped = Array.from(new Set(urls.filter((u) => typeof u === 'string' && u !== ''))).slice(0, MAX_URLS);
|
|
306
|
+
const concurrency = Math.max(1, Math.min(opts?.concurrency ?? DEFAULT_CONCURRENCY, deduped.length));
|
|
307
|
+
const records = [];
|
|
308
|
+
const failedUrls = [];
|
|
309
|
+
let cursor = 0;
|
|
310
|
+
const worker = async () => {
|
|
311
|
+
while (cursor < deduped.length) {
|
|
312
|
+
const url = deduped[cursor++];
|
|
313
|
+
const t0 = Date.now();
|
|
314
|
+
let tabId;
|
|
315
|
+
try {
|
|
316
|
+
const tab = await browser.open(url);
|
|
317
|
+
tabId = tab.id;
|
|
318
|
+
await tab.waitFor({ timeMs: 500 });
|
|
319
|
+
const result = await extractItems(tab);
|
|
320
|
+
const recordsWithUrl = result.records.map((r) => ({ sourceUrl: url, ...r }));
|
|
321
|
+
records.push(...recordsWithUrl);
|
|
322
|
+
logger.info({ url, source: result.source, count: result.records.length, ms: Date.now() - t0 }, 'extract-items-url');
|
|
323
|
+
}
|
|
324
|
+
catch (err) {
|
|
325
|
+
logger.warn({ url, err: err instanceof Error ? err.message : err }, 'extract-items-url failed');
|
|
326
|
+
failedUrls.push(url);
|
|
327
|
+
}
|
|
328
|
+
finally {
|
|
329
|
+
if (tabId !== undefined) {
|
|
330
|
+
await browser.close(tabId).catch(() => undefined);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
const workers = Array.from({ length: concurrency }, () => worker());
|
|
336
|
+
await Promise.all(workers);
|
|
337
|
+
return {
|
|
338
|
+
count: records.length,
|
|
339
|
+
records,
|
|
340
|
+
failedUrls,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
131
343
|
//# sourceMappingURL=extract-items.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-items.js","sourceRoot":"","sources":["../../src/skills/extract-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"extract-items.js","sourceRoot":"","sources":["../../src/skills/extract-items.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-detection.d.ts","sourceRoot":"","sources":["../../src/skills/loop-detection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,UAAU,SAAS;IACjB,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"loop-detection.d.ts","sourceRoot":"","sources":["../../src/skills/loop-detection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,UAAU,SAAS;IACjB,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAyE3G"}
|
|
@@ -14,6 +14,15 @@ export function detectLoop(action, history) {
|
|
|
14
14
|
message: 'You just ran web_search twice in a row. The previous search already returned results — pick one URL from those results and navigate there. Do not refine the query again. If every returned site turned out to be blocked, navigate directly to a known working alternative (e.g. Zumper, Apartments.com) instead of searching yet again.',
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
+
if (action.action === 'back' &&
|
|
18
|
+
history.length >= 2 &&
|
|
19
|
+
history[history.length - 1].action.action === 'back' &&
|
|
20
|
+
history[history.length - 2].action.action === 'back') {
|
|
21
|
+
return {
|
|
22
|
+
level: 'urgent',
|
|
23
|
+
message: 'You have pressed "back" three times in a row without recovering. Back navigation is not escaping this error/block page. Do NOT press back again. Instead, use "navigate" to a known-good URL (a listings-site home or results page you reached earlier) or use "web_search" to find an alternative site.',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
17
26
|
if (action.ref !== undefined && action.ref !== '' && history.length >= 2) {
|
|
18
27
|
const lastTwo = history.slice(-2);
|
|
19
28
|
const bothFailed = lastTwo.every((h) => h.action.error_feedback !== undefined && `${h.action.action}:${h.action.ref ?? ''}` === actionKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-detection.js","sourceRoot":"","sources":["../../src/skills/loop-detection.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,EAAE,CAAC;AAOvB;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAwC,EAAE,OAAoB;IACvF,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;IAEzD,IACE,MAAM,CAAC,MAAM,KAAK,YAAY;QAC9B,OAAO,CAAC,MAAM,IAAI,CAAC;QACnB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,EAC1D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,OAAO,EACL,2UAA2U;SAC9U,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,SAAS,CACzG,CAAC;QACF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,cAAc,MAAM,CAAC,GAAG,2BAA2B,MAAM,CAAC,MAAM,sPAAsP;aAChU,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IAEjF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAErE,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,OAAO,EACL,2TAA2T;SAC9T,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EACL,qPAAqP;SACxP,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,OAAO,EACL,6QAA6Q;SAChR,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"loop-detection.js","sourceRoot":"","sources":["../../src/skills/loop-detection.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,EAAE,CAAC;AAOvB;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAwC,EAAE,OAAoB;IACvF,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;IAEzD,IACE,MAAM,CAAC,MAAM,KAAK,YAAY;QAC9B,OAAO,CAAC,MAAM,IAAI,CAAC;QACnB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,EAC1D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,OAAO,EACL,2UAA2U;SAC9U,CAAC;IACJ,CAAC;IAED,IACE,MAAM,CAAC,MAAM,KAAK,MAAM;QACxB,OAAO,CAAC,MAAM,IAAI,CAAC;QACnB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM;QACpD,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EACpD,CAAC;QACD,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,OAAO,EACL,0SAA0S;SAC7S,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,SAAS,CACzG,CAAC;QACF,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,cAAc,MAAM,CAAC,GAAG,2BAA2B,MAAM,CAAC,MAAM,sPAAsP;aAChU,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IAEjF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAErE,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,OAAO,EACL,2TAA2T;SAC9T,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EACL,qPAAqP;SACxP,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,OAAO,EACL,6QAA6Q;SAChR,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"press-and-hold.d.ts","sourceRoot":"","sources":["../../src/skills/press-and-hold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,IAAI,CAAC;AAoH1E,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAelE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAkB1D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAc3F;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"press-and-hold.d.ts","sourceRoot":"","sources":["../../src/skills/press-and-hold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,IAAI,CAAC;AAoH1E,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAelE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAkB1D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CAc3F;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqChG"}
|
|
@@ -7,7 +7,7 @@ const BLOCKED_PATTERNS = {
|
|
|
7
7
|
cloudflare_checkbox: /performing security verification|verify you are human|just a moment/i,
|
|
8
8
|
};
|
|
9
9
|
function humanHoldMs() {
|
|
10
|
-
return 4000 + Math.floor(Math.random() *
|
|
10
|
+
return 4000 + Math.floor(Math.random() * 11000); // 4-15 seconds
|
|
11
11
|
}
|
|
12
12
|
async function findButtonCoordinates(page) {
|
|
13
13
|
const result = await page.evaluate(`
|
|
@@ -154,6 +154,7 @@ export async function pressAndHold(page, opts) {
|
|
|
154
154
|
}
|
|
155
155
|
const { x, y } = coords;
|
|
156
156
|
logger.info({ x, y }, 'press-and-hold: found button');
|
|
157
|
+
const urlBefore = await page.url();
|
|
157
158
|
const jitterX = x + Math.floor(Math.random() * 20) - 10;
|
|
158
159
|
const jitterY = y + Math.floor(Math.random() * 10) - 5;
|
|
159
160
|
const holdMs = opts?.holdMs ?? humanHoldMs();
|
|
@@ -163,8 +164,16 @@ export async function pressAndHold(page, opts) {
|
|
|
163
164
|
logger.info({ holdMs }, 'press-and-hold: released');
|
|
164
165
|
await page.waitFor({ timeMs: 2000 });
|
|
165
166
|
const stillBlocked = await isStillBlocked(page, 'press_and_hold');
|
|
166
|
-
|
|
167
|
-
|
|
167
|
+
if (stillBlocked) {
|
|
168
|
+
logger.info('press-and-hold: still blocked, refreshing page');
|
|
169
|
+
await page.goto(urlBefore);
|
|
170
|
+
await page.waitFor({ timeMs: 3000 });
|
|
171
|
+
const blockedAfterRefresh = await isStillBlocked(page, 'press_and_hold');
|
|
172
|
+
logger.info({ blockedAfterRefresh }, 'press-and-hold: result after refresh');
|
|
173
|
+
return !blockedAfterRefresh;
|
|
174
|
+
}
|
|
175
|
+
logger.info('press-and-hold: resolved');
|
|
176
|
+
return true;
|
|
168
177
|
}
|
|
169
178
|
catch (err) {
|
|
170
179
|
logger.error({ err: err instanceof Error ? err.message : err }, 'press-and-hold: failed');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"press-and-hold.js","sourceRoot":"","sources":["../../src/skills/press-and-hold.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,MAAM,kBAAkB,GAAG,iFAAiF,CAAC;AAC7G,MAAM,gBAAgB,GAAG,8CAA8C,CAAC;AAExE,MAAM,gBAAgB,GAA6D;IACjF,cAAc,EAAE,qDAAqD;IACrE,mBAAmB,EAAE,sEAAsE;CAC5F,CAAC;AAEF,SAAS,WAAW;IAClB,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"press-and-hold.js","sourceRoot":"","sources":["../../src/skills/press-and-hold.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -55,6 +55,8 @@ export interface AgentAction {
|
|
|
55
55
|
hold_ms?: number;
|
|
56
56
|
/** Search query (for web_search action) */
|
|
57
57
|
query?: string;
|
|
58
|
+
/** Batch of URLs to extract items from in parallel (for extract action) */
|
|
59
|
+
urls?: string[];
|
|
58
60
|
/** Result of extract action — set by the agent loop, shown in next step's history */
|
|
59
61
|
extract_result?: string;
|
|
60
62
|
/** Set by the agent loop when action execution fails — fed back to LLM in next step */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA+KA,MAAM,OAAO,SAAU,SAAQ,KAAK;IAEhB;IADlB,YACkB,UAAkB,EAClC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAQ;QAIlC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,8DAA8D;IACrD,eAAe,CAAS;IAEjC,YAAY,OAAe,EAAE,WAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browserclaw-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Browser automation agent loop powered by browserclaw",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"prepublishOnly": "npm run build && npm run test:pack"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"browserclaw": "^0.
|
|
30
|
+
"browserclaw": "^0.14.0",
|
|
31
31
|
"openai": "^4.80.0",
|
|
32
32
|
"pino": "^10.3.1"
|
|
33
33
|
},
|