summaryrefslogtreecommitdiffhomepage
path: root/js/src
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-29 11:38:55 -0400
committerDax Raad <[email protected]>2025-05-29 11:38:55 -0400
commit48f81fe4d3a286ead827888e030f9bd89c864dee (patch)
tree5715dd3b6a923cab8ce4155f5c66ca54661e6dce /js/src
parenta96c2ce65c8e87431dce84f0466abb9769e2f7fd (diff)
downloadopencode-48f81fe4d3a286ead827888e030f9bd89c864dee.tar.gz
opencode-48f81fe4d3a286ead827888e030f9bd89c864dee.zip
sync
Diffstat (limited to 'js/src')
-rw-r--r--js/src/app/config.ts42
-rw-r--r--js/src/server/server.ts18
-rw-r--r--js/src/session/session.ts14
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 = {