summaryrefslogtreecommitdiffhomepage
path: root/js/src/provider
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/provider')
-rw-r--r--js/src/provider/provider.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/js/src/provider/provider.ts b/js/src/provider/provider.ts
new file mode 100644
index 000000000..44482b6db
--- /dev/null
+++ b/js/src/provider/provider.ts
@@ -0,0 +1,32 @@
+import z from "zod";
+
+export namespace Provider {
+ 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: "Provider.Model",
+ });
+ export type Model = z.output<typeof Model>;
+
+ export const Info = z
+ .object({
+ options: z.record(z.string(), z.any()).optional(),
+ models: z.record(z.string(), Model),
+ })
+ .openapi({
+ ref: "Provider.Info",
+ });
+ export type Info = z.output<typeof Info>;
+}