summaryrefslogtreecommitdiffhomepage
path: root/js/src/app
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-29 11:58:40 -0400
committerDax Raad <[email protected]>2025-05-29 11:58:40 -0400
commit80597cd3fdf149cef87db55f03a3cc0bfd723a7a (patch)
treeb9332733cca2084a86334eb88fdc5115ab37b922 /js/src/app
parent48f81fe4d3a286ead827888e030f9bd89c864dee (diff)
downloadopencode-80597cd3fdf149cef87db55f03a3cc0bfd723a7a.tar.gz
opencode-80597cd3fdf149cef87db55f03a3cc0bfd723a7a.zip
type error fix
Diffstat (limited to 'js/src/app')
-rw-r--r--js/src/app/app.ts (renamed from js/src/app/index.ts)0
-rw-r--r--js/src/app/config.ts79
2 files changed, 0 insertions, 79 deletions
diff --git a/js/src/app/index.ts b/js/src/app/app.ts
index 0c6260bc7..0c6260bc7 100644
--- a/js/src/app/index.ts
+++ b/js/src/app/app.ts
diff --git a/js/src/app/config.ts b/js/src/app/config.ts
deleted file mode 100644
index e68b24bb9..000000000
--- a/js/src/app/config.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-import path from "path";
-import { Log } from "../util/log";
-import { z } from "zod";
-import { App } from ".";
-
-export namespace Config {
- const log = Log.create({ service: "config" });
-
- export const state = App.state("config", async (app) => {
- const result = await load(app.root);
- 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(),
- })
- .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),
- })
- .openapi({
- ref: "provider",
- });
- export type Provider = z.output<typeof Provider>;
-
- export const Info = z
- .object({
- providers: z.record(z.string(), Provider).optional(),
- })
- .strict();
-
- export type Info = z.output<typeof Info>;
-
- export function get() {
- return state();
- }
-
- async function load(directory: string) {
- let result: Info = {};
- for (const file of ["opencode.jsonc", "opencode.json"]) {
- const resolved = path.join(directory, file);
- log.info("searching", { path: resolved });
- try {
- result = await import(path.join(directory, file)).then((mod) =>
- Info.parse(mod.default),
- );
- log.info("found", { path: resolved });
- break;
- } catch (e) {
- if (e instanceof z.ZodError) {
- for (const issue of e.issues) {
- log.info(issue.message);
- }
- throw e;
- }
- continue;
- }
- }
- log.info("loaded", result);
- return result;
- }
-}