diff --git a/Cargo.lock b/Cargo.lock index d350f7011379946fba97bba9447f205ea2d32715..62f91084158d927f0b0cef8c810f75194e8491c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1282,7 +1282,9 @@ dependencies = [ "futures-util", "log", "pin-project-lite", + "rustls-pki-types", "tokio", + "tokio-rustls 0.26.2", "tungstenite 0.27.0", ] @@ -2170,7 +2172,7 @@ dependencies = [ "bitflags 2.9.1", "cexpr", "clang-sys", - "itertools 0.12.1", + "itertools 0.10.5", "lazy_static", "lazycell", "log", @@ -2730,12 +2732,12 @@ dependencies = [ [[package]] name = "candle-core" -version = "0.8.0" -source = "git+https://github.com/EricLBuehler/candle.git?rev=132643d#132643dc466cffefa133630565c0fbc2b62889b0" +version = "0.9.1" +source = "git+https://github.com/EricLBuehler/candle.git?rev=95d713f9#95d713f996225a3643b1d0c3eeb5a35c40516625" dependencies = [ "byteorder", "float8", - "gemm", + "gemm 0.17.1", "half", "memmap2", "num-traits", @@ -2743,22 +2745,23 @@ dependencies = [ "rand 0.9.2", "rand_distr 0.5.1", "rayon", - "safetensors", + "safetensors 0.6.0", "thiserror 1.0.69", + "ug", "yoke 0.7.5", "zip 1.1.4", ] [[package]] name = "candle-nn" -version = "0.8.0" -source = "git+https://github.com/EricLBuehler/candle.git?rev=132643d#132643dc466cffefa133630565c0fbc2b62889b0" +version = "0.9.1" +source = "git+https://github.com/EricLBuehler/candle.git?rev=95d713f9#95d713f996225a3643b1d0c3eeb5a35c40516625" dependencies = [ "candle-core", "half", "num-traits", "rayon", - "safetensors", + "safetensors 0.6.0", "serde", "thiserror 1.0.69", ] @@ -3173,7 +3176,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-recursion 0.3.2", - "async-tungstenite 0.29.1", + "async-tungstenite 0.30.0", "base64 0.22.1", "chrono", "clock", @@ -3333,7 +3336,7 @@ checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ "serde", "termcolor", - "unicode-width 0.2.1", + "unicode-width 0.1.14", ] [[package]] @@ -3346,7 +3349,7 @@ dependencies = [ "assistant_slash_command", "async-stripe", "async-trait", - "async-tungstenite 0.29.1", + "async-tungstenite 0.30.0", "audio", "aws-config", "aws-sdk-kinesis", @@ -5269,6 +5272,15 @@ dependencies = [ "reborrow", ] +[[package]] +name = "dyn-stack" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490bd48eb68fffcfed519b4edbfd82c69cbe741d175b84f0e0cbe8c57cbe0bdd" +dependencies = [ + "bytemuck", +] + [[package]] name = "ec4rs" version = "1.2.0" @@ -6155,14 +6167,12 @@ checksum = "8ce81f49ae8a0482e4c55ea62ebbd7e5a686af544c00b9d090bba3ff9be97b3d" [[package]] name = "float8" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee36245af1dccf978103fcd393582806db2a1d0bcd2f38c663cdbb4a363a01c" +checksum = "0f498aec3b227cd892ce18967f4033d9d397d28a80a7ab67e9f6b0176a79654e" dependencies = [ "half", "num-traits", - "rand 0.9.2", - "rand_distr 0.5.1", ] [[package]] @@ -6661,17 +6671,37 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ab24cc62135b40090e31a76a9b2766a501979f3070fa27f689c27ec04377d32" dependencies = [ - "dyn-stack", - "gemm-c32", - "gemm-c64", - "gemm-common", - "gemm-f16", - "gemm-f32", - "gemm-f64", + "dyn-stack 0.10.0", + "gemm-c32 0.17.1", + "gemm-c64 0.17.1", + "gemm-common 0.17.1", + "gemm-f16 0.17.1", + "gemm-f32 0.17.1", + "gemm-f64 0.17.1", + "num-complex", + "num-traits", + "paste", + "raw-cpuid 10.7.0", + "seq-macro", +] + +[[package]] +name = "gemm" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab96b703d31950f1aeddded248bc95543c9efc7ac9c4a21fda8703a83ee35451" +dependencies = [ + "dyn-stack 0.13.0", + "gemm-c32 0.18.2", + "gemm-c64 0.18.2", + "gemm-common 0.18.2", + "gemm-f16 0.18.2", + "gemm-f32 0.18.2", + "gemm-f64 0.18.2", "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 11.5.0", "seq-macro", ] @@ -6681,12 +6711,27 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9c030d0b983d1e34a546b86e08f600c11696fde16199f971cd46c12e67512c0" dependencies = [ - "dyn-stack", - "gemm-common", + "dyn-stack 0.10.0", + "gemm-common 0.17.1", + "num-complex", + "num-traits", + "paste", + "raw-cpuid 10.7.0", + "seq-macro", +] + +[[package]] +name = "gemm-c32" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6db9fd9f40421d00eea9dd0770045a5603b8d684654816637732463f4073847" +dependencies = [ + "dyn-stack 0.13.0", + "gemm-common 0.18.2", "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 11.5.0", "seq-macro", ] @@ -6696,12 +6741,27 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbb5f2e79fefb9693d18e1066a557b4546cd334b226beadc68b11a8f9431852a" dependencies = [ - "dyn-stack", - "gemm-common", + "dyn-stack 0.10.0", + "gemm-common 0.17.1", + "num-complex", + "num-traits", + "paste", + "raw-cpuid 10.7.0", + "seq-macro", +] + +[[package]] +name = "gemm-c64" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfcad8a3d35a43758330b635d02edad980c1e143dc2f21e6fd25f9e4eada8edf" +dependencies = [ + "dyn-stack 0.13.0", + "gemm-common 0.18.2", "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 11.5.0", "seq-macro", ] @@ -6712,17 +6772,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2e7ea062c987abcd8db95db917b4ffb4ecdfd0668471d8dc54734fdff2354e8" dependencies = [ "bytemuck", - "dyn-stack", + "dyn-stack 0.10.0", "half", "num-complex", "num-traits", "once_cell", "paste", - "pulp", - "raw-cpuid", + "pulp 0.18.22", + "raw-cpuid 10.7.0", "rayon", "seq-macro", - "sysctl", + "sysctl 0.5.5", +] + +[[package]] +name = "gemm-common" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a352d4a69cbe938b9e2a9cb7a3a63b7e72f9349174a2752a558a8a563510d0f3" +dependencies = [ + "bytemuck", + "dyn-stack 0.13.0", + "half", + "libm", + "num-complex", + "num-traits", + "once_cell", + "paste", + "pulp 0.21.5", + "raw-cpuid 11.5.0", + "rayon", + "seq-macro", + "sysctl 0.6.0", ] [[package]] @@ -6731,14 +6812,32 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ca4c06b9b11952071d317604acb332e924e817bd891bec8dfb494168c7cedd4" dependencies = [ - "dyn-stack", - "gemm-common", - "gemm-f32", + "dyn-stack 0.10.0", + "gemm-common 0.17.1", + "gemm-f32 0.17.1", + "half", + "num-complex", + "num-traits", + "paste", + "raw-cpuid 10.7.0", + "rayon", + "seq-macro", +] + +[[package]] +name = "gemm-f16" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff95ae3259432f3c3410eaa919033cd03791d81cebd18018393dc147952e109" +dependencies = [ + "dyn-stack 0.13.0", + "gemm-common 0.18.2", + "gemm-f32 0.18.2", "half", "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 11.5.0", "rayon", "seq-macro", ] @@ -6749,12 +6848,27 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9a69f51aaefbd9cf12d18faf273d3e982d9d711f60775645ed5c8047b4ae113" dependencies = [ - "dyn-stack", - "gemm-common", + "dyn-stack 0.10.0", + "gemm-common 0.17.1", "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", + "seq-macro", +] + +[[package]] +name = "gemm-f32" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc8d3d4385393304f407392f754cd2dc4b315d05063f62cf09f47b58de276864" +dependencies = [ + "dyn-stack 0.13.0", + "gemm-common 0.18.2", + "num-complex", + "num-traits", + "paste", + "raw-cpuid 11.5.0", "seq-macro", ] @@ -6764,12 +6878,27 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa397a48544fadf0b81ec8741e5c0fba0043008113f71f2034def1935645d2b0" dependencies = [ - "dyn-stack", - "gemm-common", + "dyn-stack 0.10.0", + "gemm-common 0.17.1", "num-complex", "num-traits", "paste", - "raw-cpuid", + "raw-cpuid 10.7.0", + "seq-macro", +] + +[[package]] +name = "gemm-f64" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35b2a4f76ce4b8b16eadc11ccf2e083252d8237c1b589558a49b0183545015bd" +dependencies = [ + "dyn-stack 0.13.0", + "gemm-common 0.18.2", + "num-complex", + "num-traits", + "paste", + "raw-cpuid 11.5.0", "seq-macro", ] @@ -8682,7 +8811,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.2", + "windows-core 0.57.0", ] [[package]] @@ -10992,7 +11121,6 @@ dependencies = [ [[package]] name = "mistralrs" version = "0.6.0" -source = "git+https://github.com/EricLBuehler/mistral.rs?rev=d256806c6#d256806c6f90bb6f3e636d823da21722694b2f96" dependencies = [ "anyhow", "candle-core", @@ -11014,7 +11142,6 @@ dependencies = [ [[package]] name = "mistralrs-audio" version = "0.6.0" -source = "git+https://github.com/EricLBuehler/mistral.rs?rev=d256806c6#d256806c6f90bb6f3e636d823da21722694b2f96" dependencies = [ "anyhow", "apodize", @@ -11025,7 +11152,6 @@ dependencies = [ [[package]] name = "mistralrs-core" version = "0.6.0" -source = "git+https://github.com/EricLBuehler/mistral.rs?rev=d256806c6#d256806c6f90bb6f3e636d823da21722694b2f96" dependencies = [ "ahash 0.8.12", "akin", @@ -11086,7 +11212,7 @@ dependencies = [ "rust-mcp-schema", "rustc-hash 2.1.1", "rustfft", - "safetensors", + "safetensors 0.6.0", "schemars 0.8.22", "scraper", "serde", @@ -11117,7 +11243,6 @@ dependencies = [ [[package]] name = "mistralrs-mcp" version = "0.6.0" -source = "git+https://github.com/EricLBuehler/mistral.rs?rev=d256806c6#d256806c6f90bb6f3e636d823da21722694b2f96" dependencies = [ "anyhow", "async-trait", @@ -11137,7 +11262,6 @@ dependencies = [ [[package]] name = "mistralrs-quant" version = "0.6.0" -source = "git+https://github.com/EricLBuehler/mistral.rs?rev=d256806c6#d256806c6f90bb6f3e636d823da21722694b2f96" dependencies = [ "byteorder", "candle-core", @@ -11151,7 +11275,7 @@ dependencies = [ "paste", "rayon", "regex", - "safetensors", + "safetensors 0.6.0", "serde", "serde_json", "thiserror 2.0.12", @@ -11163,7 +11287,6 @@ dependencies = [ [[package]] name = "mistralrs-vision" version = "0.6.0" -source = "git+https://github.com/EricLBuehler/mistral.rs?rev=d256806c6#d256806c6f90bb6f3e636d823da21722694b2f96" dependencies = [ "candle-core", "image", @@ -13773,8 +13896,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ "bytes 1.10.1", - "heck 0.5.0", - "itertools 0.12.1", + "heck 0.4.1", + "itertools 0.10.5", "log", "multimap 0.10.1", "once_cell", @@ -13807,7 +13930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", - "itertools 0.12.1", + "itertools 0.10.5", "proc-macro2", "quote", "syn 2.0.104", @@ -13820,7 +13943,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.10.5", "proc-macro2", "quote", "syn 2.0.104", @@ -13960,6 +14083,20 @@ dependencies = [ "reborrow", ] +[[package]] +name = "pulp" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b86df24f0a7ddd5e4b95c94fc9ed8a98f1ca94d3b01bdce2824097e7835907" +dependencies = [ + "bytemuck", + "cfg-if", + "libm", + "num-complex", + "reborrow", + "version_check", +] + [[package]] name = "qoi" version = "0.4.1" @@ -14282,6 +14419,15 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "raw-cpuid" +version = "11.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +dependencies = [ + "bitflags 2.9.1", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -14670,7 +14816,7 @@ dependencies = [ "alacritty_terminal", "anyhow", "async-dispatcher", - "async-tungstenite 0.29.1", + "async-tungstenite 0.30.0", "base64 0.22.1", "client", "collections", @@ -15024,7 +15170,7 @@ name = "rpc" version = "0.1.0" dependencies = [ "anyhow", - "async-tungstenite 0.29.1", + "async-tungstenite 0.30.0", "base64 0.22.1", "chrono", "collections", @@ -15484,6 +15630,16 @@ dependencies = [ "serde_json", ] +[[package]] +name = "safetensors" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617df84b8360fc910a687afe4be1c4660bf7c090d448d2fc27c781e852205f7c" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "salsa20" version = "0.10.2" @@ -16291,7 +16447,7 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" dependencies = [ - "dirs 6.0.0", + "dirs 4.0.0", ] [[package]] @@ -17502,6 +17658,20 @@ dependencies = [ "walkdir", ] +[[package]] +name = "sysctl" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01198a2debb237c62b6826ec7081082d951f46dbb64b0e8c7649a452230d1dfc" +dependencies = [ + "bitflags 2.9.1", + "byteorder", + "enum-as-inner", + "libc", + "thiserror 1.0.69", + "walkdir", +] + [[package]] name = "sysinfo" version = "0.30.13" @@ -19081,6 +19251,8 @@ dependencies = [ "httparse", "log", "rand 0.9.2", + "rustls 0.23.31", + "rustls-pki-types", "sha1", "thiserror 2.0.12", "utf-8", @@ -19121,6 +19293,27 @@ dependencies = [ "winapi", ] +[[package]] +name = "ug" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b70b37e9074642bc5f60bb23247fd072a84314ca9e71cdf8527593406a0dd3" +dependencies = [ + "gemm 0.18.2", + "half", + "libloading", + "memmap2", + "num", + "num-traits", + "num_cpus", + "rayon", + "safetensors 0.4.5", + "serde", + "thiserror 1.0.69", + "tracing", + "yoke 0.7.5", +] + [[package]] name = "ui" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 74c418f47203dba95d7674bc91088637424176ea..09bc8a8f9c56516bed7a7ad2fe29fe2fc888988c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -428,7 +428,7 @@ async-pipe = { git = "https://github.com/zed-industries/async-pipe-rs", rev = "8 async-recursion = "1.0.0" async-tar = "0.5.0" async-trait = "0.1" -async-tungstenite = "0.29.1" +async-tungstenite = "0.30.0" async_zip = { version = "0.0.17", features = ["deflate", "deflate64"] } aws-config = { version = "1.6.1", features = ["behavior-version-latest"] } aws-credential-types = { version = "1.2.2", features = [ diff --git a/crates/language_models/Cargo.toml b/crates/language_models/Cargo.toml index 02dcb68411b696a65ed02ade6c1e9d0df22225ce..97e307b0da9abd01bd17937156381b5003feeefb 100644 --- a/crates/language_models/Cargo.toml +++ b/crates/language_models/Cargo.toml @@ -65,7 +65,7 @@ util.workspace = true workspace-hack.workspace = true zed_llm_client.workspace = true language.workspace = true -mistralrs = { git = "https://github.com/EricLBuehler/mistral.rs", rev = "d256806c6", features = [] } +mistralrs = { path = "../../../mistral.rs/mistralrs", features = [] } [dev-dependencies] editor = { workspace = true, features = ["test-support"] } diff --git a/crates/language_models/src/provider/local.rs b/crates/language_models/src/provider/local.rs index 4c723376c9a39b0e3118ba8ab9375ba7274bb699..db5e4a9a6e6c3e5565f98aa1d8b3516703134934 100644 --- a/crates/language_models/src/provider/local.rs +++ b/crates/language_models/src/provider/local.rs @@ -98,9 +98,9 @@ impl State { } async fn load_mistral_model() -> Result> { + println!("\n\n\n\nLoading mistral model...\n\n\n"); let model = TextModelBuilder::new(DEFAULT_MODEL) .with_isq(IsqType::Q4_0) - .with_logging() .build() .await?;