[package] name = "cm-api" version = "0.1.0" edition.workspace = true rust-version.workspace = true license.workspace = true publish.workspace = true [dependencies] getrandom = "0.2" toml = "0.8" toml_edit = "0.22" serde_yaml = "0.9" hex = "0.4" hmac = "0.12" sha2 = "0.10" base64 = "0.22" async-stream = "0.3" axum = { version = "0.8", features = ["ws"] } # Docker API — matches cm-sandbox's version so the workspace resolves cleanly. # Used by research_container to spawn/stop per-topic team runtimes via the # same socket-proxy the server already talks to. bollard = "0.19" futures = "0.3" serde = { workspace = true } serde_json = { workspace = true } sqlx = { workspace = true } reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } cm-auth = { path = "../cm-auth" } cm-billing = { path = "../cm-billing" } cm-brain = { path = "../cm-brain" } cm-config = { path = "../cm-config" } cm-db = { path = "../cm-db" } cm-domain = { path = "../cm-domain" } cm-files = { path = "../cm-files" } tar = { workspace = true } cm-llm = { path = "../cm-llm" } cm-orchestrator = { path = "../cm-orchestrator", features = ["provider"] } cm-runtime = { path = "../cm-runtime" } cm-sandbox = { path = "../cm-sandbox" } cm-safety = { path = "../cm-safety" } async-trait = "0.1" cm-scheduler = { path = "../cm-scheduler" } cm-secrets = { path = "../cm-secrets" } cm-topology = { path = "../cm-topology" } thiserror = { workspace = true } tokio-tungstenite = { version = "0.26", features = ["rustls-tls-webpki-roots"] } tower-http = { version = "0.6", features = ["trace"] } time = { workspace = true } tokio = { workspace = true } urlencoding = "2" uuid = { workspace = true } [dev-dependencies] axum = { version = "0.8", features = ["ws"] } tempfile = "3" jsonwebtoken = "9" eventsource-stream = "0.2" reqwest = { version = "0.12", default-features = false, features = [ "json", "rustls-tls", "stream", ] } cm-llm = { path = "../cm-llm" } cm-testkit = { path = "../cm-testkit" } hex = "0.4" hmac = "0.12" base64 = "0.22" rand_core = { version = "0.6", features = ["getrandom"] } rsa = { version = "0.9", features = ["pem"] } sha2 = "0.10" [lints] workspace = true