summaryrefslogtreecommitdiffhomepage
path: root/js/src/provider/provider.ts
blob: a35645e692e6dbf38818b9241502434c4475049f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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(),
      maxOutputTokens: 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>;
}