summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app/src/routes/zen/util/modelsHandler.ts
diff options
context:
space:
mode:
authorJack <[email protected]>2026-04-27 02:46:49 +0800
committerGitHub <[email protected]>2026-04-26 14:46:49 -0400
commit3beadeebff13fefb6f771ce22c3ef7b2736e8245 (patch)
treeb040dc876d7afe0771c18a54e7d0709bc86c4f39 /packages/console/app/src/routes/zen/util/modelsHandler.ts
parentdcee1c36426495716b2bacc7f31ccf54d29a3ac0 (diff)
downloadopencode-3beadeebff13fefb6f771ce22c3ef7b2736e8245.tar.gz
opencode-3beadeebff13fefb6f771ce22c3ef7b2736e8245.zip
feat(go): add Go model listing endpoint (#24304)
Co-authored-by: Frank <[email protected]>
Diffstat (limited to 'packages/console/app/src/routes/zen/util/modelsHandler.ts')
-rw-r--r--packages/console/app/src/routes/zen/util/modelsHandler.ts36
1 files changed, 36 insertions, 0 deletions
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",
+ },
+ },
+ )
+}