diff options
| author | Frank <[email protected]> | 2025-10-16 15:58:49 -0400 |
|---|---|---|
| committer | Frank <[email protected]> | 2025-10-16 15:58:51 -0400 |
| commit | 88fef05923a748e059afbcf34c83be98ba6763e4 (patch) | |
| tree | 40398ddf86989917f046e7705d3f62635a037450 /packages/console/core/src | |
| parent | 8552f3555e90ba981f7519975b15958d7b0a552f (diff) | |
| download | opencode-88fef05923a748e059afbcf34c83be98ba6763e4.tar.gz opencode-88fef05923a748e059afbcf34c83be98ba6763e4.zip | |
wip: zen
Diffstat (limited to 'packages/console/core/src')
| -rw-r--r-- | packages/console/core/src/model.ts | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/packages/console/core/src/model.ts b/packages/console/core/src/model.ts index 018df5b54..300f92ed0 100644 --- a/packages/console/core/src/model.ts +++ b/packages/console/core/src/model.ts @@ -7,7 +7,7 @@ import { fn } from "./util/fn" import { Actor } from "./actor" import { Resource } from "@opencode-ai/console-resource" -export namespace ZenModel { +export namespace ZenData { const ModelCostSchema = z.object({ input: z.number(), output: z.number(), @@ -16,7 +16,7 @@ export namespace ZenModel { cacheWrite1h: z.number().optional(), }) - export const ModelSchema = z.object({ + const ModelSchema = z.object({ name: z.string(), cost: ModelCostSchema, cost200K: ModelCostSchema.optional(), @@ -24,19 +24,32 @@ export namespace ZenModel { 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(), }), ), }) - export const ModelsSchema = z.record(z.string(), ModelSchema) + const ProviderSchema = z.object({ + api: z.string(), + apiKey: z.string(), + headerMappings: z.record(z.string(), z.string()).optional(), + }) + + const ModelsSchema = z.object({ + models: z.record(z.string(), ModelSchema), + providers: z.record(z.string(), ProviderSchema), + }) - export const list = fn(z.void(), () => ModelsSchema.parse(JSON.parse(Resource.ZEN_MODELS.value))) + export const validate = fn(ModelsSchema, (input) => { + return input + }) + + export const list = fn(z.void(), () => { + const json = JSON.parse(Resource.ZEN_MODELS.value) + return ModelsSchema.parse(json) + }) } export namespace Model { |
