[package]
name = "crw-core"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Core types, config, and error handling for the CRW web scraper"

[features]
# Mirrors the `cdp` feature of `crw-renderer` / `crw-server`. When the
# downstream binary is built without CDP support, no JS renderers are
# constructable and the ladder collapses to HTTP-only — the deadline
# auto-extension policy (`AppConfig::effective_deadline_ms`) gates on this so
# CDP-less builds keep their strict `deadline_ms_default`. The workspace
# binary enables this transitively via `crw-renderer/cdp`.
cdp = []
# Opt-in Camoufox stealth renderer tier (REST, not CDP). When the downstream
# binary is built without this feature the tier is never constructable and the
# config-level `camoufox_in_ladder()` predicate always returns false, so the
# auto ladder and deadline math stay byte-identical to a lean build. The
# workspace binary enables this transitively via `crw-renderer/camoufox`.
camoufox = []

[dependencies]
crw-mcp-proto = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
config = { workspace = true }
thiserror = { workspace = true }
url = { workspace = true }
uuid = { workspace = true }
tracing = { workspace = true }
reqwest = { workspace = true }
prometheus = { workspace = true }
tokio = { workspace = true }
rand = { workspace = true }

[dev-dependencies]
serde_json = { workspace = true }
toml = { workspace = true }
