style: emerald theme redesign and ai-assist streaming enhancements

This commit is contained in:
Gemini AI
2025-12-28 11:43:13 +04:00
Unverified
parent d6c2986df8
commit a2d381cfb7
2 changed files with 221 additions and 114 deletions

View File

@@ -98,6 +98,19 @@ export class ModelAdapter {
});
}
private getService(provider: ModelProvider): any {
switch (provider) {
case "qwen":
return this.qwenService;
case "ollama":
return this.ollamaService;
case "zai":
return this.zaiService;
default:
return null;
}
}
private async callWithFallback<T>(
operation: (service: any) => Promise<APIResponse<T>>,
providers: ModelProvider[]
@@ -282,15 +295,16 @@ export class ModelAdapter {
const fallback = this.buildFallbackProviders(this.preferredProvider, "qwen", "ollama", "zai");
const providers: ModelProvider[] = provider ? [provider] : fallback;
// For now we don't handle fallback for streaming strictly, just use first available
const activeProvider = providers[0];
let service: any;
switch (activeProvider) {
case "qwen": service = this.qwenService; break;
case "ollama": service = this.ollamaService; break;
case "zai": service = this.zaiService; break;
const activeProvider = providers.find((candidate) => {
const service = this.getService(candidate);
return this.isProviderAuthenticated(candidate) && !!service?.generateAIAssistStream;
});
if (!activeProvider) {
return { success: false, error: "No authenticated providers available for streaming" };
}
const service = this.getService(activeProvider);
if (!service || !service.generateAIAssistStream) {
return { success: false, error: "Streaming not supported for this provider" };
}