From 4eb2de9dc522da95030bd1ddb83113a4ead86062 Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Mon, 6 Jul 2026 14:55:47 -0700 Subject: [PATCH 1/5] feat(mesh): bump mesh-llm to current main; goose runtime option for mesh preset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Bump mesh-llm pin ebc3ab4c -> 49cf0342 (113 commits: server-side tool-call emulation for models without native tool support, reasoning format fixes, iroh 1.0 stable, and more) - Adapt to initialize_host_runtime() becoming async upstream - mesh_agent_preset now takes an optional runtimeId: "goose" emits goose's env dialect (GOOSE_PROVIDER=openai, OPENAI_HOST without /v1, GOOSE_MODEL) with no sidecar MCP, so goose — including the bundled goose-acp sidecar — can run inference on the relay mesh. Default and unknown ids preserve the buzz-agent behavior. --- Cargo.lock | 1229 +++++++++++++++---- crates/buzz-relay/Cargo.toml | 4 +- desktop/src-tauri/Cargo.lock | 961 ++++++++++++--- desktop/src-tauri/Cargo.toml | 4 +- desktop/src-tauri/src/mesh_llm/mod.rs | 17 +- desktop/src-tauri/src/mesh_llm/mod_tests.rs | 40 + desktop/src-tauri/src/mesh_llm/preset.rs | 46 +- desktop/src/shared/api/tauriMesh.ts | 3 +- 8 files changed, 1868 insertions(+), 436 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index afb474a2dc..04d27f6f2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -103,7 +103,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -114,7 +114,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -271,7 +271,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -306,7 +306,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -360,6 +360,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "atomic" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" +dependencies = [ + "bytemuck", +] + [[package]] name = "atomic-destructor" version = "0.3.0" @@ -505,7 +514,7 @@ checksum = "7aa268c23bfbbd2c4363b9cd302a4f504fb2a9dfe7e3451d66f35dd392e20aca" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -554,15 +563,30 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", +] + [[package]] name = "bit-set" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec", + "bit-vec 0.8.0", ] +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bit-vec" version = "0.8.0" @@ -588,9 +612,15 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.11.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" dependencies = [ "serde_core", ] @@ -695,7 +725,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 2.0.117", ] [[package]] @@ -1173,6 +1203,12 @@ dependencies = [ "url", ] +[[package]] +name = "by_address" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" + [[package]] name = "bytemuck" version = "1.25.0" @@ -1227,6 +1263,12 @@ dependencies = [ "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfb" version = "0.7.3" @@ -1347,7 +1389,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -1398,7 +1440,7 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -1428,6 +1470,20 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "compact_str" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab" +dependencies = [ + "castaway", + "cfg-if 1.0.4", + "itoa", + "rustversion", + "ryu", + "static_assertions", +] + [[package]] name = "compression-codecs" version = "0.4.38" @@ -1690,7 +1746,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags", + "bitflags 2.13.0", "crossterm_winapi", "mio", "parking_lot", @@ -1700,6 +1756,24 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.13.0", + "crossterm_winapi", + "derive_more", + "document-features", + "mio", + "parking_lot", + "rustix 1.1.4", + "signal-hook", + "signal-hook-mio", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -1764,6 +1838,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "csscolorparser" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" +dependencies = [ + "lab", + "phf", +] + [[package]] name = "csv" version = "1.4.0" @@ -1836,12 +1920,12 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "5.0.0-pre.6" +version = "5.0.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335f1947f241137a14106b6f5acc5918a5ede29c9d71d3f2cb1678d5075d9fc3" +checksum = "4f359e08ca85e7bd759e1fd933ff2bccd81864c60a8fba0e259c7f822b0924bf" dependencies = [ "cfg-if 1.0.4", - "cpufeatures 0.2.17", + "cpufeatures 0.3.0", "curve25519-dalek-derive", "digest 0.11.3", "fiat-crypto 0.3.0", @@ -1860,7 +1944,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -1894,7 +1978,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 2.0.117", ] [[package]] @@ -1907,7 +1991,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 2.0.117", ] [[package]] @@ -1918,7 +2002,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -1929,7 +2013,7 @@ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core 0.23.0", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -1969,7 +2053,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" dependencies = [ "data-encoding", - "syn", + "syn 2.0.117", ] [[package]] @@ -2032,6 +2116,12 @@ dependencies = [ "tokio", ] +[[package]] +name = "deltae" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" + [[package]] name = "der" version = "0.8.0" @@ -2061,7 +2151,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2082,7 +2172,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2092,7 +2182,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn", + "syn 2.0.117", ] [[package]] @@ -2114,7 +2204,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn", + "syn 2.0.117", "unicode-xid", ] @@ -2174,7 +2264,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -2183,7 +2273,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags", + "bitflags 2.13.0", "block2", "libc", "objc2", @@ -2197,7 +2287,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2220,6 +2310,15 @@ dependencies = [ "const-random", ] +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -2266,11 +2365,11 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "3.0.0-pre.7" +version = "3.0.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20449acd54b660981ae5caa2bcb56d1fe7f25f2e37a38ec507400fab034d4bb6" +checksum = "b011170fe4f04665565b4110afef66774fe9ffff278f3eb5b81cc73d26e27d60" dependencies = [ - "curve25519-dalek 5.0.0-pre.6", + "curve25519-dalek 5.0.0-rc.0", "ed25519", "rand_core 0.10.1", "serde", @@ -2324,7 +2423,7 @@ checksum = "3ed8956bd5c1f0415200516e78ff07ec9e16415ade83c056c230d7b7ea0d55b7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2345,7 +2444,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2361,7 +2460,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -2374,6 +2473,15 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "euclid" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06" +dependencies = [ + "num-traits", +] + [[package]] name = "evalexpr" version = "11.3.1" @@ -2412,6 +2520,22 @@ dependencies = [ "smallvec", ] +[[package]] +name = "fancy-regex" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +dependencies = [ + "bit-set 0.5.3", + "regex", +] + +[[package]] +name = "fast-srgb8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" + [[package]] name = "fastrand" version = "2.4.1" @@ -2439,6 +2563,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" +[[package]] +name = "filedescriptor" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" +dependencies = [ + "libc", + "thiserror 1.0.69", + "winapi", +] + [[package]] name = "filetime" version = "0.2.29" @@ -2455,6 +2590,18 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +[[package]] +name = "finl_unicode" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + [[package]] name = "fixedbitset" version = "0.5.7" @@ -2634,7 +2781,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -2686,8 +2833,8 @@ dependencies = [ "libc", "log", "rustversion", - "windows-link 0.2.1", - "windows-result 0.4.1", + "windows-link 0.1.3", + "windows-result 0.3.4", ] [[package]] @@ -2804,7 +2951,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -3002,7 +3149,7 @@ dependencies = [ "http", "idna", "ipnet", - "jni", + "jni 0.22.4", "rand 0.10.1", "rustls", "thiserror 2.0.18", @@ -3022,7 +3169,7 @@ dependencies = [ "data-encoding", "idna", "ipnet", - "jni", + "jni 0.22.4", "once_cell", "prefix-trie", "rand 0.10.1", @@ -3045,7 +3192,7 @@ dependencies = [ "hickory-proto", "ipconfig", "ipnet", - "jni", + "jni 0.22.4", "moka", "ndk-context", "once_cell", @@ -3277,7 +3424,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.61.2", ] [[package]] @@ -3502,6 +3649,15 @@ dependencies = [ "serde_core", ] +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + [[package]] name = "infer" version = "0.19.0" @@ -3521,6 +3677,19 @@ dependencies = [ "generic-array", ] +[[package]] +name = "instability" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971" +dependencies = [ + "darling 0.23.0", + "indoc", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "instant" version = "0.1.13" @@ -3557,9 +3726,9 @@ dependencies = [ [[package]] name = "iroh" -version = "1.0.0-rc.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98e206e3d3f2642f5c08c413755fc0ac19b54ae1a656af88be03454ce3ed2e6" +checksum = "5fca9b4b462c343ff88fc0af4096c186f939b602a0bc08723536ef2c31c93971" dependencies = [ "backon", "blake3", @@ -3594,7 +3763,6 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", - "rustls-webpki", "serde", "smallvec", "strum", @@ -3605,36 +3773,32 @@ dependencies = [ "tracing", "url", "wasm-bindgen-futures", - "webpki-roots 1.0.7", ] [[package]] name = "iroh-base" -version = "1.0.0-rc.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af93d67701c00c504982154569192ad384738c0450ba1196930314b955100552" +checksum = "830a582cd54410dc1aa71d4786a82c3297d7b0165accd8b6dbbb3b240b48140d" dependencies = [ - "curve25519-dalek 5.0.0-pre.6", + "curve25519-dalek 5.0.0-rc.0", "data-encoding", "data-encoding-macro", "derive_more", - "digest 0.11.3", "ed25519-dalek", "getrandom 0.4.2", "n0-error", "rand 0.10.1", "serde", - "sha2 0.11.0", "url", "zeroize", - "zeroize_derive", ] [[package]] name = "iroh-dns" -version = "1.0.0-rc.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de4112c91eb64094d77df9d3112606dcf7ff216421afccd2dc762fda5a7b2879" +checksum = "516e4eedc38e33ab69a6bd325520332dc3d67b25454e2d590ebb84a25240dd9a" dependencies = [ "arc-swap", "cfg_aliases", @@ -3644,8 +3808,8 @@ dependencies = [ "n0-error", "n0-future", "ndk-context", + "portable-atomic", "rand 0.10.1", - "reqwest 0.13.3", "rustls", "simple-dns", "strum", @@ -3656,9 +3820,9 @@ dependencies = [ [[package]] name = "iroh-metrics" -version = "1.0.0-rc.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d102597d0ee523f17fdb672c532395e634dbe945429284c811430d63bacc0d8a" +checksum = "291065721ad7c477b972e581bbc528df031dc8eb5e39fe1ff3300ae5dfb157ef" dependencies = [ "iroh-metrics-derive", "itoa", @@ -3671,21 +3835,21 @@ dependencies = [ [[package]] name = "iroh-metrics-derive" -version = "1.0.0-rc.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c8e0c97f1dc787107f388433c349397c565572fe6406d600ff7bb7b7fe3b30" +checksum = "1ae5f0c4405d1fbc9fb16ff422ca40620e93dc36c30ecaba0c2aee3992b7bd48" dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] name = "iroh-relay" -version = "1.0.0-rc.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54f490405e42dd2ecf16be18a3587d2665401e94a498094f12322eaa6d5ebb2b" +checksum = "8149bb6a57126225a07d6928846d82dcedfd24ea0f863ef7b2eb475e1d726354" dependencies = [ "blake3", "bytes", @@ -3748,6 +3912,22 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if 1.0.4", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + [[package]] name = "jni" version = "0.22.4" @@ -3757,7 +3937,7 @@ dependencies = [ "cfg-if 1.0.4", "combine", "jni-macros", - "jni-sys", + "jni-sys 0.4.1", "log", "simd_cesu8", "thiserror 2.0.18", @@ -3775,7 +3955,16 @@ dependencies = [ "quote", "rustc_version", "simd_cesu8", - "syn", + "syn 2.0.117", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", ] [[package]] @@ -3794,7 +3983,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -3829,6 +4018,17 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "kasuari" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899" +dependencies = [ + "hashbrown 0.16.1", + "portable-atomic", + "thiserror 2.0.18", +] + [[package]] name = "keyring" version = "3.6.3" @@ -3863,6 +4063,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" +[[package]] +name = "lab" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" + [[package]] name = "lazy_static" version = "1.5.0" @@ -3912,6 +4118,12 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + [[package]] name = "libredox" version = "0.1.17" @@ -3931,6 +4143,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "line-clipping" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" +dependencies = [ + "bitflags 2.13.0", +] + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -3949,6 +4170,12 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + [[package]] name = "lock_api" version = "0.4.14" @@ -4013,6 +4240,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3d25b0e0b648a86960ac23b7ad4abb9717601dec6f66c165f5b037f3f03065f" +[[package]] +name = "mac_address" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303" +dependencies = [ + "nix 0.29.0", + "winapi", +] + [[package]] name = "matchers" version = "0.2.0" @@ -4036,7 +4273,7 @@ checksum = "746873a384ad60adc5db74471dfaba74bd278afbdcfd81db93fafcdfc8b5ca0c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -4076,6 +4313,12 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +[[package]] +name = "memmem" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" + [[package]] name = "memoffset" version = "0.9.1" @@ -4087,8 +4330,8 @@ dependencies = [ [[package]] name = "mesh-llm-api-client" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "hex", "mesh-llm-client", @@ -4097,8 +4340,8 @@ dependencies = [ [[package]] name = "mesh-llm-api-server" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-api-client", @@ -4106,10 +4349,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "mesh-llm-build-info" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" + [[package]] name = "mesh-llm-client" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4140,8 +4388,8 @@ dependencies = [ [[package]] name = "mesh-llm-config" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", @@ -4151,12 +4399,13 @@ dependencies = [ "skippy-protocol", "toml 0.9.12+spec-1.1.0", "toml_edit", + "url", ] [[package]] name = "mesh-llm-embedded-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-host-runtime", @@ -4165,18 +4414,20 @@ dependencies = [ [[package]] name = "mesh-llm-events" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "clap", + "crossterm 0.28.1", + "ratatui", "serde_json", ] [[package]] name = "mesh-llm-gpu-bench" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "cc", @@ -4188,8 +4439,8 @@ dependencies = [ [[package]] name = "mesh-llm-guardrails" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "serde", "serde_json", @@ -4197,16 +4448,16 @@ dependencies = [ [[package]] name = "mesh-llm-hardware-profile" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "mesh-llm-native-runtime", ] [[package]] name = "mesh-llm-host-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "argon2", @@ -4217,7 +4468,7 @@ dependencies = [ "chacha20poly1305", "chrono", "clap", - "crossterm", + "crossterm 0.28.1", "crypto_box", "dirs", "ed25519-dalek", @@ -4228,12 +4479,14 @@ dependencies = [ "http", "http-body-util", "httparse", + "if-addrs", "iroh", "json5", "keyring", "libc", "mdns-sd", "mesh-llm-api-server", + "mesh-llm-build-info", "mesh-llm-client", "mesh-llm-config", "mesh-llm-events", @@ -4278,6 +4531,7 @@ dependencies = [ "skippy-runtime", "skippy-server", "skippy-topology", + "socket2", "tabwriter", "tar", "tempfile", @@ -4295,8 +4549,8 @@ dependencies = [ [[package]] name = "mesh-llm-identity" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "argon2", "base64", @@ -4317,8 +4571,8 @@ dependencies = [ [[package]] name = "mesh-llm-native-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "serde", @@ -4328,8 +4582,8 @@ dependencies = [ [[package]] name = "mesh-llm-node" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-types", @@ -4342,8 +4596,8 @@ dependencies = [ [[package]] name = "mesh-llm-plugin" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4359,8 +4613,8 @@ dependencies = [ [[package]] name = "mesh-llm-plugin-manager" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", @@ -4377,8 +4631,8 @@ dependencies = [ [[package]] name = "mesh-llm-protocol" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "hex", @@ -4390,22 +4644,23 @@ dependencies = [ [[package]] name = "mesh-llm-routing" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "iroh", ] [[package]] name = "mesh-llm-runtime-install" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", "flate2", "futures-util", "hex", + "mesh-llm-build-info", "mesh-llm-hardware-profile", "mesh-llm-native-runtime", "reqwest 0.12.28", @@ -4420,8 +4675,8 @@ dependencies = [ [[package]] name = "mesh-llm-sdk" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-api-client", @@ -4435,8 +4690,8 @@ dependencies = [ [[package]] name = "mesh-llm-skills" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", @@ -4446,8 +4701,8 @@ dependencies = [ [[package]] name = "mesh-llm-system" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "chrono", @@ -4455,6 +4710,7 @@ dependencies = [ "dirs", "hex", "libc", + "mesh-llm-build-info", "mesh-llm-gpu-bench", "reqwest 0.12.28", "semver", @@ -4468,8 +4724,8 @@ dependencies = [ [[package]] name = "mesh-llm-types" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "hex", "serde", @@ -4479,13 +4735,13 @@ dependencies = [ [[package]] name = "mesh-llm-ui" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" [[package]] name = "mesh-mixture-of-agents" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "async-trait", "mesh-llm-guardrails", @@ -4571,6 +4827,12 @@ dependencies = [ "rxml", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -4595,8 +4857,8 @@ dependencies = [ [[package]] name = "model-artifact" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4606,8 +4868,8 @@ dependencies = [ [[package]] name = "model-hf" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4624,8 +4886,8 @@ dependencies = [ [[package]] name = "model-package" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "bytes", @@ -4644,16 +4906,16 @@ dependencies = [ [[package]] name = "model-ref" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "serde", ] [[package]] name = "model-resolver" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "model-artifact", @@ -4717,9 +4979,9 @@ checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "n0-error" -version = "1.0.0-rc.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223e946a84aa91644507a6b7865cfebbb9a231ace499041c747ab0fd30408212" +checksum = "c37e81176a83a77d2514528b91bdafc70ef88aab428f0e1b91aebb8d99888895" dependencies = [ "n0-error-macros", "spez", @@ -4727,13 +4989,13 @@ dependencies = [ [[package]] name = "n0-error-macros" -version = "1.0.0-rc.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "565305a21e6b3bf26640ad98f05a0fda12d3ab4315394566b52a7bddb8b34828" +checksum = "e2acd8b070213b0299282f884b4beba4e7b52d624fdcd504a3ad3665390c11e1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -4759,9 +5021,9 @@ dependencies = [ [[package]] name = "n0-watcher" -version = "1.0.0-rc.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928d8039a66cce5efcfd35e88b32d3defc8eba630b3ac451522997f563956a52" +checksum = "bbc618745ad0b7414b149d0517ad8b5573b2fb4d4e2717add3d2446ce1fdd826" dependencies = [ "derive_more", "n0-error", @@ -4799,19 +5061,22 @@ checksum = "f0efe882e02d206d8d279c20eb40e03baf7cb5136a1476dc084a324fbc3ec42d" [[package]] name = "netdev" -version = "0.43.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bacaf873ee4eab5646f99b381b271ec75e716902a67cf962c0f328c5eb5bfb" +checksum = "569dfbdd2efd771b24ec9bb57f956e04d4fbfc72f62b2f11961723f9b3f4b020" dependencies = [ "block2", "dispatch2", "dlopen2", "ipnet", + "jni 0.21.1", "libc", "mac-addr", + "ndk-context", "netlink-packet-core", - "netlink-packet-route 0.29.0", + "netlink-packet-route", "netlink-sys", + "objc2", "objc2-core-foundation", "objc2-core-wlan", "objc2-foundation", @@ -4832,23 +5097,11 @@ dependencies = [ [[package]] name = "netlink-packet-route" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9854ea6ad14e3f4698a7f03b65bce0833dd2d81d594a0e4a984170537146b6" -dependencies = [ - "bitflags", - "libc", - "log", - "netlink-packet-core", -] - -[[package]] -name = "netlink-packet-route" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8919612f6028ab4eacbbfe1234a9a43e3722c6e0915e7ff519066991905092" +checksum = "e2288fcb784eb3defd5fb16f4c4160d5f477de192eac730f43e1d11c24d9a007" dependencies = [ - "bitflags", + "bitflags 2.13.0", "libc", "log", "netlink-packet-core", @@ -4883,14 +5136,15 @@ dependencies = [ [[package]] name = "netwatch" -version = "0.17.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5bfbba77b994ce69f1d40fc66fd8abbd23df62ce4aea61fbb34d638106a2549" +checksum = "4d9cbe01741347ef750d743d6690603f5eed8341e679fb51c8e629337aa11976" dependencies = [ "atomic-waker", "bytes", "cfg_aliases", "derive_more", + "ipnet", "js-sys", "libc", "n0-error", @@ -4898,7 +5152,7 @@ dependencies = [ "n0-watcher", "netdev", "netlink-packet-core", - "netlink-packet-route 0.30.0", + "netlink-packet-route", "netlink-proto", "netlink-sys", "noq-udp", @@ -4923,7 +5177,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags", + "bitflags 2.13.0", "cfg-if 1.0.4", "cfg_aliases", "libc", @@ -4936,17 +5190,27 @@ version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ - "bitflags", + "bitflags 2.13.0", "cfg-if 1.0.4", "cfg_aliases", "libc", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "noq" -version = "1.0.0-rc.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22739e0831e40f5ab7d6ac5317ed80bfe5fb3f44be57d23fa2eea8bff83fb303" +checksum = "4bf95190af1bd4a00a10e8255ca0c8ddd9e9a9f5e79151d7a7eb6d56aff5dc89" dependencies = [ "bytes", "cfg_aliases", @@ -4966,9 +5230,9 @@ dependencies = [ [[package]] name = "noq-proto" -version = "1.0.0-rc.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cee32450cf726b223ac4154003c93cb52fbde159ab1240990e88945bf3ae35e" +checksum = "aa6c890013591e709a3e45dd53501351b7e27e7ff3c7e9fc3dce43e300e7e9d3" dependencies = [ "aes-gcm", "bytes", @@ -4993,9 +5257,9 @@ dependencies = [ [[package]] name = "noq-udp" -version = "1.0.0-rc.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78633d1fe1bde91d12bcabb230ac9edb890857414c6d44f3212e0d309525b5ff" +checksum = "3137a52df66c20090a889828d1c655f21f52294cba64e5c4fbb04fc83eee7c8e" dependencies = [ "cfg_aliases", "libc", @@ -5096,7 +5360,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -5139,10 +5403,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] -name = "num-integer" -version = "0.1.46" +name = "num-derive" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ "num-traits", ] @@ -5208,7 +5483,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5235,7 +5510,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags", + "bitflags 2.13.0", "block2", "dispatch2", "libc", @@ -5248,7 +5523,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e34919aba0d701380d911702455038a8a3587467fe0141d6a71501e7ffe48" dependencies = [ - "bitflags", + "bitflags 2.13.0", "objc2", "objc2-core-foundation", "objc2-foundation", @@ -5268,7 +5543,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags", + "bitflags 2.13.0", "block2", "libc", "objc2", @@ -5291,7 +5566,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" dependencies = [ - "bitflags", + "bitflags 2.13.0", "objc2", "objc2-core-foundation", ] @@ -5312,7 +5587,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" dependencies = [ - "bitflags", + "bitflags 2.13.0", "dispatch2", "libc", "objc2", @@ -5350,8 +5625,8 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openai-frontend" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "async-trait", "axum", @@ -5371,7 +5646,7 @@ version = "0.10.80" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967" dependencies = [ - "bitflags", + "bitflags 2.13.0", "cfg-if 1.0.4", "foreign-types", "libc", @@ -5387,7 +5662,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5561,6 +5836,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-multimap" version = "0.7.3" @@ -5590,6 +5874,30 @@ dependencies = [ "memchr", ] +[[package]] +name = "palette" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" +dependencies = [ + "approx", + "fast-srgb8", + "libm", + "palette_derive", +] + +[[package]] +name = "palette_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" +dependencies = [ + "by_address", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "papaya" version = "0.2.4" @@ -5683,13 +5991,55 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "pest" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47627dd7305c6a2d6c8c6bcd24c5a4c17dbbf425f4f9c5313e724b38fc9782e9" +dependencies = [ + "memchr", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b4254325ecad416ab689e27ba51da03ba01a9632bc6e108f5fe7c3c4ad29d58" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c4c0e91ead7a8f7acecbca6f003fc2e8282b1dbe2dd9c9d2f16aba42995e0a7" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "pest_meta" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9744bc48116fee06334924bb5f2bad41eed5e89bd26e29b0b799f9a3f82c210" +dependencies = [ + "pest", +] + [[package]] name = "petgraph" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ - "fixedbitset", + "fixedbitset 0.5.7", "hashbrown 0.15.5", "indexmap", ] @@ -5714,6 +6064,16 @@ dependencies = [ "phf_shared", ] +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator", + "phf_shared", +] + [[package]] name = "phf_generator" version = "0.11.3" @@ -5734,7 +6094,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5763,7 +6123,7 @@ checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5818,7 +6178,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags", + "bitflags 2.13.0", "crc32fast", "fdeflate", "flate2", @@ -5873,9 +6233,9 @@ dependencies = [ [[package]] name = "portmapper" -version = "0.17.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aec2a8809e3f7dba624776bb223da9fed49c413c60b3bef21aadcb67a5e35944" +checksum = "eb3713e4977408279158444a18c1a01ac9bf2e7eaf1fbfd1a19ac9cd18d90721" dependencies = [ "base64", "bytes", @@ -5921,7 +6281,7 @@ checksum = "e0232bd009a197ceec9cc881ba46f727fcd8060a2d8d6a9dde7a69030a6fe2bb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -5966,7 +6326,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn", + "syn 2.0.117", ] [[package]] @@ -6007,9 +6367,9 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ - "bit-set", - "bit-vec", - "bitflags", + "bit-set 0.8.0", + "bit-vec 0.8.0", + "bitflags 2.13.0", "num-traits", "rand 0.9.4", "rand_chacha 0.9.0", @@ -6045,7 +6405,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn", + "syn 2.0.117", "tempfile", ] @@ -6059,7 +6419,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6376,13 +6736,114 @@ dependencies = [ "rustversion", ] +[[package]] +name = "ratatui" +version = "0.30.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3274ba0a2c5e1bcad2a2005d20f4dc59dad26b2eb0940fb094500dba4099d57d" +dependencies = [ + "instability", + "ratatui-core", + "ratatui-crossterm", + "ratatui-macros", + "ratatui-termina", + "ratatui-termwiz", + "ratatui-widgets", + "serde", +] + +[[package]] +name = "ratatui-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbb175c433c8e28a809d1f5773a2ae96e68c0ce40db865cbab1020bf33ae479c" +dependencies = [ + "bitflags 2.13.0", + "compact_str 0.9.1", + "critical-section", + "hashbrown 0.17.1", + "itertools", + "kasuari", + "lru 0.18.0", + "palette", + "serde", + "strum", + "thiserror 2.0.18", + "unicode-segmentation", + "unicode-truncate", + "unicode-width", +] + +[[package]] +name = "ratatui-crossterm" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567584a3b0e6a8203c23de40b4861497266725eb5363dbfd18a1edd603cca9f0" +dependencies = [ + "cfg-if 1.0.4", + "crossterm 0.29.0", + "instability", + "ratatui-core", +] + +[[package]] +name = "ratatui-macros" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7dc68daa7498a43e4d68e0eb078427e10c38fbcfbb1e42d955f1fa2140d814" +dependencies = [ + "ratatui-core", + "ratatui-widgets", +] + +[[package]] +name = "ratatui-termina" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bf912d9e66f057a759d92e386a280ea886b352ab757d6ac4d653c7ed2c43c2" +dependencies = [ + "instability", + "ratatui-core", + "termina", +] + +[[package]] +name = "ratatui-termwiz" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf03e0380b7744054d6cb74224fe3adf062a029754933f575ca1e3b4c2ce977" +dependencies = [ + "ratatui-core", + "termwiz", +] + +[[package]] +name = "ratatui-widgets" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66e3d19bcc9130ca376277d93b60767ff121ace3be06f5f95f81dd68956407d1" +dependencies = [ + "bitflags 2.13.0", + "hashbrown 0.17.1", + "indoc", + "instability", + "itertools", + "line-clipping", + "ratatui-core", + "serde", + "strum", + "time", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "raw-cpuid" version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags", + "bitflags 2.13.0", ] [[package]] @@ -6431,7 +6892,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags", + "bitflags 2.13.0", ] [[package]] @@ -6462,7 +6923,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -6670,7 +7131,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn", + "syn 2.0.117", ] [[package]] @@ -6749,7 +7210,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags", + "bitflags 2.13.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -6762,11 +7223,11 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags", + "bitflags 2.13.0", "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -6815,7 +7276,7 @@ checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" dependencies = [ "core-foundation 0.10.1", "core-foundation-sys", - "jni", + "jni 0.22.4", "log", "once_cell", "rustls", @@ -6825,7 +7286,7 @@ dependencies = [ "security-framework 3.7.0", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -6880,7 +7341,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "826e80413b9a35e9d33217b3dcac04cf95f6559d15944b93887a08be5496c4a4" dependencies = [ - "compact_str", + "compact_str 0.7.1", ] [[package]] @@ -6945,7 +7406,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn", + "syn 2.0.117", ] [[package]] @@ -7037,7 +7498,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags", + "bitflags 2.13.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -7050,7 +7511,7 @@ version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags", + "bitflags 2.13.0", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -7074,7 +7535,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -7126,7 +7587,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7137,7 +7598,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7172,7 +7633,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7379,7 +7840,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a75cbde1bf934313596a004973e462f9a82caa814dcf1a5f507bdf51597eeb4" dependencies = [ - "bitflags", + "bitflags 2.13.0", ] [[package]] @@ -7396,8 +7857,8 @@ checksum = "0c6f73aeb92d671e0cc4dca167e59b2deb6387c375391bc99ee743f326994a2b" [[package]] name = "skippy-cache" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "blake3", @@ -7406,29 +7867,29 @@ dependencies = [ [[package]] name = "skippy-coordinator" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "thiserror 2.0.18", ] [[package]] name = "skippy-ffi" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "libloading", ] [[package]] name = "skippy-metrics" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" [[package]] name = "skippy-protocol" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "prost", "prost-build", @@ -7438,8 +7899,8 @@ dependencies = [ [[package]] name = "skippy-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "libc", @@ -7452,8 +7913,8 @@ dependencies = [ [[package]] name = "skippy-server" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -7480,8 +7941,8 @@ dependencies = [ [[package]] name = "skippy-topology" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "serde", "serde_json", @@ -7520,7 +7981,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -7537,7 +7998,7 @@ checksum = "c87e960f4dca2788eeb86bbdde8dd246be8948790b7618d656e68f9b720a86e8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7635,7 +8096,7 @@ dependencies = [ "quote", "sqlx-core", "sqlx-macros-core", - "syn", + "syn 2.0.117", ] [[package]] @@ -7658,7 +8119,7 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn", + "syn 2.0.117", "thiserror 2.0.18", "tokio", "url", @@ -7670,7 +8131,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90b8020fe17c5f2c245bfa2505d7ef59c5604839527c740266ad2214acebea27" dependencies = [ - "bitflags", + "bitflags 2.13.0", "byteorder", "bytes", "chrono", @@ -7700,7 +8161,7 @@ checksum = "87a2bdd6e83f6b3ea525ca9fee568030508b58355a43d0b2c1674d5f79dcd65e" dependencies = [ "atoi", "base64", - "bitflags", + "bitflags 2.13.0", "byteorder", "chrono", "crc", @@ -7825,7 +8286,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7840,6 +8301,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syn" version = "2.0.117" @@ -7868,7 +8340,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7905,7 +8377,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags", + "bitflags 2.13.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -7956,7 +8428,83 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix 1.1.4", - "windows-sys 0.59.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "termina" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9048a889effe34a5cddee0af7f53285198b16dca3be510858d38dfdb3e62a04e" +dependencies = [ + "bitflags 2.13.0", + "parking_lot", + "rustix 1.1.4", + "signal-hook", + "windows-sys 0.61.2", +] + +[[package]] +name = "terminfo" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" +dependencies = [ + "fnv", + "nom", + "phf", + "phf_codegen", +] + +[[package]] +name = "termios" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" +dependencies = [ + "libc", +] + +[[package]] +name = "termwiz" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" +dependencies = [ + "anyhow", + "base64", + "bitflags 2.13.0", + "fancy-regex", + "filedescriptor", + "finl_unicode", + "fixedbitset 0.4.2", + "hex", + "lazy_static", + "libc", + "log", + "memmem", + "nix 0.29.0", + "num-derive", + "num-traits", + "ordered-float", + "pest", + "pest_derive", + "phf", + "sha2 0.10.9", + "signal-hook", + "siphasher", + "terminfo", + "termios", + "thiserror 1.0.69", + "ucd-trie", + "unicode-segmentation", + "vtparse", + "wezterm-bidi", + "wezterm-blob-leases", + "wezterm-color-types", + "wezterm-dynamic", + "wezterm-input-types", + "winapi", ] [[package]] @@ -7985,7 +8533,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -7996,7 +8544,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -8101,7 +8649,7 @@ checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -8382,7 +8930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" dependencies = [ "async-compression", - "bitflags", + "bitflags 2.13.0", "bytes", "futures-core", "futures-util", @@ -8449,7 +8997,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -8595,7 +9143,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e" dependencies = [ "memoffset", "tempfile", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -8643,6 +9191,17 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +[[package]] +name = "unicode-truncate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" +dependencies = [ + "itertools", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "unicode-width" version = "0.2.2" @@ -8720,6 +9279,7 @@ version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ + "atomic", "getrandom 0.4.2", "js-sys", "serde_core", @@ -8781,6 +9341,15 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vtparse" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0" +dependencies = [ + "utf8parse", +] + [[package]] name = "wait-timeout" version = "0.2.1" @@ -8893,7 +9462,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn", + "syn 2.0.117", "wasm-bindgen-shared", ] @@ -8960,7 +9529,7 @@ version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags", + "bitflags 2.13.0", "hashbrown 0.15.5", "indexmap", "semver", @@ -8993,7 +9562,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fc95580916af1e68ff6a7be07446fc5db73ebf71cf092de939bbf5f7e189f72" dependencies = [ "core-foundation 0.10.1", - "jni", + "jni 0.22.4", "log", "ndk-context", "objc2", @@ -9035,6 +9604,78 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "wezterm-bidi" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec" +dependencies = [ + "log", + "wezterm-dynamic", +] + +[[package]] +name = "wezterm-blob-leases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7" +dependencies = [ + "getrandom 0.3.4", + "mac_address", + "sha2 0.10.9", + "thiserror 1.0.69", + "uuid", +] + +[[package]] +name = "wezterm-color-types" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296" +dependencies = [ + "csscolorparser", + "deltae", + "lazy_static", + "wezterm-dynamic", +] + +[[package]] +name = "wezterm-dynamic" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac" +dependencies = [ + "log", + "ordered-float", + "strsim", + "thiserror 1.0.69", + "wezterm-dynamic-derive", +] + +[[package]] +name = "wezterm-dynamic-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "wezterm-input-types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e" +dependencies = [ + "bitflags 1.3.2", + "euclid", + "lazy_static", + "serde", + "wezterm-dynamic", +] + [[package]] name = "whoami" version = "2.1.2" @@ -9076,7 +9717,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -9184,7 +9825,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -9195,7 +9836,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -9277,6 +9918,15 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -9313,6 +9963,21 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -9364,6 +10029,12 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -9376,6 +10047,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -9388,6 +10065,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -9412,6 +10095,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -9424,6 +10113,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -9436,6 +10131,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -9448,6 +10149,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -9514,7 +10221,7 @@ dependencies = [ "heck", "indexmap", "prettyplease", - "syn", + "syn 2.0.117", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -9530,7 +10237,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn", + "syn 2.0.117", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -9542,7 +10249,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags", + "bitflags 2.13.0", "indexmap", "log", "serde", @@ -9583,8 +10290,8 @@ dependencies = [ "log", "serde", "thiserror 2.0.18", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] @@ -9819,7 +10526,7 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", "synstructure", ] @@ -9864,7 +10571,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 2.0.117", "zvariant_utils", ] @@ -9896,7 +10603,7 @@ checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -9916,28 +10623,28 @@ checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -9970,7 +10677,7 @@ checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] [[package]] @@ -10045,7 +10752,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 2.0.117", "zvariant_utils", ] @@ -10057,5 +10764,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.117", ] diff --git a/crates/buzz-relay/Cargo.toml b/crates/buzz-relay/Cargo.toml index 1134b2c703..48fbc994cf 100644 --- a/crates/buzz-relay/Cargo.toml +++ b/crates/buzz-relay/Cargo.toml @@ -77,8 +77,8 @@ metrics-exporter-prometheus = { workspace = true } dev = ["buzz-auth/dev"] [dev-dependencies] -mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"] } -mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"] } +mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "49cf03427ad86becf8dc0596b738c055d166e7e2", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"] } +mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "49cf03427ad86becf8dc0596b738c055d166e7e2", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"] } buzz-core = { workspace = true, features = ["test-utils"] } buzz-auth = { workspace = true, features = ["dev"] } reqwest = { workspace = true } diff --git a/desktop/src-tauri/Cargo.lock b/desktop/src-tauri/Cargo.lock index 4a404f7b7a..5b6906f041 100644 --- a/desktop/src-tauri/Cargo.lock +++ b/desktop/src-tauri/Cargo.lock @@ -418,6 +418,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "atomic" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" +dependencies = [ + "bytemuck", +] + [[package]] name = "atomic-destructor" version = "0.3.0" @@ -647,15 +656,30 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", +] + [[package]] name = "bit-set" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec", + "bit-vec 0.8.0", ] +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bit-vec" version = "0.8.0" @@ -974,6 +998,12 @@ dependencies = [ "uuid", ] +[[package]] +name = "by_address" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" + [[package]] name = "bytemuck" version = "1.25.0" @@ -1091,6 +1121,15 @@ dependencies = [ "toml 0.9.12+spec-1.1.0", ] +[[package]] +name = "castaway" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +dependencies = [ + "rustversion", +] + [[package]] name = "cbc" version = "0.1.2" @@ -1316,6 +1355,20 @@ dependencies = [ "memchr", ] +[[package]] +name = "compact_str" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab" +dependencies = [ + "castaway", + "cfg-if 1.0.4", + "itoa", + "rustversion", + "ryu", + "static_assertions", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1513,7 +1566,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows 0.62.2", + "windows 0.61.3", ] [[package]] @@ -1595,6 +1648,24 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.13.0", + "crossterm_winapi", + "derive_more", + "document-features", + "mio", + "parking_lot", + "rustix 1.1.4", + "signal-hook", + "signal-hook-mio", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -1659,6 +1730,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "csscolorparser" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" +dependencies = [ + "lab", + "phf 0.11.3", +] + [[package]] name = "cssparser" version = "0.36.0" @@ -1668,7 +1749,7 @@ dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf", + "phf 0.13.1", "smallvec", ] @@ -1775,12 +1856,12 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "5.0.0-pre.6" +version = "5.0.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335f1947f241137a14106b6f5acc5918a5ede29c9d71d3f2cb1678d5075d9fc3" +checksum = "4f359e08ca85e7bd759e1fd933ff2bccd81864c60a8fba0e259c7f822b0924bf" dependencies = [ "cfg-if 1.0.4", - "cpufeatures 0.2.17", + "cpufeatures 0.3.0", "curve25519-dalek-derive", "digest 0.11.3", "fiat-crypto 0.3.0", @@ -1900,7 +1981,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" dependencies = [ "data-encoding", - "syn 2.0.118", + "syn 1.0.109", ] [[package]] @@ -1939,6 +2020,12 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" +[[package]] +name = "deltae" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" + [[package]] name = "der" version = "0.8.0" @@ -2130,13 +2217,22 @@ dependencies = [ "const-random", ] +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", +] + [[package]] name = "dom_query" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" dependencies = [ - "bit-set", + "bit-set 0.8.0", "cssparser", "foldhash 0.2.0", "html5ever", @@ -2224,11 +2320,11 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "3.0.0-pre.7" +version = "3.0.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20449acd54b660981ae5caa2bcb56d1fe7f25f2e37a38ec507400fab034d4bb6" +checksum = "b011170fe4f04665565b4110afef66774fe9ffff278f3eb5b81cc73d26e27d60" dependencies = [ - "curve25519-dalek 5.0.0-pre.6", + "curve25519-dalek 5.0.0-rc.0", "ed25519", "rand_core 0.10.1", "serde", @@ -2350,6 +2446,15 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "euclid" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06" +dependencies = [ + "num-traits", +] + [[package]] name = "event-listener" version = "5.4.1" @@ -2389,6 +2494,22 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" +[[package]] +name = "fancy-regex" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +dependencies = [ + "bit-set 0.5.3", + "regex", +] + +[[package]] +name = "fast-srgb8" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" + [[package]] name = "fastrand" version = "2.4.1" @@ -2426,6 +2547,17 @@ dependencies = [ "rustc_version", ] +[[package]] +name = "filedescriptor" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" +dependencies = [ + "libc", + "thiserror 1.0.69", + "winapi", +] + [[package]] name = "filetime" version = "0.2.29" @@ -2442,6 +2574,18 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +[[package]] +name = "finl_unicode" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + [[package]] name = "fixedbitset" version = "0.5.7" @@ -2778,8 +2922,8 @@ dependencies = [ "libc", "log", "rustversion", - "windows-link 0.2.1", - "windows-result 0.4.1", + "windows-link 0.1.3", + "windows-result 0.3.4", ] [[package]] @@ -3107,6 +3251,17 @@ dependencies = [ "foldhash 0.1.5", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + [[package]] name = "hashbrown" version = "0.17.1" @@ -3476,7 +3631,7 @@ dependencies = [ "tokio", "tower-service", "tracing", - "windows-registry 0.6.1", + "windows-registry 0.5.3", ] [[package]] @@ -3491,7 +3646,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.61.2", ] [[package]] @@ -3687,6 +3842,15 @@ dependencies = [ "serde_core", ] +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + [[package]] name = "infer" version = "0.19.0" @@ -3715,6 +3879,19 @@ dependencies = [ "hybrid-array", ] +[[package]] +name = "instability" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971" +dependencies = [ + "darling 0.23.0", + "indoc", + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "instant" version = "0.1.13" @@ -3751,9 +3928,9 @@ dependencies = [ [[package]] name = "iroh" -version = "1.0.0-rc.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef865dc2d11a19fe670ff217b68ffc3b511bddf473dc3a3e120090b9f691803" +checksum = "5fca9b4b462c343ff88fc0af4096c186f939b602a0bc08723536ef2c31c93971" dependencies = [ "backon", "blake3", @@ -3788,7 +3965,6 @@ dependencies = [ "rustc-hash", "rustls", "rustls-pki-types", - "rustls-webpki", "serde", "smallvec", "strum", @@ -3799,36 +3975,32 @@ dependencies = [ "tracing", "url", "wasm-bindgen-futures", - "webpki-roots 1.0.7", ] [[package]] name = "iroh-base" -version = "1.0.0-rc.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af93d67701c00c504982154569192ad384738c0450ba1196930314b955100552" +checksum = "830a582cd54410dc1aa71d4786a82c3297d7b0165accd8b6dbbb3b240b48140d" dependencies = [ - "curve25519-dalek 5.0.0-pre.6", + "curve25519-dalek 5.0.0-rc.0", "data-encoding", "data-encoding-macro", "derive_more", - "digest 0.11.3", "ed25519-dalek", "getrandom 0.4.2", "n0-error", "rand 0.10.1", "serde", - "sha2 0.11.0", "url", "zeroize", - "zeroize_derive", ] [[package]] name = "iroh-dns" -version = "1.0.0-rc.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de4112c91eb64094d77df9d3112606dcf7ff216421afccd2dc762fda5a7b2879" +checksum = "516e4eedc38e33ab69a6bd325520332dc3d67b25454e2d590ebb84a25240dd9a" dependencies = [ "arc-swap", "cfg_aliases", @@ -3838,8 +4010,8 @@ dependencies = [ "n0-error", "n0-future", "ndk-context", + "portable-atomic", "rand 0.10.1", - "reqwest 0.13.4", "rustls", "simple-dns", "strum", @@ -3850,9 +4022,9 @@ dependencies = [ [[package]] name = "iroh-metrics" -version = "1.0.0-rc.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d102597d0ee523f17fdb672c532395e634dbe945429284c811430d63bacc0d8a" +checksum = "291065721ad7c477b972e581bbc528df031dc8eb5e39fe1ff3300ae5dfb157ef" dependencies = [ "iroh-metrics-derive", "itoa", @@ -3877,9 +4049,9 @@ dependencies = [ [[package]] name = "iroh-relay" -version = "1.0.0-rc.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70030b9e71c1183bd4f88fbdbebfa1af2a5be549dd6f20a1e8ac3cd0202ee9d" +checksum = "8149bb6a57126225a07d6928846d82dcedfd24ea0f863ef7b2eb475e1d726354" dependencies = [ "blake3", "bytes", @@ -4111,6 +4283,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "kasuari" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899" +dependencies = [ + "hashbrown 0.16.1", + "portable-atomic", + "thiserror 2.0.18", +] + [[package]] name = "keyboard-types" version = "0.7.0" @@ -4156,6 +4339,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" +[[package]] +name = "lab" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" + [[package]] name = "lazy_static" version = "1.5.0" @@ -4260,6 +4449,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "line-clipping" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" +dependencies = [ + "bitflags 2.13.0", +] + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -4278,6 +4476,12 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" + [[package]] name = "lock_api" version = "0.4.14" @@ -4365,6 +4569,16 @@ dependencies = [ "uuid", ] +[[package]] +name = "mac_address" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303" +dependencies = [ + "nix 0.29.0", + "winapi", +] + [[package]] name = "mach2" version = "0.5.0" @@ -4421,6 +4635,12 @@ version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" +[[package]] +name = "memmem" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" + [[package]] name = "memoffset" version = "0.9.1" @@ -4432,8 +4652,8 @@ dependencies = [ [[package]] name = "mesh-llm-api-client" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "hex", "mesh-llm-client", @@ -4442,8 +4662,8 @@ dependencies = [ [[package]] name = "mesh-llm-api-server" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-api-client", @@ -4451,10 +4671,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "mesh-llm-build-info" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" + [[package]] name = "mesh-llm-client" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4485,8 +4710,8 @@ dependencies = [ [[package]] name = "mesh-llm-config" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", @@ -4496,12 +4721,13 @@ dependencies = [ "skippy-protocol", "toml 0.9.12+spec-1.1.0", "toml_edit 0.25.12+spec-1.1.0", + "url", ] [[package]] name = "mesh-llm-embedded-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-host-runtime", @@ -4510,18 +4736,20 @@ dependencies = [ [[package]] name = "mesh-llm-events" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "clap", + "crossterm 0.28.1", + "ratatui", "serde_json", ] [[package]] name = "mesh-llm-gpu-bench" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "cc", @@ -4533,8 +4761,8 @@ dependencies = [ [[package]] name = "mesh-llm-guardrails" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "serde", "serde_json", @@ -4542,16 +4770,16 @@ dependencies = [ [[package]] name = "mesh-llm-hardware-profile" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "mesh-llm-native-runtime", ] [[package]] name = "mesh-llm-host-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "argon2", @@ -4562,7 +4790,7 @@ dependencies = [ "chacha20poly1305", "chrono", "clap", - "crossterm", + "crossterm 0.28.1", "crypto_box", "dirs", "ed25519-dalek", @@ -4573,12 +4801,14 @@ dependencies = [ "http", "http-body-util", "httparse", + "if-addrs", "iroh", "json5", "keyring", "libc", "mdns-sd", "mesh-llm-api-server", + "mesh-llm-build-info", "mesh-llm-client", "mesh-llm-config", "mesh-llm-events", @@ -4623,6 +4853,7 @@ dependencies = [ "skippy-runtime", "skippy-server", "skippy-topology", + "socket2", "tabwriter", "tar", "tempfile", @@ -4640,8 +4871,8 @@ dependencies = [ [[package]] name = "mesh-llm-identity" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "argon2", "base64 0.22.1", @@ -4662,8 +4893,8 @@ dependencies = [ [[package]] name = "mesh-llm-native-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "serde", @@ -4673,8 +4904,8 @@ dependencies = [ [[package]] name = "mesh-llm-node" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-types", @@ -4687,8 +4918,8 @@ dependencies = [ [[package]] name = "mesh-llm-plugin" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4704,8 +4935,8 @@ dependencies = [ [[package]] name = "mesh-llm-plugin-manager" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", @@ -4722,8 +4953,8 @@ dependencies = [ [[package]] name = "mesh-llm-protocol" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "hex", @@ -4735,22 +4966,23 @@ dependencies = [ [[package]] name = "mesh-llm-routing" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "iroh", ] [[package]] name = "mesh-llm-runtime-install" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", "flate2", "futures-util", "hex", + "mesh-llm-build-info", "mesh-llm-hardware-profile", "mesh-llm-native-runtime", "reqwest 0.12.28", @@ -4765,8 +4997,8 @@ dependencies = [ [[package]] name = "mesh-llm-sdk" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "mesh-llm-api-client", @@ -4780,8 +5012,8 @@ dependencies = [ [[package]] name = "mesh-llm-skills" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "dirs", @@ -4791,8 +5023,8 @@ dependencies = [ [[package]] name = "mesh-llm-system" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "chrono", @@ -4800,6 +5032,7 @@ dependencies = [ "dirs", "hex", "libc", + "mesh-llm-build-info", "mesh-llm-gpu-bench", "reqwest 0.12.28", "semver", @@ -4813,8 +5046,8 @@ dependencies = [ [[package]] name = "mesh-llm-types" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "hex", "serde", @@ -4824,13 +5057,13 @@ dependencies = [ [[package]] name = "mesh-llm-ui" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" [[package]] name = "mesh-mixture-of-agents" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "async-trait", "mesh-llm-guardrails", @@ -4857,6 +5090,12 @@ dependencies = [ "unicase", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "minisign-verify" version = "0.2.5" @@ -4887,8 +5126,8 @@ dependencies = [ [[package]] name = "model-artifact" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4898,8 +5137,8 @@ dependencies = [ [[package]] name = "model-hf" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -4916,8 +5155,8 @@ dependencies = [ [[package]] name = "model-package" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "bytes", @@ -4936,16 +5175,16 @@ dependencies = [ [[package]] name = "model-ref" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "serde", ] [[package]] name = "model-resolver" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "model-artifact", @@ -5006,9 +5245,9 @@ checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "n0-error" -version = "1.0.0-rc.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223e946a84aa91644507a6b7865cfebbb9a231ace499041c747ab0fd30408212" +checksum = "c37e81176a83a77d2514528b91bdafc70ef88aab428f0e1b91aebb8d99888895" dependencies = [ "n0-error-macros", "spez", @@ -5048,9 +5287,9 @@ dependencies = [ [[package]] name = "n0-watcher" -version = "1.0.0-rc.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928d8039a66cce5efcfd35e88b32d3defc8eba630b3ac451522997f563956a52" +checksum = "bbc618745ad0b7414b149d0517ad8b5573b2fb4d4e2717add3d2446ce1fdd826" dependencies = [ "derive_more", "n0-error", @@ -5112,19 +5351,22 @@ checksum = "f0efe882e02d206d8d279c20eb40e03baf7cb5136a1476dc084a324fbc3ec42d" [[package]] name = "netdev" -version = "0.43.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bacaf873ee4eab5646f99b381b271ec75e716902a67cf962c0f328c5eb5bfb" +checksum = "569dfbdd2efd771b24ec9bb57f956e04d4fbfc72f62b2f11961723f9b3f4b020" dependencies = [ "block2", "dispatch2", "dlopen2", "ipnet", + "jni 0.21.1", "libc", "mac-addr", + "ndk-context", "netlink-packet-core", - "netlink-packet-route 0.29.0", + "netlink-packet-route", "netlink-sys", + "objc2", "objc2-core-foundation", "objc2-core-wlan", "objc2-foundation", @@ -5158,21 +5400,9 @@ dependencies = [ [[package]] name = "netlink-packet-route" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9854ea6ad14e3f4698a7f03b65bce0833dd2d81d594a0e4a984170537146b6" -dependencies = [ - "bitflags 2.13.0", - "libc", - "log", - "netlink-packet-core", -] - -[[package]] -name = "netlink-packet-route" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8919612f6028ab4eacbbfe1234a9a43e3722c6e0915e7ff519066991905092" +checksum = "e2288fcb784eb3defd5fb16f4c4160d5f477de192eac730f43e1d11c24d9a007" dependencies = [ "bitflags 2.13.0", "libc", @@ -5209,14 +5439,15 @@ dependencies = [ [[package]] name = "netwatch" -version = "0.18.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2071e0c2b5b229622c459096b84f1ad51afa150cdeeefdad491ef3704e581d91" +checksum = "4d9cbe01741347ef750d743d6690603f5eed8341e679fb51c8e629337aa11976" dependencies = [ "atomic-waker", "bytes", "cfg_aliases", "derive_more", + "ipnet", "js-sys", "libc", "n0-error", @@ -5224,7 +5455,7 @@ dependencies = [ "n0-watcher", "netdev", "netlink-packet-core", - "netlink-packet-route 0.30.0", + "netlink-packet-route", "netlink-proto", "netlink-sys", "noq-udp", @@ -5286,11 +5517,21 @@ dependencies = [ "libc", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "noq" -version = "1.0.0-rc.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198b99fc085a5db1f7d259edb5ede8311e59f28cdd2687920b4313613d21a73f" +checksum = "4bf95190af1bd4a00a10e8255ca0c8ddd9e9a9f5e79151d7a7eb6d56aff5dc89" dependencies = [ "bytes", "cfg_aliases", @@ -5310,9 +5551,9 @@ dependencies = [ [[package]] name = "noq-proto" -version = "1.0.0-rc.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab0ac774795ce1e42a7e61266e71f3be8110210630441169ac8dda403dd23f1" +checksum = "aa6c890013591e709a3e45dd53501351b7e27e7ff3c7e9fc3dce43e300e7e9d3" dependencies = [ "aes-gcm", "bytes", @@ -5337,9 +5578,9 @@ dependencies = [ [[package]] name = "noq-udp" -version = "1.0.0-rc.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c1520eacd33fd6b009e2e70116b05508ade51db5e0d315ff8bf6b702148c2b" +checksum = "3137a52df66c20090a889828d1c655f21f52294cba64e5c4fbb04fc83eee7c8e" dependencies = [ "cfg_aliases", "libc", @@ -5564,7 +5805,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.118", @@ -5938,8 +6179,8 @@ dependencies = [ [[package]] name = "openai-frontend" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "async-trait", "axum", @@ -6096,6 +6337,15 @@ dependencies = [ "audiopus_sys", ] +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-multimap" version = "0.7.3" @@ -6139,6 +6389,30 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "palette" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" +dependencies = [ + "approx", + "fast-srgb8", + "libm", + "palette_derive", +] + +[[package]] +name = "palette_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" +dependencies = [ + "by_address", + "proc-macro2", + "quote", + "syn 2.0.118", +] + [[package]] name = "pango" version = "0.18.3" @@ -6267,13 +6541,55 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "pest" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47627dd7305c6a2d6c8c6bcd24c5a4c17dbbf425f4f9c5313e724b38fc9782e9" +dependencies = [ + "memchr", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b4254325ecad416ab689e27ba51da03ba01a9632bc6e108f5fe7c3c4ad29d58" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c4c0e91ead7a8f7acecbca6f003fc2e8282b1dbe2dd9c9d2f16aba42995e0a7" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.118", +] + +[[package]] +name = "pest_meta" +version = "2.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9744bc48116fee06334924bb5f2bad41eed5e89bd26e29b0b799f9a3f82c210" +dependencies = [ + "pest", +] + [[package]] name = "petgraph" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ - "fixedbitset", + "fixedbitset 0.5.7", "hashbrown 0.15.5", "indexmap 2.14.0", ] @@ -6288,25 +6604,55 @@ dependencies = [ "rustc_version", ] +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros 0.11.3", + "phf_shared 0.11.3", +] + [[package]] name = "phf" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ - "phf_macros", - "phf_shared", + "phf_macros 0.13.1", + "phf_shared 0.13.1", "serde", ] +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", +] + [[package]] name = "phf_codegen" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" dependencies = [ - "phf_generator", - "phf_shared", + "phf_generator 0.13.1", + "phf_shared 0.13.1", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared 0.11.3", + "rand 0.8.6", ] [[package]] @@ -6316,7 +6662,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ "fastrand", - "phf_shared", + "phf_shared 0.13.1", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator 0.11.3", + "phf_shared 0.11.3", + "proc-macro2", + "quote", + "syn 2.0.118", ] [[package]] @@ -6325,13 +6684,22 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ - "phf_generator", - "phf_shared", + "phf_generator 0.13.1", + "phf_shared 0.13.1", "proc-macro2", "quote", "syn 2.0.118", ] +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + [[package]] name = "phf_shared" version = "0.13.1" @@ -6481,9 +6849,9 @@ dependencies = [ [[package]] name = "portmapper" -version = "0.18.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64959cbabf952c8ffcbaea13745308508f1f825922f4068353f3de08d42cf214" +checksum = "eb3713e4977408279158444a18c1a01ac9bf2e7eaf1fbfd1a19ac9cd18d90721" dependencies = [ "base64 0.22.1", "bytes", @@ -6705,7 +7073,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042" dependencies = [ - "heck 0.5.0", + "heck 0.4.1", "itertools", "log", "multimap", @@ -7003,6 +7371,107 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "ratatui" +version = "0.30.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3274ba0a2c5e1bcad2a2005d20f4dc59dad26b2eb0940fb094500dba4099d57d" +dependencies = [ + "instability", + "ratatui-core", + "ratatui-crossterm", + "ratatui-macros", + "ratatui-termina", + "ratatui-termwiz", + "ratatui-widgets", + "serde", +] + +[[package]] +name = "ratatui-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbb175c433c8e28a809d1f5773a2ae96e68c0ce40db865cbab1020bf33ae479c" +dependencies = [ + "bitflags 2.13.0", + "compact_str", + "critical-section", + "hashbrown 0.17.1", + "itertools", + "kasuari", + "lru 0.18.0", + "palette", + "serde", + "strum", + "thiserror 2.0.18", + "unicode-segmentation", + "unicode-truncate", + "unicode-width", +] + +[[package]] +name = "ratatui-crossterm" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567584a3b0e6a8203c23de40b4861497266725eb5363dbfd18a1edd603cca9f0" +dependencies = [ + "cfg-if 1.0.4", + "crossterm 0.29.0", + "instability", + "ratatui-core", +] + +[[package]] +name = "ratatui-macros" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7dc68daa7498a43e4d68e0eb078427e10c38fbcfbb1e42d955f1fa2140d814" +dependencies = [ + "ratatui-core", + "ratatui-widgets", +] + +[[package]] +name = "ratatui-termina" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bf912d9e66f057a759d92e386a280ea886b352ab757d6ac4d653c7ed2c43c2" +dependencies = [ + "instability", + "ratatui-core", + "termina", +] + +[[package]] +name = "ratatui-termwiz" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf03e0380b7744054d6cb74224fe3adf062a029754933f575ca1e3b4c2ce977" +dependencies = [ + "ratatui-core", + "termwiz", +] + +[[package]] +name = "ratatui-widgets" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66e3d19bcc9130ca376277d93b60767ff121ace3be06f5f95f81dd68956407d1" +dependencies = [ + "bitflags 2.13.0", + "hashbrown 0.17.1", + "indoc", + "instability", + "itertools", + "line-clipping", + "ratatui-core", + "serde", + "strum", + "time", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -7738,8 +8207,8 @@ dependencies = [ "derive_more", "log", "new_debug_unreachable", - "phf", - "phf_codegen", + "phf 0.13.1", + "phf_codegen 0.13.1", "precomputed-hash", "rustc-hash", "servo_arc", @@ -8160,8 +8629,8 @@ checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" [[package]] name = "skippy-cache" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "blake3", @@ -8170,29 +8639,29 @@ dependencies = [ [[package]] name = "skippy-coordinator" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "thiserror 2.0.18", ] [[package]] name = "skippy-ffi" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "libloading 0.8.9", ] [[package]] name = "skippy-metrics" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" [[package]] name = "skippy-protocol" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "prost", "prost-build", @@ -8202,8 +8671,8 @@ dependencies = [ [[package]] name = "skippy-runtime" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "libc", @@ -8216,8 +8685,8 @@ dependencies = [ [[package]] name = "skippy-server" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "anyhow", "async-trait", @@ -8244,8 +8713,8 @@ dependencies = [ [[package]] name = "skippy-topology" -version = "0.68.0" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82#ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82" +version = "0.72.1" +source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" dependencies = [ "serde", "serde_json", @@ -8423,7 +8892,7 @@ checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" dependencies = [ "new_debug_unreachable", "parking_lot", - "phf_shared", + "phf_shared 0.13.1", "precomputed-hash", ] @@ -8433,8 +8902,8 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" dependencies = [ - "phf_generator", - "phf_shared", + "phf_generator 0.13.1", + "phf_shared 0.13.1", "proc-macro2", "quote", ] @@ -8652,6 +9121,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", + "quote", "unicode-ident", ] @@ -9228,7 +9698,7 @@ dependencies = [ "json-patch", "log", "memchr", - "phf", + "phf 0.13.1", "plist", "proc-macro2", "quote", @@ -9294,6 +9764,82 @@ dependencies = [ "utf-8", ] +[[package]] +name = "termina" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9048a889effe34a5cddee0af7f53285198b16dca3be510858d38dfdb3e62a04e" +dependencies = [ + "bitflags 2.13.0", + "parking_lot", + "rustix 1.1.4", + "signal-hook", + "windows-sys 0.61.2", +] + +[[package]] +name = "terminfo" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" +dependencies = [ + "fnv", + "nom", + "phf 0.11.3", + "phf_codegen 0.11.3", +] + +[[package]] +name = "termios" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" +dependencies = [ + "libc", +] + +[[package]] +name = "termwiz" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" +dependencies = [ + "anyhow", + "base64 0.22.1", + "bitflags 2.13.0", + "fancy-regex", + "filedescriptor", + "finl_unicode", + "fixedbitset 0.4.2", + "hex", + "lazy_static", + "libc", + "log", + "memmem", + "nix 0.29.0", + "num-derive", + "num-traits", + "ordered-float", + "pest", + "pest_derive", + "phf 0.11.3", + "sha2 0.10.9", + "signal-hook", + "siphasher", + "terminfo", + "termios", + "thiserror 1.0.69", + "ucd-trie", + "unicode-segmentation", + "vtparse", + "wezterm-bidi", + "wezterm-blob-leases", + "wezterm-color-types", + "wezterm-dynamic", + "wezterm-input-types", + "winapi", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -10091,6 +10637,17 @@ version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" +[[package]] +name = "unicode-truncate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" +dependencies = [ + "itertools", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "unicode-width" version = "0.2.2" @@ -10196,6 +10753,7 @@ version = "1.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7" dependencies = [ + "atomic", "getrandom 0.4.2", "js-sys", "serde_core", @@ -10303,6 +10861,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "vtparse" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0" +dependencies = [ + "utf8parse", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -10505,8 +11072,8 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" dependencies = [ - "phf", - "phf_codegen", + "phf 0.13.1", + "phf_codegen 0.13.1", "string_cache", "string_cache_codegen", ] @@ -10634,6 +11201,78 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "wezterm-bidi" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec" +dependencies = [ + "log", + "wezterm-dynamic", +] + +[[package]] +name = "wezterm-blob-leases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7" +dependencies = [ + "getrandom 0.3.4", + "mac_address", + "sha2 0.10.9", + "thiserror 1.0.69", + "uuid", +] + +[[package]] +name = "wezterm-color-types" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296" +dependencies = [ + "csscolorparser", + "deltae", + "lazy_static", + "wezterm-dynamic", +] + +[[package]] +name = "wezterm-dynamic" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac" +dependencies = [ + "log", + "ordered-float", + "strsim", + "thiserror 1.0.69", + "wezterm-dynamic-derive", +] + +[[package]] +name = "wezterm-dynamic-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "wezterm-input-types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e" +dependencies = [ + "bitflags 1.3.2", + "euclid", + "lazy_static", + "serde", + "wezterm-dynamic", +] + [[package]] name = "whoami" version = "2.1.2" @@ -11308,8 +11947,8 @@ dependencies = [ "log", "serde", "thiserror 2.0.18", - "windows 0.62.2", - "windows-core 0.62.2", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] diff --git a/desktop/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml index 1d7f93deff..f22ac280c3 100644 --- a/desktop/src-tauri/Cargo.toml +++ b/desktop/src-tauri/Cargo.toml @@ -84,8 +84,8 @@ buzz_core_pkg = { package = "buzz-core", path = "../../crates/buzz-core" } buzz_persona_pkg = { package = "buzz-persona", path = "../../crates/buzz-persona" } buzz_sdk_pkg = { package = "buzz-sdk", path = "../../crates/buzz-sdk" } buzz_agent_pkg = { package = "buzz-agent", path = "../../crates/buzz-agent" } -mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"], optional = true } -mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "ebc3ab4c4b5f4a45d5bc942c66c18583800c3f82", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"], optional = true } +mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "49cf03427ad86becf8dc0596b738c055d166e7e2", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"], optional = true } +mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "49cf03427ad86becf8dc0596b738c055d166e7e2", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"], optional = true } base64 = "0.22" sha2 = "0.11" tar = "0.4" diff --git a/desktop/src-tauri/src/mesh_llm/mod.rs b/desktop/src-tauri/src/mesh_llm/mod.rs index 3b53b9f501..6e293df57f 100644 --- a/desktop/src-tauri/src/mesh_llm/mod.rs +++ b/desktop/src-tauri/src/mesh_llm/mod.rs @@ -203,7 +203,7 @@ pub struct DesktopMeshRuntime { model_name: Option, } -fn initialize_mesh_native_runtime() -> anyhow::Result<()> { +async fn initialize_mesh_native_runtime() -> anyhow::Result<()> { let cache = mesh_llm_sdk::native_runtime::native_runtime_cache(None)?; let installed = cache.installed()?; let current = mesh_llm_sdk::native_runtime::CURRENT_MESH_VERSION; @@ -215,17 +215,20 @@ fn initialize_mesh_native_runtime() -> anyhow::Result<()> { "mesh native runtime for MeshLLM {current} is not installed; run `just mesh=1 staging` or `just mesh-e2e-hardware` to prepare it" ); } - mesh_llm_host_runtime::initialize_host_runtime().map_err(|error| { - anyhow::anyhow!( - "mesh native runtime failed to load; run `just mesh=1 staging` or `just mesh-e2e-hardware` to repair it: {error}" - ) - }) + // initialize_host_runtime became async upstream (mesh-llm #900s series). + mesh_llm_host_runtime::initialize_host_runtime() + .await + .map_err(|error| { + anyhow::anyhow!( + "mesh native runtime failed to load; run `just mesh=1 staging` or `just mesh-e2e-hardware` to repair it: {error}" + ) + }) } impl DesktopMeshRuntime { pub async fn start(request: StartMeshNodeRequest) -> anyhow::Result { validate_no_leak_request(&request)?; - initialize_mesh_native_runtime()?; + initialize_mesh_native_runtime().await?; let model_id = request .model_id .clone() diff --git a/desktop/src-tauri/src/mesh_llm/mod_tests.rs b/desktop/src-tauri/src/mesh_llm/mod_tests.rs index befcdb1aa5..51e1753261 100644 --- a/desktop/src-tauri/src/mesh_llm/mod_tests.rs +++ b/desktop/src-tauri/src/mesh_llm/mod_tests.rs @@ -41,6 +41,7 @@ fn agent_preset_runs_on_buzz_agent_not_goose() { // buzz-agent, which reads those vars. let preset = super::agent_preset(super::MeshAgentPresetRequest { model_id: "Qwen3-8B-Q4_K_M".to_string(), + runtime_id: None, }) .expect("preset for a valid model id"); @@ -64,3 +65,42 @@ fn agent_preset_runs_on_buzz_agent_not_goose() { Some("Qwen3-8B-Q4_K_M") ); } + +#[test] +fn agent_preset_goose_runtime_gets_goose_env_dialect() { + // Opting into the goose runtime must emit goose's env dialect + // (GOOSE_PROVIDER + OPENAI_HOST without /v1 — goose appends its own + // base path), no sidecar MCP (goose has builtin developer tools), and + // the goose command from the catalog (matches user-installed goose or + // the bundled goose-acp sidecar via discovery). + let preset = super::agent_preset(super::MeshAgentPresetRequest { + model_id: "Qwen3-8B-Q4_K_M".to_string(), + runtime_id: Some("goose".to_string()), + }) + .expect("preset for a valid model id"); + + assert_eq!(preset.agent_command, "goose"); + assert_eq!(preset.mcp_command, ""); + assert_eq!( + preset.env_vars.get("GOOSE_PROVIDER").map(String::as_str), + Some("openai") + ); + assert_eq!( + preset.env_vars.get("GOOSE_MODEL").map(String::as_str), + Some("Qwen3-8B-Q4_K_M") + ); + let host = preset.env_vars.get("OPENAI_HOST").expect("OPENAI_HOST set"); + assert!( + !host.ends_with("/v1"), + "goose appends its own base path; host must not end in /v1: {host}" + ); + assert!(preset.env_vars.contains_key("OPENAI_API_KEY")); + + // Unknown runtime ids fall back to the buzz-agent dialect. + let fallback = super::agent_preset(super::MeshAgentPresetRequest { + model_id: "Qwen3-8B-Q4_K_M".to_string(), + runtime_id: Some("something-else".to_string()), + }) + .expect("preset for a valid model id"); + assert_eq!(fallback.agent_command, "buzz-agent"); +} diff --git a/desktop/src-tauri/src/mesh_llm/preset.rs b/desktop/src-tauri/src/mesh_llm/preset.rs index 12e12c326f..6616815764 100644 --- a/desktop/src-tauri/src/mesh_llm/preset.rs +++ b/desktop/src-tauri/src/mesh_llm/preset.rs @@ -13,6 +13,12 @@ use super::{ #[serde(rename_all = "camelCase")] pub struct MeshAgentPresetRequest { pub model_id: String, + /// Runtime the agent should run on. `None` (or unknown ids) preserves the + /// historical behavior: buzz-agent. `Some("goose")` emits goose-flavored + /// env (`GOOSE_PROVIDER=openai` + `OPENAI_HOST`) so goose — including the + /// bundled `goose-acp` sidecar — can use the mesh for inference too. + #[serde(default)] + pub runtime_id: Option, } #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] @@ -33,8 +39,44 @@ pub fn agent_preset(request: MeshAgentPresetRequest) -> Result { export async function meshAgentPreset( modelId: string, + runtimeId?: string, ): Promise { return await invokeTauri("mesh_agent_preset", { - request: { modelId }, + request: { modelId, runtimeId: runtimeId ?? null }, }); } From c391a9af18ea0b32515271ebfdfa0ae54e1e294c Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Mon, 6 Jul 2026 23:08:28 -0700 Subject: [PATCH 2/5] feat(mesh): download mesh-llm node on demand instead of compiling it in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The mesh-llm feature previously statically linked the whole mesh node (~52 MB binary weight, +17.5 MB compressed) which kept it off by default behind 'just mesh=1' builds. Replace the in-process embedding with the pattern Buzz already uses for every other capability binary: - mesh_llm/node_install.rs: first use downloads the official pinned mesh-llm release (~30 MB), verifies the published sha256, extracts to a versioned cache dir, and emits progress app events for the UI. - mesh_llm/node_process.rs: spawns 'mesh-llm serve/client --headless' as a supervised child process (own process group, SIGTERM-then-kill teardown) and drives it over its local management API — the same HTTP surface the SDK's embedded handle used internally. - DesktopMeshRuntime keeps its exact API; dial_endpoint_addr respawns with the extra --join token (the standalone node has no join-at- runtime endpoint yet; upstream candidate: POST /api/join). - mesh_node_install_status command so the UI can say 'first start will download the mesh runtime' up front. - mesh-llm-sdk/host-runtime git deps removed entirely; the mesh-llm cargo feature is now a few KB of client code (57.9 MB binary with the feature on vs 57.3 without — was 109.7 MB). Admission/coordination is unchanged and mesh-native: nostr discovery, invite-token admission, iroh transport — private by default (no --publish), same flags as the embedded config used. Ignored e2e test covers the full first-use flow (download, checksum, cache hit, spawn, status + attestation verification, /v1/models, stop): cargo test --features mesh-llm -- --ignored mesh_node_e2e --- desktop/src-tauri/Cargo.lock | 5037 +---------------- desktop/src-tauri/Cargo.toml | 12 +- desktop/src-tauri/src/commands/mesh_llm.rs | 15 +- desktop/src-tauri/src/lib.rs | 1 + desktop/src-tauri/src/mesh_llm/mod.rs | 136 +- .../src-tauri/src/mesh_llm/node_install.rs | 336 ++ .../src-tauri/src/mesh_llm/node_process.rs | 171 + desktop/src-tauri/src/mesh_llm_stubs.rs | 5 + 8 files changed, 881 insertions(+), 4832 deletions(-) create mode 100644 desktop/src-tauri/src/mesh_llm/node_install.rs create mode 100644 desktop/src-tauri/src/mesh_llm/node_process.rs diff --git a/desktop/src-tauri/Cargo.lock b/desktop/src-tauri/Cargo.lock index 5b6906f041..8ac31698b9 100644 --- a/desktop/src-tauri/Cargo.lock +++ b/desktop/src-tauri/Cargo.lock @@ -18,17 +18,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if 1.0.4", - "cipher 0.4.4", - "cpufeatures 0.2.17", -] - [[package]] name = "aes" version = "0.9.1" @@ -40,20 +29,6 @@ dependencies = [ "cpufeatures 0.3.0", ] -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead", - "aes 0.8.4", - "cipher 0.4.4", - "ctr", - "ghash", - "subtle", -] - [[package]] name = "aho-corasick" version = "1.1.4" @@ -78,12 +53,6 @@ dependencies = [ "alloc-no-stdlib", ] -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - [[package]] name = "alsa" version = "0.11.0" @@ -92,7 +61,7 @@ checksum = "812947049edcd670a82cd5c73c3661d2e58468577ba8489de58e1a73c04cbd5d" dependencies = [ "alsa-sys", "bitflags 2.13.0", - "cfg-if 1.0.4", + "cfg-if", "libc", ] @@ -115,71 +84,12 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" - -[[package]] -name = "anstyle-parse" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" -dependencies = [ - "anstyle", - "once_cell_polyfill", - "windows-sys 0.61.2", -] - [[package]] name = "anyhow" version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" -[[package]] -name = "approx" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" -dependencies = [ - "num-traits", -] - [[package]] name = "arbitrary" version = "1.4.2" @@ -198,24 +108,6 @@ dependencies = [ "rustversion", ] -[[package]] -name = "argon2" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072" -dependencies = [ - "base64ct", - "blake2", - "cpufeatures 0.2.17", - "password-hash", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - [[package]] name = "arrayvec" version = "0.7.6" @@ -267,13 +159,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" dependencies = [ "autocfg", - "cfg-if 1.0.4", + "cfg-if", "concurrent-queue", "futures-io", "futures-lite", "parking", "polling", - "rustix 1.1.4", + "rustix", "slab", "windows-sys 0.61.2", ] @@ -301,10 +193,10 @@ dependencies = [ "async-signal", "async-task", "blocking", - "cfg-if 1.0.4", + "cfg-if", "event-listener", "futures-lite", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -327,10 +219,10 @@ dependencies = [ "async-io", "async-lock", "atomic-waker", - "cfg-if 1.0.4", + "cfg-if", "futures-core", "futures-io", - "rustix 1.1.4", + "rustix", "signal-hook-registry", "slab", "windows-sys 0.61.2", @@ -353,48 +245,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "async-utility" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34a3b57207a7a1007832416c3e4862378c8451b4e8e093e436f48c2d3d2c151" -dependencies = [ - "futures-util", - "gloo-timers", - "tokio", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-wsocket" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c92385c7c8b3eb2de1b78aeca225212e4c9a69a78b802832759b108681a5069" -dependencies = [ - "async-utility", - "futures", - "futures-util", - "js-sys", - "tokio", - "tokio-rustls", - "tokio-socks", - "tokio-tungstenite 0.26.2", - "url", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version", -] - [[package]] name = "atk" version = "0.18.2" @@ -418,21 +268,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "atomic" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "atomic-destructor" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef49f5882e4b6afaac09ad239a4f8c70a24b8f2b0897edb1f706008efd109cf4" - [[package]] name = "atomic-waker" version = "1.1.2" @@ -449,18 +284,6 @@ dependencies = [ "rand 0.9.4", ] -[[package]] -name = "attohttpc" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9" -dependencies = [ - "base64 0.22.1", - "http", - "log", - "url", -] - [[package]] name = "audio-core" version = "0.2.1" @@ -604,23 +427,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "backon" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef" -dependencies = [ - "fastrand", - "gloo-timers", - "tokio", -] - -[[package]] -name = "base16ct" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd307490d624467aa6f74b0eabb77633d1f758a7b25f12bceb0b22e08d9726f6" - [[package]] name = "base64" version = "0.21.7" @@ -656,30 +462,15 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec 0.6.3", -] - [[package]] name = "bit-set" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec 0.8.0", + "bit-vec", ] -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bit-vec" version = "0.8.0" @@ -718,29 +509,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake3" -version = "1.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa83c34e62843d924f905e0f5c866eb1dd6545fc4d719e803d9ba6030371fce" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if 1.0.4", - "constant_time_eq", - "cpufeatures 0.3.0", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -791,31 +559,6 @@ dependencies = [ "piper", ] -[[package]] -name = "bon" -version = "3.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a602c73c7b0148ec6d12af6fd5cc7a46e2eacc8878271a999abac56eed12f561" -dependencies = [ - "bon-macros", - "rustversion", -] - -[[package]] -name = "bon-macros" -version = "3.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dee98b0db6a962de883bf5d20362dee4d7ca0d12fe39a7c6c73c844e1cd7c1f" -dependencies = [ - "darling 0.23.0", - "ident_case", - "prettyplease", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.118", -] - [[package]] name = "brotli" version = "8.0.4" @@ -846,17 +589,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" -dependencies = [ - "memchr", - "regex-automata", - "serde", -] - [[package]] name = "bumpalo" version = "3.20.3" @@ -874,7 +606,7 @@ dependencies = [ "getrandom 0.4.2", "hex", "nix 0.31.3", - "reqwest 0.13.4", + "reqwest", "rmcp", "serde", "serde_json", @@ -926,13 +658,12 @@ dependencies = [ "ctrlc", "dirs", "earshot", + "flate2", "futures-util", "hex", "infer", "keyring", "libc", - "mesh-llm-host-runtime", - "mesh-llm-sdk", "neteq", "nostr", "notify-rust", @@ -940,7 +671,7 @@ dependencies = [ "opus", "png 0.18.1", "regex", - "reqwest 0.13.4", + "reqwest", "rodio", "rubato", "rusqlite", @@ -998,12 +729,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "by_address" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" - [[package]] name = "bytemuck" version = "1.25.0" @@ -1121,15 +846,6 @@ dependencies = [ "toml 0.9.12+spec-1.1.0", ] -[[package]] -name = "castaway" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" -dependencies = [ - "rustversion", -] - [[package]] name = "cbc" version = "0.1.2" @@ -1178,12 +894,6 @@ dependencies = [ "target-lexicon", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.4" @@ -1202,7 +912,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cipher 0.4.4", "cpufeatures 0.2.17", ] @@ -1213,7 +923,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures 0.3.0", "rand_core 0.10.1", ] @@ -1266,46 +976,6 @@ dependencies = [ "inout 0.2.2", ] -[[package]] -name = "clap" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "clap_lex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" - [[package]] name = "cmake" version = "0.1.58" @@ -1321,30 +991,6 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c9ea0ac24bc397ab3c98583a3c9ba74fa56b09a4449bbe172b9b1ddb016027a" -[[package]] -name = "cobs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" -dependencies = [ - "thiserror 2.0.18", -] - -[[package]] -name = "colorchoice" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" - -[[package]] -name = "colored" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "combine" version = "4.6.7" @@ -1355,20 +1001,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "compact_str" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab" -dependencies = [ - "castaway", - "cfg-if 1.0.4", - "itoa", - "rustversion", - "ryu", - "static_assertions", -] - [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1378,18 +1010,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "const-hex" -version = "1.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e2a781ebdf4467d1428dc4593067825fb646f6871475098d8577421af73558" -dependencies = [ - "cfg-if 1.0.4", - "cpufeatures 0.2.17", - "proptest", - "serde_core", -] - [[package]] name = "const-oid" version = "0.10.2" @@ -1416,36 +1036,12 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "const-str" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18f12cc9948ed9604230cdddc7c86e270f9401ccbe3c2e98a4378c5e7632212f" - -[[package]] -name = "const_panic" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e262cdaac42494e3ae34c43969f9cdeb7da178bdb4b66fa6a1ea2edb4c8ae652" -dependencies = [ - "typewit", -] - [[package]] name = "constant_time_eq" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" -[[package]] -name = "convert_case" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "cookie" version = "0.18.1" @@ -1456,16 +1052,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "cordyceps" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a" -dependencies = [ - "loom", - "tracing", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -1530,15 +1116,6 @@ dependencies = [ "objc2-core-foundation", ] -[[package]] -name = "countio" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9702aee5d1d744c01d82f6915644f950f898e014903385464c773b96fefdecb" -dependencies = [ - "futures-io", -] - [[package]] name = "cpal" version = "0.17.3" @@ -1599,15 +1176,9 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", ] -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -1617,64 +1188,12 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crossterm" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" -dependencies = [ - "bitflags 2.13.0", - "crossterm_winapi", - "mio", - "parking_lot", - "rustix 0.38.44", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" -dependencies = [ - "bitflags 2.13.0", - "crossterm_winapi", - "derive_more", - "document-features", - "mio", - "parking_lot", - "rustix 1.1.4", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] - [[package]] name = "crunchy" version = "0.2.4" @@ -1701,45 +1220,6 @@ dependencies = [ "hybrid-array", ] -[[package]] -name = "crypto_box" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009" -dependencies = [ - "aead", - "crypto_secretbox", - "curve25519-dalek 4.1.3", - "salsa20", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto_secretbox" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" -dependencies = [ - "aead", - "cipher 0.4.4", - "generic-array", - "poly1305", - "salsa20", - "subtle", - "zeroize", -] - -[[package]] -name = "csscolorparser" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" -dependencies = [ - "lab", - "phf 0.11.3", -] - [[package]] name = "cssparser" version = "0.36.0" @@ -1749,7 +1229,7 @@ dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf 0.13.1", + "phf", "smallvec", ] @@ -1763,37 +1243,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "csv" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" -dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde_core", -] - -[[package]] -name = "csv-core" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" -dependencies = [ - "memchr", -] - -[[package]] -name = "ctor" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "424e0138278faeb2b401f174ad17e715c829512d74f3d1e81eb43365c2e0590e" -dependencies = [ - "ctor-proc-macro", - "dtor 0.1.1", -] - [[package]] name = "ctor" version = "0.8.0" @@ -1801,7 +1250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98" dependencies = [ "ctor-proc-macro", - "dtor 0.3.0", + "dtor", ] [[package]] @@ -1810,15 +1259,6 @@ version = "0.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1" -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher 0.4.4", -] - [[package]] name = "ctrlc" version = "3.5.2" @@ -1839,82 +1279,14 @@ dependencies = [ "cmov", ] -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if 1.0.4", - "cpufeatures 0.2.17", - "curve25519-dalek-derive", - "fiat-crypto 0.2.9", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "5.0.0-rc.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f359e08ca85e7bd759e1fd933ff2bccd81864c60a8fba0e259c7f822b0924bf" -dependencies = [ - "cfg-if 1.0.4", - "cpufeatures 0.3.0", - "curve25519-dalek-derive", - "digest 0.11.3", - "fiat-crypto 0.3.0", - "rand_core 0.10.1", - "rustc_version", - "serde", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", -] - [[package]] name = "darling" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ - "darling_core 0.23.0", - "darling_macro 0.23.0", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.118", + "darling_core", + "darling_macro", ] [[package]] @@ -1930,24 +1302,13 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn 2.0.118", -] - [[package]] name = "darling_macro" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ - "darling_core 0.23.0", + "darling_core", "quote", "syn 2.0.118", ] @@ -1964,26 +1325,6 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" -[[package]] -name = "data-encoding-macro" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3259c913752a86488b501ed8680446a5ed2d5aeac6e596cb23ba3800768ea32c" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" -dependencies = [ - "data-encoding", - "syn 1.0.109", -] - [[package]] name = "dbus" version = "0.9.11" @@ -2001,16 +1342,8 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "708b509edf7889e53d7efb0ffadd994cc6c2345ccb62f55cfd6b0682165e4fa6" dependencies = [ - "aes 0.8.4", - "block-padding", - "cbc", "dbus", - "fastrand", - "hkdf", - "num", - "once_cell", "openssl", - "sha2 0.10.9", "zeroize", ] @@ -2020,23 +1353,6 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" -[[package]] -name = "deltae" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" - -[[package]] -name = "der" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fd89660b2dc699704064e59e9dba0147b903e85319429e131620d022be411b" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.5.8" @@ -2057,37 +1373,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn 2.0.118", -] - [[package]] name = "derive_more" version = "2.1.1" @@ -2103,20 +1388,12 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ - "convert_case", "proc-macro2", "quote", "rustc_version", "syn 2.0.118", - "unicode-xid", ] -[[package]] -name = "diatomic-waker" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c" - [[package]] name = "digest" version = "0.10.7" @@ -2217,22 +1494,13 @@ dependencies = [ "const-random", ] -[[package]] -name = "document-features" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" -dependencies = [ - "litrs", -] - [[package]] name = "dom_query" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" dependencies = [ - "bit-set 0.8.0", + "bit-set", "cssparser", "foldhash 0.2.0", "html5ever", @@ -2265,15 +1533,6 @@ dependencies = [ "dtoa", ] -[[package]] -name = "dtor" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404d02eeb088a82cfd873006cb713fe411306c7d182c344905e101fb1167d301" -dependencies = [ - "dtor-proc-macro", -] - [[package]] name = "dtor" version = "0.3.0" @@ -2307,39 +1566,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7984231f8b4c72eb3b88c70040dc1e4ff6803fa9169e93c0ac465942d74fa36a" -[[package]] -name = "ed25519" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29fcf32e6c73d1079f83ab4d782de2d81620346a5f38c6237a86a22f8368980a" -dependencies = [ - "pkcs8", - "serdect", - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "3.0.0-rc.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011170fe4f04665565b4110afef66774fe9ffff278f3eb5b81cc73d26e27d60" -dependencies = [ - "curve25519-dalek 5.0.0-rc.0", - "ed25519", - "rand_core 0.10.1", - "serde", - "sha2 0.11.0", - "signature", - "subtle", - "zeroize", -] - -[[package]] -name = "either" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" - [[package]] name = "embed-resource" version = "3.0.9" @@ -2360,25 +1586,13 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" -[[package]] -name = "embedded-io" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" - -[[package]] -name = "embedded-io" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" - [[package]] name = "encoding_rs" version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", ] [[package]] @@ -2387,17 +1601,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" -[[package]] -name = "enum-assoc" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed8956bd5c1f0415200516e78ff07ec9e16415ade83c056c230d7b7ea0d55b7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "enumflags2" version = "0.7.12" @@ -2446,15 +1649,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "euclid" -version = "0.22.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06" -dependencies = [ - "num-traits", -] - [[package]] name = "event-listener" version = "5.4.1" @@ -2494,22 +1688,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" -[[package]] -name = "fancy-regex" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" -dependencies = [ - "bit-set 0.5.3", - "regex", -] - -[[package]] -name = "fast-srgb8" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" - [[package]] name = "fastrand" version = "2.4.1" @@ -2525,18 +1703,6 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "fiat-crypto" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" - [[package]] name = "field-offset" version = "0.3.6" @@ -2547,24 +1713,13 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "filedescriptor" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" -dependencies = [ - "libc", - "thiserror 1.0.69", - "winapi", -] - [[package]] name = "filetime" version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "libc", ] @@ -2574,24 +1729,6 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" -[[package]] -name = "finl_unicode" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5" - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - [[package]] name = "flate2" version = "1.1.9" @@ -2603,17 +1740,6 @@ dependencies = [ "zlib-rs", ] -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin 0.9.8", -] - [[package]] name = "fnv" version = "1.0.7" @@ -2704,19 +1830,6 @@ dependencies = [ "futures-util", ] -[[package]] -name = "futures-buffered" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4421cb78ee172b6b06080093479d3c50f058e7c81b7d577bbb8d118d551d4cd5" -dependencies = [ - "cordyceps", - "diatomic-waker", - "futures-core", - "pin-project-lite", - "spin 0.10.0", -] - [[package]] name = "futures-channel" version = "0.3.32" @@ -2902,30 +2015,6 @@ dependencies = [ "x11", ] -[[package]] -name = "gearhash" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8cf82cf76cd16485e56295a1377c775ce708c9f1a0be6b029076d60a245d213" -dependencies = [ - "cfg-if 0.1.10", -] - -[[package]] -name = "generator" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae" -dependencies = [ - "cc", - "cfg-if 1.0.4", - "libc", - "log", - "rustversion", - "windows-link 0.1.3", - "windows-result 0.3.4", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -2934,7 +2023,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -2943,7 +2031,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" dependencies = [ - "rustix 1.1.4", + "rustix", "windows-link 0.2.1", ] @@ -2953,10 +2041,10 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -2966,7 +2054,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "js-sys", "libc", "r-efi 5.3.0", @@ -2980,7 +2068,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "js-sys", "libc", "r-efi 6.0.0", @@ -2990,16 +2078,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug", - "polyval", -] - [[package]] name = "gio" version = "0.18.4" @@ -3032,26 +2110,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "git-version" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" -dependencies = [ - "git-version-macro", -] - -[[package]] -name = "git-version-macro" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "glib" version = "0.18.5" @@ -3123,31 +2181,6 @@ dependencies = [ "xkeysym", ] -[[package]] -name = "globset" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "gobject-sys" version = "0.18.0" @@ -3251,27 +2284,11 @@ dependencies = [ "foldhash 0.1.5", ] -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", -] - [[package]] name = "hashbrown" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash 0.2.0", -] [[package]] name = "hashlink" @@ -3282,12 +2299,6 @@ dependencies = [ "hashbrown 0.15.5", ] -[[package]] -name = "heapify" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0049b265b7f201ca9ab25475b22b47fe444060126a51abe00f77d986fc5cc52e" - [[package]] name = "heck" version = "0.4.1" @@ -3322,192 +2333,58 @@ dependencies = [ ] [[package]] -name = "hf-hub" -version = "1.0.0-rc.1" +name = "hmac" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89305dc8fe34e165eaf0eb12b6e294e12381d9df9a431bcc52a5809bab4319" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "base64 0.22.1", - "bon", - "bytes", - "futures", - "globset", - "hf-xet", - "hyper", - "pathdiff", - "reqwest 0.13.4", - "serde", - "serde_json", - "sha2 0.11.0", - "thiserror 2.0.18", - "tokio", - "tokio-retry", - "tokio-util", - "tracing", - "url", + "digest 0.10.7", ] [[package]] -name = "hf-xet" -version = "1.5.2" +name = "hmac" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "430b33fa84f92796d4d263070b6c0d3ca219df7b9a0e1853ee431029b1612bcd" +checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" dependencies = [ - "async-trait", - "bytes", - "http", - "more-asserts", - "serde", - "thiserror 2.0.18", - "tokio", - "tokio-util", - "tracing", - "uuid", - "xet-client", - "xet-core-structures", - "xet-data", - "xet-runtime", + "digest 0.11.3", ] [[package]] -name = "hickory-net" -version = "0.26.1" +name = "html5ever" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2295ed2f9c31e471e1428a8f88a3f0e1f4b27c15049592138d1eebe9c35b183" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever", +] + +[[package]] +name = "http" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" dependencies = [ - "async-trait", "bytes", - "cfg-if 1.0.4", - "data-encoding", - "futures-channel", - "futures-io", - "futures-util", - "h2", - "hickory-proto", - "http", - "idna", - "ipnet", - "jni 0.22.4", - "rand 0.10.1", - "rustls", - "thiserror 2.0.18", - "tinyvec", - "tokio", - "tokio-rustls", - "tracing", - "url", + "itoa", ] [[package]] -name = "hickory-proto" -version = "0.26.1" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bab31817bfb44672a252e97fe81cd0c18d1b2cf892108922f6818820df8c643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "data-encoding", - "idna", - "ipnet", - "jni 0.22.4", - "once_cell", - "prefix-trie", - "rand 0.10.1", - "ring", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "url", + "bytes", + "http", ] [[package]] -name = "hickory-resolver" -version = "0.26.1" +name = "http-body-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d58d28879ceecde6607729660c2667a081ccdc082e082675042793960f178c" -dependencies = [ - "cfg-if 1.0.4", - "futures-util", - "hickory-net", - "hickory-proto", - "ipconfig", - "ipnet", - "jni 0.22.4", - "moka", - "ndk-context", - "once_cell", - "parking_lot", - "rand 0.10.1", - "resolv-conf", - "rustls", - "smallvec", - "system-configuration", - "thiserror 2.0.18", - "tokio", - "tokio-rustls", - "tracing", -] - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "hmac" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" -dependencies = [ - "digest 0.11.3", -] - -[[package]] -name = "html5ever" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" -dependencies = [ - "log", - "markup5ever", -] - -[[package]] -name = "http" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425" -dependencies = [ - "bytes", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", @@ -3528,12 +2405,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "humantime" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" - [[package]] name = "hybrid-array" version = "0.4.12" @@ -3580,35 +2451,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-timeout" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" -dependencies = [ - "hyper", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" version = "0.1.20" @@ -3631,7 +2473,7 @@ dependencies = [ "tokio", "tower-service", "tracing", - "windows-registry 0.5.3", + "windows-registry", ] [[package]] @@ -3762,12 +2604,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "identity-hash" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfdd7caa900436d8f13b2346fe10257e0c05c1f1f9e351f4f5d57c03bd5f45da" - [[package]] name = "idna" version = "1.1.0" @@ -3789,36 +2625,6 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "if-addrs" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0a05c691e1fae256cf7013d99dad472dc52d5543322761f83ec8d47eab40d2b" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - -[[package]] -name = "igd-next" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de7238d487a9aff61f81b5ab41c0a841532a115a398b5fa92a2fadd0885e2581" -dependencies = [ - "attohttpc", - "bytes", - "futures", - "http", - "http-body-util", - "hyper", - "hyper-util", - "log", - "rand 0.10.1", - "tokio", - "url", - "xmltree", -] - [[package]] name = "indexmap" version = "1.9.3" @@ -3842,15 +2648,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "indoc" -version = "2.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" -dependencies = [ - "rustversion", -] - [[package]] name = "infer" version = "0.19.0" @@ -3879,326 +2676,115 @@ dependencies = [ "hybrid-array", ] -[[package]] -name = "instability" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971" -dependencies = [ - "darling 0.23.0", - "indoc", - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "instant" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", ] [[package]] -name = "ipconfig" -version = "0.3.4" +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "is-docker" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d40460c0ce33d6ce4b0630ad68ff63d6661961c48b6dba35e5a4d81cfb48222" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" dependencies = [ - "socket2", - "widestring", - "windows-registry 0.6.1", - "windows-result 0.4.1", - "windows-sys 0.61.2", + "once_cell", ] [[package]] -name = "ipnet" -version = "2.12.0" +name = "is-wsl" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" dependencies = [ - "serde", + "is-docker", + "once_cell", ] [[package]] -name = "iroh" -version = "1.0.2" +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "javascriptcore-rs" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fca9b4b462c343ff88fc0af4096c186f939b602a0bc08723536ef2c31c93971" +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" dependencies = [ - "backon", - "blake3", - "bytes", - "cfg_aliases", - "ctutils", - "data-encoding", - "derive_more", - "ed25519-dalek", - "futures-util", - "getrandom 0.4.2", - "hickory-resolver", - "http", - "ipnet", - "iroh-base", - "iroh-dns", - "iroh-metrics", - "iroh-relay", - "n0-error", - "n0-future", - "n0-watcher", - "netwatch", - "noq", - "noq-proto", - "noq-udp", - "papaya", - "pin-project", - "portable-atomic", - "portmapper", - "rand 0.10.1", - "reqwest 0.13.4", - "rustc-hash", - "rustls", - "rustls-pki-types", - "serde", - "smallvec", - "strum", - "time", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", - "url", - "wasm-bindgen-futures", + "bitflags 1.3.2", + "glib", + "javascriptcore-rs-sys", ] [[package]] -name = "iroh-base" -version = "1.0.2" +name = "javascriptcore-rs-sys" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830a582cd54410dc1aa71d4786a82c3297d7b0165accd8b6dbbb3b240b48140d" +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" dependencies = [ - "curve25519-dalek 5.0.0-rc.0", - "data-encoding", - "data-encoding-macro", - "derive_more", - "ed25519-dalek", - "getrandom 0.4.2", - "n0-error", - "rand 0.10.1", - "serde", - "url", - "zeroize", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", ] [[package]] -name = "iroh-dns" -version = "1.0.2" +name = "jni" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516e4eedc38e33ab69a6bd325520332dc3d67b25454e2d590ebb84a25240dd9a" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ - "arc-swap", - "cfg_aliases", - "derive_more", - "hickory-resolver", - "iroh-base", - "n0-error", - "n0-future", - "ndk-context", - "portable-atomic", - "rand 0.10.1", - "rustls", - "simple-dns", - "strum", - "tokio", - "tracing", - "url", + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", ] [[package]] -name = "iroh-metrics" -version = "1.0.1" +name = "jni" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291065721ad7c477b972e581bbc528df031dc8eb5e39fe1ff3300ae5dfb157ef" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ - "iroh-metrics-derive", - "itoa", - "n0-error", - "portable-atomic", - "ryu", - "serde", - "tracing", + "cfg-if", + "combine", + "jni-macros", + "jni-sys 0.4.1", + "log", + "simd_cesu8", + "thiserror 2.0.18", + "walkdir", + "windows-link 0.2.1", ] [[package]] -name = "iroh-metrics-derive" -version = "1.0.1" +name = "jni-macros" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ae5f0c4405d1fbc9fb16ff422ca40620e93dc36c30ecaba0c2aee3992b7bd48" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" dependencies = [ - "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.118", -] - -[[package]] -name = "iroh-relay" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8149bb6a57126225a07d6928846d82dcedfd24ea0f863ef7b2eb475e1d726354" -dependencies = [ - "blake3", - "bytes", - "cfg_aliases", - "data-encoding", - "derive_more", - "getrandom 0.4.2", - "hickory-resolver", - "http", - "http-body-util", - "hyper", - "hyper-util", - "iroh-base", - "iroh-dns", - "iroh-metrics", - "lru 0.18.0", - "n0-error", - "n0-future", - "noq", - "noq-proto", - "num_enum", - "pin-project", - "postcard", - "rand 0.10.1", - "reqwest 0.13.4", - "rustls", - "rustls-pki-types", - "serde", - "serde_bytes", - "strum", - "tokio", - "tokio-rustls", - "tokio-util", - "tokio-websockets", - "tracing", - "url", - "vergen-gitcl", - "webpki-roots 1.0.7", - "ws_stream_wasm", -] - -[[package]] -name = "is-docker" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" -dependencies = [ - "once_cell", -] - -[[package]] -name = "is-wsl" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" -dependencies = [ - "is-docker", - "once_cell", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" - -[[package]] -name = "javascriptcore-rs" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" -dependencies = [ - "bitflags 1.3.2", - "glib", - "javascriptcore-rs-sys", -] - -[[package]] -name = "javascriptcore-rs-sys" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if 1.0.4", - "combine", - "jni-sys 0.3.1", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "jni" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" -dependencies = [ - "cfg-if 1.0.4", - "combine", - "jni-macros", - "jni-sys 0.4.1", - "log", - "simd_cesu8", - "thiserror 2.0.18", - "walkdir", - "windows-link 0.2.1", -] - -[[package]] -name = "jni-macros" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" -dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "simd_cesu8", + "rustc_version", + "simd_cesu8", "syn 2.0.118", ] @@ -4246,7 +2832,7 @@ version = "0.3.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "futures-util", "wasm-bindgen", ] @@ -4263,16 +2849,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "json5" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733a844dbd6fef128e98cb4487b887cb55454d92cd9994b1bafe004fabbe670c" -dependencies = [ - "serde", - "ucd-trie", -] - [[package]] name = "jsonptr" version = "0.6.3" @@ -4283,17 +2859,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "kasuari" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899" -dependencies = [ - "hashbrown 0.16.1", - "portable-atomic", - "thiserror 2.0.18", -] - [[package]] name = "keyboard-types" version = "0.7.0" @@ -4315,36 +2880,12 @@ dependencies = [ "dbus-secret-service", "log", "openssl", - "secret-service", "security-framework 2.11.1", "security-framework 3.7.0", "windows-sys 0.60.2", "zeroize", ] -[[package]] -name = "konst" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f660d5f887e3562f9ab6f4a14988795b694099d66b4f5dedc02d197ba9becb1d" -dependencies = [ - "const_panic", - "konst_proc_macros", - "typewit", -] - -[[package]] -name = "konst_proc_macros" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e037a2e1d8d5fdbd49b16a4ea09d5d6401c1f29eca5ff29d03d3824dba16256a" - -[[package]] -name = "lab" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" - [[package]] name = "lazy_static" version = "1.5.0" @@ -4377,7 +2918,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" dependencies = [ "gtk-sys", - "libloading 0.7.4", + "libloading", "once_cell", ] @@ -4409,20 +2950,10 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "winapi", ] -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if 1.0.4", - "windows-link 0.2.1", -] - [[package]] name = "libm" version = "0.2.16" @@ -4449,21 +2980,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "line-clipping" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" -dependencies = [ - "bitflags 2.13.0", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4476,12 +2992,6 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" -[[package]] -name = "litrs" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" - [[package]] name = "lock_api" version = "0.4.14" @@ -4497,49 +3007,12 @@ version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" -[[package]] -name = "loom" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if 1.0.4", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "lru" -version = "0.16.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" - -[[package]] -name = "lru" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a860605968fce16869fd239cf4237a82f3ac470723415db603b0e8b6c8d4fb9" -dependencies = [ - "hashbrown 0.17.1", -] - [[package]] name = "lru-slab" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" -[[package]] -name = "lz4_flex" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef0d4ed8669f8f8826eb00dc878084aa8f253506c4fd5e8f58f5bce72ddb97e" -dependencies = [ - "twox-hash", -] - [[package]] name = "lzma-rust2" version = "0.16.4" @@ -4549,12 +3022,6 @@ dependencies = [ "sha2 0.11.0", ] -[[package]] -name = "mac-addr" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d25b0e0b648a86960ac23b7ad4abb9717601dec6f66c165f5b037f3f03065f" - [[package]] name = "mac-notification-sys" version = "0.6.15" @@ -4569,16 +3036,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "mac_address" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303" -dependencies = [ - "nix 0.29.0", - "winapi", -] - [[package]] name = "mach2" version = "0.5.0" @@ -4614,33 +3071,12 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" -[[package]] -name = "mdns-sd" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18148fee27e99e76dbf6e137f27727113d31f766e578d1b93a93c3615fca7081" -dependencies = [ - "fastrand", - "flume", - "if-addrs", - "log", - "mio", - "socket-pktinfo", - "socket2", -] - [[package]] name = "memchr" version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" -[[package]] -name = "memmem" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" - [[package]] name = "memoffset" version = "0.9.1" @@ -4651,570 +3087,37 @@ dependencies = [ ] [[package]] -name = "mesh-llm-api-client" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "hex", - "mesh-llm-client", - "thiserror 2.0.18", -] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "mesh-llm-api-server" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" +name = "minisign-verify" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ - "anyhow", - "mesh-llm-api-client", - "mesh-llm-node", - "tokio", + "adler2", + "simd-adler32", ] [[package]] -name = "mesh-llm-build-info" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" - -[[package]] -name = "mesh-llm-client" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.22.1", - "bytes", - "crypto_box", - "ed25519-dalek", - "hex", - "httparse", - "iroh", - "mesh-llm-identity", - "mesh-llm-protocol", - "mesh-llm-routing", - "mesh-llm-types", - "model-artifact", - "nostr-sdk", - "prost", - "rand 0.10.1", - "rustls", - "serde", - "serde_json", - "sha2 0.10.9", - "thiserror 2.0.18", - "tokio", - "tracing", - "uuid", -] - -[[package]] -name = "mesh-llm-config" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "dirs", - "mesh-llm-types", - "semver", - "serde", - "skippy-protocol", - "toml 0.9.12+spec-1.1.0", - "toml_edit 0.25.12+spec-1.1.0", - "url", -] - -[[package]] -name = "mesh-llm-embedded-runtime" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "mesh-llm-host-runtime", - "serde_json", -] - -[[package]] -name = "mesh-llm-events" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "clap", - "crossterm 0.28.1", - "ratatui", - "serde_json", -] - -[[package]] -name = "mesh-llm-gpu-bench" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "cc", - "libc", - "serde", - "serde_json", - "tracing", -] - -[[package]] -name = "mesh-llm-guardrails" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "mesh-llm-hardware-profile" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "mesh-llm-native-runtime", -] - -[[package]] -name = "mesh-llm-host-runtime" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "argon2", - "async-trait", - "axum", - "base64 0.22.1", - "bytes", - "chacha20poly1305", - "chrono", - "clap", - "crossterm 0.28.1", - "crypto_box", - "dirs", - "ed25519-dalek", - "flate2", - "futures-util", - "hex", - "hf-hub", - "http", - "http-body-util", - "httparse", - "if-addrs", - "iroh", - "json5", - "keyring", - "libc", - "mdns-sd", - "mesh-llm-api-server", - "mesh-llm-build-info", - "mesh-llm-client", - "mesh-llm-config", - "mesh-llm-events", - "mesh-llm-guardrails", - "mesh-llm-identity", - "mesh-llm-native-runtime", - "mesh-llm-node", - "mesh-llm-plugin", - "mesh-llm-plugin-manager", - "mesh-llm-protocol", - "mesh-llm-routing", - "mesh-llm-runtime-install", - "mesh-llm-system", - "mesh-llm-types", - "mesh-llm-ui", - "mesh-mixture-of-agents", - "model-artifact", - "model-hf", - "model-package", - "model-ref", - "model-resolver", - "nostr-sdk", - "openai-frontend", - "opentelemetry", - "opentelemetry-otlp", - "opentelemetry_sdk", - "prost", - "rand 0.10.1", - "regex-lite", - "reqwest 0.12.28", - "rmcp", - "rpassword", - "rustls", - "schemars 1.2.1", - "semver", - "serde", - "serde_json", - "serde_yaml", - "sha2 0.10.9", - "skippy-coordinator", - "skippy-protocol", - "skippy-runtime", - "skippy-server", - "skippy-topology", - "socket2", - "tabwriter", - "tar", - "tempfile", - "thiserror 2.0.18", - "tokio", - "tokio-stream", - "toml 0.9.12+spec-1.1.0", - "tracing", - "tracing-subscriber", - "url", - "urlencoding", - "zeroize", - "zip 2.4.2", -] - -[[package]] -name = "mesh-llm-identity" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "argon2", - "base64 0.22.1", - "chacha20poly1305", - "chrono", - "crypto_box", - "dirs", - "ed25519-dalek", - "hex", - "keyring", - "rand 0.10.1", - "serde", - "serde_json", - "sha2 0.10.9", - "thiserror 2.0.18", - "zeroize", -] - -[[package]] -name = "mesh-llm-native-runtime" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "serde", - "serde_json", - "sha2 0.10.9", -] - -[[package]] -name = "mesh-llm-node" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "mesh-llm-types", - "model-artifact", - "model-hf", - "model-ref", - "serde", - "serde_json", -] - -[[package]] -name = "mesh-llm-plugin" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "async-trait", - "prost", - "prost-build", - "protoc-bin-vendored", - "rmcp", - "schemars 1.2.1", - "serde", - "serde_json", - "tokio", -] - -[[package]] -name = "mesh-llm-plugin-manager" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "dirs", - "flate2", - "futures-util", - "mesh-llm-skills", - "reqwest 0.12.28", - "serde", - "serde_json", - "tar", - "tempfile", - "zip 2.4.2", -] - -[[package]] -name = "mesh-llm-protocol" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "hex", - "iroh", - "prost", - "serde_json", - "sha2 0.10.9", -] - -[[package]] -name = "mesh-llm-routing" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "iroh", -] - -[[package]] -name = "mesh-llm-runtime-install" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "dirs", - "flate2", - "futures-util", - "hex", - "mesh-llm-build-info", - "mesh-llm-hardware-profile", - "mesh-llm-native-runtime", - "reqwest 0.12.28", - "serde", - "serde_json", - "sha2 0.10.9", - "skippy-ffi", - "tar", - "tempfile", - "tokio", -] - -[[package]] -name = "mesh-llm-sdk" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "mesh-llm-api-client", - "mesh-llm-api-server", - "mesh-llm-embedded-runtime", - "mesh-llm-runtime-install", - "reqwest 0.12.28", - "serde", - "serde_json", -] - -[[package]] -name = "mesh-llm-skills" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "dirs", - "serde", - "serde_json", -] - -[[package]] -name = "mesh-llm-system" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "chrono", - "clap", - "dirs", - "hex", - "libc", - "mesh-llm-build-info", - "mesh-llm-gpu-bench", - "reqwest 0.12.28", - "semver", - "serde", - "serde_json", - "sha2 0.10.9", - "skippy-runtime", - "tracing", - "zip 2.4.2", -] - -[[package]] -name = "mesh-llm-types" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "hex", - "serde", - "serde_json", - "sha2 0.10.9", -] - -[[package]] -name = "mesh-llm-ui" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" - -[[package]] -name = "mesh-mixture-of-agents" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "async-trait", - "mesh-llm-guardrails", - "reqwest 0.12.28", - "serde", - "serde_json", - "tokio", - "tracing", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "minisign-verify" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" -dependencies = [ - "libc", - "log", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.61.2", -] - -[[package]] -name = "model-artifact" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "async-trait", - "model-ref", - "serde", -] - -[[package]] -name = "model-hf" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "async-trait", - "chrono", - "dirs", - "hf-hub", - "model-artifact", - "model-ref", - "serde", - "serde_json", - "sha2 0.10.9", - "tokio", -] - -[[package]] -name = "model-package" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "bytes", - "chrono", - "futures", - "hf-hub", - "model-hf", - "model-ref", - "reqwest 0.12.28", - "serde", - "serde_json", - "sha2 0.10.9", - "tempfile", - "tokio", -] - -[[package]] -name = "model-ref" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "serde", -] - -[[package]] -name = "model-resolver" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "model-artifact", - "model-ref", - "serde", - "serde_json", -] - -[[package]] -name = "moka" -version = "0.12.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957228ad12042ee839f93c8f257b62b4c0ab5eaae1d4fa60de53b27c9d7c5046" -dependencies = [ - "crossbeam-channel", - "crossbeam-epoch", - "crossbeam-utils", - "equivalent", - "parking_lot", - "portable-atomic", - "smallvec", - "tagptr", - "uuid", -] - -[[package]] -name = "more-asserts" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" +name = "mio" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] [[package]] name = "muda" @@ -5237,82 +3140,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "multimap" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" - -[[package]] -name = "n0-error" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c37e81176a83a77d2514528b91bdafc70ef88aab428f0e1b91aebb8d99888895" -dependencies = [ - "n0-error-macros", - "spez", -] - -[[package]] -name = "n0-error-macros" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2acd8b070213b0299282f884b4beba4e7b52d624fdcd504a3ad3665390c11e1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "n0-future" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ab99dfb861450e68853d34ae665243a88b8c493d01ba957321a1e9b2312bbe" -dependencies = [ - "cfg_aliases", - "derive_more", - "futures-buffered", - "futures-lite", - "futures-util", - "js-sys", - "pin-project", - "send_wrapper", - "tokio", - "tokio-util", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-time", -] - -[[package]] -name = "n0-watcher" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbc618745ad0b7414b149d0517ad8b5573b2fb4d4e2717add3d2446ce1fdd826" -dependencies = [ - "derive_more", - "n0-error", - "n0-future", -] - -[[package]] -name = "native-tls" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 3.7.0", - "security-framework-sys", - "tempfile", -] - [[package]] name = "ndk" version = "0.9.0" @@ -5343,39 +3170,6 @@ dependencies = [ "jni-sys 0.3.1", ] -[[package]] -name = "negentropy" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0efe882e02d206d8d279c20eb40e03baf7cb5136a1476dc084a324fbc3ec42d" - -[[package]] -name = "netdev" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "569dfbdd2efd771b24ec9bb57f956e04d4fbfc72f62b2f11961723f9b3f4b020" -dependencies = [ - "block2", - "dispatch2", - "dlopen2", - "ipnet", - "jni 0.21.1", - "libc", - "mac-addr", - "ndk-context", - "netlink-packet-core", - "netlink-packet-route", - "netlink-sys", - "objc2", - "objc2-core-foundation", - "objc2-core-wlan", - "objc2-foundation", - "objc2-system-configuration", - "once_cell", - "plist", - "windows-sys 0.61.2", -] - [[package]] name = "neteq" version = "0.8.3" @@ -5389,110 +3183,12 @@ dependencies = [ "web-time", ] -[[package]] -name = "netlink-packet-core" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3463cbb78394cb0141e2c926b93fc2197e473394b761986eca3b9da2c63ae0f4" -dependencies = [ - "paste", -] - -[[package]] -name = "netlink-packet-route" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2288fcb784eb3defd5fb16f4c4160d5f477de192eac730f43e1d11c24d9a007" -dependencies = [ - "bitflags 2.13.0", - "libc", - "log", - "netlink-packet-core", -] - -[[package]] -name = "netlink-proto" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65d130ee111430e47eed7896ea43ca693c387f097dd97376bffafbf25812128" -dependencies = [ - "bytes", - "futures", - "log", - "netlink-packet-core", - "netlink-sys", - "thiserror 2.0.18", -] - -[[package]] -name = "netlink-sys" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6c30ed10fa69cc491d491b85cc971f6bdeb8e7367b7cde2ee6cc878d583fae" -dependencies = [ - "bytes", - "futures-util", - "libc", - "log", - "tokio", -] - -[[package]] -name = "netwatch" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d9cbe01741347ef750d743d6690603f5eed8341e679fb51c8e629337aa11976" -dependencies = [ - "atomic-waker", - "bytes", - "cfg_aliases", - "derive_more", - "ipnet", - "js-sys", - "libc", - "n0-error", - "n0-future", - "n0-watcher", - "netdev", - "netlink-packet-core", - "netlink-packet-route", - "netlink-proto", - "netlink-sys", - "noq-udp", - "objc2-core-foundation", - "objc2-system-configuration", - "pin-project-lite", - "serde", - "socket2", - "time", - "tokio", - "tokio-util", - "tracing", - "web-sys", - "windows 0.62.2", - "windows-result 0.4.1", - "wmi", -] - [[package]] name = "new_debug_unreachable" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags 2.13.0", - "cfg-if 1.0.4", - "cfg_aliases", - "libc", - "memoffset", -] - [[package]] name = "nix" version = "0.30.1" @@ -5500,7 +3196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags 2.13.0", - "cfg-if 1.0.4", + "cfg-if", "cfg_aliases", "libc", ] @@ -5512,81 +3208,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" dependencies = [ "bitflags 2.13.0", - "cfg-if 1.0.4", - "cfg_aliases", - "libc", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "noq" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf95190af1bd4a00a10e8255ca0c8ddd9e9a9f5e79151d7a7eb6d56aff5dc89" -dependencies = [ - "bytes", - "cfg_aliases", - "derive_more", - "noq-proto", - "noq-udp", - "pin-project-lite", - "rustc-hash", - "rustls", - "socket2", - "thiserror 2.0.18", - "tokio", - "tokio-stream", - "tracing", - "web-time", -] - -[[package]] -name = "noq-proto" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa6c890013591e709a3e45dd53501351b7e27e7ff3c7e9fc3dce43e300e7e9d3" -dependencies = [ - "aes-gcm", - "bytes", - "derive_more", - "enum-assoc", - "getrandom 0.4.2", - "identity-hash", - "lru-slab", - "rand 0.10.1", - "rand_pcg", - "ring", - "rustc-hash", - "rustls", - "rustls-pki-types", - "slab", - "sorted-index-buffer", - "thiserror 2.0.18", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "noq-udp" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3137a52df66c20090a889828d1c655f21f52294cba64e5c4fbb04fc83eee7c8e" -dependencies = [ + "cfg-if", "cfg_aliases", "libc", - "socket2", - "tracing", - "windows-sys 0.61.2", ] [[package]] @@ -5613,59 +3237,6 @@ dependencies = [ "url", ] -[[package]] -name = "nostr-database" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7462c9d8ae5ef6a28d66a192d399ad2530f1f2130b13186296dbb11bdef5b3d1" -dependencies = [ - "lru 0.16.4", - "nostr", - "tokio", -] - -[[package]] -name = "nostr-gossip" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade30de16869618919c6b5efc8258f47b654a98b51541eb77f85e8ec5e3c83a6" -dependencies = [ - "nostr", -] - -[[package]] -name = "nostr-relay-pool" -version = "0.44.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b2c039df4f96c4bf7dae52a74fd5516ad6dda83a11c0c69dea91b5255a4f37" -dependencies = [ - "async-utility", - "async-wsocket", - "atomic-destructor", - "hex", - "lru 0.16.4", - "negentropy", - "nostr", - "nostr-database", - "tokio", - "tracing", -] - -[[package]] -name = "nostr-sdk" -version = "0.44.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "471732576710e779b64f04c55e3f8b5292f865fea228436daf19694f0bf70393" -dependencies = [ - "async-utility", - "nostr", - "nostr-database", - "nostr-gossip", - "nostr-relay-pool", - "tokio", - "tracing", -] - [[package]] name = "notify-rust" version = "4.17.0" @@ -5674,19 +3245,10 @@ checksum = "50ff2e74231b72c832d82982193b417f230945be6bdb5575b251d941d31adb00" dependencies = [ "futures-lite", "log", - "mac-notification-sys", - "serde", - "tauri-winrt-notification", - "zbus 5.16.0", -] - -[[package]] -name = "ntapi" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" -dependencies = [ - "winapi", + "mac-notification-sys", + "serde", + "tauri-winrt-notification", + "zbus", ] [[package]] @@ -5698,20 +3260,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -5757,17 +3305,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-rational" version = "0.4.2" @@ -5811,15 +3348,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "num_threads" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" -dependencies = [ - "libc", -] - [[package]] name = "objc2" version = "0.6.4" @@ -5970,20 +3498,6 @@ dependencies = [ "objc2-core-graphics", ] -[[package]] -name = "objc2-core-wlan" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e34919aba0d701380d911702455038a8a3587467fe0141d6a71501e7ffe48" -dependencies = [ - "bitflags 2.13.0", - "objc2", - "objc2-core-foundation", - "objc2-foundation", - "objc2-security", - "objc2-security-foundation", -] - [[package]] name = "objc2-encode" version = "4.1.0" @@ -6012,16 +3526,6 @@ dependencies = [ "objc2-core-foundation", ] -[[package]] -name = "objc2-io-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" -dependencies = [ - "libc", - "objc2-core-foundation", -] - [[package]] name = "objc2-io-surface" version = "0.3.2" @@ -6057,41 +3561,6 @@ dependencies = [ "objc2-foundation", ] -[[package]] -name = "objc2-security" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" -dependencies = [ - "bitflags 2.13.0", - "objc2", - "objc2-core-foundation", -] - -[[package]] -name = "objc2-security-foundation" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef76382e9cedd18123099f17638715cc3d81dba3637d4c0d39ab69df2ef345a5" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-system-configuration" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" -dependencies = [ - "bitflags 2.13.0", - "dispatch2", - "libc", - "objc2", - "objc2-core-foundation", - "objc2-security", -] - [[package]] name = "objc2-ui-kit" version = "0.3.2" @@ -6142,22 +3611,6 @@ name = "once_cell" version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "oneshot" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "269bca4c2591a28585d6bf10d9ed0332b7d76900a1b02bec41bdc3a2cdcda107" [[package]] name = "opaque-debug" @@ -6177,23 +3630,6 @@ dependencies = [ "pathdiff", ] -[[package]] -name = "openai-frontend" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "async-trait", - "axum", - "futures-core", - "futures-util", - "mesh-llm-guardrails", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "openssl" version = "0.10.81" @@ -6201,7 +3637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45" dependencies = [ "bitflags 2.13.0", - "cfg-if 1.0.4", + "cfg-if", "foreign-types 0.3.2", "libc", "openssl-macros", @@ -6247,81 +3683,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bcd6ae87133e903af7ef497404dda70c60d0ea14895fc8a5e6722754fc2a0" -dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "pin-project-lite", - "thiserror 2.0.18", - "tracing", -] - -[[package]] -name = "opentelemetry-http" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a6d09a73194e6b66df7c8f1b680f156d916a1a942abf2de06823dd02b7855d" -dependencies = [ - "async-trait", - "bytes", - "http", - "opentelemetry", - "reqwest 0.12.28", -] - -[[package]] -name = "opentelemetry-otlp" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f69cd6acbb9af919df949cd1ec9e5e7fdc2ef15d234b6b795aaa525cc02f71f" -dependencies = [ - "http", - "opentelemetry", - "opentelemetry-http", - "opentelemetry-proto", - "opentelemetry_sdk", - "prost", - "reqwest 0.12.28", - "thiserror 2.0.18", -] - -[[package]] -name = "opentelemetry-proto" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f" -dependencies = [ - "base64 0.22.1", - "const-hex", - "opentelemetry", - "opentelemetry_sdk", - "prost", - "serde", - "serde_json", - "tonic", - "tonic-prost", -] - -[[package]] -name = "opentelemetry_sdk" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ae4f5991976fd48df6d843de219ca6d31b01daaab2dad5af2badeded372bd" -dependencies = [ - "futures-channel", - "futures-executor", - "futures-util", - "opentelemetry", - "percent-encoding", - "rand 0.9.4", - "thiserror 2.0.18", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -6337,15 +3698,6 @@ dependencies = [ "audiopus_sys", ] -[[package]] -name = "ordered-float" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" -dependencies = [ - "num-traits", -] - [[package]] name = "ordered-multimap" version = "0.7.3" @@ -6366,15 +3718,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "os_str_bytes" -version = "6.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" -dependencies = [ - "memchr", -] - [[package]] name = "osakit" version = "0.3.1" @@ -6389,30 +3732,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "palette" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" -dependencies = [ - "approx", - "fast-srgb8", - "libm", - "palette_derive", -] - -[[package]] -name = "palette_derive" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" -dependencies = [ - "by_address", - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "pango" version = "0.18.3" @@ -6438,181 +3757,77 @@ dependencies = [ "system-deps", ] -[[package]] -name = "papaya" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "997ee03cd38c01469a7046643714f0ad28880bcb9e6679ff0666e24817ca19b7" -dependencies = [ - "equivalent", - "seize", -] - [[package]] name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "redox_syscall", - "smallvec", - "windows-link 0.2.1", -] - -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pastey" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4" - -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", -] - -[[package]] -name = "pbkdf2" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112d82ceb8c5bf524d9af484d4e4970c9fd5a0cc15ba14ad93dccd28873b0629" -dependencies = [ - "digest 0.11.3", - "hmac 0.13.0", -] - -[[package]] -name = "pem-rfc7468" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6305423e0e7738146434843d1694d621cce767262b2a86910beab705e4493d9" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] -name = "pest" -version = "2.8.7" +name = "parking_lot" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47627dd7305c6a2d6c8c6bcd24c5a4c17dbbf425f4f9c5313e724b38fc9782e9" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ - "memchr", - "ucd-trie", + "lock_api", + "parking_lot_core", ] [[package]] -name = "pest_derive" -version = "2.8.7" +name = "parking_lot_core" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4254325ecad416ab689e27ba51da03ba01a9632bc6e108f5fe7c3c4ad29d58" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ - "pest", - "pest_generator", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link 0.2.1", ] [[package]] -name = "pest_generator" -version = "2.8.7" +name = "password-hash" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c4c0e91ead7a8f7acecbca6f003fc2e8282b1dbe2dd9c9d2f16aba42995e0a7" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.118", + "base64ct", + "rand_core 0.6.4", + "subtle", ] [[package]] -name = "pest_meta" -version = "2.8.7" +name = "pathdiff" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9744bc48116fee06334924bb5f2bad41eed5e89bd26e29b0b799f9a3f82c210" -dependencies = [ - "pest", -] +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] -name = "petgraph" -version = "0.8.3" +name = "pbkdf2" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "fixedbitset 0.5.7", - "hashbrown 0.15.5", - "indexmap 2.14.0", + "digest 0.10.7", + "hmac 0.12.1", ] [[package]] -name = "pharos" -version = "0.5.3" +name = "pbkdf2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +checksum = "112d82ceb8c5bf524d9af484d4e4970c9fd5a0cc15ba14ad93dccd28873b0629" dependencies = [ - "futures", - "rustc_version", + "digest 0.11.3", + "hmac 0.13.0", ] [[package]] -name = "phf" -version = "0.11.3" +name = "percent-encoding" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_macros 0.11.3", - "phf_shared 0.11.3", -] +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "phf" @@ -6620,39 +3835,19 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", + "phf_macros", + "phf_shared", "serde", ] -[[package]] -name = "phf_codegen" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", -] - [[package]] name = "phf_codegen" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.6", + "phf_generator", + "phf_shared", ] [[package]] @@ -6662,20 +3857,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ "fastrand", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.118", + "phf_shared", ] [[package]] @@ -6684,22 +3866,13 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator", + "phf_shared", "proc-macro2", "quote", "syn 2.0.118", ] -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] - [[package]] name = "phf_shared" version = "0.13.1" @@ -6709,26 +3882,6 @@ dependencies = [ "siphasher", ] -[[package]] -name = "pin-project" -version = "1.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "pin-project-lite" version = "0.2.17" @@ -6746,16 +3899,6 @@ dependencies = [ "futures-io", ] -[[package]] -name = "pkcs8" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451913da69c775a56034ea8d9003d27ee8948e12443eae7c038ba100a4f21cb7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" version = "0.3.33" @@ -6807,11 +3950,11 @@ version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] @@ -6826,80 +3969,6 @@ dependencies = [ "universal-hash", ] -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if 1.0.4", - "cpufeatures 0.2.17", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" -dependencies = [ - "serde", -] - -[[package]] -name = "portmapper" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3713e4977408279158444a18c1a01ac9bf2e7eaf1fbfd1a19ac9cd18d90721" -dependencies = [ - "base64 0.22.1", - "bytes", - "derive_more", - "hyper-util", - "igd-next", - "iroh-metrics", - "libc", - "n0-error", - "n0-future", - "netwatch", - "num_enum", - "rand 0.10.1", - "serde", - "smallvec", - "socket2", - "time", - "tokio", - "tokio-util", - "tower-layer", - "tracing", - "url", -] - -[[package]] -name = "postcard" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" -dependencies = [ - "cobs", - "embedded-io 0.4.0", - "embedded-io 0.6.1", - "postcard-derive", - "serde", -] - -[[package]] -name = "postcard-derive" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0232bd009a197ceec9cc881ba46f727fcd8060a2d8d6a9dde7a69030a6fe2bb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "potential_utf" version = "0.1.5" @@ -6936,17 +4005,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" -[[package]] -name = "prefix-trie" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf6e3177f0684016a5c209b00882e15f8bdd3f3bb48f0491df10cd102d0c6e7" -dependencies = [ - "either", - "ipnet", - "num-traits", -] - [[package]] name = "prettyplease" version = "0.2.37" @@ -7014,163 +4072,33 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.106" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "process-wrap" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e842efad9119158434d193c6682e2ebee4b44d6ad801d7b349623b3f57cdf55" -dependencies = [ - "futures", - "indexmap 2.14.0", - "nix 0.31.3", - "tokio", - "tracing", - "windows 0.62.2", -] - -[[package]] -name = "proptest" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" -dependencies = [ - "bitflags 2.13.0", - "num-traits", - "rand 0.9.4", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "unarray", -] - -[[package]] -name = "prost" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042" -dependencies = [ - "heck 0.4.1", - "itertools", - "log", - "multimap", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.118", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "prost-types" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a" -dependencies = [ - "prost", -] - -[[package]] -name = "protoc-bin-vendored" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c381df33c98266b5f08186583660090a4ffa0889e76c7e9a5e175f645a67fa" -dependencies = [ - "protoc-bin-vendored-linux-aarch_64", - "protoc-bin-vendored-linux-ppcle_64", - "protoc-bin-vendored-linux-s390_64", - "protoc-bin-vendored-linux-x86_32", - "protoc-bin-vendored-linux-x86_64", - "protoc-bin-vendored-macos-aarch_64", - "protoc-bin-vendored-macos-x86_64", - "protoc-bin-vendored-win32", -] - -[[package]] -name = "protoc-bin-vendored-linux-aarch_64" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c350df4d49b5b9e3ca79f7e646fde2377b199e13cfa87320308397e1f37e1a4c" - -[[package]] -name = "protoc-bin-vendored-linux-ppcle_64" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55a63e6c7244f19b5c6393f025017eb5d793fd5467823a099740a7a4222440c" - -[[package]] -name = "protoc-bin-vendored-linux-s390_64" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dba5565db4288e935d5330a07c264a4ee8e4a5b4a4e6f4e83fad824cc32f3b0" - -[[package]] -name = "protoc-bin-vendored-linux-x86_32" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8854774b24ee28b7868cd71dccaae8e02a2365e67a4a87a6cd11ee6cdbdf9cf5" - -[[package]] -name = "protoc-bin-vendored-linux-x86_64" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38b07546580df720fa464ce124c4b03630a6fb83e05c336fea2a241df7e5d78" - -[[package]] -name = "protoc-bin-vendored-macos-aarch_64" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89278a9926ce312e51f1d999fee8825d324d603213344a9a706daa009f1d8092" + "proc-macro2", + "quote", + "version_check", +] [[package]] -name = "protoc-bin-vendored-macos-x86_64" -version = "3.2.0" +name = "proc-macro2" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81745feda7ccfb9471d7a4de888f0652e806d5795b61480605d4943176299756" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] [[package]] -name = "protoc-bin-vendored-win32" -version = "3.2.0" +name = "process-wrap" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95067976aca6421a523e491fce939a3e65249bac4b977adee0ee9771568e8aa3" +checksum = "2e842efad9119158434d193c6682e2ebee4b44d6ad801d7b349623b3f57cdf55" +dependencies = [ + "futures", + "indexmap 2.14.0", + "nix 0.31.3", + "tokio", + "tracing", + "windows 0.62.2", +] [[package]] name = "quick-xml" @@ -7353,125 +4281,6 @@ dependencies = [ "rand 0.10.1", ] -[[package]] -name = "rand_pcg" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a" -dependencies = [ - "rand_core 0.10.1", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.5", -] - -[[package]] -name = "ratatui" -version = "0.30.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3274ba0a2c5e1bcad2a2005d20f4dc59dad26b2eb0940fb094500dba4099d57d" -dependencies = [ - "instability", - "ratatui-core", - "ratatui-crossterm", - "ratatui-macros", - "ratatui-termina", - "ratatui-termwiz", - "ratatui-widgets", - "serde", -] - -[[package]] -name = "ratatui-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbb175c433c8e28a809d1f5773a2ae96e68c0ce40db865cbab1020bf33ae479c" -dependencies = [ - "bitflags 2.13.0", - "compact_str", - "critical-section", - "hashbrown 0.17.1", - "itertools", - "kasuari", - "lru 0.18.0", - "palette", - "serde", - "strum", - "thiserror 2.0.18", - "unicode-segmentation", - "unicode-truncate", - "unicode-width", -] - -[[package]] -name = "ratatui-crossterm" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567584a3b0e6a8203c23de40b4861497266725eb5363dbfd18a1edd603cca9f0" -dependencies = [ - "cfg-if 1.0.4", - "crossterm 0.29.0", - "instability", - "ratatui-core", -] - -[[package]] -name = "ratatui-macros" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7dc68daa7498a43e4d68e0eb078427e10c38fbcfbb1e42d955f1fa2140d814" -dependencies = [ - "ratatui-core", - "ratatui-widgets", -] - -[[package]] -name = "ratatui-termina" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0bf912d9e66f057a759d92e386a280ea886b352ab757d6ac4d653c7ed2c43c2" -dependencies = [ - "instability", - "ratatui-core", - "termina", -] - -[[package]] -name = "ratatui-termwiz" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf03e0380b7744054d6cb74224fe3adf062a029754933f575ca1e3b4c2ce977" -dependencies = [ - "ratatui-core", - "termwiz", -] - -[[package]] -name = "ratatui-widgets" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e3d19bcc9130ca376277d93b60767ff121ace3be06f5f95f81dd68956407d1" -dependencies = [ - "bitflags 2.13.0", - "hashbrown 0.17.1", - "indoc", - "instability", - "itertools", - "line-clipping", - "ratatui-core", - "serde", - "strum", - "time", - "unicode-segmentation", - "unicode-width", -] - [[package]] name = "raw-window-handle" version = "0.6.2" @@ -7487,15 +4296,6 @@ dependencies = [ "rustfft", ] -[[package]] -name = "redb" -version = "3.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba239c1c1693315d3cc0e601db3b3965543afbf48c41730fdca2f069f510f4a" -dependencies = [ - "libc", -] - [[package]] name = "redox_syscall" version = "0.5.18" @@ -7559,62 +4359,12 @@ dependencies = [ "regex-syntax", ] -[[package]] -name = "regex-lite" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973" - [[package]] name = "regex-syntax" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "js-sys", - "log", - "mime", - "native-tls", - "percent-encoding", - "pin-project-lite", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-native-tls", - "tokio-util", - "tower", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams 0.4.2", - "web-sys", -] - [[package]] name = "reqwest" version = "0.13.4" @@ -7636,7 +4386,6 @@ dependencies = [ "js-sys", "log", "mime", - "mime_guess", "percent-encoding", "pin-project-lite", "quinn", @@ -7656,30 +4405,10 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams 0.5.0", + "wasm-streams", "web-sys", ] -[[package]] -name = "reqwest-middleware" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc3f1384cffa4f274dad2d4ddd73aed32fed8f786d96c6be8aa4e5fd3c3b58" -dependencies = [ - "anyhow", - "async-trait", - "http", - "reqwest 0.13.4", - "thiserror 2.0.18", - "tower-service", -] - -[[package]] -name = "resolv-conf" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" - [[package]] name = "rfd" version = "0.16.0" @@ -7711,7 +4440,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", - "cfg-if 1.0.4", + "cfg-if", "getrandom 0.2.17", "libc", "untrusted", @@ -7734,43 +4463,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0810a9f717d9828f475fe1f629f4c305c8464b7f496c3a854b58d29e65f4058e" dependencies = [ "async-trait", - "base64 0.22.1", - "bytes", "chrono", "futures", - "http", - "http-body", - "http-body-util", - "pastey", "pin-project-lite", "process-wrap", - "rand 0.10.1", - "reqwest 0.13.4", - "rmcp-macros", - "schemars 1.2.1", "serde", "serde_json", - "sse-stream", "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", - "tower-service", "tracing", - "uuid", -] - -[[package]] -name = "rmcp-macros" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aefac48c364756e97f04c0401ba3231e8607882c7c1d92da0437dc16307904d" -dependencies = [ - "darling 0.23.0", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.118", ] [[package]] @@ -7789,16 +4492,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "rpassword" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "rtrb" version = "0.3.4" @@ -7841,7 +4534,7 @@ version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "ordered-multimap", ] @@ -7874,19 +4567,6 @@ dependencies = [ "transpose", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.13.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.1.4" @@ -7896,7 +4576,7 @@ dependencies = [ "bitflags 2.13.0", "errno", "libc", - "linux-raw-sys 0.12.1", + "linux-raw-sys", "windows-sys 0.61.2", ] @@ -7989,12 +4669,6 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]] -name = "safe-transmute" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3944826ff8fa8093089aba3acb4ef44b9446a99a16f3bf4e74af3f77d340ab7d" - [[package]] name = "salsa20" version = "0.10.2" @@ -8030,7 +4704,7 @@ checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "schemars_derive 0.8.22", + "schemars_derive", "serde", "serde_json", "url", @@ -8055,10 +4729,8 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ - "chrono", "dyn-clone", "ref-cast", - "schemars_derive 1.2.1", "serde", "serde_json", ] @@ -8075,24 +4747,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "schemars_derive" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d115b50f4aaeea07e79c1912f645c7513d81715d0420f8bc77a18c6260b307f" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 2.0.118", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -8131,25 +4785,6 @@ dependencies = [ "cc", ] -[[package]] -name = "secret-service" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4d35ad99a181be0a60ffcbe85d680d98f87bdc4d7644ade319b87076b9dbfd4" -dependencies = [ - "aes 0.8.4", - "cbc", - "futures-util", - "generic-array", - "hkdf", - "num", - "once_cell", - "rand 0.8.6", - "serde", - "sha2 0.10.9", - "zbus 4.4.0", -] - [[package]] name = "security-framework" version = "2.11.1" @@ -8186,16 +4821,6 @@ dependencies = [ "libc", ] -[[package]] -name = "seize" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" -dependencies = [ - "libc", - "windows-sys 0.61.2", -] - [[package]] name = "selectors" version = "0.36.1" @@ -8207,8 +4832,8 @@ dependencies = [ "derive_more", "log", "new_debug_unreachable", - "phf 0.13.1", - "phf_codegen 0.13.1", + "phf", + "phf_codegen", "precomputed-hash", "rustc-hash", "servo_arc", @@ -8225,12 +4850,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" version = "1.0.228" @@ -8253,16 +4872,6 @@ dependencies = [ "typeid", ] -[[package]] -name = "serde_bytes" -version = "0.11.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" -dependencies = [ - "serde", - "serde_core", -] - [[package]] name = "serde_core" version = "1.0.228" @@ -8385,7 +4994,7 @@ version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660" dependencies = [ - "darling 0.23.0", + "darling", "proc-macro2", "quote", "syn 2.0.118", @@ -8404,16 +5013,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "serdect" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66cf8fedced2fcf12406bcb34223dffb92eaf34908ede12fed414c82b7f00b3e" -dependencies = [ - "base16ct", - "serde", -] - [[package]] name = "serialize-to-javascript" version = "0.1.2" @@ -8451,7 +5050,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures 0.2.17", "digest 0.10.7", ] @@ -8462,27 +5061,20 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures 0.3.0", "digest 0.11.3", ] -[[package]] -name = "sha1_smol" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" - [[package]] name = "sha2" version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures 0.2.17", "digest 0.10.7", - "sha2-asm", ] [[package]] @@ -8491,18 +5083,9 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "cpufeatures 0.3.0", - "digest 0.11.3", -] - -[[package]] -name = "sha2-asm" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b845214d6175804686b2bd482bcffe96651bb2d1200742b712003504a2dac1ab" -dependencies = [ - "cc", + "digest 0.11.3", ] [[package]] @@ -8514,17 +5097,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shellexpand" -version = "3.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32824fab5e16e6c4d86dc1ba84489390419a39f97699852b66480bb87d297ed8" -dependencies = [ - "bstr", - "dirs", - "os_str_bytes", -] - [[package]] name = "sherpa-onnx" version = "1.13.3" @@ -8553,27 +5125,6 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" -dependencies = [ - "libc", - "mio", - "signal-hook", -] - [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -8584,12 +5135,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d567dcbaf0049cb8ac2608a76cd95ff9e4412e1899d389ee400918ca7537f5" - [[package]] name = "simd-adler32" version = "0.3.9" @@ -8612,114 +5157,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "simple-dns" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a75cbde1bf934313596a004973e462f9a82caa814dcf1a5f507bdf51597eeb4" -dependencies = [ - "bitflags 2.13.0", -] - [[package]] name = "siphasher" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" -[[package]] -name = "skippy-cache" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "blake3", - "skippy-protocol", -] - -[[package]] -name = "skippy-coordinator" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "thiserror 2.0.18", -] - -[[package]] -name = "skippy-ffi" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "libloading 0.8.9", -] - -[[package]] -name = "skippy-metrics" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" - -[[package]] -name = "skippy-protocol" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "prost", - "prost-build", - "protoc-bin-vendored", - "serde", -] - -[[package]] -name = "skippy-runtime" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "libc", - "serde", - "serde_json", - "sha2 0.10.9", - "skippy-ffi", - "tokio", -] - -[[package]] -name = "skippy-server" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "anyhow", - "async-trait", - "axum", - "base64 0.22.1", - "blake3", - "clap", - "futures-util", - "libc", - "openai-frontend", - "opentelemetry-proto", - "serde", - "serde_json", - "sha2 0.10.9", - "skippy-cache", - "skippy-metrics", - "skippy-protocol", - "skippy-runtime", - "socket2", - "tokio", - "tokio-stream", - "tonic", -] - -[[package]] -name = "skippy-topology" -version = "0.72.1" -source = "git+https://github.com/Mesh-LLM/mesh-llm.git?rev=49cf03427ad86becf8dc0596b738c055d166e7e2#49cf03427ad86becf8dc0596b738c055d166e7e2" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "slab" version = "0.4.12" @@ -8732,17 +5175,6 @@ version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" -[[package]] -name = "socket-pktinfo" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927136cc2ae6a1b0e66ac6b1210902b75c3f726db004a73bc18686dcd0dcd22f" -dependencies = [ - "libc", - "socket2", - "windows-sys 0.60.2", -] - [[package]] name = "socket2" version = "0.6.4" @@ -8775,12 +5207,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "sorted-index-buffer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea06cc588e43c632923a55450401b8f25e628131571d4e1baea1bdfdb2b5ed06" - [[package]] name = "soup3" version = "0.5.0" @@ -8807,77 +5233,12 @@ dependencies = [ "system-deps", ] -[[package]] -name = "spez" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87e960f4dca2788eeb86bbdde8dd246be8948790b7618d656e68f9b720a86e8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spin" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" - -[[package]] -name = "spki" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9efca8738c78ee9484207732f728b1ef517bbb1833d6fc0879ca898a522f6f" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sse-stream" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3962b63f038885f15bce2c6e02c0e7925c072f1ac86bb60fd44c5c6b762fb72" -dependencies = [ - "bytes", - "futures-util", - "http-body", - "http-body-util", - "pin-project-lite", -] - [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "statrs" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e" -dependencies = [ - "approx", - "num-traits", -] - [[package]] name = "strength_reduce" version = "0.2.4" @@ -8892,7 +5253,7 @@ checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" dependencies = [ "new_debug_unreachable", "parking_lot", - "phf_shared 0.13.1", + "phf_shared", "precomputed-hash", ] @@ -8902,8 +5263,8 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator", + "phf_shared", "proc-macro2", "quote", ] @@ -8923,27 +5284,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "strum" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.118", -] - [[package]] name = "subtle" version = "2.6.1" @@ -8961,12 +5301,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "symlink" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" - [[package]] name = "symphonia" version = "0.5.5" @@ -9121,7 +5455,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", - "quote", "unicode-ident", ] @@ -9156,20 +5489,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "sysinfo" -version = "0.38.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ab6a2f8bfe508deb3c6406578252e491d299cbbf3bc0529ecc3313aee4a52f" -dependencies = [ - "libc", - "memchr", - "ntapi", - "objc2-core-foundation", - "objc2-io-kit", - "windows 0.62.2", -] - [[package]] name = "system-configuration" version = "0.7.0" @@ -9204,21 +5523,6 @@ dependencies = [ "version-compare", ] -[[package]] -name = "tabwriter" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce91f2f0ec87dff7e6bcbbeb267439aa1188703003c6055193c821487400432" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - [[package]] name = "tao" version = "0.35.3" @@ -9317,7 +5621,7 @@ dependencies = [ "percent-encoding", "plist", "raw-window-handle", - "reqwest 0.13.4", + "reqwest", "serde", "serde_json", "serde_repr", @@ -9433,7 +5737,7 @@ dependencies = [ "thiserror 2.0.18", "tracing", "url", - "windows-registry 0.5.3", + "windows-registry", "windows-result 0.3.4", ] @@ -9532,7 +5836,7 @@ dependencies = [ "thiserror 2.0.18", "url", "windows 0.61.3", - "zbus 5.16.0", + "zbus", ] [[package]] @@ -9558,7 +5862,7 @@ dependencies = [ "thiserror 2.0.18", "tracing", "windows-sys 0.60.2", - "zbus 5.16.0", + "zbus", ] [[package]] @@ -9577,7 +5881,7 @@ dependencies = [ "minisign-verify", "osakit", "percent-encoding", - "reqwest 0.13.4", + "reqwest", "rustls", "semver", "serde", @@ -9689,7 +5993,7 @@ dependencies = [ "anyhow", "brotli", "cargo_metadata", - "ctor 0.8.0", + "ctor", "dom_query", "dunce", "glob", @@ -9698,7 +6002,7 @@ dependencies = [ "json-patch", "log", "memchr", - "phf 0.13.1", + "phf", "plist", "proc-macro2", "quote", @@ -9750,7 +6054,7 @@ dependencies = [ "fastrand", "getrandom 0.4.2", "once_cell", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] @@ -9764,82 +6068,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "termina" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9048a889effe34a5cddee0af7f53285198b16dca3be510858d38dfdb3e62a04e" -dependencies = [ - "bitflags 2.13.0", - "parking_lot", - "rustix 1.1.4", - "signal-hook", - "windows-sys 0.61.2", -] - -[[package]] -name = "terminfo" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" -dependencies = [ - "fnv", - "nom", - "phf 0.11.3", - "phf_codegen 0.11.3", -] - -[[package]] -name = "termios" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" -dependencies = [ - "libc", -] - -[[package]] -name = "termwiz" -version = "0.23.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" -dependencies = [ - "anyhow", - "base64 0.22.1", - "bitflags 2.13.0", - "fancy-regex", - "filedescriptor", - "finl_unicode", - "fixedbitset 0.4.2", - "hex", - "lazy_static", - "libc", - "log", - "memmem", - "nix 0.29.0", - "num-derive", - "num-traits", - "ordered-float", - "pest", - "pest_derive", - "phf 0.11.3", - "sha2 0.10.9", - "signal-hook", - "siphasher", - "terminfo", - "termios", - "thiserror 1.0.69", - "ucd-trie", - "unicode-segmentation", - "vtparse", - "wezterm-bidi", - "wezterm-blob-leases", - "wezterm-color-types", - "wezterm-dynamic", - "wezterm-input-types", - "winapi", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -9886,7 +6114,7 @@ version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", ] [[package]] @@ -9897,9 +6125,7 @@ checksum = "711a53c2d47bbd818258c498c8dbfe186a2526c631495cfe7e078567f86b8469" dependencies = [ "deranged", "js-sys", - "libc", "num-conv", - "num_threads", "powerfmt", "serde_core", "time-core", @@ -9965,7 +6191,6 @@ dependencies = [ "bytes", "libc", "mio", - "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -9985,45 +6210,12 @@ dependencies = [ ] [[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-retry" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a129d95275ebf4c493ec53bf0f8cd95f5ac161bc4f381700809a54f595d4470" -dependencies = [ - "pin-project-lite", - "rand 0.10.1", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - -[[package]] -name = "tokio-socks" -version = "0.5.3" +name = "tokio-rustls" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e2948f60dbe26b35f2c7fb74ac2854c1fddded0fe9d7548fcc674a246f7615" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "either", - "futures-util", - "thiserror 1.0.69", + "rustls", "tokio", ] @@ -10036,23 +6228,6 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" -dependencies = [ - "futures-util", - "log", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tungstenite 0.26.2", - "webpki-roots 0.26.11", ] [[package]] @@ -10101,29 +6276,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-websockets" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad543404f98bfc969aeb71994105c592acfc6c43323fddcd016bb208d1c65cb" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-core", - "futures-sink", - "getrandom 0.4.2", - "http", - "httparse", - "rand 0.10.1", - "ring", - "rustls-pki-types", - "sha1_smol", - "simdutf8", - "tokio", - "tokio-rustls", - "tokio-util", -] - [[package]] name = "toml" version = "0.8.2" @@ -10226,7 +6378,6 @@ dependencies = [ "indexmap 2.14.0", "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "toml_writer", "winnow 1.0.3", ] @@ -10245,46 +6396,6 @@ version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" -[[package]] -name = "tonic" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" -dependencies = [ - "async-trait", - "axum", - "base64 0.22.1", - "bytes", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "socket2", - "sync_wrapper", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic-prost" -version = "0.14.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" -dependencies = [ - "bytes", - "prost", - "tonic", -] - [[package]] name = "tower" version = "0.5.3" @@ -10293,12 +6404,9 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.14.0", "pin-project-lite", - "slab", "sync_wrapper", "tokio", - "tokio-util", "tower-layer", "tower-service", "tracing", @@ -10346,19 +6454,6 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-appender" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "050686193eb999b4bb3bc2acfa891a13da00f79734704c4b8b4ef1a10b368a3c" -dependencies = [ - "crossbeam-channel", - "symlink", - "thiserror 2.0.18", - "time", - "tracing-subscriber", -] - [[package]] name = "tracing-attributes" version = "0.1.31" @@ -10460,25 +6555,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" -dependencies = [ - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.9.4", - "rustls", - "rustls-pki-types", - "sha1 0.10.6", - "thiserror 2.0.18", - "utf-8", -] - [[package]] name = "tungstenite" version = "0.28.0" @@ -10516,12 +6592,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "twox-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" - [[package]] name = "typed-path" version = "0.12.3" @@ -10540,18 +6610,6 @@ version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" -[[package]] -name = "typewit" -version = "1.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "214ca0b2191785cbc06209b9ca1861e048e39b5ba33574b3cedd58363d5bb5f6" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - [[package]] name = "uds_windows" version = "1.2.1" @@ -10563,12 +6621,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - [[package]] name = "unic-char-property" version = "0.9.0" @@ -10610,12 +6662,6 @@ dependencies = [ "unic-common", ] -[[package]] -name = "unicase" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" - [[package]] name = "unicode-ident" version = "1.0.24" @@ -10637,23 +6683,6 @@ version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" -[[package]] -name = "unicode-truncate" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5" -dependencies = [ - "itertools", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - [[package]] name = "unicode-xid" version = "0.2.6" @@ -10741,19 +6770,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - [[package]] name = "uuid" version = "1.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7" dependencies = [ - "atomic", "getrandom 0.4.2", "js-sys", "serde_core", @@ -10772,43 +6794,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "vergen" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75" -dependencies = [ - "anyhow", - "derive_builder", - "rustversion", - "vergen-lib", -] - -[[package]] -name = "vergen-gitcl" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ff3b5300a085d6bcd8fc96a507f706a28ae3814693236c9b409db71a1d15b9" -dependencies = [ - "anyhow", - "derive_builder", - "rustversion", - "time", - "vergen", - "vergen-lib", -] - -[[package]] -name = "vergen-lib" -version = "9.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34a29ba7e9c59e62f229ae1932fb1b8fb8a6fdcc99215a641913f5f5a59a569" -dependencies = [ - "anyhow", - "derive_builder", - "rustversion", -] - [[package]] name = "version-compare" version = "0.2.1" @@ -10861,15 +6846,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "vtparse" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0" -dependencies = [ - "utf8parse", -] - [[package]] name = "walkdir" version = "2.5.0" @@ -10895,15 +6871,6 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - [[package]] name = "wasip2" version = "1.0.4+wasi-0.2.12" @@ -10922,22 +6889,13 @@ dependencies = [ "wit-bindgen 0.51.0", ] -[[package]] -name = "wasite" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fe902b4a6b8028a753d5424909b764ccf79b7a209eac9bf97e59cda9f71a42" -dependencies = [ - "wasi 0.14.7+wasi-0.2.4", -] - [[package]] name = "wasm-bindgen" version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", @@ -11008,19 +6966,6 @@ dependencies = [ "wasmparser", ] -[[package]] -name = "wasm-streams" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wasm-streams" version = "0.5.0" @@ -11072,8 +7017,8 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" dependencies = [ - "phf 0.13.1", - "phf_codegen 0.13.1", + "phf", + "phf_codegen", "string_cache", "string_cache_codegen", ] @@ -11180,118 +7125,27 @@ dependencies = [ ] [[package]] -name = "webview2-com-macros" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "webview2-com-sys" -version = "0.38.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" -dependencies = [ - "thiserror 2.0.18", - "windows 0.61.3", - "windows-core 0.61.2", -] - -[[package]] -name = "wezterm-bidi" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec" -dependencies = [ - "log", - "wezterm-dynamic", -] - -[[package]] -name = "wezterm-blob-leases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7" -dependencies = [ - "getrandom 0.3.4", - "mac_address", - "sha2 0.10.9", - "thiserror 1.0.69", - "uuid", -] - -[[package]] -name = "wezterm-color-types" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296" -dependencies = [ - "csscolorparser", - "deltae", - "lazy_static", - "wezterm-dynamic", -] - -[[package]] -name = "wezterm-dynamic" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac" -dependencies = [ - "log", - "ordered-float", - "strsim", - "thiserror 1.0.69", - "wezterm-dynamic-derive", -] - -[[package]] -name = "wezterm-dynamic-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "wezterm-input-types" -version = "0.1.0" +name = "webview2-com-macros" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e" +checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" dependencies = [ - "bitflags 1.3.2", - "euclid", - "lazy_static", - "serde", - "wezterm-dynamic", + "proc-macro2", + "quote", + "syn 2.0.118", ] [[package]] -name = "whoami" -version = "2.1.2" +name = "webview2-com-sys" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "998767ef88740d1f5b0682a9c53c24431453923962269c2db68ee43788c5a40d" +checksum = "381336cfffd772377d291702245447a5251a2ffa5bad679c99e61bc48bacbf9c" dependencies = [ - "libc", - "libredox", - "objc2-system-configuration", - "wasite", - "web-sys", + "thiserror 2.0.18", + "windows 0.61.3", + "windows-core 0.61.2", ] -[[package]] -name = "widestring" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" - [[package]] name = "winapi" version = "0.3.9" @@ -11503,17 +7357,6 @@ dependencies = [ "windows-strings 0.4.2", ] -[[package]] -name = "windows-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" -dependencies = [ - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - [[package]] name = "windows-result" version = "0.3.4" @@ -11838,7 +7681,7 @@ version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" dependencies = [ - "cfg-if 1.0.4", + "cfg-if", "windows-sys 0.59.0", ] @@ -11936,21 +7779,6 @@ dependencies = [ "wasmparser", ] -[[package]] -name = "wmi" -version = "0.18.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c81b85c57a57500e56669586496bf2abd5cf082b9d32995251185d105208b64" -dependencies = [ - "chrono", - "futures", - "log", - "serde", - "thiserror 2.0.18", - "windows 0.61.3", - "windows-core 0.61.2", -] - [[package]] name = "writeable" version = "0.6.3" @@ -12001,25 +7829,6 @@ dependencies = [ "x11-dl", ] -[[package]] -name = "ws_stream_wasm" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version", - "send_wrapper", - "thiserror 2.0.18", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "x11" version = "2.21.0" @@ -12048,7 +7857,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" dependencies = [ "gethostname", - "rustix 1.1.4", + "rustix", "x11rb-protocol", ] @@ -12065,164 +7874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.1.4", -] - -[[package]] -name = "xdg-home" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "xet-client" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e1e496dcbe6a09017acdfaf48e1a646735e7ff5b2a49e2c7e081cca77a59bc8" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.22.1", - "bytes", - "clap", - "crc32fast", - "futures", - "http", - "hyper", - "lazy_static", - "more-asserts", - "rand 0.10.1", - "redb", - "reqwest 0.13.4", - "reqwest-middleware", - "serde", - "serde_json", - "serde_repr", - "statrs", - "tempfile", - "thiserror 2.0.18", - "tokio", - "tokio-retry", - "tracing", - "tracing-subscriber", - "url", - "urlencoding", - "web-time", - "xet-core-structures", - "xet-runtime", -] - -[[package]] -name = "xet-core-structures" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb838aa8eb67d730af301584cf003caad407487606058292a6750711b603fbee" -dependencies = [ - "async-trait", - "base64 0.22.1", - "blake3", - "bytemuck", - "bytes", - "clap", - "countio", - "csv", - "futures", - "futures-util", - "getrandom 0.4.2", - "heapify", - "itertools", - "lazy_static", - "lz4_flex", - "more-asserts", - "rand 0.10.1", - "regex", - "safe-transmute", - "serde", - "static_assertions", - "tempfile", - "thiserror 2.0.18", - "tokio", - "tokio-util", - "tracing", - "uuid", - "web-time", - "xet-runtime", -] - -[[package]] -name = "xet-data" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fd409bef621411a9d9013798540bb8036cb2678f03ab39af89a5e88034ed8c" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "chrono", - "clap", - "gearhash", - "http", - "itertools", - "lazy_static", - "more-asserts", - "rand 0.10.1", - "serde", - "serde_json", - "sha2 0.10.9", - "tempfile", - "thiserror 2.0.18", - "tokio", - "tokio-util", - "tracing", - "url", - "uuid", - "walkdir", - "xet-client", - "xet-core-structures", - "xet-runtime", -] - -[[package]] -name = "xet-runtime" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d8f121c33866f7648b737abe70d0e2dd9c0af4ffdd7219207531d0283aa63d" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "chrono", - "colored", - "const-str", - "ctor 0.6.3", - "dirs", - "futures", - "git-version", - "humantime", - "konst", - "lazy_static", - "libc", - "more-asserts", - "oneshot", - "pin-project", - "rand 0.10.1", - "reqwest 0.13.4", - "serde", - "serde_json", - "shellexpand", - "sysinfo", - "thiserror 2.0.18", - "tokio", - "tokio-util", - "tracing", - "tracing-appender", - "tracing-subscriber", - "whoami", - "winapi", + "rustix", ] [[package]] @@ -12231,21 +7883,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" -[[package]] -name = "xml-rs" -version = "0.8.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" - -[[package]] -name = "xmltree" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" -dependencies = [ - "xml-rs", -] - [[package]] name = "yoke" version = "0.8.3" @@ -12269,38 +7906,6 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zbus" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" -dependencies = [ - "async-broadcast", - "async-process", - "async-recursion", - "async-trait", - "enumflags2", - "event-listener", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix 0.29.0", - "ordered-stream", - "rand 0.8.6", - "serde", - "serde_repr", - "sha1 0.10.6", - "static_assertions", - "tracing", - "uds_windows", - "windows-sys 0.52.0", - "xdg-home", - "zbus_macros 4.4.0", - "zbus_names 3.0.0", - "zvariant 4.2.0", -] - [[package]] name = "zbus" version = "5.16.0" @@ -12323,7 +7928,7 @@ dependencies = [ "hex", "libc", "ordered-stream", - "rustix 1.1.4", + "rustix", "serde", "serde_repr", "tracing", @@ -12331,22 +7936,9 @@ dependencies = [ "uuid", "windows-sys 0.61.2", "winnow 1.0.3", - "zbus_macros 5.16.0", - "zbus_names 4.3.2", - "zvariant 5.12.0", -] - -[[package]] -name = "zbus_macros" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" -dependencies = [ - "proc-macro-crate 3.5.0", - "proc-macro2", - "quote", - "syn 2.0.118", - "zvariant_utils 2.1.0", + "zbus_macros", + "zbus_names", + "zvariant", ] [[package]] @@ -12359,20 +7951,9 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.118", - "zbus_names 4.3.2", - "zvariant 5.12.0", - "zvariant_utils 3.4.0", -] - -[[package]] -name = "zbus_names" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" -dependencies = [ - "serde", - "static_assertions", - "zvariant 4.2.0", + "zbus_names", + "zvariant", + "zvariant_utils", ] [[package]] @@ -12383,7 +7964,7 @@ checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" dependencies = [ "serde", "winnow 1.0.3", - "zvariant 5.12.0", + "zvariant", ] [[package]] @@ -12480,23 +8061,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "zip" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" -dependencies = [ - "arbitrary", - "crc32fast", - "crossbeam-utils", - "displaydoc", - "flate2", - "indexmap 2.14.0", - "memchr", - "thiserror 2.0.18", - "zopfli", -] - [[package]] name = "zip" version = "4.6.1" @@ -12515,7 +8079,7 @@ version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ - "aes 0.9.1", + "aes", "bzip2 0.6.1", "constant_time_eq", "crc32fast", @@ -12588,19 +8152,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "zvariant" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" -dependencies = [ - "endi", - "enumflags2", - "serde", - "static_assertions", - "zvariant_derive 4.2.0", -] - [[package]] name = "zvariant" version = "5.12.0" @@ -12611,21 +8162,8 @@ dependencies = [ "enumflags2", "serde", "winnow 1.0.3", - "zvariant_derive 5.12.0", - "zvariant_utils 3.4.0", -] - -[[package]] -name = "zvariant_derive" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" -dependencies = [ - "proc-macro-crate 3.5.0", - "proc-macro2", - "quote", - "syn 2.0.118", - "zvariant_utils 2.1.0", + "zvariant_derive", + "zvariant_utils", ] [[package]] @@ -12638,18 +8176,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.118", - "zvariant_utils 3.4.0", -] - -[[package]] -name = "zvariant_utils" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.118", + "zvariant_utils", ] [[package]] diff --git a/desktop/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml index f22ac280c3..e4d95fd043 100644 --- a/desktop/src-tauri/Cargo.toml +++ b/desktop/src-tauri/Cargo.toml @@ -18,7 +18,12 @@ crate-type = ["staticlib", "cdylib", "rlib"] [features] default = ["system-keyring"] -mesh-llm = ["dep:mesh-llm-sdk", "dep:mesh-llm-host-runtime"] +# Mesh compute UI + node management. The mesh-llm node itself is NOT +# compiled in (that cost ~52 MB) — it is downloaded on first use as a +# checksum-verified release binary and run as a supervised child process +# (see mesh_llm/node_install.rs). This feature is therefore only a few KB +# of client code and stays cheap to enable everywhere. +mesh-llm = [] # OS keyring backing for desktop secret storage (nsec private keys). When # disabled, secrets fall back to 0o600 files. On by default for real builds. system-keyring = ["dep:keyring"] @@ -65,7 +70,7 @@ tauri-plugin-updater = "2" tauri-plugin-process = "2" infer = "0.19" hex = "0.4" -tokio = { version = "1", features = ["fs", "sync", "rt", "macros", "time"] } +tokio = { version = "1", features = ["fs", "sync", "rt", "macros", "time", "process"] } tokio-tungstenite = { version = "0.29", features = ["rustls-tls-webpki-roots"] } tokio-util = { version = "0.7", features = ["rt"] } bytes = "1" @@ -84,11 +89,10 @@ buzz_core_pkg = { package = "buzz-core", path = "../../crates/buzz-core" } buzz_persona_pkg = { package = "buzz-persona", path = "../../crates/buzz-persona" } buzz_sdk_pkg = { package = "buzz-sdk", path = "../../crates/buzz-sdk" } buzz_agent_pkg = { package = "buzz-agent", path = "../../crates/buzz-agent" } -mesh-llm-sdk = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "49cf03427ad86becf8dc0596b738c055d166e7e2", package = "mesh-llm-sdk", default-features = false, features = ["client", "serving"], optional = true } -mesh-llm-host-runtime = { git = "https://github.com/Mesh-LLM/mesh-llm.git", rev = "49cf03427ad86becf8dc0596b738c055d166e7e2", package = "mesh-llm-host-runtime", default-features = false, features = ["dynamic-native-runtime"], optional = true } base64 = "0.22" sha2 = "0.11" tar = "0.4" +flate2 = "1" bzip2 = "0.6" chrono = { version = "0.4", features = ["serde"] } tauri-plugin-global-shortcut = "2" diff --git a/desktop/src-tauri/src/commands/mesh_llm.rs b/desktop/src-tauri/src/commands/mesh_llm.rs index ecac205884..0f42fb9570 100644 --- a/desktop/src-tauri/src/commands/mesh_llm.rs +++ b/desktop/src-tauri/src/commands/mesh_llm.rs @@ -28,7 +28,9 @@ pub async fn mesh_start_node( return Err("mesh node is already running".to_string()); } - let started = mesh_llm::DesktopMeshRuntime::start(request) + // First use downloads the mesh-llm node binary; pass the app handle so + // install progress reaches the UI as `mesh-node-install-progress` events. + let started = mesh_llm::DesktopMeshRuntime::start_with_app(request, Some(&app)) .await .map_err(|error| error.to_string())?; let status = started @@ -438,6 +440,17 @@ pub fn mesh_agent_preset( mesh_llm::agent_preset(request) } +/// Whether the mesh-llm node binary is installed, and at which pinned +/// version. Lets the UI say "first start will download the mesh runtime +/// (~30 MB)" instead of surprising the user. +#[tauri::command] +pub fn mesh_node_install_status() -> CmdResult { + Ok(serde_json::json!({ + "installed": mesh_llm::node_installed(), + "version": mesh_llm::MESH_NODE_VERSION, + })) +} + #[cfg(all(test, feature = "mesh-llm"))] mod tests { use super::*; diff --git a/desktop/src-tauri/src/lib.rs b/desktop/src-tauri/src/lib.rs index 401d910b4c..6fa5505893 100644 --- a/desktop/src-tauri/src/lib.rs +++ b/desktop/src-tauri/src/lib.rs @@ -540,6 +540,7 @@ pub fn run() { mesh_node_status, mesh_installed_models, mesh_agent_preset, + mesh_node_install_status, update_managed_agent, discover_backend_providers, probe_backend_provider, diff --git a/desktop/src-tauri/src/mesh_llm/mod.rs b/desktop/src-tauri/src/mesh_llm/mod.rs index 6e293df57f..1a032ef3dd 100644 --- a/desktop/src-tauri/src/mesh_llm/mod.rs +++ b/desktop/src-tauri/src/mesh_llm/mod.rs @@ -13,7 +13,12 @@ use discovery::{device_name_from_status, endpoint_id_from_status, enrich_status_ mod preset; pub use preset::{agent_preset, MeshAgentPreset, MeshAgentPresetRequest}; -use mesh_llm_sdk::{client, serve, EmbeddedNodeHandle, MeshDiscoveryMode}; +mod node_install; +pub use node_install::{ensure_node_installed, node_installed, MESH_NODE_VERSION}; + +pub(crate) mod node_process; +use node_process::{NodeProcess, NodeSpawnConfig, NodeStatus}; + use serde::{Deserialize, Serialize}; const DEFAULT_MESH_API_PORT: u16 = 9337; @@ -197,83 +202,52 @@ pub fn stopped_status() -> MeshNodeStatus { } pub struct DesktopMeshRuntime { - handle: EmbeddedNodeHandle, + /// The spawned node plus the config it was spawned with. Interior + /// mutability because `dial_endpoint_addr` joins a mesh by respawning + /// the node with an extra `--join` token (the standalone node has no + /// join-at-runtime management endpoint yet) while callers hold `&self`. + node: tokio::sync::Mutex<(NodeProcess, NodeSpawnConfig)>, mode: MeshNodeMode, model_id: Option, model_name: Option, } -async fn initialize_mesh_native_runtime() -> anyhow::Result<()> { - let cache = mesh_llm_sdk::native_runtime::native_runtime_cache(None)?; - let installed = cache.installed()?; - let current = mesh_llm_sdk::native_runtime::CURRENT_MESH_VERSION; - if !installed - .iter() - .any(|runtime| runtime.mesh_version == current) - { - anyhow::bail!( - "mesh native runtime for MeshLLM {current} is not installed; run `just mesh=1 staging` or `just mesh-e2e-hardware` to prepare it" - ); - } - // initialize_host_runtime became async upstream (mesh-llm #900s series). - mesh_llm_host_runtime::initialize_host_runtime() - .await - .map_err(|error| { - anyhow::anyhow!( - "mesh native runtime failed to load; run `just mesh=1 staging` or `just mesh-e2e-hardware` to repair it: {error}" - ) - }) -} - impl DesktopMeshRuntime { pub async fn start(request: StartMeshNodeRequest) -> anyhow::Result { + Self::start_with_app(request, None).await + } + + /// Start the node, downloading the mesh-llm binary first if this is the + /// first use (progress emitted as app events when `app` is provided). + pub async fn start_with_app( + request: StartMeshNodeRequest, + app: Option<&tauri::AppHandle>, + ) -> anyhow::Result { validate_no_leak_request(&request)?; - initialize_mesh_native_runtime().await?; + let binary = ensure_node_installed(app) + .await + .map_err(|error| anyhow::anyhow!("mesh node install failed: {error}"))?; let model_id = request .model_id .clone() .filter(|value| !value.trim().is_empty()); let model_name = model_id.clone(); - let handle = match request.mode { - MeshNodeMode::Serve => { - let model = model_id - .clone() - .ok_or_else(|| anyhow::anyhow!("modelId is required for serve mode"))?; - let mut builder = serve::EmbeddedServeConfig::builder() - .model(model) - .api_port(mesh_api_port()?) - .console_port(mesh_console_port()?) - .publish(false) - .auto_join(false) - .disable_iroh_relays(true) - .discovery_mode(MeshDiscoveryMode::Nostr) - .console_ui(true); - if let Some(max_vram_gb) = request.max_vram_gb { - builder = builder.max_vram_gb(max_vram_gb as f64); - } - if let Some(join_token) = request.join_token.as_deref() { - builder = builder.join_token(join_token); - } - serve::start(builder.build()).await? - } - MeshNodeMode::Client => { - let mut builder = client::EmbeddedClientConfig::builder() - .api_port(mesh_api_port()?) - .console_port(mesh_console_port()?) - .publish(false) - .auto_join(false) - .disable_iroh_relays(true) - .discovery_mode(MeshDiscoveryMode::Nostr) - .console_ui(true); - if let Some(join_token) = request.join_token.as_deref() { - builder = builder.join_token(join_token); - } - client::start(builder.build()).await? - } + if matches!(request.mode, MeshNodeMode::Serve) && model_id.is_none() { + anyhow::bail!("modelId is required for serve mode"); + } + let config = NodeSpawnConfig { + binary, + serve: matches!(request.mode, MeshNodeMode::Serve), + model: model_id.clone(), + api_port: mesh_api_port()?, + console_port: mesh_console_port()?, + max_vram_gb: request.max_vram_gb.map(|v| v as f64), + join_tokens: request.join_token.clone().into_iter().collect(), }; + let node = NodeProcess::spawn(config.clone()).await?; Ok(Self { - handle, + node: tokio::sync::Mutex::new((node, config)), mode: request.mode, model_id, model_name, @@ -281,30 +255,48 @@ impl DesktopMeshRuntime { } pub async fn status(&self) -> anyhow::Result { - let status = self.handle.status().await?; - self.status_from_sdk(status) + let status = self.node.lock().await.0.status().await?; + self.status_from_node(status) } pub async fn status_report_payload(&self) -> anyhow::Result { - let status = self.handle.status().await?; + let status = self.node.lock().await.0.status().await?; let mut payload = status.payload; enrich_status_payload_identity(&mut payload, status.invite_token.as_deref()); Ok(payload) } + /// Join a mesh at `endpoint_addr` (invite token). + /// + /// The standalone node accepts join tokens only at startup (`--join`); + /// there is no join-at-runtime management endpoint yet (upstream + /// candidate: `POST /api/join`). A repeated token is a no-op fast path; + /// a new token respawns the node with the token appended — model state + /// is preserved because serve mode reloads its configured model and + /// client mode has none. pub async fn dial_endpoint_addr(&self, endpoint_addr: impl Into) -> anyhow::Result<()> { - self.handle.join_token(endpoint_addr).await + let token = endpoint_addr.into(); + let mut guard = self.node.lock().await; + if guard.1.join_tokens.iter().any(|t| t == &token) { + return Ok(()); + } + let mut config = guard.1.clone(); + config.join_tokens.push(token); + // Stop the old node first — same ports — then spawn with the new + // token. On spawn failure the lock is released with the node gone; + // callers see the error and the next start recreates it. + guard.0.take_stop().await.ok(); + let node = NodeProcess::spawn(config.clone()).await?; + *guard = (node, config); + Ok(()) } pub async fn installed_models(&self) -> anyhow::Result> { - let status = self.handle.status().await?; + let status = self.node.lock().await.0.status().await?; Ok(models_from_status_payload(Some(&status.payload))) } - fn status_from_sdk( - &self, - status: mesh_llm_sdk::EmbeddedNodeStatus, - ) -> anyhow::Result { + fn status_from_node(&self, status: NodeStatus) -> anyhow::Result { let health = health_from_payload(&status.payload); let endpoint_id = endpoint_id_from_status(&status.payload, status.invite_token.as_deref()); let device_name = device_name_from_status(&status.payload, endpoint_id.as_deref()); @@ -329,7 +321,7 @@ impl DesktopMeshRuntime { } pub async fn stop(self) -> anyhow::Result<()> { - self.handle.stop().await + self.node.into_inner().0.stop().await } } diff --git a/desktop/src-tauri/src/mesh_llm/node_install.rs b/desktop/src-tauri/src/mesh_llm/node_install.rs new file mode 100644 index 0000000000..5380c53945 --- /dev/null +++ b/desktop/src-tauri/src/mesh_llm/node_install.rs @@ -0,0 +1,336 @@ +//! Download-on-first-use install of the `mesh-llm` node binary. +//! +//! Buzz does not compile the mesh node in (that costs ~52 MB of binary); +//! instead the official release artifact is fetched the first time a user +//! starts a mesh node, sha256-verified against the published sidecar +//! checksum, and cached under Buzz's data dir. This mirrors how mesh-llm +//! itself treats its native inference runtime (versioned tarball + checksum +//! + cache) and how Buzz treats models: pay for the capability when you use +//! it, not in the app download. +//! +//! The binary additionally carries an ed25519 release attestation that the +//! node self-verifies and reports via `/api/status` (`release_attestation`), +//! which the runtime layer surfaces after spawn. + +use std::path::PathBuf; + +use serde::Serialize; +use sha2::Digest as _; +use tauri::Emitter as _; + +/// Pinned mesh-llm release. Bump deliberately (with the flag/API surface +/// re-checked) rather than tracking "latest" — the spawn flags and +/// management API below are validated against this version. +pub const MESH_NODE_VERSION: &str = "v0.72.2"; + +const RELEASE_BASE: &str = "https://github.com/Mesh-LLM/mesh-llm/releases/download"; + +/// Tauri event emitted with download progress so the UI can show +/// "downloading mesh runtime…" the same way model downloads do. +pub const INSTALL_PROGRESS_EVENT: &str = "mesh-node-install-progress"; + +#[derive(Debug, Clone, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct NodeInstallProgress { + pub version: String, + pub downloaded_bytes: u64, + pub total_bytes: Option, + pub phase: &'static str, +} + +/// Release asset name for the current platform, or an explanation of why the +/// platform is unsupported. +fn release_asset() -> Result<&'static str, String> { + match (std::env::consts::OS, std::env::consts::ARCH) { + ("macos", "aarch64") => Ok("mesh-llm-aarch64-apple-darwin.tar.gz"), + ("linux", "x86_64") => Ok("mesh-llm-x86_64-unknown-linux-gnu.tar.gz"), + ("linux", "aarch64") => Ok("mesh-llm-aarch64-unknown-linux-gnu.tar.gz"), + ("windows", "x86_64") => Ok("mesh-llm-x86_64-pc-windows-msvc.zip"), + (os, arch) => Err(format!( + "mesh-llm has no release build for {os}/{arch}; see https://github.com/Mesh-LLM/mesh-llm/releases" + )), + } +} + +fn node_binary_name() -> &'static str { + if cfg!(windows) { + "mesh-llm.exe" + } else { + "mesh-llm" + } +} + +/// Versioned cache directory for the node binary. +pub fn node_install_dir() -> Result { + let base = dirs::data_dir().ok_or("no platform data dir available")?; + Ok(base.join("buzz").join("mesh-node").join(MESH_NODE_VERSION)) +} + +/// Path the installed node binary is expected at (may not exist yet). +pub fn installed_node_path() -> Result { + Ok(node_install_dir()?.join(node_binary_name())) +} + +/// True if the pinned node version is already installed. +pub fn node_installed() -> bool { + installed_node_path().map(|p| p.is_file()).unwrap_or(false) +} + +/// Ensure the pinned mesh-llm node binary is installed, downloading and +/// verifying it if needed. Returns the binary path. Progress is emitted as +/// [`INSTALL_PROGRESS_EVENT`] app events when an `AppHandle` is provided. +pub async fn ensure_node_installed(app: Option<&tauri::AppHandle>) -> Result { + let path = installed_node_path()?; + if path.is_file() { + return Ok(path); + } + + let asset = release_asset()?; + let url = format!("{RELEASE_BASE}/{MESH_NODE_VERSION}/{asset}"); + let checksum_url = format!("{url}.sha256"); + + let client = reqwest::Client::new(); + + // Published checksum first — fail before the big download if missing. + let checksum_body = client + .get(&checksum_url) + .send() + .await + .map_err(|e| format!("mesh node checksum fetch failed: {e}"))? + .error_for_status() + .map_err(|e| format!("mesh node checksum fetch failed: {e}"))? + .text() + .await + .map_err(|e| format!("mesh node checksum read failed: {e}"))?; + let expected_sha = checksum_body + .split_whitespace() + .next() + .filter(|s| s.len() == 64) + .ok_or("mesh node checksum sidecar is malformed")? + .to_ascii_lowercase(); + + // Stream the archive to a temp file next to the final location (same + // filesystem → atomic-ish rename), hashing as we go. + let dir = node_install_dir()?; + tokio::fs::create_dir_all(&dir) + .await + .map_err(|e| format!("mesh node cache dir create failed: {e}"))?; + let archive_path = dir.join(format!("{asset}.partial")); + + let response = client + .get(&url) + .send() + .await + .map_err(|e| format!("mesh node download failed: {e}"))? + .error_for_status() + .map_err(|e| format!("mesh node download failed: {e}"))?; + let total_bytes = response.content_length(); + + let mut hasher = sha2::Sha256::new(); + let mut downloaded: u64 = 0; + let mut last_emit: u64 = 0; + { + let mut file = tokio::fs::File::create(&archive_path) + .await + .map_err(|e| format!("mesh node archive create failed: {e}"))?; + let mut stream = response.bytes_stream(); + use futures_util::StreamExt as _; + use tokio::io::AsyncWriteExt as _; + while let Some(chunk) = stream.next().await { + let chunk = chunk.map_err(|e| format!("mesh node download failed: {e}"))?; + hasher.update(&chunk); + downloaded += chunk.len() as u64; + file.write_all(&chunk) + .await + .map_err(|e| format!("mesh node archive write failed: {e}"))?; + // Emit at most every 2 MB so the event stream stays light. + if downloaded - last_emit >= 2 * 1024 * 1024 { + last_emit = downloaded; + emit_progress(app, downloaded, total_bytes, "downloading"); + } + } + file.flush() + .await + .map_err(|e| format!("mesh node archive flush failed: {e}"))?; + } + + let actual_sha = hex::encode(hasher.finalize()); + if actual_sha != expected_sha { + let _ = tokio::fs::remove_file(&archive_path).await; + return Err(format!( + "mesh node download checksum mismatch (expected {expected_sha}, got {actual_sha})" + )); + } + emit_progress(app, downloaded, total_bytes, "extracting"); + + // Extract on a blocking thread (tar/zip are sync APIs). + let archive_for_extract = archive_path.clone(); + let dir_for_extract = dir.clone(); + let is_zip = asset.ends_with(".zip"); + tokio::task::spawn_blocking(move || { + extract_node_binary(&archive_for_extract, &dir_for_extract, is_zip) + }) + .await + .map_err(|e| format!("mesh node extract task failed: {e}"))??; + + let _ = tokio::fs::remove_file(&archive_path).await; + if !path.is_file() { + return Err("mesh node archive did not contain the mesh-llm binary".to_string()); + } + emit_progress(app, downloaded, total_bytes, "installed"); + Ok(path) +} + +fn emit_progress( + app: Option<&tauri::AppHandle>, + downloaded_bytes: u64, + total_bytes: Option, + phase: &'static str, +) { + if let Some(app) = app { + let _ = app.emit( + INSTALL_PROGRESS_EVENT, + NodeInstallProgress { + version: MESH_NODE_VERSION.to_string(), + downloaded_bytes, + total_bytes, + phase, + }, + ); + } +} + +/// Pull the `mesh-llm` binary (searched by basename, whatever directory +/// layout the archive uses) out of the downloaded archive into `dir`. +fn extract_node_binary( + archive: &std::path::Path, + dir: &std::path::Path, + is_zip: bool, +) -> Result<(), String> { + let wanted = node_binary_name(); + let dest = dir.join(wanted); + if is_zip { + let file = std::fs::File::open(archive).map_err(|e| format!("archive open failed: {e}"))?; + let mut zip = + zip::ZipArchive::new(file).map_err(|e| format!("zip archive read failed: {e}"))?; + for index in 0..zip.len() { + let mut entry = zip + .by_index(index) + .map_err(|e| format!("zip entry read failed: {e}"))?; + let matches = entry + .enclosed_name() + .and_then(|p| p.file_name().map(|n| n == wanted)) + .unwrap_or(false); + if matches { + let mut out = std::fs::File::create(&dest) + .map_err(|e| format!("binary write failed: {e}"))?; + std::io::copy(&mut entry, &mut out) + .map_err(|e| format!("binary write failed: {e}"))?; + return Ok(()); + } + } + Err("mesh-llm binary not found in zip archive".to_string()) + } else { + let file = std::fs::File::open(archive).map_err(|e| format!("archive open failed: {e}"))?; + let gz = flate2::read::GzDecoder::new(file); + let mut tar = tar::Archive::new(gz); + for entry in tar + .entries() + .map_err(|e| format!("tar archive read failed: {e}"))? + { + let mut entry = entry.map_err(|e| format!("tar entry read failed: {e}"))?; + let matches = entry + .path() + .ok() + .and_then(|p| p.file_name().map(|n| n == wanted)) + .unwrap_or(false); + if matches { + entry + .unpack(&dest) + .map_err(|e| format!("binary unpack failed: {e}"))?; + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt as _; + std::fs::set_permissions(&dest, std::fs::Permissions::from_mode(0o755)) + .map_err(|e| format!("binary chmod failed: {e}"))?; + } + return Ok(()); + } + } + Err("mesh-llm binary not found in tar archive".to_string()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn release_asset_known_for_this_platform() { + // The dev platforms Buzz builds on must all be mapped. + release_asset().expect("current platform should have a mesh-llm release asset"); + } + + #[test] + fn install_dir_is_versioned() { + let dir = node_install_dir().expect("data dir"); + assert!(dir.ends_with(std::path::Path::new("mesh-node").join(MESH_NODE_VERSION))); + } + + /// Full first-use flow: download the pinned release, verify the + /// checksum, extract, spawn a client node, drive its management and + /// OpenAI APIs, and stop it. Network + ~30 MB download; run with + /// `cargo test --features mesh-llm -- --ignored mesh_node_e2e`. + #[tokio::test(flavor = "multi_thread")] + #[ignore = "downloads the mesh-llm release binary; network-dependent"] + async fn mesh_node_e2e_download_spawn_openai_surface() { + let binary = ensure_node_installed(None).await.expect("install"); + assert!(binary.is_file()); + assert!(node_installed()); + + // Second call is a cache hit (no re-download): must return fast. + let started = std::time::Instant::now(); + ensure_node_installed(None).await.expect("cache hit"); + assert!(started.elapsed() < std::time::Duration::from_secs(2)); + + let node = crate::mesh_llm::node_process::NodeProcess::spawn( + crate::mesh_llm::node_process::NodeSpawnConfig { + binary, + serve: false, + model: None, + api_port: 29337, + console_port: 23131, + max_vram_gb: None, + join_tokens: Vec::new(), + }, + ) + .await + .expect("spawn client node"); + + let status = node.status().await.expect("status"); + assert_eq!( + status.payload.get("node_state").and_then(|v| v.as_str()), + Some("client") + ); + assert!(status.invite_token.is_some(), "invite token published"); + // Release attestation is self-verified by the node. + assert_eq!( + status + .payload + .pointer("/release_attestation/verified") + .and_then(serde_json::Value::as_bool), + Some(true) + ); + + // OpenAI-compatible surface answers. + let models: serde_json::Value = reqwest::get(format!("{}/models", node.api_base_url())) + .await + .expect("GET /v1/models") + .json() + .await + .expect("models json"); + assert_eq!(models.get("object").and_then(|v| v.as_str()), Some("list")); + + node.stop().await.expect("stop"); + } +} diff --git a/desktop/src-tauri/src/mesh_llm/node_process.rs b/desktop/src-tauri/src/mesh_llm/node_process.rs new file mode 100644 index 0000000000..0106dc67fb --- /dev/null +++ b/desktop/src-tauri/src/mesh_llm/node_process.rs @@ -0,0 +1,171 @@ +//! Spawned mesh-llm node process + management-API client. +//! +//! Replaces the in-process `mesh_llm_sdk::serve/client::start()` embedding +//! (which statically linked the whole node, ~52 MB) with the same pattern +//! Buzz uses for every other capability binary: a supervised child process +//! driven over its local HTTP surface. The SDK's own embedded handle already +//! spoke HTTP to itself (`GET {console}/api/status`), so this changes where +//! the node lives, not how it is driven: +//! +//! - inference: http://127.0.0.1:{api_port}/v1 (OpenAI-compatible) +//! - management: http://127.0.0.1:{console_port}/api/status +//! +//! Admission/coordination is mesh-native and unchanged: the node does its +//! own Nostr discovery, invite-token admission, and iroh transport exactly +//! as `mesh-llm serve/client` does standalone. + +use std::path::PathBuf; +use std::process::Stdio; +use std::time::Duration; + +use tokio::process::{Child, Command}; + +/// One spawned mesh-llm node. +pub struct NodeProcess { + child: Child, + api_port: u16, + console_port: u16, +} + +/// Mirror of the SDK's `EmbeddedNodeStatus`: raw status payload plus the +/// derived fields callers use. +pub struct NodeStatus { + pub api_base_url: String, + pub console_url: String, + pub invite_token: Option, + pub payload: serde_json::Value, +} + +#[derive(Clone)] +pub struct NodeSpawnConfig { + pub binary: PathBuf, + /// `serve` (share a model) or `client` (consume only). + pub serve: bool, + pub model: Option, + pub api_port: u16, + pub console_port: u16, + pub max_vram_gb: Option, + pub join_tokens: Vec, +} + +impl NodeProcess { + /// Spawn the node and wait for its management API to come up. + pub async fn spawn(config: NodeSpawnConfig) -> anyhow::Result { + let mut cmd = Command::new(&config.binary); + cmd.arg(if config.serve { "serve" } else { "client" }); + if let Some(model) = config.model.as_deref() { + cmd.arg("--model").arg(model); + } + cmd.arg("--port").arg(config.api_port.to_string()); + cmd.arg("--console").arg(config.console_port.to_string()); + // Headless: management API without the web console UI. Private by + // default (no --publish): joinable only via invite token, matching + // the embedded config (`publish(false)`, `auto_join(false)`). + cmd.arg("--headless"); + cmd.arg("--disable-iroh-relays"); + cmd.arg("--mesh-discovery-mode").arg("nostr"); + cmd.arg("--log-format").arg("json"); + if let Some(max_vram) = config.max_vram_gb { + cmd.arg("--max-vram").arg(max_vram.to_string()); + } + for token in &config.join_tokens { + cmd.arg("--join").arg(token); + } + cmd.stdin(Stdio::null()) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .kill_on_drop(true); + #[cfg(unix)] + { + // Own process group so teardown can signal the whole tree. + cmd.process_group(0); + } + + let child = cmd + .spawn() + .map_err(|e| anyhow::anyhow!("mesh-llm node spawn failed: {e}"))?; + + let node = Self { + child, + api_port: config.api_port, + console_port: config.console_port, + }; + node.wait_ready(Duration::from_secs(60)).await?; + Ok(node) + } + + pub fn api_base_url(&self) -> String { + format!("http://127.0.0.1:{}/v1", self.api_port) + } + + pub fn console_url(&self) -> String { + format!("http://127.0.0.1:{}", self.console_port) + } + + async fn wait_ready(&self, timeout: Duration) -> anyhow::Result<()> { + let deadline = tokio::time::Instant::now() + timeout; + let url = format!("{}/api/status", self.console_url()); + loop { + if tokio::time::Instant::now() >= deadline { + anyhow::bail!("mesh-llm node did not become ready within {timeout:?}"); + } + if let Ok(response) = reqwest::get(&url).await { + if response.status().is_success() { + return Ok(()); + } + } + tokio::time::sleep(Duration::from_millis(500)).await; + } + } + + /// Fetch node status from the management API. + pub async fn status(&self) -> anyhow::Result { + let url = format!("{}/api/status", self.console_url()); + let payload: serde_json::Value = reqwest::get(&url) + .await + .map_err(|e| anyhow::anyhow!("mesh node status fetch failed: {e}"))? + .error_for_status() + .map_err(|e| anyhow::anyhow!("mesh node status fetch failed: {e}"))? + .json() + .await + .map_err(|e| anyhow::anyhow!("mesh node status parse failed: {e}"))?; + let invite_token = payload + .get("token") + .and_then(serde_json::Value::as_str) + .map(ToString::to_string); + Ok(NodeStatus { + api_base_url: self.api_base_url(), + console_url: self.console_url(), + invite_token, + payload, + }) + } + + /// Stop the node process (consuming form). + pub async fn stop(mut self) -> anyhow::Result<()> { + self.take_stop().await + } + + /// Stop the node process in place (for callers that only have `&mut`, + /// e.g. replacing the node behind a mutex). Safe to call twice. + pub async fn take_stop(&mut self) -> anyhow::Result<()> { + #[cfg(unix)] + { + // Graceful first: SIGTERM the process group, then escalate. + if let Some(pid) = self.child.id() { + unsafe { + libc::kill(-(pid as i32), libc::SIGTERM); + } + let grace = tokio::time::timeout(Duration::from_secs(5), self.child.wait()).await; + if grace.is_ok() { + return Ok(()); + } + } + } + self.child + .kill() + .await + .map_err(|e| anyhow::anyhow!("mesh node kill failed: {e}"))?; + Ok(()) + } +} diff --git a/desktop/src-tauri/src/mesh_llm_stubs.rs b/desktop/src-tauri/src/mesh_llm_stubs.rs index 318be3c583..14ba33c1fb 100644 --- a/desktop/src-tauri/src/mesh_llm_stubs.rs +++ b/desktop/src-tauri/src/mesh_llm_stubs.rs @@ -55,6 +55,11 @@ pub async fn mesh_installed_models( Err("mesh-llm feature not enabled".to_string()) } +#[tauri::command] +pub fn mesh_node_install_status() -> CmdResult { + Err("mesh-llm feature not enabled".to_string()) +} + #[tauri::command] pub fn mesh_agent_preset(_request: serde_json::Value) -> CmdResult { Err("mesh-llm feature not enabled".to_string()) From ce4e1503f7e441455d76bf0ab3e73669f56ea8e9 Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Tue, 7 Jul 2026 05:10:00 -0700 Subject: [PATCH 3/5] feat(mesh): membership-gated admission via mesh's ownership trust layer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Buzz decides membership; mesh enforces it — the idiomatic split: - Every Buzz-managed node gets an auto-initialized mesh owner identity (mesh-llm auth init, cached at mesh-node/owner.key) and runs with --owner-key --owner-required --trust-policy allowlist. - The relay's kind:30621 sanitizer now carries the reporter's VERIFIED owner id (unverified claims are dropped), so the membership-gated status pipeline doubles as the trust-allowlist distribution channel. - Desktops build --trust-owner lists from those events at node start (trusted_owner_ids_from_events); own owner id always included. - Invite tokens remain dial metadata only. Proven by an ignored 3-node e2e (mesh_trust_allowlist_admits_member_rejects_stranger): a peer with an allowlisted owner is admitted; a stranger holding the SAME valid invite token never enters the peer table. - mesh-llm added to KNOWN_AGENT_BINARIES and the node stamped with BUZZ_MANAGED_AGENT, so the orphan sweep reclaims crash leftovers without touching user-run standalone mesh-llm processes. - Public iroh relays stay disabled (v1 posture): reachability continues to flow through the relay's membership-validated call-me-now pairing. --- .../buzz-relay/src/mesh_status_publisher.rs | 20 ++ desktop/src-tauri/src/commands/mesh_llm.rs | 23 ++- .../src-tauri/src/managed_agents/runtime.rs | 6 + desktop/src-tauri/src/mesh_llm/discovery.rs | 27 +++ desktop/src-tauri/src/mesh_llm/mod.rs | 24 ++- .../src-tauri/src/mesh_llm/node_install.rs | 185 ++++++++++++++++++ .../src-tauri/src/mesh_llm/node_process.rs | 29 +++ .../src-tauri/src/mesh_llm/owner_identity.rs | 125 ++++++++++++ 8 files changed, 437 insertions(+), 2 deletions(-) create mode 100644 desktop/src-tauri/src/mesh_llm/owner_identity.rs diff --git a/crates/buzz-relay/src/mesh_status_publisher.rs b/crates/buzz-relay/src/mesh_status_publisher.rs index 4285e72211..c982489877 100644 --- a/crates/buzz-relay/src/mesh_status_publisher.rs +++ b/crates/buzz-relay/src/mesh_status_publisher.rs @@ -62,6 +62,14 @@ pub struct BuzzMeshStatus { pub models: Vec, /// Aggregate peer count from mesh status. pub peer_count: usize, + /// Reporting node's verified mesh owner ID (`owner.owner_id` from mesh + /// status, only when `owner.verified`). Members read these to build the + /// mesh trust allowlist (`--trust-policy allowlist --trust-owner …`), so + /// mesh's own ownership layer enforces "Buzz members only" at gossip. + /// Public data (it appears in signed ownership certificates peers + /// exchange anyway); membership-gated like the rest of this event. + #[serde(skip_serializing_if = "Option::is_none")] + pub owner_id: Option, } /// Model value + display label. `id` is the API/routing value; `name` is UI-only. @@ -109,6 +117,17 @@ pub fn sanitize_mesh_status(payload: &Value, now_unix: u64) -> BuzzMeshStatus { let node_id = string_field(payload, "node_id"); let mesh_id = string_field(payload, "mesh_id"); let mesh_name = string_field(payload, "mesh_name"); + // Owner ID only when the node's own attestation verified — an unverified + // claim must not enter members' trust allowlists. + let owner_id = payload + .get("owner") + .filter(|owner| { + owner + .get("verified") + .and_then(Value::as_bool) + .unwrap_or(false) + }) + .and_then(|owner| string_field(owner, "owner_id")); let my_vram_gb = payload.get("my_vram_gb").and_then(Value::as_f64); let mut models = Vec::::new(); @@ -186,6 +205,7 @@ pub fn sanitize_mesh_status(payload: &Value, now_unix: u64) -> BuzzMeshStatus { serve_targets, models, peer_count: peers.len(), + owner_id, } } diff --git a/desktop/src-tauri/src/commands/mesh_llm.rs b/desktop/src-tauri/src/commands/mesh_llm.rs index 0f42fb9570..324fcab7ff 100644 --- a/desktop/src-tauri/src/commands/mesh_llm.rs +++ b/desktop/src-tauri/src/commands/mesh_llm.rs @@ -7,6 +7,20 @@ const RELAY_MESH_RUNTIME_NO_TARGET: &str = pub type CmdResult = Result; +/// Fetch community members' verified mesh owner IDs from the relay's +/// membership-gated kind:30621 events. This is the mesh trust allowlist: +/// Buzz decides membership, mesh enforces it at gossip via +/// `--trust-policy allowlist`. Best-effort empty on relay errors — the node +/// still trusts itself, and a later restart picks up the full list; an +/// unreachable relay also means no fresh dial pointers, so nothing admits +/// strangers in the interim. +async fn trusted_owner_ids(state: &AppState) -> Vec { + match relay::query_relay(state, &[mesh_llm::mesh_status_filter()]).await { + Ok(events) => mesh_llm::trusted_owner_ids_from_events(&events), + Err(_) => Vec::new(), + } +} + #[tauri::command] pub async fn mesh_availability( state: State<'_, AppState>, @@ -21,8 +35,12 @@ pub async fn mesh_availability( pub async fn mesh_start_node( app: AppHandle, state: State<'_, AppState>, - request: mesh_llm::StartMeshNodeRequest, + mut request: mesh_llm::StartMeshNodeRequest, ) -> CmdResult { + // Trust allowlist from membership-gated status events, resolved before + // taking the runtime lock (relay round-trip). + request.trusted_owner_ids = trusted_owner_ids(&state).await; + let mut runtime = state.mesh_llm_runtime.lock().await; if runtime.is_some() { return Err("mesh node is already running".to_string()); @@ -145,6 +163,7 @@ pub(crate) async fn ensure_client_node_for_model_dial_only( model_id: None, max_vram_gb: None, join_token: Some(addr.to_string()), + trusted_owner_ids: trusted_owner_ids(state).await, }; let mut runtime = state.mesh_llm_runtime.lock().await; if runtime.is_some() { @@ -220,6 +239,7 @@ pub(crate) async fn ensure_client_node_for_model( model_id: None, max_vram_gb: None, join_token: Some(join_token), + trusted_owner_ids: trusted_owner_ids(state).await, }; let mut runtime = state.mesh_llm_runtime.lock().await; if runtime.is_some() { @@ -533,6 +553,7 @@ mod tests { model_id: Some(HOSTED_MODEL.to_string()), max_vram_gb: None, join_token: None, + trusted_owner_ids: Vec::new(), }) .await .expect("serve runtime should start"); diff --git a/desktop/src-tauri/src/managed_agents/runtime.rs b/desktop/src-tauri/src/managed_agents/runtime.rs index dbf3bc2301..e5624a0516 100644 --- a/desktop/src-tauri/src/managed_agents/runtime.rs +++ b/desktop/src-tauri/src/managed_agents/runtime.rs @@ -40,6 +40,12 @@ pub(crate) const KNOWN_AGENT_BINARIES: &[&str] = &[ // invocations — not listed here. "buzz-dev-mcp", "buzz_dev_mcp", + // Downloaded mesh compute node (mesh_llm/node_process.rs). Spawned with + // the BUZZ_MANAGED_AGENT stamp like agents, so the orphan sweep reclaims + // it after a desktop crash. A user-run standalone `mesh-llm serve` has no + // stamp and is never touched. + "mesh-llm", + "mesh_llm", ]; /// Script interpreters that may host managed agent wrappers (e.g. npm shims). diff --git a/desktop/src-tauri/src/mesh_llm/discovery.rs b/desktop/src-tauri/src/mesh_llm/discovery.rs index ad12a1bf51..5578205b13 100644 --- a/desktop/src-tauri/src/mesh_llm/discovery.rs +++ b/desktop/src-tauri/src/mesh_llm/discovery.rs @@ -99,6 +99,33 @@ pub fn availability_from_events(events: Vec) -> MeshAvailability { } } +/// Collect verified mesh owner IDs from members' kind:30621 status events. +/// +/// These events are relay-signed and readable only by community members; the +/// relay only includes `ownerId` when the reporting node's own attestation +/// verified. The result feeds `--trust-policy allowlist --trust-owner …` on +/// Buzz-spawned nodes: mesh's ownership layer then rejects any peer whose +/// verified owner is not a community member — admission enforced by mesh, +/// membership decided by Buzz. +pub fn trusted_owner_ids_from_events(events: &[nostr::Event]) -> Vec { + let mut owners: Vec = events + .iter() + .filter_map(|event| { + let content = serde_json::from_str::(&event.content).ok()?; + let owner = content + .get("ownerId") + .or_else(|| content.get("owner_id"))? + .as_str()? + .trim() + .to_ascii_lowercase(); + (owner.len() == 64 && owner.bytes().all(|b| b.is_ascii_hexdigit())).then_some(owner) + }) + .collect(); + owners.sort(); + owners.dedup(); + owners +} + pub fn mesh_status_filter() -> serde_json::Value { serde_json::json!({ "kinds": [MESH_STATUS_KIND], diff --git a/desktop/src-tauri/src/mesh_llm/mod.rs b/desktop/src-tauri/src/mesh_llm/mod.rs index 1a032ef3dd..674994b1b8 100644 --- a/desktop/src-tauri/src/mesh_llm/mod.rs +++ b/desktop/src-tauri/src/mesh_llm/mod.rs @@ -7,7 +7,7 @@ pub(crate) use coordinator::{ pub use coordinator::{spawn_listener, start_client, MeshCoordinator}; mod discovery; -pub use discovery::{availability_from_events, mesh_status_filter}; +pub use discovery::{availability_from_events, mesh_status_filter, trusted_owner_ids_from_events}; use discovery::{device_name_from_status, endpoint_id_from_status, enrich_status_payload_identity}; mod preset; @@ -19,6 +19,9 @@ pub use node_install::{ensure_node_installed, node_installed, MESH_NODE_VERSION} pub(crate) mod node_process; use node_process::{NodeProcess, NodeSpawnConfig, NodeStatus}; +pub(crate) mod owner_identity; +use owner_identity::ensure_owner_identity; + use serde::{Deserialize, Serialize}; const DEFAULT_MESH_API_PORT: u16 = 9337; @@ -155,6 +158,12 @@ pub struct StartMeshNodeRequest { pub max_vram_gb: Option, #[serde(default)] pub join_token: Option, + /// Verified owner IDs of community members' nodes, from the + /// membership-gated kind:30621 events (`trusted_owner_ids_from_events`). + /// Becomes the node's mesh trust allowlist; this node's own owner ID is + /// added automatically. + #[serde(default)] + pub trusted_owner_ids: Vec, } #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] @@ -227,6 +236,16 @@ impl DesktopMeshRuntime { let binary = ensure_node_installed(app) .await .map_err(|error| anyhow::anyhow!("mesh node install failed: {error}"))?; + // Owner identity: generated once per desktop, then reused. The node's + // trust allowlist is members' owner IDs plus our own (a single-node + // mesh must trust itself). + let (owner_key, own_owner_id) = ensure_owner_identity(&binary) + .await + .map_err(|error| anyhow::anyhow!("mesh owner identity setup failed: {error}"))?; + let mut trusted_owner_ids = request.trusted_owner_ids.clone(); + if !trusted_owner_ids.contains(&own_owner_id) { + trusted_owner_ids.push(own_owner_id); + } let model_id = request .model_id .clone() @@ -243,6 +262,9 @@ impl DesktopMeshRuntime { console_port: mesh_console_port()?, max_vram_gb: request.max_vram_gb.map(|v| v as f64), join_tokens: request.join_token.clone().into_iter().collect(), + owner_key, + trusted_owner_ids, + instance_id: app.map(|a| crate::managed_agents::current_instance_id(a)), }; let node = NodeProcess::spawn(config.clone()).await?; diff --git a/desktop/src-tauri/src/mesh_llm/node_install.rs b/desktop/src-tauri/src/mesh_llm/node_install.rs index 5380c53945..4136f31019 100644 --- a/desktop/src-tauri/src/mesh_llm/node_install.rs +++ b/desktop/src-tauri/src/mesh_llm/node_install.rs @@ -293,6 +293,15 @@ mod tests { ensure_node_installed(None).await.expect("cache hit"); assert!(started.elapsed() < std::time::Duration::from_secs(2)); + // Owner identity: first call generates, second call reuses. + let (owner_key, owner_id) = crate::mesh_llm::owner_identity::ensure_owner_identity(&binary) + .await + .expect("owner identity"); + let (_, owner_id_again) = crate::mesh_llm::owner_identity::ensure_owner_identity(&binary) + .await + .expect("owner identity reuse"); + assert_eq!(owner_id, owner_id_again, "owner identity is stable"); + let node = crate::mesh_llm::node_process::NodeProcess::spawn( crate::mesh_llm::node_process::NodeSpawnConfig { binary, @@ -302,6 +311,9 @@ mod tests { console_port: 23131, max_vram_gb: None, join_tokens: Vec::new(), + owner_key, + trusted_owner_ids: vec![owner_id.clone()], + instance_id: Some("xyz.block.buzz.app.test".to_string()), }, ) .await @@ -321,6 +333,23 @@ mod tests { .and_then(serde_json::Value::as_bool), Some(true) ); + // Node ownership attested and verified with our owner identity — + // this is what peers verify before allowlist admission. + assert_eq!( + status + .payload + .pointer("/owner/verified") + .and_then(serde_json::Value::as_bool), + Some(true), + "node ownership must verify" + ); + assert_eq!( + status + .payload + .pointer("/owner/owner_id") + .and_then(serde_json::Value::as_str), + Some(owner_id.as_str()) + ); // OpenAI-compatible surface answers. let models: serde_json::Value = reqwest::get(format!("{}/models", node.api_base_url())) @@ -333,4 +362,160 @@ mod tests { node.stop().await.expect("stop"); } + + /// Two-node admission proof for the Buzz-managed trust gate: a serving + /// node with `--trust-policy allowlist` admits a peer whose owner is + /// allowlisted and refuses to peer with one whose owner is not — even + /// though BOTH hold the same valid invite token. Invite tokens are dial + /// metadata; ownership attestation is the gate. Run manually: + /// `cargo test --features mesh-llm -- --ignored mesh_trust --nocapture` + #[tokio::test(flavor = "multi_thread")] + #[ignore = "spawns three mesh nodes; network + timing dependent"] + async fn mesh_trust_allowlist_admits_member_rejects_stranger() { + use crate::mesh_llm::node_process::{NodeProcess, NodeSpawnConfig}; + + let binary = ensure_node_installed(None).await.expect("install"); + let tmp = std::env::temp_dir().join(format!("buzz-mesh-trust-{}", std::process::id())); + tokio::fs::create_dir_all(&tmp).await.expect("tmp dir"); + + // Three distinct owner identities: host, member, stranger. + let mut keys = Vec::new(); + for name in ["host", "member", "stranger"] { + let path = tmp.join(format!("{name}.key")); + let out = tokio::process::Command::new(&binary) + .args(["auth", "init", "--no-passphrase", "--force", "--owner-key"]) + .arg(&path) + .output() + .await + .expect("auth init"); + assert!(out.status.success(), "auth init {name}"); + let out = tokio::process::Command::new(&binary) + .args(["auth", "status", "--owner-key"]) + .arg(&path) + .output() + .await + .expect("auth status"); + let text = format!( + "{}{}", + String::from_utf8_lossy(&out.stdout), + String::from_utf8_lossy(&out.stderr) + ); + let owner = crate::mesh_llm::owner_identity::test_parse_owner_id(&text) + .expect("owner id parse"); + keys.push((path, owner)); + } + let (host_key, host_owner) = keys[0].clone(); + let (member_key, member_owner) = keys[1].clone(); + let (stranger_key, _stranger_owner) = keys[2].clone(); + + let spawn = |serve: bool, + api_port: u16, + console_port: u16, + owner_key: std::path::PathBuf, + trusted: Vec, + join: Vec| { + let binary = binary.clone(); + async move { + NodeProcess::spawn(NodeSpawnConfig { + binary, + serve, + model: None, + api_port, + console_port, + max_vram_gb: None, + join_tokens: join, + owner_key, + trusted_owner_ids: trusted, + instance_id: Some("xyz.block.buzz.app.test".to_string()), + }) + .await + } + }; + + // Host: allowlist = {host, member}. Stranger's owner NOT listed. + let host = spawn( + false, + 29437, + 23231, + host_key, + vec![host_owner.clone(), member_owner.clone()], + Vec::new(), + ) + .await + .expect("host node"); + let token = host + .status() + .await + .expect("host status") + .invite_token + .expect("host invite token"); + + // Member: allowlisted owner, joins with the token → must peer. + let member = spawn( + false, + 29438, + 23232, + member_key, + vec![member_owner.clone(), host_owner.clone()], + vec![token.clone()], + ) + .await + .expect("member node"); + + // Stranger: valid token, but owner not in host's allowlist → must + // NOT be admitted as a peer. + let stranger = spawn( + false, + 29439, + 23233, + stranger_key, + Vec::new(), // trusts no one; irrelevant to host's decision + vec![token.clone()], + ) + .await + .expect("stranger node"); + + // Give gossip time to settle, then read the host's peer table. + let mut member_admitted = false; + let mut stranger_admitted = false; + for _ in 0..15 { + tokio::time::sleep(std::time::Duration::from_secs(2)).await; + let status = host.status().await.expect("host status"); + let peers = status + .payload + .get("peers") + .and_then(serde_json::Value::as_array) + .cloned() + .unwrap_or_default(); + let owner_of = |p: &serde_json::Value| { + p.pointer("/owner/owner_id") + .and_then(serde_json::Value::as_str) + .map(str::to_string) + }; + member_admitted = peers + .iter() + .any(|p| owner_of(p).as_deref() == Some(member_owner.as_str())); + stranger_admitted = peers.iter().any(|p| { + owner_of(p).as_deref() != Some(member_owner.as_str()) + && owner_of(p).as_deref() != Some(host_owner.as_str()) + }); + if member_admitted { + break; + } + } + + assert!( + member_admitted, + "allowlisted member owner must be admitted as a peer" + ); + assert!( + !stranger_admitted, + "non-allowlisted owner must NOT appear in the host's peer table" + ); + + stranger.stop().await.ok(); + member.stop().await.ok(); + host.stop().await.ok(); + tokio::fs::remove_dir_all(&tmp).await.ok(); + } } diff --git a/desktop/src-tauri/src/mesh_llm/node_process.rs b/desktop/src-tauri/src/mesh_llm/node_process.rs index 0106dc67fb..5f28e730e8 100644 --- a/desktop/src-tauri/src/mesh_llm/node_process.rs +++ b/desktop/src-tauri/src/mesh_llm/node_process.rs @@ -46,6 +46,21 @@ pub struct NodeSpawnConfig { pub console_port: u16, pub max_vram_gb: Option, pub join_tokens: Vec, + /// Owner keystore attesting this node (mesh ownership layer). Required: + /// Buzz-managed nodes always run attested so peers can admit them by + /// owner ID. + pub owner_key: PathBuf, + /// Verified owner IDs admitted at gossip (`--trust-policy allowlist`). + /// Buzz builds this from owner IDs published by community members via + /// the membership-gated kind:30621 pipeline; this node's own owner ID + /// is always included. Mesh enforces the gate cryptographically — + /// unattested peers and peers with unlisted owners are rejected even + /// if they hold a valid invite token. + pub trusted_owner_ids: Vec, + /// `BUZZ_MANAGED_AGENT` instance stamp (same scheme as managed agents) + /// so the orphan sweep can reclaim a node left behind by a crashed + /// desktop without ever touching a user's standalone mesh-llm. + pub instance_id: Option, } impl NodeProcess { @@ -71,6 +86,20 @@ impl NodeProcess { for token in &config.join_tokens { cmd.arg("--join").arg(token); } + // Ownership + trust: mesh's idiomatic admission. This node is + // attested by the Buzz-managed owner key (--owner-required makes a + // broken keystore a startup failure, not a silent downgrade), and + // only peers with verified, allowlisted owners are admitted at + // gossip. Buzz's membership is the source of the allowlist. + cmd.arg("--owner-key").arg(&config.owner_key); + cmd.arg("--owner-required"); + cmd.arg("--trust-policy").arg("allowlist"); + for owner_id in &config.trusted_owner_ids { + cmd.arg("--trust-owner").arg(owner_id); + } + if let Some(instance_id) = config.instance_id.as_deref() { + cmd.env("BUZZ_MANAGED_AGENT", instance_id); + } cmd.stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) diff --git a/desktop/src-tauri/src/mesh_llm/owner_identity.rs b/desktop/src-tauri/src/mesh_llm/owner_identity.rs new file mode 100644 index 0000000000..7acbf37760 --- /dev/null +++ b/desktop/src-tauri/src/mesh_llm/owner_identity.rs @@ -0,0 +1,125 @@ +//! Mesh owner identity for Buzz-spawned nodes. +//! +//! Mesh's idiomatic peer admission is its ownership/trust layer: each node is +//! attested by an ed25519 *owner keypair* (`mesh-llm auth init`), peers +//! exchange signed node-ownership certificates during gossip, and a node +//! running `--trust-policy allowlist` only admits peers whose verified owner +//! ID is in its trust list (`policy_accepts_peer`). Invite tokens are dial +//! metadata only — this layer is the cryptographic gate. +//! +//! Buzz is the membership authority: it knows which pubkeys are community +//! members. This module gives every Buzz-managed node a local owner identity +//! (auto-initialized once, cached under the app data dir), and the runtime +//! layer wires the trust allowlist from owner IDs that other members publish +//! through Buzz's membership-gated kind:30621 status events. Net effect: +//! only nodes owned by Buzz members are admitted into the mesh, enforced by +//! mesh itself at gossip — not just by who can reach whom. + +use std::path::PathBuf; + +use tokio::process::Command; + +/// Location of this desktop's mesh owner keystore. Lives next to the node +/// binary cache; not versioned — identity survives node upgrades. +pub fn owner_key_path() -> Result { + let base = dirs::data_dir().ok_or("no platform data dir available")?; + Ok(base.join("buzz").join("mesh-node").join("owner.key")) +} + +/// Ensure the owner keystore exists (generating it on first use) and return +/// `(keystore_path, owner_id_hex)`. +/// +/// Uses `mesh-llm auth init --no-passphrase`: the keystore protects a mesh +/// compute identity, not funds or messages; it lives in the same app-data +/// scope as Buzz's own secret files (0o600 fallback path) and must be +/// usable by an unattended spawn. +pub async fn ensure_owner_identity(binary: &std::path::Path) -> Result<(PathBuf, String), String> { + let key_path = owner_key_path()?; + if let Some(parent) = key_path.parent() { + tokio::fs::create_dir_all(parent) + .await + .map_err(|e| format!("owner key dir create failed: {e}"))?; + } + if !key_path.is_file() { + let output = Command::new(binary) + .args(["auth", "init", "--no-passphrase", "--owner-key"]) + .arg(&key_path) + .output() + .await + .map_err(|e| format!("mesh owner key init failed to run: {e}"))?; + if !output.status.success() { + return Err(format!( + "mesh owner key init failed: {}", + String::from_utf8_lossy(&output.stderr) + )); + } + } + let owner_id = owner_id_from_status(binary, &key_path).await?; + Ok((key_path, owner_id)) +} + +/// Read the owner ID out of `mesh-llm auth status`. +async fn owner_id_from_status( + binary: &std::path::Path, + key_path: &std::path::Path, +) -> Result { + let output = Command::new(binary) + .args(["auth", "status", "--owner-key"]) + .arg(key_path) + .output() + .await + .map_err(|e| format!("mesh auth status failed to run: {e}"))?; + if !output.status.success() { + return Err(format!( + "mesh auth status failed: {}", + String::from_utf8_lossy(&output.stderr) + )); + } + // mesh-llm prints human-readable auth output on stderr (stdout is + // reserved for machine formats); parse both to stay robust. + let stdout = String::from_utf8_lossy(&output.stdout); + let stderr = String::from_utf8_lossy(&output.stderr); + parse_owner_id(&stdout) + .or_else(|| parse_owner_id(&stderr)) + .ok_or_else(|| "mesh auth status did not report an owner ID".to_string()) +} + +/// Extract the owner ID from `mesh-llm auth status` output. +fn parse_owner_id(stdout: &str) -> Option { + stdout.lines().find_map(|line| { + let (label, value) = line.split_once(':')?; + if !label.trim().eq_ignore_ascii_case("owner id") { + return None; + } + let value = value.trim(); + (value.len() == 64 && value.bytes().all(|b| b.is_ascii_hexdigit())) + .then(|| value.to_ascii_lowercase()) + }) +} + +/// Test-only re-export of the parser for sibling test modules. +#[cfg(test)] +pub(crate) fn test_parse_owner_id(text: &str) -> Option { + parse_owner_id(text) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn parses_owner_id_from_auth_status_output() { + let out = "Owner keystore: /tmp/owner.key\nStatus: present\nEncrypted: no\nOwner ID: 32056F9A207C01ABF02AD6B2A095533F117A880DCA317609A666D59AB5D5BD59\nSigning key: 2ce7ac5e32f3ad4c2fd52367687b220cd65538c3a27474ed5809bcf8ea066fce\n"; + assert_eq!( + parse_owner_id(out).as_deref(), + Some("32056f9a207c01abf02ad6b2a095533f117a880dca317609a666d59ab5d5bd59") + ); + } + + #[test] + fn rejects_missing_or_malformed_owner_id() { + assert_eq!(parse_owner_id("Status: present\n"), None); + assert_eq!(parse_owner_id("Owner ID: nothex\n"), None); + assert_eq!(parse_owner_id("Owner ID: 1234\n"), None); + } +} From 96f29417ae42c3440279b4593c8f22e26b7d4033 Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Tue, 7 Jul 2026 09:04:43 -0700 Subject: [PATCH 4/5] ci(mesh): drop llama prebuild steps; split known_binaries from runtime.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The desktop no longer links mesh native code (the node is a downloaded release binary), so the mesh-llm rev resolution + llama.cpp Metal prebuild + cache steps in ci.yml/release.yml are dead weight — and were failing at the new mesh rev. The Tauri release build keeps --features mesh-llm, which is now a few KB of client code. Also split KNOWN_AGENT_BINARIES + name matchers into managed_agents/known_binaries.rs — runtime.rs was at its file-size budget and the mesh-llm sweep entry pushed it over. --- .github/workflows/ci.yml | 43 ------------- .github/workflows/release.yml | 42 ------------- Justfile | 7 ++- .../src/managed_agents/known_binaries.rs | 63 +++++++++++++++++++ .../src-tauri/src/managed_agents/runtime.rs | 61 +----------------- 5 files changed, 70 insertions(+), 146 deletions(-) create mode 100644 desktop/src-tauri/src/managed_agents/known_binaries.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f75e21c1c..1721121a6e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -904,52 +904,9 @@ jobs: touch "desktop/src-tauri/binaries/buzz-dev-mcp-$TARGET" touch "desktop/src-tauri/binaries/git-credential-nostr-$TARGET" touch "desktop/src-tauri/binaries/buzz-$TARGET" - # Mesh rev is derived from Cargo.lock so a dependency bump needs no - # lockstep edit here; the cache key tracks it automatically. - - name: Resolve mesh-llm rev - id: mesh_rev - run: | - set -euo pipefail - REV=$(grep -oE 'mesh-llm\.git\?rev=[0-9a-f]{40}' Cargo.lock | head -1 | grep -oE '[0-9a-f]{40}') - [[ -n "$REV" ]] || { echo "::error::could not resolve mesh-llm rev from Cargo.lock"; exit 1; } - echo "rev=$REV" >> "$GITHUB_OUTPUT" - echo "short=${REV:0:7}" >> "$GITHUB_OUTPUT" - - name: Restore mesh llama build cache - id: llama_cache - uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5 - with: - path: ${{ github.workspace }}/.cache/mesh-llama - key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }} - - name: Build mesh llama native libraries - if: steps.llama_cache.outputs.cache-hit != 'true' - env: - MESH_REV_SHORT: ${{ steps.mesh_rev.outputs.short }} - run: | - set -euo pipefail - cargo fetch --manifest-path desktop/src-tauri/Cargo.toml - SHORT="$MESH_REV_SHORT" - MESH_ROOT=$(find "${CARGO_HOME:-$HOME/.cargo}/git/checkouts" -path "*/$SHORT" -type d -name "$SHORT" | head -1) - if [[ -z "$MESH_ROOT" ]]; then - echo "::error::mesh-llm checkout for $SHORT not found after cargo fetch" - exit 1 - fi - export LLAMA_STAGE_BACKEND=metal - export LLAMA_STAGE_BUILD_DIR="$GITHUB_WORKSPACE/.cache/mesh-llama/build-stage-abi-metal" - export CMAKE_OSX_DEPLOYMENT_TARGET=10.15 - "$MESH_ROOT/scripts/prepare-llama.sh" pinned - "$MESH_ROOT/scripts/build-llama.sh" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 - - name: Save mesh llama build cache - if: steps.llama_cache.outputs.cache-hit != 'true' - uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5 - with: - path: ${{ github.workspace }}/.cache/mesh-llama - key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }} - name: Build Tauri app run: cd desktop && pnpm tauri build env: CMAKE_POLICY_VERSION_MINIMUM: "3.5" MACOSX_DEPLOYMENT_TARGET: "10.15" CMAKE_OSX_DEPLOYMENT_TARGET: "10.15" - LLAMA_STAGE_BACKEND: metal - LLAMA_STAGE_BUILD_DIR: ${{ github.workspace }}/.cache/mesh-llama/build-stage-abi-metal - SKIPPY_LLAMA_AUTO_BUILD: "0" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f07fde7544..38f3d0b100 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -133,45 +133,6 @@ jobs: ./scripts/bundle-sidecars.sh # Mesh rev derived from Cargo.lock (no lockstep edit on dep bump); cache key tracks it. - - name: Resolve mesh-llm rev - id: mesh_rev - run: | - set -euo pipefail - REV=$(grep -oE 'mesh-llm\.git\?rev=[0-9a-f]{40}' Cargo.lock | head -1 | grep -oE '[0-9a-f]{40}') - [[ -n "$REV" ]] || { echo "::error::could not resolve mesh-llm rev from Cargo.lock"; exit 1; } - echo "rev=$REV" >> "$GITHUB_OUTPUT" - echo "short=${REV:0:7}" >> "$GITHUB_OUTPUT" - - name: Restore mesh llama build cache - id: llama_cache - uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5 - with: - path: ${{ github.workspace }}/.cache/mesh-llama - key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }} - - name: Build mesh llama native libraries - if: steps.llama_cache.outputs.cache-hit != 'true' - env: - MESH_REV_SHORT: ${{ steps.mesh_rev.outputs.short }} - run: | - set -euo pipefail - cargo fetch --manifest-path desktop/src-tauri/Cargo.toml - SHORT="$MESH_REV_SHORT" - MESH_ROOT=$(find "${CARGO_HOME:-$HOME/.cargo}/git/checkouts" -path "*/$SHORT" -type d -name "$SHORT" | head -1) - if [[ -z "$MESH_ROOT" ]]; then - echo "::error::mesh-llm checkout for $SHORT not found after cargo fetch" - exit 1 - fi - export LLAMA_STAGE_BACKEND=metal - export LLAMA_STAGE_BUILD_DIR="$GITHUB_WORKSPACE/.cache/mesh-llama/build-stage-abi-metal" - export CMAKE_OSX_DEPLOYMENT_TARGET=10.15 - "$MESH_ROOT/scripts/prepare-llama.sh" pinned - "$MESH_ROOT/scripts/build-llama.sh" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 - - name: Save mesh llama build cache - if: steps.llama_cache.outputs.cache-hit != 'true' - uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5 - with: - path: ${{ github.workspace }}/.cache/mesh-llama - key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }} - - name: Build unsigned Tauri app run: cd desktop && pnpm tauri build --verbose --no-sign --features mesh-llm --config src-tauri/tauri.release.conf.json env: @@ -182,9 +143,6 @@ jobs: CMAKE_POLICY_VERSION_MINIMUM: "3.5" MACOSX_DEPLOYMENT_TARGET: "10.15" CMAKE_OSX_DEPLOYMENT_TARGET: "10.15" - LLAMA_STAGE_BACKEND: metal - LLAMA_STAGE_BUILD_DIR: ${{ github.workspace }}/.cache/mesh-llama/build-stage-abi-metal - SKIPPY_LLAMA_AUTO_BUILD: "0" TAURI_BUNDLER_DMG_IGNORE_CI: "true" - name: Locate unsigned DMG diff --git a/Justfile b/Justfile index 9f59c2e065..1eb1c19351 100644 --- a/Justfile +++ b/Justfile @@ -6,9 +6,10 @@ desktop_dir := "desktop" desktop_tauri_manifest := "desktop/src-tauri/Cargo.toml" web_dir := "web" -# Opt-in mesh-llm. Off by default so `just dev`/`just staging` skip ~420 extra -# crates + the llama.cpp native runtime build and stay fast to iterate on. -# Turn on to test mesh compute features: `just mesh=1 dev` / `just mesh=1 staging`. +# Opt-in mesh-llm UI + node management (`just mesh=1 dev`). The mesh node is +# no longer compiled in — it is downloaded on first use as the official +# release binary — so this feature only adds a few KB of client code. Kept +# opt-in for now; candidate for default-on. mesh := "" # List all available tasks diff --git a/desktop/src-tauri/src/managed_agents/known_binaries.rs b/desktop/src-tauri/src/managed_agents/known_binaries.rs new file mode 100644 index 0000000000..cf34e7653e --- /dev/null +++ b/desktop/src-tauri/src/managed_agents/known_binaries.rs @@ -0,0 +1,63 @@ +//! Known agent/harness binary names for process ownership checks. +//! +//! Split from `runtime.rs` (file size budget); `#[path]`-included from there +//! so everything stays in the `runtime` module namespace. + +/// Binary name fragments for all known agent/harness processes that Buzz +/// may spawn. Used by `process_belongs_to_us()` and the orphan sweep to +/// identify processes we should clean up. Both hyphenated and underscored +/// variants are listed because macOS `proc_name()` and Linux `/proc/comm` +/// may report either form depending on how the binary was built. +pub(crate) const KNOWN_AGENT_BINARIES: &[&str] = &[ + "buzz-acp", + "buzz_acp", + "buzz-agent", + "buzz_agent", + "claude-agent-acp", + "claude_agent_acp", + "claude-code-acp", + "claude_code_acp", + "codex-acp", + "codex_acp", + "goose", + // buzz-dev-mcp's multicall personalities (rg, tree, buzz, + // git-credential-nostr, git-sign-nostr) are short-lived per-tool-call + // invocations — not listed here. + "buzz-dev-mcp", + "buzz_dev_mcp", + // Downloaded mesh compute node (mesh_llm/node_process.rs). Spawned with + // the BUZZ_MANAGED_AGENT stamp like agents, so the orphan sweep reclaims + // it after a desktop crash. A user-run standalone `mesh-llm serve` has + // no stamp and is never touched. + "mesh-llm", + "mesh_llm", +]; + +/// Script interpreters that may host managed agent wrappers (e.g. npm shims). +/// A process whose name matches here is NOT immediately claimed — it must also +/// carry `BUZZ_MANAGED_AGENT` in its environment (checked by the caller via +/// `process_has_buzz_marker()`). This avoids sweeping unrelated node processes. +pub(crate) const KNOWN_SCRIPT_INTERPRETERS: &[&str] = &["node"]; + +/// Check if a process name matches any of our known agent binaries. +/// Uses exact match or prefix-with-separator to avoid false positives +/// (e.g. `"goose"` must not match `"mongoose"`). +pub(crate) fn name_matches_known_binary(name: &str) -> bool { + KNOWN_AGENT_BINARIES.iter().any(|&binary| { + name == binary || { + name.starts_with(binary) && { + let rest = &name[binary.len()..]; + rest.starts_with('-') || rest.starts_with('_') || rest.starts_with('.') + } + } + }) +} + +/// Check if a process name is a known script interpreter that may be hosting +/// a managed agent wrapper (e.g. `node` running an npm shim for `codex-acp`). +/// Callers must additionally verify `BUZZ_MANAGED_AGENT` ownership. +pub(crate) fn name_matches_interpreter(name: &str) -> bool { + KNOWN_SCRIPT_INTERPRETERS + .iter() + .any(|&interp| name == interp) +} diff --git a/desktop/src-tauri/src/managed_agents/runtime.rs b/desktop/src-tauri/src/managed_agents/runtime.rs index e5624a0516..d32cc9b1a5 100644 --- a/desktop/src-tauri/src/managed_agents/runtime.rs +++ b/desktop/src-tauri/src/managed_agents/runtime.rs @@ -18,64 +18,9 @@ use path::build_augmented_path; type RespondToEnv = (Vec<(&'static str, String)>, Vec<&'static str>); -/// Binary name fragments for all known agent/harness processes that Buzz -/// may spawn. Used by `process_belongs_to_us()` and the orphan sweep to -/// identify processes we should clean up. Both hyphenated and underscored -/// variants are listed because macOS `proc_name()` and Linux `/proc/comm` -/// may report either form depending on how the binary was built. -pub(crate) const KNOWN_AGENT_BINARIES: &[&str] = &[ - "buzz-acp", - "buzz_acp", - "buzz-agent", - "buzz_agent", - "claude-agent-acp", - "claude_agent_acp", - "claude-code-acp", - "claude_code_acp", - "codex-acp", - "codex_acp", - "goose", - // buzz-dev-mcp's multicall personalities (rg, tree, buzz, - // git-credential-nostr, git-sign-nostr) are short-lived per-tool-call - // invocations — not listed here. - "buzz-dev-mcp", - "buzz_dev_mcp", - // Downloaded mesh compute node (mesh_llm/node_process.rs). Spawned with - // the BUZZ_MANAGED_AGENT stamp like agents, so the orphan sweep reclaims - // it after a desktop crash. A user-run standalone `mesh-llm serve` has no - // stamp and is never touched. - "mesh-llm", - "mesh_llm", -]; - -/// Script interpreters that may host managed agent wrappers (e.g. npm shims). -/// A process whose name matches here is NOT immediately claimed — it must also -/// carry `BUZZ_MANAGED_AGENT` in its environment (checked by the caller via -/// `process_has_buzz_marker()`). This avoids sweeping unrelated node processes. -pub(crate) const KNOWN_SCRIPT_INTERPRETERS: &[&str] = &["node"]; - -/// Check if a process name matches any of our known agent binaries. -/// Uses exact match or prefix-with-separator to avoid false positives -/// (e.g. `"goose"` must not match `"mongoose"`). -fn name_matches_known_binary(name: &str) -> bool { - KNOWN_AGENT_BINARIES.iter().any(|&binary| { - name == binary || { - name.starts_with(binary) && { - let rest = &name[binary.len()..]; - rest.starts_with('-') || rest.starts_with('_') || rest.starts_with('.') - } - } - }) -} - -/// Check if a process name is a known script interpreter that may be hosting -/// a managed agent wrapper (e.g. `node` running an npm shim for `codex-acp`). -/// Callers must additionally verify `BUZZ_MANAGED_AGENT` ownership. -fn name_matches_interpreter(name: &str) -> bool { - KNOWN_SCRIPT_INTERPRETERS - .iter() - .any(|&interp| name == interp) -} +#[path = "known_binaries.rs"] +mod known_binaries; +use known_binaries::{name_matches_interpreter, name_matches_known_binary}; #[cfg(unix)] pub(crate) fn process_is_running(pid: u32) -> bool { From 6eaf40491203a31100c0b1218bf999943502ac55 Mon Sep 17 00:00:00 2001 From: Michael Neale Date: Tue, 7 Jul 2026 09:14:25 -0700 Subject: [PATCH 5/5] fix(relay): adapt mesh smoke example to async initialize_host_runtime --- crates/buzz-relay/examples/mesh_serve_client_smoke.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/buzz-relay/examples/mesh_serve_client_smoke.rs b/crates/buzz-relay/examples/mesh_serve_client_smoke.rs index 26baa3f8f6..061cb736ab 100644 --- a/crates/buzz-relay/examples/mesh_serve_client_smoke.rs +++ b/crates/buzz-relay/examples/mesh_serve_client_smoke.rs @@ -50,7 +50,9 @@ async fn main() -> anyhow::Result<()> { { anyhow::bail!("MeshLLM native runtime for MeshLLM {current} is not installed; run `just mesh-e2e-hardware` to prepare it"); } + // initialize_host_runtime became async upstream. mesh_llm_host_runtime::initialize_host_runtime() + .await .map_err(|error| anyhow::anyhow!("MeshLLM host runtime init failed: {error}"))?; eprintln!("[smoke] MeshLLM host runtime initialized");