From 34a08cbdb807a3e3bcdd43ac7f570a75df0a899d Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Fri, 3 Jul 2026 14:45:56 -0400 Subject: [PATCH] fix(core): tolerate missing models.dev temperature --- packages/core/src/models-dev.ts | 2 +- packages/core/test/models.test.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/core/src/models-dev.ts b/packages/core/src/models-dev.ts index 8a3fb965bfc..a88aebfe07c 100644 --- a/packages/core/src/models-dev.ts +++ b/packages/core/src/models-dev.ts @@ -67,7 +67,7 @@ export const Model = Schema.Struct({ attachment: Schema.Boolean, reasoning: Schema.Boolean, reasoning_options: Schema.optional(Schema.Array(ReasoningOption)), - temperature: Schema.Boolean, + temperature: Schema.optional(Schema.Boolean), tool_call: Schema.Boolean, interleaved: Schema.optional( Schema.Union([ diff --git a/packages/core/test/models.test.ts b/packages/core/test/models.test.ts index d9b7ed55827..9aa1cedc4df 100644 --- a/packages/core/test/models.test.ts +++ b/packages/core/test/models.test.ts @@ -149,6 +149,22 @@ describe("ModelsDev Service", () => { }), ) + it.effect("allows models.dev entries without temperature metadata", () => + Effect.sync(() => { + const result = Schema.decodeUnknownSync(ModelsDev.Model)({ + id: "no-temperature-model", + name: "No Temperature Model", + release_date: "2026-01-01", + attachment: false, + reasoning: false, + tool_call: true, + limit: { context: 128000, output: 8192 }, + }) + + expect(result.temperature).toBeUndefined() + }), + ) + it.live("get() returns providers from disk when cache file exists", () => Effect.gen(function* () { yield* writeCache(fixture)