Clean up assistants page

This commit is contained in:
Xin Wang
2026-02-09 13:27:19 +08:00
parent 2bbe659897
commit 0ae85513fb

View File

@@ -1,9 +1,9 @@
import React, { useState, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
import { Plus, Search, Play, Copy, Trash2, Edit2, Mic, MessageSquare, Save, Video, PhoneOff, Camera, ArrowLeftRight, Send, Phone, MoreHorizontal, Rocket, AlertTriangle, PhoneCall, CameraOff, Image, Images, CloudSun, Calendar, TrendingUp, Coins, Wrench, Globe, Terminal, X, ClipboardCheck, Sparkles, Volume2, Timer, ChevronDown, Link as LinkIcon, Database, Server, Zap, ExternalLink, Key, BrainCircuit, Ear, Book, Filter } from 'lucide-react'; import { Plus, Search, Play, Copy, Trash2, Mic, MessageSquare, Save, Video, PhoneOff, Camera, ArrowLeftRight, Send, Phone, Rocket, AlertTriangle, PhoneCall, CameraOff, Image, Images, CloudSun, Calendar, TrendingUp, Coins, Wrench, Globe, Terminal, X, ClipboardCheck, Sparkles, Volume2, Timer, ChevronDown, Database, Server, Zap, ExternalLink, Key, BrainCircuit, Ear, Book, Filter } from 'lucide-react';
import { Button, Input, Card, Badge, Drawer, Dialog } from '../components/UI'; import { Button, Input, Badge, Drawer, Dialog } from '../components/UI';
import { ASRModel, Assistant, KnowledgeBase, LLMModel, TabValue, Voice } from '../types'; import { ASRModel, Assistant, KnowledgeBase, LLMModel, TabValue, Voice } from '../types';
import { createAssistant, deleteAssistant, fetchASRModels, fetchAssistantRuntimeConfig, fetchAssistants, fetchKnowledgeBases, fetchLLMModels, fetchVoices, updateAssistant as updateAssistantApi } from '../services/backendApi'; import { createAssistant, deleteAssistant, fetchASRModels, fetchAssistants, fetchKnowledgeBases, fetchLLMModels, fetchVoices, updateAssistant as updateAssistantApi } from '../services/backendApi';
interface ToolItem { interface ToolItem {
id: string; id: string;
@@ -1374,43 +1374,6 @@ export const DebugDrawer: React.FC<{
return localResolved.sessionStartMetadata; return localResolved.sessionStartMetadata;
}; };
const fetchRuntimeMetadataFromDb = async (): Promise<Record<string, any>> => {
try {
const resolved = await fetchAssistantRuntimeConfig(assistant.id);
setResolvedConfigView(
JSON.stringify(
{
assistantId: resolved.assistantId,
warnings: resolved.warnings,
sessionStartMetadata: resolved.sessionStartMetadata || {},
},
null,
2,
),
);
return resolved.sessionStartMetadata || { systemPrompt: assistant.prompt || '', greeting: assistant.opener || '', services: {} };
} catch (error) {
console.error('Failed to load runtime config, using fallback.', error);
const fallback = {
systemPrompt: assistant.prompt || '',
greeting: assistant.opener || '',
services: {},
};
setResolvedConfigView(
JSON.stringify(
{
assistantId: assistant.id,
warnings: ['runtime-config endpoint failed; using local fallback'],
sessionStartMetadata: fallback,
},
null,
2,
),
);
return fallback;
}
};
const closeWs = () => { const closeWs = () => {
if (wsRef.current && wsRef.current.readyState === WebSocket.OPEN) { if (wsRef.current && wsRef.current.readyState === WebSocket.OPEN) {
wsRef.current.send(JSON.stringify({ type: 'session.stop', reason: 'debug_drawer_closed' })); wsRef.current.send(JSON.stringify({ type: 'session.stop', reason: 'debug_drawer_closed' }));
@@ -1439,11 +1402,7 @@ export const DebugDrawer: React.FC<{
return; return;
} }
let metadata = await fetchRuntimeMetadata(); const metadata = await fetchRuntimeMetadata();
if (!metadata || typeof metadata !== 'object') {
// Safety fallback, should not happen with local resolution.
metadata = await fetchRuntimeMetadataFromDb();
}
setWsStatus('connecting'); setWsStatus('connecting');
setWsError(''); setWsError('');