fix(desktop): wait for first-run bootstrap before connection timeout

This commit is contained in:
2026-09-05 13:46:53 +03:00
parent 03634b1ca3
commit b9bb62ea82
6 changed files with 231 additions and 30 deletions
+103 -24
View File
@@ -1,45 +1,124 @@
import { useI18n } from './context'
import { getRuntimeI18nLocale } from './runtime'
const trInstallStages: Record<string, string> = {
uv: 'uv',
git: 'Git',
node: 'Node.js',
'system-packages': 'Sistem araçları',
repository: 'Kaynak kodu',
python: 'Python',
venv: 'Python ortamı',
dependencies: 'Ajan bağımlılıkları',
'node-deps': 'Node.js bağımlılıkları',
path: 'Komut yolları',
'config-templates': 'Ayar şablonları',
'platform-sdks': 'Platform araçları',
'bootstrap-marker': 'Kurulum doğrulaması',
configure: 'Yapılandırma',
gateway: 'Ağ geçidi'
}
export function aiturkInstallStage(name: string): string | undefined {
return getRuntimeI18nLocale() === 'tr' ? trInstallStages[name] : undefined
}
const en = {
intro: 'Bring your code, question, or idea. Build with AITURK.',
pitch: 'Connect your models with your TurkServis account.', key: 'TurkServis API key',
getKey: 'My account and API keys', noModels: 'No models are available for this key.',
pitch: 'Connect your models with your TurkServis account.',
key: 'TurkServis API key',
getKey: 'My account and API keys',
noModels: 'No models are available for this key.',
failed: 'Could not connect to TurkServis.',
custom: {
title: 'Custom endpoints', active: 'Active', keySet: 'API key set', use: 'Use', delete: 'Delete endpoint',
empty: 'No custom endpoints', emptyDesc: 'Add an OpenAI-compatible endpoint below.', edit: 'Edit endpoint', add: 'Add endpoint',
name: 'Name', providerId: 'Provider ID', url: 'Endpoint URL', model: 'Default model', context: 'Context', auto: 'Auto',
apiKey: 'API key', keepKey: 'Leave blank to keep current key', optional: 'Optional', newChats: 'Use for new chats',
discover: 'Discover models', test: 'Test', newEndpoint: 'New endpoint', loadFailed: 'Could not load custom endpoints',
saved: 'Custom endpoint saved.', saveFailed: 'Save failed', reachable: 'Endpoint is reachable.', validationFailed: 'Endpoint validation failed.',
activationFailed: 'Activation failed', deleteFailed: 'Delete failed', preset: 'Use TurkServis settings',
found: (n: number) => `Endpoint is reachable. Found ${n} models.`, confirmDelete: (name: string) => `Delete ${name}?`
title: 'Custom endpoints',
active: 'Active',
keySet: 'API key set',
use: 'Use',
delete: 'Delete endpoint',
empty: 'No custom endpoints',
emptyDesc: 'Add an OpenAI-compatible endpoint below.',
edit: 'Edit endpoint',
add: 'Add endpoint',
name: 'Name',
providerId: 'Provider ID',
url: 'Endpoint URL',
model: 'Default model',
context: 'Context',
auto: 'Auto',
apiKey: 'API key',
keepKey: 'Leave blank to keep current key',
optional: 'Optional',
newChats: 'Use for new chats',
discover: 'Discover models',
test: 'Test',
newEndpoint: 'New endpoint',
loadFailed: 'Could not load custom endpoints',
saved: 'Custom endpoint saved.',
saveFailed: 'Save failed',
reachable: 'Endpoint is reachable.',
validationFailed: 'Endpoint validation failed.',
activationFailed: 'Activation failed',
deleteFailed: 'Delete failed',
preset: 'Use TurkServis settings',
found: (n: number) => `Endpoint is reachable. Found ${n} models.`,
confirmDelete: (name: string) => `Delete ${name}?`
},
about: 'TurkServis distribution based on Hermes Agent. Upstream: Nous Research, MIT license.',
downloads: 'Official downloads and updates', source: 'Source code and license',
downloads: 'Official downloads and updates',
source: 'Source code and license',
uninstallTitle: 'Uninstall AITURK IDE',
uninstallDescription: 'Use your operating systems application manager to uninstall AITURK IDE. Your separate agent data folder is preserved.'
uninstallDescription:
'Use your operating systems application manager to uninstall AITURK IDE. Your separate agent data folder is preserved.'
}
const tr: typeof en = {
intro: 'Kodunuzu, sorunuzu veya fikrinizi paylaşın. AITURK ile birlikte geliştirin.',
pitch: 'TurkServis hesabınızla modellerinize bağlanın.', key: 'TurkServis API anahtarı',
getKey: 'Hesabım ve API anahtarlarım', noModels: 'Bu anahtarla kullanılabilecek model bulunamadı.',
pitch: 'TurkServis hesabınızla modellerinize bağlanın.',
key: 'TurkServis API anahtarı',
getKey: 'Hesabım ve API anahtarlarım',
noModels: 'Bu anahtarla kullanılabilecek model bulunamadı.',
failed: 'TurkServis bağlantısı kurulamadı.',
custom: {
title: 'Özel API bağlantıları', active: 'Etkin', keySet: 'API anahtarı ayarlandı', use: 'Kullan', delete: 'Bağlantıyı sil',
empty: 'Özel bağlantı yok', emptyDesc: 'Aşağıdan OpenAI uyumlu bir API bağlantısı ekleyin.', edit: 'Bağlantıyı düzenle', add: 'Bağlantı ekle',
name: 'Ad', providerId: 'Sağlayıcı kimliği', url: 'API adresi', model: 'Varsayılan model', context: 'Bağlam', auto: 'Otomatik',
apiKey: 'API anahtarı', keepKey: 'Mevcut anahtarı korumak için boş bırakın', optional: 'İsteğe bağlı', newChats: 'Yeni sohbetlerde kullan',
discover: 'Modelleri keşfet', test: 'Sına', newEndpoint: 'Yeni bağlantı', loadFailed: 'Özel bağlantılar yüklenemedi',
saved: 'Özel bağlantı kaydedildi.', saveFailed: 'Kaydedilemedi', reachable: 'API adresine erişiliyor.', validationFailed: 'Bağlantı doğrulanamadı.',
activationFailed: 'Etkinleştirilemedi', deleteFailed: 'Silinemedi', preset: 'TurkServis ayarlarını kullan',
found: n => `API adresine erişiliyor. ${n} model bulundu.`, confirmDelete: name => `${name} silinsin mi?`
title: 'Özel API bağlantıları',
active: 'Etkin',
keySet: 'API anahtarı ayarlandı',
use: 'Kullan',
delete: 'Bağlantıyı sil',
empty: 'Özel bağlantı yok',
emptyDesc: 'Aşağıdan OpenAI uyumlu bir API bağlantısı ekleyin.',
edit: 'Bağlantıyı düzenle',
add: 'Bağlantı ekle',
name: 'Ad',
providerId: 'Sağlayıcı kimliği',
url: 'API adresi',
model: 'Varsayılan model',
context: 'Bağlam',
auto: 'Otomatik',
apiKey: 'API anahtarı',
keepKey: 'Mevcut anahtarı korumak için boş bırakın',
optional: 'İsteğe bağlı',
newChats: 'Yeni sohbetlerde kullan',
discover: 'Modelleri keşfet',
test: 'Sına',
newEndpoint: 'Yeni bağlantı',
loadFailed: 'Özel bağlantılar yüklenemedi',
saved: 'Özel bağlantı kaydedildi.',
saveFailed: 'Kaydedilemedi',
reachable: 'API adresine erişiliyor.',
validationFailed: 'Bağlantı doğrulanamadı.',
activationFailed: 'Etkinleştirilemedi',
deleteFailed: 'Silinemedi',
preset: 'TurkServis ayarlarını kullan',
found: n => `API adresine erişiliyor. ${n} model bulundu.`,
confirmDelete: name => `${name} silinsin mi?`
},
about: 'Hermes Agent tabanlı TurkServis dağıtımı. Kaynak: Nous Research, MIT lisansı.',
downloads: 'Resmî indirmeler ve güncellemeler', source: 'Kaynak kodu ve lisans',
downloads: 'Resmî indirmeler ve güncellemeler',
source: 'Kaynak kodu ve lisans',
uninstallTitle: 'AITURK IDEyi kaldır',
uninstallDescription: 'AITURK IDEyi işletim sisteminin uygulama yöneticisinden kaldırın. Windowsta Ayarlar → Uygulamalar → Yüklü uygulamalar yolunu izleyin. Ayrı ajan veri klasörünüz korunur.'
uninstallDescription:
'AITURK IDEyi işletim sisteminin uygulama yöneticisinden kaldırın. Windowsta Ayarlar → Uygulamalar → Yüklü uygulamalar yolunu izleyin. Ayrı ajan veri klasörünüz korunur.'
}
export function useAiturkCopy() {