From 6bf15a88031e7c005cf94c3bfac992b881b41ac4 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Sat, 11 Oct 2025 16:03:04 +0800 Subject: [PATCH] refactor(stage-*): cleanup provider pages for all openai compatible ones --- .../src/renderer/layouts/settings.vue | 2 +- apps/stage-web/src/layouts/settings.vue | 4 +- .../pages/settings/providers/anthropic.vue | 104 --------------- .../{302-ai.vue => chat/[providerId].vue} | 6 +- .../providers/{ => chat}/azure-ai-foundry.vue | 0 .../{ => chat}/cloudflare-workers-ai.vue | 1 + .../settings/providers/{ => chat}/ollama.vue | 0 .../src/pages/settings/providers/deepseek.vue | 104 --------------- .../settings/providers/featherless-ai.vue | 104 --------------- .../pages/settings/providers/fireworks-ai.vue | 104 --------------- .../providers/google-generative-ai.vue | 104 --------------- .../src/pages/settings/providers/index.vue | 6 +- .../pages/settings/providers/lm-studio.vue | 105 --------------- .../pages/settings/providers/mistral-ai.vue | 104 --------------- .../pages/settings/providers/modelscope.vue | 125 ------------------ .../pages/settings/providers/moonshot-ai.vue | 104 --------------- .../pages/settings/providers/novita-ai.vue | 104 --------------- .../settings/providers/openai-compatible.vue | 104 --------------- .../src/pages/settings/providers/openai.vue | 104 --------------- .../settings/providers/openrouter-ai.vue | 104 --------------- .../src/pages/settings/providers/player2.vue | 115 ---------------- .../alibaba-cloud-model-studio.vue | 0 .../providers/{ => speech}/elevenlabs.vue | 0 .../providers/{ => speech}/index-tts-vllm.vue | 0 .../{ => speech}/microsoft-speech.vue | 0 .../{ => speech}/openai-audio-speech.vue | 0 .../openai-compatible-audio-speech.vue | 0 .../providers/{ => speech}/player2-speech.vue | 0 .../providers/{ => speech}/volcengine.vue | 0 .../pages/settings/providers/together-ai.vue | 79 ----------- .../openai-audio-transcription.vue | 0 .../openai-compatible-audio-transcription.vue | 0 .../src/pages/settings/providers/vllm.vue | 79 ----------- .../src/pages/settings/providers/xai.vue | 79 ----------- .../providers/ProviderSettingsLayout2.vue | 23 ---- .../providers/SpeechProviderSettings.vue | 7 +- .../TranscriptionProviderSettings.vue | 7 +- .../components/scenarios/providers/index.ts | 1 - 38 files changed, 19 insertions(+), 1764 deletions(-) delete mode 100644 packages/stage-pages/src/pages/settings/providers/anthropic.vue rename packages/stage-pages/src/pages/settings/providers/{302-ai.vue => chat/[providerId].vue} (93%) rename packages/stage-pages/src/pages/settings/providers/{ => chat}/azure-ai-foundry.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => chat}/cloudflare-workers-ai.vue (98%) rename packages/stage-pages/src/pages/settings/providers/{ => chat}/ollama.vue (100%) delete mode 100644 packages/stage-pages/src/pages/settings/providers/deepseek.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/featherless-ai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/fireworks-ai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/google-generative-ai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/lm-studio.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/mistral-ai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/modelscope.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/moonshot-ai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/novita-ai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/openai-compatible.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/openai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/openrouter-ai.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/player2.vue rename packages/stage-pages/src/pages/settings/providers/{ => speech}/alibaba-cloud-model-studio.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => speech}/elevenlabs.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => speech}/index-tts-vllm.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => speech}/microsoft-speech.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => speech}/openai-audio-speech.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => speech}/openai-compatible-audio-speech.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => speech}/player2-speech.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => speech}/volcengine.vue (100%) delete mode 100644 packages/stage-pages/src/pages/settings/providers/together-ai.vue rename packages/stage-pages/src/pages/settings/providers/{ => transcription}/openai-audio-transcription.vue (100%) rename packages/stage-pages/src/pages/settings/providers/{ => transcription}/openai-compatible-audio-transcription.vue (100%) delete mode 100644 packages/stage-pages/src/pages/settings/providers/vllm.vue delete mode 100644 packages/stage-pages/src/pages/settings/providers/xai.vue delete mode 100644 packages/stage-ui/src/components/scenarios/providers/ProviderSettingsLayout2.vue diff --git a/apps/stage-tamagotchi/src/renderer/layouts/settings.vue b/apps/stage-tamagotchi/src/renderer/layouts/settings.vue index fb37aa222..6dbdff5db 100644 --- a/apps/stage-tamagotchi/src/renderer/layouts/settings.vue +++ b/apps/stage-tamagotchi/src/renderer/layouts/settings.vue @@ -111,7 +111,7 @@ const routeHeaderMetadataMap = computed(() => { } for (const metadata of allProvidersMetadata.value) { - map[`/settings/providers/${metadata.id}`] = { + map[`/settings/providers/${metadata.category}/${metadata.id}`] = { subtitle: t('settings.title'), title: t(metadata.nameKey), } diff --git a/apps/stage-web/src/layouts/settings.vue b/apps/stage-web/src/layouts/settings.vue index ca3f2b383..cf95455ef 100644 --- a/apps/stage-web/src/layouts/settings.vue +++ b/apps/stage-web/src/layouts/settings.vue @@ -101,7 +101,7 @@ const routeHeaderMetadataMap = computed(() => { } for (const metadata of allProvidersMetadata.value) { - map[`/settings/providers/${metadata.id}`] = { + map[`/settings/providers/${metadata.category}/${metadata.id}`] = { subtitle: t('settings.title'), title: t(metadata.nameKey), } @@ -138,7 +138,7 @@ onMounted(() => updateThemeColor()) -
+
-import type { RemovableRef } from '@vueuse/core' - -import { - Alert, - ProviderAdvancedSettings, - ProviderApiKeyInput, - ProviderBaseUrlInput, - ProviderBasicSettings, - ProviderSettingsContainer, - ProviderSettingsLayout, -} from '@proj-airi/stage-ui/components' -import { useProviderValidation } from '@proj-airi/stage-ui/composables/use-provider-validation' -import { useProvidersStore } from '@proj-airi/stage-ui/stores/providers' -import { storeToRefs } from 'pinia' -import { computed } from 'vue' - -const providerId = 'anthropic' -const providersStore = useProvidersStore() -const { providers } = storeToRefs(providersStore) as { providers: RemovableRef> } - -// Define computed properties for credentials -const apiKey = computed({ - get: () => providers.value[providerId]?.apiKey || '', - set: (value) => { - if (!providers.value[providerId]) - providers.value[providerId] = {} - providers.value[providerId].apiKey = value - }, -}) - -const baseUrl = computed({ - get: () => providers.value[providerId]?.baseUrl || '', - set: (value) => { - if (!providers.value[providerId]) - providers.value[providerId] = {} - providers.value[providerId].baseUrl = value - }, -}) - -// Use the composable to get validation logic and state -const { - t, - router, - providerMetadata, - isValidating, - isValid, - validationMessage, - handleResetSettings, -} = useProviderValidation(providerId) - - - - - -meta: - layout: settings - stageTransition: - name: slide - diff --git a/packages/stage-pages/src/pages/settings/providers/302-ai.vue b/packages/stage-pages/src/pages/settings/providers/chat/[providerId].vue similarity index 93% rename from packages/stage-pages/src/pages/settings/providers/302-ai.vue rename to packages/stage-pages/src/pages/settings/providers/chat/[providerId].vue index 47206f4b8..58e900541 100644 --- a/packages/stage-pages/src/pages/settings/providers/302-ai.vue +++ b/packages/stage-pages/src/pages/settings/providers/chat/[providerId].vue @@ -14,8 +14,10 @@ import { useProviderValidation } from '@proj-airi/stage-ui/composables/use-provi import { useProvidersStore } from '@proj-airi/stage-ui/stores/providers' import { storeToRefs } from 'pinia' import { computed } from 'vue' +import { useRoute } from 'vue-router' -const providerId = '302-ai' +const route = useRoute() +const providerId = route.params.providerId as string const providersStore = useProvidersStore() const { providers } = storeToRefs(providersStore) as { providers: RemovableRef> } @@ -72,7 +74,7 @@ const { diff --git a/packages/stage-pages/src/pages/settings/providers/azure-ai-foundry.vue b/packages/stage-pages/src/pages/settings/providers/chat/azure-ai-foundry.vue similarity index 100% rename from packages/stage-pages/src/pages/settings/providers/azure-ai-foundry.vue rename to packages/stage-pages/src/pages/settings/providers/chat/azure-ai-foundry.vue diff --git a/packages/stage-pages/src/pages/settings/providers/cloudflare-workers-ai.vue b/packages/stage-pages/src/pages/settings/providers/chat/cloudflare-workers-ai.vue similarity index 98% rename from packages/stage-pages/src/pages/settings/providers/cloudflare-workers-ai.vue rename to packages/stage-pages/src/pages/settings/providers/chat/cloudflare-workers-ai.vue index 3e67b4234..26be5f2c7 100644 --- a/packages/stage-pages/src/pages/settings/providers/cloudflare-workers-ai.vue +++ b/packages/stage-pages/src/pages/settings/providers/chat/cloudflare-workers-ai.vue @@ -52,6 +52,7 @@ const {