From 3beadeebff13fefb6f771ce22c3ef7b2736e8245 Mon Sep 17 00:00:00 2001 From: Jack Date: Mon, 27 Apr 2026 02:46:49 +0800 Subject: feat(go): add Go model listing endpoint (#24304) Co-authored-by: Frank --- .../app/src/routes/zen/util/modelsHandler.ts | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 packages/console/app/src/routes/zen/util/modelsHandler.ts (limited to 'packages/console/app/src/routes/zen/util') diff --git a/packages/console/app/src/routes/zen/util/modelsHandler.ts b/packages/console/app/src/routes/zen/util/modelsHandler.ts new file mode 100644 index 000000000..d924e25c8 --- /dev/null +++ b/packages/console/app/src/routes/zen/util/modelsHandler.ts @@ -0,0 +1,36 @@ +import { ZenData } from "@opencode-ai/console-core/model.js" + +export async function optionsHandler() { + return new Response(null, { + status: 200, + headers: { + "Access-Control-Allow-Origin": "*", + "Access-Control-Allow-Methods": "GET, POST, OPTIONS", + "Access-Control-Allow-Headers": "Content-Type, Authorization", + }, + }) +} + +export async function getHandler(opts: { modelList: "lite" | "full"; disabledModels?: string[] }) { + const zenData = ZenData.list(opts.modelList) + + 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]) => ({ + id, + object: "model", + created: Math.floor(Date.now() / 1000), + owned_by: "opencode", + })), + }), + { + headers: { + "Content-Type": "application/json", + }, + }, + ) +} -- cgit v1.2.3