diff options
| author | Adam Malczewski <[email protected]> | 2026-05-21 19:06:15 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-05-21 19:06:15 +0900 |
| commit | 55633c90c0d96e62153a4b6655f3f833a3b46ad4 (patch) | |
| tree | a75f97b48071eb1ba9e8366d8053a376dde69af5 /packages/api/src/routes | |
| parent | d6b208342edf97bafa5b1dcc986b782f9879d141 (diff) | |
| download | dispatch-55633c90c0d96e62153a4b6655f3f833a3b46ad4.tar.gz dispatch-55633c90c0d96e62153a4b6655f3f833a3b46ad4.zip | |
refactor: gut model/tag/fallback/agent-template system, fix Docker setup
- Remove ModelResolver, model definitions, model tags, fallback order, agent templates
- Remove all [[models]], [agents], and fallback from dispatch.toml and config schema
- ModelRegistry is now a pure key-state manager
- dispatch.toml reduced to keys + permissions only
- Docker: fix entrypoint for existing UID, skip bun install in frontend container
- Docker: scoped build cache prune in bin/clean
Diffstat (limited to 'packages/api/src/routes')
| -rw-r--r-- | packages/api/src/routes/models.ts | 44 |
1 files changed, 3 insertions, 41 deletions
diff --git a/packages/api/src/routes/models.ts b/packages/api/src/routes/models.ts index ca58e38..86411f1 100644 --- a/packages/api/src/routes/models.ts +++ b/packages/api/src/routes/models.ts @@ -1,4 +1,4 @@ -import type { ModelRegistry, ModelResolver } from "@dispatch/core"; +import type { ModelRegistry } from "@dispatch/core"; import { ANTHROPIC_MODELS_FALLBACK, type ClaudeAccount, @@ -20,15 +20,12 @@ import { import { Hono } from "hono"; let getRegistry: () => ModelRegistry | null = () => null; -let getResolver: () => ModelResolver | null = () => null; let getAccounts: () => ClaudeAccount[] = () => []; export function setModelsGetter( registryGetter: () => ModelRegistry | null, - resolverGetter: () => ModelResolver | null, ): void { getRegistry = registryGetter; - getResolver = resolverGetter; } export function setAccountsGetter(getter: () => ClaudeAccount[]): void { @@ -45,11 +42,9 @@ export const modelsRoutes = new Hono(); modelsRoutes.get("/", (c) => { const registry = getRegistry(); if (!registry) { - return c.json({ models: [], tags: [], keys: [] }); + return c.json({ keys: [] }); } - const models = registry.getModels(); - const tags = registry.getAllTags(); const keyStates = registry.getKeys(); const keys = keyStates.map((ks) => ({ @@ -60,40 +55,7 @@ modelsRoutes.get("/", (c) => { exhaustedAt: ks.exhaustedAt ?? null, })); - return c.json({ models, tags, keys }); -}); - -modelsRoutes.get("/resolve", (c) => { - const registry = getRegistry(); - const resolver = getResolver(); - if (!registry || !resolver) { - return c.json({ resolved: null, reason: "no models configured" }); - } - - const tag = c.req.query("tag"); - if (!tag) { - return c.json({ error: "tag query parameter is required" }, 400); - } - - const matchingModels = registry.getModelsByTag(tag); - if (matchingModels.length === 0) { - return c.json({ resolved: null, reason: "no models match tag" }); - } - - const resolved = resolver.resolve(tag); - if (!resolved) { - return c.json({ resolved: null, reason: "all keys exhausted for matching providers" }); - } - - return c.json({ - resolved: { - model: resolved.model, - key: { - id: resolved.key.id, - provider: resolved.key.provider, - }, - }, - }); + return c.json({ keys }); }); // Fetch available models for a specific provider key. |
