diff --git a/packages/stage-ui/src/stores/providers.ts b/packages/stage-ui/src/stores/providers.ts index 987a6f2ef..f93f11aa8 100644 --- a/packages/stage-ui/src/stores/providers.ts +++ b/packages/stage-ui/src/stores/providers.ts @@ -173,109 +173,6 @@ export const useProvidersStore = defineStore('providers', () => { // Centralized provider metadata with provider factory functions const providerMetadata: Record = { - 'player2': { - id: 'player2', - category: 'chat', - tasks: ['text-generation'], - nameKey: 'settings.pages.providers.provider.player2.title', - name: 'Player2', - descriptionKey: 'settings.pages.providers.provider.player2.description', - description: 'player2.game', - icon: 'i-lobe-icons:player2', - defaultOptions: () => ({ - baseUrl: 'http://localhost:4315/v1/', - }), - createProvider: (config) => { - return createPlayer2((config.baseUrl as string).trim()) - }, - capabilities: { - listModels: async () => [ - { - id: 'player2-model', - name: 'Player2 Model', - provider: 'player2', - }, - ], - }, - validators: { - validateProviderConfig: (config) => { - return !!config.baseUrl - }, - }, - }, - 'player2-speech': { - id: 'player2-speech', - category: 'speech', - tasks: ['text-to-speech'], - nameKey: 'settings.pages.providers.provider.player2.title', - name: 'Player2 Speech', - descriptionKey: 'settings.pages.providers.provider.player2.description', - description: 'player2.game', - icon: 'i-lobe-icons:player2', - defaultOptions: () => ({ - baseUrl: 'http://localhost:4315/v1/', - }), - createProvider: config => createPlayer2((config.baseUrl as string).trim(), 'airi'), - capabilities: { - listVoices: async () => { - return await fetch('http://localhost:4315/v1/tts/voices').then(res => res.json()).then(({ voices }) => (voices as { id: string, language: 'american_english' | 'british_english' | 'japanese' | 'mandarin_chinese' | 'spanish' | 'french' | 'hindi' | 'italian' | 'brazilian_portuguese', name: string, gender: string }[]).map(({ id, language, name, gender }) => ( - { - - id, - name, - provider: 'player2-speech', - gender, - languages: [{ - american_english: { - code: 'en', - title: 'English', - }, - british_english: { - code: 'en', - title: 'English', - }, - japanese: { - code: 'ja', - title: 'Japanese', - }, - mandarin_chinese: { - code: 'zh', - title: 'Chinese', - }, - spanish: { - code: 'es', - title: 'Spanish', - }, - french: { - code: 'fr', - title: 'French', - }, - hindi: { - code: 'hi', - title: 'Hindi', - }, - - italian: { - code: 'it', - title: 'Italian', - }, - brazilian_portuguese: - { - code: 'pt', - title: 'Portuguese', - }, - - }[language]], - } - ))) - }, - }, - validators: { - validateProviderConfig: (config: any) => { - return !!config.baseUrl - }, - }, - }, 'openrouter-ai': { id: 'openrouter-ai', category: 'chat', @@ -1432,6 +1329,109 @@ export const useProvidersStore = defineStore('providers', () => { }, }, }, + 'player2': { + id: 'player2', + category: 'chat', + tasks: ['text-generation'], + nameKey: 'settings.pages.providers.provider.player2.title', + name: 'Player2', + descriptionKey: 'settings.pages.providers.provider.player2.description', + description: 'player2.game', + icon: 'i-lobe-icons:player2', + defaultOptions: () => ({ + baseUrl: 'http://localhost:4315/v1/', + }), + createProvider: (config) => { + return createPlayer2((config.baseUrl as string).trim()) + }, + capabilities: { + listModels: async () => [ + { + id: 'player2-model', + name: 'Player2 Model', + provider: 'player2', + }, + ], + }, + validators: { + validateProviderConfig: (config) => { + return !!config.baseUrl + }, + }, + }, + 'player2-speech': { + id: 'player2-speech', + category: 'speech', + tasks: ['text-to-speech'], + nameKey: 'settings.pages.providers.provider.player2.title', + name: 'Player2 Speech', + descriptionKey: 'settings.pages.providers.provider.player2.description', + description: 'player2.game', + icon: 'i-lobe-icons:player2', + defaultOptions: () => ({ + baseUrl: 'http://localhost:4315/v1/', + }), + createProvider: config => createPlayer2((config.baseUrl as string).trim(), 'airi'), + capabilities: { + listVoices: async () => { + return await fetch('http://localhost:4315/v1/tts/voices').then(res => res.json()).then(({ voices }) => (voices as { id: string, language: 'american_english' | 'british_english' | 'japanese' | 'mandarin_chinese' | 'spanish' | 'french' | 'hindi' | 'italian' | 'brazilian_portuguese', name: string, gender: string }[]).map(({ id, language, name, gender }) => ( + { + + id, + name, + provider: 'player2-speech', + gender, + languages: [{ + american_english: { + code: 'en', + title: 'English', + }, + british_english: { + code: 'en', + title: 'English', + }, + japanese: { + code: 'ja', + title: 'Japanese', + }, + mandarin_chinese: { + code: 'zh', + title: 'Chinese', + }, + spanish: { + code: 'es', + title: 'Spanish', + }, + french: { + code: 'fr', + title: 'French', + }, + hindi: { + code: 'hi', + title: 'Hindi', + }, + + italian: { + code: 'it', + title: 'Italian', + }, + brazilian_portuguese: + { + code: 'pt', + title: 'Portuguese', + }, + + }[language]], + } + ))) + }, + }, + validators: { + validateProviderConfig: (config: any) => { + return !!config.baseUrl + }, + }, + }, } // Configuration validation functions