Преглед изворни кода

refactor(core): use Predicate.isReadonlyObject for settings guard

Kit Langton пре 1 месец
родитељ
комит
759db0d172
1 измењених фајлова са 2 додато и 6 уклоњено
  1. 2 6
      packages/core/src/session/runner/model.ts

+ 2 - 6
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<Record<string, unknown>> {
-  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,