Acquisition¶
How Occam obtains a page. This documents the locked acquisition contract (EF-056). Older “always HTTP→browser→managed” stories are obsolete.
Status: STABLE (core ladder) · managed extract escalation removed
The ladder (http_then_browser)¶
HTTP extract
│
├─ usable success ─────────────────────────────► done (stop)
├─ configured public source adapter succeeds ──► done (source disclosed)
├─ 404 / 410 ──────────────────────────────────► fail (no browser)
├─ public-reference short-circuit (failed HTTP) ► fail (no browser)
├─ thin / short challenge / other escalate ────► Browser extract
│ │
│ ├─ usable success ────► done
│ └─ fail ──────────────► dual-fail ranking / typed refusal
Locked truths¶
| Behavior | Meaning |
|---|---|
| Usable HTTP success stops | Non-empty Markdown, not thin, not a short challenge body → no browser |
| Public source adapters are explicit | A bundled playbook may map a presentation page to a sanctioned public source. npm package permalinks can use latest-version metadata from registry.npmjs.org. Exact crates.io /crates/<name> permalinks resolve the latest non-yanked version through the sparse index, then use the official rendered README. backend and url.finalUrl disclose the actual source |
| Thin / challenge may escalate | Bad extraction or short challenge-like body can open the browser rung |
| Browser escalation is conditional | Not every failure escalates; terminal HTTP failures do not |
| 404 / 410 short-circuit | No browser chase |
| Public-reference short-circuit | Some well-known public-reference hosts: failed HTTP ends the ladder |
Dual failure uses FailureRanking |
Surfaces the more informative local attempt — not “whichever had denser markdown” |
| No third-party extract escalation | After both local backends fail the caller sees a typed local refusal |
| No CAPTCHA solving | Walls become typed failures; use sessions / browser |
| No browser-bypass claim | The npm metadata adapter does not bypass Cloudflare and does not promise the package README; unsupported routes keep the honest original failure |
| Private-IP protections | Apply on specific paths (HTTP/browser/CSS workers with guards); scope is not universal across every helper client |
backend_policy¶
Public values: http | browser | http_then_browser (default on most read tools).
There is no managed policy value. Third-party scrape adapters were removed; acquisition is local HTTP → browser → typed refusal.
What agents should do¶
- Prefer default
http_then_browserunless you already know you need browser-only. - On
ok: false, readfailure.code— content is unknown. - For login walls, use a session profile — not CAPTCHA bypass fantasies.
- For networking / proxy / SSRF scope, see Networking.
Related¶
- How Occam works
- Sessions
- Failure codes
- Handbook: Acquisition chapter