Spaces:
Running
Running
| import { Hono } from "hono" | |
| import { getProviderConfig } from "~/lib/config" | |
| import { forwardError } from "~/lib/error" | |
| import { createHandlerLogger } from "~/lib/logger" | |
| import { | |
| createProviderProxyResponse, | |
| forwardProviderModels, | |
| } from "~/services/providers/anthropic-proxy" | |
| const logger = createHandlerLogger("provider-models-handler") | |
| export const providerModelRoutes = new Hono() | |
| providerModelRoutes.get("/", async (c) => { | |
| const provider = c.req.param("provider") ?? "" | |
| try { | |
| const providerConfig = getProviderConfig(provider) | |
| if (!providerConfig) { | |
| return c.json( | |
| { | |
| error: { | |
| message: `Provider '${provider}' not found or disabled`, | |
| type: "invalid_request_error", | |
| }, | |
| }, | |
| 404, | |
| ) | |
| } | |
| const upstreamResponse = await forwardProviderModels( | |
| providerConfig, | |
| c.req.raw.headers, | |
| ) | |
| logger.debug("provider.models.response", { | |
| provider, | |
| statusCode: upstreamResponse.status, | |
| }) | |
| return createProviderProxyResponse(upstreamResponse) | |
| } catch (error) { | |
| logger.error("provider.models.error", { | |
| provider, | |
| error, | |
| }) | |
| return await forwardError(c, error) | |
| } | |
| }) | |