summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app/src/routes/zen/util
diff options
context:
space:
mode:
Diffstat (limited to 'packages/console/app/src/routes/zen/util')
-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",
+ },
+ },
+ )
+}