import { map } from 'nanostores'; import { workbenchStore } from './workbench'; export interface Shortcut { key: string; ctrlKey?: boolean; shiftKey?: boolean; altKey?: boolean; metaKey?: boolean; ctrlOrMetaKey?: boolean; action: () => void; } export interface Shortcuts { toggleTerminal: Shortcut; } export interface Provider { name: string; isEnabled: boolean; } export interface Settings { shortcuts: Shortcuts; providers: Provider[]; } export const providersList: Provider[] = [ { name: 'Groq', isEnabled: false }, { name: 'HuggingFace', isEnabled: false }, { name: 'OpenAI', isEnabled: false }, { name: 'Anthropic', isEnabled: false }, { name: 'OpenRouter', isEnabled: false }, { name: 'Google', isEnabled: false }, { name: 'Ollama', isEnabled: false }, { name: 'OpenAILike', isEnabled: false }, { name: 'Together', isEnabled: false }, { name: 'Deepseek', isEnabled: false }, { name: 'Mistral', isEnabled: false }, { name: 'Cohere', isEnabled: false }, { name: 'LMStudio', isEnabled: false }, { name: 'xAI', isEnabled: false }, ]; export const shortcutsStore = map({ toggleTerminal: { key: 'j', ctrlOrMetaKey: true, action: () => workbenchStore.toggleTerminal(), }, }); export const settingsStore = map({ shortcuts: shortcutsStore.get(), providers: providersList, }); shortcutsStore.subscribe((shortcuts) => { settingsStore.set({ ...settingsStore.get(), shortcuts, }); });