diff options
| author | Frank <[email protected]> | 2026-04-26 23:02:18 -0400 |
|---|---|---|
| committer | Frank <[email protected]> | 2026-04-26 23:02:18 -0400 |
| commit | 5cf195e0afbb4126908c968f55782ca005754559 (patch) | |
| tree | 332cd5f7864c20ffb46ab0f99ab1175ff5af554f /packages/console/app | |
| parent | 244d1debe48ea07c42922600bab0ce79ba4b479e (diff) | |
| download | opencode-5cf195e0afbb4126908c968f55782ca005754559.tar.gz opencode-5cf195e0afbb4126908c968f55782ca005754559.zip | |
go: models endpoint
Diffstat (limited to 'packages/console/app')
| -rw-r--r-- | packages/console/app/src/routes/zen/go/v1/models.ts | 10 | ||||
| -rw-r--r-- | packages/console/app/src/routes/zen/util/modelsHandler.ts | 15 | ||||
| -rw-r--r-- | packages/console/app/src/routes/zen/v1/models.ts | 11 |
3 files changed, 18 insertions, 18 deletions
diff --git a/packages/console/app/src/routes/zen/go/v1/models.ts b/packages/console/app/src/routes/zen/go/v1/models.ts index 85db30688..83ef74fb6 100644 --- a/packages/console/app/src/routes/zen/go/v1/models.ts +++ b/packages/console/app/src/routes/zen/go/v1/models.ts @@ -1,10 +1,12 @@ import type { APIEvent } from "@solidjs/start/server" -import { getHandler, optionsHandler } from "../../util/modelsHandler" +import { ZenData } from "@opencode-ai/console-core/model.js" +import { buildModelsResponse, buildOptionsResponse } from "../../util/modelsHandler" export async function OPTIONS(_input: APIEvent) { - return optionsHandler() + return buildOptionsResponse() } -export async function GET(input: APIEvent) { - return getHandler({ modelList: "lite" }) +export async function GET(_input: APIEvent) { + const models = Object.keys(ZenData.list("lite").models) + return buildModelsResponse(models) } diff --git a/packages/console/app/src/routes/zen/util/modelsHandler.ts b/packages/console/app/src/routes/zen/util/modelsHandler.ts index d924e25c8..102e4151b 100644 --- a/packages/console/app/src/routes/zen/util/modelsHandler.ts +++ b/packages/console/app/src/routes/zen/util/modelsHandler.ts @@ -1,6 +1,4 @@ -import { ZenData } from "@opencode-ai/console-core/model.js" - -export async function optionsHandler() { +export async function buildOptionsResponse() { return new Response(null, { status: 200, headers: { @@ -11,16 +9,13 @@ export async function optionsHandler() { }) } -export async function getHandler(opts: { modelList: "lite" | "full"; disabledModels?: string[] }) { - const zenData = ZenData.list(opts.modelList) - +export async function buildModelsResponse(models: string[]) { return new Response( JSON.stringify({ object: "list", - data: Object.entries(zenData.models) - .filter(([id]) => !opts.disabledModels?.includes(id)) - .filter(([id]) => !id.startsWith("alpha-")) - .map(([id, _model]) => ({ + data: models + .filter((id) => !id.startsWith("alpha-")) + .map((id) => ({ id, object: "model", created: Math.floor(Date.now() / 1000), diff --git a/packages/console/app/src/routes/zen/v1/models.ts b/packages/console/app/src/routes/zen/v1/models.ts index d2fc36e45..794f85029 100644 --- a/packages/console/app/src/routes/zen/v1/models.ts +++ b/packages/console/app/src/routes/zen/v1/models.ts @@ -1,18 +1,19 @@ import type { APIEvent } from "@solidjs/start/server" +import { ZenData } from "@opencode-ai/console-core/model.js" import { and, Database, eq, isNull } from "@opencode-ai/console-core/drizzle/index.js" import { KeyTable } from "@opencode-ai/console-core/schema/key.sql.js" import { WorkspaceTable } from "@opencode-ai/console-core/schema/workspace.sql.js" import { ModelTable } from "@opencode-ai/console-core/schema/model.sql.js" -import { optionsHandler, getHandler } from "~/routes/zen/util/modelsHandler" +import { buildOptionsResponse, buildModelsResponse } from "~/routes/zen/util/modelsHandler" export async function OPTIONS(_input: APIEvent) { - return optionsHandler() + return buildOptionsResponse() } export async function GET(input: APIEvent) { const disabledModels = await (() => { const apiKey = input.request.headers.get("authorization")?.split(" ")[1] - if (!apiKey) return [] + if (!apiKey) return [] as string[] return Database.use((tx) => tx @@ -27,5 +28,7 @@ export async function GET(input: APIEvent) { ) })() - return getHandler({ modelList: "full", disabledModels }) + const models = Object.keys(ZenData.list("full").models).filter((id) => !disabledModels.includes(id)) + + return buildModelsResponse(models) } |
