Expand AITURK Turkish settings and desktop surfaces for beta 5

This commit is contained in:
2026-09-06 05:03:32 +03:00
parent 237d1e2060
commit 5e76f58637
108 changed files with 6675 additions and 1034 deletions
+196
View File
@@ -0,0 +1,196 @@
import type { MemoryProviderField } from '@/types/hermes'
type FieldCopy = Pick<MemoryProviderField, 'label'> &
Partial<Pick<MemoryProviderField, 'description' | 'info' | 'placeholder'>> & {
options?: Record<string, string | { label: string; description: string }>
}
const reasoning = { minimal: 'En az', low: 'Düşük', medium: 'Orta', high: 'Yüksek', max: 'En yüksek' }
/** Only presentation is translated; provider keys, credentials and enum values remain authoritative. */
export const TR_MEMORY_FIELDS: Record<string, Record<string, FieldCopy>> = {
honcho: {
apiKey: {
label: 'API anahtarı',
description: 'Honcho Cloud kimlik doğrulaması. Kendi sunucunuzdaki temel URL için gerekli değildir.',
placeholder: 'Honcho API anahtarını girin'
},
baseUrl: {
label: 'Temel URL',
description: 'Kendi sunucunuzdaki Honcho adresi. Belirtildiğinde ortam değişkenindeki adresin yerine kullanılır.',
placeholder: 'https://… (kendi sunucunuz)'
},
environment: {
label: 'Ortam',
description: 'Honcho ortamı. Temel URL belirtildiğinde kullanılmaz.',
options: { production: 'Bulut', local: 'Yerel' }
},
workspace: {
label: 'Çalışma alanı',
description: 'Honcho çalışma alanı kimliği. Varsayılan olarak profilin ana bilgisayarını kullanır.'
},
peerName: {
label: 'Kullanıcı kimliği',
description:
'Sabit kullanıcı kimliğiniz. Tek kullanıcılı kurulumlarda farklı platformların belleğini birleştirir.',
placeholder: 'ör. eri'
},
aiPeer: {
label: 'Yapay zekâ kimliği',
description: 'Yapay zekâ tarafının kimlik adı. Varsayılan olarak profilin ana bilgisayarını kullanır.'
},
sessionStrategy: {
label: 'Oturum stratejisi',
description: 'Konuşmaların Honcho oturumlarıyla nasıl eşleştirileceği.',
info: 'Oturum başına: her konuşma ayrı bir Honcho oturumu kullanır. Klasör başına: aynı çalışma klasöründeki konuşmalar ortak oturum kullanır. Depo başına: aynı Git deposundaki konuşmalar ortak oturum kullanır. Genel: tüm konuşmalar tek bir oturumu paylaşır.',
options: {
'per-session': 'Oturum başına',
'per-directory': 'Klasör başına',
'per-repo': 'Depo başına',
global: 'Genel'
}
},
timeout: {
label: 'İstek zaman aşımı',
description:
'Honcho HTTP istekleri için saniye cinsinden zaman aşımı. Boş bırakılırsa varsayılan süre kullanılır.'
},
pinUserPeer: {
label: 'Kullanıcı kimliğini sabitle',
description:
'Ağ geçidinin çalışma anındaki kimliği yerine belirtilen kullanıcı adını kullanır. Tek kullanıcılı kurulumlarda belleği birleştirir.'
},
runtimePeerPrefix: {
label: 'Çalışma anındaki kimlik öneki',
description: 'Ağ geçidinden gelen bilinmeyen kullanıcı kimliklerine eklenecek önek.',
placeholder: 'ör. telegram_'
},
userPeerAliases: {
label: 'Kullanıcı kimliği eşleştirmeleri',
description: 'Ağ geçidinin kullanıcı kimliklerini sabit Honcho kimlikleriyle eşleştirir.'
},
sessionPeerPrefix: {
label: 'Oturum kimliği öneki',
description: 'Oturum kimliği adlarının başına ana bilgisayar adını ekler.'
},
sessions: {
label: 'Özel oturum eşleştirmeleri',
description: 'Çözümleyici anahtarına göre kullanılacak oturum kimlikleri.'
},
saveMessages: { label: 'Mesajları kaydet', description: 'Konuşma mesajlarını Honcho üzerinde saklar.' },
writeFrequency: {
label: 'Yazma sıklığı',
description: 'Mesajların yazılacağı zaman: async, turn, session veya her N turda bir.',
info: 'async: mesajları geldikçe arka planda yazar. turn: her turun sonunda yazar. session: oturum sona erdiğinde yazar. N sayısı: her N turda bir yazar.'
},
dialecticReasoningLevel: {
label: 'Akıl yürütme düzeyi',
description: 'Diyalektik (peer.chat) çağrıları için akıl yürütme çabası.',
options: reasoning
},
dialecticDynamic: {
label: 'Dinamik akıl yürütme',
description: 'Modelin her çağrı için akıl yürütme düzeyini değiştirmesine izin verir.'
},
dialecticMaxChars: {
label: 'En fazla sonuç karakteri',
description: 'Sistem istemine eklenecek diyalektik sonucunun karakter sınırı.'
},
dialecticDepth: { label: 'Derinlik', description: 'Her döngüdeki diyalektik geçiş sayısı (13).' },
dialecticDepthLevels: {
label: 'Geçiş başına düzeyler',
description: 'Her geçişin akıl yürütme düzeyi; dizinin uzunluğu derinlik değeriyle eşleşmelidir.'
},
dialecticMaxInputChars: {
label: 'En fazla girdi karakteri',
description: 'peer.chat() çağrısına gönderilen sorgunun karakter sınırı.'
},
reasoningHeuristic: {
label: 'Uyarlanabilir akıl yürütme',
description: 'Uzun sorgularda akıl yürütme düzeyini yükseltir.'
},
reasoningLevelCap: {
label: 'Akıl yürütme üst sınırı',
description: 'Uyarlanabilir seçimde kullanılabilecek en yüksek akıl yürütme düzeyi.',
options: reasoning
},
recallMode: {
label: 'Bellekten getirme yöntemi',
description: 'Bellek bilgisinin getirilme yöntemi: karma, yalnızca bağlam veya yalnızca araçlar.',
info: 'Karma: otomatik eklenen bağlam ve gerektiğinde bellek araçları. Yalnızca bağlam: araçlar olmadan bağlama ekleme. Yalnızca araçlar: model belleği açıkça sorgular; bağlama otomatik ekleme yapılmaz.',
options: { hybrid: 'Karma', context: 'Yalnızca bağlam', tools: 'Yalnızca araçlar' }
},
contextTokens: {
label: 'Bağlam token sınırı',
description: 'Otomatik eklenen bağlam için token sınırı. Boş bırakılırsa sınır uygulanmaz.',
placeholder: '(sınırsız)'
},
initOnSessionStart: {
label: 'Oturum başında hazırla',
description: 'Araçlar modunda oturumu ilk araç çağrısını beklemeden başlangıçta hazırlar.'
},
messageMaxChars: {
label: 'Mesaj karakter sınırı',
description: 'Honchoya gönderilen her mesaj için en fazla karakter sayısı.'
},
observationMode: {
label: 'Gözlem yöntemi',
description:
'Kimlik başına gözlem ön ayarı. Yönlü gözlem tüm yönleri izler; birleşik gözlem ortak bir görünüm kullanır.',
options: { directional: 'Yönlü', unified: 'Birleşik' }
}
},
hindsight: {
mode: {
label: 'Bağlantı yöntemi',
description: 'AITURK’ün Hindsight ile bağlantı kurma yöntemi.',
options: {
cloud: { label: 'Bulut', description: 'Hindsight Cloud API; yalnızca API anahtarı gerektirir.' },
local_external: { label: 'Mevcut yerel sunucu', description: 'Çalışan bir Hindsight sunucusuna bağlanır.' }
}
},
api_key: {
label: 'API anahtarı',
description: 'Hindsight API kimlik doğrulaması için kullanılır.',
placeholder: 'Hindsight API anahtarını girin'
},
api_url: { label: 'API adresi' },
bank_id: { label: 'Bellek bankası kimliği' },
recall_budget: { label: 'Bellekten getirme bütçesi', options: { low: 'Düşük', mid: 'Orta', high: 'Yüksek' } }
}
}
const GROUPS: Record<string, string> = {
Connection: 'Bağlantı',
Identity: 'Kimlik',
Session: 'Oturum',
'Message writing': 'Mesajların yazılması',
Dialectic: 'Diyalektik',
Reasoning: 'Akıl yürütme',
Recall: 'Bellekten getirme',
Limits: 'Sınırlar',
Observation: 'Gözlem'
}
export function localizeMemoryField(provider: string, field: MemoryProviderField, locale: string): MemoryProviderField {
const copy = locale === 'tr' ? TR_MEMORY_FIELDS[provider]?.[field.key] : undefined
if (!copy) {
return field
}
const { options, ...text } = copy
return {
...field,
...text,
group: GROUPS[field.group] ?? field.group,
options: field.options.map(option => {
const translated = options?.[option.value]
return translated
? { ...option, ...(typeof translated === 'string' ? { label: translated } : translated) }
: option
})
}
}