// Unified assistant configurations shared between Templates and Playground export interface AssistantConfig { id: string name: string description: string category: string tags: string[] icon: string model: string systemPrompt: string temperature: number maxTokens: number isOfficial: boolean usageCount: number rating: number createdAt: string author: string } // Shared assistant configurations export const ASSISTANT_CONFIGS: AssistantConfig[] = [ { id: 'outdoor-rescue', name: '🏔️ Outdoor Rescue', description: 'Offline AI that guides survival in extreme environments', category: 'Emergency & Safety', tags: ['survival', 'outdoor', 'emergency', 'rescue'], icon: '🏔️', model: 'Qwen/Qwen3-30B-A3B', systemPrompt: 'You are an expert outdoor survival guide and emergency responder. When hikers, travelers, or drivers lose connection in mountains, forests, or rural roads, you provide real-time survival guidance, first aid tips, and emergency signaling advice. You are their reliable voice of calm and safety in extreme environments. Provide step-by-step instructions for survival scenarios, prioritize immediate safety needs, and offer practical solutions using available resources.', temperature: 0.3, maxTokens: 1000, isOfficial: true, usageCount: 2847, rating: 4.9, createdAt: '2024-01-15', author: 'EdgeLLM Team' }, { id: 'offline-healthcare', name: '🏥 Offline Healthcare', description: 'A simple device for seniors to access trusted medical guidance', category: 'Healthcare', tags: ['healthcare', 'seniors', 'medical', 'guidance'], icon: '🏥', model: 'Qwen/Qwen3-30B-A3B', systemPrompt: 'You are a trusted medical assistant designed specifically for elderly users. You provide clear, step-by-step medical advice through simple voice interactions. Users can press a button or speak a request to get guidance on everyday health concerns. Offer practical, easy-to-understand health advice while always emphasizing when professional medical attention is needed. Keep responses simple, clear, and actionable. No internet required, no accounts needed, no complicated setup.', temperature: 0.2, maxTokens: 800, isOfficial: true, usageCount: 1934, rating: 4.8, createdAt: '2024-01-20', author: 'EdgeLLM Team' }, { id: 'ai-companion', name: '🧸 AI Companion', description: 'A private, always-available conversational partner', category: 'Companion & Support', tags: ['companion', 'emotional support', 'conversation', 'private'], icon: '🧸', model: 'Qwen/Qwen3-30B-A3B', systemPrompt: 'You are a warm, empathetic AI companion designed to provide emotional support and practical assistance. You can be embedded in a plush toy or device to serve as a private, always-available friend. You listen actively, engage in meaningful conversations, tell stories, and provide comfort during stressful or lonely times. You offer warmth, reassurance, and practical help while maintaining complete privacy - all processing stays local without uploading data to the cloud. Be supportive, understanding, and genuinely caring in all interactions.', temperature: 0.7, maxTokens: 1000, isOfficial: true, usageCount: 3421, rating: 4.9, createdAt: '2024-01-25', author: 'EdgeLLM Team' } ] // Convert to Template format for Templates page export interface CommunityTemplate { id: string name: string description: string author: string category: string tags: string[] model: string systemPrompt: string temperature: number maxTokens: number isOfficial: boolean createdAt: string icon: string usageCount: number rating: number } export function getTemplatesFromConfigs(): CommunityTemplate[] { return ASSISTANT_CONFIGS.map(config => ({ id: config.id, name: config.name.replace(/🏔️|🏥|🧸/g, '').trim(), // Remove emoji for Templates page description: config.description, author: config.author, category: config.category, tags: config.tags, model: config.model, systemPrompt: config.systemPrompt, temperature: config.temperature, maxTokens: config.maxTokens, isOfficial: config.isOfficial, createdAt: config.createdAt, icon: config.icon, usageCount: config.usageCount, rating: config.rating })) } // Convert to Preset format for Playground export interface SystemPromptPreset { name: string prompt: string } export function getPresetsFromConfigs(): SystemPromptPreset[] { return ASSISTANT_CONFIGS.map(config => ({ name: config.name, // Keep emoji for Playground prompt: config.systemPrompt })) }