Files
zmo-cli/packages/opencode/src/provider/models.ts
T
2025-06-10 13:30:13 -04:00

26 lines
649 B
TypeScript

import { Global } from "../global"
import { Log } from "../util/log"
import path from "path"
export namespace ModelsDev {
const log = Log.create({ service: "models.dev" })
const file = Bun.file(path.join(Global.Path.cache, "models.json"))
export async function get() {
if (await file.exists()) {
refresh()
return file.json()
}
await refresh()
return get()
}
async function refresh() {
log.info("refreshing")
const result = await fetch("https://models.dev/api.json")
if (!result.ok)
throw new Error(`Failed to fetch models.dev: ${result.statusText}`)
await Bun.write(file, result)
}
}