diff options
| author | Frank <[email protected]> | 2025-09-26 15:18:22 -0400 |
|---|---|---|
| committer | Frank <[email protected]> | 2025-09-26 15:18:24 -0400 |
| commit | 57e1bffbd5884ff5be8ad597083610a861709d7a (patch) | |
| tree | 6ef6b6215135093c075fd15aaca06210c519237b /packages/console/app/src | |
| parent | f321661b4c2446dd625adcf874d872bad1e90d51 (diff) | |
| download | opencode-57e1bffbd5884ff5be8ad597083610a861709d7a.tar.gz opencode-57e1bffbd5884ff5be8ad597083610a861709d7a.zip | |
zen: model management helper
Diffstat (limited to 'packages/console/app/src')
| -rw-r--r-- | packages/console/app/src/routes/zen/handler.ts | 30 |
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`) |
