From 1bd34e0db0d321531cd22854411dd0a225d20824 Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Tue, 14 Oct 2025 13:34:07 -0300 Subject: [PATCH] zeta2 cli: Export retrieval stats data frame (#40145) Retrieval stats will now use polars to build a big data frame for references with the cartesian product of LSP declarations and retrieved declaration candidates (with all their score components) and rebuilds the stats summary on top of it. This data frame is written to a `.parquet` file, which we can load into advanced analytics tools (such as Metabase), so we can explore our scoring distributions and find ways to improve retrieval, and then train the decision tree. Release Notes: - N/A --- Cargo.lock | 1103 +++++++++++++++++++++++- crates/zeta_cli/Cargo.toml | 3 + crates/zeta_cli/src/retrieval_stats.rs | 829 +++++++++++++----- script/licenses/zed-licenses.toml | 1 + tooling/workspace-hack/Cargo.toml | 80 +- 5 files changed, 1692 insertions(+), 324 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 117b2a16cdb9bf582101ff400f07bd207bbc4e73..a37fc94d6caa67d67ccc9fc5cbbc79dbc81da3c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -189,7 +189,7 @@ dependencies = [ "workspace", "workspace-hack", "zed_env_vars", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -280,7 +280,7 @@ dependencies = [ "worktree", "zed_env_vars", "zlog", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -533,6 +533,21 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "allocator-api2" version = "0.2.21" @@ -709,6 +724,21 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "argminmax" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f13d10a41ac8d2ec79ee34178d61e6f47a29c2edfe7ef1721c7383b0359e65" +dependencies = [ + "num-traits", +] + +[[package]] +name = "array-init-cursor" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed51fe0f224d1d4ea768be38c51f9f831dee9d05c163c11fba0b8c44387b1fc3" + [[package]] name = "arraydeque" version = "0.5.1" @@ -1388,6 +1418,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "atoi_simd" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a49e05797ca52e312a0c658938b7d00693ef037799ef7187678f212d7684cf" +dependencies = [ + "debug_unsafe", +] + [[package]] name = "atomic" version = "0.5.3" @@ -2178,6 +2217,26 @@ dependencies = [ "serde", ] +[[package]] +name = "bincode" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +dependencies = [ + "bincode_derive", + "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" +dependencies = [ + "virtue", +] + [[package]] name = "bindgen" version = "0.69.5" @@ -2366,6 +2425,19 @@ dependencies = [ "profiling", ] +[[package]] +name = "blake3" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.3.1", +] + [[package]] name = "block" version = "0.1.6" @@ -2455,6 +2527,12 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "boxcar" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e" + [[package]] name = "breadcrumbs" version = "0.1.0" @@ -2470,6 +2548,27 @@ dependencies = [ "zed_actions", ] +[[package]] +name = "brotli" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bstr" version = "1.12.0" @@ -2601,6 +2700,9 @@ name = "bytes" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "serde", +] [[package]] name = "bytes-utils" @@ -2890,6 +2992,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +[[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" @@ -3018,6 +3129,16 @@ dependencies = [ "windows-link 0.1.1", ] +[[package]] +name = "chrono-tz" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6139a8597ed92cf816dfb33f5dd6cf0bb93a6adc938f11039f371bc5bcd26c3" +dependencies = [ + "chrono", + "phf 0.12.1", +] + [[package]] name = "chunked_transfer" version = "1.5.0" @@ -3562,6 +3683,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "comfy-table" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" +dependencies = [ + "crossterm", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "command-fds" version = "0.3.1" @@ -3616,6 +3748,21 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "compact_str" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "rustversion", + "ryu", + "serde", + "static_assertions", +] + [[package]] name = "component" version = "0.1.0" @@ -3684,6 +3831,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + [[package]] name = "context_server" version = "0.1.0" @@ -4159,7 +4312,7 @@ dependencies = [ name = "crashes" version = "0.1.0" dependencies = [ - "bincode", + "bincode 1.3.3", "cfg-if", "crash-handler", "log", @@ -4172,7 +4325,7 @@ dependencies = [ "smol", "system_specs", "workspace-hack", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -4323,6 +4476,29 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.9.0", + "crossterm_winapi", + "document-features", + "parking_lot", + "rustix 1.0.7", + "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.3" @@ -4371,7 +4547,7 @@ dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf", + "phf 0.11.3", "smallvec", ] @@ -4674,6 +4850,12 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "debug_unsafe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85d3cef41d236720ed453e102153a53e4cc3d2fde848c0078a50cf249e8e3e5b" + [[package]] name = "debugger_tools" version = "0.1.0" @@ -5054,6 +5236,15 @@ dependencies = [ "zlog", ] +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "documented" version = "0.9.1" @@ -5061,7 +5252,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6db32f0995bc4553d2de888999075acd0dbeef75ba923503f6a724263dc6f3" dependencies = [ "documented-macros", - "phf", + "phf 0.11.3", "thiserror 1.0.69", ] @@ -5098,7 +5289,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "415b6ec780d34dcf624666747194393603d0373b7141eef01d12ee58881507d9" dependencies = [ - "phf", + "phf 0.11.3", ] [[package]] @@ -5431,7 +5622,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99e1f1df1f181f2539bac8bf027d31ca5ffbf9e559e3f2d09413b9107b5c02f4" dependencies = [ - "phf", + "phf 0.11.3", ] [[package]] @@ -5601,6 +5792,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "ethnum" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca81e6b4777c89fd810c25a4be2b1bd93ea034fbe58e6a75216a34c6b82c539b" + [[package]] name = "euclid" version = "0.22.11" @@ -5883,6 +6080,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" + [[package]] name = "fancy-regex" version = "0.13.0" @@ -5905,6 +6108,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "fast-float2" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8eb564c5c7423d25c886fb561d1e4ee69f72354d16918afa32c08811f6b6a55" + [[package]] name = "fast-srgb8" version = "1.0.0" @@ -6058,6 +6267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide", ] @@ -6308,6 +6518,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "fs4" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" +dependencies = [ + "rustix 1.0.7", + "windows-sys 0.59.0", +] + [[package]] name = "fs_extra" version = "1.3.0" @@ -7344,6 +7564,7 @@ dependencies = [ "allocator-api2", "equivalent", "foldhash", + "rayon", "serde", ] @@ -7444,7 +7665,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c255bdf46e07fb840d120a36dcc81f385140d7191c76a7391672675c01a55d" dependencies = [ - "bincode", + "bincode 1.3.3", "byteorder", "heed-traits", "serde", @@ -8253,7 +8474,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb8251fb7bcd9ccd3725ed8deae9fe7db8e586495c9eb5b0c52e6233e5e75ea" dependencies = [ - "bincode", + "bincode 1.3.3", "crossbeam-channel", "fnv", "lazy_static", @@ -9035,7 +9256,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -9099,6 +9320,15 @@ dependencies = [ "webrtc-sys", ] +[[package]] +name = "libz-rs-sys" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" +dependencies = [ + "zlib-rs", +] + [[package]] name = "libz-sys" version = "1.1.22" @@ -9162,6 +9392,12 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +[[package]] +name = "litrs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" + [[package]] name = "livekit" version = "0.7.8" @@ -9464,6 +9700,25 @@ dependencies = [ "num-traits", ] +[[package]] +name = "lz4" +version = "1.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" +dependencies = [ + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "mac" version = "0.1.1" @@ -9560,7 +9815,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" dependencies = [ "log", - "phf", + "phf 0.11.3", "phf_codegen", "string_cache", "string_cache_codegen", @@ -10287,6 +10542,15 @@ name = "notify-types" version = "2.0.0" source = "git+https://github.com/zed-industries/notify.git?rev=bbb9ea5ae52b253e095737847e367c30653a2e96#bbb9ea5ae52b253e095737847e367c30653a2e96" +[[package]] +name = "now" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89e9874397a1f0a52fc1f197a8effd9735223cb2390e9dcc83ac6cd02923d0" +dependencies = [ + "chrono", +] + [[package]] name = "ntapi" version = "0.4.1" @@ -10673,6 +10937,41 @@ dependencies = [ "memchr", ] +[[package]] +name = "object_store" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c1be0c6c22ec0817cdc77d3842f721a17fd30ab6965001415b5402a74e6b740" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bytes 1.10.1", + "chrono", + "form_urlencoded", + "futures 0.3.31", + "http 1.3.1", + "http-body-util", + "humantime", + "hyper 1.6.0", + "itertools 0.14.0", + "parking_lot", + "percent-encoding", + "quick-xml 0.38.3", + "rand 0.9.1", + "reqwest 0.12.15", + "ring", + "serde", + "serde_json", + "serde_urlencoded", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "walkdir", + "wasm-bindgen-futures", + "web-time", +] + [[package]] name = "ollama" version = "0.1.0" @@ -11708,7 +12007,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_macros", - "phf_shared", + "phf_shared 0.11.3", +] + +[[package]] +name = "phf" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" +dependencies = [ + "phf_shared 0.12.1", ] [[package]] @@ -11718,7 +12026,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ "phf_generator", - "phf_shared", + "phf_shared 0.11.3", ] [[package]] @@ -11727,7 +12035,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ - "phf_shared", + "phf_shared 0.11.3", "rand 0.8.5", ] @@ -11738,7 +12046,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ "phf_generator", - "phf_shared", + "phf_shared 0.11.3", "proc-macro2", "quote", "syn 2.0.101", @@ -11753,6 +12061,15 @@ dependencies = [ "siphasher", ] +[[package]] +name = "phf_shared" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" +dependencies = [ + "siphasher", +] + [[package]] name = "picker" version = "0.1.0" @@ -11864,6 +12181,16 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" +[[package]] +name = "planus" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3daf8e3d4b712abe1d690838f6e29fb76b76ea19589c4afa39ec30e12f62af71" +dependencies = [ + "array-init-cursor", + "hashbrown 0.15.3", +] + [[package]] name = "plist" version = "1.7.1" @@ -11919,28 +12246,542 @@ dependencies = [ ] [[package]] -name = "polling" -version = "3.11.0" +name = "polars" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +checksum = "a5f7feb5d56b954e691dff22a8b2d78d77433dcc93c35fe21c3777fdc121b697" dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi 0.5.0", - "pin-project-lite", - "rustix 1.0.7", - "windows-sys 0.61.0", + "getrandom 0.2.15", + "getrandom 0.3.2", + "polars-arrow", + "polars-core", + "polars-error", + "polars-io", + "polars-lazy", + "polars-ops", + "polars-parquet", + "polars-sql", + "polars-time", + "polars-utils", + "version_check", ] [[package]] -name = "pollster" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7" - -[[package]] -name = "portable-atomic" -version = "1.11.0" +name = "polars-arrow" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b4fed2343961b3eea3db2cee165540c3e1ad9d5782350cc55a9e76cf440148" +dependencies = [ + "atoi_simd", + "bitflags 2.9.0", + "bytemuck", + "chrono", + "chrono-tz", + "dyn-clone", + "either", + "ethnum", + "getrandom 0.2.15", + "getrandom 0.3.2", + "hashbrown 0.15.3", + "itoa", + "lz4", + "num-traits", + "polars-arrow-format", + "polars-error", + "polars-schema", + "polars-utils", + "serde", + "simdutf8", + "streaming-iterator", + "strum_macros 0.27.1", + "version_check", + "zstd 0.13.3", +] + +[[package]] +name = "polars-arrow-format" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a556ac0ee744e61e167f34c1eb0013ce740e0ee6cd8c158b2ec0b518f10e6675" +dependencies = [ + "planus", + "serde", +] + +[[package]] +name = "polars-compute" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138785beda4e4a90a025219f09d0d15a671b2be9091513ede58e05db6ad4413f" +dependencies = [ + "atoi_simd", + "bytemuck", + "chrono", + "either", + "fast-float2", + "hashbrown 0.15.3", + "itoa", + "num-traits", + "polars-arrow", + "polars-error", + "polars-utils", + "rand 0.9.1", + "ryu", + "serde", + "skiplist", + "strength_reduce", + "strum_macros 0.27.1", + "version_check", +] + +[[package]] +name = "polars-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e77b1f08ef6dbb032bb1d0d3365464be950df9905f6827a95b24c4ca5518901d" +dependencies = [ + "bitflags 2.9.0", + "boxcar", + "bytemuck", + "chrono", + "chrono-tz", + "comfy-table", + "either", + "hashbrown 0.15.3", + "indexmap 2.9.0", + "itoa", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-dtype", + "polars-error", + "polars-row", + "polars-schema", + "polars-utils", + "rand 0.9.1", + "rand_distr", + "rayon", + "regex", + "serde", + "serde_json", + "strum_macros 0.27.1", + "uuid", + "version_check", + "xxhash-rust", +] + +[[package]] +name = "polars-dtype" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89c43d0ea57168be4546c4d8064479ed8b29a9c79c31a0c7c367ee734b9b7158" +dependencies = [ + "boxcar", + "hashbrown 0.15.3", + "polars-arrow", + "polars-error", + "polars-utils", + "serde", + "uuid", +] + +[[package]] +name = "polars-error" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cb5d98f59f8b94673ee391840440ad9f0d2170afced95fc98aa86f895563c0" +dependencies = [ + "object_store", + "parking_lot", + "polars-arrow-format", + "regex", + "signal-hook", + "simdutf8", +] + +[[package]] +name = "polars-expr" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343931b818cf136349135ba11dbc18c27683b52c3477b1ba8ca606cf5ab1965c" +dependencies = [ + "bitflags 2.9.0", + "hashbrown 0.15.3", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-io", + "polars-ops", + "polars-plan", + "polars-row", + "polars-time", + "polars-utils", + "rand 0.9.1", + "rayon", + "recursive", +] + +[[package]] +name = "polars-io" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10388c64b8155122488229a881d1c6f4fdc393bc988e764ab51b182fcb2307e4" +dependencies = [ + "async-trait", + "atoi_simd", + "blake3", + "bytes 1.10.1", + "chrono", + "fast-float2", + "fs4", + "futures 0.3.31", + "glob", + "hashbrown 0.15.3", + "home", + "itoa", + "memchr", + "memmap2", + "num-traits", + "object_store", + "percent-encoding", + "polars-arrow", + "polars-core", + "polars-error", + "polars-parquet", + "polars-schema", + "polars-time", + "polars-utils", + "rayon", + "regex", + "reqwest 0.12.15", + "ryu", + "serde", + "serde_json", + "simdutf8", + "tokio", + "tokio-util", + "url", +] + +[[package]] +name = "polars-lazy" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fb6e2c6c2fa4ea0c660df1c06cf56960c81e7c2683877995bae3d4e3d408147" +dependencies = [ + "bitflags 2.9.0", + "chrono", + "either", + "memchr", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-expr", + "polars-io", + "polars-mem-engine", + "polars-ops", + "polars-plan", + "polars-stream", + "polars-time", + "polars-utils", + "rayon", + "version_check", +] + +[[package]] +name = "polars-mem-engine" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20a856e98e253587c28d8132a5e7e5a75cb2c44731ca090f1481d45f1d123771" +dependencies = [ + "futures 0.3.31", + "memmap2", + "polars-arrow", + "polars-core", + "polars-error", + "polars-expr", + "polars-io", + "polars-ops", + "polars-plan", + "polars-time", + "polars-utils", + "rayon", + "recursive", + "tokio", +] + +[[package]] +name = "polars-ops" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acf6062173fdc9ba05775548beb66e76643a148d9aeadc9984ed712bc4babd76" +dependencies = [ + "argminmax", + "base64 0.22.1", + "bytemuck", + "chrono", + "chrono-tz", + "either", + "hashbrown 0.15.3", + "hex", + "indexmap 2.9.0", + "libm", + "memchr", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-error", + "polars-schema", + "polars-utils", + "rayon", + "regex", + "regex-syntax", + "strum_macros 0.27.1", + "unicode-normalization", + "unicode-reverse", + "version_check", +] + +[[package]] +name = "polars-parquet" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1d769180dec070df0dc4b89299b364bf2cfe32b218ecc4ddd8f1a49ae60669" +dependencies = [ + "async-stream", + "base64 0.22.1", + "brotli", + "bytemuck", + "ethnum", + "flate2", + "futures 0.3.31", + "hashbrown 0.15.3", + "lz4", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-error", + "polars-parquet-format", + "polars-utils", + "serde", + "simdutf8", + "snap", + "streaming-decompression", + "zstd 0.13.3", +] + +[[package]] +name = "polars-parquet-format" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c025243dcfe8dbc57e94d9f82eb3bef10b565ab180d5b99bed87fd8aea319ce1" +dependencies = [ + "async-trait", + "futures 0.3.31", +] + +[[package]] +name = "polars-plan" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd3a2e33ae4484fe407ab2d2ba5684f0889d1ccf3ad6b844103c03638e6d0a0" +dependencies = [ + "bitflags 2.9.0", + "bytemuck", + "bytes 1.10.1", + "chrono", + "chrono-tz", + "either", + "futures 0.3.31", + "hashbrown 0.15.3", + "memmap2", + "num-traits", + "percent-encoding", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-error", + "polars-io", + "polars-ops", + "polars-parquet", + "polars-time", + "polars-utils", + "rayon", + "recursive", + "regex", + "sha2", + "strum_macros 0.27.1", + "version_check", +] + +[[package]] +name = "polars-row" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18734f17e0e348724df3ae65f3ee744c681117c04b041cac969dfceb05edabc0" +dependencies = [ + "bitflags 2.9.0", + "bytemuck", + "polars-arrow", + "polars-compute", + "polars-dtype", + "polars-error", + "polars-utils", +] + +[[package]] +name = "polars-schema" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6c1ab13e04d5167661a9854ed1ea0482b2ed9b8a0f1118dabed7cd994a85e3" +dependencies = [ + "indexmap 2.9.0", + "polars-error", + "polars-utils", + "serde", + "version_check", +] + +[[package]] +name = "polars-sql" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4e7766da02cc1d464994404d3e88a7a0ccd4933df3627c325480fbd9bbc0a11" +dependencies = [ + "bitflags 2.9.0", + "hex", + "polars-core", + "polars-error", + "polars-lazy", + "polars-ops", + "polars-plan", + "polars-time", + "polars-utils", + "rand 0.9.1", + "regex", + "serde", + "sqlparser", +] + +[[package]] +name = "polars-stream" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f6c6ca1ea01f9dea424d167e4f33f5ec44cd67fbfac9efd40575ed20521f14" +dependencies = [ + "async-channel 2.3.1", + "async-trait", + "atomic-waker", + "bitflags 2.9.0", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-queue", + "crossbeam-utils", + "futures 0.3.31", + "memmap2", + "parking_lot", + "percent-encoding", + "pin-project-lite", + "polars-arrow", + "polars-core", + "polars-error", + "polars-expr", + "polars-io", + "polars-mem-engine", + "polars-ops", + "polars-parquet", + "polars-plan", + "polars-utils", + "rand 0.9.1", + "rayon", + "recursive", + "slotmap", + "tokio", + "tokio-util", + "version_check", +] + +[[package]] +name = "polars-time" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6a3a6e279a7a984a0b83715660f9e880590c6129ec2104396bfa710bcd76dee" +dependencies = [ + "atoi_simd", + "bytemuck", + "chrono", + "chrono-tz", + "now", + "num-traits", + "polars-arrow", + "polars-compute", + "polars-core", + "polars-error", + "polars-ops", + "polars-utils", + "rayon", + "regex", + "strum_macros 0.27.1", +] + +[[package]] +name = "polars-utils" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b267021b0e5422d7fbc70fd79e51b9f9a8466c585779373a18b0199e973f29" +dependencies = [ + "bincode 2.0.1", + "bytemuck", + "bytes 1.10.1", + "compact_str", + "either", + "flate2", + "foldhash", + "hashbrown 0.15.3", + "indexmap 2.9.0", + "libc", + "memmap2", + "num-traits", + "polars-error", + "rand 0.9.1", + "raw-cpuid 11.6.0", + "rayon", + "regex", + "rmp-serde", + "serde", + "serde_json", + "serde_stacker", + "slotmap", + "stacker", + "uuid", + "version_check", +] + +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.5.0", + "pin-project-lite", + "rustix 1.0.7", + "windows-sys 0.61.0", +] + +[[package]] +name = "pollster" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da3b0203fd7ee5720aa0b5e790b591aa5d3f41c3ed2c34a3a393382198af2f7" + +[[package]] +name = "portable-atomic" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" @@ -12608,6 +13449,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.38.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "quinn" version = "0.11.7" @@ -12938,6 +13789,26 @@ dependencies = [ "zed_actions", ] +[[package]] +name = "recursive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e" +dependencies = [ + "recursive-proc-macro-impl", + "stacker", +] + +[[package]] +name = "recursive-proc-macro-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" +dependencies = [ + "quote", + "syn 2.0.101", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -13291,10 +14162,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", + "h2 0.4.9", "http 1.3.1", "http-body 1.0.1", "http-body-util", "hyper 1.6.0", + "hyper-rustls 0.27.5", "hyper-util", "ipnet", "js-sys", @@ -13303,16 +14176,24 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "quinn", + "rustls 0.23.26", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.2", "tokio", + "tokio-rustls 0.26.2", + "tokio-util", "tower 0.5.2", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", "windows-registry 0.4.0", ] @@ -13438,6 +14319,17 @@ dependencies = [ "paste", ] +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + [[package]] name = "rmpv" version = "1.3.0" @@ -13510,7 +14402,7 @@ dependencies = [ "util", "workspace-hack", "zlog", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -14410,6 +15302,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_stacker" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4936375d50c4be7eff22293a9344f8e46f323ed2b3c243e52f89138d9bb0f4a" +dependencies = [ + "serde", + "serde_core", + "stacker", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -14757,6 +15660,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +[[package]] +name = "skiplist" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354fd282d3177c2951004953e2fdc4cb342fa159bbee8b829852b6a081c8ea1" +dependencies = [ + "rand 0.9.1", + "thiserror 2.0.12", +] + [[package]] name = "skrifa" version = "0.26.6" @@ -14835,6 +15748,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + [[package]] name = "snippet" version = "0.1.0" @@ -14884,6 +15803,26 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "soa-rs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b75ae4668062b095fda87ba54118697bed601f07f6c68bf50289a25ca0c8c935" +dependencies = [ + "soa-rs-derive", +] + +[[package]] +name = "soa-rs-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c09121507da587d3434e5929ce3321162f36bd3eff403873cb163c06b176913" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "socket2" version = "0.5.9" @@ -14986,6 +15925,15 @@ dependencies = [ "unicode_categories", ] +[[package]] +name = "sqlparser" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05a528114c392209b3264855ad491fcce534b94a38771b0a0b97a79379275ce8" +dependencies = [ + "log", +] + [[package]] name = "sqlx" version = "0.8.5" @@ -15292,6 +16240,15 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "streaming-decompression" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6cc3b19bfb128a8ad11026086e31d3ce9ad23f8ea37354b31383a187c44cf3" +dependencies = [ + "fallible-streaming-iterator", +] + [[package]] name = "streaming-iterator" version = "0.1.9" @@ -15332,7 +16289,7 @@ checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" dependencies = [ "new_debug_unreachable", "parking_lot", - "phf_shared", + "phf_shared 0.11.3", "precomputed-hash", "serde", ] @@ -15344,7 +16301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" dependencies = [ "phf_generator", - "phf_shared", + "phf_shared 0.11.3", "proc-macro2", "quote", ] @@ -16694,6 +17651,8 @@ dependencies = [ "futures-core", "futures-io", "futures-sink", + "futures-util", + "hashbrown 0.14.5", "pin-project-lite", "tokio", ] @@ -17462,6 +18421,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" +[[package]] +name = "unicode-reverse" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b6f4888ebc23094adfb574fdca9fdc891826287a6397d2cd28802ffd6f20c76" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "unicode-script" version = "0.5.7" @@ -17510,6 +18478,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "url" version = "2.5.4" @@ -17636,8 +18610,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ "getrandom 0.3.2", + "js-sys", "serde", "sha1_smol", + "wasm-bindgen", ] [[package]] @@ -17792,6 +18768,12 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "virtue" +version = "0.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" + [[package]] name = "vscode_theme" version = "0.2.0" @@ -18522,7 +19504,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "954c5a41f2bcb7314344079d0891505458cc2f4b422bdea1d5bfbe6d1a04903b" dependencies = [ - "phf", + "phf 0.11.3", "phf_codegen", "string_cache", "string_cache_codegen", @@ -19779,8 +20761,8 @@ dependencies = [ "object", "once_cell", "percent-encoding", - "phf", - "phf_shared", + "phf 0.11.3", + "phf_shared 0.11.3", "prettyplease", "proc-macro2", "prost 0.12.6", @@ -19796,6 +20778,7 @@ dependencies = [ "regex", "regex-automata", "regex-syntax", + "reqwest 0.12.15", "ring", "rust_decimal", "rustc-hash 1.1.0", @@ -19825,7 +20808,6 @@ dependencies = [ "subtle", "syn 1.0.109", "syn 2.0.101", - "sync_wrapper 1.0.2", "thiserror 2.0.12", "time", "time-macros", @@ -20066,6 +21048,12 @@ dependencies = [ "workspace-hack", ] +[[package]] +name = "xxhash-rust" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + [[package]] name = "yaml-rust2" version = "0.8.1" @@ -20231,7 +21219,7 @@ dependencies = [ "auto_update", "auto_update_ui", "backtrace", - "bincode", + "bincode 1.3.3", "breadcrumbs", "call", "channel", @@ -20817,6 +21805,7 @@ name = "zeta_cli" version = "0.1.0" dependencies = [ "anyhow", + "chrono", "clap", "client", "cloud_llm_client", @@ -20838,6 +21827,7 @@ dependencies = [ "node_runtime", "ordered-float 2.10.1", "paths", + "polars", "project", "prompt_store", "release_channel", @@ -20847,6 +21837,7 @@ dependencies = [ "settings", "shellexpand 2.1.2", "smol", + "soa-rs", "terminal_view", "util", "watch", @@ -20865,7 +21856,7 @@ dependencies = [ "aes", "byteorder", "bzip2", - "constant_time_eq", + "constant_time_eq 0.1.5", "crc32fast", "crossbeam-utils", "flate2", @@ -20873,7 +21864,7 @@ dependencies = [ "pbkdf2 0.11.0", "sha1", "time", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] @@ -20891,6 +21882,12 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "zlib-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" + [[package]] name = "zlog" version = "0.1.0" @@ -20920,7 +21917,16 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe", + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe 7.2.4", ] [[package]] @@ -20933,6 +21939,15 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + [[package]] name = "zstd-sys" version = "2.0.15+zstd.1.5.7" diff --git a/crates/zeta_cli/Cargo.toml b/crates/zeta_cli/Cargo.toml index d81a5ae6d34fbe7cba25898fc4885baa84f1dfb2..bc78ac8bbad7b639612fad54ab004cc064912c4c 100644 --- a/crates/zeta_cli/Cargo.toml +++ b/crates/zeta_cli/Cargo.toml @@ -14,6 +14,7 @@ path = "src/main.rs" [dependencies] anyhow.workspace = true +chrono.workspace = true clap.workspace = true client.workspace = true cloud_llm_client.workspace= true @@ -35,6 +36,7 @@ log.workspace = true node_runtime.workspace = true ordered-float.workspace = true paths.workspace = true +polars = { version = "0.51", features = ["lazy", "dtype-struct", "parquet"] } project.workspace = true prompt_store.workspace = true release_channel.workspace = true @@ -44,6 +46,7 @@ serde_json.workspace = true settings.workspace = true shellexpand.workspace = true smol.workspace = true +soa-rs = "0.8.1" terminal_view.workspace = true util.workspace = true watch.workspace = true diff --git a/crates/zeta_cli/src/retrieval_stats.rs b/crates/zeta_cli/src/retrieval_stats.rs index 3dbc56756d6a46b89b68cdeab54f589355cc5efe..bf1f78200ec5dd9262b6ae8937695b690155e8e2 100644 --- a/crates/zeta_cli/src/retrieval_stats.rs +++ b/crates/zeta_cli/src/retrieval_stats.rs @@ -13,8 +13,10 @@ use gpui::{AppContext, AsyncApp}; use language::OffsetRangeExt; use language::{BufferSnapshot, Point}; use ordered_float::OrderedFloat; +use polars::prelude::*; use project::{Project, ProjectEntryId, ProjectPath, Worktree}; use serde::{Deserialize, Serialize}; +use std::fs; use std::{ cmp::Reverse, collections::{HashMap, HashSet}, @@ -163,16 +165,23 @@ pub async fn retrieval_stats( } let files_hash = hasher.finish(); let file_snapshots = Arc::new(file_snapshots); + let target_cli_dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("../../target/zeta_cli"); + fs::create_dir_all(&target_cli_dir).unwrap(); + let target_cli_dir = target_cli_dir.canonicalize().unwrap(); - let lsp_definitions_path = std::env::current_dir()?.join(format!( - "target/zeta2-lsp-definitions-{:x}.jsonl", + let lsp_cache_dir = target_cli_dir.join("cache"); + fs::create_dir_all(&lsp_cache_dir).unwrap(); + + let lsp_definitions_path = lsp_cache_dir.join(format!( + "{}-{:x}.jsonl", + worktree_path.file_stem().unwrap_or_default().display(), files_hash )); let mut lsp_definitions = HashMap::default(); let mut lsp_files = 0; - if std::fs::exists(&lsp_definitions_path)? { + if fs::exists(&lsp_definitions_path)? { log::info!( "Using cached LSP definitions from {}", lsp_definitions_path.display() @@ -246,8 +255,7 @@ pub async fn retrieval_stats( let files_len = files.len().min(file_limit.unwrap_or(usize::MAX)); let done_count = Arc::new(AtomicUsize::new(0)); - let (output_tx, mut output_rx) = mpsc::unbounded::(); - let mut output = std::fs::File::create("target/zeta-retrieval-stats.txt")?; + let (output_tx, output_rx) = mpsc::unbounded::(); let tasks = files .into_iter() @@ -271,8 +279,6 @@ pub async fn retrieval_stats( &snapshot, ); - println!("references: {}", references.len(),); - let imports = if options.context.use_imports { Imports::gather(&snapshot, Some(&project_file.parent_abs_path)) } else { @@ -309,65 +315,13 @@ pub async fn retrieval_stats( ) .await?; - // TODO: LSP returns things like locals, this filters out some of those, but potentially - // hides some retrieval issues. - if retrieve_result.definitions.is_empty() { - continue; - } - - let mut best_match = None; - let mut has_external_definition = false; - let mut in_excerpt = false; - for (index, retrieved_definition) in - retrieve_result.definitions.iter().enumerate() - { - for lsp_definition in &lsp_definitions { - let SourceRange { - path, - point_range, - offset_range, - } = lsp_definition; - let lsp_point_range = - SerializablePoint::into_language_point_range(point_range.clone()); - has_external_definition = has_external_definition - || path.is_absolute() - || path - .components() - .any(|component| component.as_os_str() == "node_modules"); - let is_match = path.as_path() - == retrieved_definition.path.as_std_path() - && retrieved_definition - .range - .contains_inclusive(&lsp_point_range); - if is_match { - if best_match.is_none() { - best_match = Some(index); - } - } - in_excerpt = in_excerpt - || retrieve_result.excerpt_range.as_ref().is_some_and( - |excerpt_range| excerpt_range.contains_inclusive(&offset_range), - ); - } - } - - let outcome = if let Some(best_match) = best_match { - RetrievalOutcome::Match { best_match } - } else if has_external_definition { - RetrievalOutcome::NoMatchDueToExternalLspDefinitions - } else if in_excerpt { - RetrievalOutcome::ProbablyLocal - } else { - RetrievalOutcome::NoMatch - }; - - let result = RetrievalStatsResult { - outcome, - path: path.clone(), + let result = ReferenceRetrievalResult { + cursor_path: path.clone(), identifier: reference.identifier, - point: query_point, + cursor_point: query_point, lsp_definitions, retrieved_definitions: retrieve_result.definitions, + excerpt_range: retrieve_result.excerpt_range, }; output_tx.unbounded_send(result).ok(); @@ -386,139 +340,610 @@ pub async fn retrieval_stats( drop(output_tx); - let results_task = cx.background_spawn(async move { - let mut results = Vec::new(); - while let Some(result) = output_rx.next().await { - output - .write_all(format!("{:#?}\n", result).as_bytes()) - .log_err(); - results.push(result) - } - results - }); + let df_task = cx.background_spawn(build_dataframe(output_rx)); futures::future::try_join_all(tasks).await?; - println!("Tasks completed"); - let results = results_task.await; - println!("Results received"); - - let mut references_count = 0; - - let mut included_count = 0; - let mut both_absent_count = 0; - - let mut retrieved_count = 0; - let mut top_match_count = 0; - let mut non_top_match_count = 0; - let mut ranking_involved_top_match_count = 0; - - let mut no_match_count = 0; - let mut no_match_none_retrieved = 0; - let mut no_match_wrong_retrieval = 0; - - let mut expected_no_match_count = 0; - let mut in_excerpt_count = 0; - let mut external_definition_count = 0; - - for result in results { - references_count += 1; - match &result.outcome { - RetrievalOutcome::Match { best_match } => { - included_count += 1; - retrieved_count += 1; - let multiple = result.retrieved_definitions.len() > 1; - if *best_match == 0 { - top_match_count += 1; - if multiple { - ranking_involved_top_match_count += 1; - } - } else { - non_top_match_count += 1; - } - } - RetrievalOutcome::NoMatch => { - if result.lsp_definitions.is_empty() { - included_count += 1; - both_absent_count += 1; - } else { - no_match_count += 1; - if result.retrieved_definitions.is_empty() { - no_match_none_retrieved += 1; - } else { - no_match_wrong_retrieval += 1; - } - } - } - RetrievalOutcome::NoMatchDueToExternalLspDefinitions => { - expected_no_match_count += 1; - external_definition_count += 1; + let mut df = df_task.await?; + + let run_id = format!( + "{}-{}", + worktree_path.file_stem().unwrap_or_default().display(), + chrono::Local::now().format("%Y%m%d_%H%M%S") + ); + let run_dir = target_cli_dir.join(run_id); + fs::create_dir(&run_dir).unwrap(); + + let parquet_path = run_dir.join("stats.parquet"); + let mut parquet_file = fs::File::create(&parquet_path)?; + + ParquetWriter::new(&mut parquet_file) + .finish(&mut df) + .unwrap(); + + let stats = SummaryStats::from_dataframe(df)?; + + let stats_path = run_dir.join("stats.txt"); + fs::write(&stats_path, format!("{}", stats))?; + + println!("{}", stats); + println!("\nWrote:"); + println!("- {}", relativize_path(&parquet_path).display()); + println!("- {}", relativize_path(&stats_path).display()); + println!("- {}", relativize_path(&lsp_definitions_path).display()); + + Ok("".to_string()) +} + +async fn build_dataframe( + mut output_rx: mpsc::UnboundedReceiver, +) -> Result { + use soa_rs::{Soa, Soars}; + + #[derive(Default, Soars)] + struct Row { + ref_id: u32, + cursor_path: String, + cursor_row: u32, + cursor_column: u32, + cursor_identifier: String, + gold_in_excerpt: bool, + gold_path: String, + gold_row: u32, + gold_column: u32, + gold_is_external: bool, + candidate_count: u32, + candidate_path: Option, + candidate_row: Option, + candidate_column: Option, + candidate_is_gold: Option, + candidate_rank: Option, + candidate_is_same_file: Option, + candidate_is_referenced_nearby: Option, + candidate_is_referenced_in_breadcrumb: Option, + candidate_reference_count: Option, + candidate_same_file_declaration_count: Option, + candidate_declaration_count: Option, + candidate_reference_line_distance: Option, + candidate_declaration_line_distance: Option, + candidate_excerpt_vs_item_jaccard: Option, + candidate_excerpt_vs_signature_jaccard: Option, + candidate_adjacent_vs_item_jaccard: Option, + candidate_adjacent_vs_signature_jaccard: Option, + candidate_excerpt_vs_item_weighted_overlap: Option, + candidate_excerpt_vs_signature_weighted_overlap: Option, + candidate_adjacent_vs_item_weighted_overlap: Option, + candidate_adjacent_vs_signature_weighted_overlap: Option, + candidate_path_import_match_count: Option, + candidate_wildcard_path_import_match_count: Option, + candidate_import_similarity: Option, + candidate_max_import_similarity: Option, + candidate_normalized_import_similarity: Option, + candidate_wildcard_import_similarity: Option, + candidate_normalized_wildcard_import_similarity: Option, + candidate_included_by_others: Option, + candidate_includes_others: Option, + } + let mut rows = Soa::::new(); + let mut next_ref_id = 0; + + while let Some(result) = output_rx.next().await { + let mut gold_is_external = false; + let mut gold_in_excerpt = false; + let cursor_path = result.cursor_path.as_unix_str(); + let cursor_row = result.cursor_point.row + 1; + let cursor_column = result.cursor_point.column + 1; + let cursor_identifier = result.identifier.name.to_string(); + let ref_id = next_ref_id; + next_ref_id += 1; + + for lsp_definition in result.lsp_definitions { + let SourceRange { + path: gold_path, + point_range: gold_point_range, + offset_range: gold_offset_range, + } = lsp_definition; + let lsp_point_range = + SerializablePoint::into_language_point_range(gold_point_range.clone()); + + gold_is_external = gold_is_external + || gold_path.is_absolute() + || gold_path + .components() + .any(|component| component.as_os_str() == "node_modules"); + + gold_in_excerpt = gold_in_excerpt + || result.excerpt_range.as_ref().is_some_and(|excerpt_range| { + excerpt_range.contains_inclusive(&gold_offset_range) + }); + + let gold_row = gold_point_range.start.row; + let gold_column = gold_point_range.start.column; + let candidate_count = result.retrieved_definitions.len() as u32; + + for (candidate_rank, retrieved_definition) in + result.retrieved_definitions.iter().enumerate() + { + let candidate_is_gold = gold_path.as_path() + == retrieved_definition.path.as_std_path() + && retrieved_definition + .range + .contains_inclusive(&lsp_point_range); + + let candidate_row = retrieved_definition.range.start.row + 1; + let candidate_column = retrieved_definition.range.start.column + 1; + + let DeclarationScoreComponents { + is_same_file, + is_referenced_nearby, + is_referenced_in_breadcrumb, + reference_count, + same_file_declaration_count, + declaration_count, + reference_line_distance, + declaration_line_distance, + excerpt_vs_item_jaccard, + excerpt_vs_signature_jaccard, + adjacent_vs_item_jaccard, + adjacent_vs_signature_jaccard, + excerpt_vs_item_weighted_overlap, + excerpt_vs_signature_weighted_overlap, + adjacent_vs_item_weighted_overlap, + adjacent_vs_signature_weighted_overlap, + path_import_match_count, + wildcard_path_import_match_count, + import_similarity, + max_import_similarity, + normalized_import_similarity, + wildcard_import_similarity, + normalized_wildcard_import_similarity, + included_by_others, + includes_others, + } = retrieved_definition.components; + + rows.push(Row { + ref_id, + cursor_path: cursor_path.to_string(), + cursor_row, + cursor_column, + cursor_identifier: cursor_identifier.clone(), + gold_in_excerpt, + gold_path: gold_path.to_string_lossy().to_string(), + gold_row, + gold_column, + gold_is_external, + candidate_count, + candidate_path: Some(retrieved_definition.path.as_unix_str().to_string()), + candidate_row: Some(candidate_row), + candidate_column: Some(candidate_column), + candidate_is_gold: Some(candidate_is_gold), + candidate_rank: Some(candidate_rank as u32), + candidate_is_same_file: Some(is_same_file), + candidate_is_referenced_nearby: Some(is_referenced_nearby), + candidate_is_referenced_in_breadcrumb: Some(is_referenced_in_breadcrumb), + candidate_reference_count: Some(reference_count as u32), + candidate_same_file_declaration_count: Some(same_file_declaration_count as u32), + candidate_declaration_count: Some(declaration_count as u32), + candidate_reference_line_distance: Some(reference_line_distance), + candidate_declaration_line_distance: Some(declaration_line_distance), + candidate_excerpt_vs_item_jaccard: Some(excerpt_vs_item_jaccard), + candidate_excerpt_vs_signature_jaccard: Some(excerpt_vs_signature_jaccard), + candidate_adjacent_vs_item_jaccard: Some(adjacent_vs_item_jaccard), + candidate_adjacent_vs_signature_jaccard: Some(adjacent_vs_signature_jaccard), + candidate_excerpt_vs_item_weighted_overlap: Some( + excerpt_vs_item_weighted_overlap, + ), + candidate_excerpt_vs_signature_weighted_overlap: Some( + excerpt_vs_signature_weighted_overlap, + ), + candidate_adjacent_vs_item_weighted_overlap: Some( + adjacent_vs_item_weighted_overlap, + ), + candidate_adjacent_vs_signature_weighted_overlap: Some( + adjacent_vs_signature_weighted_overlap, + ), + candidate_path_import_match_count: Some(path_import_match_count as u32), + candidate_wildcard_path_import_match_count: Some( + wildcard_path_import_match_count as u32, + ), + candidate_import_similarity: Some(import_similarity), + candidate_max_import_similarity: Some(max_import_similarity), + candidate_normalized_import_similarity: Some(normalized_import_similarity), + candidate_wildcard_import_similarity: Some(wildcard_import_similarity), + candidate_normalized_wildcard_import_similarity: Some( + normalized_wildcard_import_similarity, + ), + candidate_included_by_others: Some(included_by_others as u32), + candidate_includes_others: Some(includes_others as u32), + }); } - RetrievalOutcome::ProbablyLocal => { - included_count += 1; - in_excerpt_count += 1; + + if result.retrieved_definitions.is_empty() { + rows.push(Row { + ref_id, + cursor_path: cursor_path.to_string(), + cursor_row, + cursor_column, + cursor_identifier: cursor_identifier.clone(), + gold_in_excerpt, + gold_path: gold_path.to_string_lossy().to_string(), + gold_row, + gold_column, + gold_is_external, + candidate_count, + ..Default::default() + }); } } } + let slices = rows.slices(); + + let RowSlices { + ref_id, + cursor_path, + cursor_row, + cursor_column, + cursor_identifier, + gold_in_excerpt, + gold_path, + gold_row, + gold_column, + gold_is_external, + candidate_path, + candidate_row, + candidate_column, + candidate_is_gold, + candidate_rank, + candidate_count, + candidate_is_same_file, + candidate_is_referenced_nearby, + candidate_is_referenced_in_breadcrumb, + candidate_reference_count, + candidate_same_file_declaration_count, + candidate_declaration_count, + candidate_reference_line_distance, + candidate_declaration_line_distance, + candidate_excerpt_vs_item_jaccard, + candidate_excerpt_vs_signature_jaccard, + candidate_adjacent_vs_item_jaccard, + candidate_adjacent_vs_signature_jaccard, + candidate_excerpt_vs_item_weighted_overlap, + candidate_excerpt_vs_signature_weighted_overlap, + candidate_adjacent_vs_item_weighted_overlap, + candidate_adjacent_vs_signature_weighted_overlap, + candidate_path_import_match_count, + candidate_wildcard_path_import_match_count, + candidate_import_similarity, + candidate_max_import_similarity, + candidate_normalized_import_similarity, + candidate_wildcard_import_similarity, + candidate_normalized_wildcard_import_similarity, + candidate_included_by_others, + candidate_includes_others, + } = slices; + + let df = DataFrame::new(vec![ + Series::new(PlSmallStr::from_str("ref_id"), ref_id).into(), + Series::new(PlSmallStr::from_str("cursor_path"), cursor_path).into(), + Series::new(PlSmallStr::from_str("cursor_row"), cursor_row).into(), + Series::new(PlSmallStr::from_str("cursor_column"), cursor_column).into(), + Series::new(PlSmallStr::from_str("cursor_identifier"), cursor_identifier).into(), + Series::new(PlSmallStr::from_str("gold_in_excerpt"), gold_in_excerpt).into(), + Series::new(PlSmallStr::from_str("gold_path"), gold_path).into(), + Series::new(PlSmallStr::from_str("gold_row"), gold_row).into(), + Series::new(PlSmallStr::from_str("gold_column"), gold_column).into(), + Series::new(PlSmallStr::from_str("gold_is_external"), gold_is_external).into(), + Series::new(PlSmallStr::from_str("candidate_count"), candidate_count).into(), + Series::new(PlSmallStr::from_str("candidate_path"), candidate_path).into(), + Series::new(PlSmallStr::from_str("candidate_row"), candidate_row).into(), + Series::new(PlSmallStr::from_str("candidate_column"), candidate_column).into(), + Series::new(PlSmallStr::from_str("candidate_is_gold"), candidate_is_gold).into(), + Series::new(PlSmallStr::from_str("candidate_rank"), candidate_rank).into(), + Series::new( + PlSmallStr::from_str("candidate_is_same_file"), + candidate_is_same_file, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_is_referenced_nearby"), + candidate_is_referenced_nearby, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_is_referenced_in_breadcrumb"), + candidate_is_referenced_in_breadcrumb, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_reference_count"), + candidate_reference_count, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_same_file_declaration_count"), + candidate_same_file_declaration_count, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_declaration_count"), + candidate_declaration_count, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_reference_line_distance"), + candidate_reference_line_distance, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_declaration_line_distance"), + candidate_declaration_line_distance, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_excerpt_vs_item_jaccard"), + candidate_excerpt_vs_item_jaccard, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_excerpt_vs_signature_jaccard"), + candidate_excerpt_vs_signature_jaccard, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_adjacent_vs_item_jaccard"), + candidate_adjacent_vs_item_jaccard, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_adjacent_vs_signature_jaccard"), + candidate_adjacent_vs_signature_jaccard, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_excerpt_vs_item_weighted_overlap"), + candidate_excerpt_vs_item_weighted_overlap, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_excerpt_vs_signature_weighted_overlap"), + candidate_excerpt_vs_signature_weighted_overlap, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_adjacent_vs_item_weighted_overlap"), + candidate_adjacent_vs_item_weighted_overlap, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_adjacent_vs_signature_weighted_overlap"), + candidate_adjacent_vs_signature_weighted_overlap, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_path_import_match_count"), + candidate_path_import_match_count, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_wildcard_path_import_match_count"), + candidate_wildcard_path_import_match_count, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_import_similarity"), + candidate_import_similarity, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_max_import_similarity"), + candidate_max_import_similarity, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_normalized_import_similarity"), + candidate_normalized_import_similarity, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_wildcard_import_similarity"), + candidate_wildcard_import_similarity, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_normalized_wildcard_import_similarity"), + candidate_normalized_wildcard_import_similarity, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_included_by_others"), + candidate_included_by_others, + ) + .into(), + Series::new( + PlSmallStr::from_str("candidate_includes_others"), + candidate_includes_others, + ) + .into(), + ])?; + + Ok(df) +} + +fn relativize_path(path: &Path) -> &Path { + path.strip_prefix(std::env::current_dir().unwrap()) + .unwrap_or(path) +} + +struct SummaryStats { + references_count: u32, + retrieved_count: u32, + top_match_count: u32, + non_top_match_count: u32, + ranking_involved_top_match_count: u32, + missing_none_retrieved: u32, + missing_wrong_retrieval: u32, + missing_external: u32, + in_excerpt_count: u32, +} - fn count_and_percentage(part: usize, total: usize) -> String { +impl SummaryStats { + fn from_dataframe(df: DataFrame) -> Result { + // TODO: use lazy more + let unique_refs = + df.unique::<(), ()>(Some(&["ref_id".into()]), UniqueKeepStrategy::Any, None)?; + let references_count = unique_refs.height() as u32; + + let gold_mask = df.column("candidate_is_gold")?.bool()?; + let gold_df = df.filter(&gold_mask)?; + let retrieved_count = gold_df.height() as u32; + + let top_match_mask = gold_df.column("candidate_rank")?.u32()?.equal(0); + let top_match_df = gold_df.filter(&top_match_mask)?; + let top_match_count = top_match_df.height() as u32; + + let ranking_involved_top_match_count = top_match_df + .column("candidate_count")? + .u32()? + .gt(1) + .sum() + .unwrap_or_default(); + + let non_top_match_count = (!top_match_mask).sum().unwrap_or(0); + + let not_retrieved_df = df + .lazy() + .group_by(&[col("ref_id"), col("candidate_count")]) + .agg(&[ + col("candidate_is_gold") + .fill_null(false) + .sum() + .alias("gold_count"), + col("gold_in_excerpt").sum().alias("gold_in_excerpt_count"), + col("gold_is_external") + .sum() + .alias("gold_is_external_count"), + ]) + .filter(col("gold_count").eq(lit(0))) + .collect()?; + + let in_excerpt_mask = not_retrieved_df + .column("gold_in_excerpt_count")? + .u32()? + .gt(0); + let in_excerpt_count = in_excerpt_mask.sum().unwrap_or(0); + + let missing_df = not_retrieved_df.filter(&!in_excerpt_mask)?; + + let missing_none_retrieved_mask = missing_df.column("candidate_count")?.u32()?.equal(0); + let missing_none_retrieved = missing_none_retrieved_mask.sum().unwrap_or(0); + let external_mask = missing_df.column("gold_is_external_count")?.u32()?.gt(0); + let missing_external = (missing_none_retrieved_mask & external_mask) + .sum() + .unwrap_or(0); + + let missing_wrong_retrieval = missing_df + .column("candidate_count")? + .u32()? + .gt(0) + .sum() + .unwrap_or(0); + + Ok(SummaryStats { + references_count, + retrieved_count, + top_match_count, + non_top_match_count, + ranking_involved_top_match_count, + missing_none_retrieved, + missing_wrong_retrieval, + missing_external, + in_excerpt_count, + }) + } + + fn count_and_percentage(part: u32, total: u32) -> String { format!("{} ({:.2}%)", part, (part as f64 / total as f64) * 100.0) } +} - println!(""); - println!("╮ references: {}", references_count); - println!( - "├─╮ included: {}", - count_and_percentage(included_count, references_count), - ); - println!( - "│ ├─╮ retrieved: {}", - count_and_percentage(retrieved_count, references_count) - ); - println!( - "│ │ ├─╮ top match : {}", - count_and_percentage(top_match_count, retrieved_count) - ); - println!( - "│ │ │ ╰─╴ involving ranking: {}", - count_and_percentage(ranking_involved_top_match_count, top_match_count) - ); - println!( - "│ │ ╰─╴ non-top match: {}", - count_and_percentage(non_top_match_count, retrieved_count) - ); - println!( - "│ ├─╴ both absent: {}", - count_and_percentage(both_absent_count, included_count) - ); - println!( - "│ ╰─╴ in excerpt: {}", - count_and_percentage(in_excerpt_count, included_count) - ); - println!( - "├─╮ no match: {}", - count_and_percentage(no_match_count, references_count) - ); - println!( - "│ ├─╴ none retrieved: {}", - count_and_percentage(no_match_none_retrieved, no_match_count) - ); - println!( - "│ ╰─╴ wrong retrieval: {}", - count_and_percentage(no_match_wrong_retrieval, no_match_count) - ); - println!( - "╰─╮ expected no match: {}", - count_and_percentage(expected_no_match_count, references_count) - ); - println!( - " ╰─╴ external definition: {}", - count_and_percentage(external_definition_count, expected_no_match_count) - ); +impl std::fmt::Display for SummaryStats { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let included = self.in_excerpt_count + self.retrieved_count; + let missing = self.references_count - included; + writeln!(f)?; + writeln!(f, "╮ references: {}", self.references_count)?; + writeln!( + f, + "├─╮ included: {}", + Self::count_and_percentage(included, self.references_count), + )?; + writeln!( + f, + "│ ├─╮ retrieved: {}", + Self::count_and_percentage(self.retrieved_count, self.references_count) + )?; + writeln!( + f, + "│ │ ├─╮ top match : {}", + Self::count_and_percentage(self.top_match_count, self.retrieved_count) + )?; + writeln!( + f, + "│ │ │ ╰─╴ involving ranking: {}", + Self::count_and_percentage(self.ranking_involved_top_match_count, self.top_match_count) + )?; + writeln!( + f, + "│ │ ╰─╴ non-top match: {}", + Self::count_and_percentage(self.non_top_match_count, self.retrieved_count) + )?; + writeln!( + f, + "│ ╰─╴ in excerpt: {}", + Self::count_and_percentage(self.in_excerpt_count, included) + )?; + writeln!( + f, + "╰─╮ missing: {}", + Self::count_and_percentage(missing, self.references_count) + )?; + writeln!( + f, + " ├─╮ none retrieved: {}", + Self::count_and_percentage(self.missing_none_retrieved, missing) + )?; + writeln!( + f, + " │ ╰─╴ external (expected): {}", + Self::count_and_percentage(self.missing_external, missing) + )?; + writeln!( + f, + " ╰─╴ wrong retrieval: {}", + Self::count_and_percentage(self.missing_wrong_retrieval, missing) + )?; + Ok(()) + } +} - println!(""); - println!("LSP definition cache at {}", lsp_definitions_path.display()); +#[derive(Debug)] +struct ReferenceRetrievalResult { + cursor_path: Arc, + cursor_point: Point, + identifier: Identifier, + excerpt_range: Option>, + lsp_definitions: Vec, + retrieved_definitions: Vec, +} - Ok("".to_string()) +#[derive(Debug)] +struct RetrievedDefinition { + path: Arc, + range: Range, + score: f32, + #[allow(dead_code)] + retrieval_score: f32, + #[allow(dead_code)] + components: DeclarationScoreComponents, } struct RetrieveResult { @@ -828,39 +1253,3 @@ impl From for Point { } } } - -#[derive(Debug)] -struct RetrievalStatsResult { - outcome: RetrievalOutcome, - #[allow(dead_code)] - path: Arc, - #[allow(dead_code)] - identifier: Identifier, - #[allow(dead_code)] - point: Point, - #[allow(dead_code)] - lsp_definitions: Vec, - retrieved_definitions: Vec, -} - -#[derive(Debug)] -enum RetrievalOutcome { - Match { - /// Lowest index within retrieved_definitions that matches an LSP definition. - best_match: usize, - }, - ProbablyLocal, - NoMatch, - NoMatchDueToExternalLspDefinitions, -} - -#[derive(Debug)] -struct RetrievedDefinition { - path: Arc, - range: Range, - score: f32, - #[allow(dead_code)] - retrieval_score: f32, - #[allow(dead_code)] - components: DeclarationScoreComponents, -} diff --git a/script/licenses/zed-licenses.toml b/script/licenses/zed-licenses.toml index 9d13087ece08404e2cae1a44733e382521b8fdd0..fe007501e4fd5b8a2bd400bc3ff9e648c0c2827e 100644 --- a/script/licenses/zed-licenses.toml +++ b/script/licenses/zed-licenses.toml @@ -14,6 +14,7 @@ accepted = [ "Unicode-3.0", "OpenSSL", "Zlib", + "BSL-1.0", ] [procinfo.clarify] diff --git a/tooling/workspace-hack/Cargo.toml b/tooling/workspace-hack/Cargo.toml index 7fd16dfaaa9202f09c82bd859e38ec7d5ed9efd7..794b74901c63eaa8b0ed9fc2722cd90105db9345 100644 --- a/tooling/workspace-hack/Cargo.toml +++ b/tooling/workspace-hack/Cargo.toml @@ -38,9 +38,9 @@ bit-set = { version = "0.8", default-features = false, features = ["std"] } bit-vec = { version = "0.8", default-features = false, features = ["std"] } bitflags = { version = "2", default-features = false, features = ["serde", "std"] } bstr = { version = "1" } -bytemuck = { version = "1", default-features = false, features = ["aarch64_simd", "derive", "extern_crate_alloc"] } +bytemuck = { version = "1", default-features = false, features = ["aarch64_simd", "derive", "extern_crate_alloc", "must_cast"] } byteorder = { version = "1" } -bytes = { version = "1" } +bytes = { version = "1", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] } clap = { version = "4", features = ["cargo", "derive", "string", "wrap_help"] } clap_builder = { version = "4", default-features = false, features = ["cargo", "color", "std", "string", "suggestions", "usage", "wrap_help"] } @@ -55,6 +55,8 @@ either = { version = "1", features = ["serde", "use_std"] } euclid = { version = "0.22" } event-listener = { version = "5" } event-listener-strategy = { version = "0.5" } +flate2 = { version = "1", features = ["zlib-rs"] } +foldhash = { version = "0.1" } form_urlencoded = { version = "1" } futures = { version = "0.3", features = ["io-compat"] } futures-channel = { version = "0.3", features = ["sink"] } @@ -67,7 +69,7 @@ futures-util = { version = "0.3", features = ["channel", "io-compat", "sink"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["std"] } half = { version = "2", features = ["bytemuck", "num-traits", "rand_distr", "use-intrinsics"] } handlebars = { version = "4", features = ["rust-embed"] } -hashbrown-3575ec1268b04181 = { package = "hashbrown", version = "0.15", features = ["serde"] } +hashbrown-3575ec1268b04181 = { package = "hashbrown", version = "0.15", features = ["rayon", "serde"] } hashbrown-582f2526e08bb6a0 = { package = "hashbrown", version = "0.14", features = ["raw"] } hmac = { version = "0.12", default-features = false, features = ["reset"] } hyper = { version = "0.14", features = ["client", "http1", "http2", "runtime", "server", "stream"] } @@ -105,6 +107,8 @@ regalloc2 = { version = "0.11", features = ["checker", "enable-serde"] } regex = { version = "1" } regex-automata = { version = "0.4" } regex-syntax = { version = "0.8" } +reqwest = { version = "0.12", default-features = false, features = ["blocking", "http2", "json", "rustls-tls-native-roots", "stream"] } +ring = { version = "0.17", features = ["std"] } rust_decimal = { version = "1", default-features = false, features = ["maths", "serde", "std"] } rustc-hash = { version = "1" } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", features = ["fs", "net"] } @@ -129,7 +133,7 @@ thiserror = { version = "2" } time = { version = "0.3", features = ["local-offset", "macros", "serde-well-known"] } tokio = { version = "1", features = ["full"] } tokio-rustls = { version = "0.26", default-features = false, features = ["tls12"] } -tokio-util = { version = "0.7", features = ["codec", "compat", "io"] } +tokio-util = { version = "0.7", features = ["codec", "compat", "io-util", "rt"] } toml_datetime = { version = "0.6", default-features = false, features = ["serde"] } toml_edit = { version = "0.22", default-features = false, features = ["display", "parse", "serde"] } tracing = { version = "0.1", features = ["log"] } @@ -167,9 +171,9 @@ bit-set = { version = "0.8", default-features = false, features = ["std"] } bit-vec = { version = "0.8", default-features = false, features = ["std"] } bitflags = { version = "2", default-features = false, features = ["serde", "std"] } bstr = { version = "1" } -bytemuck = { version = "1", default-features = false, features = ["aarch64_simd", "derive", "extern_crate_alloc"] } +bytemuck = { version = "1", default-features = false, features = ["aarch64_simd", "derive", "extern_crate_alloc", "must_cast"] } byteorder = { version = "1" } -bytes = { version = "1" } +bytes = { version = "1", features = ["serde"] } cc = { version = "1", default-features = false, features = ["parallel"] } chrono = { version = "0.4", features = ["serde"] } clap = { version = "4", features = ["cargo", "derive", "string", "wrap_help"] } @@ -185,6 +189,8 @@ either = { version = "1", features = ["serde", "use_std"] } euclid = { version = "0.22" } event-listener = { version = "5" } event-listener-strategy = { version = "0.5" } +flate2 = { version = "1", features = ["zlib-rs"] } +foldhash = { version = "0.1" } form_urlencoded = { version = "1" } futures = { version = "0.3", features = ["io-compat"] } futures-channel = { version = "0.3", features = ["sink"] } @@ -197,7 +203,7 @@ futures-util = { version = "0.3", features = ["channel", "io-compat", "sink"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["std"] } half = { version = "2", features = ["bytemuck", "num-traits", "rand_distr", "use-intrinsics"] } handlebars = { version = "4", features = ["rust-embed"] } -hashbrown-3575ec1268b04181 = { package = "hashbrown", version = "0.15", features = ["serde"] } +hashbrown-3575ec1268b04181 = { package = "hashbrown", version = "0.15", features = ["rayon", "serde"] } hashbrown-582f2526e08bb6a0 = { package = "hashbrown", version = "0.14", features = ["raw"] } heck = { version = "0.4", features = ["unicode"] } hmac = { version = "0.12", default-features = false, features = ["reset"] } @@ -240,6 +246,8 @@ regalloc2 = { version = "0.11", features = ["checker", "enable-serde"] } regex = { version = "1" } regex-automata = { version = "0.4" } regex-syntax = { version = "0.8" } +reqwest = { version = "0.12", default-features = false, features = ["blocking", "http2", "json", "rustls-tls-native-roots", "stream"] } +ring = { version = "0.17", features = ["std"] } rust_decimal = { version = "1", default-features = false, features = ["maths", "serde", "std"] } rustc-hash = { version = "1" } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", features = ["fs", "net"] } @@ -269,7 +277,7 @@ time = { version = "0.3", features = ["local-offset", "macros", "serde-well-know time-macros = { version = "0.2", default-features = false, features = ["formatting", "parsing", "serde"] } tokio = { version = "1", features = ["full"] } tokio-rustls = { version = "0.26", default-features = false, features = ["tls12"] } -tokio-util = { version = "0.7", features = ["codec", "compat", "io"] } +tokio-util = { version = "0.7", features = ["codec", "compat", "io-util", "rt"] } toml_datetime = { version = "0.6", default-features = false, features = ["serde"] } toml_edit = { version = "0.22", default-features = false, features = ["display", "parse", "serde"] } tracing = { version = "0.1", features = ["log"] } @@ -287,8 +295,6 @@ wasmtime-environ = { version = "29", default-features = false, features = ["comp codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } -flate2 = { version = "1" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } @@ -301,13 +307,11 @@ objc2-foundation = { version = "0.3", default-features = false, features = ["NSA objc2-metal = { version = "0.3" } object = { version = "0.36", default-features = false, features = ["archive", "read_core", "unaligned", "write"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "process"] } -rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "termios", "time"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "stdio", "termios", "time"] } scopeguard = { version = "1" } security-framework = { version = "3", features = ["OSX_10_14"] } security-framework-sys = { version = "2", features = ["OSX_10_14"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -317,8 +321,6 @@ tower = { version = "0.5", default-features = false, features = ["timeout", "uti codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } -flate2 = { version = "1" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } @@ -332,13 +334,11 @@ objc2-metal = { version = "0.3" } object = { version = "0.36", default-features = false, features = ["archive", "read_core", "unaligned", "write"] } proc-macro2 = { version = "1", default-features = false, features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "process"] } -rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "termios", "time"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "stdio", "termios", "time"] } scopeguard = { version = "1" } security-framework = { version = "3", features = ["OSX_10_14"] } security-framework-sys = { version = "2", features = ["OSX_10_14"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -348,8 +348,6 @@ tower = { version = "0.5", default-features = false, features = ["timeout", "uti codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } -flate2 = { version = "1" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } @@ -362,13 +360,11 @@ objc2-foundation = { version = "0.3", default-features = false, features = ["NSA objc2-metal = { version = "0.3" } object = { version = "0.36", default-features = false, features = ["archive", "read_core", "unaligned", "write"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "process"] } -rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "termios", "time"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "stdio", "termios", "time"] } scopeguard = { version = "1" } security-framework = { version = "3", features = ["OSX_10_14"] } security-framework-sys = { version = "2", features = ["OSX_10_14"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -378,8 +374,6 @@ tower = { version = "0.5", default-features = false, features = ["timeout", "uti codespan-reporting = { version = "0.12" } core-foundation = { version = "0.9" } core-foundation-sys = { version = "0.8" } -flate2 = { version = "1" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } @@ -393,13 +387,11 @@ objc2-metal = { version = "0.3" } object = { version = "0.36", default-features = false, features = ["archive", "read_core", "unaligned", "write"] } proc-macro2 = { version = "1", default-features = false, features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "process"] } -rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "termios", "time"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "stdio", "termios", "time"] } scopeguard = { version = "1" } security-framework = { version = "3", features = ["OSX_10_14"] } security-framework-sys = { version = "2", features = ["OSX_10_14"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -413,9 +405,7 @@ bytemuck = { version = "1", default-features = false, features = ["min_const_gen cipher = { version = "0.4", default-features = false, features = ["block-padding", "rand_core", "zeroize"] } codespan-reporting = { version = "0.12" } crypto-common = { version = "0.1", default-features = false, features = ["rand_core", "std"] } -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -436,13 +426,11 @@ proc-macro2 = { version = "1", features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } quote = { version = "1" } rand-274715c4dabd11b0 = { package = "rand", version = "0.9" } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "pipe", "process", "shm", "system"] } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "pty", "stdio", "termios", "time"] } scopeguard = { version = "1" } smallvec = { version = "1", default-features = false, features = ["write"] } syn-f595c2ba2a3f28df = { package = "syn", version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -460,9 +448,7 @@ bytemuck = { version = "1", default-features = false, features = ["min_const_gen cipher = { version = "0.4", default-features = false, features = ["block-padding", "rand_core", "zeroize"] } codespan-reporting = { version = "0.12" } crypto-common = { version = "0.1", default-features = false, features = ["rand_core", "std"] } -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -482,12 +468,10 @@ object = { version = "0.36", default-features = false, features = ["archive", "r proc-macro2 = { version = "1", default-features = false, features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } rand-274715c4dabd11b0 = { package = "rand", version = "0.9" } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "pipe", "process", "shm", "system"] } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "pty", "stdio", "termios", "time"] } scopeguard = { version = "1" } smallvec = { version = "1", default-features = false, features = ["write"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -506,9 +490,7 @@ bytemuck = { version = "1", default-features = false, features = ["min_const_gen cipher = { version = "0.4", default-features = false, features = ["block-padding", "rand_core", "zeroize"] } codespan-reporting = { version = "0.12" } crypto-common = { version = "0.1", default-features = false, features = ["rand_core", "std"] } -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -529,13 +511,11 @@ proc-macro2 = { version = "1", features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } quote = { version = "1" } rand-274715c4dabd11b0 = { package = "rand", version = "0.9" } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "pipe", "process", "shm", "system"] } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "pty", "stdio", "termios", "time"] } scopeguard = { version = "1" } smallvec = { version = "1", default-features = false, features = ["write"] } syn-f595c2ba2a3f28df = { package = "syn", version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -553,9 +533,7 @@ bytemuck = { version = "1", default-features = false, features = ["min_const_gen cipher = { version = "0.4", default-features = false, features = ["block-padding", "rand_core", "zeroize"] } codespan-reporting = { version = "0.12" } crypto-common = { version = "0.1", default-features = false, features = ["rand_core", "std"] } -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -575,12 +553,10 @@ object = { version = "0.36", default-features = false, features = ["archive", "r proc-macro2 = { version = "1", default-features = false, features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } rand-274715c4dabd11b0 = { package = "rand", version = "0.9" } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "pipe", "process", "shm", "system"] } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "pty", "stdio", "termios", "time"] } scopeguard = { version = "1" } smallvec = { version = "1", default-features = false, features = ["write"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -592,18 +568,14 @@ zeroize = { version = "1", features = ["zeroize_derive"] } zvariant = { version = "5", features = ["enumflags2", "gvariant", "url"] } [target.x86_64-pc-windows-msvc.dependencies] -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } livekit-runtime = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d" } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "fs", "net"] } scopeguard = { version = "1" } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -618,19 +590,15 @@ windows-sys-c8eced492e86ede7 = { package = "windows-sys", version = "0.48", feat windows-sys-d4189bed749088b6 = { package = "windows-sys", version = "0.61", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Win32_Globalization", "Win32_Networking_WinSock", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Com", "Win32_System_IO", "Win32_System_LibraryLoader", "Win32_System_Threading", "Win32_System_WindowsProgramming", "Win32_UI_Shell"] } [target.x86_64-pc-windows-msvc.build-dependencies] -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12"] } livekit-runtime = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d" } proc-macro2 = { version = "1", default-features = false, features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "fs", "net"] } scopeguard = { version = "1" } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -652,9 +620,7 @@ bytemuck = { version = "1", default-features = false, features = ["min_const_gen cipher = { version = "0.4", default-features = false, features = ["block-padding", "rand_core", "zeroize"] } codespan-reporting = { version = "0.12" } crypto-common = { version = "0.1", default-features = false, features = ["rand_core", "std"] } -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -675,13 +641,11 @@ proc-macro2 = { version = "1", features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } quote = { version = "1" } rand-274715c4dabd11b0 = { package = "rand", version = "0.9" } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "pipe", "process", "shm", "system"] } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "pty", "stdio", "termios", "time"] } scopeguard = { version = "1" } smallvec = { version = "1", default-features = false, features = ["write"] } syn-f595c2ba2a3f28df = { package = "syn", version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] } @@ -699,9 +663,7 @@ bytemuck = { version = "1", default-features = false, features = ["min_const_gen cipher = { version = "0.4", default-features = false, features = ["block-padding", "rand_core", "zeroize"] } codespan-reporting = { version = "0.12" } crypto-common = { version = "0.1", default-features = false, features = ["rand_core", "std"] } -flate2 = { version = "1" } flume = { version = "0.11" } -foldhash = { version = "0.1", default-features = false, features = ["std"] } getrandom-468e82937335b1c9 = { package = "getrandom", version = "0.3", default-features = false, features = ["std"] } getrandom-6f8ce4dd05d13bba = { package = "getrandom", version = "0.2", default-features = false, features = ["js", "rdrand"] } gimli = { version = "0.31", default-features = false, features = ["read", "std", "write"] } @@ -721,12 +683,10 @@ object = { version = "0.36", default-features = false, features = ["archive", "r proc-macro2 = { version = "1", default-features = false, features = ["span-locations"] } prost-5ef9efb8ec2df382 = { package = "prost", version = "0.12", features = ["prost-derive"] } rand-274715c4dabd11b0 = { package = "rand", version = "0.9" } -ring = { version = "0.17", features = ["std"] } rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38", features = ["event", "mm", "net", "param", "pipe", "process", "shm", "system"] } rustix-dff4ba8e3ae991db = { package = "rustix", version = "1", default-features = false, features = ["event", "pipe", "process", "pty", "stdio", "termios", "time"] } scopeguard = { version = "1" } smallvec = { version = "1", default-features = false, features = ["write"] } -sync_wrapper = { version = "1", default-features = false, features = ["futures"] } tokio-rustls = { version = "0.26", default-features = false, features = ["logging", "ring"] } tokio-socks = { version = "0.5", features = ["futures-io"] } tokio-stream = { version = "0.1", features = ["fs"] }