diff --git a/packages/core/src/codemode/catalog.ts b/packages/core/src/codemode/catalog.ts index 3c8f2b9f19c..07dfe59c5ad 100644 --- a/packages/core/src/codemode/catalog.ts +++ b/packages/core/src/codemode/catalog.ts @@ -2,14 +2,13 @@ export * as CodeModeCatalog from "./catalog.js" import { Schema } from "effect" -export const Tool = Schema.Struct({ - type: Schema.Literal("tool"), - name: Schema.String, - description: Schema.String, - signature: Schema.String, - pinned: Schema.optionalKey(Schema.Boolean), -}) -export type Tool = typeof Tool.Type +export type Tool = { + readonly type: "tool" + readonly name: string + readonly description: string + readonly signature: string + readonly pinned?: boolean +} export type Namespace = { readonly type: "namespace" diff --git a/packages/core/src/codemode/web.ts b/packages/core/src/codemode/web.ts index 0a6b5b84f8e..fb7dc4ebd58 100644 --- a/packages/core/src/codemode/web.ts +++ b/packages/core/src/codemode/web.ts @@ -1,6 +1,7 @@ export * as CodeModeWeb from "./web.js" import { Extension } from "@opencode/codemode" +import { isRecord } from "@opencode/ai/utils/record" const TIMEOUT_MS = 30_000 @@ -43,6 +44,7 @@ export const extension = Extension.make({ name: "web", globals: { fetch } }) /** What to show for a fetch call: its method and URL. */ export const display = (args: ReadonlyArray) => { - const [input, init] = args as [string | URL, Init | undefined] - return { method: init?.method?.toUpperCase() ?? "GET", url: String(input) } + const [input, init] = args + const method = isRecord(init) && typeof init.method === "string" ? init.method.toUpperCase() : "GET" + return { method, url: String(input) } } diff --git a/packages/core/src/v1/config/provider.ts b/packages/core/src/v1/config/provider.ts index eb93dbc9e7d..4b00c1dfe5f 100644 --- a/packages/core/src/v1/config/provider.ts +++ b/packages/core/src/v1/config/provider.ts @@ -93,19 +93,10 @@ export const Info = Schema.Struct({ setCacheKey: Schema.optional(Schema.Boolean).annotate({ description: "Enable promptCacheKey for this provider (default false)", }), - timeout: Schema.optional( - Schema.Union([PositiveInt, Schema.Literal(false)]).annotate({ - description: "Timeout in milliseconds for full requests to this provider. Set to false to disable timeout.", - }), - ).annotate({ + timeout: Schema.optional(Schema.Union([PositiveInt, Schema.Literal(false)])).annotate({ description: "Timeout in milliseconds for full requests to this provider. Set to false to disable timeout.", }), - headerTimeout: Schema.optional( - Schema.Union([PositiveInt, Schema.Literal(false)]).annotate({ - description: - "Timeout in milliseconds to wait for response headers. Provider integrations may set defaults. Set to false to disable timeout.", - }), - ).annotate({ + headerTimeout: Schema.optional(Schema.Union([PositiveInt, Schema.Literal(false)])).annotate({ description: "Timeout in milliseconds to wait for response headers. Provider integrations may set defaults. Set to false to disable timeout.", }),