@fastbrowse/darwin-x64 0.7.0 → 0.7.3
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/fastbrowse/_internal/base_library.zip +0 -0
- package/fastbrowse/_internal/fastbrowse/browser/snapshot.js +36 -0
- package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/METADATA +7 -3
- package/fastbrowse/_internal/fastbrowse-0.7.3.dist-info/RECORD +14 -0
- package/fastbrowse/_internal/fastbrowse-0.7.3.dist-info/uv_cache.json +1 -0
- package/fastbrowse/fastbrowse +0 -0
- package/package.json +1 -1
- package/fastbrowse/_internal/fastbrowse-0.7.0.dist-info/RECORD +0 -14
- package/fastbrowse/_internal/fastbrowse-0.7.0.dist-info/uv_cache.json +0 -1
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/INSTALLER +0 -0
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/REQUESTED +0 -0
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/WHEEL +0 -0
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/direct_url.json +0 -0
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/entry_points.txt +0 -0
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/licenses/LICENSE +0 -0
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/licenses/NOTICE +0 -0
- /package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/uv_build.json +0 -0
|
Binary file
|
|
@@ -983,6 +983,41 @@
|
|
|
983
983
|
readText(document, 0, 0);
|
|
984
984
|
const viewport_text = words.join('\n');
|
|
985
985
|
|
|
986
|
+
// Page state carried by pixels: a chart, a picture, a drawing or a video is evidence the page text and the
|
|
987
|
+
// control list cannot hold, and the verifier needs the screenshot for it. Only what the viewport shows counts,
|
|
988
|
+
// because that is what a screenshot captures: an image below the fold cannot appear in it, and counting every
|
|
989
|
+
// image on a long page would ask for a screenshot on almost every page and undo the gate it exists to serve.
|
|
990
|
+
// Geometry is read in the parent's coordinates the way readText reads text, so a frame's image counts where the
|
|
991
|
+
// frame itself sits on screen. Elements small enough to be an icon or a rule are not page state.
|
|
992
|
+
const VISUAL = 'img,canvas,video,svg,picture,figure,[role="img"]';
|
|
993
|
+
const VISUAL_MIN_PX = 48;
|
|
994
|
+
let visual_content = 0;
|
|
995
|
+
const readVisual = (doc, dx, dy) => {
|
|
996
|
+
if (visual_content) return;
|
|
997
|
+
for (const e of doc.querySelectorAll(VISUAL)) {
|
|
998
|
+
if (e.closest('[aria-hidden="true"],[inert]') || !visible(e)) continue;
|
|
999
|
+
const r = e.getBoundingClientRect();
|
|
1000
|
+
const top = r.top + dy,
|
|
1001
|
+
left = r.left + dx;
|
|
1002
|
+
if (r.width < VISUAL_MIN_PX || r.height < VISUAL_MIN_PX) continue;
|
|
1003
|
+
if (top + r.height <= 0 || top >= innerHeight || left + r.width <= 0 || left >= innerWidth) continue;
|
|
1004
|
+
visual_content = 1;
|
|
1005
|
+
return;
|
|
1006
|
+
}
|
|
1007
|
+
for (const frame of doc.querySelectorAll('iframe,frame')) {
|
|
1008
|
+
let inner = null;
|
|
1009
|
+
try {
|
|
1010
|
+
inner = frame.contentDocument;
|
|
1011
|
+
} catch {
|
|
1012
|
+
inner = null;
|
|
1013
|
+
}
|
|
1014
|
+
if (!inner || !granted(inner)) continue;
|
|
1015
|
+
const f = frame.getBoundingClientRect();
|
|
1016
|
+
readVisual(inner, dx + f.left + frame.clientLeft, dy + f.top + frame.clientTop);
|
|
1017
|
+
}
|
|
1018
|
+
};
|
|
1019
|
+
readVisual(document, 0, 0);
|
|
1020
|
+
|
|
986
1021
|
const guards = {},
|
|
987
1022
|
retarget_keys = {};
|
|
988
1023
|
for (const c of controls) {
|
|
@@ -1035,6 +1070,7 @@
|
|
|
1035
1070
|
url: location.href,
|
|
1036
1071
|
title: document.title,
|
|
1037
1072
|
viewport_text,
|
|
1073
|
+
visual_content,
|
|
1038
1074
|
document_key: String(performance.timeOrigin),
|
|
1039
1075
|
controls: semantics,
|
|
1040
1076
|
page_key,
|
package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: fastbrowse
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.3
|
|
4
4
|
Summary: Browser automation with cited answers, structured output and code-controlled credentials and authorization.
|
|
5
5
|
Project-URL: Homepage, https://github.com/agent-labs-dev/fastbrowse
|
|
6
6
|
Project-URL: Repository, https://github.com/agent-labs-dev/fastbrowse
|
|
@@ -133,6 +133,7 @@ Steps go to stderr; the status, cost, step count, the reason a run stopped short
|
|
|
133
133
|
| `--start URL` | the page to open first; worked out from the task when omitted |
|
|
134
134
|
| `--cloud` | force cloud Chrome even when `FASTBROWSE_PROFILE` or `FASTBROWSE_HEADED` is set |
|
|
135
135
|
| `--local` | use local Chrome instead of a Browser Use Cloud browser. Cloud is the default: it passes bot checks a fresh Chrome fails, and prints a URL to watch the run live |
|
|
136
|
+
| `--fetch` | read pages over HTTP and start no browser at all, for a task that only has to read one and needs no clicking, forms or screenshots |
|
|
136
137
|
| `--headed` | show the local Chrome window (implies `--local`) |
|
|
137
138
|
| `--profile DIR` | keep the local Chrome profile in `DIR`, so a site signed into there stays signed in (implies `--local`) |
|
|
138
139
|
| `--cloud-profile ID` | run on a Browser Use Cloud profile, signed in as whoever set it up |
|
|
@@ -148,6 +149,7 @@ Steps go to stderr; the status, cost, step count, the reason a run stopped short
|
|
|
148
149
|
| `--max-steps N`, `--max-dollars N` | optionally bound steps and model spend; defaults are unlimited. Cloud browser charges are added when it stops |
|
|
149
150
|
| `--downloads DIR` | keep downloaded files |
|
|
150
151
|
| `--json` | full result instead of the answer |
|
|
152
|
+
| `--trace FILE` | append the run's trace to `FILE` as JSON lines, or `-` for stderr: each model call with its purpose and timing, which reader answered each read and why, every check's scores and each recovery's reason. It holds ids, scores, redacted addresses, requirement texts and control labels, not page captures. `FASTBROWSE_TRACE` does the same for `serve` and the MCP server |
|
|
151
153
|
| `--record FILE` | save an MP4 of the tab, each step captioned, ending on the answer, time and cost (needs `ffmpeg`; the captions need its libass), e.g. `recordings/demo.mp4`, which git ignores; `demo.plain.mp4` beside it has no captions. It shows what the pages showed, so watch it before sharing |
|
|
152
154
|
| `--cursor` | draw the agent's cursor over a visible Chrome (`--headed`, or one you attach to) with [Cua Driver](https://github.com/trycua/cua), so you can watch where it acts. Off by default. It needs `cua-driver` on `PATH` and an X11 display on Linux, and does nothing without them. It brings the run's tab to the front as `--foreground` does, since the cursor lies over the window's front tab |
|
|
153
155
|
|
|
@@ -296,7 +298,7 @@ without a field-writing generation.
|
|
|
296
298
|
|
|
297
299
|
A browser command that remains unanswered for 120 seconds returns `unavailable`, even if the browser
|
|
298
300
|
still answers health checks. Step and dollar limits do not bound total elapsed time. Set `Limits(max_seconds=...)` for a run deadline.
|
|
299
|
-
When investigating a stalled run,
|
|
301
|
+
When investigating a stalled run, write its trace with `--trace FILE` (or `FASTBROWSE_TRACE=FILE` for `serve` and the MCP server) and keep the last event alongside the result.
|
|
300
302
|
|
|
301
303
|
[Troubleshooting](docs/troubleshooting.md) takes each status a run can stop with: what it means, its common
|
|
302
304
|
causes and the next step.
|
|
@@ -420,7 +422,9 @@ it can be `None` for an ordinary successful action.
|
|
|
420
422
|
|
|
421
423
|
For continuous live images, pass an async `on_frame` handler accepting JPEG bytes. Frames follow the active
|
|
422
424
|
tab and are acknowledged after delivery, with no fixed frame rate. Only the latest pending frame is kept.
|
|
423
|
-
Handler failures are logged without stopping the run.
|
|
425
|
+
Handler failures are logged without stopping the run. A handler must honour cancellation: it runs on the
|
|
426
|
+
caller's event loop, so one that catches `CancelledError` without re-raising keeps that loop alive, and
|
|
427
|
+
`asyncio.run` then waits for it at shutdown. Live frames and recordings are held back while a
|
|
424
428
|
resolved secret may show on the page, as PNG step frames are. No handler means no live capture.
|
|
425
429
|
|
|
426
430
|
Jev uses direct TypeSafe when keyed, otherwise OpenRouter, with Vercel AI Gateway also supported.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
../../../bin/fastbrowse,sha256=k_VHUJGUyyMLHeLCiSHLkBTLNP1m86q6e4YkyAHdlZM,337
|
|
2
|
+
../../../bin/fastbrowse-mcp,sha256=1CAFjtHrbGFIoAzljudiwUZ-Qrz8WFq5CLTPaDEvGRE,344
|
|
3
|
+
_editable_impl_fastbrowse.pth,sha256=Ft6bxdkTegROr5p9hZSxsnUSfEHrZYCfXWKjtpA4_DU,44
|
|
4
|
+
fastbrowse-0.7.3.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
|
|
5
|
+
fastbrowse-0.7.3.dist-info/METADATA,sha256=Z_DUoeZGMQEm7pT1232-a7PAplk6ABH_ZuR7iEp5IQ4,39344
|
|
6
|
+
fastbrowse-0.7.3.dist-info/RECORD,,
|
|
7
|
+
fastbrowse-0.7.3.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
fastbrowse-0.7.3.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
9
|
+
fastbrowse-0.7.3.dist-info/direct_url.json,sha256=cZGZY9ovdib3X-RhjHdlyO_0_EMUe0tW6AXsSyMbNE4,86
|
|
10
|
+
fastbrowse-0.7.3.dist-info/entry_points.txt,sha256=SlQAK1_4_oywTAMckx8BYuCQJva0F-QuShQPcxtUm-g,95
|
|
11
|
+
fastbrowse-0.7.3.dist-info/licenses/LICENSE,sha256=gcUazG_j5a2blKPmfKqRKE98KOqX2kPbWY-EOtQZiNU,1067
|
|
12
|
+
fastbrowse-0.7.3.dist-info/licenses/NOTICE,sha256=qEO0Az_Tk98vRVL0xjnGYgMvexlMCA92lWl4JBwYRzg,1854
|
|
13
|
+
fastbrowse-0.7.3.dist-info/uv_build.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
|
14
|
+
fastbrowse-0.7.3.dist-info/uv_cache.json,sha256=bfJjOgVYNmAssE2wY6VxsSPjCyA9EwKUgh1JNkmD3j8,194
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"timestamp":{"secs_since_epoch":1793030949,"nanos_since_epoch":899156616},"commit":null,"tags":null,"env":{},"directories":{"src":{"secs_since_epoch":1793030949,"nanos_since_epoch":974523249}}}
|
package/fastbrowse/fastbrowse
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
../../../bin/fastbrowse,sha256=k_VHUJGUyyMLHeLCiSHLkBTLNP1m86q6e4YkyAHdlZM,337
|
|
2
|
-
../../../bin/fastbrowse-mcp,sha256=1CAFjtHrbGFIoAzljudiwUZ-Qrz8WFq5CLTPaDEvGRE,344
|
|
3
|
-
_editable_impl_fastbrowse.pth,sha256=Ft6bxdkTegROr5p9hZSxsnUSfEHrZYCfXWKjtpA4_DU,44
|
|
4
|
-
fastbrowse-0.7.0.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
|
|
5
|
-
fastbrowse-0.7.0.dist-info/METADATA,sha256=7vV9jxG0yGiwE2e_oimnIrnEMsrz3D7N5w-HlzvCHiQ,38538
|
|
6
|
-
fastbrowse-0.7.0.dist-info/RECORD,,
|
|
7
|
-
fastbrowse-0.7.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
fastbrowse-0.7.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
9
|
-
fastbrowse-0.7.0.dist-info/direct_url.json,sha256=cZGZY9ovdib3X-RhjHdlyO_0_EMUe0tW6AXsSyMbNE4,86
|
|
10
|
-
fastbrowse-0.7.0.dist-info/entry_points.txt,sha256=SlQAK1_4_oywTAMckx8BYuCQJva0F-QuShQPcxtUm-g,95
|
|
11
|
-
fastbrowse-0.7.0.dist-info/licenses/LICENSE,sha256=gcUazG_j5a2blKPmfKqRKE98KOqX2kPbWY-EOtQZiNU,1067
|
|
12
|
-
fastbrowse-0.7.0.dist-info/licenses/NOTICE,sha256=qEO0Az_Tk98vRVL0xjnGYgMvexlMCA92lWl4JBwYRzg,1854
|
|
13
|
-
fastbrowse-0.7.0.dist-info/uv_build.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
|
14
|
-
fastbrowse-0.7.0.dist-info/uv_cache.json,sha256=8BhBXAm2DwdjSnwjuOCkWHT-R2Ao19iV1lD5LiBS9bY,194
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"timestamp":{"secs_since_epoch":1792857031,"nanos_since_epoch":325702513},"commit":null,"tags":null,"env":{},"directories":{"src":{"secs_since_epoch":1792857031,"nanos_since_epoch":333003188}}}
|
/package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/INSTALLER
RENAMED
|
File without changes
|
/package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/REQUESTED
RENAMED
|
File without changes
|
/package/fastbrowse/_internal/{fastbrowse-0.7.0.dist-info → fastbrowse-0.7.3.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|