[package] name = "goose" version.workspace = true edition.workspace = true authors.workspace = true license.workspace = true repository.workspace = true description.workspace = true [features] default = [] cuda = ["candle-core/cuda", "candle-nn/cuda", "llama-cpp-2/cuda"] [lints] workspace = true [dependencies] lru = { workspace = true } rmcp = { workspace = true, features = [ "client", "reqwest", "transport-child-process", "transport-streamable-http-client", "transport-streamable-http-client-reqwest", ] } anyhow = { workspace = true } thiserror = { workspace = true } futures = { workspace = true } dirs = { workspace = true } reqwest = { workspace = true, features = ["rustls", "json", "cookies", "gzip", "brotli", "deflate", "zstd", "charset", "http2", "stream", "blocking", "multipart", "system-proxy"], default-features = false } tokio = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } serde_urlencoded = "0.7" jsonschema = "0.30.0" uuid = { workspace = true } regex = { workspace = true } async-trait = { workspace = true } async-stream = { workspace = true } minijinja = { version = "2.12.0", features = ["loader"] } include_dir = { workspace = true } tiktoken-rs = "0.6.0" chrono = { workspace = true } clap = { workspace = true } indoc = { workspace = true } nanoid = "0.4" sha2 = "0.10" base64 = { workspace = true } url = { workspace = true } axum = { workspace = true } webbrowser = { workspace = true } lazy_static = "1.5.0" tracing = { workspace = true } tracing-subscriber = { workspace = true } tracing-opentelemetry = { workspace = true } opentelemetry = { workspace = true } opentelemetry-appender-tracing = { workspace = true } opentelemetry_sdk = { workspace = true } opentelemetry-otlp = { workspace = true } opentelemetry-stdout = { workspace = true } keyring = { version = "3.6.2", features = [ "apple-native", "windows-native", "sync-secret-service", "vendored", ] } serde_yaml = { workspace = true } once_cell = { workspace = true } etcetera = { workspace = true } rand = { workspace = true } utoipa = { workspace = true, features = ["chrono"] } tokio-cron-scheduler = "0.14.0" urlencoding = { workspace = true } v_htmlescape = "0.15" sqlx = { version = "0.8", default-features = false, features = [ "runtime-tokio-rustls", "sqlite", "chrono", "json", "macros", "migrate", ] } # For Bedrock provider aws-config = { version = "=1.8.12", features = ["behavior-version-latest"] } aws-smithy-types = "=1.3.5" aws-sdk-bedrockruntime = "=1.120.0" # For SageMaker TGI provider aws-sdk-sagemakerruntime = "1.62.0" # For GCP Vertex AI provider auth jsonwebtoken = { version = "10.3.0", features = ["aws_lc_rs"] } blake3 = "1.5" fs2 = { workspace = true } tokio-stream = { workspace = true } tempfile = { workspace = true } dashmap = "6.1" ahash = "0.8" tokio-util = { workspace = true, features = ["compat"] } unicode-normalization = "0.1" goose-mcp = { path = "../goose-mcp" } # For local Whisper transcription candle-core = { version = "0.9", default-features = false } candle-nn = { version = "0.9", default-features = false } candle-transformers = { version = "0.9", default-features = false } byteorder = "1.5.0" tokenizers = "0.21.0" hf-hub = { version = "0.4.3", default-features = false, features = ["tokio"] } symphonia = { version = "0.5", features = ["all"] } rubato = "0.16" zip = "0.6" sys-info = "0.9" schemars = { workspace = true, features = [ "derive", ] } insta = "1.43.2" paste = "1.0.0" posthog-rs = "0.3.7" shellexpand = { workspace = true } indexmap = "2.12.0" ignore = { workspace = true } which = { workspace = true } pctx_code_mode = "^0.2.3" unbinder = "0.1.7" llama-cpp-2 = { version = "0.1.133", features = ["sampler"] } encoding_rs = "0.8.35" [target.'cfg(target_os = "windows")'.dependencies] winapi = { version = "0.3", features = ["wincred"] } # Platform-specific GPU acceleration for Whisper and local inference [target.'cfg(target_os = "macos")'.dependencies] candle-core = { version = "0.9", default-features = false, features = ["metal"] } candle-nn = { version = "0.9", default-features = false, features = ["metal"] } llama-cpp-2 = { version = "0.1.133", features = ["sampler", "metal"] } [dev-dependencies] serial_test = { workspace = true } mockall = "0.13.1" wiremock = { workspace = true } tokio = { workspace = true } tokio-util = { workspace = true, features = ["compat"] } dotenvy = { workspace = true } ctor = "0.2.9" test-case = { workspace = true } env-lock = { workspace = true } rmcp = { workspace = true, features = ["transport-streamable-http-server"] } goose-test-support = { path = "../goose-test-support" } [[example]] name = "agent" path = "examples/agent.rs" [[example]] name = "databricks_oauth" path = "examples/databricks_oauth.rs" [[bin]] name = "build_canonical_models" path = "src/providers/canonical/build_canonical_models.rs"