feat: add model management module with provider CRUD

- New /models page with provider list (built-in + custom)
- Add provider via preset selection or custom URL with auto-fetch models
- Delete provider removes from auth.json credential_pool + config.yaml custom_providers
- Auto-switch model on add, fallback switch on delete
- Sync sidebar ModelSelector on all provider changes
- Unified provider presets in shared/providers.ts (frontend + backend)
- Backend uses hardcoded catalog first, live probe as fallback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-04-13 12:15:16 +08:00
parent 3a17d8ac51
commit 9e069a20a1
11 changed files with 1198 additions and 25 deletions
+15
View File
@@ -48,6 +48,21 @@ function handleNav(key: string) {
<span>Jobs</span>
</button>
<button
class="nav-item"
:class="{ active: selectedKey === 'models' }"
@click="handleNav('models')"
>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="3" />
<path d="M12 1v4" /><path d="M12 19v4" />
<path d="M1 12h4" /><path d="M19 12h4" />
<path d="M4.22 4.22l2.83 2.83" /><path d="M16.95 16.95l2.83 2.83" />
<path d="M4.22 19.78l2.83-2.83" /><path d="M16.95 7.05l2.83-2.83" />
</svg>
<span>Models</span>
</button>
<button
class="nav-item"
:class="{ active: selectedKey === 'skills' }"