import type { ModelSettings } from '../types' import { createSectionRegistry } from '../utils/section-registry' import { ClaudeSettingsCard } from './claude-settings-card' import { GeminiSettingsCard } from './gemini-settings-card' import { GlobalSettingsCard } from './global-settings-card' import { GrokSettingsCard } from './grok-settings-card' import { RatioSettingsCard } from './ratio-settings-card' function formatJsonForEditor(value: string, fallback: string) { const raw = (value ?? '').toString().trim() if (!raw) return fallback try { return JSON.stringify(JSON.parse(raw), null, 2) } catch { return fallback } } const MODELS_SECTIONS = [ { id: 'global', titleKey: 'Global Model Configuration', descriptionKey: 'Configure global model settings', build: (settings: ModelSettings) => ( ), }, { id: 'gemini', titleKey: 'Gemini', descriptionKey: 'Configure Gemini model settings', build: (settings: ModelSettings) => ( ), }, { id: 'claude', titleKey: 'Claude', descriptionKey: 'Configure Claude model settings', build: (settings: ModelSettings) => ( ), }, { id: 'grok', titleKey: 'Grok', descriptionKey: 'Configure xAI Grok model settings', build: (settings: ModelSettings) => ( ), }, { id: 'ratio', titleKey: 'Pricing Ratios', descriptionKey: 'Configure model pricing and ratio settings', build: (settings: ModelSettings) => ( ), }, ] as const export type ModelSectionId = (typeof MODELS_SECTIONS)[number]['id'] const modelsRegistry = createSectionRegistry({ sections: MODELS_SECTIONS, defaultSection: 'global', basePath: '/system-settings/models', urlStyle: 'path', }) export const MODELS_SECTION_IDS = modelsRegistry.sectionIds export const MODELS_DEFAULT_SECTION = modelsRegistry.defaultSection export const getModelsSectionNavItems = modelsRegistry.getSectionNavItems export const getModelsSectionContent = modelsRegistry.getSectionContent