A local-first private AI assistant for everyday use. Runs on-device models with encrypted P2P sync, and supports sharing chats publicly on ATProto.
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #89 from tilesprivacy/feat/ota-updates

OTA updater

authored by

Anandu Pavanan and committed by
GitHub
ea38a65e aa114b68

+711 -237
+467 -229
Cargo.lock
··· 113 113 114 114 [[package]] 115 115 name = "anyhow" 116 - version = "1.0.100" 116 + version = "1.0.102" 117 117 source = "registry+https://github.com/rust-lang/crates.io-index" 118 - checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 118 + checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" 119 119 120 120 [[package]] 121 121 name = "arbitrary" ··· 125 125 126 126 [[package]] 127 127 name = "arc-swap" 128 - version = "1.8.0" 128 + version = "1.8.2" 129 129 source = "registry+https://github.com/rust-lang/crates.io-index" 130 - checksum = "51d03449bb8ca2cc2ef70869af31463d1ae5ccc8fa3e334b307203fbf815207e" 130 + checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" 131 131 dependencies = [ 132 132 "rustversion", 133 133 ] ··· 347 347 checksum = "b0f477b951e452a0b6b4a10b53ccd569042d1d01729b519e02074a9c0958a063" 348 348 349 349 [[package]] 350 + name = "assert-json-diff" 351 + version = "2.0.2" 352 + source = "registry+https://github.com/rust-lang/crates.io-index" 353 + checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" 354 + dependencies = [ 355 + "serde", 356 + "serde_json", 357 + ] 358 + 359 + [[package]] 360 + name = "async-attributes" 361 + version = "1.1.2" 362 + source = "registry+https://github.com/rust-lang/crates.io-index" 363 + checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" 364 + dependencies = [ 365 + "quote", 366 + "syn 1.0.109", 367 + ] 368 + 369 + [[package]] 370 + name = "async-channel" 371 + version = "1.9.0" 372 + source = "registry+https://github.com/rust-lang/crates.io-index" 373 + checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" 374 + dependencies = [ 375 + "concurrent-queue", 376 + "event-listener 2.5.3", 377 + "futures-core", 378 + ] 379 + 380 + [[package]] 350 381 name = "async-channel" 351 382 version = "2.5.0" 352 383 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 359 390 ] 360 391 361 392 [[package]] 393 + name = "async-executor" 394 + version = "1.14.0" 395 + source = "registry+https://github.com/rust-lang/crates.io-index" 396 + checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" 397 + dependencies = [ 398 + "async-task", 399 + "concurrent-queue", 400 + "fastrand", 401 + "futures-lite", 402 + "pin-project-lite", 403 + "slab", 404 + ] 405 + 406 + [[package]] 407 + name = "async-global-executor" 408 + version = "2.4.1" 409 + source = "registry+https://github.com/rust-lang/crates.io-index" 410 + checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" 411 + dependencies = [ 412 + "async-channel 2.5.0", 413 + "async-executor", 414 + "async-io", 415 + "async-lock", 416 + "blocking", 417 + "futures-lite", 418 + "once_cell", 419 + ] 420 + 421 + [[package]] 422 + name = "async-io" 423 + version = "2.6.0" 424 + source = "registry+https://github.com/rust-lang/crates.io-index" 425 + checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" 426 + dependencies = [ 427 + "autocfg", 428 + "cfg-if", 429 + "concurrent-queue", 430 + "futures-io", 431 + "futures-lite", 432 + "parking", 433 + "polling", 434 + "rustix", 435 + "slab", 436 + "windows-sys 0.61.2", 437 + ] 438 + 439 + [[package]] 440 + name = "async-lock" 441 + version = "3.4.2" 442 + source = "registry+https://github.com/rust-lang/crates.io-index" 443 + checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" 444 + dependencies = [ 445 + "event-listener 5.4.1", 446 + "event-listener-strategy", 447 + "pin-project-lite", 448 + ] 449 + 450 + [[package]] 362 451 name = "async-signature" 363 452 version = "0.5.1" 364 453 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 368 457 ] 369 458 370 459 [[package]] 460 + name = "async-std" 461 + version = "1.13.2" 462 + source = "registry+https://github.com/rust-lang/crates.io-index" 463 + checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" 464 + dependencies = [ 465 + "async-attributes", 466 + "async-channel 1.9.0", 467 + "async-global-executor", 468 + "async-io", 469 + "async-lock", 470 + "crossbeam-utils", 471 + "futures-channel", 472 + "futures-core", 473 + "futures-io", 474 + "futures-lite", 475 + "gloo-timers", 476 + "kv-log-macro", 477 + "log", 478 + "memchr", 479 + "once_cell", 480 + "pin-project-lite", 481 + "pin-utils", 482 + "slab", 483 + "wasm-bindgen-futures", 484 + ] 485 + 486 + [[package]] 371 487 name = "async-stream" 372 488 version = "0.3.6" 373 489 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 386 502 dependencies = [ 387 503 "proc-macro2", 388 504 "quote", 389 - "syn 2.0.113", 505 + "syn 2.0.117", 390 506 ] 391 507 392 508 [[package]] ··· 403 519 dependencies = [ 404 520 "proc-macro2", 405 521 "quote", 406 - "syn 2.0.113", 522 + "syn 2.0.117", 407 523 ] 408 524 409 525 [[package]] ··· 478 594 479 595 [[package]] 480 596 name = "bitflags" 481 - version = "2.10.0" 597 + version = "2.11.0" 482 598 source = "registry+https://github.com/rust-lang/crates.io-index" 483 - checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 599 + checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 484 600 485 601 [[package]] 486 602 name = "block-buffer" ··· 492 608 ] 493 609 494 610 [[package]] 611 + name = "blocking" 612 + version = "1.6.2" 613 + source = "registry+https://github.com/rust-lang/crates.io-index" 614 + checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" 615 + dependencies = [ 616 + "async-channel 2.5.0", 617 + "async-task", 618 + "futures-io", 619 + "futures-lite", 620 + "piper", 621 + ] 622 + 623 + [[package]] 495 624 name = "bon" 496 - version = "3.8.2" 625 + version = "3.9.0" 497 626 source = "registry+https://github.com/rust-lang/crates.io-index" 498 - checksum = "234655ec178edd82b891e262ea7cf71f6584bcd09eff94db786be23f1821825c" 627 + checksum = "2d13a61f2963b88eef9c1be03df65d42f6996dfeac1054870d950fcf66686f83" 499 628 dependencies = [ 500 629 "bon-macros", 501 630 "rustversion", ··· 503 632 504 633 [[package]] 505 634 name = "bon-macros" 506 - version = "3.8.2" 635 + version = "3.9.0" 507 636 source = "registry+https://github.com/rust-lang/crates.io-index" 508 - checksum = "89ec27229c38ed0eb3c0feee3d2c1d6a4379ae44f418a29a658890e062d8f365" 637 + checksum = "d314cc62af2b6b0c65780555abb4d02a03dd3b799cd42419044f0c38d99738c0" 509 638 dependencies = [ 510 639 "darling 0.23.0", 511 640 "ident_case", ··· 513 642 "proc-macro2", 514 643 "quote", 515 644 "rustversion", 516 - "syn 2.0.113", 645 + "syn 2.0.117", 517 646 ] 518 647 519 648 [[package]] ··· 539 668 540 669 [[package]] 541 670 name = "bumpalo" 542 - version = "3.19.1" 671 + version = "3.20.2" 543 672 source = "registry+https://github.com/rust-lang/crates.io-index" 544 - checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" 673 + checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" 545 674 546 675 [[package]] 547 676 name = "byteorder" ··· 551 680 552 681 [[package]] 553 682 name = "bytes" 554 - version = "1.11.0" 683 + version = "1.11.1" 555 684 source = "registry+https://github.com/rust-lang/crates.io-index" 556 - checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 685 + checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" 557 686 558 687 [[package]] 559 688 name = "cbor4ii" ··· 566 695 567 696 [[package]] 568 697 name = "cc" 569 - version = "1.2.51" 698 + version = "1.2.56" 570 699 source = "registry+https://github.com/rust-lang/crates.io-index" 571 - checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" 700 + checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" 572 701 dependencies = [ 573 702 "find-msvc-tools", 574 703 "jobserver", ··· 590 719 591 720 [[package]] 592 721 name = "chrono" 593 - version = "0.4.42" 722 + version = "0.4.44" 594 723 source = "registry+https://github.com/rust-lang/crates.io-index" 595 - checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 724 + checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" 596 725 dependencies = [ 597 726 "iana-time-zone", 598 727 "num-traits", ··· 618 747 619 748 [[package]] 620 749 name = "clap" 621 - version = "4.5.54" 750 + version = "4.5.60" 622 751 source = "registry+https://github.com/rust-lang/crates.io-index" 623 - checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" 752 + checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" 624 753 dependencies = [ 625 754 "clap_builder", 626 755 "clap_derive", ··· 628 757 629 758 [[package]] 630 759 name = "clap_builder" 631 - version = "4.5.54" 760 + version = "4.5.60" 632 761 source = "registry+https://github.com/rust-lang/crates.io-index" 633 - checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" 762 + checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" 634 763 dependencies = [ 635 764 "anstream", 636 765 "anstyle", ··· 640 769 641 770 [[package]] 642 771 name = "clap_derive" 643 - version = "4.5.49" 772 + version = "4.5.55" 644 773 source = "registry+https://github.com/rust-lang/crates.io-index" 645 - checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" 774 + checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" 646 775 dependencies = [ 647 776 "heck", 648 777 "proc-macro2", 649 778 "quote", 650 - "syn 2.0.113", 779 + "syn 2.0.117", 651 780 ] 652 781 653 782 [[package]] 654 783 name = "clap_lex" 655 - version = "0.7.6" 784 + version = "1.0.0" 656 785 source = "registry+https://github.com/rust-lang/crates.io-index" 657 - checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" 786 + checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" 658 787 659 788 [[package]] 660 789 name = "clipboard-win" ··· 720 849 source = "registry+https://github.com/rust-lang/crates.io-index" 721 850 checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" 722 851 dependencies = [ 723 - "getrandom 0.2.16", 852 + "getrandom 0.2.17", 724 853 "once_cell", 725 854 "tiny-keccak", 726 855 ] ··· 893 1022 dependencies = [ 894 1023 "proc-macro2", 895 1024 "quote", 896 - "syn 2.0.113", 1025 + "syn 2.0.117", 897 1026 ] 898 1027 899 1028 [[package]] ··· 940 1069 "proc-macro2", 941 1070 "quote", 942 1071 "strsim 0.11.1", 943 - "syn 2.0.113", 1072 + "syn 2.0.117", 944 1073 ] 945 1074 946 1075 [[package]] ··· 962 1091 dependencies = [ 963 1092 "darling_core 0.23.0", 964 1093 "quote", 965 - "syn 2.0.113", 1094 + "syn 2.0.117", 966 1095 ] 967 1096 968 1097 [[package]] ··· 988 1117 checksum = "7ab67060fc6b8ef687992d439ca0fa36e7ed17e9a0b16b25b601e8757df720de" 989 1118 dependencies = [ 990 1119 "data-encoding", 991 - "syn 2.0.113", 1120 + "syn 2.0.117", 992 1121 ] 1122 + 1123 + [[package]] 1124 + name = "deadpool" 1125 + version = "0.12.3" 1126 + source = "registry+https://github.com/rust-lang/crates.io-index" 1127 + checksum = "0be2b1d1d6ec8d846f05e137292d0b89133caf95ef33695424c09568bdd39b1b" 1128 + dependencies = [ 1129 + "deadpool-runtime", 1130 + "lazy_static", 1131 + "num_cpus", 1132 + "tokio", 1133 + ] 1134 + 1135 + [[package]] 1136 + name = "deadpool-runtime" 1137 + version = "0.1.4" 1138 + source = "registry+https://github.com/rust-lang/crates.io-index" 1139 + checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" 993 1140 994 1141 [[package]] 995 1142 name = "der" ··· 1043 1190 dependencies = [ 1044 1191 "proc-macro2", 1045 1192 "quote", 1046 - "syn 2.0.113", 1193 + "syn 2.0.117", 1047 1194 ] 1048 1195 1049 1196 [[package]] ··· 1097 1244 "schemars", 1098 1245 "serde", 1099 1246 "serde_json", 1100 - "syn 2.0.113", 1247 + "syn 2.0.117", 1101 1248 ] 1102 1249 1103 1250 [[package]] ··· 1202 1349 "once_cell", 1203 1350 "proc-macro2", 1204 1351 "quote", 1205 - "syn 2.0.113", 1352 + "syn 2.0.117", 1206 1353 ] 1207 1354 1208 1355 [[package]] ··· 1246 1393 version = "3.3.2" 1247 1394 source = "registry+https://github.com/rust-lang/crates.io-index" 1248 1395 checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" 1396 + 1397 + [[package]] 1398 + name = "event-listener" 1399 + version = "2.5.3" 1400 + source = "registry+https://github.com/rust-lang/crates.io-index" 1401 + checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 1249 1402 1250 1403 [[package]] 1251 1404 name = "event-listener" ··· 1264 1417 source = "registry+https://github.com/rust-lang/crates.io-index" 1265 1418 checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" 1266 1419 dependencies = [ 1267 - "event-listener", 1420 + "event-listener 5.4.1", 1268 1421 "pin-project-lite", 1269 1422 ] 1270 1423 ··· 1324 1477 1325 1478 [[package]] 1326 1479 name = "find-msvc-tools" 1327 - version = "0.1.6" 1480 + version = "0.1.9" 1328 1481 source = "registry+https://github.com/rust-lang/crates.io-index" 1329 - checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" 1482 + checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 1330 1483 1331 1484 [[package]] 1332 1485 name = "flatbuffers" ··· 1340 1493 1341 1494 [[package]] 1342 1495 name = "flate2" 1343 - version = "1.1.5" 1496 + version = "1.1.9" 1344 1497 source = "registry+https://github.com/rust-lang/crates.io-index" 1345 - checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" 1498 + checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" 1346 1499 dependencies = [ 1347 1500 "crc32fast", 1348 - "libz-rs-sys", 1349 1501 "miniz_oxide", 1502 + "zlib-rs", 1350 1503 ] 1351 1504 1352 1505 [[package]] ··· 1411 1564 "mixtrics", 1412 1565 "pin-project", 1413 1566 "serde", 1414 - "thiserror 2.0.17", 1567 + "thiserror 2.0.18", 1415 1568 "tokio", 1416 1569 "tracing", 1417 1570 ] ··· 1431 1584 "parking_lot", 1432 1585 "pin-project", 1433 1586 "serde", 1434 - "thiserror 2.0.17", 1587 + "thiserror 2.0.18", 1435 1588 "tokio", 1436 1589 "twox-hash", 1437 1590 ] ··· 1464 1617 "parking_lot", 1465 1618 "pin-project", 1466 1619 "serde", 1467 - "thiserror 2.0.17", 1620 + "thiserror 2.0.18", 1468 1621 "tokio", 1469 1622 "tracing", 1470 1623 ] ··· 1497 1650 "pin-project", 1498 1651 "rand 0.9.2", 1499 1652 "serde", 1500 - "thiserror 2.0.17", 1653 + "thiserror 2.0.18", 1501 1654 "tokio", 1502 1655 "tracing", 1503 1656 "twox-hash", ··· 1516 1669 1517 1670 [[package]] 1518 1671 name = "futures" 1519 - version = "0.3.31" 1672 + version = "0.3.32" 1520 1673 source = "registry+https://github.com/rust-lang/crates.io-index" 1521 - checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 1674 + checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" 1522 1675 dependencies = [ 1523 1676 "futures-channel", 1524 1677 "futures-core", ··· 1531 1684 1532 1685 [[package]] 1533 1686 name = "futures-channel" 1534 - version = "0.3.31" 1687 + version = "0.3.32" 1535 1688 source = "registry+https://github.com/rust-lang/crates.io-index" 1536 - checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 1689 + checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" 1537 1690 dependencies = [ 1538 1691 "futures-core", 1539 1692 "futures-sink", ··· 1541 1694 1542 1695 [[package]] 1543 1696 name = "futures-core" 1544 - version = "0.3.31" 1697 + version = "0.3.32" 1545 1698 source = "registry+https://github.com/rust-lang/crates.io-index" 1546 - checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 1699 + checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 1547 1700 1548 1701 [[package]] 1549 1702 name = "futures-executor" 1550 - version = "0.3.31" 1703 + version = "0.3.32" 1551 1704 source = "registry+https://github.com/rust-lang/crates.io-index" 1552 - checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 1705 + checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" 1553 1706 dependencies = [ 1554 1707 "futures-core", 1555 1708 "futures-task", ··· 1558 1711 1559 1712 [[package]] 1560 1713 name = "futures-io" 1561 - version = "0.3.31" 1714 + version = "0.3.32" 1562 1715 source = "registry+https://github.com/rust-lang/crates.io-index" 1563 - checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 1716 + checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" 1717 + 1718 + [[package]] 1719 + name = "futures-lite" 1720 + version = "2.6.1" 1721 + source = "registry+https://github.com/rust-lang/crates.io-index" 1722 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 1723 + dependencies = [ 1724 + "fastrand", 1725 + "futures-core", 1726 + "futures-io", 1727 + "parking", 1728 + "pin-project-lite", 1729 + ] 1564 1730 1565 1731 [[package]] 1566 1732 name = "futures-macro" 1567 - version = "0.3.31" 1733 + version = "0.3.32" 1568 1734 source = "registry+https://github.com/rust-lang/crates.io-index" 1569 - checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 1735 + checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" 1570 1736 dependencies = [ 1571 1737 "proc-macro2", 1572 1738 "quote", 1573 - "syn 2.0.113", 1739 + "syn 2.0.117", 1574 1740 ] 1575 1741 1576 1742 [[package]] 1577 1743 name = "futures-sink" 1578 - version = "0.3.31" 1744 + version = "0.3.32" 1579 1745 source = "registry+https://github.com/rust-lang/crates.io-index" 1580 - checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 1746 + checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" 1581 1747 1582 1748 [[package]] 1583 1749 name = "futures-task" 1584 - version = "0.3.31" 1750 + version = "0.3.32" 1585 1751 source = "registry+https://github.com/rust-lang/crates.io-index" 1586 - checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 1752 + checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" 1587 1753 1588 1754 [[package]] 1589 1755 name = "futures-timer" ··· 1593 1759 1594 1760 [[package]] 1595 1761 name = "futures-util" 1596 - version = "0.3.31" 1762 + version = "0.3.32" 1597 1763 source = "registry+https://github.com/rust-lang/crates.io-index" 1598 - checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 1764 + checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 1599 1765 dependencies = [ 1600 1766 "futures-channel", 1601 1767 "futures-core", ··· 1605 1771 "futures-task", 1606 1772 "memchr", 1607 1773 "pin-project-lite", 1608 - "pin-utils", 1609 1774 "slab", 1610 1775 ] 1611 1776 ··· 1622 1787 1623 1788 [[package]] 1624 1789 name = "getrandom" 1625 - version = "0.2.16" 1790 + version = "0.2.17" 1626 1791 source = "registry+https://github.com/rust-lang/crates.io-index" 1627 - checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 1792 + checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 1628 1793 dependencies = [ 1629 1794 "cfg-if", 1630 1795 "js-sys", ··· 1666 1831 checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1667 1832 1668 1833 [[package]] 1834 + name = "gloo-timers" 1835 + version = "0.3.0" 1836 + source = "registry+https://github.com/rust-lang/crates.io-index" 1837 + checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" 1838 + dependencies = [ 1839 + "futures-channel", 1840 + "futures-core", 1841 + "js-sys", 1842 + "wasm-bindgen", 1843 + ] 1844 + 1845 + [[package]] 1669 1846 name = "group" 1670 1847 version = "0.13.0" 1671 1848 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1678 1855 1679 1856 [[package]] 1680 1857 name = "h2" 1681 - version = "0.4.12" 1858 + version = "0.4.13" 1682 1859 source = "registry+https://github.com/rust-lang/crates.io-index" 1683 - checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" 1860 + checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" 1684 1861 dependencies = [ 1685 1862 "atomic-waker", 1686 1863 "bytes", ··· 1754 1931 "reqwest", 1755 1932 "serde", 1756 1933 "serde_json", 1757 - "thiserror 2.0.17", 1934 + "thiserror 2.0.18", 1758 1935 "tokio", 1759 1936 "ureq", 1760 1937 "windows-sys 0.60.2", ··· 1818 1995 checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 1819 1996 1820 1997 [[package]] 1998 + name = "httpdate" 1999 + version = "1.0.3" 2000 + source = "registry+https://github.com/rust-lang/crates.io-index" 2001 + checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 2002 + 2003 + [[package]] 1821 2004 name = "hyper" 1822 2005 version = "1.8.1" 1823 2006 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1831 2014 "http", 1832 2015 "http-body", 1833 2016 "httparse", 2017 + "httpdate", 1834 2018 "itoa", 1835 2019 "pin-project-lite", 1836 2020 "pin-utils", ··· 1873 2057 1874 2058 [[package]] 1875 2059 name = "hyper-util" 1876 - version = "0.1.19" 2060 + version = "0.1.20" 1877 2061 source = "registry+https://github.com/rust-lang/crates.io-index" 1878 - checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" 2062 + checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" 1879 2063 dependencies = [ 1880 2064 "base64", 1881 2065 "bytes", 1882 2066 "futures-channel", 1883 - "futures-core", 1884 2067 "futures-util", 1885 2068 "http", 1886 2069 "http-body", ··· 1899 2082 1900 2083 [[package]] 1901 2084 name = "iana-time-zone" 1902 - version = "0.1.64" 2085 + version = "0.1.65" 1903 2086 source = "registry+https://github.com/rust-lang/crates.io-index" 1904 - checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 2087 + checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" 1905 2088 dependencies = [ 1906 2089 "android_system_properties", 1907 2090 "core-foundation-sys", ··· 2037 2220 2038 2221 [[package]] 2039 2222 name = "indexmap" 2040 - version = "2.12.1" 2223 + version = "2.13.0" 2041 2224 source = "registry+https://github.com/rust-lang/crates.io-index" 2042 - checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" 2225 + checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 2043 2226 dependencies = [ 2044 2227 "equivalent", 2045 2228 "hashbrown 0.16.1", ··· 2138 2321 2139 2322 [[package]] 2140 2323 name = "js-sys" 2141 - version = "0.3.83" 2324 + version = "0.3.90" 2142 2325 source = "registry+https://github.com/rust-lang/crates.io-index" 2143 - checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" 2326 + checksum = "14dc6f6450b3f6d4ed5b16327f38fed626d375a886159ca555bd7822c0c3a5a6" 2144 2327 dependencies = [ 2145 2328 "once_cell", 2146 2329 "wasm-bindgen", ··· 2178 2361 dependencies = [ 2179 2362 "log", 2180 2363 "security-framework 2.11.1", 2181 - "security-framework 3.6.0", 2364 + "security-framework 3.7.0", 2182 2365 "zeroize", 2366 + ] 2367 + 2368 + [[package]] 2369 + name = "kv-log-macro" 2370 + version = "1.0.7" 2371 + source = "registry+https://github.com/rust-lang/crates.io-index" 2372 + checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" 2373 + dependencies = [ 2374 + "log", 2183 2375 ] 2184 2376 2185 2377 [[package]] ··· 2259 2451 2260 2452 [[package]] 2261 2453 name = "libc" 2262 - version = "0.2.179" 2454 + version = "0.2.182" 2263 2455 source = "registry+https://github.com/rust-lang/crates.io-index" 2264 - checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" 2456 + checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" 2265 2457 2266 2458 [[package]] 2267 2459 name = "libm" 2268 - version = "0.2.15" 2460 + version = "0.2.16" 2269 2461 source = "registry+https://github.com/rust-lang/crates.io-index" 2270 - checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" 2462 + checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" 2271 2463 2272 2464 [[package]] 2273 2465 name = "libredox" ··· 2280 2472 ] 2281 2473 2282 2474 [[package]] 2283 - name = "libz-rs-sys" 2284 - version = "0.5.5" 2285 - source = "registry+https://github.com/rust-lang/crates.io-index" 2286 - checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415" 2287 - dependencies = [ 2288 - "zlib-rs", 2289 - ] 2290 - 2291 - [[package]] 2292 2475 name = "linux-raw-sys" 2293 - version = "0.11.0" 2476 + version = "0.12.1" 2294 2477 source = "registry+https://github.com/rust-lang/crates.io-index" 2295 - checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 2478 + checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" 2296 2479 2297 2480 [[package]] 2298 2481 name = "litemap" ··· 2314 2497 version = "0.4.29" 2315 2498 source = "registry+https://github.com/rust-lang/crates.io-index" 2316 2499 checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 2500 + dependencies = [ 2501 + "value-bag", 2502 + ] 2317 2503 2318 2504 [[package]] 2319 2505 name = "lz4" ··· 2350 2536 checksum = "18351aac4194337d6ea9ffbd25b3d1540ecc0754142af1bff5ba7392d1f6f771" 2351 2537 dependencies = [ 2352 2538 "ahash", 2353 - "async-channel", 2539 + "async-channel 2.5.0", 2354 2540 "async-stream", 2355 2541 "async-task", 2356 2542 "bincode", ··· 2370 2556 "spin", 2371 2557 "tokio", 2372 2558 "tokio-util", 2373 - "toml 0.9.11+spec-1.1.0", 2559 + "toml 0.9.12+spec-1.1.0", 2374 2560 "tracing", 2375 2561 "tracing-subscriber", 2376 2562 ] ··· 2406 2592 dependencies = [ 2407 2593 "proc-macro2", 2408 2594 "quote", 2409 - "syn 2.0.113", 2595 + "syn 2.0.117", 2410 2596 ] 2411 2597 2412 2598 [[package]] 2413 2599 name = "memchr" 2414 - version = "2.7.6" 2600 + version = "2.8.0" 2415 2601 source = "registry+https://github.com/rust-lang/crates.io-index" 2416 - checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 2602 + checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 2417 2603 2418 2604 [[package]] 2419 2605 name = "memoffset" ··· 2515 2701 source = "registry+https://github.com/rust-lang/crates.io-index" 2516 2702 checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" 2517 2703 dependencies = [ 2518 - "getrandom 0.2.16", 2704 + "getrandom 0.2.17", 2519 2705 ] 2520 2706 2521 2707 [[package]] 2522 2708 name = "native-tls" 2523 - version = "0.2.14" 2709 + version = "0.2.18" 2524 2710 source = "registry+https://github.com/rust-lang/crates.io-index" 2525 - checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 2711 + checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" 2526 2712 dependencies = [ 2527 2713 "libc", 2528 2714 "log", ··· 2530 2716 "openssl-probe", 2531 2717 "openssl-sys", 2532 2718 "schannel", 2533 - "security-framework 2.11.1", 2719 + "security-framework 3.7.0", 2534 2720 "security-framework-sys", 2535 2721 "tempfile", 2536 2722 ] ··· 2727 2913 dependencies = [ 2728 2914 "proc-macro2", 2729 2915 "quote", 2730 - "syn 2.0.113", 2916 + "syn 2.0.117", 2731 2917 ] 2732 2918 2733 2919 [[package]] 2734 2920 name = "openssl-probe" 2735 - version = "0.1.6" 2921 + version = "0.2.1" 2736 2922 source = "registry+https://github.com/rust-lang/crates.io-index" 2737 - checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 2923 + checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" 2738 2924 2739 2925 [[package]] 2740 2926 name = "openssl-sys" ··· 2774 2960 2775 2961 [[package]] 2776 2962 name = "owo-colors" 2777 - version = "4.2.3" 2963 + version = "4.3.0" 2778 2964 source = "registry+https://github.com/rust-lang/crates.io-index" 2779 - checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 2965 + checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" 2780 2966 2781 2967 [[package]] 2782 2968 name = "p256" ··· 2896 3082 dependencies = [ 2897 3083 "proc-macro2", 2898 3084 "quote", 2899 - "syn 2.0.113", 3085 + "syn 2.0.117", 2900 3086 ] 2901 3087 2902 3088 [[package]] ··· 2912 3098 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2913 3099 2914 3100 [[package]] 3101 + name = "piper" 3102 + version = "0.2.4" 3103 + source = "registry+https://github.com/rust-lang/crates.io-index" 3104 + checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" 3105 + dependencies = [ 3106 + "atomic-waker", 3107 + "fastrand", 3108 + "futures-io", 3109 + ] 3110 + 3111 + [[package]] 2915 3112 name = "pkcs8" 2916 3113 version = "0.10.2" 2917 3114 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2928 3125 checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 2929 3126 2930 3127 [[package]] 3128 + name = "polling" 3129 + version = "3.11.0" 3130 + source = "registry+https://github.com/rust-lang/crates.io-index" 3131 + checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" 3132 + dependencies = [ 3133 + "cfg-if", 3134 + "concurrent-queue", 3135 + "hermit-abi", 3136 + "pin-project-lite", 3137 + "rustix", 3138 + "windows-sys 0.61.2", 3139 + ] 3140 + 3141 + [[package]] 2931 3142 name = "portable-atomic" 2932 - version = "1.13.0" 3143 + version = "1.13.1" 2933 3144 source = "registry+https://github.com/rust-lang/crates.io-index" 2934 - checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" 3145 + checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" 2935 3146 2936 3147 [[package]] 2937 3148 name = "potential_utf" ··· 2958 3169 checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 2959 3170 dependencies = [ 2960 3171 "proc-macro2", 2961 - "syn 2.0.113", 3172 + "syn 2.0.117", 2962 3173 ] 2963 3174 2964 3175 [[package]] ··· 2981 3192 2982 3193 [[package]] 2983 3194 name = "proc-macro2" 2984 - version = "1.0.104" 3195 + version = "1.0.106" 2985 3196 source = "registry+https://github.com/rust-lang/crates.io-index" 2986 - checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0" 3197 + checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" 2987 3198 dependencies = [ 2988 3199 "unicode-ident", 2989 3200 ] ··· 3001 3212 3002 3213 [[package]] 3003 3214 name = "quote" 3004 - version = "1.0.42" 3215 + version = "1.0.44" 3005 3216 source = "registry+https://github.com/rust-lang/crates.io-index" 3006 - checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 3217 + checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" 3007 3218 dependencies = [ 3008 3219 "proc-macro2", 3009 3220 ] ··· 3042 3253 checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 3043 3254 dependencies = [ 3044 3255 "rand_chacha 0.9.0", 3045 - "rand_core 0.9.3", 3256 + "rand_core 0.9.5", 3046 3257 ] 3047 3258 3048 3259 [[package]] ··· 3072 3283 checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 3073 3284 dependencies = [ 3074 3285 "ppv-lite86", 3075 - "rand_core 0.9.3", 3286 + "rand_core 0.9.5", 3076 3287 ] 3077 3288 3078 3289 [[package]] ··· 3081 3292 source = "registry+https://github.com/rust-lang/crates.io-index" 3082 3293 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 3083 3294 dependencies = [ 3084 - "getrandom 0.2.16", 3295 + "getrandom 0.2.17", 3085 3296 ] 3086 3297 3087 3298 [[package]] 3088 3299 name = "rand_core" 3089 - version = "0.9.3" 3300 + version = "0.9.5" 3090 3301 source = "registry+https://github.com/rust-lang/crates.io-index" 3091 - checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 3302 + checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 3092 3303 dependencies = [ 3093 3304 "getrandom 0.3.4", 3094 3305 ] ··· 3143 3354 source = "registry+https://github.com/rust-lang/crates.io-index" 3144 3355 checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 3145 3356 dependencies = [ 3146 - "getrandom 0.2.16", 3357 + "getrandom 0.2.17", 3147 3358 "libredox", 3148 - "thiserror 2.0.17", 3359 + "thiserror 2.0.18", 3149 3360 ] 3150 3361 3151 3362 [[package]] ··· 3165 3376 dependencies = [ 3166 3377 "proc-macro2", 3167 3378 "quote", 3168 - "syn 2.0.113", 3379 + "syn 2.0.117", 3169 3380 ] 3170 3381 3171 3382 [[package]] 3172 3383 name = "regex" 3173 - version = "1.12.2" 3384 + version = "1.12.3" 3174 3385 source = "registry+https://github.com/rust-lang/crates.io-index" 3175 - checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 3386 + checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" 3176 3387 dependencies = [ 3177 3388 "aho-corasick", 3178 3389 "memchr", ··· 3182 3393 3183 3394 [[package]] 3184 3395 name = "regex-automata" 3185 - version = "0.4.13" 3396 + version = "0.4.14" 3186 3397 source = "registry+https://github.com/rust-lang/crates.io-index" 3187 - checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 3398 + checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" 3188 3399 dependencies = [ 3189 3400 "aho-corasick", 3190 3401 "memchr", ··· 3193 3404 3194 3405 [[package]] 3195 3406 name = "regex-syntax" 3196 - version = "0.8.8" 3407 + version = "0.8.10" 3197 3408 source = "registry+https://github.com/rust-lang/crates.io-index" 3198 - checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 3409 + checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" 3199 3410 3200 3411 [[package]] 3201 3412 name = "relative-path" ··· 3294 3505 "schemars", 3295 3506 "serde", 3296 3507 "serde_json", 3297 - "thiserror 2.0.17", 3508 + "thiserror 2.0.18", 3298 3509 "tokio", 3299 3510 "tracing", 3300 3511 "tracing-futures", ··· 3309 3520 dependencies = [ 3310 3521 "cc", 3311 3522 "cfg-if", 3312 - "getrandom 0.2.16", 3523 + "getrandom 0.2.17", 3313 3524 "libc", 3314 3525 "untrusted", 3315 3526 "windows-sys 0.52.0", ··· 3341 3552 "regex", 3342 3553 "relative-path", 3343 3554 "rustc_version", 3344 - "syn 2.0.113", 3555 + "syn 2.0.117", 3345 3556 "unicode-ident", 3346 3557 ] 3347 3558 ··· 3356 3567 3357 3568 [[package]] 3358 3569 name = "rustix" 3359 - version = "1.1.3" 3570 + version = "1.1.4" 3360 3571 source = "registry+https://github.com/rust-lang/crates.io-index" 3361 - checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" 3572 + checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" 3362 3573 dependencies = [ 3363 3574 "bitflags", 3364 3575 "errno", ··· 3369 3580 3370 3581 [[package]] 3371 3582 name = "rustls" 3372 - version = "0.23.35" 3583 + version = "0.23.37" 3373 3584 source = "registry+https://github.com/rust-lang/crates.io-index" 3374 - checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" 3585 + checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" 3375 3586 dependencies = [ 3376 3587 "log", 3377 3588 "once_cell", ··· 3384 3595 3385 3596 [[package]] 3386 3597 name = "rustls-pki-types" 3387 - version = "1.13.2" 3598 + version = "1.14.0" 3388 3599 source = "registry+https://github.com/rust-lang/crates.io-index" 3389 - checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282" 3600 + checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" 3390 3601 dependencies = [ 3391 3602 "zeroize", 3392 3603 ] 3393 3604 3394 3605 [[package]] 3395 3606 name = "rustls-webpki" 3396 - version = "0.103.8" 3607 + version = "0.103.9" 3397 3608 source = "registry+https://github.com/rust-lang/crates.io-index" 3398 - checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" 3609 + checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" 3399 3610 dependencies = [ 3400 3611 "ring", 3401 3612 "rustls-pki-types", ··· 3432 3643 3433 3644 [[package]] 3434 3645 name = "ryu" 3435 - version = "1.0.22" 3646 + version = "1.0.23" 3436 3647 source = "registry+https://github.com/rust-lang/crates.io-index" 3437 - checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" 3648 + checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 3438 3649 3439 3650 [[package]] 3440 3651 name = "schannel" ··· 3447 3658 3448 3659 [[package]] 3449 3660 name = "schemars" 3450 - version = "1.2.0" 3661 + version = "1.2.1" 3451 3662 source = "registry+https://github.com/rust-lang/crates.io-index" 3452 - checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2" 3663 + checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" 3453 3664 dependencies = [ 3454 3665 "dyn-clone", 3455 3666 "ref-cast", ··· 3460 3671 3461 3672 [[package]] 3462 3673 name = "schemars_derive" 3463 - version = "1.2.0" 3674 + version = "1.2.1" 3464 3675 source = "registry+https://github.com/rust-lang/crates.io-index" 3465 - checksum = "4908ad288c5035a8eb12cfdf0d49270def0a268ee162b75eeee0f85d155a7c45" 3676 + checksum = "7d115b50f4aaeea07e79c1912f645c7513d81715d0420f8bc77a18c6260b307f" 3466 3677 dependencies = [ 3467 3678 "proc-macro2", 3468 3679 "quote", 3469 3680 "serde_derive_internals", 3470 - "syn 2.0.113", 3681 + "syn 2.0.117", 3471 3682 ] 3472 3683 3473 3684 [[package]] ··· 3505 3716 3506 3717 [[package]] 3507 3718 name = "security-framework" 3508 - version = "3.6.0" 3719 + version = "3.7.0" 3509 3720 source = "registry+https://github.com/rust-lang/crates.io-index" 3510 - checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" 3721 + checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" 3511 3722 dependencies = [ 3512 3723 "bitflags", 3513 3724 "core-foundation 0.10.1", ··· 3518 3729 3519 3730 [[package]] 3520 3731 name = "security-framework-sys" 3521 - version = "2.16.0" 3732 + version = "2.17.0" 3522 3733 source = "registry+https://github.com/rust-lang/crates.io-index" 3523 - checksum = "321c8673b092a9a42605034a9879d73cb79101ed5fd117bc9a597b89b4e9e61a" 3734 + checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" 3524 3735 dependencies = [ 3525 3736 "core-foundation-sys", 3526 3737 "libc", ··· 3585 3796 dependencies = [ 3586 3797 "proc-macro2", 3587 3798 "quote", 3588 - "syn 2.0.113", 3799 + "syn 2.0.117", 3589 3800 ] 3590 3801 3591 3802 [[package]] ··· 3596 3807 dependencies = [ 3597 3808 "proc-macro2", 3598 3809 "quote", 3599 - "syn 2.0.113", 3810 + "syn 2.0.117", 3600 3811 ] 3601 3812 3602 3813 [[package]] ··· 3613 3824 3614 3825 [[package]] 3615 3826 name = "serde_json" 3616 - version = "1.0.148" 3827 + version = "1.0.149" 3617 3828 source = "registry+https://github.com/rust-lang/crates.io-index" 3618 - checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" 3829 + checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 3619 3830 dependencies = [ 3620 3831 "indexmap", 3621 3832 "itoa", ··· 3706 3917 3707 3918 [[package]] 3708 3919 name = "slab" 3709 - version = "0.4.11" 3920 + version = "0.4.12" 3710 3921 source = "registry+https://github.com/rust-lang/crates.io-index" 3711 - checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 3922 + checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" 3712 3923 3713 3924 [[package]] 3714 3925 name = "small_ctor" ··· 3730 3941 3731 3942 [[package]] 3732 3943 name = "socket2" 3733 - version = "0.6.1" 3944 + version = "0.6.2" 3734 3945 source = "registry+https://github.com/rust-lang/crates.io-index" 3735 - checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 3946 + checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" 3736 3947 dependencies = [ 3737 3948 "libc", 3738 3949 "windows-sys 0.60.2", ··· 3805 4016 3806 4017 [[package]] 3807 4018 name = "syn" 3808 - version = "2.0.113" 4019 + version = "2.0.117" 3809 4020 source = "registry+https://github.com/rust-lang/crates.io-index" 3810 - checksum = "678faa00651c9eb72dd2020cbdf275d92eccb2400d568e419efdd64838145cb4" 4021 + checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" 3811 4022 dependencies = [ 3812 4023 "proc-macro2", 3813 4024 "quote", ··· 3831 4042 dependencies = [ 3832 4043 "proc-macro2", 3833 4044 "quote", 3834 - "syn 2.0.113", 4045 + "syn 2.0.117", 3835 4046 ] 3836 4047 3837 4048 [[package]] 3838 4049 name = "system-configuration" 3839 - version = "0.6.1" 4050 + version = "0.7.0" 3840 4051 source = "registry+https://github.com/rust-lang/crates.io-index" 3841 - checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 4052 + checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" 3842 4053 dependencies = [ 3843 4054 "bitflags", 3844 4055 "core-foundation 0.9.4", ··· 3857 4068 3858 4069 [[package]] 3859 4070 name = "tempfile" 3860 - version = "3.24.0" 4071 + version = "3.26.0" 3861 4072 source = "registry+https://github.com/rust-lang/crates.io-index" 3862 - checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" 4073 + checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" 3863 4074 dependencies = [ 3864 4075 "fastrand", 3865 - "getrandom 0.3.4", 4076 + "getrandom 0.4.1", 3866 4077 "once_cell", 3867 4078 "rustix", 3868 4079 "windows-sys 0.61.2", ··· 3889 4100 3890 4101 [[package]] 3891 4102 name = "thiserror" 3892 - version = "2.0.17" 4103 + version = "2.0.18" 3893 4104 source = "registry+https://github.com/rust-lang/crates.io-index" 3894 - checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 4105 + checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 3895 4106 dependencies = [ 3896 - "thiserror-impl 2.0.17", 4107 + "thiserror-impl 2.0.18", 3897 4108 ] 3898 4109 3899 4110 [[package]] ··· 3904 4115 dependencies = [ 3905 4116 "proc-macro2", 3906 4117 "quote", 3907 - "syn 2.0.113", 4118 + "syn 2.0.117", 3908 4119 ] 3909 4120 3910 4121 [[package]] 3911 4122 name = "thiserror-impl" 3912 - version = "2.0.17" 4123 + version = "2.0.18" 3913 4124 source = "registry+https://github.com/rust-lang/crates.io-index" 3914 - checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 4125 + checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" 3915 4126 dependencies = [ 3916 4127 "proc-macro2", 3917 4128 "quote", 3918 - "syn 2.0.113", 4129 + "syn 2.0.117", 3919 4130 ] 3920 4131 3921 4132 [[package]] ··· 3960 4171 version = "0.4.1" 3961 4172 dependencies = [ 3962 4173 "anyhow", 4174 + "async-std", 3963 4175 "clap", 3964 4176 "futures-util", 3965 4177 "hf-hub", ··· 3967 4179 "owo-colors", 3968 4180 "reqwest", 3969 4181 "rustyline", 4182 + "semver", 3970 4183 "serde", 3971 4184 "serde_json", 3972 4185 "tempfile", 3973 4186 "tilekit", 3974 4187 "tokio", 3975 4188 "toml 1.0.3+spec-1.1.0", 4189 + "wiremock", 3976 4190 ] 3977 4191 3978 4192 [[package]] ··· 4019 4233 dependencies = [ 4020 4234 "proc-macro2", 4021 4235 "quote", 4022 - "syn 2.0.113", 4236 + "syn 2.0.117", 4023 4237 ] 4024 4238 4025 4239 [[package]] ··· 4057 4271 4058 4272 [[package]] 4059 4273 name = "toml" 4060 - version = "0.9.11+spec-1.1.0" 4274 + version = "0.9.12+spec-1.1.0" 4061 4275 source = "registry+https://github.com/rust-lang/crates.io-index" 4062 - checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46" 4276 + checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" 4063 4277 dependencies = [ 4064 4278 "indexmap", 4065 4279 "serde_core", ··· 4132 4346 4133 4347 [[package]] 4134 4348 name = "tower" 4135 - version = "0.5.2" 4349 + version = "0.5.3" 4136 4350 source = "registry+https://github.com/rust-lang/crates.io-index" 4137 - checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 4351 + checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" 4138 4352 dependencies = [ 4139 4353 "futures-core", 4140 4354 "futures-util", ··· 4194 4408 dependencies = [ 4195 4409 "proc-macro2", 4196 4410 "quote", 4197 - "syn 2.0.113", 4411 + "syn 2.0.117", 4198 4412 ] 4199 4413 4200 4414 [[package]] ··· 4273 4487 "base58", 4274 4488 "ed25519-dalek", 4275 4489 "futures", 4276 - "getrandom 0.2.16", 4490 + "getrandom 0.2.17", 4277 4491 "ipld-core", 4278 4492 "leb128", 4279 4493 "nom 8.0.0", ··· 4298 4512 4299 4513 [[package]] 4300 4514 name = "unicode-ident" 4301 - version = "1.0.22" 4515 + version = "1.0.24" 4302 4516 source = "registry+https://github.com/rust-lang/crates.io-index" 4303 - checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 4517 + checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 4304 4518 4305 4519 [[package]] 4306 4520 name = "unicode-segmentation" ··· 4354 4568 4355 4569 [[package]] 4356 4570 name = "url" 4357 - version = "2.5.7" 4571 + version = "2.5.8" 4358 4572 source = "registry+https://github.com/rust-lang/crates.io-index" 4359 - checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 4573 + checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" 4360 4574 dependencies = [ 4361 4575 "form_urlencoded", 4362 4576 "idna", ··· 4383 4597 checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 4384 4598 4385 4599 [[package]] 4600 + name = "value-bag" 4601 + version = "1.12.0" 4602 + source = "registry+https://github.com/rust-lang/crates.io-index" 4603 + checksum = "7ba6f5989077681266825251a52748b8c1d8a4ad098cc37e440103d0ea717fc0" 4604 + 4605 + [[package]] 4386 4606 name = "varsig" 4387 4607 version = "0.1.0" 4388 4608 source = "git+https://github.com/ucan-wg/rs-ucan.git?branch=main#c4d1cb7558582cbe0fe1f21b22026fe8303a0cab" ··· 4430 4650 4431 4651 [[package]] 4432 4652 name = "wasip2" 4433 - version = "1.0.1+wasi-0.2.4" 4653 + version = "1.0.2+wasi-0.2.9" 4434 4654 source = "registry+https://github.com/rust-lang/crates.io-index" 4435 - checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 4655 + checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 4436 4656 dependencies = [ 4437 - "wit-bindgen 0.46.0", 4657 + "wit-bindgen", 4438 4658 ] 4439 4659 4440 4660 [[package]] ··· 4443 4663 source = "registry+https://github.com/rust-lang/crates.io-index" 4444 4664 checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 4445 4665 dependencies = [ 4446 - "wit-bindgen 0.51.0", 4666 + "wit-bindgen", 4447 4667 ] 4448 4668 4449 4669 [[package]] 4450 4670 name = "wasm-bindgen" 4451 - version = "0.2.106" 4671 + version = "0.2.113" 4452 4672 source = "registry+https://github.com/rust-lang/crates.io-index" 4453 - checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" 4673 + checksum = "60722a937f594b7fde9adb894d7c092fc1bb6612897c46368d18e7a20208eff2" 4454 4674 dependencies = [ 4455 4675 "cfg-if", 4456 4676 "once_cell", ··· 4461 4681 4462 4682 [[package]] 4463 4683 name = "wasm-bindgen-futures" 4464 - version = "0.4.56" 4684 + version = "0.4.63" 4465 4685 source = "registry+https://github.com/rust-lang/crates.io-index" 4466 - checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" 4686 + checksum = "8a89f4650b770e4521aa6573724e2aed4704372151bd0de9d16a3bbabb87441a" 4467 4687 dependencies = [ 4468 4688 "cfg-if", 4689 + "futures-util", 4469 4690 "js-sys", 4470 4691 "once_cell", 4471 4692 "wasm-bindgen", ··· 4474 4695 4475 4696 [[package]] 4476 4697 name = "wasm-bindgen-macro" 4477 - version = "0.2.106" 4698 + version = "0.2.113" 4478 4699 source = "registry+https://github.com/rust-lang/crates.io-index" 4479 - checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" 4700 + checksum = "0fac8c6395094b6b91c4af293f4c79371c163f9a6f56184d2c9a85f5a95f3950" 4480 4701 dependencies = [ 4481 4702 "quote", 4482 4703 "wasm-bindgen-macro-support", ··· 4484 4705 4485 4706 [[package]] 4486 4707 name = "wasm-bindgen-macro-support" 4487 - version = "0.2.106" 4708 + version = "0.2.113" 4488 4709 source = "registry+https://github.com/rust-lang/crates.io-index" 4489 - checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" 4710 + checksum = "ab3fabce6159dc20728033842636887e4877688ae94382766e00b180abac9d60" 4490 4711 dependencies = [ 4491 4712 "bumpalo", 4492 4713 "proc-macro2", 4493 4714 "quote", 4494 - "syn 2.0.113", 4715 + "syn 2.0.117", 4495 4716 "wasm-bindgen-shared", 4496 4717 ] 4497 4718 4498 4719 [[package]] 4499 4720 name = "wasm-bindgen-shared" 4500 - version = "0.2.106" 4721 + version = "0.2.113" 4501 4722 source = "registry+https://github.com/rust-lang/crates.io-index" 4502 - checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" 4723 + checksum = "de0e091bdb824da87dc01d967388880d017a0a9bc4f3bdc0d86ee9f9336e3bb5" 4503 4724 dependencies = [ 4504 4725 "unicode-ident", 4505 4726 ] ··· 4553 4774 4554 4775 [[package]] 4555 4776 name = "web-sys" 4556 - version = "0.3.83" 4777 + version = "0.3.90" 4557 4778 source = "registry+https://github.com/rust-lang/crates.io-index" 4558 - checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" 4779 + checksum = "705eceb4ce901230f8625bd1d665128056ccbe4b7408faa625eec1ba80f59a97" 4559 4780 dependencies = [ 4560 4781 "js-sys", 4561 4782 "wasm-bindgen", ··· 4577 4798 source = "registry+https://github.com/rust-lang/crates.io-index" 4578 4799 checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" 4579 4800 dependencies = [ 4580 - "webpki-roots 1.0.5", 4801 + "webpki-roots 1.0.6", 4581 4802 ] 4582 4803 4583 4804 [[package]] 4584 4805 name = "webpki-roots" 4585 - version = "1.0.5" 4806 + version = "1.0.6" 4586 4807 source = "registry+https://github.com/rust-lang/crates.io-index" 4587 - checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c" 4808 + checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" 4588 4809 dependencies = [ 4589 4810 "rustls-pki-types", 4590 4811 ] ··· 4632 4853 dependencies = [ 4633 4854 "proc-macro2", 4634 4855 "quote", 4635 - "syn 2.0.113", 4856 + "syn 2.0.117", 4636 4857 ] 4637 4858 4638 4859 [[package]] ··· 4643 4864 dependencies = [ 4644 4865 "proc-macro2", 4645 4866 "quote", 4646 - "syn 2.0.113", 4867 + "syn 2.0.117", 4647 4868 ] 4648 4869 4649 4870 [[package]] ··· 4856 5077 ] 4857 5078 4858 5079 [[package]] 4859 - name = "wit-bindgen" 4860 - version = "0.46.0" 5080 + name = "wiremock" 5081 + version = "0.6.5" 4861 5082 source = "registry+https://github.com/rust-lang/crates.io-index" 4862 - checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 5083 + checksum = "08db1edfb05d9b3c1542e521aea074442088292f00b5f28e435c714a98f85031" 5084 + dependencies = [ 5085 + "assert-json-diff", 5086 + "base64", 5087 + "deadpool", 5088 + "futures", 5089 + "http", 5090 + "http-body-util", 5091 + "hyper", 5092 + "hyper-util", 5093 + "log", 5094 + "once_cell", 5095 + "regex", 5096 + "serde", 5097 + "serde_json", 5098 + "tokio", 5099 + "url", 5100 + ] 4863 5101 4864 5102 [[package]] 4865 5103 name = "wit-bindgen" ··· 4891 5129 "heck", 4892 5130 "indexmap", 4893 5131 "prettyplease", 4894 - "syn 2.0.113", 5132 + "syn 2.0.117", 4895 5133 "wasm-metadata", 4896 5134 "wit-bindgen-core", 4897 5135 "wit-component", ··· 4907 5145 "prettyplease", 4908 5146 "proc-macro2", 4909 5147 "quote", 4910 - "syn 2.0.113", 5148 + "syn 2.0.117", 4911 5149 "wit-bindgen-core", 4912 5150 "wit-bindgen-rust", 4913 5151 ] ··· 4974 5212 dependencies = [ 4975 5213 "proc-macro2", 4976 5214 "quote", 4977 - "syn 2.0.113", 5215 + "syn 2.0.117", 4978 5216 "synstructure", 4979 5217 ] 4980 5218 4981 5219 [[package]] 4982 5220 name = "zerocopy" 4983 - version = "0.8.31" 5221 + version = "0.8.40" 4984 5222 source = "registry+https://github.com/rust-lang/crates.io-index" 4985 - checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" 5223 + checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" 4986 5224 dependencies = [ 4987 5225 "zerocopy-derive", 4988 5226 ] 4989 5227 4990 5228 [[package]] 4991 5229 name = "zerocopy-derive" 4992 - version = "0.8.31" 5230 + version = "0.8.40" 4993 5231 source = "registry+https://github.com/rust-lang/crates.io-index" 4994 - checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" 5232 + checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" 4995 5233 dependencies = [ 4996 5234 "proc-macro2", 4997 5235 "quote", 4998 - "syn 2.0.113", 5236 + "syn 2.0.117", 4999 5237 ] 5000 5238 5001 5239 [[package]] ··· 5015 5253 dependencies = [ 5016 5254 "proc-macro2", 5017 5255 "quote", 5018 - "syn 2.0.113", 5256 + "syn 2.0.117", 5019 5257 "synstructure", 5020 5258 ] 5021 5259 ··· 5055 5293 dependencies = [ 5056 5294 "proc-macro2", 5057 5295 "quote", 5058 - "syn 2.0.113", 5296 + "syn 2.0.117", 5059 5297 ] 5060 5298 5061 5299 [[package]] 5062 5300 name = "zlib-rs" 5063 - version = "0.5.5" 5301 + version = "0.6.2" 5064 5302 source = "registry+https://github.com/rust-lang/crates.io-index" 5065 - checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" 5303 + checksum = "c745c48e1007337ed136dc99df34128b9faa6ed542d80a1c673cf55a6d7236c8" 5066 5304 5067 5305 [[package]] 5068 5306 name = "zmij" 5069 - version = "1.0.10" 5307 + version = "1.0.21" 5070 5308 source = "registry+https://github.com/rust-lang/crates.io-index" 5071 - checksum = "30e0d8dffbae3d840f64bda38e28391faef673a7b5a6017840f2a106c8145868" 5309 + checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" 5072 5310 5073 5311 [[package]] 5074 5312 name = "zstd"
+14 -7
server/backend/mlx_runner.py
··· 3 3 Provides ollama-like run experience with streaming and interactive chat. 4 4 """ 5 5 6 - import sys 7 6 import json 8 7 import os 8 + import sys 9 9 import time 10 10 from collections.abc import Iterator 11 11 from pathlib import Path ··· 18 18 from mlx_lm import load 19 19 from mlx_lm.generate import generate_step 20 20 from mlx_lm.sample_utils import make_repetition_penalty, make_sampler 21 + 22 + from ..reasoning_utils import ReasoningExtractor, StreamingReasoningParser 21 23 from ..schemas import GenerationMetrics 22 - from ..reasoning_utils import ReasoningExtractor, StreamingReasoningParser 23 24 24 25 25 26 def get_model_context_length(model_path: str) -> int: ··· 569 570 if reasoning_parser: 570 571 yield from reasoning_parser.finalize() 571 572 total_latency = time.time() - start_time 572 - tokens_per_second = tokens_generated / total_latency if total_latency > 0 else 0 573 + tokens_per_second = ( 574 + tokens_generated / total_latency if total_latency > 0 else 0 575 + ) 573 576 ttft_ms = (ttft * 1000) if ttft is not None else 0 574 577 yield GenerationMetrics( 575 578 ttft_ms=ttft_ms, 576 579 total_tokens=tokens_generated, 577 580 tokens_per_second=tokens_per_second, 578 - total_latency_s=total_latency 581 + total_latency_s=total_latency, 579 582 ) 580 583 return # Stop generation without yielding stop token 581 584 ··· 610 613 if reasoning_parser: 611 614 yield from reasoning_parser.finalize() 612 615 total_latency = time.time() - start_time 613 - tokens_per_second = tokens_generated / total_latency if total_latency > 0 else 0 616 + tokens_per_second = ( 617 + tokens_generated / total_latency 618 + if total_latency > 0 619 + else 0 620 + ) 614 621 ttft_ms = (ttft * 1000) if ttft is not None else 0 615 622 yield GenerationMetrics( 616 623 ttft_ms=ttft_ms, 617 624 total_tokens=tokens_generated, 618 625 tokens_per_second=tokens_per_second, 619 - total_latency_s=total_latency 626 + total_latency_s=total_latency, 620 627 ) 621 628 return # Stop generation without yielding stop token 622 629 ··· 649 656 ttft_ms=ttft_ms, 650 657 total_tokens=tokens_generated, 651 658 tokens_per_second=tokens_per_second, 652 - total_latency_s=total_latency 659 + total_latency_s=total_latency, 653 660 ) 654 661 yield metrics 655 662
+4
tiles/Cargo.toml
··· 16 16 hf-hub = {version = "0.4", features = ["tokio"]} 17 17 rustyline = "17.0" 18 18 toml = "1.0.3" 19 + semver = "1.0" 20 + 19 21 [dev-dependencies] 20 22 tempfile = "3" 21 23 keyring = { version = "3", features = ["apple-native"] } 24 + wiremock = "0.6.5" 25 + async-std = { version = "1.12", features = ["attributes"] }
+25
tiles/src/commands/mod.rs
··· 11 11 use tiles::utils::config::{ 12 12 ConfigProvider, DefaultProvider, get_or_create_config, set_user_data_path, 13 13 }; 14 + use tiles::utils::installer::{UpdateInfo, get_update_info, try_update}; 14 15 use tiles::{core::health, runtime::RunArgs}; 15 16 16 17 use tilekit::modelfile::parse_from_file; ··· 224 225 } 225 226 return Ok(nickname.to_owned()); 226 227 } 228 + } 229 + 230 + pub async fn try_app_update() -> Result<()> { 231 + let update_info: UpdateInfo = get_update_info().await?; 232 + if update_info.can_update { 233 + let update_str = format!( 234 + "Update available {} -> {}\n", 235 + update_info.current_version, update_info.latest_version 236 + ); 237 + 238 + println!("{}", update_str.yellow()); 239 + println!("You can always update via `tiles update` later\n"); 240 + 241 + println!("{}", "Do you want to update now? (Y/N)".to_string().green()); 242 + let stdin = io::stdin(); 243 + let mut input = String::new(); 244 + stdin.read_line(&mut input)?; 245 + let clean_input = input.trim(); 246 + if clean_input.to_lowercase() == "y" { 247 + try_update(Some(update_info)).await?; 248 + } 249 + } 250 + 251 + Ok(()) 227 252 } 228 253 229 254 pub async fn run(runtime: &Runtime, run_args: RunArgs) {
+15 -1
tiles/src/main.rs
··· 1 1 use std::error::Error; 2 2 3 3 use clap::{Args, Parser, Subcommand}; 4 - use tiles::runtime::{RunArgs, build_runtime}; 4 + use tiles::{ 5 + runtime::{RunArgs, build_runtime}, 6 + utils::installer, 7 + }; 5 8 mod commands; 6 9 #[derive(Debug, Parser)] 7 10 #[command(name = "tiles")] ··· 49 52 }, 50 53 /// Manage user account 51 54 Account(AccountArgs), 55 + 56 + /// Update Tiles to latest version 57 + Update, 52 58 } 53 59 54 60 #[derive(Debug, Args)] ··· 126 132 }; 127 133 commands::run_setup_for_ftue(&run_args) 128 134 .inspect_err(|e| eprintln!("Failed to setup Tiles due to {:?}", e))?; 135 + commands::try_app_update() 136 + .await 137 + .inspect_err(|e| eprintln!("Failed to update the app due to {:?}", e))?; 129 138 commands::run(&runtime, run_args).await; 130 139 } 131 140 Some(Commands::Run { ··· 161 170 } 162 171 Some(Commands::Account(account_args)) => { 163 172 commands::run_account_commands(account_args)?; 173 + } 174 + Some(Commands::Update) => { 175 + println!("trying to update tiles"); 176 + let res = installer::try_update(None).await?; 177 + println!("{}", res); 164 178 } 165 179 } 166 180 Ok(())
+185
tiles/src/utils/installer.rs
··· 1 + //! Auto installing Tiles 2 + //! 3 + //! We will be fetching the latest revision form github (where we host the binaries) 4 + //! We will be using the installer script under `tiles/scripts/installer.sh` to 5 + //! install Tiles, just fetching the script and running as bash script from Rust. 6 + 7 + use std::{ 8 + process::{Command, Stdio}, 9 + time::Duration, 10 + }; 11 + 12 + use anyhow::{Result, anyhow}; 13 + use reqwest::{Client, header::HeaderMap}; 14 + use semver::{Version, VersionReq}; 15 + use serde::Deserialize; 16 + 17 + const RELEASES_BASE_ENDPOINT: &str = "https://api.github.com"; 18 + const RELEASES_REST_PATH: &str = "repos/tilesprivacy/tiles/releases/latest"; 19 + const HEADER_PARSING_ERROR: &str = "Failed to parse header"; 20 + #[derive(Deserialize)] 21 + struct Release { 22 + tag_name: String, 23 + } 24 + 25 + pub struct UpdateInfo { 26 + pub can_update: bool, 27 + pub latest_version: String, 28 + pub current_version: String, 29 + } 30 + 31 + pub async fn try_update(update_info: Option<UpdateInfo>) -> Result<String> { 32 + let app_update_info = if let Some(info) = update_info { 33 + info 34 + } else { 35 + get_update_info().await? 36 + }; 37 + 38 + if !app_update_info.can_update { 39 + Ok("Already latest version".to_owned()) 40 + } else { 41 + let mut curl_process = Command::new("curl") 42 + .arg("-fsSL") 43 + .arg("https://tiles.run/install.sh") 44 + .stdout(Stdio::piped()) 45 + .spawn()?; 46 + 47 + let _run_sh_cmd = Command::new("sh") 48 + .stdin( 49 + curl_process 50 + .stdout 51 + .take() 52 + .ok_or_else(|| anyhow!("Failed to pipe from the curled input"))?, 53 + ) 54 + .stdout(Stdio::inherit()) 55 + .stderr(Stdio::inherit()) 56 + .status()?; 57 + 58 + Ok(format!( 59 + "Tiles upgraded to {}", 60 + app_update_info.latest_version 61 + )) 62 + } 63 + } 64 + 65 + pub async fn get_update_info() -> Result<UpdateInfo> { 66 + let latest_vsn = get_latest_version(RELEASES_BASE_ENDPOINT).await?; 67 + 68 + let req_vsn = VersionReq::parse(&latest_vsn)?; 69 + let current_vsn = Version::parse(env!("CARGO_PKG_VERSION")) 70 + .map_err(|e| anyhow!("Failed to parse pkg version due to {}", e))?; 71 + 72 + if req_vsn.matches(&current_vsn) { 73 + Ok(UpdateInfo { 74 + can_update: false, 75 + latest_version: req_vsn.to_string(), 76 + current_version: current_vsn.to_string(), 77 + }) 78 + } else { 79 + Ok(UpdateInfo { 80 + can_update: true, 81 + latest_version: req_vsn.to_string(), 82 + current_version: current_vsn.to_string(), 83 + }) 84 + } 85 + } 86 + 87 + /// Gets the latest Tiles version 88 + /// 89 + /// Returns a Err(String), on API failure 90 + pub async fn get_latest_version(base_url: &str) -> Result<String> { 91 + let mut headers = HeaderMap::new(); 92 + headers.insert( 93 + "X-GitHub-Api-Version", 94 + "2022-11-28".parse().expect(HEADER_PARSING_ERROR), 95 + ); 96 + headers.insert( 97 + "Accept", 98 + "application/vnd.github+json" 99 + .parse() 100 + .expect(HEADER_PARSING_ERROR), 101 + ); 102 + headers.insert("user-agent", "Tiles".parse().expect(HEADER_PARSING_ERROR)); 103 + let client_builder = Client::builder() 104 + .timeout(Duration::from_secs(5)) 105 + .default_headers(headers); 106 + 107 + let client = client_builder.build()?; 108 + let response = client 109 + .get(format!("{}/{}", base_url, RELEASES_REST_PATH)) 110 + .send() 111 + .await; 112 + 113 + match response { 114 + Err(err) if err.is_timeout() => Err(anyhow!("Request failed due to Api timedout")), 115 + Err(err) => Err(anyhow!("Request failed due to {:?}", err)), 116 + Ok(res) if res.status() == 200 => { 117 + let release = res.json::<Release>().await?; 118 + Ok(release.tag_name) 119 + } 120 + Ok(res) => Err(anyhow!("Api failed with status {}", res.status())), 121 + } 122 + } 123 + 124 + #[cfg(test)] 125 + mod tests { 126 + use wiremock::{ 127 + Mock, MockServer, ResponseTemplate, 128 + matchers::{method, path}, 129 + }; 130 + 131 + use super::*; 132 + use serde_json::json; 133 + #[tokio::test] 134 + async fn test_get_latest_version() { 135 + let mock_server = MockServer::start().await; 136 + Mock::given(method("GET")) 137 + .and(path("/repos/tilesprivacy/tiles/releases/latest")) 138 + .respond_with(ResponseTemplate::new(200).set_body_json(json!( 139 + { 140 + "tag_name": "0.4.1" 141 + } 142 + ))) 143 + .mount(&mock_server) 144 + .await; 145 + 146 + let tag = get_latest_version(mock_server.uri().as_str()) 147 + .await 148 + .unwrap(); 149 + assert_eq!(tag, "0.4.1".to_owned()) 150 + } 151 + 152 + #[tokio::test] 153 + async fn test_get_latest_version_failed_due_to_timeout() { 154 + let delay = Duration::from_secs(30); // 30s 155 + let mock_server = MockServer::start().await; 156 + let path_str = format!("/{}", RELEASES_REST_PATH); 157 + Mock::given(method("GET")) 158 + .and(path(path_str)) 159 + .respond_with(ResponseTemplate::new(200).set_delay(delay)) 160 + .mount(&mock_server) 161 + .await; 162 + 163 + let server = mock_server.uri(); 164 + let res = async_std::future::timeout(delay / 2, get_latest_version(server.as_str())).await; 165 + assert!(res.unwrap().is_err()); 166 + } 167 + 168 + #[tokio::test] 169 + async fn test_get_latest_version_err_4xx() { 170 + let mock_server = MockServer::start().await; 171 + let path_str = format!("/{}", RELEASES_REST_PATH); 172 + 173 + Mock::given(method("GET")) 174 + .and(path(path_str)) 175 + .respond_with(ResponseTemplate::new(403).set_body_json(json!( 176 + { 177 + "err": "unauth" 178 + }))) 179 + .mount(&mock_server) 180 + .await; 181 + 182 + let tag = get_latest_version(mock_server.uri().as_str()).await; 183 + assert!(tag.is_err()) 184 + } 185 + }
+1
tiles/src/utils/mod.rs
··· 1 1 pub mod accounts; 2 2 pub mod config; 3 3 pub mod hf_model_downloader; 4 + pub mod installer;