[package] name = "goose-providers" version = "0.1.0-alpha.5" edition.workspace = true rust-version.workspace = true authors.workspace = true license.workspace = true repository.workspace = true description.workspace = true [lints] workspace = true [features] default = [] local-inference = ["dep:goose-local-inference"] cuda = ["local-inference", "goose-local-inference/cuda"] vulkan = ["local-inference", "goose-local-inference/vulkan"] mlx = ["local-inference", "goose-local-inference/mlx"] rustls-tls = [ "reqwest/rustls", "rmcp/reqwest", ] native-tls = [ "dep:pem", "dep:pkcs1", "dep:pkcs8", "dep:sec1", "reqwest/native-tls", "rmcp/reqwest-native-tls", ] [dependencies] anyhow = { workspace = true } async-stream = { workspace = true } chrono = { workspace = true } futures = { workspace = true } goose-provider-types = { version = "0.1.0-alpha.5", path = "../goose-provider-types", default-features = false } goose-local-inference = { version = "0.1.0-alpha.5", path = "../goose-local-inference", default-features = false, optional = true } reqwest = { workspace = true } rmcp = { workspace = true, features = ["server", "macros"] } serde = { workspace = true } serde_json = { workspace = true } tracing = { workspace = true } async-trait = { workspace = true } tokio = { workspace = true } tokio-stream = { workspace = true, features = ["io-util"] } tokio-util = { workspace = true, features = ["compat"] } url = { workspace = true } urlencoding = { workspace = true } pem = { version = "4.0.0", default-features = false, features = ["std"], optional = true } pkcs1 = { version = "0.7.5", default-features = false, features = ["pkcs8", "std"], optional = true } # v0.10 matches the der/const-oid series used by sec1 v0.7 and pkcs1 v0.7; upgrading to v0.11 causes type mismatches across those crates. pkcs8 = { version = "0.10", default-features = false, features = ["alloc", "std"], optional = true } sec1 = { version = "0.7", default-features = false, features = ["der", "pkcs8", "std"], optional = true } include_dir = { workspace = true } [dev-dependencies] test-case = { workspace = true } tempfile = { workspace = true } tokio = { workspace = true, features = ["rt-multi-thread"] } tokio-stream = { workspace = true } env-lock = { workspace = true } wiremock.workspace = true [[example]] name = "streaming" required-features = ["rustls-tls"]