[package]
name = "agent-first-http"
version = "0.7.2"
edition = "2021"
description = "Give your AI agent its own private browser — so it reads the real page, past logins and bot walls, without ever touching yours."
license = "MIT"
repository = "https://github.com/agentfirstkit/agent-first-http"
readme = "README.md"
exclude = [".github/", "container/docker/compose.yaml", "container/docker/Dockerfile.dockerignore", "tests/Dockerfile.test", "tests/Dockerfile.test.dockerignore"]
[[bin]]
name = "afhttp"
path = "src/main.rs"
required-features = ["cli"]
[[example]]
name = "manual_display_takeover"
required-features = ["host"]
[features]
default = ["sdk", "cli"]
sdk = []
host = [
"dep:chromiumoxide",
"dep:axum",
"dep:tower",
"dep:tower-http",
"dep:hyper",
"dep:hyper-util",
]
cli = ["sdk", "host", "dep:clap", "dep:psl", "agent-first-data/cli-help", "agent-first-data/cli-help-markdown", "agent-first-data/skill-admin", "agent-first-data/stream-redirect"]
[dependencies]
tokio = { version = "1", features = ["full"] }
rustls = { version = "0.23", default-features = false, features = ["aws-lc-rs", "std"] }
reqwest = { version = "0.13", default-features = false, features = [
"json", "rustls-no-provider", "gzip", "brotli", "deflate", "stream", "http2", "multipart", "form"
] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
base64 = "0.22"
uuid = { version = "1", features = ["v4"] }
tokio-tungstenite = { version = "0.29", features = ["rustls-tls-native-roots"] }
futures = "0.3"
dirs = "6"
humantime = "2"
mime_guess = "2"
fs2 = "0.4"
tempfile = "3"
url = "2"
thiserror = "2"
chromiumoxide = { version = "0.9", optional = true, default-features = false }
axum = { version = "0.8", optional = true, features = ["ws", "macros"] }
tower = { version = "0.5", optional = true }
tower-http = { version = "0.7", optional = true, features = ["fs", "trace"] }
hyper = { version = "1", optional = true, features = ["full"] }
hyper-util = { version = "0.1", optional = true, features = ["server-auto", "tokio"] }
agent-first-data = { version = "0.15.0", default-features = false }
clap = { version = "4", optional = true, features = ["derive", "env"] }
cookie = "0.18"
psl = { version = "2", optional = true }
[dev-dependencies]
serde_json = "1"
tempfile = "3"
tokio = { version = "1", features = ["full", "test-util"] }
axum = { version = "0.8", features = ["ws", "macros"] }
filetime = "0.2"
[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
print_stdout = "deny"
print_stderr = "deny"