Something went wrong. Try again.
fork of prime agent with changes i want but are not upstreamable probqbly (and some fixes)
Something went wrong. Try again.
2.1 kB · 49 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import type { Api, Model } from "../src/types.js";
export function renderModelsFile(providers: Record<string, Record<string, Model<Api>>>): string { let output = `// This file is auto-generated by scripts/generate-models.ts// Do not edit manually - run 'npm run generate-models' to update
import type { Model } from "./types.js";
export const MODELS = {`;
for (const providerId of Object.keys(providers).sort()) { const models = providers[providerId]; output += `\t${JSON.stringify(providerId)}: {\n`;
for (const modelId of Object.keys(models).sort()) { const model = models[modelId]; output += `\t\t${JSON.stringify(model.id)}: {\n`; output += `\t\t\tid: ${JSON.stringify(model.id)},\n`; output += `\t\t\tname: ${JSON.stringify(model.name)},\n`; output += `\t\t\tapi: ${JSON.stringify(model.api)},\n`; output += `\t\t\tprovider: ${JSON.stringify(model.provider)},\n`; if (model.baseUrl !== undefined) { output += `\t\t\tbaseUrl: ${JSON.stringify(model.baseUrl)},\n`; } if (model.headers) output += `\t\t\theaders: ${JSON.stringify(model.headers)},\n`; if (model.compat) output += `\t\t\tcompat: ${JSON.stringify(model.compat)},\n`; output += `\t\t\treasoning: ${model.reasoning},\n`; if (model.thinkingLevelMap) { output += `\t\t\tthinkingLevelMap: ${JSON.stringify(model.thinkingLevelMap)},\n`; } output += `\t\t\tinput: [${model.input.map((input) => JSON.stringify(input)).join(", ")}],\n`; output += `\t\t\tcost: {\n`; output += `\t\t\t\tinput: ${model.cost.input},\n`; output += `\t\t\t\toutput: ${model.cost.output},\n`; output += `\t\t\t\tcacheRead: ${model.cost.cacheRead},\n`; output += `\t\t\t\tcacheWrite: ${model.cost.cacheWrite},\n`; output += `\t\t\t},\n`; output += `\t\t\tcontextWindow: ${model.contextWindow},\n`; output += `\t\t\tmaxTokens: ${model.maxTokens},\n`; if (model.featured) output += `\t\t\tfeatured: true,\n`; output += `\t\t} satisfies Model<${JSON.stringify(model.api)}>,\n`; }
output += `\t},\n`; }
return `${output}} as const;\n`;}