@ondeinference / ed / commits / 4c58fb1

Add the Ed workspace with the core agent and Tauri bindings

Siti AI and smbCloud MailX each grew their own wrapper around the onde SDK, and the two had drifted: one carries a ChatStatus enum, the other four string constants for the same five states; one names its status snapshot ChatStatusResponse, the other EngineStatusSnapshot, over identical fields. Both were also re-declaring types onde already ships. EngineStatus has the five states and serialises to exactly the snake_case strings MailX hand-wrote as constants, and EngineInfo has the four fields both snapshot structs list. So a good part of the duplication was not shared logic at all, just a layer nobody had deleted. What actually needed extracting is thinner than it looked, and this is it: - Lifecycle orchestration. Loading is a sequence of state changes, not one call. Ed drives Loading -> Ready or -> Error and reports each one. - Notification. onde exposes status by polling, which is the wrong shape for a UI. Ed pushes to a StatusSink the host implements. - A flattened reply, so a frontend renders success and failure through one payload instead of each app flattening Result itself. Split into two crates so Ed can be embedded somewhere other than Tauri: onde-ed has no framework dependency, and onde-ed-tauri implements the sink over AppHandle::emit and exposes the commands a webview invokes. The event names match what both apps already emit, so a frontend needs no change. Sessions, persistence, model catalogues and downloads stay with the hosts. They differ per application and do not belong here. onde-ed has no cfg(target_os) gates. onde already splits real and fallback implementations internally, so the crate compiles everywhere. Worth noting MailX gates its chat module 18 times on macOS, iOS and Android, which is narrower than onde's own support list and disables chat on Linux and Windows where it would have worked. Co-Authored-By: siGit Code <noreply@sigit.si>

Seto committed Sep 7, 2026 at 23:30 UTC 4c58fb1d7a3e209949da90d1e99f5ceb9228879e
14 files changed +10410
.gitignore new
+4
@@ -0,0 +1,4 @@
1 +/target
2 +**/*.rs.bk
3 +Cargo.lock.bak
4 +.DS_Store
Cargo.lock new
+9714
@@ -0,0 +1,9714 @@
1 +# This file is automatically @generated by Cargo.
2 +# It is not intended for manual editing.
3 +version = 3
4 +
5 +[[package]]
6 +name = "Inflector"
7 +version = "0.11.4"
8 +source = "registry+https://github.com/rust-lang/crates.io-index"
9 +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
10 +dependencies = [
11 + "lazy_static",
12 + "regex",
13 +]
14 +
15 +[[package]]
16 +name = "adler2"
17 +version = "2.0.1"
18 +source = "registry+https://github.com/rust-lang/crates.io-index"
19 +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
20 +
21 +[[package]]
22 +name = "ahash"
23 +version = "0.8.12"
24 +source = "registry+https://github.com/rust-lang/crates.io-index"
25 +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
26 +dependencies = [
27 + "cfg-if",
28 + "getrandom 0.3.4",
29 + "once_cell",
30 + "serde",
31 + "version_check",
32 + "zerocopy",
33 +]
34 +
35 +[[package]]
36 +name = "aho-corasick"
37 +version = "1.1.5"
38 +source = "registry+https://github.com/rust-lang/crates.io-index"
39 +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
40 +dependencies = [
41 + "memchr",
42 +]
43 +
44 +[[package]]
45 +name = "akin"
46 +version = "0.4.0"
47 +source = "registry+https://github.com/rust-lang/crates.io-index"
48 +checksum = "1763692fc1416554cf051efc56a3de5595eca47299d731cc5c2b583adf8b4d2f"
49 +
50 +[[package]]
51 +name = "aligned"
52 +version = "0.4.3"
53 +source = "registry+https://github.com/rust-lang/crates.io-index"
54 +checksum = "ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685"
55 +dependencies = [
56 + "as-slice",
57 +]
58 +
59 +[[package]]
60 +name = "aligned-vec"
61 +version = "0.6.4"
62 +source = "registry+https://github.com/rust-lang/crates.io-index"
63 +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b"
64 +dependencies = [
65 + "equator",
66 +]
67 +
68 +[[package]]
69 +name = "alloc-no-stdlib"
70 +version = "2.0.4"
71 +source = "registry+https://github.com/rust-lang/crates.io-index"
72 +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
73 +
74 +[[package]]
75 +name = "alloc-stdlib"
76 +version = "0.2.4"
77 +source = "registry+https://github.com/rust-lang/crates.io-index"
78 +checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195"
79 +dependencies = [
80 + "alloc-no-stdlib",
81 +]
82 +
83 +[[package]]
84 +name = "allocator-api2"
85 +version = "0.2.21"
86 +source = "registry+https://github.com/rust-lang/crates.io-index"
87 +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
88 +
89 +[[package]]
90 +name = "android_system_properties"
91 +version = "0.1.6"
92 +source = "registry+https://github.com/rust-lang/crates.io-index"
93 +checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc"
94 +dependencies = [
95 + "libc",
96 +]
97 +
98 +[[package]]
99 +name = "annotate-snippets"
100 +version = "0.12.16"
101 +source = "registry+https://github.com/rust-lang/crates.io-index"
102 +checksum = "f211a51805bc641f3ad5b7664c77d2547af685cc33b4cd8d31964027a46f13f1"
103 +dependencies = [
104 + "anstyle",
105 + "memchr",
106 + "unicode-width 0.2.2",
107 +]
108 +
109 +[[package]]
110 +name = "ansi_term"
111 +version = "0.12.1"
112 +source = "registry+https://github.com/rust-lang/crates.io-index"
113 +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
114 +dependencies = [
115 + "winapi",
116 +]
117 +
118 +[[package]]
119 +name = "anstream"
120 +version = "1.0.0"
121 +source = "registry+https://github.com/rust-lang/crates.io-index"
122 +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
123 +dependencies = [
124 + "anstyle",
125 + "anstyle-parse",
126 + "anstyle-query",
127 + "anstyle-wincon",
128 + "colorchoice",
129 + "is_terminal_polyfill",
130 + "utf8parse",
131 +]
132 +
133 +[[package]]
134 +name = "anstyle"
135 +version = "1.0.14"
136 +source = "registry+https://github.com/rust-lang/crates.io-index"
137 +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
138 +
139 +[[package]]
140 +name = "anstyle-parse"
141 +version = "1.0.0"
142 +source = "registry+https://github.com/rust-lang/crates.io-index"
143 +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
144 +dependencies = [
145 + "utf8parse",
146 +]
147 +
148 +[[package]]
149 +name = "anstyle-query"
150 +version = "1.1.5"
151 +source = "registry+https://github.com/rust-lang/crates.io-index"
152 +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
153 +dependencies = [
154 + "windows-sys 0.61.2",
155 +]
156 +
157 +[[package]]
158 +name = "anstyle-wincon"
159 +version = "3.0.11"
160 +source = "registry+https://github.com/rust-lang/crates.io-index"
161 +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
162 +dependencies = [
163 + "anstyle",
164 + "once_cell_polyfill",
165 + "windows-sys 0.61.2",
166 +]
167 +
168 +[[package]]
169 +name = "anyhow"
170 +version = "1.0.104"
171 +source = "registry+https://github.com/rust-lang/crates.io-index"
172 +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
173 +
174 +[[package]]
175 +name = "apodize"
176 +version = "1.0.0"
177 +source = "registry+https://github.com/rust-lang/crates.io-index"
178 +checksum = "fca387cdc0a1f9c7a7c26556d584aa2d07fc529843082e4861003cde4ab914ed"
179 +
180 +[[package]]
181 +name = "approx"
182 +version = "0.5.1"
183 +source = "registry+https://github.com/rust-lang/crates.io-index"
184 +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
185 +dependencies = [
186 + "num-traits",
187 +]
188 +
189 +[[package]]
190 +name = "arbitrary"
191 +version = "1.4.2"
192 +source = "registry+https://github.com/rust-lang/crates.io-index"
193 +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
194 +
195 +[[package]]
196 +name = "arg_enum_proc_macro"
197 +version = "0.3.4"
198 +source = "registry+https://github.com/rust-lang/crates.io-index"
199 +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea"
200 +dependencies = [
201 + "proc-macro2",
202 + "quote",
203 + "syn 2.0.119",
204 +]
205 +
206 +[[package]]
207 +name = "arraydeque"
208 +version = "0.5.1"
209 +source = "registry+https://github.com/rust-lang/crates.io-index"
210 +checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236"
211 +
212 +[[package]]
213 +name = "arrayvec"
214 +version = "0.7.8"
215 +source = "registry+https://github.com/rust-lang/crates.io-index"
216 +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
217 +
218 +[[package]]
219 +name = "as-any"
220 +version = "0.3.2"
221 +source = "registry+https://github.com/rust-lang/crates.io-index"
222 +checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063"
223 +
224 +[[package]]
225 +name = "as-slice"
226 +version = "0.2.1"
227 +source = "registry+https://github.com/rust-lang/crates.io-index"
228 +checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516"
229 +dependencies = [
230 + "stable_deref_trait",
231 +]
232 +
233 +[[package]]
234 +name = "askama"
235 +version = "0.14.0"
236 +source = "registry+https://github.com/rust-lang/crates.io-index"
237 +checksum = "f75363874b771be265f4ffe307ca705ef6f3baa19011c149da8674a87f1b75c4"
238 +dependencies = [
239 + "askama_derive",
240 + "itoa",
241 + "percent-encoding",
242 + "serde",
243 + "serde_json",
244 +]
245 +
246 +[[package]]
247 +name = "askama_derive"
248 +version = "0.14.0"
249 +source = "registry+https://github.com/rust-lang/crates.io-index"
250 +checksum = "129397200fe83088e8a68407a8e2b1f826cf0086b21ccdb866a722c8bcd3a94f"
251 +dependencies = [
252 + "askama_parser",
253 + "basic-toml",
254 + "memchr",
255 + "proc-macro2",
256 + "quote",
257 + "rustc-hash 2.1.3",
258 + "serde",
259 + "serde_derive",
260 + "syn 2.0.119",
261 +]
262 +
263 +[[package]]
264 +name = "askama_parser"
265 +version = "0.14.0"
266 +source = "registry+https://github.com/rust-lang/crates.io-index"
267 +checksum = "d6ab5630b3d5eaf232620167977f95eb51f3432fc76852328774afbd242d4358"
268 +dependencies = [
269 + "memchr",
270 + "serde",
271 + "serde_derive",
272 + "winnow 0.7.15",
273 +]
274 +
275 +[[package]]
276 +name = "async-compat"
277 +version = "0.2.5"
278 +source = "registry+https://github.com/rust-lang/crates.io-index"
279 +checksum = "a1ba85bc55464dcbf728b56d97e119d673f4cf9062be330a9a26f3acf504a590"
280 +dependencies = [
281 + "futures-core",
282 + "futures-io",
283 + "once_cell",
284 + "pin-project-lite",
285 + "tokio",
286 +]
287 +
288 +[[package]]
289 +name = "async-trait"
290 +version = "0.1.92"
291 +source = "registry+https://github.com/rust-lang/crates.io-index"
292 +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
293 +dependencies = [
294 + "proc-macro2",
295 + "quote",
296 + "syn 3.0.5",
297 +]
298 +
299 +[[package]]
300 +name = "atk"
301 +version = "0.18.2"
302 +source = "registry+https://github.com/rust-lang/crates.io-index"
303 +checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b"
304 +dependencies = [
305 + "atk-sys",
306 + "glib",
307 + "libc",
308 +]
309 +
310 +[[package]]
311 +name = "atk-sys"
312 +version = "0.18.2"
313 +source = "registry+https://github.com/rust-lang/crates.io-index"
314 +checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086"
315 +dependencies = [
316 + "glib-sys",
317 + "gobject-sys",
318 + "libc",
319 + "system-deps",
320 +]
321 +
322 +[[package]]
323 +name = "atomic-waker"
324 +version = "1.1.2"
325 +source = "registry+https://github.com/rust-lang/crates.io-index"
326 +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
327 +
328 +[[package]]
329 +name = "atty"
330 +version = "0.2.14"
331 +source = "registry+https://github.com/rust-lang/crates.io-index"
332 +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
333 +dependencies = [
334 + "hermit-abi 0.1.19",
335 + "libc",
336 + "winapi",
337 +]
338 +
339 +[[package]]
340 +name = "autocfg"
341 +version = "1.5.1"
342 +source = "registry+https://github.com/rust-lang/crates.io-index"
343 +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
344 +
345 +[[package]]
346 +name = "av-scenechange"
347 +version = "0.14.1"
348 +source = "registry+https://github.com/rust-lang/crates.io-index"
349 +checksum = "0f321d77c20e19b92c39e7471cf986812cbb46659d2af674adc4331ef3f18394"
350 +dependencies = [
351 + "aligned",
352 + "anyhow",
353 + "arg_enum_proc_macro",
354 + "arrayvec",
355 + "log",
356 + "num-rational",
357 + "num-traits",
358 + "pastey 0.1.1",
359 + "rayon",
360 + "thiserror 2.0.20",
361 + "v_frame",
362 + "y4m",
363 +]
364 +
365 +[[package]]
366 +name = "av1-grain"
367 +version = "0.2.5"
368 +source = "registry+https://github.com/rust-lang/crates.io-index"
369 +checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8"
370 +dependencies = [
371 + "anyhow",
372 + "arrayvec",
373 + "log",
374 + "nom 8.0.0",
375 + "num-rational",
376 + "v_frame",
377 +]
378 +
379 +[[package]]
380 +name = "avif-serialize"
381 +version = "0.8.9"
382 +source = "registry+https://github.com/rust-lang/crates.io-index"
383 +checksum = "e7178fe5f7d460b13895ebb9dcb28a3a6216d2df2574a0806cb51b555d297f38"
384 +dependencies = [
385 + "arrayvec",
386 +]
387 +
388 +[[package]]
389 +name = "aws-lc-rs"
390 +version = "1.18.1"
391 +source = "registry+https://github.com/rust-lang/crates.io-index"
392 +checksum = "b281d307588d634de920874890732659e2e7672f72b5e10e81badc1a8a83621e"
393 +dependencies = [
394 + "aws-lc-sys",
395 + "zeroize",
396 +]
397 +
398 +[[package]]
399 +name = "aws-lc-sys"
400 +version = "0.45.0"
401 +source = "registry+https://github.com/rust-lang/crates.io-index"
402 +checksum = "9bff6c3b54fad79a2e60b8102caf565819711497c1f5f092f49508e2f5c31b27"
403 +dependencies = [
404 + "cc",
405 + "cmake",
406 + "dunce",
407 + "fs_extra",
408 + "pkg-config",
409 +]
410 +
411 +[[package]]
412 +name = "base64"
413 +version = "0.13.1"
414 +source = "registry+https://github.com/rust-lang/crates.io-index"
415 +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
416 +
417 +[[package]]
418 +name = "base64"
419 +version = "0.21.7"
420 +source = "registry+https://github.com/rust-lang/crates.io-index"
421 +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
422 +
423 +[[package]]
424 +name = "base64"
425 +version = "0.22.1"
426 +source = "registry+https://github.com/rust-lang/crates.io-index"
427 +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
428 +
429 +[[package]]
430 +name = "base64"
431 +version = "0.23.1"
432 +source = "registry+https://github.com/rust-lang/crates.io-index"
433 +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5"
434 +
435 +[[package]]
436 +name = "basic-toml"
437 +version = "0.1.10"
438 +source = "registry+https://github.com/rust-lang/crates.io-index"
439 +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a"
440 +dependencies = [
441 + "serde",
442 +]
443 +
444 +[[package]]
445 +name = "bit-set"
446 +version = "0.5.3"
447 +source = "registry+https://github.com/rust-lang/crates.io-index"
448 +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
449 +dependencies = [
450 + "bit-vec 0.6.3",
451 +]
452 +
453 +[[package]]
454 +name = "bit-set"
455 +version = "0.8.0"
456 +source = "registry+https://github.com/rust-lang/crates.io-index"
457 +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
458 +dependencies = [
459 + "bit-vec 0.8.0",
460 +]
461 +
462 +[[package]]
463 +name = "bit-vec"
464 +version = "0.6.3"
465 +source = "registry+https://github.com/rust-lang/crates.io-index"
466 +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
467 +
468 +[[package]]
469 +name = "bit-vec"
470 +version = "0.8.0"
471 +source = "registry+https://github.com/rust-lang/crates.io-index"
472 +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
473 +
474 +[[package]]
475 +name = "bit_field"
476 +version = "0.10.3"
477 +source = "registry+https://github.com/rust-lang/crates.io-index"
478 +checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6"
479 +
480 +[[package]]
481 +name = "bitflags"
482 +version = "1.3.2"
483 +source = "registry+https://github.com/rust-lang/crates.io-index"
484 +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
485 +
486 +[[package]]
487 +name = "bitflags"
488 +version = "2.13.1"
489 +source = "registry+https://github.com/rust-lang/crates.io-index"
490 +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
491 +dependencies = [
492 + "serde_core",
493 +]
494 +
495 +[[package]]
496 +name = "bitstream-io"
497 +version = "4.10.0"
498 +source = "registry+https://github.com/rust-lang/crates.io-index"
499 +checksum = "7eff00be299a18769011411c9def0d827e8f2d7bf0c3dbf53633147a8867fd1f"
500 +dependencies = [
501 + "no_std_io2",
502 +]
503 +
504 +[[package]]
505 +name = "block"
506 +version = "0.1.6"
507 +source = "registry+https://github.com/rust-lang/crates.io-index"
508 +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
509 +
510 +[[package]]
511 +name = "block-buffer"
512 +version = "0.10.4"
513 +source = "registry+https://github.com/rust-lang/crates.io-index"
514 +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
515 +dependencies = [
516 + "generic-array",
517 +]
518 +
519 +[[package]]
520 +name = "block2"
521 +version = "0.6.2"
522 +source = "registry+https://github.com/rust-lang/crates.io-index"
523 +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
524 +dependencies = [
525 + "objc2",
526 +]
527 +
528 +[[package]]
529 +name = "bm25"
530 +version = "2.3.2"
531 +source = "registry+https://github.com/rust-lang/crates.io-index"
532 +checksum = "1cbd8ffdfb7b4c2ff038726178a780a94f90525ed0ad264c0afaa75dd8c18a64"
533 +dependencies = [
534 + "cached",
535 + "deunicode",
536 + "fxhash",
537 + "rust-stemmers",
538 + "stop-words",
539 + "unicode-segmentation",
540 +]
541 +
542 +[[package]]
543 +name = "brotli"
544 +version = "8.0.4"
545 +source = "registry+https://github.com/rust-lang/crates.io-index"
546 +checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3"
547 +dependencies = [
548 + "alloc-no-stdlib",
549 + "alloc-stdlib",
550 + "brotli-decompressor",
551 +]
552 +
553 +[[package]]
554 +name = "brotli-decompressor"
555 +version = "5.0.3"
556 +source = "registry+https://github.com/rust-lang/crates.io-index"
557 +checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583"
558 +dependencies = [
559 + "alloc-no-stdlib",
560 + "alloc-stdlib",
561 +]
562 +
563 +[[package]]
564 +name = "bs58"
565 +version = "0.5.1"
566 +source = "registry+https://github.com/rust-lang/crates.io-index"
567 +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
568 +dependencies = [
569 + "tinyvec",
570 +]
571 +
572 +[[package]]
573 +name = "bstr"
574 +version = "1.13.1"
575 +source = "registry+https://github.com/rust-lang/crates.io-index"
576 +checksum = "6bb31b46c14244e20ee9984b11bf5c992b91fb6939fea616e3512c8baecdbe5f"
577 +dependencies = [
578 + "memchr",
579 + "regex-automata",
580 + "serde_core",
581 +]
582 +
583 +[[package]]
584 +name = "built"
585 +version = "0.8.1"
586 +source = "registry+https://github.com/rust-lang/crates.io-index"
587 +checksum = "5c0e531d93d39c34eef561e929e8a7f86d77a5af08aac4f6d6e39976c51858e9"
588 +
589 +[[package]]
590 +name = "bumpalo"
591 +version = "3.20.3"
592 +source = "registry+https://github.com/rust-lang/crates.io-index"
593 +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
594 +
595 +[[package]]
596 +name = "bytemuck"
597 +version = "1.25.2"
598 +source = "registry+https://github.com/rust-lang/crates.io-index"
599 +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797"
600 +dependencies = [
601 + "bytemuck_derive",
602 +]
603 +
604 +[[package]]
605 +name = "bytemuck_derive"
606 +version = "1.12.0"
607 +source = "registry+https://github.com/rust-lang/crates.io-index"
608 +checksum = "fc0e56a716f1e132ff6bf4bdac1c944a3fcdc1cae65f70a4a2a1ac3b401d2d1f"
609 +dependencies = [
610 + "proc-macro2",
611 + "quote",
612 + "syn 3.0.5",
613 +]
614 +
615 +[[package]]
616 +name = "byteorder"
617 +version = "1.5.0"
618 +source = "registry+https://github.com/rust-lang/crates.io-index"
619 +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
620 +
621 +[[package]]
622 +name = "byteorder-lite"
623 +version = "0.1.0"
624 +source = "registry+https://github.com/rust-lang/crates.io-index"
625 +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
626 +
627 +[[package]]
628 +name = "bytes"
629 +version = "1.12.1"
630 +source = "registry+https://github.com/rust-lang/crates.io-index"
631 +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
632 +dependencies = [
633 + "serde",
634 +]
635 +
636 +[[package]]
637 +name = "cached"
638 +version = "0.56.0"
639 +source = "registry+https://github.com/rust-lang/crates.io-index"
640 +checksum = "801927ee168e17809ab8901d9f01f700cd7d8d6a6527997fee44e4b0327a253c"
641 +dependencies = [
642 + "ahash",
643 + "cached_proc_macro",
644 + "cached_proc_macro_types",
645 + "hashbrown 0.15.5",
646 + "once_cell",
647 + "thiserror 2.0.20",
648 + "web-time",
649 +]
650 +
651 +[[package]]
652 +name = "cached_proc_macro"
653 +version = "0.25.0"
654 +source = "registry+https://github.com/rust-lang/crates.io-index"
655 +checksum = "9225bdcf4e4a9a4c08bf16607908eb2fbf746828d5e0b5e019726dbf6571f201"
656 +dependencies = [
657 + "darling 0.20.11",
658 + "proc-macro2",
659 + "quote",
660 + "syn 2.0.119",
661 +]
662 +
663 +[[package]]
664 +name = "cached_proc_macro_types"
665 +version = "0.1.1"
666 +source = "registry+https://github.com/rust-lang/crates.io-index"
667 +checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0"
668 +
669 +[[package]]
670 +name = "cairo-rs"
671 +version = "0.18.5"
672 +source = "registry+https://github.com/rust-lang/crates.io-index"
673 +checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
674 +dependencies = [
675 + "bitflags 2.13.1",
676 + "cairo-sys-rs",
677 + "glib",
678 + "libc",
679 + "once_cell",
680 + "thiserror 1.0.69",
681 +]
682 +
683 +[[package]]
684 +name = "cairo-sys-rs"
685 +version = "0.18.2"
686 +source = "registry+https://github.com/rust-lang/crates.io-index"
687 +checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
688 +dependencies = [
689 + "glib-sys",
690 + "libc",
691 + "system-deps",
692 +]
693 +
694 +[[package]]
695 +name = "camino"
696 +version = "1.2.5"
697 +source = "registry+https://github.com/rust-lang/crates.io-index"
698 +checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d"
699 +dependencies = [
700 + "serde_core",
701 +]
702 +
703 +[[package]]
704 +name = "candle-metal-kernels"
705 +version = "0.11.0"
706 +source = "registry+https://github.com/rust-lang/crates.io-index"
707 +checksum = "242e83c6acf639bb273c929d73c67a882bb4dd08a140f121096e19ba2f213d3e"
708 +dependencies = [
709 + "block2",
710 + "half",
711 + "objc2",
712 + "objc2-foundation",
713 + "objc2-metal",
714 + "once_cell",
715 + "thiserror 2.0.20",
716 + "tracing",
717 +]
718 +
719 +[[package]]
720 +name = "candle-ug"
721 +version = "0.11.0"
722 +source = "registry+https://github.com/rust-lang/crates.io-index"
723 +checksum = "257411c33abf7d898a31ac20d80813dfe96ff09e23a73039e22ab293aea9b871"
724 +dependencies = [
725 + "ug",
726 + "ug-metal",
727 +]
728 +
729 +[[package]]
730 +name = "cargo-platform"
731 +version = "0.1.9"
732 +source = "registry+https://github.com/rust-lang/crates.io-index"
733 +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
734 +dependencies = [
735 + "serde",
736 +]
737 +
738 +[[package]]
739 +name = "cargo_metadata"
740 +version = "0.19.2"
741 +source = "registry+https://github.com/rust-lang/crates.io-index"
742 +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
743 +dependencies = [
744 + "camino",
745 + "cargo-platform",
746 + "semver",
747 + "serde",
748 + "serde_json",
749 + "thiserror 2.0.20",
750 +]
751 +
752 +[[package]]
753 +name = "cargo_toml"
754 +version = "0.22.3"
755 +source = "registry+https://github.com/rust-lang/crates.io-index"
756 +checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77"
757 +dependencies = [
758 + "serde",
759 + "toml 0.9.12+spec-1.1.0",
760 +]
761 +
762 +[[package]]
763 +name = "castaway"
764 +version = "0.2.4"
765 +source = "registry+https://github.com/rust-lang/crates.io-index"
766 +checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"
767 +dependencies = [
768 + "rustversion",
769 +]
770 +
771 +[[package]]
772 +name = "cc"
773 +version = "1.4.5"
774 +source = "registry+https://github.com/rust-lang/crates.io-index"
775 +checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80"
776 +dependencies = [
777 + "find-msvc-tools",
778 + "jobserver",
779 + "libc",
780 + "shlex",
781 +]
782 +
783 +[[package]]
784 +name = "cesu8"
785 +version = "1.1.0"
786 +source = "registry+https://github.com/rust-lang/crates.io-index"
787 +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
788 +
789 +[[package]]
790 +name = "cfb"
791 +version = "0.7.3"
792 +source = "registry+https://github.com/rust-lang/crates.io-index"
793 +checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f"
794 +dependencies = [
795 + "byteorder",
796 + "fnv",
797 + "uuid 1.26.0",
798 +]
799 +
800 +[[package]]
801 +name = "cfg-expr"
802 +version = "0.15.8"
803 +source = "registry+https://github.com/rust-lang/crates.io-index"
804 +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
805 +dependencies = [
806 + "smallvec 1.16.0",
807 + "target-lexicon",
808 +]
809 +
810 +[[package]]
811 +name = "cfg-if"
812 +version = "1.0.4"
813 +source = "registry+https://github.com/rust-lang/crates.io-index"
814 +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
815 +
816 +[[package]]
817 +name = "cfg_aliases"
818 +version = "0.2.2"
819 +source = "registry+https://github.com/rust-lang/crates.io-index"
820 +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
821 +
822 +[[package]]
823 +name = "cfgrammar"
824 +version = "0.14.2"
825 +source = "registry+https://github.com/rust-lang/crates.io-index"
826 +checksum = "b5ef80386dea3cda50570f22e1c6a474f0cc688ae220fc584fef354acaf41f2b"
827 +dependencies = [
828 + "indexmap 2.14.2",
829 + "num-traits",
830 + "proc-macro2",
831 + "quote",
832 + "regex",
833 + "vob",
834 +]
835 +
836 +[[package]]
837 +name = "chacha20"
838 +version = "0.10.2"
839 +source = "registry+https://github.com/rust-lang/crates.io-index"
840 +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06"
841 +dependencies = [
842 + "cfg-if",
843 + "cpufeatures 0.3.1",
844 + "rand_core 0.10.1",
845 +]
846 +
847 +[[package]]
848 +name = "chrono"
849 +version = "0.4.45"
850 +source = "registry+https://github.com/rust-lang/crates.io-index"
851 +checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
852 +dependencies = [
853 + "iana-time-zone",
854 + "js-sys",
855 + "num-traits",
856 + "serde",
857 + "wasm-bindgen",
858 + "windows-link 0.2.1",
859 +]
860 +
861 +[[package]]
862 +name = "clap"
863 +version = "2.34.0"
864 +source = "registry+https://github.com/rust-lang/crates.io-index"
865 +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
866 +dependencies = [
867 + "ansi_term",
868 + "atty",
869 + "bitflags 1.3.2",
870 + "strsim 0.8.0",
871 + "textwrap 0.11.0",
872 + "unicode-width 0.1.14",
873 + "vec_map",
874 +]
875 +
876 +[[package]]
877 +name = "clap"
878 +version = "4.6.6"
879 +source = "registry+https://github.com/rust-lang/crates.io-index"
880 +checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
881 +dependencies = [
882 + "clap_builder",
883 + "clap_derive",
884 +]
885 +
886 +[[package]]
887 +name = "clap_builder"
888 +version = "4.6.6"
889 +source = "registry+https://github.com/rust-lang/crates.io-index"
890 +checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
891 +dependencies = [
892 + "anstream",
893 + "anstyle",
894 + "clap_lex",
895 + "strsim 0.11.1",
896 + "terminal_size",
897 +]
898 +
899 +[[package]]
900 +name = "clap_derive"
901 +version = "4.6.4"
902 +source = "registry+https://github.com/rust-lang/crates.io-index"
903 +checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"
904 +dependencies = [
905 + "heck 0.5.0",
906 + "proc-macro2",
907 + "quote",
908 + "syn 3.0.5",
909 +]
910 +
911 +[[package]]
912 +name = "clap_lex"
913 +version = "1.1.0"
914 +source = "registry+https://github.com/rust-lang/crates.io-index"
915 +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
916 +
917 +[[package]]
918 +name = "cmake"
919 +version = "0.1.58"
920 +source = "registry+https://github.com/rust-lang/crates.io-index"
921 +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
922 +dependencies = [
923 + "cc",
924 +]
925 +
926 +[[package]]
927 +name = "color_quant"
928 +version = "1.1.0"
929 +source = "registry+https://github.com/rust-lang/crates.io-index"
930 +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
931 +
932 +[[package]]
933 +name = "colorchoice"
934 +version = "1.0.5"
935 +source = "registry+https://github.com/rust-lang/crates.io-index"
936 +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
937 +
938 +[[package]]
939 +name = "combine"
940 +version = "4.6.8"
941 +source = "registry+https://github.com/rust-lang/crates.io-index"
942 +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e"
943 +dependencies = [
944 + "bytes",
945 + "memchr",
946 +]
947 +
948 +[[package]]
949 +name = "compact_str"
950 +version = "0.9.1"
951 +source = "registry+https://github.com/rust-lang/crates.io-index"
952 +checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab"
953 +dependencies = [
954 + "castaway",
955 + "cfg-if",
956 + "itoa",
957 + "rustversion",
958 + "ryu",
959 + "serde",
960 + "static_assertions",
961 +]
962 +
963 +[[package]]
964 +name = "console"
965 +version = "0.15.11"
966 +source = "registry+https://github.com/rust-lang/crates.io-index"
967 +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8"
968 +dependencies = [
969 + "encode_unicode",
970 + "libc",
971 + "once_cell",
972 + "unicode-width 0.2.2",
973 + "windows-sys 0.59.0",
974 +]
975 +
976 +[[package]]
977 +name = "console"
978 +version = "0.16.4"
979 +source = "registry+https://github.com/rust-lang/crates.io-index"
980 +checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c"
981 +dependencies = [
982 + "encode_unicode",
983 + "libc",
984 + "unicode-width 0.2.2",
985 + "windows-sys 0.61.2",
986 +]
987 +
988 +[[package]]
989 +name = "convert_case"
990 +version = "0.6.0"
991 +source = "registry+https://github.com/rust-lang/crates.io-index"
992 +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
993 +dependencies = [
994 + "unicode-segmentation",
995 +]
996 +
997 +[[package]]
998 +name = "convert_case"
999 +version = "0.10.0"
1000 +source = "registry+https://github.com/rust-lang/crates.io-index"
1001 +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9"
1002 +dependencies = [
1003 + "unicode-segmentation",
1004 +]
1005 +
1006 +[[package]]
1007 +name = "cookie"
1008 +version = "0.18.2"
1009 +source = "registry+https://github.com/rust-lang/crates.io-index"
1010 +checksum = "1a373e3602691c3cdea496d2f0ee5935151e6168fe87739483c463db1b2f2f87"
1011 +dependencies = [
1012 + "time",
1013 + "version_check",
1014 +]
1015 +
1016 +[[package]]
1017 +name = "core-foundation"
1018 +version = "0.9.4"
1019 +source = "registry+https://github.com/rust-lang/crates.io-index"
1020 +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
1021 +dependencies = [
1022 + "core-foundation-sys",
1023 + "libc",
1024 +]
1025 +
1026 +[[package]]
1027 +name = "core-foundation"
1028 +version = "0.10.1"
1029 +source = "registry+https://github.com/rust-lang/crates.io-index"
1030 +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
1031 +dependencies = [
1032 + "core-foundation-sys",
1033 + "libc",
1034 +]
1035 +
1036 +[[package]]
1037 +name = "core-foundation-sys"
1038 +version = "0.8.7"
1039 +source = "registry+https://github.com/rust-lang/crates.io-index"
1040 +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
1041 +
1042 +[[package]]
1043 +name = "core-graphics"
1044 +version = "0.25.0"
1045 +source = "registry+https://github.com/rust-lang/crates.io-index"
1046 +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97"
1047 +dependencies = [
1048 + "bitflags 2.13.1",
1049 + "core-foundation 0.10.1",
1050 + "core-graphics-types 0.2.0",
1051 + "foreign-types",
1052 + "libc",
1053 +]
1054 +
1055 +[[package]]
1056 +name = "core-graphics-types"
1057 +version = "0.1.3"
1058 +source = "registry+https://github.com/rust-lang/crates.io-index"
1059 +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
1060 +dependencies = [
1061 + "bitflags 1.3.2",
1062 + "core-foundation 0.9.4",
1063 + "libc",
1064 +]
1065 +
1066 +[[package]]
1067 +name = "core-graphics-types"
1068 +version = "0.2.0"
1069 +source = "registry+https://github.com/rust-lang/crates.io-index"
1070 +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
1071 +dependencies = [
1072 + "bitflags 2.13.1",
1073 + "core-foundation 0.10.1",
1074 + "libc",
1075 +]
1076 +
1077 +[[package]]
1078 +name = "core_detect"
1079 +version = "1.0.0"
1080 +source = "registry+https://github.com/rust-lang/crates.io-index"
1081 +checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48"
1082 +
1083 +[[package]]
1084 +name = "cpufeatures"
1085 +version = "0.2.17"
1086 +source = "registry+https://github.com/rust-lang/crates.io-index"
1087 +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
1088 +dependencies = [
1089 + "libc",
1090 +]
1091 +
1092 +[[package]]
1093 +name = "cpufeatures"
1094 +version = "0.3.1"
1095 +source = "registry+https://github.com/rust-lang/crates.io-index"
1096 +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566"
1097 +dependencies = [
1098 + "libc",
1099 +]
1100 +
1101 +[[package]]
1102 +name = "crc32fast"
1103 +version = "1.5.1"
1104 +source = "registry+https://github.com/rust-lang/crates.io-index"
1105 +checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550"
1106 +dependencies = [
1107 + "cfg-if",
1108 +]
1109 +
1110 +[[package]]
1111 +name = "crossbeam-channel"
1112 +version = "0.5.17"
1113 +source = "registry+https://github.com/rust-lang/crates.io-index"
1114 +checksum = "98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1"
1115 +dependencies = [
1116 + "crossbeam-utils",
1117 +]
1118 +
1119 +[[package]]
1120 +name = "crossbeam-deque"
1121 +version = "0.8.8"
1122 +source = "registry+https://github.com/rust-lang/crates.io-index"
1123 +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a"
1124 +dependencies = [
1125 + "crossbeam-epoch",
1126 + "crossbeam-utils",
1127 +]
1128 +
1129 +[[package]]
1130 +name = "crossbeam-epoch"
1131 +version = "0.9.21"
1132 +source = "registry+https://github.com/rust-lang/crates.io-index"
1133 +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d"
1134 +dependencies = [
1135 + "crossbeam-utils",
1136 +]
1137 +
1138 +[[package]]
1139 +name = "crossbeam-utils"
1140 +version = "0.8.23"
1141 +source = "registry+https://github.com/rust-lang/crates.io-index"
1142 +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6"
1143 +
1144 +[[package]]
1145 +name = "crossterm"
1146 +version = "0.29.0"
1147 +source = "registry+https://github.com/rust-lang/crates.io-index"
1148 +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
1149 +dependencies = [
1150 + "bitflags 2.13.1",
1151 + "crossterm_winapi",
1152 + "derive_more",
1153 + "document-features",
1154 + "mio",
1155 + "parking_lot",
1156 + "rustix",
1157 + "signal-hook",
1158 + "signal-hook-mio",
1159 + "winapi",
1160 +]
1161 +
1162 +[[package]]
1163 +name = "crossterm_winapi"
1164 +version = "0.9.1"
1165 +source = "registry+https://github.com/rust-lang/crates.io-index"
1166 +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
1167 +dependencies = [
1168 + "winapi",
1169 +]
1170 +
1171 +[[package]]
1172 +name = "crunchy"
1173 +version = "0.2.4"
1174 +source = "registry+https://github.com/rust-lang/crates.io-index"
1175 +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
1176 +
1177 +[[package]]
1178 +name = "crypto-common"
1179 +version = "0.1.7"
1180 +source = "registry+https://github.com/rust-lang/crates.io-index"
1181 +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
1182 +dependencies = [
1183 + "generic-array",
1184 + "typenum",
1185 +]
1186 +
1187 +[[package]]
1188 +name = "cssparser"
1189 +version = "0.36.0"
1190 +source = "registry+https://github.com/rust-lang/crates.io-index"
1191 +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2"
1192 +dependencies = [
1193 + "cssparser-macros",
1194 + "dtoa-short",
1195 + "itoa",
1196 + "phf",
1197 + "smallvec 1.16.0",
1198 +]
1199 +
1200 +[[package]]
1201 +name = "cssparser-macros"
1202 +version = "0.6.1"
1203 +source = "registry+https://github.com/rust-lang/crates.io-index"
1204 +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
1205 +dependencies = [
1206 + "quote",
1207 + "syn 2.0.119",
1208 +]
1209 +
1210 +[[package]]
1211 +name = "csv"
1212 +version = "1.4.0"
1213 +source = "registry+https://github.com/rust-lang/crates.io-index"
1214 +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938"
1215 +dependencies = [
1216 + "csv-core",
1217 + "itoa",
1218 + "ryu",
1219 + "serde_core",
1220 +]
1221 +
1222 +[[package]]
1223 +name = "csv-core"
1224 +version = "0.1.13"
1225 +source = "registry+https://github.com/rust-lang/crates.io-index"
1226 +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782"
1227 +dependencies = [
1228 + "memchr",
1229 +]
1230 +
1231 +[[package]]
1232 +name = "ctor"
1233 +version = "0.8.0"
1234 +source = "registry+https://github.com/rust-lang/crates.io-index"
1235 +checksum = "352d39c2f7bef1d6ad73db6f5160efcaed66d94ef8c6c573a8410c00bf909a98"
1236 +dependencies = [
1237 + "ctor-proc-macro",
1238 + "dtor",
1239 +]
1240 +
1241 +[[package]]
1242 +name = "ctor-proc-macro"
1243 +version = "0.0.7"
1244 +source = "registry+https://github.com/rust-lang/crates.io-index"
1245 +checksum = "52560adf09603e58c9a7ee1fe1dcb95a16927b17c127f0ac02d6e768a0e25bc1"
1246 +
1247 +[[package]]
1248 +name = "darling"
1249 +version = "0.11.0"
1250 +source = "registry+https://github.com/rust-lang/crates.io-index"
1251 +checksum = "dbffa8f8e38810422f320ca457a93cf1cd0056dc9c06c556b867558e0d471463"
1252 +dependencies = [
1253 + "darling_core 0.11.0",
1254 + "darling_macro 0.11.0",
1255 +]
1256 +
1257 +[[package]]
1258 +name = "darling"
1259 +version = "0.20.11"
1260 +source = "registry+https://github.com/rust-lang/crates.io-index"
1261 +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
1262 +dependencies = [
1263 + "darling_core 0.20.11",
1264 + "darling_macro 0.20.11",
1265 +]
1266 +
1267 +[[package]]
1268 +name = "darling"
1269 +version = "0.23.0"
1270 +source = "registry+https://github.com/rust-lang/crates.io-index"
1271 +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
1272 +dependencies = [
1273 + "darling_core 0.23.0",
1274 + "darling_macro 0.23.0",
1275 +]
1276 +
1277 +[[package]]
1278 +name = "darling_core"
1279 +version = "0.11.0"
1280 +source = "registry+https://github.com/rust-lang/crates.io-index"
1281 +checksum = "06e172685d94b7b83800e3256a63261537b9d6129e10f21c8e13ddf9dba8c64d"
1282 +dependencies = [
1283 + "fnv",
1284 + "ident_case",
1285 + "proc-macro2",
1286 + "quote",
1287 + "strsim 0.10.0",
1288 + "syn 1.0.109",
1289 +]
1290 +
1291 +[[package]]
1292 +name = "darling_core"
1293 +version = "0.20.11"
1294 +source = "registry+https://github.com/rust-lang/crates.io-index"
1295 +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
1296 +dependencies = [
1297 + "fnv",
1298 + "ident_case",
1299 + "proc-macro2",
1300 + "quote",
1301 + "strsim 0.11.1",
1302 + "syn 2.0.119",
1303 +]
1304 +
1305 +[[package]]
1306 +name = "darling_core"
1307 +version = "0.23.0"
1308 +source = "registry+https://github.com/rust-lang/crates.io-index"
1309 +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
1310 +dependencies = [
1311 + "ident_case",
1312 + "proc-macro2",
1313 + "quote",
1314 + "strsim 0.11.1",
1315 + "syn 2.0.119",
1316 +]
1317 +
1318 +[[package]]
1319 +name = "darling_macro"
1320 +version = "0.11.0"
1321 +source = "registry+https://github.com/rust-lang/crates.io-index"
1322 +checksum = "f0618ac802792cebd1918ac6042a6ea1eeab92db34b35656afaa577929820788"
1323 +dependencies = [
1324 + "darling_core 0.11.0",
1325 + "quote",
1326 + "syn 1.0.109",
1327 +]
1328 +
1329 +[[package]]
1330 +name = "darling_macro"
1331 +version = "0.20.11"
1332 +source = "registry+https://github.com/rust-lang/crates.io-index"
1333 +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
1334 +dependencies = [
1335 + "darling_core 0.20.11",
1336 + "quote",
1337 + "syn 2.0.119",
1338 +]
1339 +
1340 +[[package]]
1341 +name = "darling_macro"
1342 +version = "0.23.0"
1343 +source = "registry+https://github.com/rust-lang/crates.io-index"
1344 +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
1345 +dependencies = [
1346 + "darling_core 0.23.0",
1347 + "quote",
1348 + "syn 2.0.119",
1349 +]
1350 +
1351 +[[package]]
1352 +name = "dary_heap"
1353 +version = "0.3.9"
1354 +source = "registry+https://github.com/rust-lang/crates.io-index"
1355 +checksum = "8b1e3a325bc115f096c8b77bbf027a7c2592230e70be2d985be950d3d5e60ebe"
1356 +dependencies = [
1357 + "serde",
1358 +]
1359 +
1360 +[[package]]
1361 +name = "data-encoding"
1362 +version = "2.11.1"
1363 +source = "registry+https://github.com/rust-lang/crates.io-index"
1364 +checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06"
1365 +
1366 +[[package]]
1367 +name = "dbus"
1368 +version = "0.9.12"
1369 +source = "registry+https://github.com/rust-lang/crates.io-index"
1370 +checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e"
1371 +dependencies = [
1372 + "libc",
1373 + "libdbus-sys",
1374 + "windows-sys 0.61.2",
1375 +]
1376 +
1377 +[[package]]
1378 +name = "defmac"
1379 +version = "0.1.3"
1380 +source = "registry+https://github.com/rust-lang/crates.io-index"
1381 +checksum = "aafbece59594ed57696a1a69e8bb3ca1683fbc9cdb41d5c02726070b2cd8f19d"
1382 +
1383 +[[package]]
1384 +name = "defmt"
1385 +version = "1.1.1"
1386 +source = "registry+https://github.com/rust-lang/crates.io-index"
1387 +checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1"
1388 +dependencies = [
1389 + "bitflags 1.3.2",
1390 + "defmt-macros",
1391 +]
1392 +
1393 +[[package]]
1394 +name = "defmt-macros"
1395 +version = "1.1.1"
1396 +source = "registry+https://github.com/rust-lang/crates.io-index"
1397 +checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8"
1398 +dependencies = [
1399 + "defmt-parser",
1400 + "proc-macro2",
1401 + "quote",
1402 + "syn 2.0.119",
1403 +]
1404 +
1405 +[[package]]
1406 +name = "defmt-parser"
1407 +version = "1.0.0"
1408 +source = "registry+https://github.com/rust-lang/crates.io-index"
1409 +checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e"
1410 +dependencies = [
1411 + "thiserror 2.0.20",
1412 +]
1413 +
1414 +[[package]]
1415 +name = "deranged"
1416 +version = "0.5.8"
1417 +source = "registry+https://github.com/rust-lang/crates.io-index"
1418 +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
1419 +dependencies = [
1420 + "serde_core",
1421 +]
1422 +
1423 +[[package]]
1424 +name = "derive-new"
1425 +version = "0.7.0"
1426 +source = "registry+https://github.com/rust-lang/crates.io-index"
1427 +checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc"
1428 +dependencies = [
1429 + "proc-macro2",
1430 + "quote",
1431 + "syn 2.0.119",
1432 +]
1433 +
1434 +[[package]]
1435 +name = "derive_builder"
1436 +version = "0.20.2"
1437 +source = "registry+https://github.com/rust-lang/crates.io-index"
1438 +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947"
1439 +dependencies = [
1440 + "derive_builder_macro",
1441 +]
1442 +
1443 +[[package]]
1444 +name = "derive_builder_core"
1445 +version = "0.20.2"
1446 +source = "registry+https://github.com/rust-lang/crates.io-index"
1447 +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"
1448 +dependencies = [
1449 + "darling 0.20.11",
1450 + "proc-macro2",
1451 + "quote",
1452 + "syn 2.0.119",
1453 +]
1454 +
1455 +[[package]]
1456 +name = "derive_builder_macro"
1457 +version = "0.20.2"
1458 +source = "registry+https://github.com/rust-lang/crates.io-index"
1459 +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"
1460 +dependencies = [
1461 + "derive_builder_core",
1462 + "syn 2.0.119",
1463 +]
1464 +
1465 +[[package]]
1466 +name = "derive_more"
1467 +version = "2.1.1"
1468 +source = "registry+https://github.com/rust-lang/crates.io-index"
1469 +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
1470 +dependencies = [
1471 + "derive_more-impl",
1472 +]
1473 +
1474 +[[package]]
1475 +name = "derive_more-impl"
1476 +version = "2.1.1"
1477 +source = "registry+https://github.com/rust-lang/crates.io-index"
1478 +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
1479 +dependencies = [
1480 + "convert_case 0.10.0",
1481 + "proc-macro2",
1482 + "quote",
1483 + "rustc_version",
1484 + "syn 2.0.119",
1485 +]
1486 +
1487 +[[package]]
1488 +name = "derivre"
1489 +version = "0.3.12"
1490 +source = "registry+https://github.com/rust-lang/crates.io-index"
1491 +checksum = "a892ec3953f4ca893e8d2086ed03d4b58e19c77ffb864a574b332d7d40c175f3"
1492 +dependencies = [
1493 + "anyhow",
1494 + "bytemuck",
1495 + "bytemuck_derive",
1496 + "hashbrown 0.17.1",
1497 + "regex-syntax",
1498 + "strum 0.28.0",
1499 +]
1500 +
1501 +[[package]]
1502 +name = "deunicode"
1503 +version = "1.6.2"
1504 +source = "registry+https://github.com/rust-lang/crates.io-index"
1505 +checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04"
1506 +
1507 +[[package]]
1508 +name = "digest"
1509 +version = "0.10.7"
1510 +source = "registry+https://github.com/rust-lang/crates.io-index"
1511 +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
1512 +dependencies = [
1513 + "block-buffer",
1514 + "crypto-common",
1515 +]
1516 +
1517 +[[package]]
1518 +name = "dirs"
1519 +version = "6.0.0"
1520 +source = "registry+https://github.com/rust-lang/crates.io-index"
1521 +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
1522 +dependencies = [
1523 + "dirs-sys",
1524 +]
1525 +
1526 +[[package]]
1527 +name = "dirs-sys"
1528 +version = "0.5.0"
1529 +source = "registry+https://github.com/rust-lang/crates.io-index"
1530 +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
1531 +dependencies = [
1532 + "libc",
1533 + "option-ext",
1534 + "redox_users",
1535 + "windows-sys 0.61.2",
1536 +]
1537 +
1538 +[[package]]
1539 +name = "dispatch2"
1540 +version = "0.3.1"
1541 +source = "registry+https://github.com/rust-lang/crates.io-index"
1542 +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
1543 +dependencies = [
1544 + "bitflags 2.13.1",
1545 + "block2",
1546 + "libc",
1547 + "objc2",
1548 +]
1549 +
1550 +[[package]]
1551 +name = "displaydoc"
1552 +version = "0.2.7"
1553 +source = "registry+https://github.com/rust-lang/crates.io-index"
1554 +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
1555 +dependencies = [
1556 + "proc-macro2",
1557 + "quote",
1558 + "syn 3.0.5",
1559 +]
1560 +
1561 +[[package]]
1562 +name = "dlopen2"
1563 +version = "0.8.2"
1564 +source = "registry+https://github.com/rust-lang/crates.io-index"
1565 +checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4"
1566 +dependencies = [
1567 + "dlopen2_derive",
1568 + "libc",
1569 + "once_cell",
1570 + "winapi",
1571 +]
1572 +
1573 +[[package]]
1574 +name = "dlopen2_derive"
1575 +version = "0.4.3"
1576 +source = "registry+https://github.com/rust-lang/crates.io-index"
1577 +checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f"
1578 +dependencies = [
1579 + "proc-macro2",
1580 + "quote",
1581 + "syn 2.0.119",
1582 +]
1583 +
1584 +[[package]]
1585 +name = "doctest-file"
1586 +version = "1.1.1"
1587 +source = "registry+https://github.com/rust-lang/crates.io-index"
1588 +checksum = "c2db04e74f0a9a93103b50e90b96024c9b2bdca8bce6a632ec71b88736d3d359"
1589 +
1590 +[[package]]
1591 +name = "document-features"
1592 +version = "0.2.12"
1593 +source = "registry+https://github.com/rust-lang/crates.io-index"
1594 +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
1595 +dependencies = [
1596 + "litrs",
1597 +]
1598 +
1599 +[[package]]
1600 +name = "dom_query"
1601 +version = "0.27.0"
1602 +source = "registry+https://github.com/rust-lang/crates.io-index"
1603 +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89"
1604 +dependencies = [
1605 + "bit-set 0.8.0",
1606 + "cssparser",
1607 + "foldhash 0.2.0",
1608 + "html5ever 0.38.0",
1609 + "precomputed-hash",
1610 + "selectors 0.36.1",
1611 + "tendril 0.5.1",
1612 +]
1613 +
1614 +[[package]]
1615 +name = "dotenvy"
1616 +version = "0.15.7"
1617 +source = "registry+https://github.com/rust-lang/crates.io-index"
1618 +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
1619 +
1620 +[[package]]
1621 +name = "dpi"
1622 +version = "0.1.2"
1623 +source = "registry+https://github.com/rust-lang/crates.io-index"
1624 +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
1625 +dependencies = [
1626 + "serde",
1627 +]
1628 +
1629 +[[package]]
1630 +name = "dtoa"
1631 +version = "1.0.11"
1632 +source = "registry+https://github.com/rust-lang/crates.io-index"
1633 +checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590"
1634 +
1635 +[[package]]
1636 +name = "dtoa-short"
1637 +version = "0.3.5"
1638 +source = "registry+https://github.com/rust-lang/crates.io-index"
1639 +checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
1640 +dependencies = [
1641 + "dtoa",
1642 +]
1643 +
1644 +[[package]]
1645 +name = "dtor"
1646 +version = "0.3.0"
1647 +source = "registry+https://github.com/rust-lang/crates.io-index"
1648 +checksum = "f1057d6c64987086ff8ed0fd3fbf377a6b7d205cc7715868cd401705f715cbe4"
1649 +dependencies = [
1650 + "dtor-proc-macro",
1651 +]
1652 +
1653 +[[package]]
1654 +name = "dtor-proc-macro"
1655 +version = "0.0.6"
1656 +source = "registry+https://github.com/rust-lang/crates.io-index"
1657 +checksum = "f678cf4a922c215c63e0de95eb1ff08a958a81d47e485cf9da1e27bf6305cfa5"
1658 +
1659 +[[package]]
1660 +name = "dunce"
1661 +version = "1.0.5"
1662 +source = "registry+https://github.com/rust-lang/crates.io-index"
1663 +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
1664 +
1665 +[[package]]
1666 +name = "dyn-clone"
1667 +version = "1.0.20"
1668 +source = "registry+https://github.com/rust-lang/crates.io-index"
1669 +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
1670 +
1671 +[[package]]
1672 +name = "dyn-stack"
1673 +version = "0.13.2"
1674 +source = "registry+https://github.com/rust-lang/crates.io-index"
1675 +checksum = "1c4713e43e2886ba72b8271aa66c93d722116acf7a75555cce11dcde84388fe8"
1676 +dependencies = [
1677 + "bytemuck",
1678 + "dyn-stack-macros",
1679 +]
1680 +
1681 +[[package]]
1682 +name = "dyn-stack-macros"
1683 +version = "0.1.3"
1684 +source = "registry+https://github.com/rust-lang/crates.io-index"
1685 +checksum = "e1d926b4d407d372f141f93bb444696142c29d32962ccbd3531117cf3aa0bfa9"
1686 +
1687 +[[package]]
1688 +name = "ego-tree"
1689 +version = "0.10.0"
1690 +source = "registry+https://github.com/rust-lang/crates.io-index"
1691 +checksum = "b2972feb8dffe7bc8c5463b1dacda1b0dfbed3710e50f977d965429692d74cd8"
1692 +
1693 +[[package]]
1694 +name = "either"
1695 +version = "1.18.0"
1696 +source = "registry+https://github.com/rust-lang/crates.io-index"
1697 +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
1698 +dependencies = [
1699 + "serde",
1700 +]
1701 +
1702 +[[package]]
1703 +name = "embed-resource"
1704 +version = "3.0.11"
1705 +source = "registry+https://github.com/rust-lang/crates.io-index"
1706 +checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd"
1707 +dependencies = [
1708 + "cc",
1709 + "memchr",
1710 + "rustc_version",
1711 + "toml 1.1.5+spec-1.1.0",
1712 + "vswhom",
1713 + "winreg",
1714 +]
1715 +
1716 +[[package]]
1717 +name = "embed_plist"
1718 +version = "1.2.2"
1719 +source = "registry+https://github.com/rust-lang/crates.io-index"
1720 +checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
1721 +
1722 +[[package]]
1723 +name = "encode_unicode"
1724 +version = "1.0.0"
1725 +source = "registry+https://github.com/rust-lang/crates.io-index"
1726 +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
1727 +
1728 +[[package]]
1729 +name = "encoding_rs"
1730 +version = "0.8.40"
1731 +source = "registry+https://github.com/rust-lang/crates.io-index"
1732 +checksum = "2a7a45518d2863d18aa47f4a0cf9faec2aa4304cc09df5e41299f276b3ad135e"
1733 +dependencies = [
1734 + "cfg-if",
1735 + "core_detect",
1736 + "multiversion",
1737 + "multiversion_no_op",
1738 + "rustversion",
1739 + "scopeguard",
1740 + "simdutf8",
1741 +]
1742 +
1743 +[[package]]
1744 +name = "encoding_rs_io"
1745 +version = "0.1.8"
1746 +source = "registry+https://github.com/rust-lang/crates.io-index"
1747 +checksum = "fba3fe847045ecff794b9c138293a80db914678c453ad63fbf0c6a9eb6e00b22"
1748 +dependencies = [
1749 + "encoding_rs",
1750 +]
1751 +
1752 +[[package]]
1753 +name = "endian-type"
1754 +version = "0.2.0"
1755 +source = "registry+https://github.com/rust-lang/crates.io-index"
1756 +checksum = "869b0adbda23651a9c5c0c3d270aac9fcb52e8622a8f2b17e57802d7791962f2"
1757 +
1758 +[[package]]
1759 +name = "enum-as-inner"
1760 +version = "0.6.1"
1761 +source = "registry+https://github.com/rust-lang/crates.io-index"
1762 +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc"
1763 +dependencies = [
1764 + "heck 0.5.0",
1765 + "proc-macro2",
1766 + "quote",
1767 + "syn 2.0.119",
1768 +]
1769 +
1770 +[[package]]
1771 +name = "enumflags2"
1772 +version = "0.7.12"
1773 +source = "registry+https://github.com/rust-lang/crates.io-index"
1774 +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef"
1775 +dependencies = [
1776 + "enumflags2_derive",
1777 +]
1778 +
1779 +[[package]]
1780 +name = "enumflags2_derive"
1781 +version = "0.7.12"
1782 +source = "registry+https://github.com/rust-lang/crates.io-index"
1783 +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827"
1784 +dependencies = [
1785 + "proc-macro2",
1786 + "quote",
1787 + "syn 2.0.119",
1788 +]
1789 +
1790 +[[package]]
1791 +name = "equator"
1792 +version = "0.4.2"
1793 +source = "registry+https://github.com/rust-lang/crates.io-index"
1794 +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc"
1795 +dependencies = [
1796 + "equator-macro",
1797 +]
1798 +
1799 +[[package]]
1800 +name = "equator-macro"
1801 +version = "0.4.2"
1802 +source = "registry+https://github.com/rust-lang/crates.io-index"
1803 +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3"
1804 +dependencies = [
1805 + "proc-macro2",
1806 + "quote",
1807 + "syn 2.0.119",
1808 +]
1809 +
1810 +[[package]]
1811 +name = "equivalent"
1812 +version = "1.0.2"
1813 +source = "registry+https://github.com/rust-lang/crates.io-index"
1814 +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
1815 +
1816 +[[package]]
1817 +name = "erased-serde"
1818 +version = "0.4.10"
1819 +source = "registry+https://github.com/rust-lang/crates.io-index"
1820 +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec"
1821 +dependencies = [
1822 + "serde",
1823 + "serde_core",
1824 + "typeid",
1825 +]
1826 +
1827 +[[package]]
1828 +name = "errno"
1829 +version = "0.3.14"
1830 +source = "registry+https://github.com/rust-lang/crates.io-index"
1831 +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
1832 +dependencies = [
1833 + "libc",
1834 + "windows-sys 0.61.2",
1835 +]
1836 +
1837 +[[package]]
1838 +name = "esaxx-rs"
1839 +version = "0.1.10"
1840 +source = "registry+https://github.com/rust-lang/crates.io-index"
1841 +checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6"
1842 +
1843 +[[package]]
1844 +name = "exr"
1845 +version = "1.74.2"
1846 +source = "registry+https://github.com/rust-lang/crates.io-index"
1847 +checksum = "711fe42c9964295e01ee3fba3f9fe0e1d24b98886950d68efe81b1c76e21adf3"
1848 +dependencies = [
1849 + "bit_field",
1850 + "half",
1851 + "lebe",
1852 + "miniz_oxide 0.8.9",
1853 + "num-complex",
1854 + "pulp 0.22.3",
1855 + "rayon-core",
1856 + "smallvec 1.16.0",
1857 + "zune-inflate",
1858 +]
1859 +
1860 +[[package]]
1861 +name = "extended"
1862 +version = "0.1.0"
1863 +source = "registry+https://github.com/rust-lang/crates.io-index"
1864 +checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365"
1865 +
1866 +[[package]]
1867 +name = "fancy-regex"
1868 +version = "0.13.0"
1869 +source = "registry+https://github.com/rust-lang/crates.io-index"
1870 +checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
1871 +dependencies = [
1872 + "bit-set 0.5.3",
1873 + "regex-automata",
1874 + "regex-syntax",
1875 +]
1876 +
1877 +[[package]]
1878 +name = "fancy-regex"
1879 +version = "0.14.0"
1880 +source = "registry+https://github.com/rust-lang/crates.io-index"
1881 +checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298"
1882 +dependencies = [
1883 + "bit-set 0.8.0",
1884 + "regex-automata",
1885 + "regex-syntax",
1886 +]
1887 +
1888 +[[package]]
1889 +name = "fastrand"
1890 +version = "2.5.0"
1891 +source = "registry+https://github.com/rust-lang/crates.io-index"
1892 +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
1893 +
1894 +[[package]]
1895 +name = "fax"
1896 +version = "0.2.7"
1897 +source = "registry+https://github.com/rust-lang/crates.io-index"
1898 +checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a"
1899 +
1900 +[[package]]
1901 +name = "fdeflate"
1902 +version = "0.3.7"
1903 +source = "registry+https://github.com/rust-lang/crates.io-index"
1904 +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
1905 +dependencies = [
1906 + "simd-adler32",
1907 +]
1908 +
1909 +[[package]]
1910 +name = "field-offset"
1911 +version = "0.3.6"
1912 +source = "registry+https://github.com/rust-lang/crates.io-index"
1913 +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
1914 +dependencies = [
1915 + "memoffset",
1916 + "rustc_version",
1917 +]
1918 +
1919 +[[package]]
1920 +name = "find-msvc-tools"
1921 +version = "0.1.12"
1922 +source = "registry+https://github.com/rust-lang/crates.io-index"
1923 +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d"
1924 +
1925 +[[package]]
1926 +name = "flate2"
1927 +version = "1.1.10"
1928 +source = "registry+https://github.com/rust-lang/crates.io-index"
1929 +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb"
1930 +dependencies = [
1931 + "crc32fast",
1932 + "miniz_oxide 0.9.1",
1933 + "zlib-rs",
1934 +]
1935 +
1936 +[[package]]
1937 +name = "float8"
1938 +version = "0.7.0"
1939 +source = "registry+https://github.com/rust-lang/crates.io-index"
1940 +checksum = "c2d1f04709a8ac06e8e8042875a3c466cc4832d3c1a18dbcb9dba3c6e83046bc"
1941 +dependencies = [
1942 + "half",
1943 + "num-traits",
1944 + "rand 0.9.5",
1945 + "rand_distr 0.5.1",
1946 +]
1947 +
1948 +[[package]]
1949 +name = "fnv"
1950 +version = "1.0.7"
1951 +source = "registry+https://github.com/rust-lang/crates.io-index"
1952 +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
1953 +
1954 +[[package]]
1955 +name = "foldhash"
1956 +version = "0.1.5"
1957 +source = "registry+https://github.com/rust-lang/crates.io-index"
1958 +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
1959 +
1960 +[[package]]
1961 +name = "foldhash"
1962 +version = "0.2.0"
1963 +source = "registry+https://github.com/rust-lang/crates.io-index"
1964 +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
1965 +
1966 +[[package]]
1967 +name = "foreign-types"
1968 +version = "0.5.0"
1969 +source = "registry+https://github.com/rust-lang/crates.io-index"
1970 +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
1971 +dependencies = [
1972 + "foreign-types-macros",
1973 + "foreign-types-shared",
1974 +]
1975 +
1976 +[[package]]
1977 +name = "foreign-types-macros"
1978 +version = "0.2.4"
1979 +source = "registry+https://github.com/rust-lang/crates.io-index"
1980 +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225"
1981 +dependencies = [
1982 + "proc-macro2",
1983 + "quote",
1984 + "syn 3.0.5",
1985 +]
1986 +
1987 +[[package]]
1988 +name = "foreign-types-shared"
1989 +version = "0.3.1"
1990 +source = "registry+https://github.com/rust-lang/crates.io-index"
1991 +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
1992 +
1993 +[[package]]
1994 +name = "form_urlencoded"
1995 +version = "1.2.2"
1996 +source = "registry+https://github.com/rust-lang/crates.io-index"
1997 +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
1998 +dependencies = [
1999 + "percent-encoding",
2000 +]
2001 +
2002 +[[package]]
2003 +name = "fs-err"
2004 +version = "2.11.0"
2005 +source = "registry+https://github.com/rust-lang/crates.io-index"
2006 +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
2007 +dependencies = [
2008 + "autocfg",
2009 +]
2010 +
2011 +[[package]]
2012 +name = "fs_extra"
2013 +version = "1.3.0"
2014 +source = "registry+https://github.com/rust-lang/crates.io-index"
2015 +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
2016 +
2017 +[[package]]
2018 +name = "futf"
2019 +version = "0.1.5"
2020 +source = "registry+https://github.com/rust-lang/crates.io-index"
2021 +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
2022 +dependencies = [
2023 + "mac",
2024 + "new_debug_unreachable",
2025 +]
2026 +
2027 +[[package]]
2028 +name = "futures"
2029 +version = "0.3.34"
2030 +source = "registry+https://github.com/rust-lang/crates.io-index"
2031 +checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3"
2032 +dependencies = [
2033 + "futures-channel",
2034 + "futures-core",
2035 + "futures-executor",
2036 + "futures-io",
2037 + "futures-sink",
2038 + "futures-task",
2039 + "futures-util",
2040 +]
2041 +
2042 +[[package]]
2043 +name = "futures-channel"
2044 +version = "0.3.34"
2045 +source = "registry+https://github.com/rust-lang/crates.io-index"
2046 +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4"
2047 +dependencies = [
2048 + "futures-core",
2049 + "futures-sink",
2050 +]
2051 +
2052 +[[package]]
2053 +name = "futures-core"
2054 +version = "0.3.34"
2055 +source = "registry+https://github.com/rust-lang/crates.io-index"
2056 +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
2057 +
2058 +[[package]]
2059 +name = "futures-executor"
2060 +version = "0.3.34"
2061 +source = "registry+https://github.com/rust-lang/crates.io-index"
2062 +checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432"
2063 +dependencies = [
2064 + "futures-core",
2065 + "futures-task",
2066 + "futures-util",
2067 +]
2068 +
2069 +[[package]]
2070 +name = "futures-io"
2071 +version = "0.3.34"
2072 +source = "registry+https://github.com/rust-lang/crates.io-index"
2073 +checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed"
2074 +
2075 +[[package]]
2076 +name = "futures-macro"
2077 +version = "0.3.34"
2078 +source = "registry+https://github.com/rust-lang/crates.io-index"
2079 +checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44"
2080 +dependencies = [
2081 + "proc-macro2",
2082 + "quote",
2083 + "syn 3.0.5",
2084 +]
2085 +
2086 +[[package]]
2087 +name = "futures-sink"
2088 +version = "0.3.34"
2089 +source = "registry+https://github.com/rust-lang/crates.io-index"
2090 +checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d"
2091 +
2092 +[[package]]
2093 +name = "futures-task"
2094 +version = "0.3.34"
2095 +source = "registry+https://github.com/rust-lang/crates.io-index"
2096 +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
2097 +
2098 +[[package]]
2099 +name = "futures-util"
2100 +version = "0.3.34"
2101 +source = "registry+https://github.com/rust-lang/crates.io-index"
2102 +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
2103 +dependencies = [
2104 + "futures-channel",
2105 + "futures-core",
2106 + "futures-io",
2107 + "futures-macro",
2108 + "futures-sink",
2109 + "futures-task",
2110 + "memchr",
2111 + "pin-project-lite",
2112 + "slab",
2113 +]
2114 +
2115 +[[package]]
2116 +name = "fxhash"
2117 +version = "0.2.1"
2118 +source = "registry+https://github.com/rust-lang/crates.io-index"
2119 +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
2120 +dependencies = [
2121 + "byteorder",
2122 +]
2123 +
2124 +[[package]]
2125 +name = "galil-seiferas"
2126 +version = "0.1.5"
2127 +source = "registry+https://github.com/rust-lang/crates.io-index"
2128 +checksum = "794ac25cfda3fa11d2b07ff8c65889c6c03411646df54e59e606878d899e1d5a"
2129 +dependencies = [
2130 + "defmac",
2131 + "unchecked-index",
2132 +]
2133 +
2134 +[[package]]
2135 +name = "gdk"
2136 +version = "0.18.2"
2137 +source = "registry+https://github.com/rust-lang/crates.io-index"
2138 +checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691"
2139 +dependencies = [
2140 + "cairo-rs",
2141 + "gdk-pixbuf",
2142 + "gdk-sys",
2143 + "gio",
2144 + "glib",
2145 + "libc",
2146 + "pango",
2147 +]
2148 +
2149 +[[package]]
2150 +name = "gdk-pixbuf"
2151 +version = "0.18.5"
2152 +source = "registry+https://github.com/rust-lang/crates.io-index"
2153 +checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
2154 +dependencies = [
2155 + "gdk-pixbuf-sys",
2156 + "gio",
2157 + "glib",
2158 + "libc",
2159 + "once_cell",
2160 +]
2161 +
2162 +[[package]]
2163 +name = "gdk-pixbuf-sys"
2164 +version = "0.18.0"
2165 +source = "registry+https://github.com/rust-lang/crates.io-index"
2166 +checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
2167 +dependencies = [
2168 + "gio-sys",
2169 + "glib-sys",
2170 + "gobject-sys",
2171 + "libc",
2172 + "system-deps",
2173 +]
2174 +
2175 +[[package]]
2176 +name = "gdk-sys"
2177 +version = "0.18.2"
2178 +source = "registry+https://github.com/rust-lang/crates.io-index"
2179 +checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7"
2180 +dependencies = [
2181 + "cairo-sys-rs",
2182 + "gdk-pixbuf-sys",
2183 + "gio-sys",
2184 + "glib-sys",
2185 + "gobject-sys",
2186 + "libc",
2187 + "pango-sys",
2188 + "pkg-config",
2189 + "system-deps",
2190 +]
2191 +
2192 +[[package]]
2193 +name = "gdkwayland-sys"
2194 +version = "0.18.2"
2195 +source = "registry+https://github.com/rust-lang/crates.io-index"
2196 +checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69"
2197 +dependencies = [
2198 + "gdk-sys",
2199 + "glib-sys",
2200 + "gobject-sys",
2201 + "libc",
2202 + "pkg-config",
2203 + "system-deps",
2204 +]
2205 +
2206 +[[package]]
2207 +name = "gdkx11"
2208 +version = "0.18.2"
2209 +source = "registry+https://github.com/rust-lang/crates.io-index"
2210 +checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe"
2211 +dependencies = [
2212 + "gdk",
2213 + "gdkx11-sys",
2214 + "gio",
2215 + "glib",
2216 + "libc",
2217 + "x11",
2218 +]
2219 +
2220 +[[package]]
2221 +name = "gdkx11-sys"
2222 +version = "0.18.2"
2223 +source = "registry+https://github.com/rust-lang/crates.io-index"
2224 +checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d"
2225 +dependencies = [
2226 + "gdk-sys",
2227 + "glib-sys",
2228 + "libc",
2229 + "system-deps",
2230 + "x11",
2231 +]
2232 +
2233 +[[package]]
2234 +name = "gemm"
2235 +version = "0.18.2"
2236 +source = "registry+https://github.com/rust-lang/crates.io-index"
2237 +checksum = "ab96b703d31950f1aeddded248bc95543c9efc7ac9c4a21fda8703a83ee35451"
2238 +dependencies = [
2239 + "dyn-stack",
2240 + "gemm-c32 0.18.2",
2241 + "gemm-c64 0.18.2",
2242 + "gemm-common 0.18.2",
2243 + "gemm-f16 0.18.2",
2244 + "gemm-f32 0.18.2",
2245 + "gemm-f64 0.18.2",
2246 + "num-complex",
2247 + "num-traits",
2248 + "paste",
2249 + "raw-cpuid",
2250 + "seq-macro",
2251 +]
2252 +
2253 +[[package]]
2254 +name = "gemm"
2255 +version = "0.19.0"
2256 +source = "registry+https://github.com/rust-lang/crates.io-index"
2257 +checksum = "aa0673db364b12263d103b68337a68fbecc541d6f6b61ba72fe438654709eacb"
2258 +dependencies = [
2259 + "dyn-stack",
2260 + "gemm-c32 0.19.0",
2261 + "gemm-c64 0.19.0",
2262 + "gemm-common 0.19.0",
2263 + "gemm-f16 0.19.0",
2264 + "gemm-f32 0.19.0",
2265 + "gemm-f64 0.19.0",
2266 + "num-complex",
2267 + "num-traits",
2268 + "paste",
2269 + "raw-cpuid",
2270 + "seq-macro",
2271 +]
2272 +
2273 +[[package]]
2274 +name = "gemm-c32"
2275 +version = "0.18.2"
2276 +source = "registry+https://github.com/rust-lang/crates.io-index"
2277 +checksum = "f6db9fd9f40421d00eea9dd0770045a5603b8d684654816637732463f4073847"
2278 +dependencies = [
2279 + "dyn-stack",
2280 + "gemm-common 0.18.2",
2281 + "num-complex",
2282 + "num-traits",
2283 + "paste",
2284 + "raw-cpuid",
2285 + "seq-macro",
2286 +]
2287 +
2288 +[[package]]
2289 +name = "gemm-c32"
2290 +version = "0.19.0"
2291 +source = "registry+https://github.com/rust-lang/crates.io-index"
2292 +checksum = "086936dbdcb99e37aad81d320f98f670e53c1e55a98bee70573e83f95beb128c"
2293 +dependencies = [
2294 + "dyn-stack",
2295 + "gemm-common 0.19.0",
2296 + "num-complex",
2297 + "num-traits",
2298 + "paste",
2299 + "raw-cpuid",
2300 + "seq-macro",
2301 +]
2302 +
2303 +[[package]]
2304 +name = "gemm-c64"
2305 +version = "0.18.2"
2306 +source = "registry+https://github.com/rust-lang/crates.io-index"
2307 +checksum = "dfcad8a3d35a43758330b635d02edad980c1e143dc2f21e6fd25f9e4eada8edf"
2308 +dependencies = [
2309 + "dyn-stack",
2310 + "gemm-common 0.18.2",
2311 + "num-complex",
2312 + "num-traits",
2313 + "paste",
2314 + "raw-cpuid",
2315 + "seq-macro",
2316 +]
2317 +
2318 +[[package]]
2319 +name = "gemm-c64"
2320 +version = "0.19.0"
2321 +source = "registry+https://github.com/rust-lang/crates.io-index"
2322 +checksum = "20c8aeeeec425959bda4d9827664029ba1501a90a0d1e6228e48bef741db3a3f"
2323 +dependencies = [
2324 + "dyn-stack",
2325 + "gemm-common 0.19.0",
2326 + "num-complex",
2327 + "num-traits",
2328 + "paste",
2329 + "raw-cpuid",
2330 + "seq-macro",
2331 +]
2332 +
2333 +[[package]]
2334 +name = "gemm-common"
2335 +version = "0.18.2"
2336 +source = "registry+https://github.com/rust-lang/crates.io-index"
2337 +checksum = "a352d4a69cbe938b9e2a9cb7a3a63b7e72f9349174a2752a558a8a563510d0f3"
2338 +dependencies = [
2339 + "bytemuck",
2340 + "dyn-stack",
2341 + "half",
2342 + "libm",
2343 + "num-complex",
2344 + "num-traits",
2345 + "once_cell",
2346 + "paste",
2347 + "pulp 0.21.5",
2348 + "raw-cpuid",
2349 + "rayon",
2350 + "seq-macro",
2351 + "sysctl",
2352 +]
2353 +
2354 +[[package]]
2355 +name = "gemm-common"
2356 +version = "0.19.0"
2357 +source = "registry+https://github.com/rust-lang/crates.io-index"
2358 +checksum = "88027625910cc9b1085aaaa1c4bc46bb3a36aad323452b33c25b5e4e7c8e2a3e"
2359 +dependencies = [
2360 + "bytemuck",
2361 + "dyn-stack",
2362 + "half",
2363 + "libm",
2364 + "num-complex",
2365 + "num-traits",
2366 + "once_cell",
2367 + "paste",
2368 + "pulp 0.22.3",
2369 + "raw-cpuid",
2370 + "rayon",
2371 + "seq-macro",
2372 + "sysctl",
2373 +]
2374 +
2375 +[[package]]
2376 +name = "gemm-f16"
2377 +version = "0.18.2"
2378 +source = "registry+https://github.com/rust-lang/crates.io-index"
2379 +checksum = "cff95ae3259432f3c3410eaa919033cd03791d81cebd18018393dc147952e109"
2380 +dependencies = [
2381 + "dyn-stack",
2382 + "gemm-common 0.18.2",
2383 + "gemm-f32 0.18.2",
2384 + "half",
2385 + "num-complex",
2386 + "num-traits",
2387 + "paste",
2388 + "raw-cpuid",
2389 + "rayon",
2390 + "seq-macro",
2391 +]
2392 +
2393 +[[package]]
2394 +name = "gemm-f16"
2395 +version = "0.19.0"
2396 +source = "registry+https://github.com/rust-lang/crates.io-index"
2397 +checksum = "e3df7a55202e6cd6739d82ae3399c8e0c7e1402859b30e4cb780e61525d9486e"
2398 +dependencies = [
2399 + "dyn-stack",
2400 + "gemm-common 0.19.0",
2401 + "gemm-f32 0.19.0",
2402 + "half",
2403 + "num-complex",
2404 + "num-traits",
2405 + "paste",
2406 + "raw-cpuid",
2407 + "rayon",
2408 + "seq-macro",
2409 +]
2410 +
2411 +[[package]]
2412 +name = "gemm-f32"
2413 +version = "0.18.2"
2414 +source = "registry+https://github.com/rust-lang/crates.io-index"
2415 +checksum = "bc8d3d4385393304f407392f754cd2dc4b315d05063f62cf09f47b58de276864"
2416 +dependencies = [
2417 + "dyn-stack",
2418 + "gemm-common 0.18.2",
2419 + "num-complex",
2420 + "num-traits",
2421 + "paste",
2422 + "raw-cpuid",
2423 + "seq-macro",
2424 +]
2425 +
2426 +[[package]]
2427 +name = "gemm-f32"
2428 +version = "0.19.0"
2429 +source = "registry+https://github.com/rust-lang/crates.io-index"
2430 +checksum = "02e0b8c9da1fbec6e3e3ab2ce6bc259ef18eb5f6f0d3e4edf54b75f9fd41a81c"
2431 +dependencies = [
2432 + "dyn-stack",
2433 + "gemm-common 0.19.0",
2434 + "num-complex",
2435 + "num-traits",
2436 + "paste",
2437 + "raw-cpuid",
2438 + "seq-macro",
2439 +]
2440 +
2441 +[[package]]
2442 +name = "gemm-f64"
2443 +version = "0.18.2"
2444 +source = "registry+https://github.com/rust-lang/crates.io-index"
2445 +checksum = "35b2a4f76ce4b8b16eadc11ccf2e083252d8237c1b589558a49b0183545015bd"
2446 +dependencies = [
2447 + "dyn-stack",
2448 + "gemm-common 0.18.2",
2449 + "num-complex",
2450 + "num-traits",
2451 + "paste",
2452 + "raw-cpuid",
2453 + "seq-macro",
2454 +]
2455 +
2456 +[[package]]
2457 +name = "gemm-f64"
2458 +version = "0.19.0"
2459 +source = "registry+https://github.com/rust-lang/crates.io-index"
2460 +checksum = "056131e8f2a521bfab322f804ccd652520c79700d81209e9d9275bbdecaadc6a"
2461 +dependencies = [
2462 + "dyn-stack",
2463 + "gemm-common 0.19.0",
2464 + "num-complex",
2465 + "num-traits",
2466 + "paste",
2467 + "raw-cpuid",
2468 + "seq-macro",
2469 +]
2470 +
2471 +[[package]]
2472 +name = "generator"
2473 +version = "0.7.5"
2474 +source = "registry+https://github.com/rust-lang/crates.io-index"
2475 +checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e"
2476 +dependencies = [
2477 + "cc",
2478 + "libc",
2479 + "log",
2480 + "rustversion",
2481 + "windows 0.48.0",
2482 +]
2483 +
2484 +[[package]]
2485 +name = "generic-array"
2486 +version = "0.14.7"
2487 +source = "registry+https://github.com/rust-lang/crates.io-index"
2488 +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
2489 +dependencies = [
2490 + "typenum",
2491 + "version_check",
2492 +]
2493 +
2494 +[[package]]
2495 +name = "getopts"
2496 +version = "0.2.24"
2497 +source = "registry+https://github.com/rust-lang/crates.io-index"
2498 +checksum = "cfe4fbac503b8d1f88e6676011885f34b7174f46e59956bba534ba83abded4df"
2499 +dependencies = [
2500 + "unicode-width 0.2.2",
2501 +]
2502 +
2503 +[[package]]
2504 +name = "getrandom"
2505 +version = "0.2.17"
2506 +source = "registry+https://github.com/rust-lang/crates.io-index"
2507 +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
2508 +dependencies = [
2509 + "cfg-if",
2510 + "js-sys",
2511 + "libc",
2512 + "wasi",
2513 + "wasm-bindgen",
2514 +]
2515 +
2516 +[[package]]
2517 +name = "getrandom"
2518 +version = "0.3.4"
2519 +source = "registry+https://github.com/rust-lang/crates.io-index"
2520 +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
2521 +dependencies = [
2522 + "cfg-if",
2523 + "js-sys",
2524 + "libc",
2525 + "r-efi 5.3.0",
2526 + "wasip2",
2527 + "wasm-bindgen",
2528 +]
2529 +
2530 +[[package]]
2531 +name = "getrandom"
2532 +version = "0.4.3"
2533 +source = "registry+https://github.com/rust-lang/crates.io-index"
2534 +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
2535 +dependencies = [
2536 + "cfg-if",
2537 + "js-sys",
2538 + "libc",
2539 + "r-efi 6.0.0",
2540 + "rand_core 0.10.1",
2541 + "wasm-bindgen",
2542 +]
2543 +
2544 +[[package]]
2545 +name = "gif"
2546 +version = "0.14.2"
2547 +source = "registry+https://github.com/rust-lang/crates.io-index"
2548 +checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159"
2549 +dependencies = [
2550 + "color_quant",
2551 + "weezl",
2552 +]
2553 +
2554 +[[package]]
2555 +name = "gio"
2556 +version = "0.18.4"
2557 +source = "registry+https://github.com/rust-lang/crates.io-index"
2558 +checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
2559 +dependencies = [
2560 + "futures-channel",
2561 + "futures-core",
2562 + "futures-io",
2563 + "futures-util",
2564 + "gio-sys",
2565 + "glib",
2566 + "libc",
2567 + "once_cell",
2568 + "pin-project-lite",
2569 + "smallvec 1.16.0",
2570 + "thiserror 1.0.69",
2571 +]
2572 +
2573 +[[package]]
2574 +name = "gio-sys"
2575 +version = "0.18.1"
2576 +source = "registry+https://github.com/rust-lang/crates.io-index"
2577 +checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
2578 +dependencies = [
2579 + "glib-sys",
2580 + "gobject-sys",
2581 + "libc",
2582 + "system-deps",
2583 + "winapi",
2584 +]
2585 +
2586 +[[package]]
2587 +name = "glib"
2588 +version = "0.18.5"
2589 +source = "registry+https://github.com/rust-lang/crates.io-index"
2590 +checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
2591 +dependencies = [
2592 + "bitflags 2.13.1",
2593 + "futures-channel",
2594 + "futures-core",
2595 + "futures-executor",
2596 + "futures-task",
2597 + "futures-util",
2598 + "gio-sys",
2599 + "glib-macros",
2600 + "glib-sys",
2601 + "gobject-sys",
2602 + "libc",
2603 + "memchr",
2604 + "once_cell",
2605 + "smallvec 1.16.0",
2606 + "thiserror 1.0.69",
2607 +]
2608 +
2609 +[[package]]
2610 +name = "glib-macros"
2611 +version = "0.18.5"
2612 +source = "registry+https://github.com/rust-lang/crates.io-index"
2613 +checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
2614 +dependencies = [
2615 + "heck 0.4.1",
2616 + "proc-macro-crate 2.0.2",
2617 + "proc-macro-error",
2618 + "proc-macro2",
2619 + "quote",
2620 + "syn 2.0.119",
2621 +]
2622 +
2623 +[[package]]
2624 +name = "glib-sys"
2625 +version = "0.18.1"
2626 +source = "registry+https://github.com/rust-lang/crates.io-index"
2627 +checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
2628 +dependencies = [
2629 + "libc",
2630 + "system-deps",
2631 +]
2632 +
2633 +[[package]]
2634 +name = "glob"
2635 +version = "0.3.4"
2636 +source = "registry+https://github.com/rust-lang/crates.io-index"
2637 +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b"
2638 +
2639 +[[package]]
2640 +name = "gobject-sys"
2641 +version = "0.18.0"
2642 +source = "registry+https://github.com/rust-lang/crates.io-index"
2643 +checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
2644 +dependencies = [
2645 + "glib-sys",
2646 + "libc",
2647 + "system-deps",
2648 +]
2649 +
2650 +[[package]]
2651 +name = "goblin"
2652 +version = "0.8.2"
2653 +source = "registry+https://github.com/rust-lang/crates.io-index"
2654 +checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47"
2655 +dependencies = [
2656 + "log",
2657 + "plain",
2658 + "scroll",
2659 +]
2660 +
2661 +[[package]]
2662 +name = "gtk"
2663 +version = "0.18.2"
2664 +source = "registry+https://github.com/rust-lang/crates.io-index"
2665 +checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a"
2666 +dependencies = [
2667 + "atk",
2668 + "cairo-rs",
2669 + "field-offset",
2670 + "futures-channel",
2671 + "gdk",
2672 + "gdk-pixbuf",
2673 + "gio",
2674 + "glib",
2675 + "gtk-sys",
2676 + "gtk3-macros",
2677 + "libc",
2678 + "pango",
2679 + "pkg-config",
2680 +]
2681 +
2682 +[[package]]
2683 +name = "gtk-sys"
2684 +version = "0.18.2"
2685 +source = "registry+https://github.com/rust-lang/crates.io-index"
2686 +checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414"
2687 +dependencies = [
2688 + "atk-sys",
2689 + "cairo-sys-rs",
2690 + "gdk-pixbuf-sys",
2691 + "gdk-sys",
2692 + "gio-sys",
2693 + "glib-sys",
2694 + "gobject-sys",
2695 + "libc",
2696 + "pango-sys",
2697 + "system-deps",
2698 +]
2699 +
2700 +[[package]]
2701 +name = "gtk3-macros"
2702 +version = "0.18.2"
2703 +source = "registry+https://github.com/rust-lang/crates.io-index"
2704 +checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d"
2705 +dependencies = [
2706 + "proc-macro-crate 1.3.1",
2707 + "proc-macro-error",
2708 + "proc-macro2",
2709 + "quote",
2710 + "syn 2.0.119",
2711 +]
2712 +
2713 +[[package]]
2714 +name = "h2"
2715 +version = "0.4.19"
2716 +source = "registry+https://github.com/rust-lang/crates.io-index"
2717 +checksum = "ef8e5e5a340588f4452631496976cf8636d4a7ecf600239fdc27615d2530bc16"
2718 +dependencies = [
2719 + "atomic-waker",
2720 + "bytes",
2721 + "fnv",
2722 + "futures-core",
2723 + "futures-sink",
2724 + "http",
2725 + "indexmap 2.14.2",
2726 + "slab",
2727 + "tokio",
2728 + "tokio-util",
2729 + "tracing",
2730 +]
2731 +
2732 +[[package]]
2733 +name = "half"
2734 +version = "2.7.1"
2735 +source = "registry+https://github.com/rust-lang/crates.io-index"
2736 +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
2737 +dependencies = [
2738 + "bytemuck",
2739 + "cfg-if",
2740 + "crunchy",
2741 + "num-traits",
2742 + "rand 0.9.5",
2743 + "rand_distr 0.5.1",
2744 + "zerocopy",
2745 +]
2746 +
2747 +[[package]]
2748 +name = "hashbrown"
2749 +version = "0.12.3"
2750 +source = "registry+https://github.com/rust-lang/crates.io-index"
2751 +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
2752 +
2753 +[[package]]
2754 +name = "hashbrown"
2755 +version = "0.15.5"
2756 +source = "registry+https://github.com/rust-lang/crates.io-index"
2757 +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
2758 +dependencies = [
2759 + "allocator-api2",
2760 + "equivalent",
2761 + "foldhash 0.1.5",
2762 +]
2763 +
2764 +[[package]]
2765 +name = "hashbrown"
2766 +version = "0.16.1"
2767 +source = "registry+https://github.com/rust-lang/crates.io-index"
2768 +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
2769 +dependencies = [
2770 + "allocator-api2",
2771 + "equivalent",
2772 + "foldhash 0.2.0",
2773 + "serde",
2774 + "serde_core",
2775 +]
2776 +
2777 +[[package]]
2778 +name = "hashbrown"
2779 +version = "0.17.1"
2780 +source = "registry+https://github.com/rust-lang/crates.io-index"
2781 +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
2782 +
2783 +[[package]]
2784 +name = "heck"
2785 +version = "0.3.3"
2786 +source = "registry+https://github.com/rust-lang/crates.io-index"
2787 +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
2788 +dependencies = [
2789 + "unicode-segmentation",
2790 +]
2791 +
2792 +[[package]]
2793 +name = "heck"
2794 +version = "0.4.1"
2795 +source = "registry+https://github.com/rust-lang/crates.io-index"
2796 +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
2797 +
2798 +[[package]]
2799 +name = "heck"
2800 +version = "0.5.0"
2801 +source = "registry+https://github.com/rust-lang/crates.io-index"
2802 +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
2803 +
2804 +[[package]]
2805 +name = "hermit-abi"
2806 +version = "0.1.19"
2807 +source = "registry+https://github.com/rust-lang/crates.io-index"
2808 +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
2809 +dependencies = [
2810 + "libc",
2811 +]
2812 +
2813 +[[package]]
2814 +name = "hermit-abi"
2815 +version = "0.5.3"
2816 +source = "registry+https://github.com/rust-lang/crates.io-index"
2817 +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284"
2818 +
2819 +[[package]]
2820 +name = "hex"
2821 +version = "0.4.3"
2822 +source = "registry+https://github.com/rust-lang/crates.io-index"
2823 +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
2824 +
2825 +[[package]]
2826 +name = "hf-hub"
2827 +version = "0.4.3"
2828 +source = "registry+https://github.com/rust-lang/crates.io-index"
2829 +checksum = "629d8f3bbeda9d148036d6b0de0a3ab947abd08ce90626327fc3547a49d59d97"
2830 +dependencies = [
2831 + "dirs",
2832 + "futures",
2833 + "http",
2834 + "indicatif 0.17.11",
2835 + "libc",
2836 + "log",
2837 + "num_cpus",
2838 + "rand 0.9.5",
2839 + "reqwest 0.12.28",
2840 + "serde",
2841 + "serde_json",
2842 + "thiserror 2.0.20",
2843 + "tokio",
2844 + "ureq",
2845 + "windows-sys 0.60.2",
2846 +]
2847 +
2848 +[[package]]
2849 +name = "home"
2850 +version = "0.5.12"
2851 +source = "registry+https://github.com/rust-lang/crates.io-index"
2852 +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d"
2853 +dependencies = [
2854 + "windows-sys 0.61.2",
2855 +]
2856 +
2857 +[[package]]
2858 +name = "hound"
2859 +version = "3.5.1"
2860 +source = "registry+https://github.com/rust-lang/crates.io-index"
2861 +checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f"
2862 +
2863 +[[package]]
2864 +name = "html2text"
2865 +version = "0.16.7"
2866 +source = "registry+https://github.com/rust-lang/crates.io-index"
2867 +checksum = "12d23156ea4dbe6b37ad48fab2da56ff27b0f6192fb5db210c44eb07bfe6e787"
2868 +dependencies = [
2869 + "html5ever 0.38.0",
2870 + "tendril 0.5.1",
2871 + "thiserror 2.0.20",
2872 + "unicode-width 0.2.2",
2873 +]
2874 +
2875 +[[package]]
2876 +name = "html5ever"
2877 +version = "0.36.1"
2878 +source = "registry+https://github.com/rust-lang/crates.io-index"
2879 +checksum = "6452c4751a24e1b99c3260d505eaeee76a050573e61f30ac2c924ddc7236f01e"
2880 +dependencies = [
2881 + "log",
2882 + "markup5ever 0.36.1",
2883 +]
2884 +
2885 +[[package]]
2886 +name = "html5ever"
2887 +version = "0.38.0"
2888 +source = "registry+https://github.com/rust-lang/crates.io-index"
2889 +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2"
2890 +dependencies = [
2891 + "log",
2892 + "markup5ever 0.38.0",
2893 +]
2894 +
2895 +[[package]]
2896 +name = "http"
2897 +version = "1.5.0"
2898 +source = "registry+https://github.com/rust-lang/crates.io-index"
2899 +checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0"
2900 +dependencies = [
2901 + "bytes",
2902 + "itoa",
2903 +]
2904 +
2905 +[[package]]
2906 +name = "http-body"
2907 +version = "1.1.0"
2908 +source = "registry+https://github.com/rust-lang/crates.io-index"
2909 +checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c"
2910 +dependencies = [
2911 + "bytes",
2912 + "http",
2913 +]
2914 +
2915 +[[package]]
2916 +name = "http-body-util"
2917 +version = "0.1.5"
2918 +source = "registry+https://github.com/rust-lang/crates.io-index"
2919 +checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c"
2920 +dependencies = [
2921 + "bytes",
2922 + "futures-core",
2923 + "http",
2924 + "http-body",
2925 + "pin-project-lite",
2926 +]
2927 +
2928 +[[package]]
2929 +name = "httparse"
2930 +version = "1.10.1"
2931 +source = "registry+https://github.com/rust-lang/crates.io-index"
2932 +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
2933 +
2934 +[[package]]
2935 +name = "hyper"
2936 +version = "1.11.1"
2937 +source = "registry+https://github.com/rust-lang/crates.io-index"
2938 +checksum = "27b501faa50e7a26c3d3560ca625132f4078a17771f4810baf70475ae48cbe43"
2939 +dependencies = [
2940 + "atomic-waker",
2941 + "bytes",
2942 + "futures-channel",
2943 + "futures-core",
2944 + "h2",
2945 + "http",
2946 + "http-body",
2947 + "httparse",
2948 + "itoa",
2949 + "pin-project-lite",
2950 + "smallvec 1.16.0",
2951 + "tokio",
2952 + "want",
2953 +]
2954 +
2955 +[[package]]
2956 +name = "hyper-rustls"
2957 +version = "0.27.9"
2958 +source = "registry+https://github.com/rust-lang/crates.io-index"
2959 +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f"
2960 +dependencies = [
2961 + "http",
2962 + "hyper",
2963 + "hyper-util",
2964 + "rustls",
2965 + "rustls-native-certs",
2966 + "tokio",
2967 + "tokio-rustls",
2968 + "tower-service",
2969 + "webpki-roots 1.0.9",
2970 +]
2971 +
2972 +[[package]]
2973 +name = "hyper-util"
2974 +version = "0.1.20"
2975 +source = "registry+https://github.com/rust-lang/crates.io-index"
2976 +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
2977 +dependencies = [
2978 + "base64 0.22.1",
2979 + "bytes",
2980 + "futures-channel",
2981 + "futures-util",
2982 + "http",
2983 + "http-body",
2984 + "hyper",
2985 + "ipnet",
2986 + "libc",
2987 + "percent-encoding",
2988 + "pin-project-lite",
2989 + "socket2",
2990 + "system-configuration",
2991 + "tokio",
2992 + "tower-service",
2993 + "tracing",
2994 + "windows-registry",
2995 +]
2996 +
2997 +[[package]]
2998 +name = "iana-time-zone"
2999 +version = "0.1.65"
3000 +source = "registry+https://github.com/rust-lang/crates.io-index"
3001 +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
3002 +dependencies = [
3003 + "android_system_properties",
3004 + "core-foundation-sys",
3005 + "iana-time-zone-haiku",
3006 + "js-sys",
3007 + "log",
3008 + "wasm-bindgen",
3009 + "windows-core 0.62.2",
3010 +]
3011 +
3012 +[[package]]
3013 +name = "iana-time-zone-haiku"
3014 +version = "0.1.2"
3015 +source = "registry+https://github.com/rust-lang/crates.io-index"
3016 +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
3017 +dependencies = [
3018 + "cc",
3019 +]
3020 +
3021 +[[package]]
3022 +name = "ico"
3023 +version = "0.5.0"
3024 +source = "registry+https://github.com/rust-lang/crates.io-index"
3025 +checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371"
3026 +dependencies = [
3027 + "byteorder",
3028 + "png 0.17.16",
3029 +]
3030 +
3031 +[[package]]
3032 +name = "icu_collections"
3033 +version = "2.3.0"
3034 +source = "registry+https://github.com/rust-lang/crates.io-index"
3035 +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513"
3036 +dependencies = [
3037 + "displaydoc",
3038 + "potential_utf",
3039 + "utf8_iter",
3040 + "yoke 0.8.3",
3041 + "zerofrom",
3042 + "zerovec",
3043 +]
3044 +
3045 +[[package]]
3046 +name = "icu_locale_core"
3047 +version = "2.3.0"
3048 +source = "registry+https://github.com/rust-lang/crates.io-index"
3049 +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb"
3050 +dependencies = [
3051 + "displaydoc",
3052 + "litemap",
3053 + "tinystr",
3054 + "writeable",
3055 + "zerovec",
3056 +]
3057 +
3058 +[[package]]
3059 +name = "icu_normalizer"
3060 +version = "2.3.0"
3061 +source = "registry+https://github.com/rust-lang/crates.io-index"
3062 +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f"
3063 +dependencies = [
3064 + "icu_collections",
3065 + "icu_normalizer_data",
3066 + "icu_properties",
3067 + "icu_provider",
3068 + "smallvec 1.16.0",
3069 + "zerovec",
3070 +]
3071 +
3072 +[[package]]
3073 +name = "icu_normalizer_data"
3074 +version = "2.3.0"
3075 +source = "registry+https://github.com/rust-lang/crates.io-index"
3076 +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0"
3077 +
3078 +[[package]]
3079 +name = "icu_properties"
3080 +version = "2.3.0"
3081 +source = "registry+https://github.com/rust-lang/crates.io-index"
3082 +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148"
3083 +dependencies = [
3084 + "displaydoc",
3085 + "icu_collections",
3086 + "icu_locale_core",
3087 + "icu_properties_data",
3088 + "icu_provider",
3089 + "zerotrie",
3090 + "zerovec",
3091 +]
3092 +
3093 +[[package]]
3094 +name = "icu_properties_data"
3095 +version = "2.3.0"
3096 +source = "registry+https://github.com/rust-lang/crates.io-index"
3097 +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa"
3098 +
3099 +[[package]]
3100 +name = "icu_provider"
3101 +version = "2.3.1"
3102 +source = "registry+https://github.com/rust-lang/crates.io-index"
3103 +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73"
3104 +dependencies = [
3105 + "displaydoc",
3106 + "icu_locale_core",
3107 + "writeable",
3108 + "yoke 0.8.3",
3109 + "zerofrom",
3110 + "zerotrie",
3111 + "zerovec",
3112 +]
3113 +
3114 +[[package]]
3115 +name = "ident_case"
3116 +version = "1.0.1"
3117 +source = "registry+https://github.com/rust-lang/crates.io-index"
3118 +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
3119 +
3120 +[[package]]
3121 +name = "idna"
3122 +version = "1.1.0"
3123 +source = "registry+https://github.com/rust-lang/crates.io-index"
3124 +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
3125 +dependencies = [
3126 + "idna_adapter",
3127 + "smallvec 1.16.0",
3128 + "utf8_iter",
3129 +]
3130 +
3131 +[[package]]
3132 +name = "idna_adapter"
3133 +version = "1.2.2"
3134 +source = "registry+https://github.com/rust-lang/crates.io-index"
3135 +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714"
3136 +dependencies = [
3137 + "icu_normalizer",
3138 + "icu_properties",
3139 +]
3140 +
3141 +[[package]]
3142 +name = "image"
3143 +version = "0.25.10"
3144 +source = "registry+https://github.com/rust-lang/crates.io-index"
3145 +checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104"
3146 +dependencies = [
3147 + "bytemuck",
3148 + "byteorder-lite",
3149 + "color_quant",
3150 + "exr",
3151 + "gif",
3152 + "image-webp",
3153 + "moxcms",
3154 + "num-traits",
3155 + "png 0.18.1",
3156 + "qoi",
3157 + "ravif",
3158 + "rayon",
3159 + "rgb",
3160 + "tiff",
3161 + "zune-core",
3162 + "zune-jpeg",
3163 +]
3164 +
3165 +[[package]]
3166 +name = "image-webp"
3167 +version = "0.2.4"
3168 +source = "registry+https://github.com/rust-lang/crates.io-index"
3169 +checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3"
3170 +dependencies = [
3171 + "byteorder-lite",
3172 + "quick-error",
3173 +]
3174 +
3175 +[[package]]
3176 +name = "imgref"
3177 +version = "1.12.3"
3178 +source = "registry+https://github.com/rust-lang/crates.io-index"
3179 +checksum = "6e44b0a4eaa4c82f441d50a963f2d5f05a787240aeee097597033e72accfd22f"
3180 +
3181 +[[package]]
3182 +name = "indexmap"
3183 +version = "1.9.3"
3184 +source = "registry+https://github.com/rust-lang/crates.io-index"
3185 +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
3186 +dependencies = [
3187 + "autocfg",
3188 + "hashbrown 0.12.3",
3189 + "serde",
3190 +]
3191 +
3192 +[[package]]
3193 +name = "indexmap"
3194 +version = "2.14.2"
3195 +source = "registry+https://github.com/rust-lang/crates.io-index"
3196 +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855"
3197 +dependencies = [
3198 + "equivalent",
3199 + "hashbrown 0.17.1",
3200 + "serde",
3201 + "serde_core",
3202 +]
3203 +
3204 +[[package]]
3205 +name = "indicatif"
3206 +version = "0.17.11"
3207 +source = "registry+https://github.com/rust-lang/crates.io-index"
3208 +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235"
3209 +dependencies = [
3210 + "console 0.15.11",
3211 + "number_prefix",
3212 + "portable-atomic",
3213 + "unicode-width 0.2.2",
3214 + "web-time",
3215 +]
3216 +
3217 +[[package]]
3218 +name = "indicatif"
3219 +version = "0.18.6"
3220 +source = "registry+https://github.com/rust-lang/crates.io-index"
3221 +checksum = "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c"
3222 +dependencies = [
3223 + "console 0.16.4",
3224 + "portable-atomic",
3225 + "rayon",
3226 + "unicode-width 0.2.2",
3227 + "unit-prefix",
3228 + "web-time",
3229 +]
3230 +
3231 +[[package]]
3232 +name = "infer"
3233 +version = "0.19.0"
3234 +source = "registry+https://github.com/rust-lang/crates.io-index"
3235 +checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7"
3236 +dependencies = [
3237 + "cfb",
3238 +]
3239 +
3240 +[[package]]
3241 +name = "interpolate_name"
3242 +version = "0.2.4"
3243 +source = "registry+https://github.com/rust-lang/crates.io-index"
3244 +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60"
3245 +dependencies = [
3246 + "proc-macro2",
3247 + "quote",
3248 + "syn 2.0.119",
3249 +]
3250 +
3251 +[[package]]
3252 +name = "interprocess"
3253 +version = "2.4.4"
3254 +source = "registry+https://github.com/rust-lang/crates.io-index"
3255 +checksum = "6cb02ffbf25e8ef0f4a95bff054eef75f6d1bf16919474cf2caa63b21997478a"
3256 +dependencies = [
3257 + "doctest-file",
3258 + "libc",
3259 + "recvmsg",
3260 + "widestring",
3261 + "windows-sys 0.61.2",
3262 +]
3263 +
3264 +[[package]]
3265 +name = "ipnet"
3266 +version = "2.12.2"
3267 +source = "registry+https://github.com/rust-lang/crates.io-index"
3268 +checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0"
3269 +
3270 +[[package]]
3271 +name = "is_terminal_polyfill"
3272 +version = "1.70.2"
3273 +source = "registry+https://github.com/rust-lang/crates.io-index"
3274 +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
3275 +
3276 +[[package]]
3277 +name = "itertools"
3278 +version = "0.14.0"
3279 +source = "registry+https://github.com/rust-lang/crates.io-index"
3280 +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
3281 +dependencies = [
3282 + "either",
3283 +]
3284 +
3285 +[[package]]
3286 +name = "itoa"
3287 +version = "1.0.18"
3288 +source = "registry+https://github.com/rust-lang/crates.io-index"
3289 +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
3290 +
3291 +[[package]]
3292 +name = "javascriptcore-rs"
3293 +version = "1.1.2"
3294 +source = "registry+https://github.com/rust-lang/crates.io-index"
3295 +checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc"
3296 +dependencies = [
3297 + "bitflags 1.3.2",
3298 + "glib",
3299 + "javascriptcore-rs-sys",
3300 +]
3301 +
3302 +[[package]]
3303 +name = "javascriptcore-rs-sys"
3304 +version = "1.1.1"
3305 +source = "registry+https://github.com/rust-lang/crates.io-index"
3306 +checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124"
3307 +dependencies = [
3308 + "glib-sys",
3309 + "gobject-sys",
3310 + "libc",
3311 + "system-deps",
3312 +]
3313 +
3314 +[[package]]
3315 +name = "jiff"
3316 +version = "0.2.35"
3317 +source = "registry+https://github.com/rust-lang/crates.io-index"
3318 +checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc"
3319 +dependencies = [
3320 + "defmt",
3321 + "jiff-core",
3322 + "jiff-static",
3323 + "jiff-tzdb-platform",
3324 + "log",
3325 + "portable-atomic",
3326 + "portable-atomic-util",
3327 + "serde_core",
3328 + "windows-link 0.2.1",
3329 +]
3330 +
3331 +[[package]]
3332 +name = "jiff-core"
3333 +version = "0.1.0"
3334 +source = "registry+https://github.com/rust-lang/crates.io-index"
3335 +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09"
3336 +dependencies = [
3337 + "defmt",
3338 +]
3339 +
3340 +[[package]]
3341 +name = "jiff-static"
3342 +version = "0.2.35"
3343 +source = "registry+https://github.com/rust-lang/crates.io-index"
3344 +checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204"
3345 +dependencies = [
3346 + "jiff-core",
3347 + "proc-macro2",
3348 + "quote",
3349 + "syn 2.0.119",
3350 +]
3351 +
3352 +[[package]]
3353 +name = "jiff-tzdb"
3354 +version = "0.1.8"
3355 +source = "registry+https://github.com/rust-lang/crates.io-index"
3356 +checksum = "142bd39932ad231f10513df9ab62661fead8719872150b7ad02a2df79f4e141e"
3357 +
3358 +[[package]]
3359 +name = "jiff-tzdb-platform"
3360 +version = "0.1.3"
3361 +source = "registry+https://github.com/rust-lang/crates.io-index"
3362 +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8"
3363 +dependencies = [
3364 + "jiff-tzdb",
3365 +]
3366 +
3367 +[[package]]
3368 +name = "jni"
3369 +version = "0.21.1"
3370 +source = "registry+https://github.com/rust-lang/crates.io-index"
3371 +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
3372 +dependencies = [
3373 + "cesu8",
3374 + "cfg-if",
3375 + "combine",
3376 + "jni-sys 0.3.1",
3377 + "log",
3378 + "thiserror 1.0.69",
3379 + "walkdir",
3380 + "windows-sys 0.45.0",
3381 +]
3382 +
3383 +[[package]]
3384 +name = "jni"
3385 +version = "0.22.4"
3386 +source = "registry+https://github.com/rust-lang/crates.io-index"
3387 +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498"
3388 +dependencies = [
3389 + "cfg-if",
3390 + "combine",
3391 + "jni-macros",
3392 + "jni-sys 0.4.1",
3393 + "log",
3394 + "simd_cesu8",
3395 + "thiserror 2.0.20",
3396 + "walkdir",
3397 + "windows-link 0.2.1",
3398 +]
3399 +
3400 +[[package]]
3401 +name = "jni-macros"
3402 +version = "0.22.4"
3403 +source = "registry+https://github.com/rust-lang/crates.io-index"
3404 +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3"
3405 +dependencies = [
3406 + "proc-macro2",
3407 + "quote",
3408 + "rustc_version",
3409 + "simd_cesu8",
3410 + "syn 2.0.119",
3411 +]
3412 +
3413 +[[package]]
3414 +name = "jni-sys"
3415 +version = "0.3.1"
3416 +source = "registry+https://github.com/rust-lang/crates.io-index"
3417 +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258"
3418 +dependencies = [
3419 + "jni-sys 0.4.1",
3420 +]
3421 +
3422 +[[package]]
3423 +name = "jni-sys"
3424 +version = "0.4.1"
3425 +source = "registry+https://github.com/rust-lang/crates.io-index"
3426 +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
3427 +dependencies = [
3428 + "jni-sys-macros",
3429 +]
3430 +
3431 +[[package]]
3432 +name = "jni-sys-macros"
3433 +version = "0.4.1"
3434 +source = "registry+https://github.com/rust-lang/crates.io-index"
3435 +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
3436 +dependencies = [
3437 + "quote",
3438 + "syn 2.0.119",
3439 +]
3440 +
3441 +[[package]]
3442 +name = "jobserver"
3443 +version = "0.1.35"
3444 +source = "registry+https://github.com/rust-lang/crates.io-index"
3445 +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3"
3446 +dependencies = [
3447 + "getrandom 0.4.3",
3448 + "libc",
3449 +]
3450 +
3451 +[[package]]
3452 +name = "js-sys"
3453 +version = "0.3.105"
3454 +source = "registry+https://github.com/rust-lang/crates.io-index"
3455 +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e"
3456 +dependencies = [
3457 + "cfg-if",
3458 + "futures-util",
3459 + "wasm-bindgen",
3460 +]
3461 +
3462 +[[package]]
3463 +name = "json-patch"
3464 +version = "3.0.1"
3465 +source = "registry+https://github.com/rust-lang/crates.io-index"
3466 +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08"
3467 +dependencies = [
3468 + "jsonptr",
3469 + "serde",
3470 + "serde_json",
3471 + "thiserror 1.0.69",
3472 +]
3473 +
3474 +[[package]]
3475 +name = "jsonptr"
3476 +version = "0.6.3"
3477 +source = "registry+https://github.com/rust-lang/crates.io-index"
3478 +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70"
3479 +dependencies = [
3480 + "serde",
3481 + "serde_json",
3482 +]
3483 +
3484 +[[package]]
3485 +name = "keyboard-types"
3486 +version = "0.7.0"
3487 +source = "registry+https://github.com/rust-lang/crates.io-index"
3488 +checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
3489 +dependencies = [
3490 + "bitflags 2.13.1",
3491 + "serde",
3492 + "unicode-segmentation",
3493 +]
3494 +
3495 +[[package]]
3496 +name = "landlock"
3497 +version = "0.4.7"
3498 +source = "registry+https://github.com/rust-lang/crates.io-index"
3499 +checksum = "4cca98e95f35b29d469dade6724c6f96cec9236640f745a0e99b0334ec320ab1"
3500 +dependencies = [
3501 + "enumflags2",
3502 + "libc",
3503 + "thiserror 2.0.20",
3504 +]
3505 +
3506 +[[package]]
3507 +name = "lazy_static"
3508 +version = "1.5.0"
3509 +source = "registry+https://github.com/rust-lang/crates.io-index"
3510 +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
3511 +
3512 +[[package]]
3513 +name = "lebe"
3514 +version = "0.5.3"
3515 +source = "registry+https://github.com/rust-lang/crates.io-index"
3516 +checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
3517 +
3518 +[[package]]
3519 +name = "libappindicator"
3520 +version = "0.9.0"
3521 +source = "registry+https://github.com/rust-lang/crates.io-index"
3522 +checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a"
3523 +dependencies = [
3524 + "glib",
3525 + "gtk",
3526 + "gtk-sys",
3527 + "libappindicator-sys",
3528 + "log",
3529 +]
3530 +
3531 +[[package]]
3532 +name = "libappindicator-sys"
3533 +version = "0.9.0"
3534 +source = "registry+https://github.com/rust-lang/crates.io-index"
3535 +checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
3536 +dependencies = [
3537 + "gtk-sys",
3538 + "libloading 0.7.4",
3539 + "once_cell",
3540 +]
3541 +
3542 +[[package]]
3543 +name = "libc"
3544 +version = "0.2.189"
3545 +source = "registry+https://github.com/rust-lang/crates.io-index"
3546 +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
3547 +
3548 +[[package]]
3549 +name = "libdbus-sys"
3550 +version = "0.2.7"
3551 +source = "registry+https://github.com/rust-lang/crates.io-index"
3552 +checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043"
3553 +dependencies = [
3554 + "pkg-config",
3555 +]
3556 +
3557 +[[package]]
3558 +name = "libfuzzer-sys"
3559 +version = "0.4.13"
3560 +source = "registry+https://github.com/rust-lang/crates.io-index"
3561 +checksum = "a9fd2f41a1cba099f79a0b6b6c35656cf7c03351a7bae8ff0f28f25270f929d2"
3562 +dependencies = [
3563 + "arbitrary",
3564 + "cc",
3565 +]
3566 +
3567 +[[package]]
3568 +name = "libloading"
3569 +version = "0.7.4"
3570 +source = "registry+https://github.com/rust-lang/crates.io-index"
3571 +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
3572 +dependencies = [
3573 + "cfg-if",
3574 + "winapi",
3575 +]
3576 +
3577 +[[package]]
3578 +name = "libloading"
3579 +version = "0.8.9"
3580 +source = "registry+https://github.com/rust-lang/crates.io-index"
3581 +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
3582 +dependencies = [
3583 + "cfg-if",
3584 + "windows-link 0.2.1",
3585 +]
3586 +
3587 +[[package]]
3588 +name = "libm"
3589 +version = "0.2.16"
3590 +source = "registry+https://github.com/rust-lang/crates.io-index"
3591 +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
3592 +
3593 +[[package]]
3594 +name = "libredox"
3595 +version = "0.1.23"
3596 +source = "registry+https://github.com/rust-lang/crates.io-index"
3597 +checksum = "8d8f1ea3f21fd3405dcaf6c9b5c1630af9afc422d9073ea39c5f6d6c772e08ed"
3598 +dependencies = [
3599 + "libc",
3600 +]
3601 +
3602 +[[package]]
3603 +name = "linux-raw-sys"
3604 +version = "0.12.1"
3605 +source = "registry+https://github.com/rust-lang/crates.io-index"
3606 +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
3607 +
3608 +[[package]]
3609 +name = "litemap"
3610 +version = "0.8.3"
3611 +source = "registry+https://github.com/rust-lang/crates.io-index"
3612 +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae"
3613 +
3614 +[[package]]
3615 +name = "litrs"
3616 +version = "1.0.0"
3617 +source = "registry+https://github.com/rust-lang/crates.io-index"
3618 +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
3619 +
3620 +[[package]]
3621 +name = "llguidance"
3622 +version = "1.8.0"
3623 +source = "registry+https://github.com/rust-lang/crates.io-index"
3624 +checksum = "207e72ede15e79f1e7a7f0e2683387da031c1931f6de650020afb80c571efb67"
3625 +dependencies = [
3626 + "anyhow",
3627 + "derivre",
3628 + "indexmap 2.14.2",
3629 + "regex-syntax",
3630 + "serde",
3631 + "serde_json",
3632 + "toktrie",
3633 +]
3634 +
3635 +[[package]]
3636 +name = "lock_api"
3637 +version = "0.4.14"
3638 +source = "registry+https://github.com/rust-lang/crates.io-index"
3639 +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
3640 +dependencies = [
3641 + "scopeguard",
3642 +]
3643 +
3644 +[[package]]
3645 +name = "log"
3646 +version = "0.4.34"
3647 +source = "registry+https://github.com/rust-lang/crates.io-index"
3648 +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
3649 +
3650 +[[package]]
3651 +name = "loom"
3652 +version = "0.5.6"
3653 +source = "registry+https://github.com/rust-lang/crates.io-index"
3654 +checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
3655 +dependencies = [
3656 + "cfg-if",
3657 + "generator",
3658 + "scoped-tls",
3659 + "serde",
3660 + "serde_json",
3661 + "tracing",
3662 + "tracing-subscriber",
3663 +]
3664 +
3665 +[[package]]
3666 +name = "loop9"
3667 +version = "0.1.5"
3668 +source = "registry+https://github.com/rust-lang/crates.io-index"
3669 +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062"
3670 +dependencies = [
3671 + "imgref",
3672 +]
3673 +
3674 +[[package]]
3675 +name = "lrtable"
3676 +version = "0.14.2"
3677 +source = "registry+https://github.com/rust-lang/crates.io-index"
3678 +checksum = "bcbe6a005a604615ab7aab7d1f74be563e508f5c6e42f85fbf65c38fe1f5f268"
3679 +dependencies = [
3680 + "cfgrammar",
3681 + "fnv",
3682 + "num-traits",
3683 + "sparsevec",
3684 + "vob",
3685 +]
3686 +
3687 +[[package]]
3688 +name = "lru-slab"
3689 +version = "0.1.2"
3690 +source = "registry+https://github.com/rust-lang/crates.io-index"
3691 +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
3692 +
3693 +[[package]]
3694 +name = "mac"
3695 +version = "0.1.1"
3696 +source = "registry+https://github.com/rust-lang/crates.io-index"
3697 +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
3698 +
3699 +[[package]]
3700 +name = "macro_rules_attribute"
3701 +version = "0.2.3"
3702 +source = "registry+https://github.com/rust-lang/crates.io-index"
3703 +checksum = "b3ae8f6d608c795738406608304d30a2dfbdc8e58e44f7ba43236da5208ded3c"
3704 +dependencies = [
3705 + "macro_rules_attribute-proc_macro",
3706 + "pastey 0.2.3",
3707 +]
3708 +
3709 +[[package]]
3710 +name = "macro_rules_attribute-proc_macro"
3711 +version = "0.2.3"
3712 +source = "registry+https://github.com/rust-lang/crates.io-index"
3713 +checksum = "fc04a4c58212d57930a24bf47d3fa87485264a3a054e9c10e042eb373573ad3c"
3714 +
3715 +[[package]]
3716 +name = "malloc_buf"
3717 +version = "0.0.6"
3718 +source = "registry+https://github.com/rust-lang/crates.io-index"
3719 +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
3720 +dependencies = [
3721 + "libc",
3722 +]
3723 +
3724 +[[package]]
3725 +name = "maplit"
3726 +version = "1.0.2"
3727 +source = "registry+https://github.com/rust-lang/crates.io-index"
3728 +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
3729 +
3730 +[[package]]
3731 +name = "markup5ever"
3732 +version = "0.36.1"
3733 +source = "registry+https://github.com/rust-lang/crates.io-index"
3734 +checksum = "6c3294c4d74d0742910f8c7b466f44dda9eb2d5742c1e430138df290a1e8451c"
3735 +dependencies = [
3736 + "log",
3737 + "tendril 0.4.3",
3738 + "web_atoms",
3739 +]
3740 +
3741 +[[package]]
3742 +name = "markup5ever"
3743 +version = "0.38.0"
3744 +source = "registry+https://github.com/rust-lang/crates.io-index"
3745 +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862"
3746 +dependencies = [
3747 + "log",
3748 + "tendril 0.5.1",
3749 + "web_atoms",
3750 +]
3751 +
3752 +[[package]]
3753 +name = "matchers"
3754 +version = "0.2.0"
3755 +source = "registry+https://github.com/rust-lang/crates.io-index"
3756 +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
3757 +dependencies = [
3758 + "regex-automata",
3759 +]
3760 +
3761 +[[package]]
3762 +name = "matrixmultiply"
3763 +version = "0.3.11"
3764 +source = "registry+https://github.com/rust-lang/crates.io-index"
3765 +checksum = "3f607c237553f086e7043417a51df26b2eb899d3caff94e6a67592ff992fedc7"
3766 +dependencies = [
3767 + "autocfg",
3768 + "rawpointer",
3769 +]
3770 +
3771 +[[package]]
3772 +name = "maybe-rayon"
3773 +version = "0.1.1"
3774 +source = "registry+https://github.com/rust-lang/crates.io-index"
3775 +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519"
3776 +dependencies = [
3777 + "cfg-if",
3778 + "rayon",
3779 +]
3780 +
3781 +[[package]]
3782 +name = "memchr"
3783 +version = "2.8.3"
3784 +source = "registry+https://github.com/rust-lang/crates.io-index"
3785 +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
3786 +
3787 +[[package]]
3788 +name = "memmap2"
3789 +version = "0.9.11"
3790 +source = "registry+https://github.com/rust-lang/crates.io-index"
3791 +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0"
3792 +dependencies = [
3793 + "libc",
3794 + "stable_deref_trait",
3795 +]
3796 +
3797 +[[package]]
3798 +name = "memo-map"
3799 +version = "0.3.4"
3800 +source = "registry+https://github.com/rust-lang/crates.io-index"
3801 +checksum = "5449c8c750f1a07ea702bbd212bd999fceece9b3d1508b17023b3e174583124b"
3802 +
3803 +[[package]]
3804 +name = "memoffset"
3805 +version = "0.9.1"
3806 +source = "registry+https://github.com/rust-lang/crates.io-index"
3807 +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
3808 +dependencies = [
3809 + "autocfg",
3810 +]
3811 +
3812 +[[package]]
3813 +name = "metal"
3814 +version = "0.29.0"
3815 +source = "registry+https://github.com/rust-lang/crates.io-index"
3816 +checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21"
3817 +dependencies = [
3818 + "bitflags 2.13.1",
3819 + "block",
3820 + "core-graphics-types 0.1.3",
3821 + "foreign-types",
3822 + "log",
3823 + "objc",
3824 + "paste",
3825 +]
3826 +
3827 +[[package]]
3828 +name = "mime"
3829 +version = "0.3.17"
3830 +source = "registry+https://github.com/rust-lang/crates.io-index"
3831 +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
3832 +
3833 +[[package]]
3834 +name = "mime_guess"
3835 +version = "2.0.5"
3836 +source = "registry+https://github.com/rust-lang/crates.io-index"
3837 +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
3838 +dependencies = [
3839 + "mime",
3840 + "unicase",
3841 +]
3842 +
3843 +[[package]]
3844 +name = "minijinja"
3845 +version = "2.24.0"
3846 +source = "registry+https://github.com/rust-lang/crates.io-index"
3847 +checksum = "86886cf6dbf4e614b19c9a1eec9775f021869d7eadde0fc73921a81b90c9b4c9"
3848 +dependencies = [
3849 + "memo-map",
3850 + "serde",
3851 + "serde_json",
3852 +]
3853 +
3854 +[[package]]
3855 +name = "minijinja-contrib"
3856 +version = "2.24.0"
3857 +source = "registry+https://github.com/rust-lang/crates.io-index"
3858 +checksum = "bd3e5f077bc2379f0f7d911e7cfdd921114ed99fc884533dca502944cb355b11"
3859 +dependencies = [
3860 + "minijinja",
3861 + "serde",
3862 +]
3863 +
3864 +[[package]]
3865 +name = "minimal-lexical"
3866 +version = "0.2.1"
3867 +source = "registry+https://github.com/rust-lang/crates.io-index"
3868 +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
3869 +
3870 +[[package]]
3871 +name = "miniz_oxide"
3872 +version = "0.8.9"
3873 +source = "registry+https://github.com/rust-lang/crates.io-index"
3874 +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
3875 +dependencies = [
3876 + "adler2",
3877 + "simd-adler32",
3878 +]
3879 +
3880 +[[package]]
3881 +name = "miniz_oxide"
3882 +version = "0.9.1"
3883 +source = "registry+https://github.com/rust-lang/crates.io-index"
3884 +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c"
3885 +dependencies = [
3886 + "adler2",
3887 + "simd-adler32",
3888 +]
3889 +
3890 +[[package]]
3891 +name = "mio"
3892 +version = "1.2.3"
3893 +source = "registry+https://github.com/rust-lang/crates.io-index"
3894 +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8"
3895 +dependencies = [
3896 + "libc",
3897 + "log",
3898 + "wasi",
3899 + "windows-sys 0.61.2",
3900 +]
3901 +
3902 +[[package]]
3903 +name = "monostate"
3904 +version = "0.1.18"
3905 +source = "registry+https://github.com/rust-lang/crates.io-index"
3906 +checksum = "3341a273f6c9d5bef1908f17b7267bbab0e95c9bf69a0d4dcf8e9e1b2c76ef67"
3907 +dependencies = [
3908 + "monostate-impl",
3909 + "serde",
3910 + "serde_core",
3911 +]
3912 +
3913 +[[package]]
3914 +name = "monostate-impl"
3915 +version = "0.1.18"
3916 +source = "registry+https://github.com/rust-lang/crates.io-index"
3917 +checksum = "e4db6d5580af57bf992f59068d4ea26fd518574ff48d7639b255a36f9de6e7e9"
3918 +dependencies = [
3919 + "proc-macro2",
3920 + "quote",
3921 + "syn 2.0.119",
3922 +]
3923 +
3924 +[[package]]
3925 +name = "moxcms"
3926 +version = "0.8.1"
3927 +source = "registry+https://github.com/rust-lang/crates.io-index"
3928 +checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b"
3929 +dependencies = [
3930 + "num-traits",
3931 + "pxfm",
3932 +]
3933 +
3934 +[[package]]
3935 +name = "muda"
3936 +version = "0.19.3"
3937 +source = "registry+https://github.com/rust-lang/crates.io-index"
3938 +checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878"
3939 +dependencies = [
3940 + "crossbeam-channel",
3941 + "dpi",
3942 + "gtk",
3943 + "keyboard-types",
3944 + "objc2",
3945 + "objc2-app-kit",
3946 + "objc2-core-foundation",
3947 + "objc2-foundation",
3948 + "once_cell",
3949 + "png 0.18.1",
3950 + "serde",
3951 + "thiserror 2.0.20",
3952 + "windows-sys 0.61.2",
3953 +]
3954 +
3955 +[[package]]
3956 +name = "multiversion"
3957 +version = "0.8.0"
3958 +source = "registry+https://github.com/rust-lang/crates.io-index"
3959 +checksum = "7edb7f0ff51249dfda9ab96b5823695e15a052dc15074c9dbf3d118afaf2c201"
3960 +dependencies = [
3961 + "multiversion-macros",
3962 + "target-features",
3963 +]
3964 +
3965 +[[package]]
3966 +name = "multiversion-macros"
3967 +version = "0.8.0"
3968 +source = "registry+https://github.com/rust-lang/crates.io-index"
3969 +checksum = "b093064383341eb3271f42e381cb8f10a01459478446953953c75d24bd339fc0"
3970 +dependencies = [
3971 + "proc-macro2",
3972 + "quote",
3973 + "syn 2.0.119",
3974 + "target-features",
3975 +]
3976 +
3977 +[[package]]
3978 +name = "multiversion_no_op"
3979 +version = "1.0.0"
3980 +source = "registry+https://github.com/rust-lang/crates.io-index"
3981 +checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d"
3982 +
3983 +[[package]]
3984 +name = "nalgebra"
3985 +version = "0.33.3"
3986 +source = "registry+https://github.com/rust-lang/crates.io-index"
3987 +checksum = "9d43ddcacf343185dfd6de2ee786d9e8b1c2301622afab66b6c73baf9882abfd"
3988 +dependencies = [
3989 + "approx",
3990 + "matrixmultiply",
3991 + "num-complex",
3992 + "num-rational",
3993 + "num-traits",
3994 + "rand 0.8.8",
3995 + "rand_distr 0.4.3",
3996 + "simba",
3997 + "typenum",
3998 +]
3999 +
4000 +[[package]]
4001 +name = "ndk"
4002 +version = "0.9.0"
4003 +source = "registry+https://github.com/rust-lang/crates.io-index"
4004 +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
4005 +dependencies = [
4006 + "bitflags 2.13.1",
4007 + "jni-sys 0.3.1",
4008 + "log",
4009 + "ndk-sys",
4010 + "num_enum",
4011 + "raw-window-handle",
4012 + "thiserror 1.0.69",
4013 +]
4014 +
4015 +[[package]]
4016 +name = "ndk-sys"
4017 +version = "0.6.0+11769913"
4018 +source = "registry+https://github.com/rust-lang/crates.io-index"
4019 +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
4020 +dependencies = [
4021 + "jni-sys 0.3.1",
4022 +]
4023 +
4024 +[[package]]
4025 +name = "new_debug_unreachable"
4026 +version = "1.0.6"
4027 +source = "registry+https://github.com/rust-lang/crates.io-index"
4028 +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
4029 +
4030 +[[package]]
4031 +name = "nibble_vec"
4032 +version = "0.1.0"
4033 +source = "registry+https://github.com/rust-lang/crates.io-index"
4034 +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
4035 +dependencies = [
4036 + "smallvec 1.16.0",
4037 +]
4038 +
4039 +[[package]]
4040 +name = "nix"
4041 +version = "0.31.3"
4042 +source = "registry+https://github.com/rust-lang/crates.io-index"
4043 +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
4044 +dependencies = [
4045 + "bitflags 2.13.1",
4046 + "cfg-if",
4047 + "cfg_aliases",
4048 + "libc",
4049 +]
4050 +
4051 +[[package]]
4052 +name = "no_std_io2"
4053 +version = "0.9.4"
4054 +source = "registry+https://github.com/rust-lang/crates.io-index"
4055 +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003"
4056 +dependencies = [
4057 + "memchr",
4058 +]
4059 +
4060 +[[package]]
4061 +name = "nohash-hasher"
4062 +version = "0.2.0"
4063 +source = "registry+https://github.com/rust-lang/crates.io-index"
4064 +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
4065 +
4066 +[[package]]
4067 +name = "nom"
4068 +version = "7.1.3"
4069 +source = "registry+https://github.com/rust-lang/crates.io-index"
4070 +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
4071 +dependencies = [
4072 + "memchr",
4073 + "minimal-lexical",
4074 +]
4075 +
4076 +[[package]]
4077 +name = "nom"
4078 +version = "8.0.0"
4079 +source = "registry+https://github.com/rust-lang/crates.io-index"
4080 +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
4081 +dependencies = [
4082 + "memchr",
4083 +]
4084 +
4085 +[[package]]
4086 +name = "noop_proc_macro"
4087 +version = "0.3.0"
4088 +source = "registry+https://github.com/rust-lang/crates.io-index"
4089 +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
4090 +
4091 +[[package]]
4092 +name = "ntapi"
4093 +version = "0.4.3"
4094 +source = "registry+https://github.com/rust-lang/crates.io-index"
4095 +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae"
4096 +dependencies = [
4097 + "winapi",
4098 +]
4099 +
4100 +[[package]]
4101 +name = "nu-ansi-term"
4102 +version = "0.50.3"
4103 +source = "registry+https://github.com/rust-lang/crates.io-index"
4104 +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
4105 +dependencies = [
4106 + "windows-sys 0.61.2",
4107 +]
4108 +
4109 +[[package]]
4110 +name = "num"
4111 +version = "0.4.3"
4112 +source = "registry+https://github.com/rust-lang/crates.io-index"
4113 +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
4114 +dependencies = [
4115 + "num-bigint",
4116 + "num-complex",
4117 + "num-integer",
4118 + "num-iter",
4119 + "num-rational",
4120 + "num-traits",
4121 +]
4122 +
4123 +[[package]]
4124 +name = "num-bigint"
4125 +version = "0.4.8"
4126 +source = "registry+https://github.com/rust-lang/crates.io-index"
4127 +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367"
4128 +dependencies = [
4129 + "num-integer",
4130 + "num-traits",
4131 +]
4132 +
4133 +[[package]]
4134 +name = "num-complex"
4135 +version = "0.4.6"
4136 +source = "registry+https://github.com/rust-lang/crates.io-index"
4137 +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
4138 +dependencies = [
4139 + "bytemuck",
4140 + "num-traits",
4141 +]
4142 +
4143 +[[package]]
4144 +name = "num-conv"
4145 +version = "0.2.2"
4146 +source = "registry+https://github.com/rust-lang/crates.io-index"
4147 +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
4148 +
4149 +[[package]]
4150 +name = "num-derive"
4151 +version = "0.4.2"
4152 +source = "registry+https://github.com/rust-lang/crates.io-index"
4153 +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
4154 +dependencies = [
4155 + "proc-macro2",
4156 + "quote",
4157 + "syn 2.0.119",
4158 +]
4159 +
4160 +[[package]]
4161 +name = "num-integer"
4162 +version = "0.1.47"
4163 +source = "registry+https://github.com/rust-lang/crates.io-index"
4164 +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b"
4165 +dependencies = [
4166 + "num-traits",
4167 +]
4168 +
4169 +[[package]]
4170 +name = "num-iter"
4171 +version = "0.1.46"
4172 +source = "registry+https://github.com/rust-lang/crates.io-index"
4173 +checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b"
4174 +dependencies = [
4175 + "num-integer",
4176 + "num-traits",
4177 +]
4178 +
4179 +[[package]]
4180 +name = "num-rational"
4181 +version = "0.4.2"
4182 +source = "registry+https://github.com/rust-lang/crates.io-index"
4183 +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
4184 +dependencies = [
4185 + "num-bigint",
4186 + "num-integer",
4187 + "num-traits",
4188 +]
4189 +
4190 +[[package]]
4191 +name = "num-traits"
4192 +version = "0.2.19"
4193 +source = "registry+https://github.com/rust-lang/crates.io-index"
4194 +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
4195 +dependencies = [
4196 + "autocfg",
4197 + "libm",
4198 +]
4199 +
4200 +[[package]]
4201 +name = "num_cpus"
4202 +version = "1.17.0"
4203 +source = "registry+https://github.com/rust-lang/crates.io-index"
4204 +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
4205 +dependencies = [
4206 + "hermit-abi 0.5.3",
4207 + "libc",
4208 +]
4209 +
4210 +[[package]]
4211 +name = "num_enum"
4212 +version = "0.7.6"
4213 +source = "registry+https://github.com/rust-lang/crates.io-index"
4214 +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26"
4215 +dependencies = [
4216 + "num_enum_derive",
4217 + "rustversion",
4218 +]
4219 +
4220 +[[package]]
4221 +name = "num_enum_derive"
4222 +version = "0.7.6"
4223 +source = "registry+https://github.com/rust-lang/crates.io-index"
4224 +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8"
4225 +dependencies = [
4226 + "proc-macro-crate 3.5.0",
4227 + "proc-macro2",
4228 + "quote",
4229 + "syn 2.0.119",
4230 +]
4231 +
4232 +[[package]]
4233 +name = "number_prefix"
4234 +version = "0.4.0"
4235 +source = "registry+https://github.com/rust-lang/crates.io-index"
4236 +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
4237 +
4238 +[[package]]
4239 +name = "objc"
4240 +version = "0.2.7"
4241 +source = "registry+https://github.com/rust-lang/crates.io-index"
4242 +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
4243 +dependencies = [
4244 + "malloc_buf",
4245 +]
4246 +
4247 +[[package]]
4248 +name = "objc2"
4249 +version = "0.6.4"
4250 +source = "registry+https://github.com/rust-lang/crates.io-index"
4251 +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f"
4252 +dependencies = [
4253 + "objc2-encode",
4254 + "objc2-exception-helper",
4255 +]
4256 +
4257 +[[package]]
4258 +name = "objc2-app-kit"
4259 +version = "0.3.2"
4260 +source = "registry+https://github.com/rust-lang/crates.io-index"
4261 +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c"
4262 +dependencies = [
4263 + "bitflags 2.13.1",
4264 + "block2",
4265 + "objc2",
4266 + "objc2-core-foundation",
4267 + "objc2-foundation",
4268 +]
4269 +
4270 +[[package]]
4271 +name = "objc2-cloud-kit"
4272 +version = "0.3.2"
4273 +source = "registry+https://github.com/rust-lang/crates.io-index"
4274 +checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c"
4275 +dependencies = [
4276 + "bitflags 2.13.1",
4277 + "objc2",
4278 + "objc2-foundation",
4279 +]
4280 +
4281 +[[package]]
4282 +name = "objc2-core-data"
4283 +version = "0.3.2"
4284 +source = "registry+https://github.com/rust-lang/crates.io-index"
4285 +checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa"
4286 +dependencies = [
4287 + "objc2",
4288 + "objc2-foundation",
4289 +]
4290 +
4291 +[[package]]
4292 +name = "objc2-core-foundation"
4293 +version = "0.3.2"
4294 +source = "registry+https://github.com/rust-lang/crates.io-index"
4295 +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
4296 +dependencies = [
4297 + "bitflags 2.13.1",
4298 + "dispatch2",
4299 + "objc2",
4300 +]
4301 +
4302 +[[package]]
4303 +name = "objc2-core-graphics"
4304 +version = "0.3.2"
4305 +source = "registry+https://github.com/rust-lang/crates.io-index"
4306 +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807"
4307 +dependencies = [
4308 + "bitflags 2.13.1",
4309 + "dispatch2",
4310 + "objc2",
4311 + "objc2-core-foundation",
4312 + "objc2-io-surface",
4313 +]
4314 +
4315 +[[package]]
4316 +name = "objc2-core-image"
4317 +version = "0.3.2"
4318 +source = "registry+https://github.com/rust-lang/crates.io-index"
4319 +checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006"
4320 +dependencies = [
4321 + "objc2",
4322 + "objc2-foundation",
4323 +]
4324 +
4325 +[[package]]
4326 +name = "objc2-core-location"
4327 +version = "0.3.2"
4328 +source = "registry+https://github.com/rust-lang/crates.io-index"
4329 +checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009"
4330 +dependencies = [
4331 + "objc2",
4332 + "objc2-foundation",
4333 +]
4334 +
4335 +[[package]]
4336 +name = "objc2-core-text"
4337 +version = "0.3.2"
4338 +source = "registry+https://github.com/rust-lang/crates.io-index"
4339 +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d"
4340 +dependencies = [
4341 + "bitflags 2.13.1",
4342 + "objc2",
4343 + "objc2-core-foundation",
4344 + "objc2-core-graphics",
4345 +]
4346 +
4347 +[[package]]
4348 +name = "objc2-encode"
4349 +version = "4.1.0"
4350 +source = "registry+https://github.com/rust-lang/crates.io-index"
4351 +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
4352 +
4353 +[[package]]
4354 +name = "objc2-exception-helper"
4355 +version = "0.1.1"
4356 +source = "registry+https://github.com/rust-lang/crates.io-index"
4357 +checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a"
4358 +dependencies = [
4359 + "cc",
4360 +]
4361 +
4362 +[[package]]
4363 +name = "objc2-foundation"
4364 +version = "0.3.2"
4365 +source = "registry+https://github.com/rust-lang/crates.io-index"
4366 +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
4367 +dependencies = [
4368 + "bitflags 2.13.1",
4369 + "block2",
4370 + "libc",
4371 + "objc2",
4372 + "objc2-core-foundation",
4373 +]
4374 +
4375 +[[package]]
4376 +name = "objc2-io-kit"
4377 +version = "0.3.2"
4378 +source = "registry+https://github.com/rust-lang/crates.io-index"
4379 +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15"
4380 +dependencies = [
4381 + "libc",
4382 + "objc2-core-foundation",
4383 +]
4384 +
4385 +[[package]]
4386 +name = "objc2-io-surface"
4387 +version = "0.3.2"
4388 +source = "registry+https://github.com/rust-lang/crates.io-index"
4389 +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d"
4390 +dependencies = [
4391 + "bitflags 2.13.1",
4392 + "objc2",
4393 + "objc2-core-foundation",
4394 +]
4395 +
4396 +[[package]]
4397 +name = "objc2-metal"
4398 +version = "0.3.2"
4399 +source = "registry+https://github.com/rust-lang/crates.io-index"
4400 +checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794"
4401 +dependencies = [
4402 + "bitflags 2.13.1",
4403 + "block2",
4404 + "dispatch2",
4405 + "objc2",
4406 + "objc2-core-foundation",
4407 + "objc2-foundation",
4408 +]
4409 +
4410 +[[package]]
4411 +name = "objc2-quartz-core"
4412 +version = "0.3.2"
4413 +source = "registry+https://github.com/rust-lang/crates.io-index"
4414 +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f"
4415 +dependencies = [
4416 + "bitflags 2.13.1",
4417 + "objc2",
4418 + "objc2-core-foundation",
4419 + "objc2-foundation",
4420 +]
4421 +
4422 +[[package]]
4423 +name = "objc2-ui-kit"
4424 +version = "0.3.2"
4425 +source = "registry+https://github.com/rust-lang/crates.io-index"
4426 +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22"
4427 +dependencies = [
4428 + "bitflags 2.13.1",
4429 + "block2",
4430 + "objc2",
4431 + "objc2-cloud-kit",
4432 + "objc2-core-data",
4433 + "objc2-core-foundation",
4434 + "objc2-core-graphics",
4435 + "objc2-core-image",
4436 + "objc2-core-location",
4437 + "objc2-core-text",
4438 + "objc2-foundation",
4439 + "objc2-quartz-core",
4440 + "objc2-user-notifications",
4441 +]
4442 +
4443 +[[package]]
4444 +name = "objc2-user-notifications"
4445 +version = "0.3.2"
4446 +source = "registry+https://github.com/rust-lang/crates.io-index"
4447 +checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e"
4448 +dependencies = [
4449 + "objc2",
4450 + "objc2-foundation",
4451 +]
4452 +
4453 +[[package]]
4454 +name = "objc2-web-kit"
4455 +version = "0.3.2"
4456 +source = "registry+https://github.com/rust-lang/crates.io-index"
4457 +checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f"
4458 +dependencies = [
4459 + "bitflags 2.13.1",
4460 + "block2",
4461 + "objc2",
4462 + "objc2-app-kit",
4463 + "objc2-core-foundation",
4464 + "objc2-foundation",
4465 +]
4466 +
4467 +[[package]]
4468 +name = "once_cell"
4469 +version = "1.21.4"
4470 +source = "registry+https://github.com/rust-lang/crates.io-index"
4471 +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
4472 +
4473 +[[package]]
4474 +name = "once_cell_polyfill"
4475 +version = "1.70.2"
4476 +source = "registry+https://github.com/rust-lang/crates.io-index"
4477 +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
4478 +
4479 +[[package]]
4480 +name = "onde"
4481 +version = "1.2.2"
4482 +source = "registry+https://github.com/rust-lang/crates.io-index"
4483 +checksum = "8d84f62e53e6ce8efce62baac8e769d08f83ff19ed6cd9d1a91eeb769fedd618"
4484 +dependencies = [
4485 + "anyhow",
4486 + "cc",
4487 + "dotenvy",
4488 + "hf-hub",
4489 + "home",
4490 + "log",
4491 + "onde-mistralrs",
4492 + "onde-mistralrs-core",
4493 + "reqwest 0.12.28",
4494 + "serde",
4495 + "serde_json",
4496 + "smbcloud-gresiq-sdk",
4497 + "thiserror 2.0.20",
4498 + "tokio",
4499 + "tsync",
4500 + "uniffi",
4501 +]
4502 +
4503 +[[package]]
4504 +name = "onde-candle-core"
4505 +version = "0.11.0"
4506 +source = "registry+https://github.com/rust-lang/crates.io-index"
4507 +checksum = "b9a5abf45ac6260975d5ff1a5b62c900dafa36f501e6f644c6a571da14a91812"
4508 +dependencies = [
4509 + "byteorder",
4510 + "candle-metal-kernels",
4511 + "candle-ug",
4512 + "float8",
4513 + "gemm 0.19.0",
4514 + "half",
4515 + "libc",
4516 + "libm",
4517 + "memmap2",
4518 + "num-traits",
4519 + "num_cpus",
4520 + "objc2-foundation",
4521 + "objc2-metal",
4522 + "rand 0.9.5",
4523 + "rand_distr 0.5.1",
4524 + "rayon",
4525 + "safetensors 0.8.0",
4526 + "thiserror 2.0.20",
4527 + "tokenizers 0.22.2",
4528 + "yoke 0.8.3",
4529 + "zerocopy",
4530 + "zip",
4531 +]
4532 +
4533 +[[package]]
4534 +name = "onde-candle-nn"
4535 +version = "0.11.0"
4536 +source = "registry+https://github.com/rust-lang/crates.io-index"
4537 +checksum = "3fd746f8118fa485d55c7409b20e2f95637758ec07e9a4d8f35d89f6ec9d8288"
4538 +dependencies = [
4539 + "candle-metal-kernels",
4540 + "half",
4541 + "libc",
4542 + "num-traits",
4543 + "objc2-metal",
4544 + "onde-candle-core",
4545 + "rayon",
4546 + "safetensors 0.8.0",
4547 + "serde",
4548 + "thiserror 2.0.20",
4549 +]
4550 +
4551 +[[package]]
4552 +name = "onde-ed"
4553 +version = "0.1.0"
4554 +dependencies = [
4555 + "log",
4556 + "onde",
4557 + "serde",
4558 + "tokio",
4559 +]
4560 +
4561 +[[package]]
4562 +name = "onde-ed-tauri"
4563 +version = "0.1.0"
4564 +dependencies = [
4565 + "log",
4566 + "onde-ed",
4567 + "serde",
4568 + "tauri",
4569 +]
4570 +
4571 +[[package]]
4572 +name = "onde-mistralrs"
4573 +version = "0.9.3"
4574 +source = "registry+https://github.com/rust-lang/crates.io-index"
4575 +checksum = "689f038ebc5d6d11e4880a24e50d62f91bbf21358b92c9b5cf7bf5e65af232bd"
4576 +dependencies = [
4577 + "anyhow",
4578 + "clap 4.6.6",
4579 + "either",
4580 + "futures",
4581 + "image",
4582 + "indexmap 2.14.2",
4583 + "onde-candle-core",
4584 + "onde-candle-nn",
4585 + "onde-mistralrs-core",
4586 + "onde-mistralrs-macros",
4587 + "rand 0.9.5",
4588 + "reqwest 0.13.4",
4589 + "schemars 1.2.2",
4590 + "serde",
4591 + "serde_json",
4592 + "thiserror 2.0.20",
4593 + "tokio",
4594 + "tracing",
4595 + "tracing-subscriber",
4596 + "walkdir",
4597 +]
4598 +
4599 +[[package]]
4600 +name = "onde-mistralrs-audio"
4601 +version = "0.9.3"
4602 +source = "registry+https://github.com/rust-lang/crates.io-index"
4603 +checksum = "71b9a72504697c5b91e1d0448d67883e8d3046ad060200610c0484aef5dfaee5"
4604 +dependencies = [
4605 + "anyhow",
4606 + "apodize",
4607 + "hound",
4608 + "symphonia",
4609 +]
4610 +
4611 +[[package]]
4612 +name = "onde-mistralrs-code-exec"
4613 +version = "0.9.3"
4614 +source = "registry+https://github.com/rust-lang/crates.io-index"
4615 +checksum = "4016265a19fa51ad973e99a6746904e432d3140b5c2ca14a41077edc6b8648c2"
4616 +dependencies = [
4617 + "anyhow",
4618 + "base64 0.22.1",
4619 + "image",
4620 + "libc",
4621 + "onde-mistralrs-mcp",
4622 + "onde-mistralrs-sandbox",
4623 + "serde",
4624 + "serde_json",
4625 + "tempfile",
4626 + "tokio",
4627 + "tracing",
4628 + "uuid 1.26.0",
4629 +]
4630 +
4631 +[[package]]
4632 +name = "onde-mistralrs-core"
4633 +version = "0.9.3"
4634 +source = "registry+https://github.com/rust-lang/crates.io-index"
4635 +checksum = "3e9266eb62ceb5a9cf8fb5342e6a9b78e286f47b670762559ee800a5a2db5132"
4636 +dependencies = [
4637 + "ahash",
4638 + "akin",
4639 + "anyhow",
4640 + "apodize",
4641 + "as-any",
4642 + "async-trait",
4643 + "base64 0.22.1",
4644 + "bm25",
4645 + "bytemuck",
4646 + "bytemuck_derive",
4647 + "candle-metal-kernels",
4648 + "cfgrammar",
4649 + "chrono",
4650 + "clap 4.6.6",
4651 + "csv",
4652 + "derive-new",
4653 + "derive_more",
4654 + "dirs",
4655 + "either",
4656 + "float8",
4657 + "futures",
4658 + "galil-seiferas",
4659 + "half",
4660 + "hashbrown 0.16.1",
4661 + "hf-hub",
4662 + "hound",
4663 + "html2text",
4664 + "http",
4665 + "image",
4666 + "indexmap 2.14.2",
4667 + "indicatif 0.18.6",
4668 + "interprocess",
4669 + "itertools",
4670 + "libc",
4671 + "llguidance",
4672 + "lrtable",
4673 + "mime_guess",
4674 + "minijinja",
4675 + "minijinja-contrib",
4676 + "num-traits",
4677 + "objc",
4678 + "objc2-metal",
4679 + "onde-candle-core",
4680 + "onde-candle-nn",
4681 + "onde-mistralrs-audio",
4682 + "onde-mistralrs-code-exec",
4683 + "onde-mistralrs-mcp",
4684 + "onde-mistralrs-paged-attn",
4685 + "onde-mistralrs-quant",
4686 + "onde-mistralrs-sandbox",
4687 + "onde-mistralrs-vision",
4688 + "onde-tqdm",
4689 + "openai-harmony",
4690 + "ordered-float",
4691 + "parking_lot",
4692 + "radix_trie",
4693 + "rand 0.9.5",
4694 + "rand_distr 0.5.1",
4695 + "rand_isaac",
4696 + "rayon",
4697 + "regex",
4698 + "regex-automata",
4699 + "reqwest 0.13.4",
4700 + "rubato",
4701 + "rust-mcp-schema",
4702 + "rustc-hash 2.1.3",
4703 + "rustfft",
4704 + "safetensors 0.8.0",
4705 + "schemars 1.2.2",
4706 + "scraper",
4707 + "serde",
4708 + "serde-big-array",
4709 + "serde-saphyr",
4710 + "serde_json",
4711 + "serde_plain",
4712 + "statrs",
4713 + "strum 0.27.2",
4714 + "symphonia",
4715 + "sysinfo",
4716 + "thiserror 2.0.20",
4717 + "tokenizers 0.21.4",
4718 + "tokio",
4719 + "tokio-rayon",
4720 + "tokio-tungstenite",
4721 + "toktrie",
4722 + "toktrie_hf_tokenizers",
4723 + "toml 0.9.12+spec-1.1.0",
4724 + "tracing",
4725 + "tracing-subscriber",
4726 + "urlencoding",
4727 + "uuid 1.26.0",
4728 + "variantly",
4729 + "vob",
4730 +]
4731 +
4732 +[[package]]
4733 +name = "onde-mistralrs-macros"
4734 +version = "0.9.3"
4735 +source = "registry+https://github.com/rust-lang/crates.io-index"
4736 +checksum = "6e624ab1f0896a07ff437f4c49050c891918c0f01a008113c788b64e5f76c1d9"
4737 +dependencies = [
4738 + "darling 0.23.0",
4739 + "proc-macro2",
4740 + "quote",
4741 + "syn 2.0.119",
4742 +]
4743 +
4744 +[[package]]
4745 +name = "onde-mistralrs-mcp"
4746 +version = "0.9.3"
4747 +source = "registry+https://github.com/rust-lang/crates.io-index"
4748 +checksum = "c8bcb140ed84c4dd2683f1533fc58905f959e7394843bc02a315bfdd3ffcbc25"
4749 +dependencies = [
4750 + "anyhow",
4751 + "async-trait",
4752 + "futures-util",
4753 + "http",
4754 + "image",
4755 + "reqwest 0.13.4",
4756 + "rust-mcp-schema",
4757 + "serde",
4758 + "serde_json",
4759 + "tokio",
4760 + "tokio-tungstenite",
4761 + "tracing",
4762 + "utoipa",
4763 + "uuid 1.26.0",
4764 +]
4765 +
4766 +[[package]]
4767 +name = "onde-mistralrs-metal-compile"
4768 +version = "0.9.3"
4769 +source = "registry+https://github.com/rust-lang/crates.io-index"
4770 +checksum = "44109415be2971d311b403095d3c278443210d0ccc1c383a84ad44da5f5b1abf"
4771 +dependencies = [
4772 + "candle-metal-kernels",
4773 + "objc2-metal",
4774 +]
4775 +
4776 +[[package]]
4777 +name = "onde-mistralrs-paged-attn"
4778 +version = "0.9.3"
4779 +source = "registry+https://github.com/rust-lang/crates.io-index"
4780 +checksum = "6f93c8c04d15ebce014e80675387d269bcead85be063bf9afce8b353d64e61b8"
4781 +dependencies = [
4782 + "anyhow",
4783 + "candle-metal-kernels",
4784 + "dispatch2",
4785 + "float8",
4786 + "half",
4787 + "objc2-foundation",
4788 + "objc2-metal",
4789 + "onde-candle-core",
4790 + "onde-mistralrs-metal-compile",
4791 + "thiserror 2.0.20",
4792 +]
4793 +
4794 +[[package]]
4795 +name = "onde-mistralrs-quant"
4796 +version = "0.9.3"
4797 +source = "registry+https://github.com/rust-lang/crates.io-index"
4798 +checksum = "1d4ed48af14e3e5ff318a6ea6cefbc1e50ee753f143bd1ae6c0f188c33033d5a"
4799 +dependencies = [
4800 + "byteorder",
4801 + "candle-metal-kernels",
4802 + "dispatch2",
4803 + "float8",
4804 + "futures",
4805 + "half",
4806 + "hf-hub",
4807 + "indicatif 0.18.6",
4808 + "lazy_static",
4809 + "libc",
4810 + "memmap2",
4811 + "objc2-foundation",
4812 + "objc2-metal",
4813 + "onde-candle-core",
4814 + "onde-candle-nn",
4815 + "onde-mistralrs-metal-compile",
4816 + "paste",
4817 + "rayon",
4818 + "regex",
4819 + "safetensors 0.8.0",
4820 + "serde",
4821 + "serde_json",
4822 + "sysinfo",
4823 + "thiserror 2.0.20",
4824 + "tokio",
4825 + "tracing",
4826 + "yoke 0.8.3",
4827 +]
4828 +
4829 +[[package]]
4830 +name = "onde-mistralrs-sandbox"
4831 +version = "0.9.3"
4832 +source = "registry+https://github.com/rust-lang/crates.io-index"
4833 +checksum = "77845cc6e16e3b1eebed11d3ba6a3a56785f0031421bf46d1deefbe281aaa19e"
4834 +dependencies = [
4835 + "anyhow",
4836 + "itoa",
4837 + "landlock",
4838 + "libc",
4839 + "nix",
4840 + "seccompiler",
4841 + "serde",
4842 + "thiserror 2.0.20",
4843 + "tokio",
4844 + "tracing",
4845 +]
4846 +
4847 +[[package]]
4848 +name = "onde-mistralrs-vision"
4849 +version = "0.9.3"
4850 +source = "registry+https://github.com/rust-lang/crates.io-index"
4851 +checksum = "8cdc7ae244c416860838e9cb3ff5cd8ae8acf474f48f2fe15d45bc5491215760"
4852 +dependencies = [
4853 + "image",
4854 + "onde-candle-core",
4855 + "rayon",
4856 +]
4857 +
4858 +[[package]]
4859 +name = "onde-tqdm"
4860 +version = "0.8.2"
4861 +source = "registry+https://github.com/rust-lang/crates.io-index"
4862 +checksum = "2d96f4fcb4af06959bf9c9b81ace0502e2be2d11d7e037c94f3f7851bde720ea"
4863 +dependencies = [
4864 + "anyhow",
4865 + "crossterm",
4866 + "once_cell",
4867 +]
4868 +
4869 +[[package]]
4870 +name = "onig"
4871 +version = "6.5.3"
4872 +source = "registry+https://github.com/rust-lang/crates.io-index"
4873 +checksum = "0cc3cbf698f9438986c11a880c90a6d04b9de27575afd28bbf45b154b6c709e2"
4874 +dependencies = [
4875 + "bitflags 2.13.1",
4876 + "libc",
4877 + "once_cell",
4878 + "onig_sys",
4879 +]
4880 +
4881 +[[package]]
4882 +name = "onig_sys"
4883 +version = "69.9.3"
4884 +source = "registry+https://github.com/rust-lang/crates.io-index"
4885 +checksum = "1e68317604e77e53b85896388e1a803c1d21b74c899ec9e5e1112db90735edd7"
4886 +dependencies = [
4887 + "cc",
4888 + "pkg-config",
4889 +]
4890 +
4891 +[[package]]
4892 +name = "openai-harmony"
4893 +version = "0.0.8"
4894 +source = "registry+https://github.com/rust-lang/crates.io-index"
4895 +checksum = "e77e82af451fc95deeb728a40b84db8ee82d341e136c268de415123a560b9b72"
4896 +dependencies = [
4897 + "anyhow",
4898 + "base64 0.22.1",
4899 + "bstr",
4900 + "clap 4.6.6",
4901 + "fancy-regex 0.13.0",
4902 + "futures",
4903 + "image",
4904 + "regex",
4905 + "reqwest 0.12.28",
4906 + "rustc-hash 1.1.0",
4907 + "serde",
4908 + "serde_json",
4909 + "serde_with",
4910 + "sha1",
4911 + "sha2",
4912 + "thiserror 2.0.20",
4913 +]
4914 +
4915 +[[package]]
4916 +name = "openssl-probe"
4917 +version = "0.2.1"
4918 +source = "registry+https://github.com/rust-lang/crates.io-index"
4919 +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
4920 +
4921 +[[package]]
4922 +name = "option-ext"
4923 +version = "0.2.0"
4924 +source = "registry+https://github.com/rust-lang/crates.io-index"
4925 +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
4926 +
4927 +[[package]]
4928 +name = "ordered-float"
4929 +version = "5.5.0"
4930 +source = "registry+https://github.com/rust-lang/crates.io-index"
4931 +checksum = "8c7c9e0d9b23589f26070720bac724174bfec1083e82f7854cdd0267518343c0"
4932 +dependencies = [
4933 + "num-traits",
4934 +]
4935 +
4936 +[[package]]
4937 +name = "packedvec"
4938 +version = "1.2.5"
4939 +source = "registry+https://github.com/rust-lang/crates.io-index"
4940 +checksum = "a69e0a534dd2e6aefce319af62a0aa0066a76bdfcec0201dfe02df226bc9ec70"
4941 +dependencies = [
4942 + "num-traits",
4943 +]
4944 +
4945 +[[package]]
4946 +name = "pango"
4947 +version = "0.18.3"
4948 +source = "registry+https://github.com/rust-lang/crates.io-index"
4949 +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
4950 +dependencies = [
4951 + "gio",
4952 + "glib",
4953 + "libc",
4954 + "once_cell",
4955 + "pango-sys",
4956 +]
4957 +
4958 +[[package]]
4959 +name = "pango-sys"
4960 +version = "0.18.0"
4961 +source = "registry+https://github.com/rust-lang/crates.io-index"
4962 +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
4963 +dependencies = [
4964 + "glib-sys",
4965 + "gobject-sys",
4966 + "libc",
4967 + "system-deps",
4968 +]
4969 +
4970 +[[package]]
4971 +name = "parking_lot"
4972 +version = "0.12.5"
4973 +source = "registry+https://github.com/rust-lang/crates.io-index"
4974 +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
4975 +dependencies = [
4976 + "lock_api",
4977 + "parking_lot_core",
4978 +]
4979 +
4980 +[[package]]
4981 +name = "parking_lot_core"
4982 +version = "0.9.12"
4983 +source = "registry+https://github.com/rust-lang/crates.io-index"
4984 +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
4985 +dependencies = [
4986 + "cfg-if",
4987 + "libc",
4988 + "redox_syscall",
4989 + "smallvec 1.16.0",
4990 + "windows-link 0.2.1",
4991 +]
4992 +
4993 +[[package]]
4994 +name = "paste"
4995 +version = "1.0.15"
4996 +source = "registry+https://github.com/rust-lang/crates.io-index"
4997 +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
4998 +
4999 +[[package]]

This file is too large to show in full.

Cargo.toml new
+27
@@ -0,0 +1,27 @@
1 +[workspace]
2 +resolver = "2"
3 +members = ["crates/onde-ed", "crates/onde-ed-tauri"]
4 +
5 +# Shared across every crate in the workspace so a release moves one number.
6 +# `sync-version` tooling (see the Makefile) reads these.
7 +[workspace.package]
8 +version = "0.1.0"
9 +edition = "2021"
10 +rust-version = "1.82"
11 +license = "Apache-2.0"
12 +authors = ["Splitfire AB"]
13 +repository = "https://github.com/ondeinference/onde-ed"
14 +homepage = "https://ondeinference.com"
15 +
16 +[workspace.dependencies]
17 +# The inference engine Ed wraps. Pinned to a published release: Ed itself is
18 +# published, so a git or path dependency here would break `cargo publish`.
19 +onde = "1.2.2"
20 +serde = { version = "1", features = ["derive"] }
21 +serde_json = "1"
22 +log = "0.4"
23 +tokio = { version = "1", features = ["sync"] }
24 +tauri = { version = "2", features = [] }
25 +
26 +# Internal
27 +onde-ed = { version = "0.1.0", path = "crates/onde-ed" }
crates/onde-ed-tauri/Cargo.toml new
+18
@@ -0,0 +1,18 @@
1 +[package]
2 +name = "onde-ed-tauri"
3 +description = "Tauri bindings for Ed: emits chat lifecycle and reply events to the webview."
4 +keywords = ["tauri", "llm", "ai", "agent", "on-device"]
5 +categories = ["api-bindings", "gui"]
6 +version.workspace = true
7 +edition.workspace = true
8 +rust-version.workspace = true
9 +license.workspace = true
10 +authors.workspace = true
11 +repository.workspace = true
12 +homepage.workspace = true
13 +
14 +[dependencies]
15 +onde-ed.workspace = true
16 +tauri.workspace = true
17 +serde.workspace = true
18 +log.workspace = true
crates/onde-ed-tauri/src/commands.rs new
+62
@@ -0,0 +1,62 @@
1 +//! The commands a webview invokes.
2 +
3 +use onde_ed::{ChatMessage, ChatReply, Ed, EngineInfo};
4 +use tauri::State;
5 +
6 +use crate::sink::TauriSink;
7 +
8 +/// Managed state holding the agent.
9 +///
10 +/// Register one during `setup` with `app.manage(EdState::new(ed))`. Ed is
11 +/// deliberately not a global here: an application that switches accounts, or
12 +/// runs more than one window against separate engines, needs to control the
13 +/// lifetime, and a `static` takes that away.
14 +pub struct EdState {
15 + ed: Ed<TauriSink>,
16 +}
17 +
18 +impl EdState {
19 + pub fn new(ed: Ed<TauriSink>) -> Self {
20 + Self { ed }
21 + }
22 +
23 + /// The agent, for commands the host defines itself — loading a model,
24 + /// setting a system prompt, anything Ed exposes but this crate doesn't
25 + /// wrap.
26 + pub fn ed(&self) -> &Ed<TauriSink> {
27 + &self.ed
28 + }
29 +}
30 +
31 +/// Current status, loaded model, footprint, and history length.
32 +#[tauri::command]
33 +pub async fn chat_get_status(state: State<'_, EdState>) -> Result<EngineInfo, String> {
34 + Ok(state.ed.info().await)
35 +}
36 +
37 +/// The conversation so far.
38 +#[tauri::command]
39 +pub async fn chat_get_history(state: State<'_, EdState>) -> Result<Vec<ChatMessage>, String> {
40 + Ok(state.ed.history().await)
41 +}
42 +
43 +/// Clear the conversation, returning how many messages were dropped. The model
44 +/// stays loaded.
45 +#[tauri::command]
46 +pub async fn chat_clear_history(state: State<'_, EdState>) -> Result<usize, String> {
47 + Ok(state.ed.clear_history().await)
48 +}
49 +
50 +/// Run one inference turn.
51 +///
52 +/// The reply is also emitted as [`EVENT_CHAT_REPLY`](crate::EVENT_CHAT_REPLY).
53 +/// Prefer listening for that over awaiting this call: on a slow model the
54 +/// webview can garbage-collect the invoke callback before generation
55 +/// finishes, and the answer is lost even though inference succeeded.
56 +#[tauri::command]
57 +pub async fn chat_send_message(
58 + state: State<'_, EdState>,
59 + message: String,
60 +) -> Result<ChatReply, String> {
61 + Ok(state.ed.send(message).await)
62 +}
crates/onde-ed-tauri/src/events.rs new
+26
@@ -0,0 +1,26 @@
1 +//! Event names and payloads emitted to the webview.
2 +
3 +use onde_ed::EngineStatus;
4 +use serde::{Deserialize, Serialize};
5 +
6 +/// Emitted whenever the engine's lifecycle status changes.
7 +///
8 +/// The name matches what the existing applications already emit, so adopting
9 +/// Ed needs no frontend change.
10 +pub const EVENT_CHAT_STATUS_CHANGED: &str = "chat_status_changed";
11 +
12 +/// Emitted once an inference turn completes, successfully or not.
13 +pub const EVENT_CHAT_REPLY: &str = "chat_reply";
14 +
15 +/// Payload for [`EVENT_CHAT_STATUS_CHANGED`].
16 +///
17 +/// `status` serialises to `"unloaded"`, `"loading"`, `"ready"`, `"generating"`,
18 +/// or `"error"` — [`EngineStatus`] is `#[serde(rename_all = "snake_case")]`,
19 +/// which is the same set of strings applications were previously declaring as
20 +/// their own constants.
21 +#[derive(Debug, Clone, Serialize, Deserialize)]
22 +pub struct ChatStatusPayload {
23 + pub status: EngineStatus,
24 + pub model_name: Option<String>,
25 + pub error: Option<String>,
26 +}
crates/onde-ed-tauri/src/lib.rs new
+62
@@ -0,0 +1,62 @@
1 +//! Tauri bindings for [Ed](onde_ed::Ed).
2 +//!
3 +//! Ed's core is framework-agnostic and reports through a
4 +//! [`StatusSink`](onde_ed::StatusSink). This crate is the Tauri implementation
5 +//! of that sink plus the commands a webview calls.
6 +//!
7 +//! # Wiring it up
8 +//!
9 +//! Build an [`Ed`](onde_ed::Ed) around a [`TauriSink`] and manage it during
10 +//! setup:
11 +//!
12 +//! ```no_run
13 +//! use onde_ed::Ed;
14 +//! use onde_ed_tauri::{EdState, TauriSink};
15 +//! use tauri::Manager;
16 +//!
17 +//! fn setup(app: &tauri::App) -> Result<(), Box<dyn std::error::Error>> {
18 +//! let ed = Ed::with_sink(TauriSink::new(app.handle().clone()));
19 +//! app.manage(EdState::new(ed));
20 +//! Ok(())
21 +//! }
22 +//! ```
23 +//!
24 +//! Then register the commands on the builder. This can't be a doc test — a
25 +//! library has no `tauri.conf.json` for `generate_context!` to read:
26 +//!
27 +//! ```text
28 +//! tauri::Builder::default()
29 +//! .setup(|app| setup(app))
30 +//! .invoke_handler(tauri::generate_handler![
31 +//! onde_ed_tauri::chat_get_status,
32 +//! onde_ed_tauri::chat_get_history,
33 +//! onde_ed_tauri::chat_clear_history,
34 +//! onde_ed_tauri::chat_send_message,
35 +//! ])
36 +//! .run(tauri::generate_context!())
37 +//! .expect("run");
38 +//! ```
39 +//!
40 +//! Loading a model is deliberately not a command here: which model, and from
41 +//! where, is an application decision. Call [`Ed::load`](onde_ed::Ed::load)
42 +//! from your own command or during setup.
43 +//!
44 +//! # Events
45 +//!
46 +//! Two events reach the webview, named exactly as the existing applications
47 +//! already emit them so a frontend needs no change:
48 +//!
49 +//! - [`EVENT_CHAT_STATUS_CHANGED`] with a [`ChatStatusPayload`]
50 +//! - [`EVENT_CHAT_REPLY`] with a [`ChatReply`](onde_ed::ChatReply)
51 +
52 +#![forbid(unsafe_code)]
53 +
54 +mod commands;
55 +mod events;
56 +mod sink;
57 +
58 +pub use commands::{
59 + chat_clear_history, chat_get_history, chat_get_status, chat_send_message, EdState,
60 +};
61 +pub use events::{ChatStatusPayload, EVENT_CHAT_REPLY, EVENT_CHAT_STATUS_CHANGED};
62 +pub use sink::TauriSink;
crates/onde-ed-tauri/src/sink.rs new
+42
@@ -0,0 +1,42 @@
1 +//! Bridges Ed's notifications onto Tauri's event bus.
2 +
3 +use log::warn;
4 +use onde_ed::{ChatReply, EngineStatus, StatusSink};
5 +use tauri::{AppHandle, Emitter};
6 +
7 +use crate::events::{ChatStatusPayload, EVENT_CHAT_REPLY, EVENT_CHAT_STATUS_CHANGED};
8 +
9 +/// A [`StatusSink`] that emits to the webview.
10 +///
11 +/// Emission failures are logged rather than propagated: a closing window
12 +/// dropping its listeners is normal, and an inference turn that already
13 +/// produced an answer shouldn't be reported as failed because nobody was
14 +/// listening.
15 +pub struct TauriSink {
16 + app: AppHandle,
17 +}
18 +
19 +impl TauriSink {
20 + pub fn new(app: AppHandle) -> Self {
21 + Self { app }
22 + }
23 +}
24 +
25 +impl StatusSink for TauriSink {
26 + fn status_changed(&self, status: EngineStatus, model_name: Option<&str>, error: Option<&str>) {
27 + let payload = ChatStatusPayload {
28 + status,
29 + model_name: model_name.map(str::to_owned),
30 + error: error.map(str::to_owned),
31 + };
32 + if let Err(err) = self.app.emit(EVENT_CHAT_STATUS_CHANGED, payload) {
33 + warn!("ed-tauri: could not emit {EVENT_CHAT_STATUS_CHANGED}: {err}");
34 + }
35 + }
36 +
37 + fn replied(&self, reply: &ChatReply) {
38 + if let Err(err) = self.app.emit(EVENT_CHAT_REPLY, reply) {
39 + warn!("ed-tauri: could not emit {EVENT_CHAT_REPLY}: {err}");
40 + }
41 + }
42 +}
crates/onde-ed/Cargo.toml new
+21
@@ -0,0 +1,21 @@
1 +[package]
2 +name = "onde-ed"
3 +description = "Embeddable local-LLM-first chat agent: engine lifecycle, history, and status over the Onde inference SDK."
4 +keywords = ["llm", "ai", "agent", "local", "on-device"]
5 +categories = ["api-bindings", "asynchronous"]
6 +readme = "README.md"
7 +version.workspace = true
8 +edition.workspace = true
9 +rust-version.workspace = true
10 +license.workspace = true
11 +authors.workspace = true
12 +repository.workspace = true
13 +homepage.workspace = true
14 +
15 +[dependencies]
16 +onde.workspace = true
17 +serde.workspace = true
18 +log.workspace = true
19 +
20 +[dev-dependencies]
21 +tokio = { version = "1", features = ["macros", "rt", "sync"] }
crates/onde-ed/README.md new
+48
@@ -0,0 +1,48 @@
1 +# onde-ed
2 +
3 +Embed Ed, a local-LLM-first AI agent, into your application.
4 +
5 +Ed sits one layer above the [`onde`](https://crates.io/crates/onde) inference
6 +SDK. `onde` gives you an engine to load a model into and send messages to; Ed
7 +adds the part every application built on it was writing for itself.
8 +
9 +- **Lifecycle orchestration.** Loading a model is a sequence of state changes,
10 + not one call. Ed drives `Loading -> Ready` (or `-> Error`) and reports each
11 + transition.
12 +- **Notification.** `onde` exposes status by polling. A UI needs to be told. Ed
13 + pushes transitions and replies to a `StatusSink` you implement.
14 +- **A flattened reply.** Inference returns `Result<InferenceResult, _>`; a
15 + frontend wants one shape covering both outcomes. That's `ChatReply`.
16 +
17 +Ed deliberately does not own sessions, persistence, model catalogues, or
18 +downloads. Those differ per application and belong to you.
19 +
20 +## Usage
21 +
22 +```rust
23 +use onde_ed::{Ed, GgufModelConfig};
24 +
25 +let ed = Ed::new();
26 +ed.load(GgufModelConfig::qwen25_1_5b(), None, None).await?;
27 +
28 +let reply = ed.send("Summarise this thread.").await;
29 +println!("{}", reply.reply.unwrap_or_default());
30 +```
31 +
32 +To hear about state changes, implement `StatusSink` and construct with
33 +`Ed::with_sink`. For Tauri applications, `onde-ed-tauri` provides that
34 +implementation plus the commands a webview invokes.
35 +
36 +## Platforms
37 +
38 +Ed has no `cfg(target_os)` gates. `onde` already splits real and fallback
39 +implementations internally, so this crate compiles everywhere and surfaces
40 +`onde`'s error on a platform it can't run inference on.
41 +
42 +Be careful adding platform gates in a host: a gate narrower than `onde`'s own
43 +support list silently disables chat on a platform that would have worked.
44 +
45 +## Copyright
46 +
47 +© 2026 [Splitfire AB](https://5mb.app) ([Onde Inference](https://ondeinference.com)).
48 +Licensed under Apache-2.0.
crates/onde-ed/src/ed.rs new
+237
@@ -0,0 +1,237 @@
1 +//! The agent handle.
2 +
3 +use std::time::Duration;
4 +
5 +use log::{error, info};
6 +use onde::inference::types::{format_duration, ChatMessage};
7 +use onde::inference::{
8 + ChatEngine, EngineInfo, EngineStatus, GgufModelConfig, InferenceError, SamplingConfig,
9 +};
10 +
11 +use crate::{ChatReply, NoopSink, StatusSink};
12 +
13 +/// An embeddable chat agent over a single [`ChatEngine`].
14 +///
15 +/// Hold one per application. Ed is `Send + Sync` and every method takes
16 +/// `&self`, so it can live behind a `OnceLock`, a framework's managed state,
17 +/// or an `Arc` — whichever the host prefers. It is not cloneable by design:
18 +/// one Ed owns one engine owns one loaded model, and copying that handle
19 +/// around tends to mean two parts of an app disagree about which model is up.
20 +pub struct Ed<S = NoopSink> {
21 + engine: ChatEngine,
22 + sink: S,
23 +}
24 +
25 +impl Ed<NoopSink> {
26 + /// An agent that reports nothing. Poll [`info`](Ed::info) for state.
27 + pub fn new() -> Self {
28 + Self::with_sink(NoopSink)
29 + }
30 +}
31 +
32 +impl Default for Ed<NoopSink> {
33 + fn default() -> Self {
34 + Self::new()
35 + }
36 +}
37 +
38 +impl<S: StatusSink> Ed<S> {
39 + /// An agent that reports transitions and replies to `sink`.
40 + pub fn with_sink(sink: S) -> Self {
41 + Self {
42 + engine: ChatEngine::new(),
43 + sink,
44 + }
45 + }
46 +
47 + /// Associate telemetry with an Onde app id. See [`ChatEngine::with_app_id`].
48 + pub fn with_app_id(sink: S, onde_app_id: Option<String>) -> Self {
49 + Self {
50 + engine: ChatEngine::with_app_id(onde_app_id),
51 + sink,
52 + }
53 + }
54 +
55 + /// The underlying engine.
56 + ///
57 + /// An escape hatch for the parts of `onde` Ed deliberately doesn't wrap —
58 + /// system prompts, alternative load paths, tool calling. Reach for it when
59 + /// you need them; anything you find yourself writing here for a second
60 + /// application is a candidate to move into Ed.
61 + pub fn engine(&self) -> &ChatEngine {
62 + &self.engine
63 + }
64 +
65 + /// Load a GGUF model, reporting each transition.
66 + ///
67 + /// Emits [`EngineStatus::Loading`] before starting and then either
68 + /// [`Ready`](EngineStatus::Ready) or [`Error`](EngineStatus::Error). That
69 + /// sequence is the whole reason this method exists: calling
70 + /// [`ChatEngine::load_gguf_model`] directly leaves the UI with no way to
71 + /// know a multi-minute download has begun.
72 + ///
73 + /// Downloads the weights first if they aren't in the local cache, so the
74 + /// `Loading` state can last a long time on a cold start.
75 + pub async fn load(
76 + &self,
77 + config: GgufModelConfig,
78 + system_prompt: Option<String>,
79 + sampling: Option<SamplingConfig>,
80 + ) -> Result<Duration, InferenceError> {
81 + let model_name = config.display_name.clone();
82 + info!("ed: loading model {model_name}");
83 + self.sink
84 + .status_changed(EngineStatus::Loading, Some(&model_name), None);
85 +
86 + match self
87 + .engine
88 + .load_gguf_model(config, system_prompt, sampling)
89 + .await
90 + {
91 + Ok(elapsed) => {
92 + info!("ed: loaded {model_name} in {}", format_duration(elapsed));
93 + self.sink
94 + .status_changed(EngineStatus::Ready, Some(&model_name), None);
95 + Ok(elapsed)
96 + }
97 + Err(err) => {
98 + error!("ed: failed to load {model_name}: {err}");
99 + let message = err.to_string();
100 + self.sink
101 + .status_changed(EngineStatus::Error, Some(&model_name), Some(&message));
102 + Err(err)
103 + }
104 + }
105 + }
106 +
107 + /// Unload the current model, returning its display name if one was loaded.
108 + pub async fn unload(&self) -> Option<String> {
109 + let unloaded = self.engine.unload_model().await;
110 + if let Some(name) = &unloaded {
111 + info!("ed: unloaded {name}");
112 + }
113 + self.sink
114 + .status_changed(EngineStatus::Unloaded, unloaded.as_deref(), None);
115 + unloaded
116 + }
117 +
118 + /// Run one inference turn.
119 + ///
120 + /// Never returns an error: a failure is reported in
121 + /// [`ChatReply::error`] so a caller has one shape to render either way.
122 + /// The reply also goes to the sink, so a host can render it from an event
123 + /// instead of awaiting this call — see [`StatusSink::replied`].
124 + pub async fn send(&self, message: impl Into<String>) -> ChatReply {
125 + let reply = match self.engine.send_message(message).await {
126 + Ok(result) => ChatReply::ok(result.text, result.duration_display),
127 + Err(err) => {
128 + error!("ed: inference failed: {err}");
129 + ChatReply::failed(err)
130 + }
131 + };
132 + self.sink.replied(&reply);
133 + reply
134 + }
135 +
136 + /// Current status, loaded model, footprint, and history length.
137 + pub async fn info(&self) -> EngineInfo {
138 + self.engine.info().await
139 + }
140 +
141 + /// Whether a model is loaded and ready.
142 + pub async fn is_loaded(&self) -> bool {
143 + self.engine.is_loaded().await
144 + }
145 +
146 + /// The conversation so far.
147 + pub async fn history(&self) -> Vec<ChatMessage> {
148 + self.engine.history().await
149 + }
150 +
151 + /// Clear the conversation, returning how many messages were dropped.
152 + ///
153 + /// Leaves the model loaded — this starts a new conversation, it doesn't
154 + /// tear down the engine.
155 + pub async fn clear_history(&self) -> usize {
156 + let cleared = self.engine.clear_history().await;
157 + info!("ed: cleared {cleared} messages");
158 + cleared
159 + }
160 +}
161 +
162 +#[cfg(test)]
163 +mod tests {
164 + use std::sync::Mutex;
165 +
166 + use super::*;
167 +
168 + /// Records everything Ed reports, so a test can assert on the sequence of
169 + /// transitions rather than only the final state.
170 + #[derive(Default)]
171 + struct RecordingSink {
172 + statuses: Mutex<Vec<(EngineStatus, Option<String>)>>,
173 + replies: Mutex<Vec<ChatReply>>,
174 + }
175 +
176 + impl RecordingSink {
177 + fn statuses(&self) -> Vec<(EngineStatus, Option<String>)> {
178 + self.statuses.lock().unwrap().clone()
179 + }
180 + }
181 +
182 + impl StatusSink for &'static RecordingSink {
183 + fn status_changed(&self, status: EngineStatus, model_name: Option<&str>, _: Option<&str>) {
184 + self.statuses
185 + .lock()
186 + .unwrap()
187 + .push((status, model_name.map(str::to_owned)));
188 + }
189 +
190 + fn replied(&self, reply: &ChatReply) {
191 + self.replies.lock().unwrap().push(reply.clone());
192 + }
193 + }
194 +
195 + fn sink() -> &'static RecordingSink {
196 + Box::leak(Box::new(RecordingSink::default()))
197 + }
198 +
199 + #[tokio::test]
200 + async fn a_fresh_agent_reports_itself_unloaded_and_empty() {
201 + let ed = Ed::new();
202 + let info = ed.info().await;
203 +
204 + assert_eq!(info.status, EngineStatus::Unloaded);
205 + assert_eq!(info.model_name, None);
206 + assert_eq!(info.history_length, 0);
207 + assert!(!ed.is_loaded().await);
208 + assert!(ed.history().await.is_empty());
209 + }
210 +
211 + #[tokio::test]
212 + async fn unloading_reports_the_transition_even_with_nothing_loaded() {
213 + // The status still has to reach the host: a UI that asked to unload
214 + // needs to see `Unloaded` regardless of whether work was done, or the
215 + // view sits on a stale "ready" forever.
216 + let sink = sink();
217 + let ed = Ed::with_sink(sink);
218 +
219 + assert_eq!(ed.unload().await, None);
220 + assert_eq!(sink.statuses(), vec![(EngineStatus::Unloaded, None)]);
221 + }
222 +
223 + #[tokio::test]
224 + async fn clearing_an_empty_history_drops_nothing() {
225 + let ed = Ed::new();
226 + assert_eq!(ed.clear_history().await, 0);
227 + }
228 +
229 + #[tokio::test]
230 + async fn the_default_sink_swallows_reports_without_panicking() {
231 + // `Ed::new()` is the no-sink path; exercising it guards against a
232 + // future notification being added that assumes a real sink exists.
233 + let ed = Ed::default();
234 + ed.unload().await;
235 + assert_eq!(ed.info().await.status, EngineStatus::Unloaded);
236 + }
237 +}
crates/onde-ed/src/lib.rs new
+59
@@ -0,0 +1,59 @@
1 +//! Ed: an embeddable, local-LLM-first chat agent.
2 +//!
3 +//! Ed sits one layer above the [`onde`] inference SDK. `onde` gives you a
4 +//! [`ChatEngine`](onde::inference::ChatEngine) you can load a model into and
5 +//! send messages to; Ed adds the part every application built on it was
6 +//! writing for itself:
7 +//!
8 +//! - **Lifecycle orchestration.** Loading a model is a sequence of state
9 +//! changes, not one call. Ed drives `Loading -> Ready` (or `-> Error`) and
10 +//! reports each transition.
11 +//! - **Notification.** `onde` exposes status by polling
12 +//! [`info()`](onde::inference::ChatEngine::info). A UI needs to be told.
13 +//! Ed pushes transitions and replies to a [`StatusSink`] the host implements.
14 +//! - **A flattened reply.** Inference returns `Result<InferenceResult, _>`;
15 +//! a frontend wants one shape covering both outcomes. That's [`ChatReply`].
16 +//!
17 +//! Ed deliberately does *not* own sessions, persistence, model catalogues, or
18 +//! downloads. Those differ per application and belong to the host.
19 +//!
20 +//! # Platforms
21 +//!
22 +//! Ed has no `cfg(target_os)` gates. `onde` already splits real and fallback
23 +//! implementations internally, so this crate compiles everywhere and simply
24 +//! surfaces `onde`'s error on a platform it can't run inference on. Do not add
25 +//! platform gates here, and be careful about adding them in a host: a gate
26 +//! narrower than `onde`'s own support list silently disables chat on a
27 +//! platform that would have worked.
28 +//!
29 +//! # Example
30 +//!
31 +//! ```no_run
32 +//! use onde_ed::{Ed, GgufModelConfig};
33 +//!
34 +//! # async fn example() {
35 +//! let ed = Ed::new();
36 +//! let config = GgufModelConfig::qwen25_1_5b();
37 +//! ed.load(config, None, None).await.expect("load");
38 +//!
39 +//! let reply = ed.send("Summarise this thread.").await;
40 +//! println!("{}", reply.reply.unwrap_or_default());
41 +//! # }
42 +//! ```
43 +
44 +#![forbid(unsafe_code)]
45 +
46 +mod ed;
47 +mod reply;
48 +mod sink;
49 +
50 +pub use ed::Ed;
51 +pub use reply::ChatReply;
52 +pub use sink::{NoopSink, StatusSink};
53 +
54 +// Re-exported so a host depends on `onde-ed` alone and never has to match a
55 +// second `onde` version against this crate's.
56 +pub use onde::inference::types::ChatMessage;
57 +pub use onde::inference::{
58 + ChatEngine, EngineInfo, EngineStatus, GgufModelConfig, InferenceError, SamplingConfig,
59 +};
crates/onde-ed/src/reply.rs new
+44
@@ -0,0 +1,44 @@
1 +//! The flattened result of one inference turn.
2 +
3 +use serde::{Deserialize, Serialize};
4 +
5 +/// The outcome of a single [`Ed::send`](crate::Ed::send), in one shape whether
6 +/// it succeeded or failed.
7 +///
8 +/// Inference returns `Result<InferenceResult, InferenceError>`, but a frontend
9 +/// receiving this over an event boundary wants a single payload it can render
10 +/// either way. Every application built on `onde` was flattening it the same
11 +/// way, so Ed does it once. `reply` and `error` are mutually exclusive:
12 +/// exactly one is `Some`.
13 +#[derive(Debug, Clone, Serialize, Deserialize)]
14 +pub struct ChatReply {
15 + /// The assistant's text, or `None` if inference failed.
16 + pub reply: Option<String>,
17 + /// Human-readable generation time (e.g. `"1.4s"`), or `None` on failure.
18 + pub duration: Option<String>,
19 + /// Why inference failed, or `None` on success.
20 + pub error: Option<String>,
21 +}
22 +
23 +impl ChatReply {
24 + pub(crate) fn ok(reply: String, duration: String) -> Self {
25 + Self {
26 + reply: Some(reply),
27 + duration: Some(duration),
28 + error: None,
29 + }
30 + }
31 +
32 + pub(crate) fn failed(error: impl std::fmt::Display) -> Self {
33 + Self {
34 + reply: None,
35 + duration: None,
36 + error: Some(error.to_string()),
37 + }
38 + }
39 +
40 + /// Whether this turn produced an answer.
41 + pub fn is_ok(&self) -> bool {
42 + self.reply.is_some()
43 + }
44 +}
crates/onde-ed/src/sink.rs new
+46
@@ -0,0 +1,46 @@
1 +//! Where Ed reports what just happened.
2 +
3 +use onde::inference::EngineStatus;
4 +
5 +use crate::ChatReply;
6 +
7 +/// Receives lifecycle transitions and completed replies.
8 +///
9 +/// `onde` reports status by polling
10 +/// [`info()`](onde::inference::ChatEngine::info), which is the wrong shape for
11 +/// a UI: nothing tells the view that a load finished, so hosts end up either
12 +/// timing a poll loop or threading their own event emission through every call
13 +/// site. Ed pushes instead, and a host implements this once to bridge into
14 +/// whatever its UI listens on.
15 +///
16 +/// Both methods are synchronous and should stay cheap — they are called while
17 +/// Ed is mid-operation. Hand off to a channel or an event bus rather than
18 +/// blocking. Implementations must be `Send + Sync` because a load or a send
19 +/// may be driven from any task.
20 +pub trait StatusSink: Send + Sync + 'static {
21 + /// The engine moved to a new lifecycle state.
22 + ///
23 + /// `model_name` is the model involved where one is known, and `error`
24 + /// carries the reason when `status` is [`EngineStatus::Error`].
25 + fn status_changed(&self, status: EngineStatus, model_name: Option<&str>, error: Option<&str>);
26 +
27 + /// An inference turn finished, successfully or not.
28 + ///
29 + /// Delivered as a notification rather than only as a return value because
30 + /// inference is slow: a host that awaits the call from a UI callback can
31 + /// have that callback collected before it resolves. Emitting lets the view
32 + /// pick the result up independently.
33 + fn replied(&self, reply: &ChatReply);
34 +}
35 +
36 +/// A [`StatusSink`] that drops everything.
37 +///
38 +/// The default for [`Ed::new`](crate::Ed::new), and what you want in tests or
39 +/// a host that only ever polls [`Ed::info`](crate::Ed::info).
40 +#[derive(Debug, Clone, Copy, Default)]
41 +pub struct NoopSink;
42 +
43 +impl StatusSink for NoopSink {
44 + fn status_changed(&self, _: EngineStatus, _: Option<&str>, _: Option<&str>) {}
45 + fn replied(&self, _: &ChatReply) {}
46 +}