From 0e3ae278045c5f5eaa61f63e0096ec5c908aa15c Mon Sep 17 00:00:00 2001 From: zhangmo8 Date: Mon, 18 May 2026 10:18:01 +0800 Subject: [PATCH 1/2] fix: update TTS references and localization across components --- .../presenter/agentRuntimePresenter/index.ts | 12 ++++--- .../llmProviderPresenter/aiSdk/runtime.ts | 18 +++++++--- .../settings/components/ProviderModelList.vue | 2 +- .../components/VoiceAIProviderConfig.vue | 36 +++++++++---------- .../components/settings/ModelConfigDialog.vue | 4 +-- .../components/settings/TtsSettingsFields.vue | 16 ++++----- src/renderer/src/i18n/da-DK/settings.json | 4 +-- src/renderer/src/i18n/en-US/settings.json | 4 +-- src/renderer/src/i18n/fa-IR/settings.json | 4 +-- src/renderer/src/i18n/fr-FR/settings.json | 4 +-- src/renderer/src/i18n/he-IL/settings.json | 4 +-- src/renderer/src/i18n/ja-JP/settings.json | 4 +-- src/renderer/src/i18n/ko-KR/settings.json | 4 +-- src/renderer/src/i18n/pt-BR/settings.json | 4 +-- src/renderer/src/i18n/ru-RU/settings.json | 4 +-- src/renderer/src/i18n/zh-CN/settings.json | 4 +-- src/renderer/src/i18n/zh-HK/settings.json | 4 +-- src/renderer/src/i18n/zh-TW/settings.json | 4 +-- 18 files changed, 75 insertions(+), 61 deletions(-) diff --git a/src/main/presenter/agentRuntimePresenter/index.ts b/src/main/presenter/agentRuntimePresenter/index.ts index ac7198b10..73dc22488 100644 --- a/src/main/presenter/agentRuntimePresenter/index.ts +++ b/src/main/presenter/agentRuntimePresenter/index.ts @@ -58,6 +58,7 @@ import { supportsOpenAIImageGenerationSettings } from '@shared/imageGenerationSettings' import { isDeepSeekSeriesModelId } from '@shared/model' +import { isTtsModelConfig, isTtsModelId } from '@shared/ttsSettings' import { nanoid } from 'nanoid' import type { SQLitePresenter } from '../sqlitePresenter' import { eventBus, SendTarget } from '@/eventbus' @@ -1963,6 +1964,9 @@ export class AgentRuntimePresenter implements IAgentImplementation { try { let providerMessages = injectedMessages let providerMaxTokens = requestMaxTokens + const isTtsRequest = + isTtsModelConfig(requestModelConfig) || isTtsModelId(requestModelId) + const effectiveRequestTools: MCPToolDefinition[] = isTtsRequest ? [] : requestTools if (!bypassContextBudget) { const protectedSteerTailCount = @@ -1971,7 +1975,7 @@ export class AgentRuntimePresenter implements IAgentImplementation { : 0 let requestPreflight = preflightRequestContext({ messages: injectedMessages, - tools: requestTools, + tools: effectiveRequestTools, contextLength: requestModelConfig.contextLength, requestedMaxTokens: requestMaxTokens, minimumProtectedTailCount: protectedSteerTailCount @@ -1988,7 +1992,7 @@ export class AgentRuntimePresenter implements IAgentImplementation { baseSystemPrompt, contextLength: requestModelConfig.contextLength, requestedMaxTokens: requestPreflight.requestedMaxTokens, - tools: requestTools, + tools: effectiveRequestTools, supportsVision, supportsAudioInput, interleavedReasoning, @@ -2001,7 +2005,7 @@ export class AgentRuntimePresenter implements IAgentImplementation { } requestPreflight = preflightRequestContext({ messages: requestMessages, - tools: requestTools, + tools: effectiveRequestTools, contextLength: requestModelConfig.contextLength, requestedMaxTokens: requestMaxTokens, minimumProtectedTailCount: protectedSteerTailCount @@ -2041,7 +2045,7 @@ export class AgentRuntimePresenter implements IAgentImplementation { requestModelConfig, requestTemperature, providerMaxTokens, - requestTools + effectiveRequestTools )) { if (!didConsumeSteerBatch && claimedSteerBatch.length > 0) { pendingInputCoordinator.consumeClaimedSteerBatch(sessionId) diff --git a/src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts b/src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts index 84d7ce9e3..8ae3b368c 100644 --- a/src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts +++ b/src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts @@ -32,6 +32,8 @@ import type { LLMCoreStreamEvent } from '@shared/types/core/llm-events' import { mcpToolsToAISDKTools } from './toolMapper' import { mapMessagesToModelMessages } from './messageMapper' import { buildProviderOptions } from './providerOptionsMapper' +import { ProxyAgent } from 'undici' +import { proxyConfig } from '../../proxyConfig' import { type AiSdkProviderKind, createAiSdkProviderContext } from './providerFactory' import { adaptAiSdkStream } from './streamAdapter' @@ -228,9 +230,11 @@ async function executeTtsPatternA( const controller = new AbortController() const timeoutId = timeout ? setTimeout(() => controller.abort(), timeout) : undefined + const proxyUrl = proxyConfig.getProxyUrl() + const dispatcher = proxyUrl ? new ProxyAgent(proxyUrl) : undefined try { - const response = await fetch(url, { + const fetchInit: RequestInit & { dispatcher?: ProxyAgent } = { method: 'POST', headers: { ...defaultHeaders, @@ -239,7 +243,9 @@ async function executeTtsPatternA( }, body: JSON.stringify(body), signal: controller.signal - }) + } + if (dispatcher) fetchInit.dispatcher = dispatcher + const response = await fetch(url, fetchInit) if (!response.ok) { const errText = await response.text().catch(() => '') @@ -283,9 +289,11 @@ async function executeTtsPatternB( const controller = new AbortController() const timeoutId = timeout ? setTimeout(() => controller.abort(), timeout) : undefined + const proxyUrl = proxyConfig.getProxyUrl() + const dispatcher = proxyUrl ? new ProxyAgent(proxyUrl) : undefined try { - const response = await fetch(url, { + const fetchInit: RequestInit & { dispatcher?: ProxyAgent } = { method: 'POST', headers: { ...defaultHeaders, @@ -294,7 +302,9 @@ async function executeTtsPatternB( }, body: JSON.stringify(body), signal: controller.signal - }) + } + if (dispatcher) fetchInit.dispatcher = dispatcher + const response = await fetch(url, fetchInit) if (!response.ok) { const errText = await response.text().catch(() => '') diff --git a/src/renderer/settings/components/ProviderModelList.vue b/src/renderer/settings/components/ProviderModelList.vue index c970888d8..d4b45ff76 100644 --- a/src/renderer/settings/components/ProviderModelList.vue +++ b/src/renderer/settings/components/ProviderModelList.vue @@ -453,7 +453,7 @@ const hasModelCapability = (model: RENDERER_MODEL_META, capability: ModelCapabil const getModelTypeLabel = (type: ModelType) => { if (type === ModelType.TTS) { - return t('settings.provider.voiceai.title') + return t('settings.provider.tts.title') } return t(`model.filter.typeOptions.${type}`) } diff --git a/src/renderer/settings/components/VoiceAIProviderConfig.vue b/src/renderer/settings/components/VoiceAIProviderConfig.vue index 8cdb2a3a8..6483142c3 100644 --- a/src/renderer/settings/components/VoiceAIProviderConfig.vue +++ b/src/renderer/settings/components/VoiceAIProviderConfig.vue @@ -6,9 +6,9 @@
-

{{ t('settings.provider.voiceai.title') }}

+

{{ t('settings.provider.tts.title') }}

- {{ t('settings.provider.voiceai.description') }} + {{ t('settings.provider.tts.description') }}

@@ -18,11 +18,11 @@

- {{ t('settings.provider.voiceai.audioFormat.helper') }} + {{ t('settings.provider.tts.audioFormat.helper') }}

- {{ t('settings.provider.voiceai.language.helper') }} + {{ t('settings.provider.tts.language.helper') }}

- {{ t('settings.provider.voiceai.model.helper') }} + {{ t('settings.provider.tts.model.helper') }}

- {{ t('settings.provider.voiceai.agentId.helper') }} + {{ t('settings.provider.tts.agentId.helper') }}

@@ -95,7 +95,7 @@
{{ temperature.toFixed(2) }}
@@ -108,14 +108,14 @@ @update:model-value="onTemperatureChange" />

- {{ t('settings.provider.voiceai.temperature.helper') }} + {{ t('settings.provider.tts.temperature.helper') }}

{{ topP.toFixed(2) }}
@@ -128,7 +128,7 @@ @update:model-value="onTopPChange" />

- {{ t('settings.provider.voiceai.topP.helper') }} + {{ t('settings.provider.tts.topP.helper') }}

diff --git a/src/renderer/src/components/settings/ModelConfigDialog.vue b/src/renderer/src/components/settings/ModelConfigDialog.vue index d87fdc3b0..71eaed14f 100644 --- a/src/renderer/src/components/settings/ModelConfigDialog.vue +++ b/src/renderer/src/components/settings/ModelConfigDialog.vue @@ -177,7 +177,7 @@ {{ t('settings.model.modelConfig.type.options.imageGeneration') }} - {{ t('settings.provider.voiceai.title') }} + {{ t('settings.provider.tts.title') }} @@ -241,7 +241,7 @@ {{ t('settings.model.modelConfig.apiEndpoint.options.image') }} - {{ t('settings.provider.voiceai.title') }} + {{ t('settings.provider.tts.title') }} diff --git a/src/renderer/src/components/settings/TtsSettingsFields.vue b/src/renderer/src/components/settings/TtsSettingsFields.vue index 8a7a40204..93144525d 100644 --- a/src/renderer/src/components/settings/TtsSettingsFields.vue +++ b/src/renderer/src/components/settings/TtsSettingsFields.vue @@ -1,29 +1,29 @@