From 89eac888883d13cb6d352dcb42937da36660accd Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Fri, 24 Apr 2026 01:51:26 +0700 Subject: [PATCH] chore(lint): narrow explicit any in misc server files --- .../server/src/server/agent/agent-metadata-generator.ts | 4 +++- packages/server/src/server/agent/provider-registry.ts | 3 ++- packages/server/src/server/daemon-config-store.ts | 2 +- packages/server/src/server/persisted-config.ts | 2 +- packages/server/src/server/pid-lock.ts | 4 ++-- .../speech/providers/local/sherpa/model-downloader.ts | 2 +- .../server/src/server/speech/providers/openai/tts.ts | 5 +++-- packages/server/src/terminal/terminal.ts | 8 +++++++- packages/server/src/utils/worktree.ts | 9 +++++---- 9 files changed, 25 insertions(+), 14 deletions(-) diff --git a/packages/server/src/server/agent/agent-metadata-generator.ts b/packages/server/src/server/agent/agent-metadata-generator.ts index a2514cabf..158cf3b85 100644 --- a/packages/server/src/server/agent/agent-metadata-generator.ts +++ b/packages/server/src/server/agent/agent-metadata-generator.ts @@ -97,7 +97,9 @@ export async function determineAgentMetadataNeeds( }; } -function buildMetadataSchema(needs: AgentMetadataNeeds): z.ZodObject | null { +function buildMetadataSchema( + needs: AgentMetadataNeeds, +): z.ZodObject> | null { if (!needs.needsTitle && !needs.needsBranch) { return null; } diff --git a/packages/server/src/server/agent/provider-registry.ts b/packages/server/src/server/agent/provider-registry.ts index 92826b61d..56c9f2d1e 100644 --- a/packages/server/src/server/agent/provider-registry.ts +++ b/packages/server/src/server/agent/provider-registry.ts @@ -533,7 +533,8 @@ export function getProviderIds( } // Deprecated: Use buildProviderRegistry instead -export const PROVIDER_REGISTRY: Record = null as any; +export const PROVIDER_REGISTRY: Record = + null as unknown as Record; export function createAllClients( logger: Logger, diff --git a/packages/server/src/server/daemon-config-store.ts b/packages/server/src/server/daemon-config-store.ts index 4bed2ba61..c99cfe1f2 100644 --- a/packages/server/src/server/daemon-config-store.ts +++ b/packages/server/src/server/daemon-config-store.ts @@ -12,7 +12,7 @@ type MutableDaemonConfigPatch = import("../shared/messages.js").MutableDaemonCon interface LoggerLike { child(bindings: Record): LoggerLike; - info(...args: any[]): void; + info(...args: unknown[]): void; } type ConfigListener = (config: MutableDaemonConfig) => void; diff --git a/packages/server/src/server/persisted-config.ts b/packages/server/src/server/persisted-config.ts index c966457a2..a24acb47f 100644 --- a/packages/server/src/server/persisted-config.ts +++ b/packages/server/src/server/persisted-config.ts @@ -312,7 +312,7 @@ const DEFAULT_PERSISTED_CONFIG = PersistedConfigSchema.parse({ interface LoggerLike { child(bindings: Record): LoggerLike; - info(...args: any[]): void; + info(...args: unknown[]): void; } function getConfigPath(paseoHome: string): string { diff --git a/packages/server/src/server/pid-lock.ts b/packages/server/src/server/pid-lock.ts index 305858119..a90389677 100644 --- a/packages/server/src/server/pid-lock.ts +++ b/packages/server/src/server/pid-lock.ts @@ -94,8 +94,8 @@ export async function acquirePidLock( try { fd = await open(pidPath, "wx"); await fd.write(JSON.stringify(lockInfo)); - } catch (err: any) { - if (err.code === "EEXIST") { + } catch (err) { + if ((err as NodeJS.ErrnoException).code === "EEXIST") { // Race condition - another process created the file // Re-read and check try { diff --git a/packages/server/src/server/speech/providers/local/sherpa/model-downloader.ts b/packages/server/src/server/speech/providers/local/sherpa/model-downloader.ts index 504f8ebd3..21b61f6c0 100644 --- a/packages/server/src/server/speech/providers/local/sherpa/model-downloader.ts +++ b/packages/server/src/server/speech/providers/local/sherpa/model-downloader.ts @@ -55,7 +55,7 @@ async function downloadToFile(options: DownloadToFileOptions): Promise { const tmpPath = `${outputPath}.tmp-${Date.now()}`; await mkdir(path.dirname(outputPath), { recursive: true }); - const nodeStream = Readable.fromWeb(res.body as any); + const nodeStream = Readable.fromWeb(res.body as Parameters[0]); try { await pipeline(nodeStream, createWriteStream(tmpPath)); diff --git a/packages/server/src/server/speech/providers/openai/tts.ts b/packages/server/src/server/speech/providers/openai/tts.ts index 2700ac7aa..caaec1211 100644 --- a/packages/server/src/server/speech/providers/openai/tts.ts +++ b/packages/server/src/server/speech/providers/openai/tts.ts @@ -74,9 +74,10 @@ export class OpenAITTS implements TextToSpeechProvider { stream: audioStream, format: this.config.responseFormat || "mp3", }; - } catch (error: any) { + } catch (error) { this.logger.error({ err: error }, "Speech synthesis error"); - throw new Error(`TTS synthesis failed: ${error.message}`, { cause: error }); + const message = error instanceof Error ? error.message : String(error); + throw new Error(`TTS synthesis failed: ${message}`, { cause: error }); } } } diff --git a/packages/server/src/terminal/terminal.ts b/packages/server/src/terminal/terminal.ts index 624935668..bfd37af07 100644 --- a/packages/server/src/terminal/terminal.ts +++ b/packages/server/src/terminal/terminal.ts @@ -305,7 +305,13 @@ function extractScrollback(terminal: TerminalType): TerminalCell[][] { } function extractCursorState(terminal: TerminalType): TerminalState["cursor"] { - const coreService = (terminal as any)._core?.coreService; + const coreService = (terminal as unknown as { _core?: { coreService?: Record } }) + ._core?.coreService as + | { + decPrivateModes?: { cursorStyle?: unknown; cursorBlink?: unknown }; + isCursorHidden?: unknown; + } + | undefined; const cursorStyle = coreService?.decPrivateModes?.cursorStyle; const normalizedCursorStyle = cursorStyle === "block" || cursorStyle === "underline" || cursorStyle === "bar" diff --git a/packages/server/src/utils/worktree.ts b/packages/server/src/utils/worktree.ts index 0d7452f6b..6267a5876 100644 --- a/packages/server/src/utils/worktree.ts +++ b/packages/server/src/utils/worktree.ts @@ -379,13 +379,14 @@ async function execSetupCommand( exitCode: 0, durationMs: Date.now() - startedAt, }; - } catch (error: any) { + } catch (error) { + const execErr = error as { stdout?: string; stderr?: string; code?: unknown } | undefined; return { command, cwd: options.cwd, - stdout: error?.stdout ?? "", - stderr: error?.stderr ?? (error instanceof Error ? error.message : String(error)), - exitCode: typeof error?.code === "number" ? error.code : null, + stdout: execErr?.stdout ?? "", + stderr: execErr?.stderr ?? (error instanceof Error ? error.message : String(error)), + exitCode: typeof execErr?.code === "number" ? execErr.code : null, durationMs: Date.now() - startedAt, }; }