summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app
diff options
context:
space:
mode:
Diffstat (limited to 'packages/console/app')
-rw-r--r--packages/console/app/src/routes/zen/handler.ts30
1 files changed, 3 insertions, 27 deletions
diff --git a/packages/console/app/src/routes/zen/handler.ts b/packages/console/app/src/routes/zen/handler.ts
index 8b9a9e55f..b0f6c0972 100644
--- a/packages/console/app/src/routes/zen/handler.ts
+++ b/packages/console/app/src/routes/zen/handler.ts
@@ -10,6 +10,7 @@ import { Resource } from "@opencode/console-resource"
import { Billing } from "../../../../core/src/billing"
import { Actor } from "@opencode/console-core/actor.js"
import { WorkspaceTable } from "@opencode/console-core/schema/workspace.sql.js"
+import { ZenModel } from "@opencode/console-core/model.js"
export async function handler(
input: APIEvent,
@@ -34,32 +35,7 @@ export async function handler(
class MonthlyLimitError extends Error {}
class ModelError extends Error {}
- const ModelCostSchema = z.object({
- input: z.number(),
- output: z.number(),
- cacheRead: z.number().optional(),
- cacheWrite5m: z.number().optional(),
- cacheWrite1h: z.number().optional(),
- })
-
- const ModelSchema = z.object({
- cost: ModelCostSchema,
- cost200K: ModelCostSchema.optional(),
- allowAnonymous: z.boolean().optional(),
- providers: z.array(
- z.object({
- id: z.string(),
- api: z.string(),
- apiKey: z.string(),
- model: z.string(),
- weight: z.number().optional(),
- headerMappings: z.record(z.string(), z.string()).optional(),
- disabled: z.boolean().optional(),
- }),
- ),
- })
-
- type Model = z.infer<typeof ModelSchema>
+ type Model = z.infer<typeof ZenModel.ModelSchema>
const FREE_WORKSPACES = [
"wrk_01K46JDFR0E75SG2Q8K172KF3Y", // frank
@@ -230,7 +206,7 @@ export async function handler(
function validateModel(reqModel: string) {
const json = JSON.parse(Resource.ZEN_MODELS.value)
- const allModels = z.record(z.string(), ModelSchema).parse(json)
+ const allModels = ZenModel.ModelsSchema.parse(json)
if (!(reqModel in allModels)) {
throw new ModelError(`Model ${reqModel} not supported`)