summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app
diff options
context:
space:
mode:
authorFrank <[email protected]>2026-04-26 23:02:18 -0400
committerFrank <[email protected]>2026-04-26 23:02:18 -0400
commit5cf195e0afbb4126908c968f55782ca005754559 (patch)
tree332cd5f7864c20ffb46ab0f99ab1175ff5af554f /packages/console/app
parent244d1debe48ea07c42922600bab0ce79ba4b479e (diff)
downloadopencode-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.ts10
-rw-r--r--packages/console/app/src/routes/zen/util/modelsHandler.ts15
-rw-r--r--packages/console/app/src/routes/zen/v1/models.ts11
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)
}