New components (8): - provider-capabilities.ts: per-provider feature flags (claude/codex/ollama) - settings/AppearanceSettings.svelte: theme, fonts, cursor, scrollback - settings/AgentSettings.svelte: shell, CWD, permissions, providers - settings/SecuritySettings.svelte: keyring, secrets, branch policies - settings/ProjectSettings.svelte: per-project provider/model/worktree/sandbox - settings/OrchestrationSettings.svelte: wake strategy, notifications, anchors - settings/AdvancedSettings.svelte: logging, OTLP, plugins, import/export Updated: - ChatInput: radial context indicator (78% demo, color-coded arc), 4 popup menus (upload/context/web/slash), provider-gated icons - SettingsDrawer: 6-category sidebar shell - AgentPane: passes provider + contextPct to ChatInput
45 lines
956 B
TypeScript
45 lines
956 B
TypeScript
export type ProviderId = 'claude' | 'codex' | 'ollama';
|
|
|
|
export interface ProviderCapabilities {
|
|
upload: boolean;
|
|
context: boolean;
|
|
web: boolean;
|
|
slash: boolean;
|
|
images: boolean;
|
|
defaultModel: string;
|
|
label: string;
|
|
}
|
|
|
|
export const PROVIDER_CAPABILITIES: Record<ProviderId, ProviderCapabilities> = {
|
|
claude: {
|
|
upload: true,
|
|
context: true,
|
|
web: true,
|
|
slash: true,
|
|
images: true,
|
|
defaultModel: 'claude-opus-4-5',
|
|
label: 'Claude',
|
|
},
|
|
codex: {
|
|
upload: true,
|
|
context: true,
|
|
web: false,
|
|
slash: true,
|
|
images: false,
|
|
defaultModel: 'gpt-5.4',
|
|
label: 'Codex',
|
|
},
|
|
ollama: {
|
|
upload: false,
|
|
context: true,
|
|
web: false,
|
|
slash: true,
|
|
images: false,
|
|
defaultModel: 'qwen3:8b',
|
|
label: 'Ollama',
|
|
},
|
|
};
|
|
|
|
export function getCapabilities(provider: string): ProviderCapabilities {
|
|
return PROVIDER_CAPABILITIES[provider as ProviderId] ?? PROVIDER_CAPABILITIES.claude;
|
|
}
|