diff --git a/packages/core/src/session/runner/model.ts b/packages/core/src/session/runner/model.ts index 57806781ca..ffc86a9312 100644 --- a/packages/core/src/session/runner/model.ts +++ b/packages/core/src/session/runner/model.ts @@ -2,7 +2,7 @@ export * as SessionRunnerModel from "./model" import { makeLocationNode } from "../../effect/app-node" import { Model } from "@opencode-ai/llm" -import { Context, Effect, Layer, Schema } from "effect" +import { Context, Effect, Layer, Predicate, Schema } from "effect" import { produce } from "immer" import { Catalog } from "../../catalog" import { Credential } from "../../credential" @@ -186,7 +186,7 @@ const stripApiKey = (body: ModelV2.Info["request"]["body"]) => { const requestSettings = (request: ModelV2.Info["request"]) => { if (!("settings" in request)) return undefined const settings = request.settings - if (!isRecord(settings)) return undefined + if (!Predicate.isReadonlyObject(settings)) return undefined if (Object.keys(settings).length === 0) return undefined return settings } @@ -197,10 +197,6 @@ const settingsString = (settings: ModelV2.Info["api"]["settings"], key: string) return undefined } -function isRecord(value: unknown): value is Readonly> { - return typeof value === "object" && value !== null && !Array.isArray(value) -} - /** Resolves models from the catalog belonging to the current Location runtime. */ export const locationLayer = Layer.effect( Service,