Files
actionbook__actionbook/packages/cli/Cargo.toml
github-actions[bot] f416dff24f chore: version packages (#519)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-14 11:33:14 +08:00

93 lines
2.3 KiB
TOML

[package]
name = "actionbook-cli"
version = "1.4.2"
edition = "2024"
description = "Actionbook CLI - Browser automation for AI agents"
license = "MIT"
keywords = ["browser", "automation", "cdp", "cli"]
categories = ["command-line-utilities"]
[[bin]]
name = "actionbook"
path = "src/main.rs"
[lib]
name = "actionbook_cli"
path = "src/lib.rs"
[dependencies]
# CLI
clap = { version = "4", features = ["derive", "env"] }
# Async runtime
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "signal", "process", "net", "io-util", "sync"] }
# CDP WebSocket
tokio-tungstenite = { version = "0.28", features = ["rustls-tls-webpki-roots"] }
futures-util = "0.3"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
# Error handling
thiserror = "2"
# HTTP (for Chrome CDP discovery endpoints)
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
# Base64 (screenshot/PDF decoding)
base64 = "0.22"
# URL encoding
urlencoding = "2"
which = "8"
# Interactive UI
dialoguer = "0.11"
colored = "3"
indicatif = "0.17"
console = "0.15"
dirs = "6"
fs2 = "0.4"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
uuid = { version = "1", features = ["v5"] }
[target.'cfg(windows)'.dependencies]
# Win32 APIs for Chrome Job Object management (no WMI/PowerShell dependency).
windows-sys = { version = "0.59", features = [
"Win32_Foundation",
"Win32_Security",
"Win32_System_JobObjects",
"Win32_System_Threading",
] }
[dev-dependencies]
assert_cmd = "2"
tempfile = "3"
serde_json = "1"
tokio = { version = "1", features = ["test-util"] }
wait-timeout = "0.2"
[[test]]
name = "e2e"
path = "tests/e2e/main.rs"
harness = true
[profile.release]
opt-level = "z"
# Full (`lto = true`) LTO on the current macOS/Rust toolchain produces a
# release binary that gets SIGKILL'ed before browser commands even reach the
# daemon — likely a miscompilation or signal-handler interaction we have not
# root-caused yet. Thin LTO keeps most of the size win without tripping the
# crash, and preserves cross-crate inlining so opt-level="z" still pays off.
# TODO: track down the SIGKILL root cause and switch back to `lto = true`.
lto = "thin"
codegen-units = 1
strip = true
panic = "abort"