diff options
| author | Dax Raad <[email protected]> | 2025-05-29 11:38:55 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-05-29 11:38:55 -0400 |
| commit | 48f81fe4d3a286ead827888e030f9bd89c864dee (patch) | |
| tree | 5715dd3b6a923cab8ce4155f5c66ca54661e6dce /js/src | |
| parent | a96c2ce65c8e87431dce84f0466abb9769e2f7fd (diff) | |
| download | opencode-48f81fe4d3a286ead827888e030f9bd89c864dee.tar.gz opencode-48f81fe4d3a286ead827888e030f9bd89c864dee.zip | |
sync
Diffstat (limited to 'js/src')
| -rw-r--r-- | js/src/app/config.ts | 42 | ||||
| -rw-r--r-- | js/src/server/server.ts | 18 | ||||
| -rw-r--r-- | js/src/session/session.ts | 14 |
3 files changed, 38 insertions, 36 deletions
diff --git a/js/src/app/config.ts b/js/src/app/config.ts index 348eb77c3..e68b24bb9 100644 --- a/js/src/app/config.ts +++ b/js/src/app/config.ts @@ -11,25 +11,33 @@ export namespace Config { return result; }); - export const Model = z.object({ - name: z.string().optional(), - cost: z.object({ - input: z.number(), - inputCached: z.number(), - output: z.number(), - outputCached: z.number(), - }), - contextWindow: z.number(), - maxTokens: z.number().optional(), - attachment: z.boolean(), - reasoning: z.boolean().optional(), - }); + export const Model = z + .object({ + name: z.string().optional(), + cost: z.object({ + input: z.number(), + inputCached: z.number(), + output: z.number(), + outputCached: z.number(), + }), + contextWindow: z.number(), + maxTokens: z.number().optional(), + attachment: z.boolean(), + reasoning: z.boolean().optional(), + }) + .openapi({ + ref: "model", + }); export type Model = z.output<typeof Model>; - export const Provider = z.object({ - options: z.record(z.string(), z.any()).optional(), - models: z.record(z.string(), Model), - }); + export const Provider = z + .object({ + options: z.record(z.string(), z.any()).optional(), + models: z.record(z.string(), Model), + }) + .openapi({ + ref: "provider", + }); export type Provider = z.output<typeof Provider>; export const Info = z diff --git a/js/src/server/server.ts b/js/src/server/server.ts index 98b2cf5cb..ff2d0924b 100644 --- a/js/src/server/server.ts +++ b/js/src/server/server.ts @@ -10,16 +10,6 @@ import { Config } from "../app/config"; import { LLM } from "../llm/llm"; import { Message } from "../session/message"; -const SessionInfo = Session.Info.openapi({ - ref: "Session.Info", -}); - -const ProviderInfo = Config.Provider.openapi({ - ref: "Provider.Info", -}); - -type ProviderInfo = z.output<typeof ProviderInfo>; - export namespace Server { const log = Log.create({ service: "server" }); const PORT = 16713; @@ -92,7 +82,7 @@ export namespace Server { description: "Successfully created session", content: { "application/json": { - schema: resolver(SessionInfo), + schema: resolver(Session.Info), }, }, }, @@ -112,7 +102,7 @@ export namespace Server { description: "Successfully shared session", content: { "application/json": { - schema: resolver(SessionInfo), + schema: resolver(Session.Info), }, }, }, @@ -244,7 +234,7 @@ export namespace Server { description: "List of providers", content: { "application/json": { - schema: resolver(z.record(z.string(), ProviderInfo)), + schema: resolver(z.record(z.string(), Config.Provider)), }, }, }, @@ -252,7 +242,7 @@ export namespace Server { }), async (c) => { const providers = await LLM.providers(); - const result: Record<string, ProviderInfo> = {}; + const result: Record<string, Config.Provider> = {}; for (const [providerID, provider] of Object.entries(providers)) { result[providerID] = provider.info; } diff --git a/js/src/session/session.ts b/js/src/session/session.ts index 4b5030506..5e07764b8 100644 --- a/js/src/session/session.ts +++ b/js/src/session/session.ts @@ -24,11 +24,15 @@ import { Bus } from "../bus"; export namespace Session { const log = Log.create({ service: "session" }); - export const Info = z.object({ - id: Identifier.schema("session"), - shareID: z.string().optional(), - title: z.string(), - }); + export const Info = z + .object({ + id: Identifier.schema("session"), + shareID: z.string().optional(), + title: z.string(), + }) + .openapi({ + ref: "session.info", + }); export type Info = z.output<typeof Info>; export const Event = { |
