[workspace] members = [ "crates/*", # Mainly for cargo-machete to not error out during inspection. "vendor/v8", ] resolver = "2" [workspace.package] edition = "2021" version = "1.36.0" rust-version = "1.91.1" authors = ["AAIF "] license = "Apache-2.0" repository = "https://github.com/aaif-goose/goose" description = "An AI agent" [workspace.lints.clippy] uninlined_format_args = "allow" string_slice = "warn" [workspace.dependencies] rmcp = { version = "1.4", default-features = false, features = ["schemars", "auth"] } agent-client-protocol-schema = { version = "0.12", default-features = false, features = ["unstable"] } agent-client-protocol = { version = "0.11", default-features = false } arboard = { version = "3", default-features = false } anyhow = { version = "1.0.102", default-features = false, features = ["std"] } async-stream = { version = "0.3.6", default-features = false } async-trait = { version = "0.1.89", default-features = false } axum = { version = "0.8", default-features = false, features = ["http1", "http2", "json", "tokio", "query"] } base64 = { version = "0.22.1", default-features = false, features = ["std"] } bytes = { version = "1.10.1", default-features = false, features = ["std"] } candle-core = { version = "0.10", default-features = false } candle-nn = { version = "0.10", default-features = false } chrono = { version = "0.4.44", default-features = false, features = ["serde", "std"] } clap = { version = "4.1.14", default-features = false, features = ["derive", "std", "help", "suggestions", "usage", "color", "error-context"] } dirs = { version = "5", default-features = false } dotenvy = { version = "0.15.7", default-features = false } env-lock = { version = "1", default-features = false } etcetera = { version = "0.11", default-features = false } fs2 = { version = "0.4", default-features = false } futures = { version = "0.3.32", default-features = false, features = ["std"] } http = { version = "1.1", default-features = false, features = ["std"] } ignore = { version = "0.4.12", default-features = false } include_dir = { version = "0.7", default-features = false } indoc = { version = "2", default-features = false } keyring = { version = "3.6.3", default-features = false, features = ["vendored"] } lru = { version = "0.16", default-features = false } once_cell = { version = "1.21.3", default-features = false, features = ["std"] } rand = { version = "0.8.5", default-features = false, features = ["std"] } regex = { version = "1.12.3", default-features = false, features = ["std"] } reqwest = { version = "0.13.2", default-features = false, features = ["multipart", "form"] } rustls = { version = "0.23.31", default-features = false, features = ["aws_lc_rs", "std"] } schemars = { version = "1.0.2", default-features = false, features = ["std"] } serde = { version = "1.0.228", default-features = false, features = ["derive", "std"] } serde_json = { version = "1.0.145", default-features = false, features = ["std"] } serde_yaml = { version = "0.9.32", default-features = false } shellexpand = { version = "3", default-features = false, features = ["base-0", "tilde"] } strum = { version = "0.27.1", default-features = false, features = ["derive", "std"] } tempfile = { version = "3.10.1", default-features = false } thiserror = { version = "1.0.49", default-features = false } tokio = { version = "1.48", default-features = false } tokio-stream = { version = "0.1.16", default-features = false } tokio-util = { version = "0.7.12", default-features = false } tower-http = { version = "0.6.8", default-features = false } tracing = { version = "0.1.43", default-features = false, features = ["std"] } tracing-appender = { version = "0.2.1", default-features = false } tracing-futures = { version = "0.2.4", default-features = false, features = ["futures-03", "std", "std-future"] } tracing-subscriber = { version = "0.3.22", default-features = false, features = ["std"] } urlencoding = { version = "2.1", default-features = false } utoipa = { version = "4.2", default-features = false } uuid = { version = "1.18", default-features = false, features = ["v4", "std"] } webbrowser = { version = "1", default-features = false } which = { version = "8", default-features = false, features = ["real-sys"] } winapi = { version = "0.3.9", default-features = false, features = ["wincred", "std"] } wiremock = { version = "0.6", default-features = false } zip = { version = "8", default-features = false, features = ["deflate"] } serial_test = { version = "3", default-features = false } sha2 = { version = "0.11", default-features = false } shell-words = { version = "1", default-features = false, features = ["std"] } test-case = { version = "3", default-features = false } url = { version = "2.5.4", default-features = false, features = ["std"] } opentelemetry = { version = "0.32", default-features = false } opentelemetry_sdk = { version = "0.32", default-features = false, features = ["metrics"] } opentelemetry-http = { version = "0.32", default-features = false, features = ["internal-logs", "reqwest"] } opentelemetry-otlp = { version = "0.32", default-features = false, features = ["http-proto", "internal-logs", "logs", "metrics", "reqwest-client", "trace"] } opentelemetry-appender-tracing = { version = "0.32", default-features = false, features = ["experimental_span_attributes"] } opentelemetry-stdout = { version = "0.32", default-features = false, features = ["trace", "metrics", "logs"] } tracing-opentelemetry = { version = "0.33", default-features = false, features = ["metrics"] } rayon = { version = "1.10", default-features = false } tree-sitter = { version = "0.26", default-features = false, features = ["std"] } tree-sitter-go = { version = "0.25", default-features = false } tree-sitter-java = { version = "0.23", default-features = false } tree-sitter-javascript = { version = "0.25", default-features = false } tree-sitter-kotlin-ng = { version = "1", default-features = false } tree-sitter-python = { version = "0.25", default-features = false } tree-sitter-ruby = { version = "0.23", default-features = false } tree-sitter-rust = { version = "0.24", default-features = false } tree-sitter-swift = { version = "0.7", default-features = false } tree-sitter-typescript = { version = "0.23", default-features = false } # llama-cpp-2 doesn't pin the version of its sys crate, so we do it here. it also has breaking changes in patch releases, so we use an exact version pin llama-cpp-2 = { version = "=0.1.146", default-features = false, features = ["sampler", "mtmd"] } llama-cpp-sys-2 = { version = "=0.1.146", default-features = false } # These are needed because temporal_rs 0.1 (a transitive dep via PCTX) enables unstable features on icu_calendar without pinning the dependency version # A fix is available in temporal_rs 0.2 but PCTX has not updated # They are just here to pin the version, and can be removed if PCTX updates temporal_rs icu_calendar = { version = "=2.1.1", default-features = false } icu_locale = { version = "=2.1.1", default-features = false } [patch.crates-io] v8 = { path = "vendor/v8" } cudaforge = { git = "https://github.com/jbg/cudaforge", rev = "e7c1967340e40673db98dc9e17da0f04834a456f" }