Concept
agbrowse is four layers: browser primitives, Web-AI, search, and evidence.
The package stays standalone by keeping the published bin thin and using ESM modules for the browser, Web-AI, search, and verification surfaces.
Layer map
| Layer | Owns | Does not own |
|---|---|---|
| Browser primitives | CDP connection, tabs, refs, screenshots, click/type/wait, adaptive fetch with a 6-rung escalation ladder (HTTP with identity headers, TLS/JA3 impersonation, third-party readers, Camoufox/isolated browser, user session, human-in-the-loop). | Provider prompt contracts. |
| Web-AI | ChatGPT, Gemini, Grok send/poll/query, sessions, code artifacts, source audit, capability registry (declarative per-vendor capability lookup). | Hosted model APIs or API-key adapters. |
| Search | Standalone deep search pipeline: query rewrite, candidate discovery via adaptive-fetch, evidence scoring, and optional web-ai deep escalation. | Built-in search-engine API clients. |
| Evidence | Trace output, fixture evals, claim audit, structure docs, release gates. | Marketing claims without local proof. |
Adaptive-fetch escalation ladder
The agbrowse fetch command reads a single URL through a multi-rung escalation sequence. Each rung runs a content scorer to decide whether the result is strong enough or whether the next rung should fire.
- Public endpoints + direct HTTP with browser-grade identity headers (User-Agent, Sec-Fetch-*, Accept-Language).
- TLS/JA3 impersonation via curl-impersonate on 403/429/challenge responses before any browser launch.
- Third-party readers (opt-in, e.g. Jina Reader).
- Isolated browser render (Camoufox or headless Chrome) with network API discovery.
- User session (opt-in: reuse authenticated browser profile).
- Human-in-the-loop (interactive: manual challenge resolution).
Capability registry
The Web-AI layer includes a declarative capability registry that maps each provider and model alias to its supported features (code mode, image output, deep research, context packages, follow-ups). Commands consult the registry at dispatch time and fail closed when a requested capability is not declared for the target vendor.
Runway command surface
The agbrowse runway subcommand treats Runway as a media task-runner surface rather than a prompt-response provider. It provides selector contracts, current-tab status, and read-only preflight inspection. Generation submit buttons are never clicked by the runtime. The commands are: runway selectors, runway status, runway open, runway preflight, and runway poll.
Source of truth
Use structure/commands.md for command surface, structure/CAPABILITY_TRUTH_TABLE.md for support labels, and structure/release_gates.md for verification obligations.