2025-01-24 13:04:43 -08:00
[ workspace ]
2026-03-12 09:51:50 -03:00
members = [
2026-04-07 01:34:48 -04:00
"crates/*" ,
2026-03-12 09:51:50 -03:00
# Mainly for cargo-machete to not error out during inspection.
2026-04-17 03:01:30 -04:00
"vendor/v8" ,
2026-03-12 09:51:50 -03:00
]
2025-01-24 13:04:43 -08:00
resolver = "2"
[ workspace . package ]
edition = "2021"
2026-07-29 09:03:40 -04:00
version = "1.45.0"
2026-07-07 15:41:04 -07:00
rust-version = "1.94.1"
2026-04-07 01:34:48 -04:00
authors = [ "AAIF <ai-oss-tools@block.xyz>" ]
2025-01-24 13:04:43 -08:00
license = "Apache-2.0"
2026-04-07 01:34:48 -04:00
repository = "https://github.com/aaif-goose/goose"
2025-06-04 15:12:44 -07:00
description = "An AI agent"
2025-06-27 15:29:21 +10:00
[ workspace . lints . clippy ]
uninlined_format_args = "allow"
2025-11-04 14:46:25 -08:00
string_slice = "warn"
2025-06-27 15:29:21 +10:00
2025-07-17 22:18:35 -04:00
[ workspace . dependencies ]
2026-07-29 14:05:58 -04:00
rmcp = { version = "3.0.0" , default-features = false , features = [ "schemars" , "auth" ] }
2026-06-29 01:27:11 -04:00
agent-client-protocol-schema = { version = "1.1" , default-features = false , features = [ "unstable" ] }
agent-client-protocol = { version = "1.0" , default-features = false }
agent-client-protocol-http = { version = "1.0" , default-features = false , features = [ "server" , "unstable_cancel_request" ] }
2026-05-26 18:09:03 +02:00
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" ] }
2026-07-31 16:53:08 -04:00
base64 = { version = "0.23.0" , default-features = false , features = [ "std" ] }
2026-05-26 18:09:03 +02:00
bytes = { version = "1.10.1" , default-features = false , features = [ "std" ] }
2026-07-06 02:54:54 +00:00
candle-core = { version = "0.11" , default-features = false }
candle-nn = { version = "0.11" , default-features = false }
2026-05-26 18:09:03 +02:00
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" ] }
2026-06-15 10:04:46 -04:00
dirs = { version = "6" , default-features = false }
2026-05-26 18:09:03 +02:00
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" ] }
2026-06-15 14:06:54 +00:00
lru = { version = "0.18" , default-features = false }
2026-05-26 18:09:03 +02:00
once_cell = { version = "1.21.3" , default-features = false , features = [ "std" ] }
2026-06-22 17:14:08 +00:00
rand = "0.10.1"
2026-05-26 18:09:03 +02:00
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" ] }
2026-06-03 13:35:52 -04:00
strum = { version = "0.28.0" , default-features = false , features = [ "derive" , "std" ] }
2026-05-26 18:09:03 +02:00
tempfile = { version = "3.10.1" , default-features = false }
2026-06-16 18:15:21 -04:00
thiserror = { version = "2.0.18" , default-features = false }
2026-05-26 18:09:03 +02:00
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 }
2026-06-22 17:14:04 +00:00
tower-http = { version = "0.7.0" , default-features = false }
2026-05-26 18:09:03 +02:00
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 }
2026-06-03 13:25:23 -04:00
uuid = { version = "1.23" , default-features = false , features = [ "v4" , "std" ] }
2026-05-26 18:09:03 +02:00
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 }
2026-05-27 19:08:54 +00:00
sha2 = { version = "0.11" , default-features = false }
2026-05-26 18:09:03 +02:00
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" ] }
2026-06-30 17:10:36 +10:00
opentelemetry-otlp = { version = "0.32" , default-features = false , features = [ "http-proto" , "internal-logs" , "logs" , "metrics" , "reqwest-client" , "trace" ] }
2026-05-26 18:09:03 +02:00
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" ] }
2026-02-25 23:59:32 +01:00
2026-05-26 18:09:03 +02:00
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 }
2026-02-25 23:59:32 +01:00
[ patch . crates-io ]
2026-03-16 13:06:31 +08:00
v8 = { path = "vendor/v8" }
2026-05-04 16:36:13 +02:00
cudaforge = { git = "https://github.com/jbg/cudaforge" , rev = "e7c1967340e40673db98dc9e17da0f04834a456f" }
2026-06-17 11:11:53 -07:00
# Dependencies don't need debug info. You rarely step-debug into third-party
# crates, but their DWARF dominates `target/debug` — roughly 50-70% of each
# dependency rlib in this workspace is debug info. Dropping it for dependencies
# only shrinks the debug build substantially and speeds linking. The "*" spec
# matches all dependencies but NOT workspace members, so first-party crates keep
# full debug info and stay fully debuggable; release builds are unaffected.
[ profile . dev . package . "*" ]
debug = false