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