summaryrefslogtreecommitdiffhomepage
path: root/packages/api/src/routes
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-21 19:06:15 +0900
committerAdam Malczewski <[email protected]>2026-05-21 19:06:15 +0900
commit55633c90c0d96e62153a4b6655f3f833a3b46ad4 (patch)
treea75f97b48071eb1ba9e8366d8053a376dde69af5 /packages/api/src/routes
parentd6b208342edf97bafa5b1dcc986b782f9879d141 (diff)
downloaddispatch-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.ts44
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.