summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-07-31 23:47:23 -0400
committerDax Raad <[email protected]>2025-07-31 23:47:42 -0400
commita0d2e53bde04878ec9dc5594f6b118232b569775 (patch)
treef239cad0fd947bc260afb0e70bfd5a88b2e422b4
parent851e900982d263245175742472c779783264e251 (diff)
downloadopencode-a0d2e53bde04878ec9dc5594f6b118232b569775.tar.gz
opencode-a0d2e53bde04878ec9dc5594f6b118232b569775.zip
poll for models.dev changes
-rw-r--r--packages/opencode/src/provider/models.ts11
1 files changed, 5 insertions, 6 deletions
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts
index ef5108616..b3091a765 100644
--- a/packages/opencode/src/provider/models.ts
+++ b/packages/opencode/src/provider/models.ts
@@ -50,18 +50,15 @@ export namespace ModelsDev {
export type Provider = z.infer<typeof Provider>
export async function get() {
+ refresh()
const file = Bun.file(filepath)
const result = await file.json().catch(() => {})
- if (result) {
- refresh()
- return result as Record<string, Provider>
- }
- refresh()
+ if (result) return result as Record<string, Provider>
const json = await data()
return JSON.parse(json) as Record<string, Provider>
}
- async function refresh() {
+ export async function refresh() {
const file = Bun.file(filepath)
log.info("refreshing")
const result = await fetch("https://models.dev/api.json", {
@@ -72,3 +69,5 @@ export namespace ModelsDev {
if (result && result.ok) await Bun.write(file, result)
}
}
+
+setInterval(() => ModelsDev.refresh(), 60 * 1000).unref()