diff --git a/.github/workflows/cargo-audit.yml b/.github/workflows/cargo-audit.yml index 55b50fb71a40..22e15f0f4c15 100644 --- a/.github/workflows/cargo-audit.yml +++ b/.github/workflows/cargo-audit.yml @@ -26,6 +26,7 @@ jobs: # https://github.com/marketplace/actions/cargo-audit-your-rust-dependencies - uses: actions-rust-lang/audit@72c09e02f132669d52284a3323acdb503cfc1a24 name: Audit Rust Dependencies - # with: - # Comma separated list of issues to ignore - # ignore: RUSTSEC-2020-0036 + with: + # sqlx-mysql pulls in rsa, but goose only uses sqlite. cargo-audit + # can't distinguish used from unused deps (rustsec/rustsec#1119). + ignore: RUSTSEC-2023-0071 diff --git a/Cargo.lock b/Cargo.lock index 89e5c269bedd..96eb468bdbfa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "agent-client-protocol-schema" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a871245e59daecd6abf45f516d35445466294ae987dc685106e1676685bfdce" +checksum = "44bc1fef9c32f03bce2ab44af35b6f483bfd169bf55cc59beeb2e3b1a00ae4d1" dependencies = [ "anyhow", "derive_more", @@ -156,9 +156,18 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" + +[[package]] +name = "ar_archive_writer" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7eb93bbb63b9c227414f6eb3a0adfddca591a8ce1e9b60661bb08969b87e340b" +dependencies = [ + "object", +] [[package]] name = "arbitrary" @@ -330,9 +339,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.13.3" +version = "1.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" +checksum = "7b7b6141e96a8c160799cc2d5adecd5cbbe5054cb8c7c4af53da0f83bb7ad256" dependencies = [ "aws-lc-sys", "zeroize", @@ -340,11 +349,10 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.30.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" +checksum = "5c34dda4df7017c8db52132f0f8a2e0f8161649d15723ed63fc00c82d0f2081a" dependencies = [ - "bindgen 0.69.5", "cc", "cmake", "dunce", @@ -579,7 +587,7 @@ dependencies = [ "hyper-util", "pin-project-lite", "rustls 0.21.12", - "rustls 0.23.31", + "rustls 0.23.36", "rustls-native-certs", "rustls-pki-types", "tokio", @@ -943,29 +951,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bindgen" -version = "0.69.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.114", - "which 4.4.2", -] - [[package]] name = "bindgen" version = "0.72.1" @@ -1325,15 +1310,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.3" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", - "constant_time_eq 0.3.1", + "constant_time_eq 0.4.2", + "cpufeatures", ] [[package]] @@ -1588,7 +1574,7 @@ dependencies = [ "candle-kernels", "candle-metal-kernels", "candle-ug", - "cudarc 0.19.0", + "cudarc 0.19.1", "float8 0.6.1", "gemm 0.19.0", "half", @@ -1604,7 +1590,7 @@ dependencies = [ "safetensors 0.7.0", "thiserror 2.0.18", "yoke 0.8.1", - "zip 7.2.0", + "zip 7.4.0", ] [[package]] @@ -1721,13 +1707,14 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.106" +version = "1.2.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "066fce287b1d4eafef758e89e09d724a24808a9196fe9756b8ca90e86d0719a2" +checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" dependencies = [ + "find-msvc-tools", "jobserver", "libc", - "once_cell", + "shlex", ] [[package]] @@ -1800,7 +1787,7 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading", + "libloading 0.8.9", ] [[package]] @@ -1888,9 +1875,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.53" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24a03c8b52922d68a1589ad61032f2c1aa5a8158d2aa0d93c6e9534944bbad6" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" dependencies = [ "cc", ] @@ -2064,9 +2051,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "content_inspector" @@ -2300,18 +2287,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf99ab37ee7072d64d906aa2dada9a3422f1d975cdf8c8055a573bc84897ed8" dependencies = [ "half", - "libloading", + "libloading 0.8.9", ] [[package]] name = "cudarc" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d5be1e9776a20360ca270df637b391c85d48ea57508140f30a4e8f6da91884a" +checksum = "60d4882b3e023670c25b8a3e1ac97349070f8e5400807c091b70e0bdad6e9b93" dependencies = [ - "float8 0.3.0", + "float8 0.7.0", "half", - "libloading", + "libloading 0.9.0", ] [[package]] @@ -2951,16 +2938,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "devgen-tree-sitter-swift" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55c23625b6874f93a85934eb8fe4804a87d0a7d38ff1b74fc3d7ab4a06bd92ae" -dependencies = [ - "cc", - "tree-sitter", -] - [[package]] name = "diff" version = "0.1.13" @@ -3463,6 +3440,12 @@ dependencies = [ "libredox", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "fixedbitset" version = "0.5.7" @@ -3481,24 +3464,24 @@ dependencies = [ [[package]] name = "float8" -version = "0.3.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f498aec3b227cd892ce18967f4033d9d397d28a80a7ab67e9f6b0176a79654e" +checksum = "719a903cc23e4a89e87962c2a80fdb45cdaad0983a89bd150bb57b4c8571a7d5" dependencies = [ + "cudarc 0.19.1", "half", + "num-traits", + "rand 0.9.2", + "rand_distr", ] [[package]] name = "float8" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719a903cc23e4a89e87962c2a80fdb45cdaad0983a89bd150bb57b4c8571a7d5" +checksum = "c2d1f04709a8ac06e8e8042875a3c466cc4832d3c1a18dbcb9dba3c6e83046bc" dependencies = [ - "cudarc 0.19.0", "half", - "num-traits", - "rand 0.9.2", - "rand_distr", ] [[package]] @@ -4341,7 +4324,6 @@ dependencies = [ "anyhow", "base64 0.22.1", "chrono", - "devgen-tree-sitter-swift", "docx-rs", "etcetera 0.11.0", "ignore", @@ -4373,10 +4355,11 @@ dependencies = [ "tree-sitter-go", "tree-sitter-java", "tree-sitter-javascript", - "tree-sitter-kotlin", + "tree-sitter-kotlin-ng", "tree-sitter-python", "tree-sitter-ruby", "tree-sitter-rust", + "tree-sitter-swift", "umya-spreadsheet", "url", "which 8.0.0", @@ -4406,7 +4389,7 @@ dependencies = [ "rand 0.9.2", "reqwest 0.12.28", "rmcp 0.14.0", - "rustls 0.23.31", + "rustls 0.23.36", "serde", "serde_json", "serde_path_to_error", @@ -4551,6 +4534,8 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.1.5", ] @@ -4567,15 +4552,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "hashlink" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" -dependencies = [ - "hashbrown 0.14.5", -] - [[package]] name = "hashlink" version = "0.10.0" @@ -4835,7 +4811,7 @@ dependencies = [ "http 1.4.0", "hyper 1.8.1", "hyper-util", - "rustls 0.23.31", + "rustls 0.23.36", "rustls-native-certs", "rustls-pki-types", "tokio", @@ -5288,15 +5264,6 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -5329,9 +5296,9 @@ checksum = "84de9d95a6d2547d9b77ee3f25fa0ee32e3c3a6484d47a55adebc0439c077992" [[package]] name = "jiff" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67e8da4c49d6d9909fe03361f9b620f58898859f5c7aded68351e85e71ecf50" +checksum = "d89a5b5e10d5a9ad6e5d1f4bd58225f655d6fe9767575a5e8ac5a6fe64e04495" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -5344,9 +5311,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c84ee7f197eca9a86c6fd6cb771e55eb991632f15f2bc3ca6ec838929e6e78" +checksum = "ff7a39c8862fc1369215ccf0a8f12dd4598c7f6484704359f0351bd617034dbf" dependencies = [ "proc-macro2", "quote", @@ -5540,12 +5507,6 @@ dependencies = [ "spin", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "lebe" version = "0.5.3" @@ -5590,6 +5551,16 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "libloading" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" +dependencies = [ + "cfg-if", + "windows-link 0.2.1", +] + [[package]] name = "libm" version = "0.2.16" @@ -5609,9 +5580,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.28.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" dependencies = [ "cc", "pkg-config", @@ -7093,9 +7064,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.5" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9eb05c21a464ea704b53158d358a31e6425db2f63a1a7312268b05fe2b75f7" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", "ucd-trie", @@ -7103,9 +7074,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.5" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f9dbced329c441fa79d80472764b1a2c7e57123553b8519b36663a2fb234ed" +checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" dependencies = [ "pest", "pest_generator", @@ -7113,9 +7084,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.5" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb96d5051a78f44f43c8f712d8e810adb0ebf923fc9ed2655a7f66f63ba8ee5" +checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" dependencies = [ "pest", "pest_meta", @@ -7126,9 +7097,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.5" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602113b5b5e8621770cfd490cfd90b9f84ab29bd2b0e49ad83eb6d186cef2365" +checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", "sha2", @@ -7486,10 +7457,11 @@ checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" [[package]] name = "psm" -version = "0.1.23" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +checksum = "1fa96cb91275ed31d6da3e983447320c4eb219ac180fa1679a0889ff32861e2d" dependencies = [ + "ar_archive_writer", "cc", ] @@ -7598,7 +7570,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.31", + "rustls 0.23.36", "socket2 0.6.2", "thiserror 2.0.18", "tokio", @@ -7618,7 +7590,7 @@ dependencies = [ "rand 0.9.2", "ring", "rustc-hash 2.1.1", - "rustls 0.23.31", + "rustls 0.23.36", "rustls-pki-types", "slab", "thiserror 2.0.18", @@ -7980,7 +7952,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.31", + "rustls 0.23.36", "rustls-native-certs", "rustls-pki-types", "serde", @@ -8022,9 +7994,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.9" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", @@ -8255,16 +8227,16 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.4", + "rustls-webpki 0.103.9", "subtle", "zeroize", ] @@ -8312,9 +8284,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "aws-lc-rs", "ring", @@ -9006,21 +8978,11 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" -[[package]] -name = "sqlformat" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" -dependencies = [ - "nom 7.1.3", - "unicode_categories", -] - [[package]] name = "sqlx" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27144619c6e5802f1380337a209d2ac1c431002dd74c6e60aebff3c506dc4f0c" +checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" dependencies = [ "sqlx-core", "sqlx-macros", @@ -9031,52 +8993,46 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a999083c1af5b5d6c071d34a708a19ba3e02106ad82ef7bbd69f5e48266b613b" +checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" dependencies = [ - "atoi", - "byteorder", + "base64 0.22.1", "bytes", "chrono", "crc", "crossbeam-queue", "either", "event-listener", - "futures-channel", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.14.5", - "hashlink 0.9.1", - "hex", + "hashbrown 0.15.5", + "hashlink", "indexmap 2.13.0", "log", "memchr", "once_cell", - "paste", "percent-encoding", - "rustls 0.21.12", - "rustls-pemfile", + "rustls 0.23.36", "serde", "serde_json", "sha2", "smallvec", - "sqlformat", - "thiserror 1.0.69", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", "url", - "webpki-roots 0.25.4", + "webpki-roots 0.26.11", ] [[package]] name = "sqlx-macros" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23217eb7d86c584b8cbe0337b9eacf12ab76fe7673c513141ec42565698bb88" +checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" dependencies = [ "proc-macro2", "quote", @@ -9087,9 +9043,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a099220ae541c5db479c6424bdf1b200987934033c2584f79a0e1693601e776" +checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", @@ -9106,16 +9062,15 @@ dependencies = [ "sqlx-postgres", "sqlx-sqlite", "syn 2.0.114", - "tempfile", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afe4c38a9b417b6a9a5eeffe7235d0a106716495536e7727d1c7f4b1ff3eba6" +checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", "base64 0.22.1", @@ -9149,16 +9104,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.18", "tracing", "whoami", ] [[package]] name = "sqlx-postgres" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dbb157e65f10dbe01f729339c06d239120221c9ad9fa0ba8408c4cc18ecf21" +checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", "base64 0.22.1", @@ -9170,7 +9125,6 @@ dependencies = [ "etcetera 0.8.0", "futures-channel", "futures-core", - "futures-io", "futures-util", "hex", "hkdf", @@ -9188,16 +9142,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.69", + "thiserror 2.0.18", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.0" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2cdd83c008a622d94499c0006d8ee5f821f36c89b7d625c900e5dc30b5c5ee" +checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" dependencies = [ "atoi", "chrono", @@ -9213,6 +9167,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", + "thiserror 2.0.18", "tracing", "url", ] @@ -9238,9 +9193,9 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stacker" -version = "0.1.17" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" +checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59" dependencies = [ "cc", "cfg-if", @@ -9270,6 +9225,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" + [[package]] name = "strength_reduce" version = "0.2.4" @@ -10519,7 +10480,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.31", + "rustls 0.23.36", "tokio", ] @@ -10542,7 +10503,7 @@ checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" dependencies = [ "futures-util", "log", - "rustls 0.23.31", + "rustls 0.23.36", "rustls-native-certs", "rustls-pki-types", "tokio", @@ -10907,82 +10868,102 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.21.0" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705bf7c0958d0171dd7d3a6542f2f4f21d87ed5f1dc8db52919d3a6bed9a359a" +checksum = "12987371f54efc9b9306a20dc87ed5aaee9f320c8a8b115e28515c412b2efe39" dependencies = [ "cc", "regex", + "regex-syntax", + "serde_json", + "streaming-iterator", + "tree-sitter-language", ] [[package]] name = "tree-sitter-go" -version = "0.21.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d702a98d3c7e70e466456e58ff2b1ac550bf1e29b97e5770676d2fdabec00d" +checksum = "c8560a4d2f835cc0d4d2c2e03cbd0dde2f6114b43bc491164238d333e28b16ea" dependencies = [ "cc", - "tree-sitter", + "tree-sitter-language", ] [[package]] name = "tree-sitter-java" -version = "0.21.0" +version = "0.23.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33bc21adf831a773c075d9d00107ab43965e6a6ea7607b47fd9ec6f3db4b481b" +checksum = "0aa6cbcdc8c679b214e616fd3300da67da0e492e066df01bcf5a5921a71e90d6" dependencies = [ "cc", - "tree-sitter", + "tree-sitter-language", ] [[package]] name = "tree-sitter-javascript" -version = "0.21.4" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8710a71bc6779e33811a8067bdda3ed08bed1733296ff915e44faf60f8c533d7" +checksum = "68204f2abc0627a90bdf06e605f5c470aa26fdcb2081ea553a04bdad756693f5" dependencies = [ "cc", - "tree-sitter", + "tree-sitter-language", ] [[package]] -name = "tree-sitter-kotlin" -version = "0.3.8" +name = "tree-sitter-kotlin-ng" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ff60aeb036f5762515ceb31404512ea4f9599764bcd3857074bb82867bdd34" +checksum = "e800ebbda938acfbf224f4d2c34947a31994b1295ee6e819b65226c7b51b4450" dependencies = [ "cc", - "tree-sitter", + "tree-sitter-language", ] +[[package]] +name = "tree-sitter-language" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009994f150cc0cd50ff54917d5bc8bffe8cad10ca10d81c34da2ec421ae61782" + [[package]] name = "tree-sitter-python" -version = "0.21.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4066c6cf678f962f8c2c4561f205945c84834cce73d981e71392624fdc390a9" +checksum = "6bf85fd39652e740bf60f46f4cda9492c3a9ad75880575bf14960f775cb74a1c" dependencies = [ "cc", - "tree-sitter", + "tree-sitter-language", ] [[package]] name = "tree-sitter-ruby" -version = "0.21.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0031f687c0772f2dad7b77104c43428611099a1804c81244ada21560f41f0b1" +checksum = "be0484ea4ef6bb9c575b4fdabde7e31340a8d2dbc7d52b321ac83da703249f95" dependencies = [ "cc", - "tree-sitter", + "tree-sitter-language", ] [[package]] name = "tree-sitter-rust" -version = "0.21.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "277690f420bf90741dea984f3da038ace46c4fe6047cba57a66822226cde1c93" +checksum = "4b9b18034c684a2420722be8b2a91c9c44f2546b631c039edf575ccba8c61be1" dependencies = [ "cc", - "tree-sitter", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-swift" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ef216011c3e3df4fa864736f347cb8d509b1066cf0c8549fb1fd81ac9832e59" +dependencies = [ + "cc", + "tree-sitter-language", ] [[package]] @@ -11013,7 +10994,7 @@ dependencies = [ "httparse", "log", "rand 0.9.2", - "rustls 0.23.31", + "rustls 0.23.36", "rustls-pki-types", "sha1", "thiserror 2.0.18", @@ -11058,7 +11039,7 @@ checksum = "76b761acf8af3494640d826a8609e2265e19778fb43306c7f15379c78c9b05b0" dependencies = [ "gemm 0.18.2", "half", - "libloading", + "libloading 0.8.9", "memmap2", "num", "num-traits", @@ -11361,7 +11342,7 @@ version = "145.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61d9a107e16bae35a0be2bb0096ac1d2318aac352c82edd796ab2b9cac66d8f0" dependencies = [ - "bindgen 0.72.1", + "bindgen", "bitflags 2.10.0", "fslock", "gzip-header", @@ -11566,6 +11547,15 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.6", +] + [[package]] name = "webpki-roots" version = "1.0.6" @@ -11581,18 +11571,6 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - [[package]] name = "which" version = "6.0.3" @@ -12407,7 +12385,7 @@ checksum = "2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9" dependencies = [ "arraydeque", "encoding_rs", - "hashlink 0.10.0", + "hashlink", ] [[package]] @@ -12465,18 +12443,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.38" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57cf3aa6855b23711ee9852dfc97dfaa51c45feaba5b645d0c777414d494a961" +checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.38" +version = "0.8.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a616990af1a287837c4fe6596ad77ef57948f787e46ce28e166facc0cc1cb75" +checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", @@ -12597,9 +12575,9 @@ dependencies = [ [[package]] name = "zip" -version = "7.2.0" +version = "7.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0" +checksum = "cc12baa6db2b15a140161ce53d72209dacea594230798c24774139b54ecaa980" dependencies = [ "crc32fast", "indexmap 2.13.0", diff --git a/crates/goose-mcp/Cargo.toml b/crates/goose-mcp/Cargo.toml index 9e8660597385..fe7f3cc45d16 100644 --- a/crates/goose-mcp/Cargo.toml +++ b/crates/goose-mcp/Cargo.toml @@ -40,15 +40,15 @@ image = { version = "0.24.9", features = ["jpeg"] } umya-spreadsheet = "2.2.3" which = {workspace = true} lru = "0.16" -tree-sitter = "0.21" -tree-sitter-python = "0.21" -tree-sitter-rust = "0.21" -tree-sitter-javascript = "0.21" -tree-sitter-go = "0.21" -tree-sitter-java = "0.21" -tree-sitter-kotlin = "0.3.8" -devgen-tree-sitter-swift = "0.21.0" -tree-sitter-ruby = "0.21.0" +tree-sitter = "0.26" +tree-sitter-python = "0.25" +tree-sitter-rust = "0.24" +tree-sitter-javascript = "0.25" +tree-sitter-go = "0.25" +tree-sitter-java = "0.23" +tree-sitter-kotlin-ng = "1.1" +tree-sitter-swift = "0.7" +tree-sitter-ruby = "0.23" rayon = "1.10" libc = "0.2" # TODO: Fork mpatch or replace with a custom implementation using `similar` crate diff --git a/crates/goose-mcp/src/developer/analyze/languages/go.rs b/crates/goose-mcp/src/developer/analyze/languages/go.rs index 9c1ec28376e0..cc6b8c545bc2 100644 --- a/crates/goose-mcp/src/developer/analyze/languages/go.rs +++ b/crates/goose-mcp/src/developer/analyze/languages/go.rs @@ -84,7 +84,7 @@ pub fn find_method_for_receiver( let mut current = *receiver_node; while let Some(parent) = current.parent() { if parent.kind() == "method_declaration" { - for i in 0..parent.child_count() { + for i in 0..parent.child_count() as u32 { if let Some(child) = parent.child(i) { if child.kind() == "field_identifier" { return source.get(child.byte_range()).map(|s| s.to_string()); diff --git a/crates/goose-mcp/src/developer/analyze/languages/kotlin.rs b/crates/goose-mcp/src/developer/analyze/languages/kotlin.rs index 5182fe89a94a..e031efdc1f9e 100644 --- a/crates/goose-mcp/src/developer/analyze/languages/kotlin.rs +++ b/crates/goose-mcp/src/developer/analyze/languages/kotlin.rs @@ -1,27 +1,26 @@ /// Tree-sitter query for extracting Kotlin code elements pub const ELEMENT_QUERY: &str = r#" ; Functions - (function_declaration (simple_identifier) @func) + (function_declaration name: (identifier) @func) ; Classes - (class_declaration (type_identifier) @class) + (class_declaration name: (identifier) @class) ; Objects (singleton classes) - (object_declaration (type_identifier) @class) + (object_declaration name: (identifier) @class) ; Imports - (import_header) @import + (import) @import "#; /// Tree-sitter query for extracting Kotlin function calls pub const CALL_QUERY: &str = r#" ; Simple function calls (call_expression - (simple_identifier) @function.call) + (identifier) @function.call) ; Method calls with navigation (obj.method()) (call_expression (navigation_expression - (navigation_suffix - (simple_identifier) @method.call))) + (identifier) @method.call)) "#; diff --git a/crates/goose-mcp/src/developer/analyze/languages/ruby.rs b/crates/goose-mcp/src/developer/analyze/languages/ruby.rs index df9f7496fa7c..04a0ab97ccd4 100644 --- a/crates/goose-mcp/src/developer/analyze/languages/ruby.rs +++ b/crates/goose-mcp/src/developer/analyze/languages/ruby.rs @@ -113,7 +113,7 @@ fn find_first_method_in_class( source: &str, max_depth: usize, ) -> Option { - for i in 0..class_node.child_count() { + for i in 0..class_node.child_count() as u32 { if let Some(child) = class_node.child(i) { if child.kind() == "body_statement" { return find_method_in_body_with_depth(&child, source, 0, max_depth); @@ -134,10 +134,10 @@ fn find_method_in_body_with_depth( return None; } - for i in 0..node.child_count() { + for i in 0..node.child_count() as u32 { if let Some(child) = node.child(i) { if child.kind() == "method" { - for j in 0..child.child_count() { + for j in 0..child.child_count() as u32 { if let Some(name_node) = child.child(j) { if name_node.kind() == "identifier" { return source.get(name_node.byte_range()).map(|s| s.to_string()); diff --git a/crates/goose-mcp/src/developer/analyze/languages/rust.rs b/crates/goose-mcp/src/developer/analyze/languages/rust.rs index bf9a6f983e47..98bfabc6ed60 100644 --- a/crates/goose-mcp/src/developer/analyze/languages/rust.rs +++ b/crates/goose-mcp/src/developer/analyze/languages/rust.rs @@ -80,7 +80,7 @@ pub fn extract_function_name_for_kind( ) -> Option { if kind == "impl_item" { // For impl blocks, find the type being implemented - for i in 0..node.child_count() { + for i in 0..node.child_count() as u32 { if let Some(child) = node.child(i) { if child.kind() == "type_identifier" { return source @@ -108,7 +108,7 @@ pub fn find_method_for_receiver( while let Some(parent) = current.parent() { if parent.kind() == "function_item" { // Found the function, get its name - for i in 0..parent.child_count() { + for i in 0..parent.child_count() as u32 { if let Some(child) = parent.child(i) { if child.kind() == "identifier" { return source.get(child.byte_range()).map(|s| s.to_string()); @@ -132,7 +132,7 @@ pub fn find_receiver_type(node: &tree_sitter::Node, source: &str) -> Option tree_sitter_python::language(), - "rust" => tree_sitter_rust::language(), - "javascript" | "typescript" => tree_sitter_javascript::language(), - "go" => tree_sitter_go::language(), - "java" => tree_sitter_java::language(), - "kotlin" => tree_sitter_kotlin::language(), - "swift" => devgen_tree_sitter_swift::language(), - "ruby" => tree_sitter_ruby::language(), + "python" => tree_sitter_python::LANGUAGE.into(), + "rust" => tree_sitter_rust::LANGUAGE.into(), + "javascript" | "typescript" => tree_sitter_javascript::LANGUAGE.into(), + "go" => tree_sitter_go::LANGUAGE.into(), + "java" => tree_sitter_java::LANGUAGE.into(), + "kotlin" => tree_sitter_kotlin_ng::LANGUAGE.into(), + "swift" => tree_sitter_swift::LANGUAGE.into(), + "ruby" => tree_sitter_ruby::LANGUAGE.into(), _ => { tracing::warn!("Unsupported language: {}", language); return Err(ErrorData::new( @@ -93,7 +93,7 @@ impl ElementExtractor { node: &'a tree_sitter::Node, kinds: &[&str], ) -> Option> { - (0..node.child_count()) + (0..node.child_count() as u32) .filter_map(|i| node.child(i)) .find(|child| kinds.contains(&child.kind())) } @@ -214,7 +214,7 @@ impl ElementExtractor { let mut cursor = QueryCursor::new(); let mut matches = cursor.matches(&query, tree.root_node(), source.as_bytes()); - for match_ in matches.by_ref() { + while let Some(match_) = matches.next() { for capture in match_.captures { let node = capture.node; let Some(text) = source.get(node.byte_range()) else { @@ -222,7 +222,7 @@ impl ElementExtractor { }; let line = source .get(..node.start_byte()) - .map(|s| s.lines().count() + 1) + .map(|s: &str| s.lines().count() + 1) .unwrap_or(1); match query.capture_names()[capture.index as usize] { @@ -287,7 +287,7 @@ impl ElementExtractor { let mut cursor = QueryCursor::new(); let mut matches = cursor.matches(&query, tree.root_node(), source.as_bytes()); - for match_ in matches.by_ref() { + while let Some(match_) = matches.next() { for capture in match_.captures { let node = capture.node; let Some(text) = source.get(node.byte_range()) else { @@ -297,17 +297,17 @@ impl ElementExtractor { let line_start = source .get(..node.start_byte()) - .and_then(|s| s.rfind('\n')) + .and_then(|s: &str| s.rfind('\n')) .map(|i| i + 1) .unwrap_or(0); let line_end = source .get(node.end_byte()..) - .and_then(|s| s.find('\n')) + .and_then(|s: &str| s.find('\n')) .map(|i| node.end_byte() + i) .unwrap_or(source.len()); let context = source .get(line_start..line_end) - .map(|s| s.trim().to_string()) + .map(|s: &str| s.trim().to_string()) .unwrap_or_default(); let caller_name = Self::find_containing_function(&node, source, language); @@ -366,7 +366,7 @@ impl ElementExtractor { let mut cursor = QueryCursor::new(); let mut matches = cursor.matches(&query, tree.root_node(), source.as_bytes()); - for match_ in matches.by_ref() { + while let Some(match_) = matches.next() { for capture in match_.captures { let node = capture.node; let Some(text) = source.get(node.byte_range()) else { @@ -376,17 +376,17 @@ impl ElementExtractor { let line_start = source .get(..node.start_byte()) - .and_then(|s| s.rfind('\n')) + .and_then(|s: &str| s.rfind('\n')) .map(|i| i + 1) .unwrap_or(0); let line_end = source .get(node.end_byte()..) - .and_then(|s| s.find('\n')) + .and_then(|s: &str| s.find('\n')) .map(|i| node.end_byte() + i) .unwrap_or(source.len()); let context = source .get(line_start..line_end) - .map(|s| s.trim().to_string()) + .map(|s: &str| s.trim().to_string()) .unwrap_or_default(); let capture_name = query.capture_names()[capture.index as usize]; diff --git a/crates/goose/Cargo.toml b/crates/goose/Cargo.toml index 63d5f1f71e30..019c2bf0b29f 100644 --- a/crates/goose/Cargo.toml +++ b/crates/goose/Cargo.toml @@ -82,11 +82,13 @@ utoipa = { version = "4.1", features = ["chrono"] } tokio-cron-scheduler = "0.14.0" urlencoding = "2.1" v_htmlescape = "0.15" -sqlx = { version = "0.8", features = [ +sqlx = { version = "0.8", default-features = false, features = [ "runtime-tokio-rustls", "sqlite", "chrono", "json", + "macros", + "migrate", ] } # For Bedrock provider