agent-orchestrator/ui-electrobun/src/mainview/provider-capabilities.ts
Hibryda 0b9e8b305a feat(electrobun): port all Tauri features — full settings, popup menus, provider capabilities
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
2026-03-20 04:50:57 +01:00

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;
}