[package] name = "goose" version.workspace = true edition.workspace = true authors.workspace = true license.workspace = true repository.workspace = true description.workspace = true [features] default = [] [lints] workspace = true [build-dependencies] tokio = { workspace = true } reqwest = { workspace = true, features = [ "json", "rustls-tls-native-roots", ], default-features = false } [dependencies] lru = "0.16" rmcp = { workspace = true, features = [ "client", "reqwest", "transport-child-process", "transport-streamable-http-client", "transport-streamable-http-client-reqwest", ] } anyhow = { workspace = true } thiserror = "1.0" futures = { workspace = true } dirs = "5.0" reqwest = { workspace = true, features = ["rustls-tls-native-roots", "json", "cookies", "gzip", "brotli", "deflate", "zstd", "charset", "http2", "stream", "blocking", "multipart"], default-features = false } tokio = { workspace = true } serde = { version = "1.0", features = ["derive"] } serde_json = { workspace = true } serde_urlencoded = "0.7" jsonschema = "0.30.0" uuid = { version = "1.0", features = ["v4"] } regex = { workspace = true } async-trait = "0.1.89" async-stream = "0.3" minijinja = { version = "2.12.0", features = ["loader"] } include_dir = "0.7.4" tiktoken-rs = "0.6.0" chrono = { version = "0.4.38", features = ["serde"] } clap = { version = "4.4", features = ["derive"] } indoc = "2.0.5" nanoid = "0.4" sha2 = "0.10" base64 = { workspace = true } url = { workspace = true } axum = "0.8.1" webbrowser = { workspace = true } lazy_static = "1.5.0" tracing = { workspace = true } tracing-subscriber = "0.3" tracing-opentelemetry = "0.28" opentelemetry = "0.27" opentelemetry-appender-tracing = "0.27" opentelemetry_sdk = { version = "0.27", features = ["rt-tokio", "metrics"] } opentelemetry-otlp = { version = "0.27", features = [ "http-proto", "reqwest-client", ] } keyring = { version = "3.6.2", features = [ "apple-native", "windows-native", "sync-secret-service", "vendored", ] } serde_yaml = "0.9.34" once_cell = "1.20.2" etcetera = { workspace = true } rand = "0.8.5" utoipa = { version = "4.1", features = ["chrono"] } tokio-cron-scheduler = "0.14.0" urlencoding = "2.1" v_htmlescape = "0.15" sqlx = { version = "0.8", features = [ "runtime-tokio-rustls", "sqlite", "chrono", "json", ] } # 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 = "9.3.1" blake3 = "1.5" fs2 = "0.4.3" tokio-stream = "0.1.17" tempfile = "3.15.0" dashmap = "6.1" ahash = "0.8" tokio-util = { version = "0.7.15", 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 = { version = "1.0.4", default-features = false, features = [ "derive", ] } insta = "1.43.2" paste = "1.0.0" posthog-rs = "0.3.7" shellexpand = "3.1.1" indexmap = "2.12.0" ignore = { workspace = true } which = { workspace = true } pctx_code_mode = "^0.2.2" unbinder = "0.1.7" [target.'cfg(target_os = "windows")'.dependencies] winapi = { version = "0.3", features = ["wincred"] } # Platform-specific GPU acceleration for Whisper [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"] } [dev-dependencies] serial_test = { workspace = true } mockall = "0.13.1" wiremock = { workspace = true } tokio = { workspace = true } tokio-util = { version = "0.7.15", features = ["compat"] } dotenvy = "0.15.7" ctor = "0.2.9" test-case = { workspace = true } env-lock = { workspace = true } rmcp = { workspace = true, features = ["transport-streamable-http-server"] } [[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"