diff options
| author | Kit Langton <[email protected]> | 2026-04-16 15:27:53 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-16 19:27:53 +0000 |
| commit | 2fe9d9447070f6967d80b0a8f74239e1969d9e1c (patch) | |
| tree | af5c8c4c2d4f6d87e8040bbb42273c468007ff91 | |
| parent | 219b473e660994ac69a0c5d753ac65da951f3bf8 (diff) | |
| download | opencode-2fe9d9447070f6967d80b0a8f74239e1969d9e1c.tar.gz opencode-2fe9d9447070f6967d80b0a8f74239e1969d9e1c.zip | |
fix: remove 8 more unnecessary `as any` casts in opencode core (#22877)
| -rw-r--r-- | packages/opencode/src/acp/agent.ts | 2 | ||||
| -rw-r--r-- | packages/opencode/src/cli/cmd/providers.ts | 4 | ||||
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/win32.ts | 5 | ||||
| -rw-r--r-- | packages/opencode/src/lsp/lsp.ts | 6 | ||||
| -rw-r--r-- | packages/opencode/src/mcp/mcp.ts | 2 | ||||
| -rw-r--r-- | packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts | 4 | ||||
| -rw-r--r-- | packages/opencode/src/provider/transform.ts | 2 | ||||
| -rw-r--r-- | packages/opencode/src/util/effect-zod.ts | 4 |
8 files changed, 16 insertions, 13 deletions
diff --git a/packages/opencode/src/acp/agent.ts b/packages/opencode/src/acp/agent.ts index 9388c87f1..5d8c723ea 100644 --- a/packages/opencode/src/acp/agent.ts +++ b/packages/opencode/src/acp/agent.ts @@ -178,7 +178,7 @@ export namespace ACP { }) for await (const event of events.stream) { if (this.eventAbort.signal.aborted) return - const payload = (event as any)?.payload + const payload = event?.payload if (!payload) continue await this.handleEvent(payload as Event).catch((error) => { log.error("failed to handle event", { error, type: payload.type }) diff --git a/packages/opencode/src/cli/cmd/providers.ts b/packages/opencode/src/cli/cmd/providers.ts index 4bc3f0ea6..e2eb0b65a 100644 --- a/packages/opencode/src/cli/cmd/providers.ts +++ b/packages/opencode/src/cli/cmd/providers.ts @@ -297,7 +297,9 @@ export const ProvidersLoginCommand = cmd({ prompts.intro("Add credential") if (args.url) { const url = args.url.replace(/\/+$/, "") - const wellknown = await fetch(`${url}/.well-known/opencode`).then((x) => x.json() as any) + const wellknown = (await fetch(`${url}/.well-known/opencode`).then((x) => x.json())) as { + auth: { command: string[]; env: string } + } prompts.log.info(`Running \`${wellknown.auth.command.join(" ")}\``) const proc = Process.spawn(wellknown.auth.command, { stdout: "pipe", diff --git a/packages/opencode/src/cli/cmd/tui/win32.ts b/packages/opencode/src/cli/cmd/tui/win32.ts index 23e9f4485..1aaa80aec 100644 --- a/packages/opencode/src/cli/cmd/tui/win32.ts +++ b/packages/opencode/src/cli/cmd/tui/win32.ts @@ -1,4 +1,5 @@ import { dlopen, ptr } from "bun:ffi" +import type { ReadStream } from "node:tty" const STD_INPUT_HANDLE = -10 const ENABLE_PROCESSED_INPUT = 0x0001 @@ -71,7 +72,7 @@ export function win32InstallCtrlCGuard() { if (!load()) return if (unhook) return unhook - const stdin = process.stdin as any + const stdin = process.stdin as ReadStream const original = stdin.setRawMode const handle = k32!.symbols.GetStdHandle(STD_INPUT_HANDLE) @@ -93,7 +94,7 @@ export function win32InstallCtrlCGuard() { setImmediate(enforce) } - let wrapped: ((mode: boolean) => unknown) | undefined + let wrapped: ReadStream["setRawMode"] | undefined if (typeof original === "function") { wrapped = (mode: boolean) => { diff --git a/packages/opencode/src/lsp/lsp.ts b/packages/opencode/src/lsp/lsp.ts index 2c0982eca..d4d1e7563 100644 --- a/packages/opencode/src/lsp/lsp.ts +++ b/packages/opencode/src/lsp/lsp.ts @@ -465,12 +465,12 @@ export const layer = Layer.effect( direction: "callHierarchy/incomingCalls" | "callHierarchy/outgoingCalls", ) { const results = yield* run(input.file, async (client) => { - const items = (await client.connection - .sendRequest("textDocument/prepareCallHierarchy", { + const items = await client.connection + .sendRequest<unknown[] | null>("textDocument/prepareCallHierarchy", { textDocument: { uri: pathToFileURL(input.file).href }, position: { line: input.line, character: input.character }, }) - .catch(() => [])) as any[] + .catch(() => [] as unknown[]) if (!items?.length) return [] return client.connection.sendRequest(direction, { item: items[0] }).catch(() => []) }) diff --git a/packages/opencode/src/mcp/mcp.ts b/packages/opencode/src/mcp/mcp.ts index 6666e0854..61201ce76 100644 --- a/packages/opencode/src/mcp/mcp.ts +++ b/packages/opencode/src/mcp/mcp.ts @@ -531,7 +531,7 @@ export const layer = Layer.effect( Object.values(s.clients), (client) => Effect.gen(function* () { - const pid = (client.transport as any)?.pid + const pid = client.transport instanceof StdioClientTransport ? client.transport.pid : null if (typeof pid === "number") { const pids = yield* descendants(pid) for (const dpid of pids) { diff --git a/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts b/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts index 92c8fd857..250d1f6f3 100644 --- a/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +++ b/packages/opencode/src/provider/sdk/copilot/responses/openai-responses-language-model.ts @@ -354,7 +354,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { details: "flex processing is only available for o3, o4-mini, and gpt-5 models", }) // Remove from args if not supported - delete (baseArgs as any).service_tier + baseArgs.service_tier = undefined } // Validate priority processing support @@ -366,7 +366,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { "priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported", }) // Remove from args if not supported - delete (baseArgs as any).service_tier + baseArgs.service_tier = undefined } const { diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 66e87fb3b..e527251b0 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -193,7 +193,7 @@ function normalizeMessages( providerOptions: { ...msg.providerOptions, openaiCompatible: { - ...(msg.providerOptions as any)?.openaiCompatible, + ...msg.providerOptions?.openaiCompatible, [field]: reasoningText, }, }, diff --git a/packages/opencode/src/util/effect-zod.ts b/packages/opencode/src/util/effect-zod.ts index 553d7a065..6e99fd468 100644 --- a/packages/opencode/src/util/effect-zod.ts +++ b/packages/opencode/src/util/effect-zod.ts @@ -77,8 +77,8 @@ function union(ast: SchemaAST.Union): z.ZodTypeAny { if (items.length === 1) return items[0] if (items.length < 2) return fail(ast) - const discriminator = (ast as any).annotations?.discriminator - if (discriminator) { + const discriminator = ast.annotations?.discriminator + if (typeof discriminator === "string") { return z.discriminatedUnion(discriminator, items as [z.ZodObject<any>, z.ZodObject<any>, ...z.ZodObject<any>[]]) } |
