[package] name = "goose-server" version.workspace = true edition.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true repository.workspace = true description.workspace = true [lints] workspace = true [features] default = [ "code-mode", "local-inference", "aws-providers", "telemetry", "nostr", "otel", "rustls-tls", "system-keyring", ] code-mode = ["goose/code-mode"] local-inference = ["goose/local-inference"] aws-providers = ["goose/aws-providers"] cuda = ["goose/cuda", "local-inference"] vulkan = ["goose/vulkan", "local-inference"] telemetry = ["goose/telemetry"] nostr = ["goose/nostr"] otel = ["goose/otel"] system-keyring = ["goose/system-keyring"] portable-default = ["rustls-tls", "aws-providers", "telemetry", "otel"] rustls-tls = [ "reqwest/rustls", "tokio-tungstenite/rustls-tls-native-roots", "axum-server/tls-rustls", "dep:rustls", "dep:aws-lc-rs", "goose/rustls-tls", "goose-mcp/rustls-tls", ] native-tls = [ "reqwest/native-tls", "tokio-tungstenite/native-tls", "axum-server/tls-openssl", "dep:openssl", "goose/native-tls", "goose-mcp/native-tls", ] [dependencies] goose = { path = "../goose", default-features = false } goose-mcp = { path = "../goose-mcp", default-features = false } rmcp = { workspace = true } axum = { workspace = true, features = ["ws", "macros"] } tokio = { workspace = true } chrono = { workspace = true } tower-http = { workspace = true, features = ["cors"] } serde = { workspace = true } serde_json = { workspace = true, features = ["preserve_order"] } futures = { workspace = true } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter", "fmt", "json", "time"] } tokio-stream = { workspace = true } anyhow = { workspace = true } bytes = { workspace = true } http = { workspace = true } base64 = { workspace = true } config = { version = "0.15", default-features = false, features = ["toml"] } thiserror = { workspace = true } clap = { workspace = true } serde_yaml = { workspace = true } utoipa = { workspace = true, features = ["axum_extras", "chrono"] } reqwest = { workspace = true, features = ["json", "blocking", "multipart", "system-proxy"] } tokio-util = { workspace = true } serde_path_to_error = { version = "0.1.8", default-features = false } tokio-tungstenite = { version = "0.29", default-features = false, features = ["connect"] } url = { workspace = true } rand = { workspace = true } hex = { version = "0.4.3", default-features = false, features = ["std"] } subtle = { version = "2.5", default-features = false, features = ["std"] } socket2 = { version = "0.6", default-features = false } fs2 = { workspace = true } rustls = { workspace = true, optional = true } uuid = { workspace = true } rcgen = { version = "0.14", default-features = false, features = ["aws_lc_rs", "crypto", "pem"] } axum-server = { version = "0.8", default-features = false } aws-lc-rs = { version = "1.17", default-features = false, optional = true } openssl = { version = "0.10.66", default-features = false, optional = true } pem = { version = "3.0.2", default-features = false, features = ["std"] } [target.'cfg(windows)'.dependencies] winreg = { version = "0.56", default-features = false } [[bin]] name = "goosed" path = "src/main.rs" [[bin]] name = "generate_schema" path = "src/bin/generate_schema.rs" [dev-dependencies] tower = { version = "0.5.2", default-features = false } [package.metadata.cargo-machete] ignored = [ # Used only in windows "winreg", ]