86 lines
3.9 KiB
TOML
86 lines
3.9 KiB
TOML
[package]
|
|
name = "anybot"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
# Older Rust stops with a clear message instead of odd errors deep in a dependency.
|
|
rust-version = "1.95"
|
|
|
|
[[bin]]
|
|
name = "anybot"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
zhconv = "0.4"
|
|
eframe = "0.37"
|
|
ureq = { version = "3", features = ["json"] }
|
|
# 長連線 to the account server (WebSocket over the same TLS ureq uses), and compressing what goes over it.
|
|
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12", "logging"] }
|
|
# Which certificates the account server may show: the public ones (built in), plus the ones this
|
|
# computer trusts itself, so a server on the local network that signs its own (https://10.0.0.25)
|
|
# works once this computer trusts it, the same as for the browser.
|
|
webpki-root-certs = "1"
|
|
rustls-native-certs = "0.8"
|
|
# Firefox keeps the names of its newer profiles (「女生」「阿金」…) only in a small SQLite file
|
|
# (Profile Groups/*.sqlite); bundled, so no system SQLite is needed.
|
|
rusqlite = { version = "0.41", features = ["bundled"] }
|
|
flate2 = "1"
|
|
# `anybot setup`: the guided setup in a terminal (servers and Linux computers without a window).
|
|
crossterm = "0.29"
|
|
unicode-width = "0.2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
dirs = "7"
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "gif", "webp", "bmp", "tiff", "ico"] }
|
|
base64 = "0.22"
|
|
# VNC sign-in (the 16-byte challenge) for people watching the bots' computer.
|
|
des = "0.8"
|
|
chrono = "0.4"
|
|
chrono-tz = "0.10"
|
|
iana-time-zone = "0.1"
|
|
ring = "0.17"
|
|
tungstenite = { version = "0.30", default-features = false, features = ["handshake"] }
|
|
calamine = "0.38.0"
|
|
resvg = "0.49.0"
|
|
hayro = "0.9"
|
|
zip = { version = "9", default-features = false, features = ["deflate"] }
|
|
rodio = { version = "0.23", default-features = false, features = ["playback", "flac", "mp3", "mp4", "vorbis", "wav", "symphonia-aiff", "symphonia-alac", "symphonia-caf"] }
|
|
pdf-extract = "0.12"
|
|
unicode-normalization = "0.1"
|
|
cpal = "0.18"
|
|
mermaid-rs-renderer = { version = "0.3", default-features = false }
|
|
pulldown-cmark = { version = "0.13", default-features = false }
|
|
# Seeing and using other apps through the OS accessibility APIs (AX on macOS, AT-SPI on Linux,
|
|
# UI Automation on Windows): numbered UI elements a bot can act on without screenshots.
|
|
# vercel-labs/agent-desktop, Apache-2.0, pinned to a release.
|
|
agent-desktop-core = { git = "https://github.com/vercel-labs/agent-desktop", tag = "v1.1.0" }
|
|
|
|
[profile.release]
|
|
opt-level = 2
|
|
|
|
[target.'cfg(not(target_os = "macos"))'.dependencies]
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
agent-desktop-linux = { git = "https://github.com/vercel-labs/agent-desktop", tag = "v1.1.0" }
|
|
x11rb = { version = "0.13", features = ["xtest", "screensaver", "record"] }
|
|
# Wayland: wlroots desktops (sway, Hyprland…) through their own protocols; GNOME and KDE through
|
|
# the desktop portals (one "allow" dialog, remembered).
|
|
wayland-client = "0.31"
|
|
# (wl.rs: SO_RCVTIMEO on the compositor socket, so a frozen compositor can't freeze the app)
|
|
libc = "0.2"
|
|
wayland-protocols = { version = "0.32", features = ["client", "staging", "unstable"] }
|
|
wayland-protocols-wlr = { version = "0.3", features = ["client"] }
|
|
wayland-protocols-misc = { version = "0.3", features = ["client"] }
|
|
memmap2 = "0.9"
|
|
ashpd = { version = "0.13", default-features = false, features = ["async-io", "remote_desktop", "screencast", "screenshot"] }
|
|
zbus = { version = "5", default-features = false, features = ["async-io", "blocking-api"] }
|
|
futures-lite = "2"
|
|
async-io = "2"
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
agent-desktop-macos = { git = "https://github.com/vercel-labs/agent-desktop", tag = "v1.1.0" }
|
|
# Typing by pasting (any input method, any language); already in the build through egui.
|
|
arboard = { version = "3.7", default-features = false }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
agent-desktop-windows = { git = "https://github.com/vercel-labs/agent-desktop", tag = "v1.1.0" }
|