From b4147c8d08b2e14554337536f54c6965006b29ca Mon Sep 17 00:00:00 2001
From: Brendan Allan <14191578+Brendonovich@users.noreply.github.com>
Date: Tue, 5 May 2026 13:43:36 +0800
Subject: [PATCH] refactor(desktop): consolidate desktop-electron into desktop
package (#25822)
---
.github/workflows/publish.yml | 20 +-
bun.lock | 95 +-
package.json | 2 +-
packages/desktop-electron/.gitignore | 28 -
packages/desktop-electron/AGENTS.md | 4 -
packages/desktop-electron/README.md | 32 -
packages/desktop-electron/package.json | 68 -
.../desktop-electron/scripts/copy-bundles.ts | 12 -
packages/desktop-electron/scripts/predev.ts | 5 -
packages/desktop-electron/scripts/prepare.ts | 9 -
packages/desktop-electron/scripts/utils.ts | 77 -
packages/desktop-electron/sst-env.d.ts | 10 -
packages/desktop-electron/tsconfig.json | 23 -
packages/desktop/.gitignore | 4 +
packages/desktop/AGENTS.md | 4 +-
packages/desktop/README.md | 24 +-
.../electron-builder.config.ts | 0
.../electron.vite.config.ts | 0
.../icons/README.md | 0
.../icons/beta/128x128.png | Bin
.../icons/beta/128x128@2x.png | Bin
.../icons/beta/32x32.png | Bin
.../icons/beta/64x64.png | Bin
.../icons/beta/Square107x107Logo.png | Bin
.../icons/beta/Square142x142Logo.png | Bin
.../icons/beta/Square150x150Logo.png | Bin
.../icons/beta/Square284x284Logo.png | Bin
.../icons/beta/Square30x30Logo.png | Bin
.../icons/beta/Square310x310Logo.png | Bin
.../icons/beta/Square44x44Logo.png | Bin
.../icons/beta/Square71x71Logo.png | Bin
.../icons/beta/Square89x89Logo.png | Bin
.../icons/beta/StoreLogo.png | Bin
.../android/mipmap-anydpi-v26/ic_launcher.xml | 0
.../beta/android/mipmap-hdpi/ic_launcher.png | Bin
.../mipmap-hdpi/ic_launcher_foreground.png | Bin
.../android/mipmap-hdpi/ic_launcher_round.png | Bin
.../beta/android/mipmap-mdpi/ic_launcher.png | Bin
.../mipmap-mdpi/ic_launcher_foreground.png | Bin
.../android/mipmap-mdpi/ic_launcher_round.png | Bin
.../beta/android/mipmap-xhdpi/ic_launcher.png | Bin
.../mipmap-xhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xhdpi/ic_launcher_round.png | Bin
.../android/mipmap-xxhdpi/ic_launcher.png | Bin
.../mipmap-xxhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xxhdpi/ic_launcher_round.png | Bin
.../android/mipmap-xxxhdpi/ic_launcher.png | Bin
.../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xxxhdpi/ic_launcher_round.png | Bin
.../android/values/ic_launcher_background.xml | 0
.../icons/beta/dock.png | Bin
.../icons/beta/icon.icns | Bin
.../icons/beta/icon.ico | Bin
.../icons/beta/icon.png | Bin
.../icons/beta/ios/AppIcon-20x20@1x.png | Bin
.../icons/beta/ios/AppIcon-20x20@2x-1.png | Bin
.../icons/beta/ios/AppIcon-20x20@2x.png | Bin
.../icons/beta/ios/AppIcon-20x20@3x.png | Bin
.../icons/beta/ios/AppIcon-29x29@1x.png | Bin
.../icons/beta/ios/AppIcon-29x29@2x-1.png | Bin
.../icons/beta/ios/AppIcon-29x29@2x.png | Bin
.../icons/beta/ios/AppIcon-29x29@3x.png | Bin
.../icons/beta/ios/AppIcon-40x40@1x.png | Bin
.../icons/beta/ios/AppIcon-40x40@2x-1.png | Bin
.../icons/beta/ios/AppIcon-40x40@2x.png | Bin
.../icons/beta/ios/AppIcon-40x40@3x.png | Bin
.../icons/beta/ios/AppIcon-512@2x.png | Bin
.../icons/beta/ios/AppIcon-60x60@2x.png | Bin
.../icons/beta/ios/AppIcon-60x60@3x.png | Bin
.../icons/beta/ios/AppIcon-76x76@1x.png | Bin
.../icons/beta/ios/AppIcon-76x76@2x.png | Bin
.../icons/beta/ios/AppIcon-83.5x83.5@2x.png | Bin
.../icons/dev/128x128.png | Bin
.../icons/dev/128x128@2x.png | Bin
.../icons/dev/32x32.png | Bin
.../icons/dev/64x64.png | Bin
.../icons/dev/Square107x107Logo.png | Bin
.../icons/dev/Square142x142Logo.png | Bin
.../icons/dev/Square150x150Logo.png | Bin
.../icons/dev/Square284x284Logo.png | Bin
.../icons/dev/Square30x30Logo.png | Bin
.../icons/dev/Square310x310Logo.png | Bin
.../icons/dev/Square44x44Logo.png | Bin
.../icons/dev/Square71x71Logo.png | Bin
.../icons/dev/Square89x89Logo.png | Bin
.../icons/dev/StoreLogo.png | Bin
.../android/mipmap-anydpi-v26/ic_launcher.xml | 0
.../dev/android/mipmap-hdpi/ic_launcher.png | Bin
.../mipmap-hdpi/ic_launcher_foreground.png | Bin
.../android/mipmap-hdpi/ic_launcher_round.png | Bin
.../dev/android/mipmap-mdpi/ic_launcher.png | Bin
.../mipmap-mdpi/ic_launcher_foreground.png | Bin
.../android/mipmap-mdpi/ic_launcher_round.png | Bin
.../dev/android/mipmap-xhdpi/ic_launcher.png | Bin
.../mipmap-xhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xhdpi/ic_launcher_round.png | Bin
.../dev/android/mipmap-xxhdpi/ic_launcher.png | Bin
.../mipmap-xxhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xxhdpi/ic_launcher_round.png | Bin
.../android/mipmap-xxxhdpi/ic_launcher.png | Bin
.../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xxxhdpi/ic_launcher_round.png | Bin
.../android/values/ic_launcher_background.xml | 0
.../icons/dev/dock.png | Bin
.../icons/dev/icon.icns | Bin
.../icons/dev/icon.ico | Bin
.../icons/dev/icon.png | Bin
.../icons/dev/ios/AppIcon-20x20@1x.png | Bin
.../icons/dev/ios/AppIcon-20x20@2x-1.png | Bin
.../icons/dev/ios/AppIcon-20x20@2x.png | Bin
.../icons/dev/ios/AppIcon-20x20@3x.png | Bin
.../icons/dev/ios/AppIcon-29x29@1x.png | Bin
.../icons/dev/ios/AppIcon-29x29@2x-1.png | Bin
.../icons/dev/ios/AppIcon-29x29@2x.png | Bin
.../icons/dev/ios/AppIcon-29x29@3x.png | Bin
.../icons/dev/ios/AppIcon-40x40@1x.png | Bin
.../icons/dev/ios/AppIcon-40x40@2x-1.png | Bin
.../icons/dev/ios/AppIcon-40x40@2x.png | Bin
.../icons/dev/ios/AppIcon-40x40@3x.png | Bin
.../icons/dev/ios/AppIcon-512@2x.png | Bin
.../icons/dev/ios/AppIcon-60x60@2x.png | Bin
.../icons/dev/ios/AppIcon-60x60@3x.png | Bin
.../icons/dev/ios/AppIcon-76x76@1x.png | Bin
.../icons/dev/ios/AppIcon-76x76@2x.png | Bin
.../icons/dev/ios/AppIcon-83.5x83.5@2x.png | Bin
.../icons/prod/128x128.png | Bin
.../icons/prod/128x128@2x.png | Bin
.../icons/prod/32x32.png | Bin
.../icons/prod/64x64.png | Bin
.../icons/prod/Square107x107Logo.png | Bin
.../icons/prod/Square142x142Logo.png | Bin
.../icons/prod/Square150x150Logo.png | Bin
.../icons/prod/Square284x284Logo.png | Bin
.../icons/prod/Square30x30Logo.png | Bin
.../icons/prod/Square310x310Logo.png | Bin
.../icons/prod/Square44x44Logo.png | Bin
.../icons/prod/Square71x71Logo.png | Bin
.../icons/prod/Square89x89Logo.png | Bin
.../icons/prod/StoreLogo.png | Bin
.../android/mipmap-anydpi-v26/ic_launcher.xml | 0
.../prod/android/mipmap-hdpi/ic_launcher.png | Bin
.../mipmap-hdpi/ic_launcher_foreground.png | Bin
.../android/mipmap-hdpi/ic_launcher_round.png | Bin
.../prod/android/mipmap-mdpi/ic_launcher.png | Bin
.../mipmap-mdpi/ic_launcher_foreground.png | Bin
.../android/mipmap-mdpi/ic_launcher_round.png | Bin
.../prod/android/mipmap-xhdpi/ic_launcher.png | Bin
.../mipmap-xhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xhdpi/ic_launcher_round.png | Bin
.../android/mipmap-xxhdpi/ic_launcher.png | Bin
.../mipmap-xxhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xxhdpi/ic_launcher_round.png | Bin
.../android/mipmap-xxxhdpi/ic_launcher.png | Bin
.../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin
.../mipmap-xxxhdpi/ic_launcher_round.png | Bin
.../android/values/ic_launcher_background.xml | 0
.../icons/prod/dock.png | Bin
.../icons/prod/icon.icns | Bin
.../icons/prod/icon.ico | Bin
.../icons/prod/icon.png | Bin
.../icons/prod/ios/AppIcon-20x20@1x.png | Bin
.../icons/prod/ios/AppIcon-20x20@2x-1.png | Bin
.../icons/prod/ios/AppIcon-20x20@2x.png | Bin
.../icons/prod/ios/AppIcon-20x20@3x.png | Bin
.../icons/prod/ios/AppIcon-29x29@1x.png | Bin
.../icons/prod/ios/AppIcon-29x29@2x-1.png | Bin
.../icons/prod/ios/AppIcon-29x29@2x.png | Bin
.../icons/prod/ios/AppIcon-29x29@3x.png | Bin
.../icons/prod/ios/AppIcon-40x40@1x.png | Bin
.../icons/prod/ios/AppIcon-40x40@2x-1.png | Bin
.../icons/prod/ios/AppIcon-40x40@2x.png | Bin
.../icons/prod/ios/AppIcon-40x40@3x.png | Bin
.../icons/prod/ios/AppIcon-512@2x.png | Bin
.../icons/prod/ios/AppIcon-60x60@2x.png | Bin
.../icons/prod/ios/AppIcon-60x60@3x.png | Bin
.../icons/prod/ios/AppIcon-76x76@1x.png | Bin
.../icons/prod/ios/AppIcon-76x76@2x.png | Bin
.../icons/prod/ios/AppIcon-83.5x83.5@2x.png | Bin
packages/desktop/index.html | 24 -
packages/desktop/package.json | 74 +-
.../resources/entitlements.plist | 0
packages/desktop/scripts/copy-bundles.ts | 6 +-
.../scripts/copy-icons.ts | 0
.../scripts/finalize-latest-yml.ts | 0
.../scripts/prebuild.ts | 0
packages/desktop/scripts/predev.ts | 14 +-
packages/desktop/scripts/prepare.ts | 15 +-
packages/desktop/scripts/utils.ts | 28 +-
packages/desktop/src-tauri/.gitignore | 9 -
packages/desktop/src-tauri/Cargo.lock | 7394 -----------------
packages/desktop/src-tauri/Cargo.toml | 75 -
.../desktop/src-tauri/assets/nsis-header.bmp | Bin 25818 -> 0 bytes
.../desktop/src-tauri/assets/nsis-sidebar.bmp | Bin 154542 -> 0 bytes
packages/desktop/src-tauri/build.rs | 3 -
.../src-tauri/capabilities/default.json | 52 -
packages/desktop/src-tauri/entitlements.plist | 18 -
packages/desktop/src-tauri/icons/README.md | 11 -
.../desktop/src-tauri/icons/beta/128x128.png | Bin 10186 -> 0 bytes
.../src-tauri/icons/beta/128x128@2x.png | Bin 36252 -> 0 bytes
.../desktop/src-tauri/icons/beta/32x32.png | Bin 1309 -> 0 bytes
.../desktop/src-tauri/icons/beta/64x64.png | Bin 3587 -> 0 bytes
.../icons/beta/Square107x107Logo.png | Bin 7562 -> 0 bytes
.../icons/beta/Square142x142Logo.png | Bin 12279 -> 0 bytes
.../icons/beta/Square150x150Logo.png | Bin 13445 -> 0 bytes
.../icons/beta/Square284x284Logo.png | Bin 45201 -> 0 bytes
.../src-tauri/icons/beta/Square30x30Logo.png | Bin 1281 -> 0 bytes
.../icons/beta/Square310x310Logo.png | Bin 54725 -> 0 bytes
.../src-tauri/icons/beta/Square44x44Logo.png | Bin 2167 -> 0 bytes
.../src-tauri/icons/beta/Square71x71Logo.png | Bin 4121 -> 0 bytes
.../src-tauri/icons/beta/Square89x89Logo.png | Bin 5782 -> 0 bytes
.../src-tauri/icons/beta/StoreLogo.png | Bin 2559 -> 0 bytes
.../android/mipmap-anydpi-v26/ic_launcher.xml | 5 -
.../beta/android/mipmap-hdpi/ic_launcher.png | Bin 2077 -> 0 bytes
.../mipmap-hdpi/ic_launcher_foreground.png | Bin 15269 -> 0 bytes
.../android/mipmap-hdpi/ic_launcher_round.png | Bin 1887 -> 0 bytes
.../beta/android/mipmap-mdpi/ic_launcher.png | Bin 2083 -> 0 bytes
.../mipmap-mdpi/ic_launcher_foreground.png | Bin 7845 -> 0 bytes
.../android/mipmap-mdpi/ic_launcher_round.png | Bin 1792 -> 0 bytes
.../beta/android/mipmap-xhdpi/ic_launcher.png | Bin 5778 -> 0 bytes
.../mipmap-xhdpi/ic_launcher_foreground.png | Bin 25523 -> 0 bytes
.../mipmap-xhdpi/ic_launcher_round.png | Bin 5026 -> 0 bytes
.../android/mipmap-xxhdpi/ic_launcher.png | Bin 10758 -> 0 bytes
.../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 60763 -> 0 bytes
.../mipmap-xxhdpi/ic_launcher_round.png | Bin 9312 -> 0 bytes
.../android/mipmap-xxxhdpi/ic_launcher.png | Bin 17122 -> 0 bytes
.../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 116520 -> 0 bytes
.../mipmap-xxxhdpi/ic_launcher_round.png | Bin 14941 -> 0 bytes
.../android/values/ic_launcher_background.xml | 4 -
.../desktop/src-tauri/icons/beta/icon.icns | Bin 882048 -> 0 bytes
.../desktop/src-tauri/icons/beta/icon.ico | Bin 49612 -> 0 bytes
.../desktop/src-tauri/icons/beta/icon.png | Bin 172485 -> 0 bytes
.../icons/beta/ios/AppIcon-20x20@1x.png | Bin 687 -> 0 bytes
.../icons/beta/ios/AppIcon-20x20@2x-1.png | Bin 1660 -> 0 bytes
.../icons/beta/ios/AppIcon-20x20@2x.png | Bin 1660 -> 0 bytes
.../icons/beta/ios/AppIcon-20x20@3x.png | Bin 2950 -> 0 bytes
.../icons/beta/ios/AppIcon-29x29@1x.png | Bin 1072 -> 0 bytes
.../icons/beta/ios/AppIcon-29x29@2x-1.png | Bin 2834 -> 0 bytes
.../icons/beta/ios/AppIcon-29x29@2x.png | Bin 2834 -> 0 bytes
.../icons/beta/ios/AppIcon-29x29@3x.png | Bin 5048 -> 0 bytes
.../icons/beta/ios/AppIcon-40x40@1x.png | Bin 1660 -> 0 bytes
.../icons/beta/ios/AppIcon-40x40@2x-1.png | Bin 4396 -> 0 bytes
.../icons/beta/ios/AppIcon-40x40@2x.png | Bin 4396 -> 0 bytes
.../icons/beta/ios/AppIcon-40x40@3x.png | Bin 8452 -> 0 bytes
.../icons/beta/ios/AppIcon-512@2x.png | Bin 596205 -> 0 bytes
.../icons/beta/ios/AppIcon-60x60@2x.png | Bin 8452 -> 0 bytes
.../icons/beta/ios/AppIcon-60x60@3x.png | Bin 16916 -> 0 bytes
.../icons/beta/ios/AppIcon-76x76@1x.png | Bin 4193 -> 0 bytes
.../icons/beta/ios/AppIcon-76x76@2x.png | Bin 12523 -> 0 bytes
.../icons/beta/ios/AppIcon-83.5x83.5@2x.png | Bin 14760 -> 0 bytes
.../desktop/src-tauri/icons/dev/128x128.png | Bin 16568 -> 0 bytes
.../src-tauri/icons/dev/128x128@2x.png | Bin 59884 -> 0 bytes
.../desktop/src-tauri/icons/dev/32x32.png | Bin 1973 -> 0 bytes
.../desktop/src-tauri/icons/dev/64x64.png | Bin 5469 -> 0 bytes
.../src-tauri/icons/dev/Square107x107Logo.png | Bin 12116 -> 0 bytes
.../src-tauri/icons/dev/Square142x142Logo.png | Bin 19936 -> 0 bytes
.../src-tauri/icons/dev/Square150x150Logo.png | Bin 21988 -> 0 bytes
.../src-tauri/icons/dev/Square284x284Logo.png | Bin 74022 -> 0 bytes
.../src-tauri/icons/dev/Square30x30Logo.png | Bin 1786 -> 0 bytes
.../src-tauri/icons/dev/Square310x310Logo.png | Bin 89075 -> 0 bytes
.../src-tauri/icons/dev/Square44x44Logo.png | Bin 3211 -> 0 bytes
.../src-tauri/icons/dev/Square71x71Logo.png | Bin 6370 -> 0 bytes
.../src-tauri/icons/dev/Square89x89Logo.png | Bin 9316 -> 0 bytes
.../desktop/src-tauri/icons/dev/StoreLogo.png | Bin 3862 -> 0 bytes
.../android/mipmap-anydpi-v26/ic_launcher.xml | 5 -
.../dev/android/mipmap-hdpi/ic_launcher.png | Bin 3076 -> 0 bytes
.../mipmap-hdpi/ic_launcher_foreground.png | Bin 24987 -> 0 bytes
.../android/mipmap-hdpi/ic_launcher_round.png | Bin 2853 -> 0 bytes
.../dev/android/mipmap-mdpi/ic_launcher.png | Bin 3016 -> 0 bytes
.../mipmap-mdpi/ic_launcher_foreground.png | Bin 12682 -> 0 bytes
.../android/mipmap-mdpi/ic_launcher_round.png | Bin 2702 -> 0 bytes
.../dev/android/mipmap-xhdpi/ic_launcher.png | Bin 8701 -> 0 bytes
.../mipmap-xhdpi/ic_launcher_foreground.png | Bin 42285 -> 0 bytes
.../mipmap-xhdpi/ic_launcher_round.png | Bin 7640 -> 0 bytes
.../dev/android/mipmap-xxhdpi/ic_launcher.png | Bin 16970 -> 0 bytes
.../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 97586 -> 0 bytes
.../mipmap-xxhdpi/ic_launcher_round.png | Bin 14939 -> 0 bytes
.../android/mipmap-xxxhdpi/ic_launcher.png | Bin 27316 -> 0 bytes
.../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 180625 -> 0 bytes
.../mipmap-xxxhdpi/ic_launcher_round.png | Bin 24066 -> 0 bytes
.../android/values/ic_launcher_background.xml | 4 -
.../desktop/src-tauri/icons/dev/icon.icns | Bin 1187792 -> 0 bytes
packages/desktop/src-tauri/icons/dev/icon.ico | Bin 73182 -> 0 bytes
packages/desktop/src-tauri/icons/dev/icon.png | Bin 264014 -> 0 bytes
.../icons/dev/ios/AppIcon-20x20@1x.png | Bin 955 -> 0 bytes
.../icons/dev/ios/AppIcon-20x20@2x-1.png | Bin 2695 -> 0 bytes
.../icons/dev/ios/AppIcon-20x20@2x.png | Bin 2695 -> 0 bytes
.../icons/dev/ios/AppIcon-20x20@3x.png | Bin 4932 -> 0 bytes
.../icons/dev/ios/AppIcon-29x29@1x.png | Bin 1640 -> 0 bytes
.../icons/dev/ios/AppIcon-29x29@2x-1.png | Bin 4684 -> 0 bytes
.../icons/dev/ios/AppIcon-29x29@2x.png | Bin 4684 -> 0 bytes
.../icons/dev/ios/AppIcon-29x29@3x.png | Bin 8781 -> 0 bytes
.../icons/dev/ios/AppIcon-40x40@1x.png | Bin 2695 -> 0 bytes
.../icons/dev/ios/AppIcon-40x40@2x-1.png | Bin 7529 -> 0 bytes
.../icons/dev/ios/AppIcon-40x40@2x.png | Bin 7529 -> 0 bytes
.../icons/dev/ios/AppIcon-40x40@3x.png | Bin 14557 -> 0 bytes
.../icons/dev/ios/AppIcon-512@2x.png | Bin 980713 -> 0 bytes
.../icons/dev/ios/AppIcon-60x60@2x.png | Bin 14557 -> 0 bytes
.../icons/dev/ios/AppIcon-60x60@3x.png | Bin 29995 -> 0 bytes
.../icons/dev/ios/AppIcon-76x76@1x.png | Bin 7093 -> 0 bytes
.../icons/dev/ios/AppIcon-76x76@2x.png | Bin 22066 -> 0 bytes
.../icons/dev/ios/AppIcon-83.5x83.5@2x.png | Bin 25898 -> 0 bytes
.../desktop/src-tauri/icons/prod/128x128.png | Bin 9013 -> 0 bytes
.../src-tauri/icons/prod/128x128@2x.png | Bin 36840 -> 0 bytes
.../desktop/src-tauri/icons/prod/32x32.png | Bin 1255 -> 0 bytes
.../desktop/src-tauri/icons/prod/64x64.png | Bin 2971 -> 0 bytes
.../icons/prod/Square107x107Logo.png | Bin 6441 -> 0 bytes
.../icons/prod/Square142x142Logo.png | Bin 10850 -> 0 bytes
.../icons/prod/Square150x150Logo.png | Bin 12036 -> 0 bytes
.../icons/prod/Square284x284Logo.png | Bin 47137 -> 0 bytes
.../src-tauri/icons/prod/Square30x30Logo.png | Bin 1109 -> 0 bytes
.../icons/prod/Square310x310Logo.png | Bin 58165 -> 0 bytes
.../src-tauri/icons/prod/Square44x44Logo.png | Bin 1827 -> 0 bytes
.../src-tauri/icons/prod/Square71x71Logo.png | Bin 3405 -> 0 bytes
.../src-tauri/icons/prod/Square89x89Logo.png | Bin 4760 -> 0 bytes
.../src-tauri/icons/prod/StoreLogo.png | Bin 2186 -> 0 bytes
.../android/mipmap-anydpi-v26/ic_launcher.xml | 5 -
.../prod/android/mipmap-hdpi/ic_launcher.png | Bin 1886 -> 0 bytes
.../mipmap-hdpi/ic_launcher_foreground.png | Bin 13918 -> 0 bytes
.../android/mipmap-hdpi/ic_launcher_round.png | Bin 1811 -> 0 bytes
.../prod/android/mipmap-mdpi/ic_launcher.png | Bin 1873 -> 0 bytes
.../mipmap-mdpi/ic_launcher_foreground.png | Bin 6540 -> 0 bytes
.../android/mipmap-mdpi/ic_launcher_round.png | Bin 1751 -> 0 bytes
.../prod/android/mipmap-xhdpi/ic_launcher.png | Bin 4726 -> 0 bytes
.../mipmap-xhdpi/ic_launcher_foreground.png | Bin 25393 -> 0 bytes
.../mipmap-xhdpi/ic_launcher_round.png | Bin 4101 -> 0 bytes
.../android/mipmap-xxhdpi/ic_launcher.png | Bin 9156 -> 0 bytes
.../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 64829 -> 0 bytes
.../mipmap-xxhdpi/ic_launcher_round.png | Bin 8270 -> 0 bytes
.../android/mipmap-xxxhdpi/ic_launcher.png | Bin 15359 -> 0 bytes
.../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 127895 -> 0 bytes
.../mipmap-xxxhdpi/ic_launcher_round.png | Bin 14064 -> 0 bytes
.../android/values/ic_launcher_background.xml | 4 -
.../desktop/src-tauri/icons/prod/icon.icns | Bin 1010901 -> 0 bytes
.../desktop/src-tauri/icons/prod/icon.ico | Bin 47600 -> 0 bytes
.../desktop/src-tauri/icons/prod/icon.png | Bin 190179 -> 0 bytes
.../icons/prod/ios/AppIcon-20x20@1x.png | Bin 728 -> 0 bytes
.../icons/prod/ios/AppIcon-20x20@2x-1.png | Bin 1607 -> 0 bytes
.../icons/prod/ios/AppIcon-20x20@2x.png | Bin 1607 -> 0 bytes
.../icons/prod/ios/AppIcon-20x20@3x.png | Bin 2648 -> 0 bytes
.../icons/prod/ios/AppIcon-29x29@1x.png | Bin 1094 -> 0 bytes
.../icons/prod/ios/AppIcon-29x29@2x-1.png | Bin 2542 -> 0 bytes
.../icons/prod/ios/AppIcon-29x29@2x.png | Bin 2542 -> 0 bytes
.../icons/prod/ios/AppIcon-29x29@3x.png | Bin 4709 -> 0 bytes
.../icons/prod/ios/AppIcon-40x40@1x.png | Bin 1607 -> 0 bytes
.../icons/prod/ios/AppIcon-40x40@2x-1.png | Bin 4058 -> 0 bytes
.../icons/prod/ios/AppIcon-40x40@2x.png | Bin 4058 -> 0 bytes
.../icons/prod/ios/AppIcon-40x40@3x.png | Bin 7828 -> 0 bytes
.../icons/prod/ios/AppIcon-512@2x.png | Bin 681769 -> 0 bytes
.../icons/prod/ios/AppIcon-60x60@2x.png | Bin 7828 -> 0 bytes
.../icons/prod/ios/AppIcon-60x60@3x.png | Bin 17106 -> 0 bytes
.../icons/prod/ios/AppIcon-76x76@1x.png | Bin 3730 -> 0 bytes
.../icons/prod/ios/AppIcon-76x76@2x.png | Bin 12166 -> 0 bytes
.../icons/prod/ios/AppIcon-83.5x83.5@2x.png | Bin 14705 -> 0 bytes
.../src-tauri/release/appstream.metainfo.xml | 130 -
packages/desktop/src-tauri/src/cli.rs | 742 --
packages/desktop/src-tauri/src/constants.rs | 10 -
packages/desktop/src-tauri/src/lib.rs | 601 --
.../desktop/src-tauri/src/linux_display.rs | 53 -
.../desktop/src-tauri/src/linux_windowing.rs | 475 --
packages/desktop/src-tauri/src/logging.rs | 76 -
packages/desktop/src-tauri/src/main.rs | 78 -
packages/desktop/src-tauri/src/markdown.rs | 63 -
packages/desktop/src-tauri/src/os/mod.rs | 2 -
packages/desktop/src-tauri/src/os/windows.rs | 463 --
packages/desktop/src-tauri/src/server.rs | 170 -
.../src-tauri/src/window_customizer.rs | 46 -
packages/desktop/src-tauri/src/windows.rs | 174 -
.../desktop/src-tauri/tauri.beta.conf.json | 37 -
packages/desktop/src-tauri/tauri.conf.json | 67 -
.../desktop/src-tauri/tauri.prod.conf.json | 42 -
packages/desktop/src/bindings.ts | 67 -
packages/desktop/src/cli.ts | 43 -
packages/desktop/src/entry.tsx | 5 -
packages/desktop/src/env.d.ts | 9 -
packages/desktop/src/i18n/ar.ts | 59 -
packages/desktop/src/i18n/br.ts | 61 -
packages/desktop/src/i18n/bs.ts | 62 -
packages/desktop/src/i18n/da.ts | 61 -
packages/desktop/src/i18n/de.ts | 62 -
packages/desktop/src/i18n/en.ts | 61 -
packages/desktop/src/i18n/es.ts | 61 -
packages/desktop/src/i18n/fr.ts | 62 -
packages/desktop/src/i18n/index.ts | 192 -
packages/desktop/src/i18n/ja.ts | 62 -
packages/desktop/src/i18n/ko.ts | 60 -
packages/desktop/src/i18n/no.ts | 61 -
packages/desktop/src/i18n/pl.ts | 62 -
packages/desktop/src/i18n/ru.ts | 61 -
packages/desktop/src/i18n/zh.ts | 59 -
packages/desktop/src/i18n/zht.ts | 59 -
packages/desktop/src/index.tsx | 505 --
packages/desktop/src/loading.tsx | 90 -
.../src/main/apps.ts | 0
.../src/main/constants.ts | 0
.../src/main/env.d.ts | 0
.../src/main/index.ts | 0
.../src/main/ipc.ts | 0
.../src/main/logging.ts | 0
.../src/main/markdown.ts | 0
.../src/main/menu.ts | 0
.../src/main/migrate.ts | 0
.../src/main/server.ts | 0
.../src/main/shell-env.test.ts | 0
.../src/main/shell-env.ts | 0
.../src/main/store.ts | 2 +-
.../src/main/windows.ts | 0
packages/desktop/src/menu.ts | 190 -
.../src/preload/index.ts | 0
.../src/preload/types.ts | 0
.../src/renderer/cli.ts | 0
.../src/renderer/env.d.ts | 0
.../src/renderer/html.test.ts | 0
.../src/renderer/i18n/ar.ts | 0
.../src/renderer/i18n/br.ts | 0
.../src/renderer/i18n/bs.ts | 0
.../src/renderer/i18n/da.ts | 0
.../src/renderer/i18n/de.ts | 0
.../src/renderer/i18n/en.ts | 0
.../src/renderer/i18n/es.ts | 0
.../src/renderer/i18n/fr.ts | 0
.../src/renderer/i18n/index.ts | 0
.../src/renderer/i18n/ja.ts | 0
.../src/renderer/i18n/ko.ts | 0
.../src/renderer/i18n/no.ts | 0
.../src/renderer/i18n/pl.ts | 0
.../src/renderer/i18n/ru.ts | 0
.../src/renderer/i18n/zh.ts | 0
.../src/renderer/i18n/zht.ts | 0
.../src/renderer/index.html | 0
.../src/renderer/index.tsx | 4 +-
.../src/renderer/loading.html | 0
.../src/renderer/loading.tsx | 0
.../src/renderer/styles.css | 0
.../src/renderer/updater.ts | 0
.../src/renderer/webview-zoom.ts | 0
packages/desktop/src/styles.css | 7 -
packages/desktop/src/updater.ts | 51 -
packages/desktop/src/webview-zoom.ts | 37 -
packages/desktop/tsconfig.json | 5 +-
packages/desktop/vite.config.ts | 38 -
script/publish.ts | 2 +-
441 files changed, 115 insertions(+), 13441 deletions(-)
delete mode 100644 packages/desktop-electron/.gitignore
delete mode 100644 packages/desktop-electron/AGENTS.md
delete mode 100644 packages/desktop-electron/README.md
delete mode 100644 packages/desktop-electron/package.json
delete mode 100644 packages/desktop-electron/scripts/copy-bundles.ts
delete mode 100644 packages/desktop-electron/scripts/predev.ts
delete mode 100755 packages/desktop-electron/scripts/prepare.ts
delete mode 100644 packages/desktop-electron/scripts/utils.ts
delete mode 100644 packages/desktop-electron/sst-env.d.ts
delete mode 100644 packages/desktop-electron/tsconfig.json
rename packages/{desktop-electron => desktop}/electron-builder.config.ts (100%)
rename packages/{desktop-electron => desktop}/electron.vite.config.ts (100%)
rename packages/{desktop-electron => desktop}/icons/README.md (100%)
rename packages/{desktop-electron => desktop}/icons/beta/128x128.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/128x128@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/32x32.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/64x64.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square107x107Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square142x142Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square150x150Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square284x284Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square30x30Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square310x310Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square44x44Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square71x71Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/Square89x89Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/StoreLogo.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-anydpi-v26/ic_launcher.xml (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-hdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-hdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-hdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-mdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-mdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-mdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xxhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xxhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xxhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xxxhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xxxhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/mipmap-xxxhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/android/values/ic_launcher_background.xml (100%)
rename packages/{desktop-electron => desktop}/icons/beta/dock.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/icon.icns (100%)
rename packages/{desktop-electron => desktop}/icons/beta/icon.ico (100%)
rename packages/{desktop-electron => desktop}/icons/beta/icon.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-20x20@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-20x20@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-20x20@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-20x20@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-29x29@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-29x29@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-29x29@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-29x29@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-40x40@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-40x40@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-40x40@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-40x40@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-512@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-60x60@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-60x60@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-76x76@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-76x76@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/beta/ios/AppIcon-83.5x83.5@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/128x128.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/128x128@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/32x32.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/64x64.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square107x107Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square142x142Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square150x150Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square284x284Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square30x30Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square310x310Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square44x44Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square71x71Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/Square89x89Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/StoreLogo.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-anydpi-v26/ic_launcher.xml (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-hdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-hdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-hdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-mdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-mdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-mdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xxhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xxhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xxhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xxxhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xxxhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/mipmap-xxxhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/android/values/ic_launcher_background.xml (100%)
rename packages/{desktop-electron => desktop}/icons/dev/dock.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/icon.icns (100%)
rename packages/{desktop-electron => desktop}/icons/dev/icon.ico (100%)
rename packages/{desktop-electron => desktop}/icons/dev/icon.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-20x20@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-20x20@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-20x20@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-20x20@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-29x29@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-29x29@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-29x29@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-29x29@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-40x40@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-40x40@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-40x40@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-40x40@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-512@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-60x60@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-60x60@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-76x76@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-76x76@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/dev/ios/AppIcon-83.5x83.5@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/128x128.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/128x128@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/32x32.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/64x64.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square107x107Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square142x142Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square150x150Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square284x284Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square30x30Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square310x310Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square44x44Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square71x71Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/Square89x89Logo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/StoreLogo.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-anydpi-v26/ic_launcher.xml (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-hdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-hdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-hdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-mdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-mdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-mdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xxhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xxhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xxhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xxxhdpi/ic_launcher.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xxxhdpi/ic_launcher_foreground.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/mipmap-xxxhdpi/ic_launcher_round.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/android/values/ic_launcher_background.xml (100%)
rename packages/{desktop-electron => desktop}/icons/prod/dock.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/icon.icns (100%)
rename packages/{desktop-electron => desktop}/icons/prod/icon.ico (100%)
rename packages/{desktop-electron => desktop}/icons/prod/icon.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-20x20@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-20x20@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-20x20@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-20x20@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-29x29@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-29x29@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-29x29@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-29x29@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-40x40@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-40x40@2x-1.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-40x40@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-40x40@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-512@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-60x60@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-60x60@3x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-76x76@1x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-76x76@2x.png (100%)
rename packages/{desktop-electron => desktop}/icons/prod/ios/AppIcon-83.5x83.5@2x.png (100%)
delete mode 100644 packages/desktop/index.html
rename packages/{desktop-electron => desktop}/resources/entitlements.plist (100%)
rename packages/{desktop-electron => desktop}/scripts/copy-icons.ts (100%)
rename packages/{desktop-electron => desktop}/scripts/finalize-latest-yml.ts (100%)
rename packages/{desktop-electron => desktop}/scripts/prebuild.ts (100%)
delete mode 100644 packages/desktop/src-tauri/.gitignore
delete mode 100644 packages/desktop/src-tauri/Cargo.lock
delete mode 100644 packages/desktop/src-tauri/Cargo.toml
delete mode 100644 packages/desktop/src-tauri/assets/nsis-header.bmp
delete mode 100644 packages/desktop/src-tauri/assets/nsis-sidebar.bmp
delete mode 100644 packages/desktop/src-tauri/build.rs
delete mode 100644 packages/desktop/src-tauri/capabilities/default.json
delete mode 100644 packages/desktop/src-tauri/entitlements.plist
delete mode 100644 packages/desktop/src-tauri/icons/README.md
delete mode 100644 packages/desktop/src-tauri/icons/beta/128x128.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/128x128@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/32x32.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/64x64.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square107x107Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square142x142Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square150x150Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square284x284Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square30x30Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square310x310Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square44x44Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square71x71Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/Square89x89Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/StoreLogo.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-anydpi-v26/ic_launcher.xml
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-hdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-hdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-hdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-mdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-mdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-mdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xxhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xxhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xxxhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/mipmap-xxxhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/android/values/ic_launcher_background.xml
delete mode 100644 packages/desktop/src-tauri/icons/beta/icon.icns
delete mode 100644 packages/desktop/src-tauri/icons/beta/icon.ico
delete mode 100644 packages/desktop/src-tauri/icons/beta/icon.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-20x20@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-20x20@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-20x20@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-20x20@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-29x29@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-29x29@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-29x29@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-29x29@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-40x40@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-40x40@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-40x40@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-40x40@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-512@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-60x60@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-60x60@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-76x76@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-76x76@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/beta/ios/AppIcon-83.5x83.5@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/128x128.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/128x128@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/32x32.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/64x64.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square107x107Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square142x142Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square150x150Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square284x284Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square30x30Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square310x310Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square44x44Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square71x71Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/Square89x89Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/StoreLogo.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-anydpi-v26/ic_launcher.xml
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-hdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-hdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-hdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-mdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-mdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-mdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xxhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xxhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xxxhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/mipmap-xxxhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/android/values/ic_launcher_background.xml
delete mode 100644 packages/desktop/src-tauri/icons/dev/icon.icns
delete mode 100644 packages/desktop/src-tauri/icons/dev/icon.ico
delete mode 100644 packages/desktop/src-tauri/icons/dev/icon.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-20x20@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-20x20@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-20x20@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-20x20@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-29x29@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-29x29@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-29x29@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-29x29@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-40x40@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-40x40@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-40x40@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-40x40@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-512@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-60x60@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-60x60@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-76x76@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-76x76@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/dev/ios/AppIcon-83.5x83.5@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/128x128.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/128x128@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/32x32.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/64x64.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square107x107Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square142x142Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square150x150Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square284x284Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square30x30Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square310x310Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square44x44Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square71x71Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/Square89x89Logo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/StoreLogo.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-anydpi-v26/ic_launcher.xml
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-hdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-hdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-hdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-mdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-mdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-mdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xxhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xxhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xxhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xxxhdpi/ic_launcher.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xxxhdpi/ic_launcher_foreground.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/mipmap-xxxhdpi/ic_launcher_round.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/android/values/ic_launcher_background.xml
delete mode 100644 packages/desktop/src-tauri/icons/prod/icon.icns
delete mode 100644 packages/desktop/src-tauri/icons/prod/icon.ico
delete mode 100644 packages/desktop/src-tauri/icons/prod/icon.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-20x20@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-20x20@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-20x20@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-20x20@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-29x29@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-29x29@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-29x29@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-29x29@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-40x40@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-40x40@2x-1.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-40x40@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-40x40@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-512@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-60x60@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-60x60@3x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-76x76@1x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-76x76@2x.png
delete mode 100644 packages/desktop/src-tauri/icons/prod/ios/AppIcon-83.5x83.5@2x.png
delete mode 100644 packages/desktop/src-tauri/release/appstream.metainfo.xml
delete mode 100644 packages/desktop/src-tauri/src/cli.rs
delete mode 100644 packages/desktop/src-tauri/src/constants.rs
delete mode 100644 packages/desktop/src-tauri/src/lib.rs
delete mode 100644 packages/desktop/src-tauri/src/linux_display.rs
delete mode 100644 packages/desktop/src-tauri/src/linux_windowing.rs
delete mode 100644 packages/desktop/src-tauri/src/logging.rs
delete mode 100644 packages/desktop/src-tauri/src/main.rs
delete mode 100644 packages/desktop/src-tauri/src/markdown.rs
delete mode 100644 packages/desktop/src-tauri/src/os/mod.rs
delete mode 100644 packages/desktop/src-tauri/src/os/windows.rs
delete mode 100644 packages/desktop/src-tauri/src/server.rs
delete mode 100644 packages/desktop/src-tauri/src/window_customizer.rs
delete mode 100644 packages/desktop/src-tauri/src/windows.rs
delete mode 100644 packages/desktop/src-tauri/tauri.beta.conf.json
delete mode 100644 packages/desktop/src-tauri/tauri.conf.json
delete mode 100644 packages/desktop/src-tauri/tauri.prod.conf.json
delete mode 100644 packages/desktop/src/bindings.ts
delete mode 100644 packages/desktop/src/cli.ts
delete mode 100644 packages/desktop/src/entry.tsx
delete mode 100644 packages/desktop/src/env.d.ts
delete mode 100644 packages/desktop/src/i18n/ar.ts
delete mode 100644 packages/desktop/src/i18n/br.ts
delete mode 100644 packages/desktop/src/i18n/bs.ts
delete mode 100644 packages/desktop/src/i18n/da.ts
delete mode 100644 packages/desktop/src/i18n/de.ts
delete mode 100644 packages/desktop/src/i18n/en.ts
delete mode 100644 packages/desktop/src/i18n/es.ts
delete mode 100644 packages/desktop/src/i18n/fr.ts
delete mode 100644 packages/desktop/src/i18n/index.ts
delete mode 100644 packages/desktop/src/i18n/ja.ts
delete mode 100644 packages/desktop/src/i18n/ko.ts
delete mode 100644 packages/desktop/src/i18n/no.ts
delete mode 100644 packages/desktop/src/i18n/pl.ts
delete mode 100644 packages/desktop/src/i18n/ru.ts
delete mode 100644 packages/desktop/src/i18n/zh.ts
delete mode 100644 packages/desktop/src/i18n/zht.ts
delete mode 100644 packages/desktop/src/index.tsx
delete mode 100644 packages/desktop/src/loading.tsx
rename packages/{desktop-electron => desktop}/src/main/apps.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/constants.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/env.d.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/index.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/ipc.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/logging.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/markdown.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/menu.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/migrate.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/server.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/shell-env.test.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/shell-env.ts (100%)
rename packages/{desktop-electron => desktop}/src/main/store.ts (81%)
rename packages/{desktop-electron => desktop}/src/main/windows.ts (100%)
delete mode 100644 packages/desktop/src/menu.ts
rename packages/{desktop-electron => desktop}/src/preload/index.ts (100%)
rename packages/{desktop-electron => desktop}/src/preload/types.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/cli.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/env.d.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/html.test.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/ar.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/br.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/bs.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/da.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/de.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/en.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/es.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/fr.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/index.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/ja.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/ko.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/no.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/pl.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/ru.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/zh.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/i18n/zht.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/index.html (100%)
rename packages/{desktop-electron => desktop}/src/renderer/index.tsx (98%)
rename packages/{desktop-electron => desktop}/src/renderer/loading.html (100%)
rename packages/{desktop-electron => desktop}/src/renderer/loading.tsx (100%)
rename packages/{desktop-electron => desktop}/src/renderer/styles.css (100%)
rename packages/{desktop-electron => desktop}/src/renderer/updater.ts (100%)
rename packages/{desktop-electron => desktop}/src/renderer/webview-zoom.ts (100%)
delete mode 100644 packages/desktop/src/styles.css
delete mode 100644 packages/desktop/src/updater.ts
delete mode 100644 packages/desktop/src/webview-zoom.ts
delete mode 100644 packages/desktop/vite.config.ts
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 4614226a8a..5f7ee96b90 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -304,7 +304,7 @@ jobs:
- name: Prepare
run: bun ./scripts/prepare.ts
- working-directory: packages/desktop-electron
+ working-directory: packages/desktop
env:
OPENCODE_VERSION: ${{ needs.version.outputs.version }}
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
@@ -315,7 +315,7 @@ jobs:
- name: Build
run: bun run build
- working-directory: packages/desktop-electron
+ working-directory: packages/desktop
env:
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
@@ -329,7 +329,7 @@ jobs:
- name: Package and publish
if: needs.version.outputs.release
run: npx electron-builder ${{ matrix.settings.platform_flag }} --publish always --config electron-builder.config.ts
- working-directory: packages/desktop-electron
+ working-directory: packages/desktop
timeout-minutes: 60
env:
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
@@ -343,14 +343,14 @@ jobs:
- name: Package (no publish)
if: ${{ !needs.version.outputs.release }}
run: npx electron-builder ${{ matrix.settings.platform_flag }} --publish never --config electron-builder.config.ts
- working-directory: packages/desktop-electron
+ working-directory: packages/desktop
timeout-minutes: 60
env:
OPENCODE_CHANNEL: ${{ (github.ref_name == 'beta' && 'beta') || 'prod' }}
- name: Create and upload macOS .app.tar.gz
if: runner.os == 'macOS' && needs.version.outputs.release
- working-directory: packages/desktop-electron/dist
+ working-directory: packages/desktop/dist
env:
GH_TOKEN: ${{ steps.committer.outputs.token }}
run: |
@@ -377,9 +377,9 @@ jobs:
shell: pwsh
run: |
$files = @()
- $files += Get-ChildItem "${{ github.workspace }}\packages\desktop-electron\dist\*.exe" | Select-Object -ExpandProperty FullName
- $files += Get-ChildItem "${{ github.workspace }}\packages\desktop-electron\dist\*unpacked\*.exe" | Select-Object -ExpandProperty FullName
- $files += Get-ChildItem "${{ github.workspace }}\packages\desktop-electron\dist\*unpacked\resources\opencode-cli.exe" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FullName
+ $files += Get-ChildItem "${{ github.workspace }}\packages\desktop\dist\*.exe" | Select-Object -ExpandProperty FullName
+ $files += Get-ChildItem "${{ github.workspace }}\packages\desktop\dist\*unpacked\*.exe" | Select-Object -ExpandProperty FullName
+ $files += Get-ChildItem "${{ github.workspace }}\packages\desktop\dist\*unpacked\resources\opencode-cli.exe" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FullName
foreach ($file in $files | Select-Object -Unique) {
$sig = Get-AuthenticodeSignature $file
@@ -391,13 +391,13 @@ jobs:
- uses: actions/upload-artifact@v4
with:
name: opencode-desktop-${{ matrix.settings.target }}
- path: packages/desktop-electron/dist/*
+ path: packages/desktop/dist/*
- uses: actions/upload-artifact@v4
if: needs.version.outputs.release
with:
name: latest-yml-${{ matrix.settings.target }}
- path: packages/desktop-electron/dist/latest*.yml
+ path: packages/desktop/dist/latest*.yml
publish:
needs:
diff --git a/bun.lock b/bun.lock
index 07415dd79f..5067655ae9 100644
--- a/bun.lock
+++ b/bun.lock
@@ -229,41 +229,6 @@
"packages/desktop": {
"name": "@opencode-ai/desktop",
"version": "1.14.35",
- "dependencies": {
- "@opencode-ai/app": "workspace:*",
- "@opencode-ai/ui": "workspace:*",
- "@sentry/solid": "catalog:",
- "@solid-primitives/i18n": "2.2.1",
- "@solid-primitives/storage": "catalog:",
- "@solidjs/meta": "catalog:",
- "@tauri-apps/api": "^2",
- "@tauri-apps/plugin-clipboard-manager": "~2",
- "@tauri-apps/plugin-deep-link": "~2",
- "@tauri-apps/plugin-dialog": "~2",
- "@tauri-apps/plugin-http": "~2",
- "@tauri-apps/plugin-notification": "~2",
- "@tauri-apps/plugin-opener": "^2",
- "@tauri-apps/plugin-os": "~2",
- "@tauri-apps/plugin-process": "~2",
- "@tauri-apps/plugin-shell": "~2",
- "@tauri-apps/plugin-store": "~2",
- "@tauri-apps/plugin-updater": "~2",
- "@tauri-apps/plugin-window-state": "~2",
- "solid-js": "catalog:",
- },
- "devDependencies": {
- "@actions/artifact": "4.0.0",
- "@sentry/vite-plugin": "catalog:",
- "@tauri-apps/cli": "^2",
- "@types/bun": "catalog:",
- "@typescript/native-preview": "catalog:",
- "typescript": "~5.6.2",
- "vite": "catalog:",
- },
- },
- "packages/desktop-electron": {
- "name": "@opencode-ai/desktop-electron",
- "version": "1.14.35",
"dependencies": {
"drizzle-orm": "catalog:",
"effect": "catalog:",
@@ -1570,8 +1535,6 @@
"@opencode-ai/desktop": ["@opencode-ai/desktop@workspace:packages/desktop"],
- "@opencode-ai/desktop-electron": ["@opencode-ai/desktop-electron@workspace:packages/desktop-electron"],
-
"@opencode-ai/enterprise": ["@opencode-ai/enterprise@workspace:packages/enterprise"],
"@opencode-ai/function": ["@opencode-ai/function@workspace:packages/function"],
@@ -2270,54 +2233,8 @@
"@tauri-apps/api": ["@tauri-apps/api@2.10.1", "", {}, "sha512-hKL/jWf293UDSUN09rR69hrToyIXBb8CjGaWC7gfinvnQrBVvnLr08FeFi38gxtugAVyVcTa5/FD/Xnkb1siBw=="],
- "@tauri-apps/cli": ["@tauri-apps/cli@2.10.1", "", { "optionalDependencies": { "@tauri-apps/cli-darwin-arm64": "2.10.1", "@tauri-apps/cli-darwin-x64": "2.10.1", "@tauri-apps/cli-linux-arm-gnueabihf": "2.10.1", "@tauri-apps/cli-linux-arm64-gnu": "2.10.1", "@tauri-apps/cli-linux-arm64-musl": "2.10.1", "@tauri-apps/cli-linux-riscv64-gnu": "2.10.1", "@tauri-apps/cli-linux-x64-gnu": "2.10.1", "@tauri-apps/cli-linux-x64-musl": "2.10.1", "@tauri-apps/cli-win32-arm64-msvc": "2.10.1", "@tauri-apps/cli-win32-ia32-msvc": "2.10.1", "@tauri-apps/cli-win32-x64-msvc": "2.10.1" }, "bin": { "tauri": "tauri.js" } }, "sha512-jQNGF/5quwORdZSSLtTluyKQ+o6SMa/AUICfhf4egCGFdMHqWssApVgYSbg+jmrZoc8e1DscNvjTnXtlHLS11g=="],
-
- "@tauri-apps/cli-darwin-arm64": ["@tauri-apps/cli-darwin-arm64@2.10.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Z2OjCXiZ+fbYZy7PmP3WRnOpM9+Fy+oonKDEmUE6MwN4IGaYqgceTjwHucc/kEEYZos5GICve35f7ZiizgqEnQ=="],
-
- "@tauri-apps/cli-darwin-x64": ["@tauri-apps/cli-darwin-x64@2.10.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-V/irQVvjPMGOTQqNj55PnQPVuH4VJP8vZCN7ajnj+ZS8Kom1tEM2hR3qbbIRoS3dBKs5mbG8yg1WC+97dq17Pw=="],
-
- "@tauri-apps/cli-linux-arm-gnueabihf": ["@tauri-apps/cli-linux-arm-gnueabihf@2.10.1", "", { "os": "linux", "cpu": "arm" }, "sha512-Hyzwsb4VnCWKGfTw+wSt15Z2pLw2f0JdFBfq2vHBOBhvg7oi6uhKiF87hmbXOBXUZaGkyRDkCHsdzJcIfoJC2w=="],
-
- "@tauri-apps/cli-linux-arm64-gnu": ["@tauri-apps/cli-linux-arm64-gnu@2.10.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-OyOYs2t5GkBIvyWjA1+h4CZxTcdz1OZPCWAPz5DYEfB0cnWHERTnQ/SLayQzncrT0kwRoSfSz9KxenkyJoTelA=="],
-
- "@tauri-apps/cli-linux-arm64-musl": ["@tauri-apps/cli-linux-arm64-musl@2.10.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-MIj78PDDGjkg3NqGptDOGgfXks7SYJwhiMh8SBoZS+vfdz7yP5jN18bNaLnDhsVIPARcAhE1TlsZe/8Yxo2zqg=="],
-
- "@tauri-apps/cli-linux-riscv64-gnu": ["@tauri-apps/cli-linux-riscv64-gnu@2.10.1", "", { "os": "linux", "cpu": "none" }, "sha512-X0lvOVUg8PCVaoEtEAnpxmnkwlE1gcMDTqfhbefICKDnOTJ5Est3qL0SrWxizDackIOKBcvtpejrSiVpuJI1kw=="],
-
- "@tauri-apps/cli-linux-x64-gnu": ["@tauri-apps/cli-linux-x64-gnu@2.10.1", "", { "os": "linux", "cpu": "x64" }, "sha512-2/12bEzsJS9fAKybxgicCDFxYD1WEI9kO+tlDwX5znWG2GwMBaiWcmhGlZ8fi+DMe9CXlcVarMTYc0L3REIRxw=="],
-
- "@tauri-apps/cli-linux-x64-musl": ["@tauri-apps/cli-linux-x64-musl@2.10.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Y8J0ZzswPz50UcGOFuXGEMrxbjwKSPgXftx5qnkuMs2rmwQB5ssvLb6tn54wDSYxe7S6vlLob9vt0VKuNOaCIQ=="],
-
- "@tauri-apps/cli-win32-arm64-msvc": ["@tauri-apps/cli-win32-arm64-msvc@2.10.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-iSt5B86jHYAPJa/IlYw++SXtFPGnWtFJriHn7X0NFBVunF6zu9+/zOn8OgqIWSl8RgzhLGXQEEtGBdR4wzpVgg=="],
-
- "@tauri-apps/cli-win32-ia32-msvc": ["@tauri-apps/cli-win32-ia32-msvc@2.10.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-gXyxgEzsFegmnWywYU5pEBURkcFN/Oo45EAwvZrHMh+zUSEAvO5E8TXsgPADYm31d1u7OQU3O3HsYfVBf2moHw=="],
-
- "@tauri-apps/cli-win32-x64-msvc": ["@tauri-apps/cli-win32-x64-msvc@2.10.1", "", { "os": "win32", "cpu": "x64" }, "sha512-6Cn7YpPFwzChy0ERz6djKEmUehWrYlM+xTaNzGPgZocw3BD7OfwfWHKVWxXzdjEW2KfKkHddfdxK1XXTYqBRLg=="],
-
- "@tauri-apps/plugin-clipboard-manager": ["@tauri-apps/plugin-clipboard-manager@2.3.2", "", { "dependencies": { "@tauri-apps/api": "^2.8.0" } }, "sha512-CUlb5Hqi2oZbcZf4VUyUH53XWPPdtpw43EUpCza5HWZJwxEoDowFzNUDt1tRUXA8Uq+XPn17Ysfptip33sG4eQ=="],
-
- "@tauri-apps/plugin-deep-link": ["@tauri-apps/plugin-deep-link@2.4.8", "", { "dependencies": { "@tauri-apps/api": "^2.10.1" } }, "sha512-Cd2Cs960MGuGONeIwxOPx9wqwedetAHOGlwK5boJ/SMTfAtAyfErpfVPEn+EJzgXsJun8EKzsEumHjr+64V4fw=="],
-
- "@tauri-apps/plugin-dialog": ["@tauri-apps/plugin-dialog@2.7.0", "", { "dependencies": { "@tauri-apps/api": "^2.10.1" } }, "sha512-4nS/hfGMGCXiAS3LtVjH9AgsSAPJeG/7R+q8agTFqytjnMa4Zq95Bq8WzVDkckpanX+yyRHXnRtrKXkANKDHvw=="],
-
- "@tauri-apps/plugin-http": ["@tauri-apps/plugin-http@2.5.8", "", { "dependencies": { "@tauri-apps/api": "^2.10.1" } }, "sha512-oxd7oypzQeu8kAfFCrw534Kq7Cw+NzozcnCY21O4rz3A+veJiIiuSCMIprgGcZOcLAXFP9GmDhKUbhuKWcunRw=="],
-
- "@tauri-apps/plugin-notification": ["@tauri-apps/plugin-notification@2.3.3", "", { "dependencies": { "@tauri-apps/api": "^2.8.0" } }, "sha512-Zw+ZH18RJb41G4NrfHgIuofJiymusqN+q8fGUIIV7vyCH+5sSn5coqRv/MWB9qETsUs97vmU045q7OyseCV3Qg=="],
-
- "@tauri-apps/plugin-opener": ["@tauri-apps/plugin-opener@2.5.3", "", { "dependencies": { "@tauri-apps/api": "^2.8.0" } }, "sha512-CCcUltXMOfUEArbf3db3kCE7Ggy1ExBEBl51Ko2ODJ6GDYHRp1nSNlQm5uNCFY5k7/ufaK5Ib3Du/Zir19IYQQ=="],
-
- "@tauri-apps/plugin-os": ["@tauri-apps/plugin-os@2.3.2", "", { "dependencies": { "@tauri-apps/api": "^2.8.0" } }, "sha512-n+nXWeuSeF9wcEsSPmRnBEGrRgOy6jjkSU+UVCOV8YUGKb2erhDOxis7IqRXiRVHhY8XMKks00BJ0OAdkpf6+A=="],
-
- "@tauri-apps/plugin-process": ["@tauri-apps/plugin-process@2.3.1", "", { "dependencies": { "@tauri-apps/api": "^2.8.0" } }, "sha512-nCa4fGVaDL/B9ai03VyPOjfAHRHSBz5v6F/ObsB73r/dA3MHHhZtldaDMIc0V/pnUw9ehzr2iEG+XkSEyC0JJA=="],
-
- "@tauri-apps/plugin-shell": ["@tauri-apps/plugin-shell@2.3.5", "", { "dependencies": { "@tauri-apps/api": "^2.10.1" } }, "sha512-jewtULhiQ7lI7+owCKAjc8tYLJr92U16bPOeAa472LHJdgaibLP83NcfAF2e+wkEcA53FxKQAZ7byDzs2eeizg=="],
-
"@tauri-apps/plugin-store": ["@tauri-apps/plugin-store@2.4.2", "", { "dependencies": { "@tauri-apps/api": "^2.8.0" } }, "sha512-0ClHS50Oq9HEvLPhNzTNFxbWVOqoAp3dRvtewQBeqfIQ0z5m3JRnOISIn2ZVPCrQC0MyGyhTS9DWhHjpigQE7A=="],
- "@tauri-apps/plugin-updater": ["@tauri-apps/plugin-updater@2.10.1", "", { "dependencies": { "@tauri-apps/api": "^2.10.1" } }, "sha512-NFYMg+tWOZPJdzE/PpFj2qfqwAWwNS3kXrb1tm1gnBJ9mYzZ4WDRrwy8udzWoAnfGCHLuePNLY1WVCNHnh3eRA=="],
-
- "@tauri-apps/plugin-window-state": ["@tauri-apps/plugin-window-state@2.4.1", "", { "dependencies": { "@tauri-apps/api": "^2.8.0" } }, "sha512-OuvdrzyY8Q5Dbzpj+GcrnV1iCeoZbcFdzMjanZMMcAEUNy/6PH5pxZPXpaZLOR7whlzXiuzx0L9EKZbH7zpdRw=="],
-
"@tediousjs/connection-string": ["@tediousjs/connection-string@0.5.0", "", {}, "sha512-7qSgZbincDDDFyRweCIEvZULFAw5iz/DeunhvuxpL31nfntX3P4Yd4HkHBRg9H8CdqY1e5WFN1PZIz/REL9MVQ=="],
"@testing-library/dom": ["@testing-library/dom@10.4.1", "", { "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", "aria-query": "5.3.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "picocolors": "1.1.1", "pretty-format": "^27.0.2" } }, "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg=="],
@@ -5628,14 +5545,10 @@
"@opencode-ai/desktop/@actions/artifact": ["@actions/artifact@4.0.0", "", { "dependencies": { "@actions/core": "^1.10.0", "@actions/github": "^6.0.1", "@actions/http-client": "^2.1.0", "@azure/core-http": "^3.0.5", "@azure/storage-blob": "^12.15.0", "@octokit/core": "^5.2.1", "@octokit/plugin-request-log": "^1.0.4", "@octokit/plugin-retry": "^3.0.9", "@octokit/request": "^8.4.1", "@octokit/request-error": "^5.1.1", "@protobuf-ts/plugin": "^2.2.3-alpha.1", "archiver": "^7.0.1", "jwt-decode": "^3.1.2", "unzip-stream": "^0.3.1" } }, "sha512-HCc2jMJRAfviGFAh0FsOR/jNfWhirxl7W6z8zDtttt0GltwxBLdEIjLiweOPFl9WbyJRW1VWnPUSAixJqcWUMQ=="],
+ "@opencode-ai/desktop/marked": ["marked@15.0.12", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA=="],
+
"@opencode-ai/desktop/typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="],
- "@opencode-ai/desktop-electron/@actions/artifact": ["@actions/artifact@4.0.0", "", { "dependencies": { "@actions/core": "^1.10.0", "@actions/github": "^6.0.1", "@actions/http-client": "^2.1.0", "@azure/core-http": "^3.0.5", "@azure/storage-blob": "^12.15.0", "@octokit/core": "^5.2.1", "@octokit/plugin-request-log": "^1.0.4", "@octokit/plugin-retry": "^3.0.9", "@octokit/request": "^8.4.1", "@octokit/request-error": "^5.1.1", "@protobuf-ts/plugin": "^2.2.3-alpha.1", "archiver": "^7.0.1", "jwt-decode": "^3.1.2", "unzip-stream": "^0.3.1" } }, "sha512-HCc2jMJRAfviGFAh0FsOR/jNfWhirxl7W6z8zDtttt0GltwxBLdEIjLiweOPFl9WbyJRW1VWnPUSAixJqcWUMQ=="],
-
- "@opencode-ai/desktop-electron/marked": ["marked@15.0.12", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA=="],
-
- "@opencode-ai/desktop-electron/typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="],
-
"@opencode-ai/ui/@solid-primitives/resize-observer": ["@solid-primitives/resize-observer@2.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/rootless": "^1.5.2", "@solid-primitives/static-store": "^0.1.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-zBLje5E06TgOg93S7rGPldmhDnouNGhvfZVKOp+oG2XU8snA+GoCSSCz1M+jpNAg5Ek2EakU5UVQqL152WmdXQ=="],
"@opencode-ai/web/@shikijs/transformers": ["@shikijs/transformers@3.20.0", "", { "dependencies": { "@shikijs/core": "3.20.0", "@shikijs/types": "3.20.0" } }, "sha512-PrHHMRr3Q5W1qB/42kJW6laqFyWdhrPF2hNR9qjOm1xcSiAO3hAHo7HaVyHE6pMyevmy3i51O8kuGGXC78uK3g=="],
@@ -6618,8 +6531,6 @@
"@octokit/rest/@octokit/core/before-after-hook": ["before-after-hook@4.0.0", "", {}, "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="],
- "@opencode-ai/desktop-electron/@actions/artifact/@actions/http-client": ["@actions/http-client@2.2.3", "", { "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" } }, "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA=="],
-
"@opencode-ai/desktop/@actions/artifact/@actions/http-client": ["@actions/http-client@2.2.3", "", { "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" } }, "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA=="],
"@opencode-ai/web/@shikijs/transformers/@shikijs/core": ["@shikijs/core@3.20.0", "", { "dependencies": { "@shikijs/types": "3.20.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-f2ED7HYV4JEk827mtMDwe/yQ25pRiXZmtHjWF8uzZKuKiEsJR7Ce1nuQ+HhV9FzDcbIo4ObBCD9GPTzNuy9S1g=="],
@@ -7068,8 +6979,6 @@
"@octokit/rest/@octokit/core/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@27.0.0", "", {}, "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA=="],
- "@opencode-ai/desktop-electron/@actions/artifact/@actions/http-client/undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="],
-
"@opencode-ai/desktop/@actions/artifact/@actions/http-client/undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="],
"@sentry/bundler-plugin-core/glob/minimatch/brace-expansion": ["brace-expansion@2.1.0", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w=="],
diff --git a/package.json b/package.json
index de3dd31f40..335a8b3b1d 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"packageManager": "bun@1.3.13",
"scripts": {
"dev": "bun run --cwd packages/opencode --conditions=browser src/index.ts",
- "dev:desktop": "bun --cwd packages/desktop-electron dev",
+ "dev:desktop": "bun --cwd packages/desktop dev",
"dev:web": "bun --cwd packages/app dev",
"dev:console": "ulimit -n 10240 2>/dev/null; bun run --cwd packages/console/app dev",
"dev:storybook": "bun --cwd packages/storybook storybook",
diff --git a/packages/desktop-electron/.gitignore b/packages/desktop-electron/.gitignore
deleted file mode 100644
index ac9d8db969..0000000000
--- a/packages/desktop-electron/.gitignore
+++ /dev/null
@@ -1,28 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-dist
-dist-ssr
-*.local
-
-# Editor directories and files
-.vscode/*
-!.vscode/extensions.json
-.idea
-.DS_Store
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
-out/
-
-resources/opencode-cli*
-resources/icons
diff --git a/packages/desktop-electron/AGENTS.md b/packages/desktop-electron/AGENTS.md
deleted file mode 100644
index 7805ea835f..0000000000
--- a/packages/desktop-electron/AGENTS.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Desktop package notes
-
-- Renderer process should only call `window.api` from `src/preload`.
-- Main process should register IPC handlers in `src/main/ipc.ts`.
diff --git a/packages/desktop-electron/README.md b/packages/desktop-electron/README.md
deleted file mode 100644
index ebaf488223..0000000000
--- a/packages/desktop-electron/README.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# OpenCode Desktop
-
-Native OpenCode desktop app, built with Tauri v2.
-
-## Development
-
-From the repo root:
-
-```bash
-bun install
-bun run --cwd packages/desktop tauri dev
-```
-
-This starts the Vite dev server on http://localhost:1420 and opens the native window.
-
-If you only want the web dev server (no native shell):
-
-```bash
-bun run --cwd packages/desktop dev
-```
-
-## Build
-
-To create a production `dist/` and build the native app bundle:
-
-```bash
-bun run --cwd packages/desktop tauri build
-```
-
-## Prerequisites
-
-Running the desktop app requires additional Tauri dependencies (Rust toolchain, platform-specific libraries). See the [Tauri prerequisites](https://v2.tauri.app/start/prerequisites/) for setup instructions.
diff --git a/packages/desktop-electron/package.json b/packages/desktop-electron/package.json
deleted file mode 100644
index ba981e637a..0000000000
--- a/packages/desktop-electron/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "@opencode-ai/desktop-electron",
- "private": true,
- "version": "1.14.35",
- "type": "module",
- "license": "MIT",
- "homepage": "https://opencode.ai",
- "author": {
- "name": "OpenCode",
- "email": "hello@opencode.ai"
- },
- "scripts": {
- "typecheck": "tsgo -b",
- "predev": "bun ./scripts/predev.ts",
- "dev": "electron-vite dev",
- "prebuild": "bun ./scripts/prebuild.ts",
- "build": "electron-vite build",
- "preview": "electron-vite preview",
- "package": "electron-builder --config electron-builder.config.ts",
- "package:mac": "electron-builder --mac --config electron-builder.config.ts",
- "package:win": "electron-builder --win --config electron-builder.config.ts",
- "package:linux": "electron-builder --linux --config electron-builder.config.ts",
- "native:build": "bun install --cwd native"
- },
- "main": "./out/main/index.js",
- "dependencies": {
- "effect": "catalog:",
- "electron-context-menu": "4.1.2",
- "electron-log": "^5",
- "electron-store": "^10",
- "electron-updater": "^6",
- "electron-window-state": "^5.0.3",
- "drizzle-orm": "catalog:",
- "marked": "^15"
- },
- "devDependencies": {
- "@actions/artifact": "4.0.0",
- "@lydell/node-pty": "catalog:",
- "@opencode-ai/app": "workspace:*",
- "@opencode-ai/ui": "workspace:*",
- "@sentry/solid": "catalog:",
- "@sentry/vite-plugin": "catalog:",
- "@solid-primitives/i18n": "2.2.1",
- "@solid-primitives/storage": "catalog:",
- "@solidjs/meta": "catalog:",
- "@solidjs/router": "0.15.4",
- "@types/bun": "catalog:",
- "@types/node": "catalog:",
- "@typescript/native-preview": "catalog:",
- "@valibot/to-json-schema": "1.6.0",
- "electron": "41.2.1",
- "electron-builder": "^26",
- "electron-vite": "^5",
- "solid-js": "catalog:",
- "sury": "11.0.0-alpha.4",
- "typescript": "~5.6.2",
- "vite": "catalog:",
- "zod-openapi": "5.4.6"
- },
- "optionalDependencies": {
- "@lydell/node-pty-darwin-arm64": "1.2.0-beta.10",
- "@lydell/node-pty-darwin-x64": "1.2.0-beta.10",
- "@lydell/node-pty-linux-arm64": "1.2.0-beta.10",
- "@lydell/node-pty-linux-x64": "1.2.0-beta.10",
- "@lydell/node-pty-win32-arm64": "1.2.0-beta.10",
- "@lydell/node-pty-win32-x64": "1.2.0-beta.10"
- }
-}
diff --git a/packages/desktop-electron/scripts/copy-bundles.ts b/packages/desktop-electron/scripts/copy-bundles.ts
deleted file mode 100644
index 6ef3335eb7..0000000000
--- a/packages/desktop-electron/scripts/copy-bundles.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { $ } from "bun"
-import * as path from "node:path"
-
-import { RUST_TARGET } from "./utils"
-
-if (!RUST_TARGET) throw new Error("RUST_TARGET not defined")
-
-const BUNDLE_DIR = "dist"
-const BUNDLES_OUT_DIR = path.join(process.cwd(), "dist/bundles")
-
-await $`mkdir -p ${BUNDLES_OUT_DIR}`
-await $`cp -r ${BUNDLE_DIR}/* ${BUNDLES_OUT_DIR}`
diff --git a/packages/desktop-electron/scripts/predev.ts b/packages/desktop-electron/scripts/predev.ts
deleted file mode 100644
index 37c31d7eed..0000000000
--- a/packages/desktop-electron/scripts/predev.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { $ } from "bun"
-
-await $`bun ./scripts/copy-icons.ts ${process.env.OPENCODE_CHANNEL ?? "dev"}`
-
-await $`cd ../opencode && bun script/build-node.ts`
diff --git a/packages/desktop-electron/scripts/prepare.ts b/packages/desktop-electron/scripts/prepare.ts
deleted file mode 100755
index 0dfd5a35cb..0000000000
--- a/packages/desktop-electron/scripts/prepare.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env bun
-import { Script } from "@opencode-ai/script"
-
-await import("./prebuild")
-
-const pkg = await Bun.file("./package.json").json()
-pkg.version = Script.version
-await Bun.write("./package.json", JSON.stringify(pkg, null, 2) + "\n")
-console.log(`Updated package.json version to ${Script.version}`)
diff --git a/packages/desktop-electron/scripts/utils.ts b/packages/desktop-electron/scripts/utils.ts
deleted file mode 100644
index 19b96b0a16..0000000000
--- a/packages/desktop-electron/scripts/utils.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import { $ } from "bun"
-
-export type Channel = "dev" | "beta" | "prod"
-
-export function resolveChannel(): Channel {
- const raw = Bun.env.OPENCODE_CHANNEL
- if (raw === "dev" || raw === "beta" || raw === "prod") return raw
- return "dev"
-}
-
-export const SIDECAR_BINARIES: Array<{ rustTarget: string; ocBinary: string; assetExt: string }> = [
- {
- rustTarget: "aarch64-apple-darwin",
- ocBinary: "opencode-darwin-arm64",
- assetExt: "zip",
- },
- {
- rustTarget: "x86_64-apple-darwin",
- ocBinary: "opencode-darwin-x64-baseline",
- assetExt: "zip",
- },
- {
- rustTarget: "aarch64-pc-windows-msvc",
- ocBinary: "opencode-windows-arm64",
- assetExt: "zip",
- },
- {
- rustTarget: "x86_64-pc-windows-msvc",
- ocBinary: "opencode-windows-x64-baseline",
- assetExt: "zip",
- },
- {
- rustTarget: "x86_64-unknown-linux-gnu",
- ocBinary: "opencode-linux-x64-baseline",
- assetExt: "tar.gz",
- },
- {
- rustTarget: "aarch64-unknown-linux-gnu",
- ocBinary: "opencode-linux-arm64",
- assetExt: "tar.gz",
- },
-]
-
-export const RUST_TARGET = Bun.env.RUST_TARGET
-
-function nativeTarget() {
- const { platform, arch } = process
- if (platform === "darwin") return arch === "arm64" ? "aarch64-apple-darwin" : "x86_64-apple-darwin"
- if (platform === "win32") return arch === "arm64" ? "aarch64-pc-windows-msvc" : "x86_64-pc-windows-msvc"
- if (platform === "linux") return arch === "arm64" ? "aarch64-unknown-linux-gnu" : "x86_64-unknown-linux-gnu"
- throw new Error(`Unsupported platform: ${platform}/${arch}`)
-}
-
-export function getCurrentSidecar(target = RUST_TARGET ?? nativeTarget()) {
- const binaryConfig = SIDECAR_BINARIES.find((b) => b.rustTarget === target)
- if (!binaryConfig) throw new Error(`Sidecar configuration not available for Rust target '${target}'`)
-
- return binaryConfig
-}
-
-export async function copyBinaryToSidecarFolder(source: string) {
- const dir = `resources`
- await $`mkdir -p ${dir}`
- const dest = windowsify(`${dir}/opencode-cli`)
- await $`cp ${source} ${dest}`
- if (process.platform === "win32" && process.env.GITHUB_ACTIONS === "true") {
- await $`pwsh -NoLogo -NoProfile -ExecutionPolicy Bypass -File ../../script/sign-windows.ps1 ${dest}`
- }
- if (process.platform === "darwin") await $`codesign --force --sign - ${dest}`
-
- console.log(`Copied ${source} to ${dest}`)
-}
-
-export function windowsify(path: string) {
- if (path.endsWith(".exe")) return path
- return `${path}${process.platform === "win32" ? ".exe" : ""}`
-}
diff --git a/packages/desktop-electron/sst-env.d.ts b/packages/desktop-electron/sst-env.d.ts
deleted file mode 100644
index 64441936d7..0000000000
--- a/packages/desktop-electron/sst-env.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/* This file is auto-generated by SST. Do not edit. */
-/* tslint:disable */
-/* eslint-disable */
-/* deno-fmt-ignore-file */
-/* biome-ignore-all lint: auto-generated */
-
-///
-
-import "sst"
-export {}
\ No newline at end of file
diff --git a/packages/desktop-electron/tsconfig.json b/packages/desktop-electron/tsconfig.json
deleted file mode 100644
index 9637fe03dd..0000000000
--- a/packages/desktop-electron/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compilerOptions": {
- "target": "ESNext",
- "module": "ESNext",
- "skipLibCheck": true,
- "moduleResolution": "bundler",
- "allowSyntheticDefaultImports": true,
- "esModuleInterop": true,
- "jsx": "preserve",
- "jsxImportSource": "solid-js",
- "allowJs": true,
- "resolveJsonModule": true,
- "strict": true,
- "isolatedModules": true,
- "noEmit": true,
- "emitDeclarationOnly": false,
- "outDir": "node_modules/.ts-dist",
- "types": ["vite/client", "node", "electron"]
- },
- "references": [{ "path": "../app" }],
- "include": ["src", "package.json"],
- "exclude": ["src/**/*.test.ts"]
-}
diff --git a/packages/desktop/.gitignore b/packages/desktop/.gitignore
index a547bf36d8..ac9d8db969 100644
--- a/packages/desktop/.gitignore
+++ b/packages/desktop/.gitignore
@@ -22,3 +22,7 @@ dist-ssr
*.njsproj
*.sln
*.sw?
+out/
+
+resources/opencode-cli*
+resources/icons
diff --git a/packages/desktop/AGENTS.md b/packages/desktop/AGENTS.md
index 3839db1a90..7805ea835f 100644
--- a/packages/desktop/AGENTS.md
+++ b/packages/desktop/AGENTS.md
@@ -1,4 +1,4 @@
# Desktop package notes
-- Never call `invoke` manually in this package.
-- Use the generated bindings in `packages/desktop/src/bindings.ts` for core commands/events.
+- Renderer process should only call `window.api` from `src/preload`.
+- Main process should register IPC handlers in `src/main/ipc.ts`.
diff --git a/packages/desktop/README.md b/packages/desktop/README.md
index 358b7d24d5..ebaf488223 100644
--- a/packages/desktop/README.md
+++ b/packages/desktop/README.md
@@ -2,10 +2,6 @@
Native OpenCode desktop app, built with Tauri v2.
-## Prerequisites
-
-Building the desktop app requires additional Tauri dependencies (Rust toolchain, platform-specific libraries). See the [Tauri prerequisites](https://v2.tauri.app/start/prerequisites/) for setup instructions.
-
## Development
From the repo root:
@@ -15,18 +11,22 @@ bun install
bun run --cwd packages/desktop tauri dev
```
+This starts the Vite dev server on http://localhost:1420 and opens the native window.
+
+If you only want the web dev server (no native shell):
+
+```bash
+bun run --cwd packages/desktop dev
+```
+
## Build
+To create a production `dist/` and build the native app bundle:
+
```bash
bun run --cwd packages/desktop tauri build
```
-## Troubleshooting
+## Prerequisites
-### Rust compiler not found
-
-If you see errors about Rust not being found, install it via [rustup](https://rustup.rs/):
-
-```bash
-curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-```
+Running the desktop app requires additional Tauri dependencies (Rust toolchain, platform-specific libraries). See the [Tauri prerequisites](https://v2.tauri.app/start/prerequisites/) for setup instructions.
diff --git a/packages/desktop-electron/electron-builder.config.ts b/packages/desktop/electron-builder.config.ts
similarity index 100%
rename from packages/desktop-electron/electron-builder.config.ts
rename to packages/desktop/electron-builder.config.ts
diff --git a/packages/desktop-electron/electron.vite.config.ts b/packages/desktop/electron.vite.config.ts
similarity index 100%
rename from packages/desktop-electron/electron.vite.config.ts
rename to packages/desktop/electron.vite.config.ts
diff --git a/packages/desktop-electron/icons/README.md b/packages/desktop/icons/README.md
similarity index 100%
rename from packages/desktop-electron/icons/README.md
rename to packages/desktop/icons/README.md
diff --git a/packages/desktop-electron/icons/beta/128x128.png b/packages/desktop/icons/beta/128x128.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/128x128.png
rename to packages/desktop/icons/beta/128x128.png
diff --git a/packages/desktop-electron/icons/beta/128x128@2x.png b/packages/desktop/icons/beta/128x128@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/128x128@2x.png
rename to packages/desktop/icons/beta/128x128@2x.png
diff --git a/packages/desktop-electron/icons/beta/32x32.png b/packages/desktop/icons/beta/32x32.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/32x32.png
rename to packages/desktop/icons/beta/32x32.png
diff --git a/packages/desktop-electron/icons/beta/64x64.png b/packages/desktop/icons/beta/64x64.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/64x64.png
rename to packages/desktop/icons/beta/64x64.png
diff --git a/packages/desktop-electron/icons/beta/Square107x107Logo.png b/packages/desktop/icons/beta/Square107x107Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square107x107Logo.png
rename to packages/desktop/icons/beta/Square107x107Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square142x142Logo.png b/packages/desktop/icons/beta/Square142x142Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square142x142Logo.png
rename to packages/desktop/icons/beta/Square142x142Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square150x150Logo.png b/packages/desktop/icons/beta/Square150x150Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square150x150Logo.png
rename to packages/desktop/icons/beta/Square150x150Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square284x284Logo.png b/packages/desktop/icons/beta/Square284x284Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square284x284Logo.png
rename to packages/desktop/icons/beta/Square284x284Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square30x30Logo.png b/packages/desktop/icons/beta/Square30x30Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square30x30Logo.png
rename to packages/desktop/icons/beta/Square30x30Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square310x310Logo.png b/packages/desktop/icons/beta/Square310x310Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square310x310Logo.png
rename to packages/desktop/icons/beta/Square310x310Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square44x44Logo.png b/packages/desktop/icons/beta/Square44x44Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square44x44Logo.png
rename to packages/desktop/icons/beta/Square44x44Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square71x71Logo.png b/packages/desktop/icons/beta/Square71x71Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square71x71Logo.png
rename to packages/desktop/icons/beta/Square71x71Logo.png
diff --git a/packages/desktop-electron/icons/beta/Square89x89Logo.png b/packages/desktop/icons/beta/Square89x89Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/Square89x89Logo.png
rename to packages/desktop/icons/beta/Square89x89Logo.png
diff --git a/packages/desktop-electron/icons/beta/StoreLogo.png b/packages/desktop/icons/beta/StoreLogo.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/StoreLogo.png
rename to packages/desktop/icons/beta/StoreLogo.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-anydpi-v26/ic_launcher.xml b/packages/desktop/icons/beta/android/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-anydpi-v26/ic_launcher.xml
rename to packages/desktop/icons/beta/android/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-hdpi/ic_launcher.png b/packages/desktop/icons/beta/android/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-hdpi/ic_launcher.png
rename to packages/desktop/icons/beta/android/mipmap-hdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-hdpi/ic_launcher_foreground.png b/packages/desktop/icons/beta/android/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-hdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/beta/android/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-hdpi/ic_launcher_round.png b/packages/desktop/icons/beta/android/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-hdpi/ic_launcher_round.png
rename to packages/desktop/icons/beta/android/mipmap-hdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-mdpi/ic_launcher.png b/packages/desktop/icons/beta/android/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-mdpi/ic_launcher.png
rename to packages/desktop/icons/beta/android/mipmap-mdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-mdpi/ic_launcher_foreground.png b/packages/desktop/icons/beta/android/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-mdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/beta/android/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-mdpi/ic_launcher_round.png b/packages/desktop/icons/beta/android/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-mdpi/ic_launcher_round.png
rename to packages/desktop/icons/beta/android/mipmap-mdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xhdpi/ic_launcher.png b/packages/desktop/icons/beta/android/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xhdpi/ic_launcher.png
rename to packages/desktop/icons/beta/android/mipmap-xhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xhdpi/ic_launcher_foreground.png b/packages/desktop/icons/beta/android/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/beta/android/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xhdpi/ic_launcher_round.png b/packages/desktop/icons/beta/android/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xhdpi/ic_launcher_round.png
rename to packages/desktop/icons/beta/android/mipmap-xhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xxhdpi/ic_launcher.png b/packages/desktop/icons/beta/android/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xxhdpi/ic_launcher.png
rename to packages/desktop/icons/beta/android/mipmap-xxhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xxhdpi/ic_launcher_foreground.png b/packages/desktop/icons/beta/android/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xxhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/beta/android/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xxhdpi/ic_launcher_round.png b/packages/desktop/icons/beta/android/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xxhdpi/ic_launcher_round.png
rename to packages/desktop/icons/beta/android/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xxxhdpi/ic_launcher.png b/packages/desktop/icons/beta/android/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xxxhdpi/ic_launcher.png
rename to packages/desktop/icons/beta/android/mipmap-xxxhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/packages/desktop/icons/beta/android/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/beta/android/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/beta/android/mipmap-xxxhdpi/ic_launcher_round.png b/packages/desktop/icons/beta/android/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/mipmap-xxxhdpi/ic_launcher_round.png
rename to packages/desktop/icons/beta/android/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/beta/android/values/ic_launcher_background.xml b/packages/desktop/icons/beta/android/values/ic_launcher_background.xml
similarity index 100%
rename from packages/desktop-electron/icons/beta/android/values/ic_launcher_background.xml
rename to packages/desktop/icons/beta/android/values/ic_launcher_background.xml
diff --git a/packages/desktop-electron/icons/beta/dock.png b/packages/desktop/icons/beta/dock.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/dock.png
rename to packages/desktop/icons/beta/dock.png
diff --git a/packages/desktop-electron/icons/beta/icon.icns b/packages/desktop/icons/beta/icon.icns
similarity index 100%
rename from packages/desktop-electron/icons/beta/icon.icns
rename to packages/desktop/icons/beta/icon.icns
diff --git a/packages/desktop-electron/icons/beta/icon.ico b/packages/desktop/icons/beta/icon.ico
similarity index 100%
rename from packages/desktop-electron/icons/beta/icon.ico
rename to packages/desktop/icons/beta/icon.ico
diff --git a/packages/desktop-electron/icons/beta/icon.png b/packages/desktop/icons/beta/icon.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/icon.png
rename to packages/desktop/icons/beta/icon.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-20x20@1x.png b/packages/desktop/icons/beta/ios/AppIcon-20x20@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-20x20@1x.png
rename to packages/desktop/icons/beta/ios/AppIcon-20x20@1x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-20x20@2x-1.png b/packages/desktop/icons/beta/ios/AppIcon-20x20@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-20x20@2x-1.png
rename to packages/desktop/icons/beta/ios/AppIcon-20x20@2x-1.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-20x20@2x.png b/packages/desktop/icons/beta/ios/AppIcon-20x20@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-20x20@2x.png
rename to packages/desktop/icons/beta/ios/AppIcon-20x20@2x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-20x20@3x.png b/packages/desktop/icons/beta/ios/AppIcon-20x20@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-20x20@3x.png
rename to packages/desktop/icons/beta/ios/AppIcon-20x20@3x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-29x29@1x.png b/packages/desktop/icons/beta/ios/AppIcon-29x29@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-29x29@1x.png
rename to packages/desktop/icons/beta/ios/AppIcon-29x29@1x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-29x29@2x-1.png b/packages/desktop/icons/beta/ios/AppIcon-29x29@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-29x29@2x-1.png
rename to packages/desktop/icons/beta/ios/AppIcon-29x29@2x-1.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-29x29@2x.png b/packages/desktop/icons/beta/ios/AppIcon-29x29@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-29x29@2x.png
rename to packages/desktop/icons/beta/ios/AppIcon-29x29@2x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-29x29@3x.png b/packages/desktop/icons/beta/ios/AppIcon-29x29@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-29x29@3x.png
rename to packages/desktop/icons/beta/ios/AppIcon-29x29@3x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-40x40@1x.png b/packages/desktop/icons/beta/ios/AppIcon-40x40@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-40x40@1x.png
rename to packages/desktop/icons/beta/ios/AppIcon-40x40@1x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-40x40@2x-1.png b/packages/desktop/icons/beta/ios/AppIcon-40x40@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-40x40@2x-1.png
rename to packages/desktop/icons/beta/ios/AppIcon-40x40@2x-1.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-40x40@2x.png b/packages/desktop/icons/beta/ios/AppIcon-40x40@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-40x40@2x.png
rename to packages/desktop/icons/beta/ios/AppIcon-40x40@2x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-40x40@3x.png b/packages/desktop/icons/beta/ios/AppIcon-40x40@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-40x40@3x.png
rename to packages/desktop/icons/beta/ios/AppIcon-40x40@3x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-512@2x.png b/packages/desktop/icons/beta/ios/AppIcon-512@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-512@2x.png
rename to packages/desktop/icons/beta/ios/AppIcon-512@2x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-60x60@2x.png b/packages/desktop/icons/beta/ios/AppIcon-60x60@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-60x60@2x.png
rename to packages/desktop/icons/beta/ios/AppIcon-60x60@2x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-60x60@3x.png b/packages/desktop/icons/beta/ios/AppIcon-60x60@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-60x60@3x.png
rename to packages/desktop/icons/beta/ios/AppIcon-60x60@3x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-76x76@1x.png b/packages/desktop/icons/beta/ios/AppIcon-76x76@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-76x76@1x.png
rename to packages/desktop/icons/beta/ios/AppIcon-76x76@1x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-76x76@2x.png b/packages/desktop/icons/beta/ios/AppIcon-76x76@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-76x76@2x.png
rename to packages/desktop/icons/beta/ios/AppIcon-76x76@2x.png
diff --git a/packages/desktop-electron/icons/beta/ios/AppIcon-83.5x83.5@2x.png b/packages/desktop/icons/beta/ios/AppIcon-83.5x83.5@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/beta/ios/AppIcon-83.5x83.5@2x.png
rename to packages/desktop/icons/beta/ios/AppIcon-83.5x83.5@2x.png
diff --git a/packages/desktop-electron/icons/dev/128x128.png b/packages/desktop/icons/dev/128x128.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/128x128.png
rename to packages/desktop/icons/dev/128x128.png
diff --git a/packages/desktop-electron/icons/dev/128x128@2x.png b/packages/desktop/icons/dev/128x128@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/128x128@2x.png
rename to packages/desktop/icons/dev/128x128@2x.png
diff --git a/packages/desktop-electron/icons/dev/32x32.png b/packages/desktop/icons/dev/32x32.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/32x32.png
rename to packages/desktop/icons/dev/32x32.png
diff --git a/packages/desktop-electron/icons/dev/64x64.png b/packages/desktop/icons/dev/64x64.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/64x64.png
rename to packages/desktop/icons/dev/64x64.png
diff --git a/packages/desktop-electron/icons/dev/Square107x107Logo.png b/packages/desktop/icons/dev/Square107x107Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square107x107Logo.png
rename to packages/desktop/icons/dev/Square107x107Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square142x142Logo.png b/packages/desktop/icons/dev/Square142x142Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square142x142Logo.png
rename to packages/desktop/icons/dev/Square142x142Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square150x150Logo.png b/packages/desktop/icons/dev/Square150x150Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square150x150Logo.png
rename to packages/desktop/icons/dev/Square150x150Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square284x284Logo.png b/packages/desktop/icons/dev/Square284x284Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square284x284Logo.png
rename to packages/desktop/icons/dev/Square284x284Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square30x30Logo.png b/packages/desktop/icons/dev/Square30x30Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square30x30Logo.png
rename to packages/desktop/icons/dev/Square30x30Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square310x310Logo.png b/packages/desktop/icons/dev/Square310x310Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square310x310Logo.png
rename to packages/desktop/icons/dev/Square310x310Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square44x44Logo.png b/packages/desktop/icons/dev/Square44x44Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square44x44Logo.png
rename to packages/desktop/icons/dev/Square44x44Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square71x71Logo.png b/packages/desktop/icons/dev/Square71x71Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square71x71Logo.png
rename to packages/desktop/icons/dev/Square71x71Logo.png
diff --git a/packages/desktop-electron/icons/dev/Square89x89Logo.png b/packages/desktop/icons/dev/Square89x89Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/Square89x89Logo.png
rename to packages/desktop/icons/dev/Square89x89Logo.png
diff --git a/packages/desktop-electron/icons/dev/StoreLogo.png b/packages/desktop/icons/dev/StoreLogo.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/StoreLogo.png
rename to packages/desktop/icons/dev/StoreLogo.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-anydpi-v26/ic_launcher.xml b/packages/desktop/icons/dev/android/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-anydpi-v26/ic_launcher.xml
rename to packages/desktop/icons/dev/android/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-hdpi/ic_launcher.png b/packages/desktop/icons/dev/android/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-hdpi/ic_launcher.png
rename to packages/desktop/icons/dev/android/mipmap-hdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-hdpi/ic_launcher_foreground.png b/packages/desktop/icons/dev/android/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-hdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/dev/android/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-hdpi/ic_launcher_round.png b/packages/desktop/icons/dev/android/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-hdpi/ic_launcher_round.png
rename to packages/desktop/icons/dev/android/mipmap-hdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-mdpi/ic_launcher.png b/packages/desktop/icons/dev/android/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-mdpi/ic_launcher.png
rename to packages/desktop/icons/dev/android/mipmap-mdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-mdpi/ic_launcher_foreground.png b/packages/desktop/icons/dev/android/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-mdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/dev/android/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-mdpi/ic_launcher_round.png b/packages/desktop/icons/dev/android/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-mdpi/ic_launcher_round.png
rename to packages/desktop/icons/dev/android/mipmap-mdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xhdpi/ic_launcher.png b/packages/desktop/icons/dev/android/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xhdpi/ic_launcher.png
rename to packages/desktop/icons/dev/android/mipmap-xhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xhdpi/ic_launcher_foreground.png b/packages/desktop/icons/dev/android/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/dev/android/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xhdpi/ic_launcher_round.png b/packages/desktop/icons/dev/android/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xhdpi/ic_launcher_round.png
rename to packages/desktop/icons/dev/android/mipmap-xhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xxhdpi/ic_launcher.png b/packages/desktop/icons/dev/android/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xxhdpi/ic_launcher.png
rename to packages/desktop/icons/dev/android/mipmap-xxhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xxhdpi/ic_launcher_foreground.png b/packages/desktop/icons/dev/android/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xxhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/dev/android/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xxhdpi/ic_launcher_round.png b/packages/desktop/icons/dev/android/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xxhdpi/ic_launcher_round.png
rename to packages/desktop/icons/dev/android/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xxxhdpi/ic_launcher.png b/packages/desktop/icons/dev/android/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xxxhdpi/ic_launcher.png
rename to packages/desktop/icons/dev/android/mipmap-xxxhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/packages/desktop/icons/dev/android/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/dev/android/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/dev/android/mipmap-xxxhdpi/ic_launcher_round.png b/packages/desktop/icons/dev/android/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/mipmap-xxxhdpi/ic_launcher_round.png
rename to packages/desktop/icons/dev/android/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/dev/android/values/ic_launcher_background.xml b/packages/desktop/icons/dev/android/values/ic_launcher_background.xml
similarity index 100%
rename from packages/desktop-electron/icons/dev/android/values/ic_launcher_background.xml
rename to packages/desktop/icons/dev/android/values/ic_launcher_background.xml
diff --git a/packages/desktop-electron/icons/dev/dock.png b/packages/desktop/icons/dev/dock.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/dock.png
rename to packages/desktop/icons/dev/dock.png
diff --git a/packages/desktop-electron/icons/dev/icon.icns b/packages/desktop/icons/dev/icon.icns
similarity index 100%
rename from packages/desktop-electron/icons/dev/icon.icns
rename to packages/desktop/icons/dev/icon.icns
diff --git a/packages/desktop-electron/icons/dev/icon.ico b/packages/desktop/icons/dev/icon.ico
similarity index 100%
rename from packages/desktop-electron/icons/dev/icon.ico
rename to packages/desktop/icons/dev/icon.ico
diff --git a/packages/desktop-electron/icons/dev/icon.png b/packages/desktop/icons/dev/icon.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/icon.png
rename to packages/desktop/icons/dev/icon.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-20x20@1x.png b/packages/desktop/icons/dev/ios/AppIcon-20x20@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-20x20@1x.png
rename to packages/desktop/icons/dev/ios/AppIcon-20x20@1x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-20x20@2x-1.png b/packages/desktop/icons/dev/ios/AppIcon-20x20@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-20x20@2x-1.png
rename to packages/desktop/icons/dev/ios/AppIcon-20x20@2x-1.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-20x20@2x.png b/packages/desktop/icons/dev/ios/AppIcon-20x20@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-20x20@2x.png
rename to packages/desktop/icons/dev/ios/AppIcon-20x20@2x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-20x20@3x.png b/packages/desktop/icons/dev/ios/AppIcon-20x20@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-20x20@3x.png
rename to packages/desktop/icons/dev/ios/AppIcon-20x20@3x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-29x29@1x.png b/packages/desktop/icons/dev/ios/AppIcon-29x29@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-29x29@1x.png
rename to packages/desktop/icons/dev/ios/AppIcon-29x29@1x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-29x29@2x-1.png b/packages/desktop/icons/dev/ios/AppIcon-29x29@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-29x29@2x-1.png
rename to packages/desktop/icons/dev/ios/AppIcon-29x29@2x-1.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-29x29@2x.png b/packages/desktop/icons/dev/ios/AppIcon-29x29@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-29x29@2x.png
rename to packages/desktop/icons/dev/ios/AppIcon-29x29@2x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-29x29@3x.png b/packages/desktop/icons/dev/ios/AppIcon-29x29@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-29x29@3x.png
rename to packages/desktop/icons/dev/ios/AppIcon-29x29@3x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-40x40@1x.png b/packages/desktop/icons/dev/ios/AppIcon-40x40@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-40x40@1x.png
rename to packages/desktop/icons/dev/ios/AppIcon-40x40@1x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-40x40@2x-1.png b/packages/desktop/icons/dev/ios/AppIcon-40x40@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-40x40@2x-1.png
rename to packages/desktop/icons/dev/ios/AppIcon-40x40@2x-1.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-40x40@2x.png b/packages/desktop/icons/dev/ios/AppIcon-40x40@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-40x40@2x.png
rename to packages/desktop/icons/dev/ios/AppIcon-40x40@2x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-40x40@3x.png b/packages/desktop/icons/dev/ios/AppIcon-40x40@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-40x40@3x.png
rename to packages/desktop/icons/dev/ios/AppIcon-40x40@3x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-512@2x.png b/packages/desktop/icons/dev/ios/AppIcon-512@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-512@2x.png
rename to packages/desktop/icons/dev/ios/AppIcon-512@2x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-60x60@2x.png b/packages/desktop/icons/dev/ios/AppIcon-60x60@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-60x60@2x.png
rename to packages/desktop/icons/dev/ios/AppIcon-60x60@2x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-60x60@3x.png b/packages/desktop/icons/dev/ios/AppIcon-60x60@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-60x60@3x.png
rename to packages/desktop/icons/dev/ios/AppIcon-60x60@3x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-76x76@1x.png b/packages/desktop/icons/dev/ios/AppIcon-76x76@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-76x76@1x.png
rename to packages/desktop/icons/dev/ios/AppIcon-76x76@1x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-76x76@2x.png b/packages/desktop/icons/dev/ios/AppIcon-76x76@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-76x76@2x.png
rename to packages/desktop/icons/dev/ios/AppIcon-76x76@2x.png
diff --git a/packages/desktop-electron/icons/dev/ios/AppIcon-83.5x83.5@2x.png b/packages/desktop/icons/dev/ios/AppIcon-83.5x83.5@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/dev/ios/AppIcon-83.5x83.5@2x.png
rename to packages/desktop/icons/dev/ios/AppIcon-83.5x83.5@2x.png
diff --git a/packages/desktop-electron/icons/prod/128x128.png b/packages/desktop/icons/prod/128x128.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/128x128.png
rename to packages/desktop/icons/prod/128x128.png
diff --git a/packages/desktop-electron/icons/prod/128x128@2x.png b/packages/desktop/icons/prod/128x128@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/128x128@2x.png
rename to packages/desktop/icons/prod/128x128@2x.png
diff --git a/packages/desktop-electron/icons/prod/32x32.png b/packages/desktop/icons/prod/32x32.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/32x32.png
rename to packages/desktop/icons/prod/32x32.png
diff --git a/packages/desktop-electron/icons/prod/64x64.png b/packages/desktop/icons/prod/64x64.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/64x64.png
rename to packages/desktop/icons/prod/64x64.png
diff --git a/packages/desktop-electron/icons/prod/Square107x107Logo.png b/packages/desktop/icons/prod/Square107x107Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square107x107Logo.png
rename to packages/desktop/icons/prod/Square107x107Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square142x142Logo.png b/packages/desktop/icons/prod/Square142x142Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square142x142Logo.png
rename to packages/desktop/icons/prod/Square142x142Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square150x150Logo.png b/packages/desktop/icons/prod/Square150x150Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square150x150Logo.png
rename to packages/desktop/icons/prod/Square150x150Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square284x284Logo.png b/packages/desktop/icons/prod/Square284x284Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square284x284Logo.png
rename to packages/desktop/icons/prod/Square284x284Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square30x30Logo.png b/packages/desktop/icons/prod/Square30x30Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square30x30Logo.png
rename to packages/desktop/icons/prod/Square30x30Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square310x310Logo.png b/packages/desktop/icons/prod/Square310x310Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square310x310Logo.png
rename to packages/desktop/icons/prod/Square310x310Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square44x44Logo.png b/packages/desktop/icons/prod/Square44x44Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square44x44Logo.png
rename to packages/desktop/icons/prod/Square44x44Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square71x71Logo.png b/packages/desktop/icons/prod/Square71x71Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square71x71Logo.png
rename to packages/desktop/icons/prod/Square71x71Logo.png
diff --git a/packages/desktop-electron/icons/prod/Square89x89Logo.png b/packages/desktop/icons/prod/Square89x89Logo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/Square89x89Logo.png
rename to packages/desktop/icons/prod/Square89x89Logo.png
diff --git a/packages/desktop-electron/icons/prod/StoreLogo.png b/packages/desktop/icons/prod/StoreLogo.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/StoreLogo.png
rename to packages/desktop/icons/prod/StoreLogo.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-anydpi-v26/ic_launcher.xml b/packages/desktop/icons/prod/android/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-anydpi-v26/ic_launcher.xml
rename to packages/desktop/icons/prod/android/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-hdpi/ic_launcher.png b/packages/desktop/icons/prod/android/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-hdpi/ic_launcher.png
rename to packages/desktop/icons/prod/android/mipmap-hdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-hdpi/ic_launcher_foreground.png b/packages/desktop/icons/prod/android/mipmap-hdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-hdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/prod/android/mipmap-hdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-hdpi/ic_launcher_round.png b/packages/desktop/icons/prod/android/mipmap-hdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-hdpi/ic_launcher_round.png
rename to packages/desktop/icons/prod/android/mipmap-hdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-mdpi/ic_launcher.png b/packages/desktop/icons/prod/android/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-mdpi/ic_launcher.png
rename to packages/desktop/icons/prod/android/mipmap-mdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-mdpi/ic_launcher_foreground.png b/packages/desktop/icons/prod/android/mipmap-mdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-mdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/prod/android/mipmap-mdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-mdpi/ic_launcher_round.png b/packages/desktop/icons/prod/android/mipmap-mdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-mdpi/ic_launcher_round.png
rename to packages/desktop/icons/prod/android/mipmap-mdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xhdpi/ic_launcher.png b/packages/desktop/icons/prod/android/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xhdpi/ic_launcher.png
rename to packages/desktop/icons/prod/android/mipmap-xhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xhdpi/ic_launcher_foreground.png b/packages/desktop/icons/prod/android/mipmap-xhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/prod/android/mipmap-xhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xhdpi/ic_launcher_round.png b/packages/desktop/icons/prod/android/mipmap-xhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xhdpi/ic_launcher_round.png
rename to packages/desktop/icons/prod/android/mipmap-xhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xxhdpi/ic_launcher.png b/packages/desktop/icons/prod/android/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xxhdpi/ic_launcher.png
rename to packages/desktop/icons/prod/android/mipmap-xxhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xxhdpi/ic_launcher_foreground.png b/packages/desktop/icons/prod/android/mipmap-xxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xxhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/prod/android/mipmap-xxhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xxhdpi/ic_launcher_round.png b/packages/desktop/icons/prod/android/mipmap-xxhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xxhdpi/ic_launcher_round.png
rename to packages/desktop/icons/prod/android/mipmap-xxhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xxxhdpi/ic_launcher.png b/packages/desktop/icons/prod/android/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xxxhdpi/ic_launcher.png
rename to packages/desktop/icons/prod/android/mipmap-xxxhdpi/ic_launcher.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xxxhdpi/ic_launcher_foreground.png b/packages/desktop/icons/prod/android/mipmap-xxxhdpi/ic_launcher_foreground.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xxxhdpi/ic_launcher_foreground.png
rename to packages/desktop/icons/prod/android/mipmap-xxxhdpi/ic_launcher_foreground.png
diff --git a/packages/desktop-electron/icons/prod/android/mipmap-xxxhdpi/ic_launcher_round.png b/packages/desktop/icons/prod/android/mipmap-xxxhdpi/ic_launcher_round.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/mipmap-xxxhdpi/ic_launcher_round.png
rename to packages/desktop/icons/prod/android/mipmap-xxxhdpi/ic_launcher_round.png
diff --git a/packages/desktop-electron/icons/prod/android/values/ic_launcher_background.xml b/packages/desktop/icons/prod/android/values/ic_launcher_background.xml
similarity index 100%
rename from packages/desktop-electron/icons/prod/android/values/ic_launcher_background.xml
rename to packages/desktop/icons/prod/android/values/ic_launcher_background.xml
diff --git a/packages/desktop-electron/icons/prod/dock.png b/packages/desktop/icons/prod/dock.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/dock.png
rename to packages/desktop/icons/prod/dock.png
diff --git a/packages/desktop-electron/icons/prod/icon.icns b/packages/desktop/icons/prod/icon.icns
similarity index 100%
rename from packages/desktop-electron/icons/prod/icon.icns
rename to packages/desktop/icons/prod/icon.icns
diff --git a/packages/desktop-electron/icons/prod/icon.ico b/packages/desktop/icons/prod/icon.ico
similarity index 100%
rename from packages/desktop-electron/icons/prod/icon.ico
rename to packages/desktop/icons/prod/icon.ico
diff --git a/packages/desktop-electron/icons/prod/icon.png b/packages/desktop/icons/prod/icon.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/icon.png
rename to packages/desktop/icons/prod/icon.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-20x20@1x.png b/packages/desktop/icons/prod/ios/AppIcon-20x20@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-20x20@1x.png
rename to packages/desktop/icons/prod/ios/AppIcon-20x20@1x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-20x20@2x-1.png b/packages/desktop/icons/prod/ios/AppIcon-20x20@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-20x20@2x-1.png
rename to packages/desktop/icons/prod/ios/AppIcon-20x20@2x-1.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-20x20@2x.png b/packages/desktop/icons/prod/ios/AppIcon-20x20@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-20x20@2x.png
rename to packages/desktop/icons/prod/ios/AppIcon-20x20@2x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-20x20@3x.png b/packages/desktop/icons/prod/ios/AppIcon-20x20@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-20x20@3x.png
rename to packages/desktop/icons/prod/ios/AppIcon-20x20@3x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-29x29@1x.png b/packages/desktop/icons/prod/ios/AppIcon-29x29@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-29x29@1x.png
rename to packages/desktop/icons/prod/ios/AppIcon-29x29@1x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-29x29@2x-1.png b/packages/desktop/icons/prod/ios/AppIcon-29x29@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-29x29@2x-1.png
rename to packages/desktop/icons/prod/ios/AppIcon-29x29@2x-1.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-29x29@2x.png b/packages/desktop/icons/prod/ios/AppIcon-29x29@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-29x29@2x.png
rename to packages/desktop/icons/prod/ios/AppIcon-29x29@2x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-29x29@3x.png b/packages/desktop/icons/prod/ios/AppIcon-29x29@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-29x29@3x.png
rename to packages/desktop/icons/prod/ios/AppIcon-29x29@3x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-40x40@1x.png b/packages/desktop/icons/prod/ios/AppIcon-40x40@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-40x40@1x.png
rename to packages/desktop/icons/prod/ios/AppIcon-40x40@1x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-40x40@2x-1.png b/packages/desktop/icons/prod/ios/AppIcon-40x40@2x-1.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-40x40@2x-1.png
rename to packages/desktop/icons/prod/ios/AppIcon-40x40@2x-1.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-40x40@2x.png b/packages/desktop/icons/prod/ios/AppIcon-40x40@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-40x40@2x.png
rename to packages/desktop/icons/prod/ios/AppIcon-40x40@2x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-40x40@3x.png b/packages/desktop/icons/prod/ios/AppIcon-40x40@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-40x40@3x.png
rename to packages/desktop/icons/prod/ios/AppIcon-40x40@3x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-512@2x.png b/packages/desktop/icons/prod/ios/AppIcon-512@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-512@2x.png
rename to packages/desktop/icons/prod/ios/AppIcon-512@2x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-60x60@2x.png b/packages/desktop/icons/prod/ios/AppIcon-60x60@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-60x60@2x.png
rename to packages/desktop/icons/prod/ios/AppIcon-60x60@2x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-60x60@3x.png b/packages/desktop/icons/prod/ios/AppIcon-60x60@3x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-60x60@3x.png
rename to packages/desktop/icons/prod/ios/AppIcon-60x60@3x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-76x76@1x.png b/packages/desktop/icons/prod/ios/AppIcon-76x76@1x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-76x76@1x.png
rename to packages/desktop/icons/prod/ios/AppIcon-76x76@1x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-76x76@2x.png b/packages/desktop/icons/prod/ios/AppIcon-76x76@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-76x76@2x.png
rename to packages/desktop/icons/prod/ios/AppIcon-76x76@2x.png
diff --git a/packages/desktop-electron/icons/prod/ios/AppIcon-83.5x83.5@2x.png b/packages/desktop/icons/prod/ios/AppIcon-83.5x83.5@2x.png
similarity index 100%
rename from packages/desktop-electron/icons/prod/ios/AppIcon-83.5x83.5@2x.png
rename to packages/desktop/icons/prod/ios/AppIcon-83.5x83.5@2x.png
diff --git a/packages/desktop/index.html b/packages/desktop/index.html
deleted file mode 100644
index ce2775a704..0000000000
--- a/packages/desktop/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- OpenCode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/desktop/package.json b/packages/desktop/package.json
index e60320300a..a70b55bb22 100644
--- a/packages/desktop/package.json
+++ b/packages/desktop/package.json
@@ -4,43 +4,65 @@
"version": "1.14.35",
"type": "module",
"license": "MIT",
+ "homepage": "https://opencode.ai",
+ "author": {
+ "name": "OpenCode",
+ "email": "hello@opencode.ai"
+ },
"scripts": {
"typecheck": "tsgo -b",
"predev": "bun ./scripts/predev.ts",
- "dev": "vite",
- "build": "bun run typecheck && vite build",
- "preview": "vite preview",
- "tauri": "tauri"
+ "dev": "electron-vite dev",
+ "prebuild": "bun ./scripts/prebuild.ts",
+ "build": "electron-vite build",
+ "preview": "electron-vite preview",
+ "package": "electron-builder --config electron-builder.config.ts",
+ "package:mac": "electron-builder --mac --config electron-builder.config.ts",
+ "package:win": "electron-builder --win --config electron-builder.config.ts",
+ "package:linux": "electron-builder --linux --config electron-builder.config.ts",
+ "native:build": "bun install --cwd native"
},
+ "main": "./out/main/index.js",
"dependencies": {
- "@opencode-ai/app": "workspace:*",
- "@opencode-ai/ui": "workspace:*",
- "@sentry/solid": "catalog:",
- "@solid-primitives/i18n": "2.2.1",
- "@solid-primitives/storage": "catalog:",
- "@tauri-apps/api": "^2",
- "@tauri-apps/plugin-clipboard-manager": "~2",
- "@tauri-apps/plugin-deep-link": "~2",
- "@tauri-apps/plugin-dialog": "~2",
- "@tauri-apps/plugin-opener": "^2",
- "@tauri-apps/plugin-os": "~2",
- "@tauri-apps/plugin-notification": "~2",
- "@tauri-apps/plugin-process": "~2",
- "@tauri-apps/plugin-shell": "~2",
- "@tauri-apps/plugin-store": "~2",
- "@tauri-apps/plugin-updater": "~2",
- "@tauri-apps/plugin-http": "~2",
- "@tauri-apps/plugin-window-state": "~2",
- "solid-js": "catalog:",
- "@solidjs/meta": "catalog:"
+ "effect": "catalog:",
+ "electron-context-menu": "4.1.2",
+ "electron-log": "^5",
+ "electron-store": "^10",
+ "electron-updater": "^6",
+ "electron-window-state": "^5.0.3",
+ "drizzle-orm": "catalog:",
+ "marked": "^15"
},
"devDependencies": {
"@actions/artifact": "4.0.0",
+ "@lydell/node-pty": "catalog:",
+ "@opencode-ai/app": "workspace:*",
+ "@opencode-ai/ui": "workspace:*",
+ "@sentry/solid": "catalog:",
"@sentry/vite-plugin": "catalog:",
- "@tauri-apps/cli": "^2",
+ "@solid-primitives/i18n": "2.2.1",
+ "@solid-primitives/storage": "catalog:",
+ "@solidjs/meta": "catalog:",
+ "@solidjs/router": "0.15.4",
"@types/bun": "catalog:",
+ "@types/node": "catalog:",
"@typescript/native-preview": "catalog:",
+ "@valibot/to-json-schema": "1.6.0",
+ "electron": "41.2.1",
+ "electron-builder": "^26",
+ "electron-vite": "^5",
+ "solid-js": "catalog:",
+ "sury": "11.0.0-alpha.4",
"typescript": "~5.6.2",
- "vite": "catalog:"
+ "vite": "catalog:",
+ "zod-openapi": "5.4.6"
+ },
+ "optionalDependencies": {
+ "@lydell/node-pty-darwin-arm64": "1.2.0-beta.10",
+ "@lydell/node-pty-darwin-x64": "1.2.0-beta.10",
+ "@lydell/node-pty-linux-arm64": "1.2.0-beta.10",
+ "@lydell/node-pty-linux-x64": "1.2.0-beta.10",
+ "@lydell/node-pty-win32-arm64": "1.2.0-beta.10",
+ "@lydell/node-pty-win32-x64": "1.2.0-beta.10"
}
}
diff --git a/packages/desktop-electron/resources/entitlements.plist b/packages/desktop/resources/entitlements.plist
similarity index 100%
rename from packages/desktop-electron/resources/entitlements.plist
rename to packages/desktop/resources/entitlements.plist
diff --git a/packages/desktop/scripts/copy-bundles.ts b/packages/desktop/scripts/copy-bundles.ts
index 3fde1c1901..6ef3335eb7 100644
--- a/packages/desktop/scripts/copy-bundles.ts
+++ b/packages/desktop/scripts/copy-bundles.ts
@@ -5,8 +5,8 @@ import { RUST_TARGET } from "./utils"
if (!RUST_TARGET) throw new Error("RUST_TARGET not defined")
-const BUNDLE_DIR = `src-tauri/target/${RUST_TARGET}/release/bundle`
-const BUNDLES_OUT_DIR = path.join(process.cwd(), `src-tauri/target/bundles`)
+const BUNDLE_DIR = "dist"
+const BUNDLES_OUT_DIR = path.join(process.cwd(), "dist/bundles")
await $`mkdir -p ${BUNDLES_OUT_DIR}`
-await $`cp -r ${BUNDLE_DIR}/*/OpenCode* ${BUNDLES_OUT_DIR}`
+await $`cp -r ${BUNDLE_DIR}/* ${BUNDLES_OUT_DIR}`
diff --git a/packages/desktop-electron/scripts/copy-icons.ts b/packages/desktop/scripts/copy-icons.ts
similarity index 100%
rename from packages/desktop-electron/scripts/copy-icons.ts
rename to packages/desktop/scripts/copy-icons.ts
diff --git a/packages/desktop-electron/scripts/finalize-latest-yml.ts b/packages/desktop/scripts/finalize-latest-yml.ts
similarity index 100%
rename from packages/desktop-electron/scripts/finalize-latest-yml.ts
rename to packages/desktop/scripts/finalize-latest-yml.ts
diff --git a/packages/desktop-electron/scripts/prebuild.ts b/packages/desktop/scripts/prebuild.ts
similarity index 100%
rename from packages/desktop-electron/scripts/prebuild.ts
rename to packages/desktop/scripts/prebuild.ts
diff --git a/packages/desktop/scripts/predev.ts b/packages/desktop/scripts/predev.ts
index 072567758f..37c31d7eed 100644
--- a/packages/desktop/scripts/predev.ts
+++ b/packages/desktop/scripts/predev.ts
@@ -1,15 +1,5 @@
import { $ } from "bun"
-import { copyBinaryToSidecarFolder, getCurrentSidecar, windowsify } from "./utils"
+await $`bun ./scripts/copy-icons.ts ${process.env.OPENCODE_CHANNEL ?? "dev"}`
-const RUST_TARGET = Bun.env.TAURI_ENV_TARGET_TRIPLE
-
-const sidecarConfig = getCurrentSidecar(RUST_TARGET)
-
-const binaryPath = windowsify(`../opencode/dist/${sidecarConfig.ocBinary}/bin/opencode`)
-
-await (sidecarConfig.ocBinary.includes("-baseline")
- ? $`cd ../opencode && bun run build --single --baseline`
- : $`cd ../opencode && bun run build --single`)
-
-await copyBinaryToSidecarFolder(binaryPath, RUST_TARGET)
+await $`cd ../opencode && bun script/build-node.ts`
diff --git a/packages/desktop/scripts/prepare.ts b/packages/desktop/scripts/prepare.ts
index 729bf6ae13..0dfd5a35cb 100755
--- a/packages/desktop/scripts/prepare.ts
+++ b/packages/desktop/scripts/prepare.ts
@@ -1,20 +1,9 @@
#!/usr/bin/env bun
-import { $ } from "bun"
-
import { Script } from "@opencode-ai/script"
-import { copyBinaryToSidecarFolder, getCurrentSidecar, windowsify } from "./utils"
+
+await import("./prebuild")
const pkg = await Bun.file("./package.json").json()
pkg.version = Script.version
await Bun.write("./package.json", JSON.stringify(pkg, null, 2) + "\n")
console.log(`Updated package.json version to ${Script.version}`)
-
-const sidecarConfig = getCurrentSidecar()
-const artifact = process.env.OPENCODE_CLI_ARTIFACT ?? "opencode-cli"
-
-const dir = "src-tauri/target/opencode-binaries"
-
-await $`mkdir -p ${dir}`
-await $`gh run download ${process.env.GITHUB_RUN_ID} -n ${artifact}`.cwd(dir)
-
-await copyBinaryToSidecarFolder(windowsify(`${dir}/${sidecarConfig.ocBinary}/bin/opencode`))
diff --git a/packages/desktop/scripts/utils.ts b/packages/desktop/scripts/utils.ts
index 111871d3e3..19b96b0a16 100644
--- a/packages/desktop/scripts/utils.ts
+++ b/packages/desktop/scripts/utils.ts
@@ -1,5 +1,13 @@
import { $ } from "bun"
+export type Channel = "dev" | "beta" | "prod"
+
+export function resolveChannel(): Channel {
+ const raw = Bun.env.OPENCODE_CHANNEL
+ if (raw === "dev" || raw === "beta" || raw === "prod") return raw
+ return "dev"
+}
+
export const SIDECAR_BINARIES: Array<{ rustTarget: string; ocBinary: string; assetExt: string }> = [
{
rustTarget: "aarch64-apple-darwin",
@@ -35,22 +43,30 @@ export const SIDECAR_BINARIES: Array<{ rustTarget: string; ocBinary: string; ass
export const RUST_TARGET = Bun.env.RUST_TARGET
-export function getCurrentSidecar(target = RUST_TARGET) {
- if (!target && !RUST_TARGET) throw new Error("RUST_TARGET not set")
+function nativeTarget() {
+ const { platform, arch } = process
+ if (platform === "darwin") return arch === "arm64" ? "aarch64-apple-darwin" : "x86_64-apple-darwin"
+ if (platform === "win32") return arch === "arm64" ? "aarch64-pc-windows-msvc" : "x86_64-pc-windows-msvc"
+ if (platform === "linux") return arch === "arm64" ? "aarch64-unknown-linux-gnu" : "x86_64-unknown-linux-gnu"
+ throw new Error(`Unsupported platform: ${platform}/${arch}`)
+}
+export function getCurrentSidecar(target = RUST_TARGET ?? nativeTarget()) {
const binaryConfig = SIDECAR_BINARIES.find((b) => b.rustTarget === target)
- if (!binaryConfig) throw new Error(`Sidecar configuration not available for Rust target '${RUST_TARGET}'`)
+ if (!binaryConfig) throw new Error(`Sidecar configuration not available for Rust target '${target}'`)
return binaryConfig
}
-export async function copyBinaryToSidecarFolder(source: string, target = RUST_TARGET) {
- await $`mkdir -p src-tauri/sidecars`
- const dest = windowsify(`src-tauri/sidecars/opencode-cli-${target}`)
+export async function copyBinaryToSidecarFolder(source: string) {
+ const dir = `resources`
+ await $`mkdir -p ${dir}`
+ const dest = windowsify(`${dir}/opencode-cli`)
await $`cp ${source} ${dest}`
if (process.platform === "win32" && process.env.GITHUB_ACTIONS === "true") {
await $`pwsh -NoLogo -NoProfile -ExecutionPolicy Bypass -File ../../script/sign-windows.ps1 ${dest}`
}
+ if (process.platform === "darwin") await $`codesign --force --sign - ${dest}`
console.log(`Copied ${source} to ${dest}`)
}
diff --git a/packages/desktop/src-tauri/.gitignore b/packages/desktop/src-tauri/.gitignore
deleted file mode 100644
index 67554e174c..0000000000
--- a/packages/desktop/src-tauri/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-# Generated by Cargo
-# will have compiled files and executables
-/target/
-
-# Generated by Tauri
-# will have schema files for capabilities auto-completion
-/gen/schemas
-
-sidecars
diff --git a/packages/desktop/src-tauri/Cargo.lock b/packages/desktop/src-tauri/Cargo.lock
deleted file mode 100644
index 55f0d5f360..0000000000
--- a/packages/desktop/src-tauri/Cargo.lock
+++ /dev/null
@@ -1,7394 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 4
-
-[[package]]
-name = "Inflector"
-version = "0.11.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
-
-[[package]]
-name = "adler2"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
-
-[[package]]
-name = "ahash"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289"
-
-[[package]]
-name = "aho-corasick"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "alloc-no-stdlib"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
-
-[[package]]
-name = "alloc-stdlib"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
-dependencies = [
- "alloc-no-stdlib",
-]
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.100"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
-
-[[package]]
-name = "arbitrary"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
-dependencies = [
- "derive_arbitrary",
-]
-
-[[package]]
-name = "arboard"
-version = "3.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf"
-dependencies = [
- "clipboard-win",
- "image",
- "log",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-core-foundation",
- "objc2-core-graphics",
- "objc2-foundation 0.3.2",
- "parking_lot",
- "percent-encoding",
- "windows-sys 0.60.2",
- "wl-clipboard-rs",
- "x11rb",
-]
-
-[[package]]
-name = "ashpd"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cbdf310d77fd3aaee6ea2093db7011dc2d35d2eb3481e5607f1f8d942ed99df"
-dependencies = [
- "enumflags2",
- "futures-channel",
- "futures-util",
- "rand 0.9.2",
- "raw-window-handle",
- "serde",
- "serde_repr",
- "tokio",
- "url",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "zbus",
-]
-
-[[package]]
-name = "async-broadcast"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
-dependencies = [
- "event-listener",
- "event-listener-strategy",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-channel"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
-dependencies = [
- "concurrent-queue",
- "event-listener-strategy",
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.13.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "pin-project-lite",
- "slab",
-]
-
-[[package]]
-name = "async-io"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
-dependencies = [
- "autocfg",
- "cfg-if",
- "concurrent-queue",
- "futures-io",
- "futures-lite",
- "parking",
- "polling",
- "rustix",
- "slab",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "async-lock"
-version = "3.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc"
-dependencies = [
- "event-listener",
- "event-listener-strategy",
- "pin-project-lite",
-]
-
-[[package]]
-name = "async-process"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
-dependencies = [
- "async-channel",
- "async-io",
- "async-lock",
- "async-signal",
- "async-task",
- "blocking",
- "cfg-if",
- "event-listener",
- "futures-lite",
- "rustix",
-]
-
-[[package]]
-name = "async-recursion"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "async-signal"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c"
-dependencies = [
- "async-io",
- "async-lock",
- "atomic-waker",
- "cfg-if",
- "futures-core",
- "futures-io",
- "rustix",
- "signal-hook-registry",
- "slab",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "async-task"
-version = "4.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
-
-[[package]]
-name = "async-trait"
-version = "0.1.89"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "atk"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b"
-dependencies = [
- "atk-sys",
- "glib",
- "libc",
-]
-
-[[package]]
-name = "atk-sys"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "atomic-waker"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
-
-[[package]]
-name = "autocfg"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
-
-[[package]]
-name = "base64"
-version = "0.21.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
-
-[[package]]
-name = "base64"
-version = "0.22.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
-dependencies = [
- "serde_core",
-]
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[package]]
-name = "block-buffer"
-version = "0.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "block2"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
-dependencies = [
- "objc2 0.5.2",
-]
-
-[[package]]
-name = "block2"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
-dependencies = [
- "objc2 0.6.3",
-]
-
-[[package]]
-name = "blocking"
-version = "1.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
-dependencies = [
- "async-channel",
- "async-task",
- "futures-io",
- "futures-lite",
- "piper",
-]
-
-[[package]]
-name = "brotli"
-version = "8.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
- "brotli-decompressor",
-]
-
-[[package]]
-name = "brotli-decompressor"
-version = "5.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
-
-[[package]]
-name = "bytemuck"
-version = "1.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
-
-[[package]]
-name = "byteorder"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-
-[[package]]
-name = "byteorder-lite"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
-
-[[package]]
-name = "bytes"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cairo-rs"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
-dependencies = [
- "bitflags 2.10.0",
- "cairo-sys-rs",
- "glib",
- "libc",
- "once_cell",
- "thiserror 1.0.69",
-]
-
-[[package]]
-name = "cairo-sys-rs"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
-dependencies = [
- "glib-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "camino"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609"
-dependencies = [
- "serde_core",
-]
-
-[[package]]
-name = "cargo-platform"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cargo_metadata"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
-dependencies = [
- "camino",
- "cargo-platform",
- "semver",
- "serde",
- "serde_json",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "cargo_toml"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374b7c592d9c00c1f4972ea58390ac6b18cbb6ab79011f3bdc90a0b82ca06b77"
-dependencies = [
- "serde",
- "toml 0.9.8",
-]
-
-[[package]]
-name = "caseless"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b6fd507454086c8edfd769ca6ada439193cdb209c7681712ef6275cccbfe5d8"
-dependencies = [
- "unicode-normalization",
-]
-
-[[package]]
-name = "cc"
-version = "1.2.47"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd405d82c84ff7f35739f175f67d8b9fb7687a0e84ccdc78bd3568839827cf07"
-dependencies = [
- "find-msvc-tools",
- "shlex",
-]
-
-[[package]]
-name = "cesu8"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
-
-[[package]]
-name = "cfb"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f"
-dependencies = [
- "byteorder",
- "fnv",
- "uuid",
-]
-
-[[package]]
-name = "cfg-expr"
-version = "0.15.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
-dependencies = [
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
-
-[[package]]
-name = "cfg_aliases"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
-
-[[package]]
-name = "chrono"
-version = "0.4.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
-dependencies = [
- "iana-time-zone",
- "js-sys",
- "num-traits",
- "serde",
- "wasm-bindgen",
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "clipboard-win"
-version = "5.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4"
-dependencies = [
- "error-code",
-]
-
-[[package]]
-name = "cocoa"
-version = "0.25.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "cocoa-foundation",
- "core-foundation 0.9.4",
- "core-graphics 0.23.2",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
-dependencies = [
- "bitflags 1.3.2",
- "block",
- "core-foundation 0.9.4",
- "core-graphics-types 0.1.3",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "combine"
-version = "4.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
-dependencies = [
- "bytes",
- "memchr",
-]
-
-[[package]]
-name = "comrak"
-version = "0.50.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "321d20bf105b6871a49da44c5fbb93e90a7cd6178ea5a9fe6cbc1e6d4504bc5e"
-dependencies = [
- "caseless",
- "entities",
- "jetscii",
- "phf 0.13.1",
- "phf_codegen 0.13.1",
- "rustc-hash",
- "smallvec",
- "typed-arena",
- "unicode_categories",
-]
-
-[[package]]
-name = "concurrent-queue"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "const-random"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
-dependencies = [
- "const-random-macro",
-]
-
-[[package]]
-name = "const-random-macro"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
-dependencies = [
- "getrandom 0.2.16",
- "once_cell",
- "tiny-keccak",
-]
-
-[[package]]
-name = "convert_case"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-
-[[package]]
-name = "cookie"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
-dependencies = [
- "percent-encoding",
- "time",
- "version_check",
-]
-
-[[package]]
-name = "cookie_store"
-version = "0.21.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9"
-dependencies = [
- "cookie",
- "document-features",
- "idna",
- "log",
- "publicsuffix",
- "serde",
- "serde_derive",
- "serde_json",
- "time",
- "url",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
-
-[[package]]
-name = "core-graphics"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation 0.9.4",
- "core-graphics-types 0.1.3",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics"
-version = "0.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1"
-dependencies = [
- "bitflags 2.10.0",
- "core-foundation 0.10.1",
- "core-graphics-types 0.2.0",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics-types"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation 0.9.4",
- "libc",
-]
-
-[[package]]
-name = "core-graphics-types"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
-dependencies = [
- "bitflags 2.10.0",
- "core-foundation 0.10.1",
- "libc",
-]
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
-dependencies = [
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
-
-[[package]]
-name = "crunchy"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
-
-[[package]]
-name = "crypto-common"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
-dependencies = [
- "generic-array",
- "typenum",
-]
-
-[[package]]
-name = "cssparser"
-version = "0.29.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
-dependencies = [
- "cssparser-macros",
- "dtoa-short",
- "itoa",
- "matches",
- "phf 0.10.1",
- "proc-macro2",
- "quote",
- "smallvec",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "cssparser-macros"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
-dependencies = [
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "ctor"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501"
-dependencies = [
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "darling"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
-dependencies = [
- "darling_core",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "data-url"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376"
-
-[[package]]
-name = "deranged"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
-dependencies = [
- "powerfmt",
- "serde_core",
-]
-
-[[package]]
-name = "derive_arbitrary"
-version = "1.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "derive_more"
-version = "0.99.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f"
-dependencies = [
- "convert_case",
- "proc-macro2",
- "quote",
- "rustc_version",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "crypto-common",
-]
-
-[[package]]
-name = "dirs"
-version = "6.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
-dependencies = [
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
-dependencies = [
- "libc",
- "option-ext",
- "redox_users",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "dispatch"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
-
-[[package]]
-name = "dispatch2"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.6.2",
- "libc",
- "objc2 0.6.3",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "dlib"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
-dependencies = [
- "libloading",
-]
-
-[[package]]
-name = "dlopen2"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b54f373ccf864bf587a89e880fb7610f8d73f3045f13580948ccbcaff26febff"
-dependencies = [
- "dlopen2_derive",
- "libc",
- "once_cell",
- "winapi",
-]
-
-[[package]]
-name = "dlopen2_derive"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "788160fb30de9cdd857af31c6a2675904b16ece8fc2737b2c7127ba368c9d0f4"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "dlv-list"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68df3f2b690c1b86e65ef7830956aededf3cb0a16f898f79b9a6f421a7b6211b"
-dependencies = [
- "rand 0.8.5",
-]
-
-[[package]]
-name = "dlv-list"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
-dependencies = [
- "const-random",
-]
-
-[[package]]
-name = "document-features"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
-dependencies = [
- "litrs",
-]
-
-[[package]]
-name = "downcast-rs"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
-
-[[package]]
-name = "dpi"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "dtoa"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04"
-
-[[package]]
-name = "dtoa-short"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
-dependencies = [
- "dtoa",
-]
-
-[[package]]
-name = "dunce"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
-
-[[package]]
-name = "dyn-clone"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
-
-[[package]]
-name = "embed-resource"
-version = "3.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e"
-dependencies = [
- "cc",
- "memchr",
- "rustc_version",
- "toml 0.9.8",
- "vswhom",
- "winreg",
-]
-
-[[package]]
-name = "embed_plist"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "endi"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
-
-[[package]]
-name = "enigo"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "802e4b2ae123615659085369b453cba87c5562e46ed8050a909fee18a9bc3157"
-dependencies = [
- "core-graphics 0.23.2",
- "libc",
- "objc",
- "pkg-config",
- "windows 0.51.1",
-]
-
-[[package]]
-name = "entities"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
-
-[[package]]
-name = "enumflags2"
-version = "0.7.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef"
-dependencies = [
- "enumflags2_derive",
- "serde",
-]
-
-[[package]]
-name = "enumflags2_derive"
-version = "0.7.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
-
-[[package]]
-name = "erased-serde"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3"
-dependencies = [
- "serde",
- "serde_core",
- "typeid",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
-dependencies = [
- "libc",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "error-code"
-version = "3.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59"
-
-[[package]]
-name = "event-listener"
-version = "5.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
-dependencies = [
- "concurrent-queue",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "event-listener-strategy"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
-dependencies = [
- "event-listener",
- "pin-project-lite",
-]
-
-[[package]]
-name = "fastrand"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
-
-[[package]]
-name = "fax"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab"
-dependencies = [
- "fax_derive",
-]
-
-[[package]]
-name = "fax_derive"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "fdeflate"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "field-offset"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
-dependencies = [
- "memoffset",
- "rustc_version",
-]
-
-[[package]]
-name = "file-locker"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75ae8b5984a4863d8a32109a848d038bd6d914f20f010cc141375f7a183c41cf"
-dependencies = [
- "nix 0.29.0",
-]
-
-[[package]]
-name = "filetime"
-version = "0.2.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed"
-dependencies = [
- "cfg-if",
- "libc",
- "libredox",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "find-msvc-tools"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
-
-[[package]]
-name = "fixedbitset"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99"
-
-[[package]]
-name = "flate2"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foldhash"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
-
-[[package]]
-name = "foreign-types"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
-dependencies = [
- "foreign-types-macros",
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-macros"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "freedesktop_entry_parser"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db9c27b72f19a99a895f8ca89e2d26e4ef31013376e56fdafef697627306c3e4"
-dependencies = [
- "nom 7.1.3",
- "thiserror 1.0.69",
-]
-
-[[package]]
-name = "futf"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
-dependencies = [
- "mac",
- "new_debug_unreachable",
-]
-
-[[package]]
-name = "futures"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
-
-[[package]]
-name = "futures-lite"
-version = "2.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
-dependencies = [
- "fastrand",
- "futures-core",
- "futures-io",
- "parking",
- "pin-project-lite",
-]
-
-[[package]]
-name = "futures-macro"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
-
-[[package]]
-name = "futures-task"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
-
-[[package]]
-name = "futures-util"
-version = "0.3.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "gdk"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691"
-dependencies = [
- "cairo-rs",
- "gdk-pixbuf",
- "gdk-sys",
- "gio",
- "glib",
- "libc",
- "pango",
-]
-
-[[package]]
-name = "gdk-pixbuf"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
-dependencies = [
- "gdk-pixbuf-sys",
- "gio",
- "glib",
- "libc",
- "once_cell",
-]
-
-[[package]]
-name = "gdk-pixbuf-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
-dependencies = [
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "gdk-sys"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7"
-dependencies = [
- "cairo-sys-rs",
- "gdk-pixbuf-sys",
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "pango-sys",
- "pkg-config",
- "system-deps",
-]
-
-[[package]]
-name = "gdkwayland-sys"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69"
-dependencies = [
- "gdk-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "pkg-config",
- "system-deps",
-]
-
-[[package]]
-name = "gdkx11"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe"
-dependencies = [
- "gdk",
- "gdkx11-sys",
- "gio",
- "glib",
- "libc",
- "x11",
-]
-
-[[package]]
-name = "gdkx11-sys"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d"
-dependencies = [
- "gdk-sys",
- "glib-sys",
- "libc",
- "system-deps",
- "x11",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "gethostname"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8"
-dependencies = [
- "rustix",
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
-dependencies = [
- "cfg-if",
- "js-sys",
- "libc",
- "wasi 0.11.1+wasi-snapshot-preview1",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
-dependencies = [
- "cfg-if",
- "js-sys",
- "libc",
- "r-efi",
- "wasip2",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "gio"
-version = "0.18.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-util",
- "gio-sys",
- "glib",
- "libc",
- "once_cell",
- "pin-project-lite",
- "smallvec",
- "thiserror 1.0.69",
-]
-
-[[package]]
-name = "gio-sys"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
- "winapi",
-]
-
-[[package]]
-name = "glib"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
-dependencies = [
- "bitflags 2.10.0",
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-task",
- "futures-util",
- "gio-sys",
- "glib-macros",
- "glib-sys",
- "gobject-sys",
- "libc",
- "memchr",
- "once_cell",
- "smallvec",
- "thiserror 1.0.69",
-]
-
-[[package]]
-name = "glib-macros"
-version = "0.18.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
-dependencies = [
- "heck 0.4.1",
- "proc-macro-crate 2.0.2",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "glib-sys"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
-dependencies = [
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "glob"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
-
-[[package]]
-name = "gobject-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
-dependencies = [
- "glib-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "gtk"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a"
-dependencies = [
- "atk",
- "cairo-rs",
- "field-offset",
- "futures-channel",
- "gdk",
- "gdk-pixbuf",
- "gio",
- "glib",
- "gtk-sys",
- "gtk3-macros",
- "libc",
- "pango",
- "pkg-config",
-]
-
-[[package]]
-name = "gtk-sys"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414"
-dependencies = [
- "atk-sys",
- "cairo-sys-rs",
- "gdk-pixbuf-sys",
- "gdk-sys",
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "pango-sys",
- "system-deps",
-]
-
-[[package]]
-name = "gtk3-macros"
-version = "0.18.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d"
-dependencies = [
- "proc-macro-crate 1.3.1",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "h2"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386"
-dependencies = [
- "atomic-waker",
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "http",
- "indexmap 2.12.1",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "half"
-version = "2.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
-dependencies = [
- "cfg-if",
- "crunchy",
- "zerocopy",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
-
-[[package]]
-name = "hashbrown"
-version = "0.15.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
-dependencies = [
- "foldhash",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.16.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
-
-[[package]]
-name = "heck"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-[[package]]
-name = "heck"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
-
-[[package]]
-name = "hermit-abi"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
-
-[[package]]
-name = "hex"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-
-[[package]]
-name = "html5ever"
-version = "0.29.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c"
-dependencies = [
- "log",
- "mac",
- "markup5ever",
- "match_token",
-]
-
-[[package]]
-name = "http"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "http-body"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
-dependencies = [
- "bytes",
- "http",
-]
-
-[[package]]
-name = "http-body-util"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
-dependencies = [
- "bytes",
- "futures-core",
- "http",
- "http-body",
- "pin-project-lite",
-]
-
-[[package]]
-name = "httparse"
-version = "1.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
-
-[[package]]
-name = "hyper"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11"
-dependencies = [
- "atomic-waker",
- "bytes",
- "futures-channel",
- "futures-core",
- "h2",
- "http",
- "http-body",
- "httparse",
- "itoa",
- "pin-project-lite",
- "pin-utils",
- "smallvec",
- "tokio",
- "want",
-]
-
-[[package]]
-name = "hyper-rustls"
-version = "0.27.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58"
-dependencies = [
- "http",
- "hyper",
- "hyper-util",
- "rustls",
- "rustls-pki-types",
- "tokio",
- "tokio-rustls",
- "tower-service",
- "webpki-roots",
-]
-
-[[package]]
-name = "hyper-util"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e9a2a24dc5c6821e71a7030e1e14b7b632acac55c40e9d2e082c621261bb56"
-dependencies = [
- "base64 0.22.1",
- "bytes",
- "futures-channel",
- "futures-core",
- "futures-util",
- "http",
- "http-body",
- "hyper",
- "ipnet",
- "libc",
- "percent-encoding",
- "pin-project-lite",
- "socket2",
- "system-configuration",
- "tokio",
- "tower-service",
- "tracing",
- "windows-registry 0.6.1",
-]
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "log",
- "wasm-bindgen",
- "windows-core 0.61.2",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "ico"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e795dff5605e0f04bff85ca41b51a96b83e80b281e96231bcaaf1ac35103371"
-dependencies = [
- "byteorder",
- "png 0.17.16",
-]
-
-[[package]]
-name = "icu_collections"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
-dependencies = [
- "displaydoc",
- "potential_utf",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locale_core"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
-dependencies = [
- "displaydoc",
- "litemap",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_normalizer"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
-dependencies = [
- "icu_collections",
- "icu_normalizer_data",
- "icu_properties",
- "icu_provider",
- "smallvec",
- "zerovec",
-]
-
-[[package]]
-name = "icu_normalizer_data"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
-
-[[package]]
-name = "icu_properties"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99"
-dependencies = [
- "icu_collections",
- "icu_locale_core",
- "icu_properties_data",
- "icu_provider",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "icu_properties_data"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899"
-
-[[package]]
-name = "icu_provider"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
-dependencies = [
- "displaydoc",
- "icu_locale_core",
- "writeable",
- "yoke",
- "zerofrom",
- "zerotrie",
- "zerovec",
-]
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "idna"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
-dependencies = [
- "idna_adapter",
- "smallvec",
- "utf8_iter",
-]
-
-[[package]]
-name = "idna_adapter"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
-dependencies = [
- "icu_normalizer",
- "icu_properties",
-]
-
-[[package]]
-name = "image"
-version = "0.25.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a"
-dependencies = [
- "bytemuck",
- "byteorder-lite",
- "moxcms",
- "num-traits",
- "png 0.18.0",
- "tiff",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
- "serde",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"
-dependencies = [
- "equivalent",
- "hashbrown 0.16.1",
- "serde",
- "serde_core",
-]
-
-[[package]]
-name = "infer"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a588916bfdfd92e71cacef98a63d9b1f0d74d6599980d11894290e7ddefffcf7"
-dependencies = [
- "cfb",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
-
-[[package]]
-name = "iri-string"
-version = "0.7.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397"
-dependencies = [
- "memchr",
- "serde",
-]
-
-[[package]]
-name = "is-docker"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "is-wsl"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
-dependencies = [
- "is-docker",
- "once_cell",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
-
-[[package]]
-name = "javascriptcore-rs"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc"
-dependencies = [
- "bitflags 1.3.2",
- "glib",
- "javascriptcore-rs-sys",
-]
-
-[[package]]
-name = "javascriptcore-rs-sys"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "jetscii"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47f142fe24a9c9944451e8349de0a56af5f3e7226dc46f3ed4d4ecc0b85af75e"
-
-[[package]]
-name = "jni"
-version = "0.21.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
-dependencies = [
- "cesu8",
- "cfg-if",
- "combine",
- "jni-sys",
- "log",
- "thiserror 1.0.69",
- "walkdir",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "jni-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
-
-[[package]]
-name = "js-sys"
-version = "0.3.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65"
-dependencies = [
- "once_cell",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "json-patch"
-version = "3.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08"
-dependencies = [
- "jsonptr",
- "serde",
- "serde_json",
- "thiserror 1.0.69",
-]
-
-[[package]]
-name = "jsonptr"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70"
-dependencies = [
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "keyboard-types"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a"
-dependencies = [
- "bitflags 2.10.0",
- "serde",
- "unicode-segmentation",
-]
-
-[[package]]
-name = "kuchikiki"
-version = "0.8.8-speedreader"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2"
-dependencies = [
- "cssparser",
- "html5ever",
- "indexmap 2.12.1",
- "selectors",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
-
-[[package]]
-name = "libappindicator"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a"
-dependencies = [
- "glib",
- "gtk",
- "gtk-sys",
- "libappindicator-sys",
- "log",
-]
-
-[[package]]
-name = "libappindicator-sys"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
-dependencies = [
- "gtk-sys",
- "libloading",
- "once_cell",
-]
-
-[[package]]
-name = "libc"
-version = "0.2.180"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
-
-[[package]]
-name = "libloading"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-dependencies = [
- "cfg-if",
- "winapi",
-]
-
-[[package]]
-name = "libredox"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
-dependencies = [
- "bitflags 2.10.0",
- "libc",
- "redox_syscall",
-]
-
-[[package]]
-name = "linicon"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ee8c5653188a809616c97296180a0547a61dba205bcdcbdd261dbd022a25fd9"
-dependencies = [
- "file-locker",
- "freedesktop_entry_parser",
- "linicon-theme",
- "memmap2",
- "thiserror 1.0.69",
-]
-
-[[package]]
-name = "linicon-theme"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4f8240c33bb08c5d8b8cdea87b683b05e61037aa76ff26bef40672cc6ecbb80"
-dependencies = [
- "freedesktop_entry_parser",
- "rust-ini 0.17.0",
-]
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
-
-[[package]]
-name = "listeners"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "557f908c6cb431dd2496687aa9ea326507110ee4780517a42ade2df25d31126c"
-dependencies = [
- "byteorder",
- "rustix",
- "windows 0.61.3",
-]
-
-[[package]]
-name = "litemap"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
-
-[[package]]
-name = "litrs"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
-
-[[package]]
-name = "lock_api"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
-dependencies = [
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
-
-[[package]]
-name = "lru-slab"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
-
-[[package]]
-name = "mac"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
-
-[[package]]
-name = "mac-notification-sys"
-version = "0.6.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65fd3f75411f4725061682ed91f131946e912859d0044d39c4ec0aac818d7621"
-dependencies = [
- "cc",
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
- "time",
-]
-
-[[package]]
-name = "malloc_buf"
-version = "0.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "markup5ever"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7a7213d12e1864c0f002f52c2923d4556935a43dec5e71355c2760e0f6e7a18"
-dependencies = [
- "log",
- "phf 0.11.3",
- "phf_codegen 0.11.3",
- "string_cache",
- "string_cache_codegen",
- "tendril",
-]
-
-[[package]]
-name = "match_token"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "matchers"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
-dependencies = [
- "regex-automata",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
-name = "memchr"
-version = "2.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
-
-[[package]]
-name = "memmap2"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "minisign-verify"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e856fdd13623a2f5f2f54676a4ee49502a96a80ef4a62bcedd23d52427c44d43"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.8.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
-dependencies = [
- "adler2",
- "simd-adler32",
-]
-
-[[package]]
-name = "mio"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873"
-dependencies = [
- "libc",
- "wasi 0.11.1+wasi-snapshot-preview1",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "moxcms"
-version = "0.7.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97"
-dependencies = [
- "num-traits",
- "pxfm",
-]
-
-[[package]]
-name = "muda"
-version = "0.17.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01c1738382f66ed56b3b9c8119e794a2e23148ac8ea214eda86622d4cb9d415a"
-dependencies = [
- "crossbeam-channel",
- "dpi",
- "gtk",
- "keyboard-types",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
- "once_cell",
- "png 0.17.16",
- "serde",
- "thiserror 2.0.17",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "ndk"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
-dependencies = [
- "bitflags 2.10.0",
- "jni-sys",
- "log",
- "ndk-sys",
- "num_enum",
- "raw-window-handle",
- "thiserror 1.0.69",
-]
-
-[[package]]
-name = "ndk-context"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
-
-[[package]]
-name = "ndk-sys"
-version = "0.6.0+11769913"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
-dependencies = [
- "jni-sys",
-]
-
-[[package]]
-name = "new_debug_unreachable"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
-
-[[package]]
-name = "nix"
-version = "0.29.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
-dependencies = [
- "bitflags 2.10.0",
- "cfg-if",
- "cfg_aliases",
- "libc",
-]
-
-[[package]]
-name = "nix"
-version = "0.30.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
-dependencies = [
- "bitflags 2.10.0",
- "cfg-if",
- "cfg_aliases",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "nix"
-version = "0.31.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225e7cfe711e0ba79a68baeddb2982723e4235247aefce1482f2f16c27865b66"
-dependencies = [
- "bitflags 2.10.0",
- "cfg-if",
- "cfg_aliases",
- "libc",
-]
-
-[[package]]
-name = "nodrop"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
-
-[[package]]
-name = "nom"
-version = "7.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "nom"
-version = "8.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "notify-rust"
-version = "4.11.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6442248665a5aa2514e794af3b39661a8e73033b1cc5e59899e1276117ee4400"
-dependencies = [
- "futures-lite",
- "log",
- "mac-notification-sys",
- "serde",
- "tauri-winrt-notification",
- "zbus",
-]
-
-[[package]]
-name = "nu-ansi-term"
-version = "0.50.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
-dependencies = [
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "num-conv"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-
-[[package]]
-name = "num-traits"
-version = "0.2.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c"
-dependencies = [
- "num_enum_derive",
- "rustversion",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7"
-dependencies = [
- "proc-macro-crate 3.4.0",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "objc"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
-dependencies = [
- "malloc_buf",
-]
-
-[[package]]
-name = "objc-sys"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
-
-[[package]]
-name = "objc2"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
-dependencies = [
- "objc-sys",
- "objc2-encode",
-]
-
-[[package]]
-name = "objc2"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05"
-dependencies = [
- "objc2-encode",
- "objc2-exception-helper",
-]
-
-[[package]]
-name = "objc2-app-kit"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.6.2",
- "libc",
- "objc2 0.6.3",
- "objc2-cloud-kit",
- "objc2-core-data",
- "objc2-core-foundation",
- "objc2-core-graphics",
- "objc2-core-image",
- "objc2-core-text",
- "objc2-core-video",
- "objc2-foundation 0.3.2",
- "objc2-quartz-core 0.3.2",
-]
-
-[[package]]
-name = "objc2-cloud-kit"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-core-data"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-core-foundation"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
-dependencies = [
- "bitflags 2.10.0",
- "dispatch2",
- "objc2 0.6.3",
-]
-
-[[package]]
-name = "objc2-core-graphics"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807"
-dependencies = [
- "bitflags 2.10.0",
- "dispatch2",
- "objc2 0.6.3",
- "objc2-core-foundation",
- "objc2-io-surface",
-]
-
-[[package]]
-name = "objc2-core-image"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006"
-dependencies = [
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-core-location"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009"
-dependencies = [
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-core-text"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-core-foundation",
- "objc2-core-graphics",
-]
-
-[[package]]
-name = "objc2-core-video"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-core-foundation",
- "objc2-core-graphics",
- "objc2-io-surface",
-]
-
-[[package]]
-name = "objc2-encode"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
-
-[[package]]
-name = "objc2-exception-helper"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "objc2-foundation"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.5.1",
- "libc",
- "objc2 0.5.2",
-]
-
-[[package]]
-name = "objc2-foundation"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.6.2",
- "libc",
- "objc2 0.6.3",
- "objc2-core-foundation",
-]
-
-[[package]]
-name = "objc2-io-surface"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-core-foundation",
-]
-
-[[package]]
-name = "objc2-javascript-core"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586"
-dependencies = [
- "objc2 0.6.3",
- "objc2-core-foundation",
-]
-
-[[package]]
-name = "objc2-metal"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
-]
-
-[[package]]
-name = "objc2-osa-kit"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f112d1746737b0da274ef79a23aac283376f335f4095a083a267a082f21db0c0"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-quartz-core"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.5.1",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
- "objc2-metal",
-]
-
-[[package]]
-name = "objc2-quartz-core"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-security"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a"
-dependencies = [
- "bitflags 2.10.0",
- "objc2 0.6.3",
- "objc2-core-foundation",
-]
-
-[[package]]
-name = "objc2-ui-kit"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.6.2",
- "objc2 0.6.3",
- "objc2-cloud-kit",
- "objc2-core-data",
- "objc2-core-foundation",
- "objc2-core-graphics",
- "objc2-core-image",
- "objc2-core-location",
- "objc2-core-text",
- "objc2-foundation 0.3.2",
- "objc2-quartz-core 0.3.2",
- "objc2-user-notifications",
-]
-
-[[package]]
-name = "objc2-user-notifications"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e"
-dependencies = [
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
-]
-
-[[package]]
-name = "objc2-web-kit"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.6.2",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
- "objc2-javascript-core",
- "objc2-security",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
-
-[[package]]
-name = "open"
-version = "5.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43bb73a7fa3799b198970490a51174027ba0d4ec504b03cd08caf513d40024bc"
-dependencies = [
- "dunce",
- "is-wsl",
- "libc",
- "pathdiff",
-]
-
-[[package]]
-name = "opencode-desktop"
-version = "0.0.0"
-dependencies = [
- "chrono",
- "comrak",
- "dirs",
- "futures",
- "gtk",
- "listeners",
- "objc2 0.6.3",
- "objc2-web-kit",
- "process-wrap",
- "reqwest 0.12.24",
- "semver",
- "serde",
- "serde_json",
- "specta",
- "specta-typescript",
- "tauri",
- "tauri-build 2.5.2",
- "tauri-plugin-clipboard-manager",
- "tauri-plugin-decorum",
- "tauri-plugin-deep-link",
- "tauri-plugin-dialog",
- "tauri-plugin-http",
- "tauri-plugin-notification",
- "tauri-plugin-opener",
- "tauri-plugin-os",
- "tauri-plugin-process",
- "tauri-plugin-shell",
- "tauri-plugin-single-instance",
- "tauri-plugin-store",
- "tauri-plugin-updater",
- "tauri-plugin-window-state",
- "tauri-specta",
- "tokio",
- "tokio-stream",
- "tracing",
- "tracing-appender",
- "tracing-subscriber",
- "uuid",
- "webkit2gtk",
- "windows-core 0.62.2",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "option-ext"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
-
-[[package]]
-name = "ordered-multimap"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c672c7ad9ec066e428c00eb917124a06f08db19e2584de982cc34b1f4c12485"
-dependencies = [
- "dlv-list 0.2.3",
- "hashbrown 0.9.1",
-]
-
-[[package]]
-name = "ordered-multimap"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
-dependencies = [
- "dlv-list 0.5.2",
- "hashbrown 0.14.5",
-]
-
-[[package]]
-name = "ordered-stream"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
-dependencies = [
- "futures-core",
- "pin-project-lite",
-]
-
-[[package]]
-name = "os_info"
-version = "3.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c39b5918402d564846d5aba164c09a66cc88d232179dfd3e3c619a25a268392"
-dependencies = [
- "android_system_properties",
- "log",
- "nix 0.30.1",
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
- "objc2-ui-kit",
- "serde",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "os_pipe"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
-dependencies = [
- "libc",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "osakit"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "732c71caeaa72c065bb69d7ea08717bd3f4863a4f451402fc9513e29dbd5261b"
-dependencies = [
- "objc2 0.6.3",
- "objc2-foundation 0.3.2",
- "objc2-osa-kit",
- "serde",
- "serde_json",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "pango"
-version = "0.18.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
-dependencies = [
- "gio",
- "glib",
- "libc",
- "once_cell",
- "pango-sys",
-]
-
-[[package]]
-name = "pango-sys"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "parking"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
-
-[[package]]
-name = "parking_lot"
-version = "0.12.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
-dependencies = [
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall",
- "smallvec",
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
-
-[[package]]
-name = "pathdiff"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
-
-[[package]]
-name = "petgraph"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455"
-dependencies = [
- "fixedbitset",
- "hashbrown 0.15.5",
- "indexmap 2.12.1",
-]
-
-[[package]]
-name = "phf"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
-dependencies = [
- "phf_shared 0.8.0",
-]
-
-[[package]]
-name = "phf"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
-dependencies = [
- "phf_macros 0.10.0",
- "phf_shared 0.10.0",
- "proc-macro-hack",
-]
-
-[[package]]
-name = "phf"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
-dependencies = [
- "phf_macros 0.11.3",
- "phf_shared 0.11.3",
-]
-
-[[package]]
-name = "phf"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
-dependencies = [
- "phf_shared 0.13.1",
- "serde",
-]
-
-[[package]]
-name = "phf_codegen"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
-dependencies = [
- "phf_generator 0.8.0",
- "phf_shared 0.8.0",
-]
-
-[[package]]
-name = "phf_codegen"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
-dependencies = [
- "phf_generator 0.11.3",
- "phf_shared 0.11.3",
-]
-
-[[package]]
-name = "phf_codegen"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
-dependencies = [
- "phf_generator 0.13.1",
- "phf_shared 0.13.1",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
-dependencies = [
- "phf_shared 0.8.0",
- "rand 0.7.3",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
-dependencies = [
- "phf_shared 0.10.0",
- "rand 0.8.5",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
-dependencies = [
- "phf_shared 0.11.3",
- "rand 0.8.5",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
-dependencies = [
- "fastrand",
- "phf_shared 0.13.1",
-]
-
-[[package]]
-name = "phf_macros"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
-dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "phf_macros"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
-dependencies = [
- "phf_generator 0.11.3",
- "phf_shared 0.11.3",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
-dependencies = [
- "siphasher 0.3.11",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
-dependencies = [
- "siphasher 0.3.11",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
-dependencies = [
- "siphasher 1.0.1",
-]
-
-[[package]]
-name = "phf_shared"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
-dependencies = [
- "siphasher 1.0.1",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "piper"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
-dependencies = [
- "atomic-waker",
- "fastrand",
- "futures-io",
-]
-
-[[package]]
-name = "pkg-config"
-version = "0.3.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
-
-[[package]]
-name = "plist"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07"
-dependencies = [
- "base64 0.22.1",
- "indexmap 2.12.1",
- "quick-xml 0.38.4",
- "serde",
- "time",
-]
-
-[[package]]
-name = "png"
-version = "0.17.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
-]
-
-[[package]]
-name = "png"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0"
-dependencies = [
- "bitflags 2.10.0",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
-]
-
-[[package]]
-name = "polling"
-version = "3.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
-dependencies = [
- "cfg-if",
- "concurrent-queue",
- "hermit-abi",
- "pin-project-lite",
- "rustix",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "potential_utf"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
-dependencies = [
- "zerovec",
-]
-
-[[package]]
-name = "powerfmt"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
-dependencies = [
- "zerocopy",
-]
-
-[[package]]
-name = "precomputed-hash"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
-
-[[package]]
-name = "proc-macro-crate"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
-dependencies = [
- "once_cell",
- "toml_edit 0.19.15",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
-dependencies = [
- "toml_datetime 0.6.3",
- "toml_edit 0.20.2",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "3.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
-dependencies = [
- "toml_edit 0.23.7",
-]
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-hack"
-version = "0.5.20+deprecated"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.103"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "process-wrap"
-version = "9.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccd9713fe2c91c3c85ac388b31b89de339365d2c995146e630b5e0da9d06526a"
-dependencies = [
- "futures",
- "indexmap 2.12.1",
- "nix 0.31.1",
- "tokio",
- "tracing",
- "windows 0.62.2",
-]
-
-[[package]]
-name = "psl-types"
-version = "2.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac"
-
-[[package]]
-name = "publicsuffix"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f42ea446cab60335f76979ec15e12619a2165b5ae2c12166bef27d283a9fadf"
-dependencies = [
- "idna",
- "psl-types",
-]
-
-[[package]]
-name = "pxfm"
-version = "0.1.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "quick-error"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
-
-[[package]]
-name = "quick-xml"
-version = "0.37.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "quick-xml"
-version = "0.38.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "quinn"
-version = "0.11.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"
-dependencies = [
- "bytes",
- "cfg_aliases",
- "pin-project-lite",
- "quinn-proto",
- "quinn-udp",
- "rustc-hash",
- "rustls",
- "socket2",
- "thiserror 2.0.17",
- "tokio",
- "tracing",
- "web-time",
-]
-
-[[package]]
-name = "quinn-proto"
-version = "0.11.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31"
-dependencies = [
- "bytes",
- "getrandom 0.3.4",
- "lru-slab",
- "rand 0.9.2",
- "ring",
- "rustc-hash",
- "rustls",
- "rustls-pki-types",
- "slab",
- "thiserror 2.0.17",
- "tinyvec",
- "tracing",
- "web-time",
-]
-
-[[package]]
-name = "quinn-udp"
-version = "0.5.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd"
-dependencies = [
- "cfg_aliases",
- "libc",
- "once_cell",
- "socket2",
- "tracing",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "r-efi"
-version = "5.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
- "rand_pcg",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
-dependencies = [
- "rand_chacha 0.9.0",
- "rand_core 0.9.3",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.9.3",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom 0.2.16",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
-dependencies = [
- "getrandom 0.3.4",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "raw-window-handle"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
-
-[[package]]
-name = "redox_syscall"
-version = "0.5.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
-dependencies = [
- "bitflags 2.10.0",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
-dependencies = [
- "getrandom 0.2.16",
- "libredox",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "ref-cast"
-version = "1.0.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
-dependencies = [
- "ref-cast-impl",
-]
-
-[[package]]
-name = "ref-cast-impl"
-version = "1.0.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "regex"
-version = "1.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
-
-[[package]]
-name = "reqwest"
-version = "0.12.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f"
-dependencies = [
- "base64 0.22.1",
- "bytes",
- "cookie",
- "cookie_store",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "http-body-util",
- "hyper",
- "hyper-rustls",
- "hyper-util",
- "js-sys",
- "log",
- "mime",
- "percent-encoding",
- "pin-project-lite",
- "quinn",
- "rustls",
- "rustls-pki-types",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "sync_wrapper",
- "tokio",
- "tokio-rustls",
- "tokio-util",
- "tower",
- "tower-http",
- "tower-service",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "wasm-streams",
- "web-sys",
- "webpki-roots",
-]
-
-[[package]]
-name = "reqwest"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e9018c9d814e5f30cc16a0f03271aeab3571e609612d9fe78c1aa8d11c2f62"
-dependencies = [
- "base64 0.22.1",
- "bytes",
- "futures-core",
- "futures-util",
- "http",
- "http-body",
- "http-body-util",
- "hyper",
- "hyper-util",
- "js-sys",
- "log",
- "percent-encoding",
- "pin-project-lite",
- "serde",
- "serde_json",
- "sync_wrapper",
- "tokio",
- "tokio-util",
- "tower",
- "tower-http",
- "tower-service",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "wasm-streams",
- "web-sys",
-]
-
-[[package]]
-name = "rfd"
-version = "0.15.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef2bee61e6cffa4635c72d7d81a84294e28f0930db0ddcb0f66d10244674ebed"
-dependencies = [
- "ashpd",
- "block2 0.6.2",
- "dispatch2",
- "glib-sys",
- "gobject-sys",
- "gtk-sys",
- "js-sys",
- "log",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
- "raw-window-handle",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "windows-sys 0.59.0",
-]
-
-[[package]]
-name = "ring"
-version = "0.17.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
-dependencies = [
- "cc",
- "cfg-if",
- "getrandom 0.2.16",
- "libc",
- "untrusted",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "rust-ini"
-version = "0.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63471c4aa97a1cf8332a5f97709a79a4234698de6a1f5087faf66f2dae810e22"
-dependencies = [
- "cfg-if",
- "ordered-multimap 0.3.1",
-]
-
-[[package]]
-name = "rust-ini"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7"
-dependencies = [
- "cfg-if",
- "ordered-multimap 0.7.3",
-]
-
-[[package]]
-name = "rustc-hash"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rustix"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
-dependencies = [
- "bitflags 2.10.0",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "rustls"
-version = "0.23.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f"
-dependencies = [
- "once_cell",
- "ring",
- "rustls-pki-types",
- "rustls-webpki",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "rustls-pki-types"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "708c0f9d5f54ba0272468c1d306a52c495b31fa155e91bc25371e6df7996908c"
-dependencies = [
- "web-time",
- "zeroize",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.103.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52"
-dependencies = [
- "ring",
- "rustls-pki-types",
- "untrusted",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
-
-[[package]]
-name = "ryu"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "schemars"
-version = "0.8.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615"
-dependencies = [
- "dyn-clone",
- "indexmap 1.9.3",
- "schemars_derive",
- "serde",
- "serde_json",
- "url",
- "uuid",
-]
-
-[[package]]
-name = "schemars"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
-dependencies = [
- "dyn-clone",
- "ref-cast",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "schemars"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289"
-dependencies = [
- "dyn-clone",
- "ref-cast",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "schemars_derive"
-version = "0.8.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde_derive_internals",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "scoped-tls"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
-
-[[package]]
-name = "scopeguard"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-
-[[package]]
-name = "selectors"
-version = "0.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416"
-dependencies = [
- "bitflags 1.3.2",
- "cssparser",
- "derive_more",
- "fxhash",
- "log",
- "phf 0.8.0",
- "phf_codegen 0.8.0",
- "precomputed-hash",
- "servo_arc",
- "smallvec",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
-dependencies = [
- "serde",
- "serde_core",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.228"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
-dependencies = [
- "serde_core",
- "serde_derive",
-]
-
-[[package]]
-name = "serde-untagged"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058"
-dependencies = [
- "erased-serde",
- "serde",
- "serde_core",
- "typeid",
-]
-
-[[package]]
-name = "serde_core"
-version = "1.0.228"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.228"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "serde_derive_internals"
-version = "0.29.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.145"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
-dependencies = [
- "itoa",
- "memchr",
- "ryu",
- "serde",
- "serde_core",
-]
-
-[[package]]
-name = "serde_repr"
-version = "0.1.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde_spanned"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392"
-dependencies = [
- "serde_core",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_with"
-version = "3.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10574371d41b0d9b2cff89418eda27da52bcaff2cc8741db26382a77c29131f1"
-dependencies = [
- "base64 0.22.1",
- "chrono",
- "hex",
- "indexmap 1.9.3",
- "indexmap 2.12.1",
- "schemars 0.9.0",
- "schemars 1.1.0",
- "serde_core",
- "serde_json",
- "serde_with_macros",
- "time",
-]
-
-[[package]]
-name = "serde_with_macros"
-version = "3.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08a72d8216842fdd57820dc78d840bef99248e35fb2554ff923319e60f2d686b"
-dependencies = [
- "darling",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "serialize-to-javascript"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5"
-dependencies = [
- "serde",
- "serde_json",
- "serialize-to-javascript-impl",
-]
-
-[[package]]
-name = "serialize-to-javascript-impl"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "servo_arc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741"
-dependencies = [
- "nodrop",
- "stable_deref_trait",
-]
-
-[[package]]
-name = "sha2"
-version = "0.10.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sharded-slab"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "shared_child"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e362d9935bc50f019969e2f9ecd66786612daae13e8f277be7bfb66e8bed3f7"
-dependencies = [
- "libc",
- "sigchld",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "shlex"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
-
-[[package]]
-name = "sigchld"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47106eded3c154e70176fc83df9737335c94ce22f821c32d17ed1db1f83badb1"
-dependencies = [
- "libc",
- "os_pipe",
- "signal-hook",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
-
-[[package]]
-name = "siphasher"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
-
-[[package]]
-name = "siphasher"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
-
-[[package]]
-name = "slab"
-version = "0.4.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
-
-[[package]]
-name = "smallvec"
-version = "1.15.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
-
-[[package]]
-name = "socket2"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
-dependencies = [
- "libc",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "softbuffer"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08"
-dependencies = [
- "bytemuck",
- "cfg_aliases",
- "core-graphics 0.24.0",
- "foreign-types",
- "js-sys",
- "log",
- "objc2 0.5.2",
- "objc2-foundation 0.2.2",
- "objc2-quartz-core 0.2.2",
- "raw-window-handle",
- "redox_syscall",
- "wasm-bindgen",
- "web-sys",
- "windows-sys 0.59.0",
-]
-
-[[package]]
-name = "soup3"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f"
-dependencies = [
- "futures-channel",
- "gio",
- "glib",
- "libc",
- "soup3-sys",
-]
-
-[[package]]
-name = "soup3-sys"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27"
-dependencies = [
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
-
-[[package]]
-name = "specta"
-version = "2.0.0-rc.22"
-source = "git+https://github.com/specta-rs/specta?rev=591a5f3ddc78348abf4cbb541d599d65306d92b9#591a5f3ddc78348abf4cbb541d599d65306d92b9"
-dependencies = [
- "paste",
- "rustc_version",
- "specta-macros",
-]
-
-[[package]]
-name = "specta-macros"
-version = "2.0.0-rc.18"
-source = "git+https://github.com/specta-rs/specta?rev=591a5f3ddc78348abf4cbb541d599d65306d92b9#591a5f3ddc78348abf4cbb541d599d65306d92b9"
-dependencies = [
- "Inflector",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "specta-serde"
-version = "0.0.9"
-source = "git+https://github.com/specta-rs/specta?rev=591a5f3ddc78348abf4cbb541d599d65306d92b9#591a5f3ddc78348abf4cbb541d599d65306d92b9"
-dependencies = [
- "specta",
-]
-
-[[package]]
-name = "specta-typescript"
-version = "0.0.9"
-source = "git+https://github.com/specta-rs/specta?rev=591a5f3ddc78348abf4cbb541d599d65306d92b9#591a5f3ddc78348abf4cbb541d599d65306d92b9"
-dependencies = [
- "specta",
- "specta-serde",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
-name = "string_cache"
-version = "0.8.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f"
-dependencies = [
- "new_debug_unreachable",
- "parking_lot",
- "phf_shared 0.11.3",
- "precomputed-hash",
- "serde",
-]
-
-[[package]]
-name = "string_cache_codegen"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0"
-dependencies = [
- "phf_generator 0.11.3",
- "phf_shared 0.11.3",
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "strsim"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
-
-[[package]]
-name = "subtle"
-version = "2.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
-
-[[package]]
-name = "swift-rs"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7"
-dependencies = [
- "base64 0.21.7",
- "serde",
- "serde_json",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.110"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "sync_wrapper"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
-dependencies = [
- "futures-core",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "sys-locale"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "system-configuration"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
-dependencies = [
- "bitflags 2.10.0",
- "core-foundation 0.9.4",
- "system-configuration-sys",
-]
-
-[[package]]
-name = "system-configuration-sys"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "system-deps"
-version = "6.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
-dependencies = [
- "cfg-expr",
- "heck 0.5.0",
- "pkg-config",
- "toml 0.8.2",
- "version-compare",
-]
-
-[[package]]
-name = "tao"
-version = "0.34.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7"
-dependencies = [
- "bitflags 2.10.0",
- "block2 0.6.2",
- "core-foundation 0.10.1",
- "core-graphics 0.24.0",
- "crossbeam-channel",
- "dispatch",
- "dlopen2",
- "dpi",
- "gdkwayland-sys",
- "gdkx11-sys",
- "gtk",
- "jni",
- "lazy_static",
- "libc",
- "log",
- "ndk",
- "ndk-context",
- "ndk-sys",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-foundation 0.3.2",
- "once_cell",
- "parking_lot",
- "raw-window-handle",
- "scopeguard",
- "tao-macros",
- "unicode-segmentation",
- "url",
- "windows 0.61.3",
- "windows-core 0.61.2",
- "windows-version",
- "x11-dl",
-]
-
-[[package]]
-name = "tao-macros"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "tar"
-version = "0.4.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"
-dependencies = [
- "filetime",
- "libc",
- "xattr",
-]
-
-[[package]]
-name = "target-lexicon"
-version = "0.12.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
-
-[[package]]
-name = "tauri"
-version = "2.9.5"
-source = "git+https://github.com/tauri-apps/tauri?rev=4d5d78daf636feaac20c5bc48a6071491c4291ee#4d5d78daf636feaac20c5bc48a6071491c4291ee"
-dependencies = [
- "anyhow",
- "bytes",
- "cookie",
- "dirs",
- "dunce",
- "embed_plist",
- "getrandom 0.3.4",
- "glob",
- "gtk",
- "heck 0.5.0",
- "http",
- "jni",
- "libc",
- "log",
- "mime",
- "muda",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-foundation 0.3.2",
- "objc2-ui-kit",
- "objc2-web-kit",
- "percent-encoding",
- "plist",
- "raw-window-handle",
- "reqwest 0.13.1",
- "serde",
- "serde_json",
- "serde_repr",
- "serialize-to-javascript",
- "specta",
- "swift-rs",
- "tauri-build 2.5.3",
- "tauri-macros",
- "tauri-runtime",
- "tauri-runtime-wry",
- "tauri-utils 2.8.1",
- "thiserror 2.0.17",
- "tokio",
- "tray-icon",
- "url",
- "webkit2gtk",
- "webview2-com",
- "window-vibrancy",
- "windows 0.61.3",
-]
-
-[[package]]
-name = "tauri-build"
-version = "2.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87d6f8cafe6a75514ce5333f115b7b1866e8e68d9672bf4ca89fc0f35697ea9d"
-dependencies = [
- "anyhow",
- "cargo_toml",
- "dirs",
- "glob",
- "heck 0.5.0",
- "json-patch",
- "schemars 0.8.22",
- "semver",
- "serde",
- "serde_json",
- "tauri-utils 2.8.0",
- "tauri-winres",
- "toml 0.9.8",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-build"
-version = "2.5.3"
-source = "git+https://github.com/tauri-apps/tauri?rev=4d5d78daf636feaac20c5bc48a6071491c4291ee#4d5d78daf636feaac20c5bc48a6071491c4291ee"
-dependencies = [
- "anyhow",
- "cargo_toml",
- "dirs",
- "glob",
- "heck 0.5.0",
- "json-patch",
- "schemars 0.8.22",
- "semver",
- "serde",
- "serde_json",
- "tauri-utils 2.8.1",
- "tauri-winres",
- "toml 0.9.8",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-codegen"
-version = "2.5.2"
-source = "git+https://github.com/tauri-apps/tauri?rev=4d5d78daf636feaac20c5bc48a6071491c4291ee#4d5d78daf636feaac20c5bc48a6071491c4291ee"
-dependencies = [
- "base64 0.22.1",
- "brotli",
- "ico",
- "json-patch",
- "plist",
- "png 0.17.16",
- "proc-macro2",
- "quote",
- "semver",
- "serde",
- "serde_json",
- "sha2",
- "syn 2.0.110",
- "tauri-utils 2.8.1",
- "thiserror 2.0.17",
- "time",
- "url",
- "uuid",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-macros"
-version = "2.5.2"
-source = "git+https://github.com/tauri-apps/tauri?rev=4d5d78daf636feaac20c5bc48a6071491c4291ee#4d5d78daf636feaac20c5bc48a6071491c4291ee"
-dependencies = [
- "heck 0.5.0",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
- "tauri-codegen",
- "tauri-utils 2.8.1",
-]
-
-[[package]]
-name = "tauri-plugin"
-version = "2.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076c78a474a7247c90cad0b6e87e593c4c620ed4efdb79cbe0214f0021f6c39d"
-dependencies = [
- "anyhow",
- "glob",
- "plist",
- "schemars 0.8.22",
- "serde",
- "serde_json",
- "tauri-utils 2.8.0",
- "toml 0.9.8",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-plugin-clipboard-manager"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206dc20af4ed210748ba945c2774e60fd0acd52b9a73a028402caf809e9b6ecf"
-dependencies = [
- "arboard",
- "log",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "tauri-plugin-decorum"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db925c61a04a937028bc91ad8ae64a93b84a1715b964530925a54e793d494999"
-dependencies = [
- "anyhow",
- "cocoa",
- "enigo",
- "linicon",
- "objc",
- "rand 0.8.5",
- "serde",
- "tauri",
- "tauri-plugin",
-]
-
-[[package]]
-name = "tauri-plugin-deep-link"
-version = "2.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "444b091f24f2f6bdb4a305b54d3961f629c11861c685aceeea9a1972f89e43d5"
-dependencies = [
- "dunce",
- "plist",
- "rust-ini 0.21.3",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "tauri-utils 2.8.0",
- "thiserror 2.0.17",
- "tracing",
- "url",
- "windows-registry 0.5.3",
- "windows-result 0.3.4",
-]
-
-[[package]]
-name = "tauri-plugin-dialog"
-version = "2.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "313f8138692ddc4a2127c4c9607d616a46f5c042e77b3722450866da0aad2f19"
-dependencies = [
- "log",
- "raw-window-handle",
- "rfd",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "tauri-plugin-fs",
- "thiserror 2.0.17",
- "url",
-]
-
-[[package]]
-name = "tauri-plugin-fs"
-version = "2.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed390cc669f937afeb8b28032ce837bac8ea023d975a2e207375ec05afaf1804"
-dependencies = [
- "anyhow",
- "dunce",
- "glob",
- "percent-encoding",
- "schemars 0.8.22",
- "serde",
- "serde_json",
- "serde_repr",
- "tauri",
- "tauri-plugin",
- "tauri-utils 2.8.0",
- "thiserror 2.0.17",
- "toml 0.9.8",
- "url",
-]
-
-[[package]]
-name = "tauri-plugin-http"
-version = "2.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68bef611ccbfbce67c813959c11b23c1c084d201aa94222de9eba5f9edc3f897"
-dependencies = [
- "bytes",
- "cookie_store",
- "data-url",
- "http",
- "regex",
- "reqwest 0.12.24",
- "schemars 0.8.22",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "tauri-plugin-fs",
- "thiserror 2.0.17",
- "tokio",
- "url",
- "urlpattern",
-]
-
-[[package]]
-name = "tauri-plugin-notification"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01fc2c5ff41105bd1f7242d8201fdf3efd70749b82fa013a17f2126357d194cc"
-dependencies = [
- "log",
- "notify-rust",
- "rand 0.9.2",
- "serde",
- "serde_json",
- "serde_repr",
- "tauri",
- "tauri-plugin",
- "thiserror 2.0.17",
- "time",
- "url",
-]
-
-[[package]]
-name = "tauri-plugin-opener"
-version = "2.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c26b72571d25dee25667940027114e60f569fc3974f8cefbe50c2cbc5fd65e3b"
-dependencies = [
- "dunce",
- "glob",
- "objc2-app-kit",
- "objc2-foundation 0.3.2",
- "open",
- "schemars 0.8.22",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "thiserror 2.0.17",
- "url",
- "windows 0.61.3",
- "zbus",
-]
-
-[[package]]
-name = "tauri-plugin-os"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8f08346c8deb39e96f86973da0e2d76cbb933d7ac9b750f6dc4daf955a6f997"
-dependencies = [
- "gethostname",
- "log",
- "os_info",
- "serde",
- "serde_json",
- "serialize-to-javascript",
- "sys-locale",
- "tauri",
- "tauri-plugin",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "tauri-plugin-process"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d55511a7bf6cd70c8767b02c97bf8134fa434daf3926cfc1be0a0f94132d165a"
-dependencies = [
- "tauri",
- "tauri-plugin",
-]
-
-[[package]]
-name = "tauri-plugin-shell"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c374b6db45f2a8a304f0273a15080d98c70cde86178855fc24653ba657a1144c"
-dependencies = [
- "encoding_rs",
- "log",
- "open",
- "os_pipe",
- "regex",
- "schemars 0.8.22",
- "serde",
- "serde_json",
- "shared_child",
- "tauri",
- "tauri-plugin",
- "thiserror 2.0.17",
- "tokio",
-]
-
-[[package]]
-name = "tauri-plugin-single-instance"
-version = "2.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd707f8c86b4e3004e2c141fa24351f1909ba40ce1b8437e30d5ed5277dd3710"
-dependencies = [
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin-deep-link",
- "thiserror 2.0.17",
- "tracing",
- "windows-sys 0.60.2",
- "zbus",
-]
-
-[[package]]
-name = "tauri-plugin-store"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59a77036340a97eb5bbe1b3209c31e5f27f75e6f92a52fd9dd4b211ef08bf310"
-dependencies = [
- "dunce",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "thiserror 2.0.17",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "tauri-plugin-updater"
-version = "2.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27cbc31740f4d507712550694749572ec0e43bdd66992db7599b89fbfd6b167b"
-dependencies = [
- "base64 0.22.1",
- "dirs",
- "flate2",
- "futures-util",
- "http",
- "infer",
- "log",
- "minisign-verify",
- "osakit",
- "percent-encoding",
- "reqwest 0.12.24",
- "semver",
- "serde",
- "serde_json",
- "tar",
- "tauri",
- "tauri-plugin",
- "tempfile",
- "thiserror 2.0.17",
- "time",
- "tokio",
- "url",
- "windows-sys 0.60.2",
- "zip",
-]
-
-[[package]]
-name = "tauri-plugin-window-state"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73736611e14142408d15353e21e3cca2f12a3cfb523ad0ce85999b6d2ef1a704"
-dependencies = [
- "bitflags 2.10.0",
- "log",
- "serde",
- "serde_json",
- "tauri",
- "tauri-plugin",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "tauri-runtime"
-version = "2.9.2"
-source = "git+https://github.com/tauri-apps/tauri?rev=4d5d78daf636feaac20c5bc48a6071491c4291ee#4d5d78daf636feaac20c5bc48a6071491c4291ee"
-dependencies = [
- "cookie",
- "dpi",
- "gtk",
- "http",
- "jni",
- "objc2 0.6.3",
- "objc2-ui-kit",
- "objc2-web-kit",
- "raw-window-handle",
- "serde",
- "serde_json",
- "tauri-utils 2.8.1",
- "thiserror 2.0.17",
- "url",
- "webkit2gtk",
- "webview2-com",
- "windows 0.61.3",
-]
-
-[[package]]
-name = "tauri-runtime-wry"
-version = "2.9.3"
-source = "git+https://github.com/tauri-apps/tauri?rev=4d5d78daf636feaac20c5bc48a6071491c4291ee#4d5d78daf636feaac20c5bc48a6071491c4291ee"
-dependencies = [
- "gtk",
- "http",
- "jni",
- "log",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-foundation 0.3.2",
- "once_cell",
- "percent-encoding",
- "raw-window-handle",
- "softbuffer",
- "tao",
- "tauri-runtime",
- "tauri-utils 2.8.1",
- "url",
- "webkit2gtk",
- "webview2-com",
- "windows 0.61.3",
- "wry",
-]
-
-[[package]]
-name = "tauri-specta"
-version = "2.0.0-rc.21"
-source = "git+https://github.com/specta-rs/tauri-specta?rev=6720b2848eff9a3e40af54c48d65f6d56b640c0b#6720b2848eff9a3e40af54c48d65f6d56b640c0b"
-dependencies = [
- "heck 0.5.0",
- "serde",
- "serde_json",
- "specta",
- "specta-typescript",
- "tauri",
- "tauri-specta-macros",
- "thiserror 2.0.17",
-]
-
-[[package]]
-name = "tauri-specta-macros"
-version = "2.0.0-rc.16"
-source = "git+https://github.com/specta-rs/tauri-specta?rev=6720b2848eff9a3e40af54c48d65f6d56b640c0b#6720b2848eff9a3e40af54c48d65f6d56b640c0b"
-dependencies = [
- "darling",
- "heck 0.5.0",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "tauri-utils"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6b8bbe426abdbf52d050e52ed693130dbd68375b9ad82a3fb17efb4c8d85673"
-dependencies = [
- "anyhow",
- "cargo_metadata",
- "ctor",
- "dunce",
- "glob",
- "html5ever",
- "http",
- "infer",
- "json-patch",
- "kuchikiki",
- "log",
- "memchr",
- "phf 0.11.3",
- "proc-macro2",
- "quote",
- "regex",
- "schemars 0.8.22",
- "semver",
- "serde",
- "serde-untagged",
- "serde_json",
- "serde_with",
- "swift-rs",
- "thiserror 2.0.17",
- "toml 0.9.8",
- "url",
- "urlpattern",
- "uuid",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-utils"
-version = "2.8.1"
-source = "git+https://github.com/tauri-apps/tauri?rev=4d5d78daf636feaac20c5bc48a6071491c4291ee#4d5d78daf636feaac20c5bc48a6071491c4291ee"
-dependencies = [
- "anyhow",
- "brotli",
- "cargo_metadata",
- "ctor",
- "dunce",
- "glob",
- "html5ever",
- "http",
- "infer",
- "json-patch",
- "kuchikiki",
- "log",
- "memchr",
- "phf 0.11.3",
- "proc-macro2",
- "quote",
- "regex",
- "schemars 0.8.22",
- "semver",
- "serde",
- "serde-untagged",
- "serde_json",
- "serde_with",
- "swift-rs",
- "thiserror 2.0.17",
- "toml 0.9.8",
- "url",
- "urlpattern",
- "uuid",
- "walkdir",
-]
-
-[[package]]
-name = "tauri-winres"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1087b111fe2b005e42dbdc1990fc18593234238d47453b0c99b7de1c9ab2c1e0"
-dependencies = [
- "dunce",
- "embed-resource",
- "toml 0.9.8",
-]
-
-[[package]]
-name = "tauri-winrt-notification"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b1e66e07de489fe43a46678dd0b8df65e0c973909df1b60ba33874e297ba9b9"
-dependencies = [
- "quick-xml 0.37.5",
- "thiserror 2.0.17",
- "windows 0.61.3",
- "windows-version",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.23.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
-dependencies = [
- "fastrand",
- "getrandom 0.3.4",
- "once_cell",
- "rustix",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "tendril"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
-dependencies = [
- "futf",
- "mac",
- "utf-8",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
-dependencies = [
- "thiserror-impl 1.0.69",
-]
-
-[[package]]
-name = "thiserror"
-version = "2.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
-dependencies = [
- "thiserror-impl 2.0.17",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "2.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "tiff"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af9605de7fee8d9551863fd692cce7637f548dbd9db9180fcc07ccc6d26c336f"
-dependencies = [
- "fax",
- "flate2",
- "half",
- "quick-error",
- "weezl",
- "zune-jpeg",
-]
-
-[[package]]
-name = "time"
-version = "0.3.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
-dependencies = [
- "deranged",
- "itoa",
- "num-conv",
- "powerfmt",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
-
-[[package]]
-name = "time-macros"
-version = "0.2.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
-dependencies = [
- "num-conv",
- "time-core",
-]
-
-[[package]]
-name = "tiny-keccak"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
-dependencies = [
- "crunchy",
-]
-
-[[package]]
-name = "tinystr"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
-dependencies = [
- "displaydoc",
- "zerovec",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "tokio"
-version = "1.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
-dependencies = [
- "bytes",
- "libc",
- "mio",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2",
- "tokio-macros",
- "tracing",
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "tokio-rustls"
-version = "0.26.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
-dependencies = [
- "rustls",
- "tokio",
-]
-
-[[package]]
-name = "tokio-stream"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70"
-dependencies = [
- "futures-core",
- "pin-project-lite",
- "tokio",
- "tokio-util",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594"
-dependencies = [
- "bytes",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
-]
-
-[[package]]
-name = "toml"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
-dependencies = [
- "serde",
- "serde_spanned 0.6.9",
- "toml_datetime 0.6.3",
- "toml_edit 0.20.2",
-]
-
-[[package]]
-name = "toml"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
-dependencies = [
- "indexmap 2.12.1",
- "serde_core",
- "serde_spanned 1.0.3",
- "toml_datetime 0.7.3",
- "toml_parser",
- "toml_writer",
- "winnow 0.7.13",
-]
-
-[[package]]
-name = "toml_datetime"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml_datetime"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
-dependencies = [
- "serde_core",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.19.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
-dependencies = [
- "indexmap 2.12.1",
- "toml_datetime 0.6.3",
- "winnow 0.5.40",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.20.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
-dependencies = [
- "indexmap 2.12.1",
- "serde",
- "serde_spanned 0.6.9",
- "toml_datetime 0.6.3",
- "winnow 0.5.40",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.23.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
-dependencies = [
- "indexmap 2.12.1",
- "toml_datetime 0.7.3",
- "toml_parser",
- "winnow 0.7.13",
-]
-
-[[package]]
-name = "toml_parser"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
-dependencies = [
- "winnow 0.7.13",
-]
-
-[[package]]
-name = "toml_writer"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
-
-[[package]]
-name = "tower"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
-dependencies = [
- "futures-core",
- "futures-util",
- "pin-project-lite",
- "sync_wrapper",
- "tokio",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-http"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
-dependencies = [
- "bitflags 2.10.0",
- "bytes",
- "futures-util",
- "http",
- "http-body",
- "iri-string",
- "pin-project-lite",
- "tower",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-layer"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
-
-[[package]]
-name = "tower-service"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
-
-[[package]]
-name = "tracing"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
-dependencies = [
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-appender"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "786d480bce6247ab75f005b14ae1624ad978d3029d9113f0a22fa1ac773faeaf"
-dependencies = [
- "crossbeam-channel",
- "thiserror 2.0.17",
- "time",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
-dependencies = [
- "once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
-dependencies = [
- "log",
- "once_cell",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
-dependencies = [
- "matchers",
- "nu-ansi-term",
- "once_cell",
- "regex-automata",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing",
- "tracing-core",
- "tracing-log",
-]
-
-[[package]]
-name = "tray-icon"
-version = "0.21.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d5572781bee8e3f994d7467084e1b1fd7a93ce66bd480f8156ba89dee55a2b"
-dependencies = [
- "crossbeam-channel",
- "dirs",
- "libappindicator",
- "muda",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-core-foundation",
- "objc2-core-graphics",
- "objc2-foundation 0.3.2",
- "once_cell",
- "png 0.17.16",
- "serde",
- "thiserror 2.0.17",
- "windows-sys 0.60.2",
-]
-
-[[package]]
-name = "tree_magic_mini"
-version = "3.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6"
-dependencies = [
- "memchr",
- "nom 8.0.0",
- "petgraph",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
-
-[[package]]
-name = "typed-arena"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
-
-[[package]]
-name = "typeid"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
-
-[[package]]
-name = "typenum"
-version = "1.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
-
-[[package]]
-name = "uds_windows"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
-dependencies = [
- "memoffset",
- "tempfile",
- "winapi",
-]
-
-[[package]]
-name = "unic-char-property"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
-dependencies = [
- "unic-char-range",
-]
-
-[[package]]
-name = "unic-char-range"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
-
-[[package]]
-name = "unic-common"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
-
-[[package]]
-name = "unic-ucd-ident"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987"
-dependencies = [
- "unic-char-property",
- "unic-char-range",
- "unic-ucd-version",
-]
-
-[[package]]
-name = "unic-ucd-version"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
-dependencies = [
- "unic-common",
-]
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
-
-[[package]]
-name = "unicode_categories"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
-
-[[package]]
-name = "untrusted"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-
-[[package]]
-name = "url"
-version = "2.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
-dependencies = [
- "form_urlencoded",
- "idna",
- "percent-encoding",
- "serde",
-]
-
-[[package]]
-name = "urlpattern"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d"
-dependencies = [
- "regex",
- "serde",
- "unic-ucd-ident",
- "url",
-]
-
-[[package]]
-name = "utf-8"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
-
-[[package]]
-name = "utf8_iter"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
-
-[[package]]
-name = "uuid"
-version = "1.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a"
-dependencies = [
- "getrandom 0.3.4",
- "js-sys",
- "serde_core",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "valuable"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
-
-[[package]]
-name = "version-compare"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e"
-
-[[package]]
-name = "version_check"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
-
-[[package]]
-name = "vswhom"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
-dependencies = [
- "libc",
- "vswhom-sys",
-]
-
-[[package]]
-name = "vswhom-sys"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "walkdir"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
-dependencies = [
- "same-file",
- "winapi-util",
-]
-
-[[package]]
-name = "want"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
-dependencies = [
- "try-lock",
-]
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
-version = "0.11.1+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
-
-[[package]]
-name = "wasip2"
-version = "1.0.1+wasi-0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
-dependencies = [
- "wit-bindgen",
-]
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.105"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60"
-dependencies = [
- "cfg-if",
- "once_cell",
- "rustversion",
- "wasm-bindgen-macro",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.55"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0"
-dependencies = [
- "cfg-if",
- "js-sys",
- "once_cell",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.105"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.105"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc"
-dependencies = [
- "bumpalo",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.105"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "wasm-streams"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
-dependencies = [
- "futures-util",
- "js-sys",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
-]
-
-[[package]]
-name = "wayland-backend"
-version = "0.3.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35"
-dependencies = [
- "cc",
- "downcast-rs",
- "rustix",
- "scoped-tls",
- "smallvec",
- "wayland-sys",
-]
-
-[[package]]
-name = "wayland-client"
-version = "0.31.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d"
-dependencies = [
- "bitflags 2.10.0",
- "rustix",
- "wayland-backend",
- "wayland-scanner",
-]
-
-[[package]]
-name = "wayland-protocols"
-version = "0.32.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901"
-dependencies = [
- "bitflags 2.10.0",
- "wayland-backend",
- "wayland-client",
- "wayland-scanner",
-]
-
-[[package]]
-name = "wayland-protocols-wlr"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec"
-dependencies = [
- "bitflags 2.10.0",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "wayland-scanner",
-]
-
-[[package]]
-name = "wayland-scanner"
-version = "0.31.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3"
-dependencies = [
- "proc-macro2",
- "quick-xml 0.37.5",
- "quote",
-]
-
-[[package]]
-name = "wayland-sys"
-version = "0.31.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142"
-dependencies = [
- "dlib",
- "log",
- "pkg-config",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "web-time"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webkit2gtk"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793"
-dependencies = [
- "bitflags 1.3.2",
- "cairo-rs",
- "gdk",
- "gdk-sys",
- "gio",
- "gio-sys",
- "glib",
- "glib-sys",
- "gobject-sys",
- "gtk",
- "gtk-sys",
- "javascriptcore-rs",
- "libc",
- "once_cell",
- "soup3",
- "webkit2gtk-sys",
-]
-
-[[package]]
-name = "webkit2gtk-sys"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5"
-dependencies = [
- "bitflags 1.3.2",
- "cairo-sys-rs",
- "gdk-sys",
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "gtk-sys",
- "javascriptcore-rs-sys",
- "libc",
- "pkg-config",
- "soup3-sys",
- "system-deps",
-]
-
-[[package]]
-name = "webpki-roots"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e"
-dependencies = [
- "rustls-pki-types",
-]
-
-[[package]]
-name = "webview2-com"
-version = "0.38.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4ba622a989277ef3886dd5afb3e280e3dd6d974b766118950a08f8f678ad6a4"
-dependencies = [
- "webview2-com-macros",
- "webview2-com-sys",
- "windows 0.61.3",
- "windows-core 0.61.2",
- "windows-implement",
- "windows-interface",
-]
-
-[[package]]
-name = "webview2-com-macros"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "webview2-com-sys"
-version = "0.38.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36695906a1b53a3bf5c4289621efedac12b73eeb0b89e7e1a89b517302d5d75c"
-dependencies = [
- "thiserror 2.0.17",
- "windows 0.61.3",
- "windows-core 0.61.2",
-]
-
-[[package]]
-name = "weezl"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
-dependencies = [
- "windows-sys 0.61.2",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "window-vibrancy"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9bec5a31f3f9362f2258fd0e9c9dd61a9ca432e7306cc78c444258f0dce9a9c"
-dependencies = [
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
- "raw-window-handle",
- "windows-sys 0.59.0",
- "windows-version",
-]
-
-[[package]]
-name = "windows"
-version = "0.51.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
-dependencies = [
- "windows-core 0.51.1",
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows"
-version = "0.61.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
-dependencies = [
- "windows-collections 0.2.0",
- "windows-core 0.61.2",
- "windows-future 0.2.1",
- "windows-link 0.1.3",
- "windows-numerics 0.2.0",
-]
-
-[[package]]
-name = "windows"
-version = "0.62.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580"
-dependencies = [
- "windows-collections 0.3.2",
- "windows-core 0.62.2",
- "windows-future 0.3.2",
- "windows-numerics 0.3.1",
-]
-
-[[package]]
-name = "windows-collections"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
-dependencies = [
- "windows-core 0.61.2",
-]
-
-[[package]]
-name = "windows-collections"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610"
-dependencies = [
- "windows-core 0.62.2",
-]
-
-[[package]]
-name = "windows-core"
-version = "0.51.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows-core"
-version = "0.61.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
-dependencies = [
- "windows-implement",
- "windows-interface",
- "windows-link 0.1.3",
- "windows-result 0.3.4",
- "windows-strings 0.4.2",
-]
-
-[[package]]
-name = "windows-core"
-version = "0.62.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
-dependencies = [
- "windows-implement",
- "windows-interface",
- "windows-link 0.2.1",
- "windows-result 0.4.1",
- "windows-strings 0.5.1",
-]
-
-[[package]]
-name = "windows-future"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
-dependencies = [
- "windows-core 0.61.2",
- "windows-link 0.1.3",
- "windows-threading 0.1.0",
-]
-
-[[package]]
-name = "windows-future"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb"
-dependencies = [
- "windows-core 0.62.2",
- "windows-link 0.2.1",
- "windows-threading 0.2.1",
-]
-
-[[package]]
-name = "windows-implement"
-version = "0.60.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "windows-interface"
-version = "0.59.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "windows-link"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
-
-[[package]]
-name = "windows-link"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
-
-[[package]]
-name = "windows-numerics"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
-dependencies = [
- "windows-core 0.61.2",
- "windows-link 0.1.3",
-]
-
-[[package]]
-name = "windows-numerics"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26"
-dependencies = [
- "windows-core 0.62.2",
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "windows-registry"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e"
-dependencies = [
- "windows-link 0.1.3",
- "windows-result 0.3.4",
- "windows-strings 0.4.2",
-]
-
-[[package]]
-name = "windows-registry"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720"
-dependencies = [
- "windows-link 0.2.1",
- "windows-result 0.4.1",
- "windows-strings 0.5.1",
-]
-
-[[package]]
-name = "windows-result"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
-dependencies = [
- "windows-link 0.1.3",
-]
-
-[[package]]
-name = "windows-result"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
-dependencies = [
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "windows-strings"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
-dependencies = [
- "windows-link 0.1.3",
-]
-
-[[package]]
-name = "windows-strings"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
-dependencies = [
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.2",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.52.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.59.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
-dependencies = [
- "windows-targets 0.52.6",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.60.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
-dependencies = [
- "windows-targets 0.53.5",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.61.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
-dependencies = [
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.5",
- "windows_aarch64_msvc 0.48.5",
- "windows_i686_gnu 0.48.5",
- "windows_i686_msvc 0.48.5",
- "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm 0.48.5",
- "windows_x86_64_msvc 0.48.5",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
-dependencies = [
- "windows_aarch64_gnullvm 0.52.6",
- "windows_aarch64_msvc 0.52.6",
- "windows_i686_gnu 0.52.6",
- "windows_i686_gnullvm 0.52.6",
- "windows_i686_msvc 0.52.6",
- "windows_x86_64_gnu 0.52.6",
- "windows_x86_64_gnullvm 0.52.6",
- "windows_x86_64_msvc 0.52.6",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.53.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
-dependencies = [
- "windows-link 0.2.1",
- "windows_aarch64_gnullvm 0.53.1",
- "windows_aarch64_msvc 0.53.1",
- "windows_i686_gnu 0.53.1",
- "windows_i686_gnullvm 0.53.1",
- "windows_i686_msvc 0.53.1",
- "windows_x86_64_gnu 0.53.1",
- "windows_x86_64_gnullvm 0.53.1",
- "windows_x86_64_msvc 0.53.1",
-]
-
-[[package]]
-name = "windows-threading"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
-dependencies = [
- "windows-link 0.1.3",
-]
-
-[[package]]
-name = "windows-threading"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37"
-dependencies = [
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "windows-version"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631"
-dependencies = [
- "windows-link 0.2.1",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
-
-[[package]]
-name = "windows_i686_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
-
-[[package]]
-name = "windows_i686_gnullvm"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.53.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
-
-[[package]]
-name = "winnow"
-version = "0.5.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winnow"
-version = "0.7.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winreg"
-version = "0.55.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97"
-dependencies = [
- "cfg-if",
- "windows-sys 0.59.0",
-]
-
-[[package]]
-name = "wit-bindgen"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
-
-[[package]]
-name = "wl-clipboard-rs"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9651471a32e87d96ef3a127715382b2d11cc7c8bb9822ded8a7cc94072eb0a3"
-dependencies = [
- "libc",
- "log",
- "os_pipe",
- "rustix",
- "thiserror 2.0.17",
- "tree_magic_mini",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "wayland-protocols-wlr",
-]
-
-[[package]]
-name = "writeable"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
-
-[[package]]
-name = "wry"
-version = "0.54.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ed1a195b0375491dd15a7066a10251be217ce743cf4bbbbdcf5391d6473bee0"
-dependencies = [
- "base64 0.22.1",
- "block2 0.6.2",
- "cookie",
- "crossbeam-channel",
- "dirs",
- "dpi",
- "dunce",
- "gdkx11",
- "gtk",
- "html5ever",
- "http",
- "javascriptcore-rs",
- "jni",
- "kuchikiki",
- "libc",
- "ndk",
- "objc2 0.6.3",
- "objc2-app-kit",
- "objc2-core-foundation",
- "objc2-foundation 0.3.2",
- "objc2-ui-kit",
- "objc2-web-kit",
- "once_cell",
- "percent-encoding",
- "raw-window-handle",
- "sha2",
- "soup3",
- "tao-macros",
- "thiserror 2.0.17",
- "url",
- "webkit2gtk",
- "webkit2gtk-sys",
- "webview2-com",
- "windows 0.61.3",
- "windows-core 0.61.2",
- "windows-version",
- "x11-dl",
-]
-
-[[package]]
-name = "x11"
-version = "2.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
-dependencies = [
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "x11-dl"
-version = "2.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
-dependencies = [
- "libc",
- "once_cell",
- "pkg-config",
-]
-
-[[package]]
-name = "x11rb"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414"
-dependencies = [
- "gethostname",
- "rustix",
- "x11rb-protocol",
-]
-
-[[package]]
-name = "x11rb-protocol"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd"
-
-[[package]]
-name = "xattr"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"
-dependencies = [
- "libc",
- "rustix",
-]
-
-[[package]]
-name = "yoke"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
-dependencies = [
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
- "synstructure",
-]
-
-[[package]]
-name = "zbus"
-version = "5.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b622b18155f7a93d1cd2dc8c01d2d6a44e08fb9ebb7b3f9e6ed101488bad6c91"
-dependencies = [
- "async-broadcast",
- "async-executor",
- "async-io",
- "async-lock",
- "async-process",
- "async-recursion",
- "async-task",
- "async-trait",
- "blocking",
- "enumflags2",
- "event-listener",
- "futures-core",
- "futures-lite",
- "hex",
- "nix 0.30.1",
- "ordered-stream",
- "serde",
- "serde_repr",
- "tokio",
- "tracing",
- "uds_windows",
- "uuid",
- "windows-sys 0.61.2",
- "winnow 0.7.13",
- "zbus_macros",
- "zbus_names",
- "zvariant",
-]
-
-[[package]]
-name = "zbus_macros"
-version = "5.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cdb94821ca8a87ca9c298b5d1cbd80e2a8b67115d99f6e4551ac49e42b6a314"
-dependencies = [
- "proc-macro-crate 3.4.0",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
- "zbus_names",
- "zvariant",
- "zvariant_utils",
-]
-
-[[package]]
-name = "zbus_names"
-version = "4.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97"
-dependencies = [
- "serde",
- "static_assertions",
- "winnow 0.7.13",
- "zvariant",
-]
-
-[[package]]
-name = "zerocopy"
-version = "0.8.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43fa6694ed34d6e57407afbccdeecfa268c470a7d2a5b0cf49ce9fcc345afb90"
-dependencies = [
- "zerocopy-derive",
-]
-
-[[package]]
-name = "zerocopy-derive"
-version = "0.8.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c640b22cd9817fae95be82f0d2f90b11f7605f6c319d16705c459b27ac2cbc26"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
- "synstructure",
-]
-
-[[package]]
-name = "zeroize"
-version = "1.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
-
-[[package]]
-name = "zerotrie"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
-dependencies = [
- "displaydoc",
- "yoke",
- "zerofrom",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.11.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
-dependencies = [
- "yoke",
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.110",
-]
-
-[[package]]
-name = "zip"
-version = "4.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1"
-dependencies = [
- "arbitrary",
- "crc32fast",
- "indexmap 2.12.1",
- "memchr",
-]
-
-[[package]]
-name = "zune-core"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
-
-[[package]]
-name = "zune-jpeg"
-version = "0.4.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ce2c8a9384ad323cf564b67da86e21d3cfdff87908bc1223ed5c99bc792713"
-dependencies = [
- "zune-core",
-]
-
-[[package]]
-name = "zvariant"
-version = "5.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2be61892e4f2b1772727be11630a62664a1826b62efa43a6fe7449521cb8744c"
-dependencies = [
- "endi",
- "enumflags2",
- "serde",
- "url",
- "winnow 0.7.13",
- "zvariant_derive",
- "zvariant_utils",
-]
-
-[[package]]
-name = "zvariant_derive"
-version = "5.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da58575a1b2b20766513b1ec59d8e2e68db2745379f961f86650655e862d2006"
-dependencies = [
- "proc-macro-crate 3.4.0",
- "proc-macro2",
- "quote",
- "syn 2.0.110",
- "zvariant_utils",
-]
-
-[[package]]
-name = "zvariant_utils"
-version = "3.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde",
- "syn 2.0.110",
- "winnow 0.7.13",
-]
diff --git a/packages/desktop/src-tauri/Cargo.toml b/packages/desktop/src-tauri/Cargo.toml
deleted file mode 100644
index b228c7b616..0000000000
--- a/packages/desktop/src-tauri/Cargo.toml
+++ /dev/null
@@ -1,75 +0,0 @@
-[package]
-name = "opencode-desktop"
-version = "0.0.0"
-description = "The open source AI coding agent"
-authors = ["Anomaly Innovations"]
-edition = "2024"
-
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
-[lib]
-# The `_lib` suffix may seem redundant but it is necessary
-# to make the lib name unique and wouldn't conflict with the bin name.
-# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
-name = "opencode_lib"
-crate-type = ["staticlib", "cdylib", "rlib"]
-
-[build-dependencies]
-tauri-build = { version = "2", features = [] }
-
-[dependencies]
-tauri = { version = "2.9.5", features = ["macos-private-api"] }
-tauri-plugin-opener = "2"
-tauri-plugin-deep-link = "2.4.6"
-tauri-plugin-shell = "2"
-tauri-plugin-dialog = "2"
-tauri-plugin-updater = "2"
-tauri-plugin-process = "2"
-tauri-plugin-store = "2"
-tauri-plugin-window-state = "2"
-tauri-plugin-clipboard-manager = "2"
-tauri-plugin-http = "2.5.6"
-tauri-plugin-notification = "2"
-tauri-plugin-single-instance = { version = "2", features = ["deep-link"] }
-
-serde = { version = "1", features = ["derive"] }
-serde_json = "1"
-tokio = { version = "1.48.0", features = ["process"] }
-listeners = "0.3"
-tauri-plugin-os = "2"
-futures = "0.3.31"
-semver = "1.0.27"
-reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }
-uuid = { version = "1.19.0", features = ["v4"] }
-tauri-plugin-decorum = "1.1.1"
-comrak = { version = "0.50", default-features = false }
-specta = "=2.0.0-rc.22"
-specta-typescript = "0.0.9"
-tauri-specta = { version = "=2.0.0-rc.21", features = ["derive", "typescript"] }
-dirs = "6.0.0"
-tracing = "0.1"
-tracing-subscriber = { version = "0.3", features = ["env-filter"] }
-tracing-appender = "0.2"
-chrono = "0.4"
-tokio-stream = { version = "0.1.18", features = ["sync"] }
-process-wrap = { version = "9.0.3", features = ["tokio1"] }
-
-[target.'cfg(windows)'.dependencies]
-windows-sys = { version = "0.61", features = ["Win32_System_Threading", "Win32_System_Registry"] }
-windows-core = "0.62"
-
-[target.'cfg(target_os = "linux")'.dependencies]
-gtk = "0.18.2"
-webkit2gtk = "=2.0.2"
-
-[target.'cfg(target_os = "macos")'.dependencies]
-objc2 = "0.6"
-objc2-web-kit = "0.3"
-
-
-[patch.crates-io]
-specta = { git = "https://github.com/specta-rs/specta", rev = "591a5f3ddc78348abf4cbb541d599d65306d92b9" }
-specta-typescript = { git = "https://github.com/specta-rs/specta", rev = "591a5f3ddc78348abf4cbb541d599d65306d92b9" }
-tauri-specta = { git = "https://github.com/specta-rs/tauri-specta", rev = "6720b2848eff9a3e40af54c48d65f6d56b640c0b" }
-# TODO: https://github.com/tauri-apps/tauri/pull/14812
-tauri = { git = "https://github.com/tauri-apps/tauri", rev = "4d5d78daf636feaac20c5bc48a6071491c4291ee" }
diff --git a/packages/desktop/src-tauri/assets/nsis-header.bmp b/packages/desktop/src-tauri/assets/nsis-header.bmp
deleted file mode 100644
index 27480b5f7cb376443cb650b76bf3f7de46bc7f83..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 25818
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
IyaGf@BrRNy#7?n`pdx
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