From 462e2ec2b09e8691e2dbfe184cac340503b108e6 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Tue, 17 Feb 2026 14:09:12 +0900 Subject: [PATCH] refactor: remove 3 orphaned files and prefix unused parameter --- .../interactive-bash-session-hook.ts | 81 ------------ src/shared/available-models-fetcher.ts | 115 ------------------ src/shared/model-cache-availability.ts | 14 --- src/tools/hashline-edit/hash-computation.ts | 2 +- 4 files changed, 1 insertion(+), 211 deletions(-) delete mode 100644 src/hooks/interactive-bash-session/interactive-bash-session-hook.ts delete mode 100644 src/shared/available-models-fetcher.ts delete mode 100644 src/shared/model-cache-availability.ts diff --git a/src/hooks/interactive-bash-session/interactive-bash-session-hook.ts b/src/hooks/interactive-bash-session/interactive-bash-session-hook.ts deleted file mode 100644 index b3ba0976..00000000 --- a/src/hooks/interactive-bash-session/interactive-bash-session-hook.ts +++ /dev/null @@ -1,81 +0,0 @@ -import type { PluginInput } from "@opencode-ai/plugin"; -import { createInteractiveBashSessionTracker } from "./interactive-bash-session-tracker"; -import { parseTmuxCommand } from "./tmux-command-parser"; - -interface ToolExecuteInput { - tool: string; - sessionID: string; - callID: string; - args?: Record; -} - -interface ToolExecuteOutput { - title: string; - output: string; - metadata: unknown; -} - -interface EventInput { - event: { - type: string; - properties?: unknown; - }; -} - -export function createInteractiveBashSessionHook(ctx: PluginInput) { - const tracker = createInteractiveBashSessionTracker({ - abortSession: (args) => ctx.client.session.abort(args), - }) - - const toolExecuteAfter = async ( - input: ToolExecuteInput, - output: ToolExecuteOutput, - ) => { - const { tool, sessionID, args } = input; - const toolLower = tool.toLowerCase(); - - if (toolLower !== "interactive_bash") { - return; - } - - if (typeof args?.tmux_command !== "string") { - return; - } - - const tmuxCommand = args.tmux_command; - const { subCommand, sessionName } = parseTmuxCommand(tmuxCommand) - - const toolOutput = output?.output ?? "" - if (toolOutput.startsWith("Error:")) { - return - } - - const { reminderToAppend } = tracker.handleTmuxCommand({ - sessionID, - subCommand, - sessionName, - toolOutput, - }) - if (reminderToAppend) { - output.output += reminderToAppend - } - }; - - const eventHandler = async ({ event }: EventInput) => { - const props = event.properties as Record | undefined; - - if (event.type === "session.deleted") { - const sessionInfo = props?.info as { id?: string } | undefined; - const sessionID = sessionInfo?.id; - - if (sessionID) { - await tracker.handleSessionDeleted(sessionID) - } - } - }; - - return { - "tool.execute.after": toolExecuteAfter, - event: eventHandler, - }; -} diff --git a/src/shared/available-models-fetcher.ts b/src/shared/available-models-fetcher.ts deleted file mode 100644 index 790ad77e..00000000 --- a/src/shared/available-models-fetcher.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { addModelsFromModelsJsonCache } from "./models-json-cache-reader" -import { getModelListFunction, getProviderListFunction } from "./open-code-client-accessors" -import { addModelsFromProviderModelsCache } from "./provider-models-cache-model-reader" -import { log } from "./logger" -import { normalizeSDKResponse } from "./normalize-sdk-response" - -export async function getConnectedProviders(client: unknown): Promise { - const providerList = getProviderListFunction(client) - if (!providerList) { - log("[getConnectedProviders] client.provider.list not available") - return [] - } - - try { - const result = await providerList() - const connected = result.data?.connected ?? [] - log("[getConnectedProviders] connected providers", { - count: connected.length, - providers: connected, - }) - return connected - } catch (err) { - log("[getConnectedProviders] SDK error", { error: String(err) }) - return [] - } -} - -export async function fetchAvailableModels( - client?: unknown, - options?: { connectedProviders?: string[] | null }, -): Promise> { - let connectedProviders = options?.connectedProviders ?? null - let connectedProvidersUnknown = connectedProviders === null - - log("[fetchAvailableModels] CALLED", { - connectedProvidersUnknown, - connectedProviders: options?.connectedProviders, - }) - - if (connectedProvidersUnknown && client !== undefined) { - const liveConnected = await getConnectedProviders(client) - if (liveConnected.length > 0) { - connectedProviders = liveConnected - connectedProvidersUnknown = false - log("[fetchAvailableModels] connected providers fetched from client", { - count: liveConnected.length, - }) - } - } - - if (connectedProvidersUnknown) { - const modelList = client === undefined ? null : getModelListFunction(client) - if (modelList) { - const modelSet = new Set() - try { - const modelsResult = await modelList() - const models = normalizeSDKResponse(modelsResult, [] as Array<{ provider?: string; id?: string }>) - for (const model of models) { - if (model.provider && model.id) { - modelSet.add(`${model.provider}/${model.id}`) - } - } - log( - "[fetchAvailableModels] fetched models from client without provider filter", - { count: modelSet.size }, - ) - return modelSet - } catch (err) { - log("[fetchAvailableModels] client.model.list error", { - error: String(err), - }) - } - } - log( - "[fetchAvailableModels] connected providers unknown, returning empty set for fallback resolution", - ) - return new Set() - } - - const connectedProvidersList = connectedProviders ?? [] - const connectedSet = new Set(connectedProvidersList) - const modelSet = new Set() - - if (addModelsFromProviderModelsCache(connectedSet, modelSet)) { - return modelSet - } - log("[fetchAvailableModels] provider-models cache not found, falling back to models.json") - if (addModelsFromModelsJsonCache(connectedSet, modelSet)) { - return modelSet - } - - const modelList = client === undefined ? null : getModelListFunction(client) - if (modelList) { - try { - const modelsResult = await modelList() - const models = normalizeSDKResponse(modelsResult, [] as Array<{ provider?: string; id?: string }>) - - for (const model of models) { - if (!model.provider || !model.id) continue - if (connectedSet.has(model.provider)) { - modelSet.add(`${model.provider}/${model.id}`) - } - } - - log("[fetchAvailableModels] fetched models from client (filtered)", { - count: modelSet.size, - connectedProviders: connectedProvidersList.slice(0, 5), - }) - } catch (err) { - log("[fetchAvailableModels] client.model.list error", { error: String(err) }) - } - } - - return modelSet -} diff --git a/src/shared/model-cache-availability.ts b/src/shared/model-cache-availability.ts deleted file mode 100644 index d0a2807c..00000000 --- a/src/shared/model-cache-availability.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { existsSync } from "fs" -import { join } from "path" -import { getOpenCodeCacheDir } from "./data-path" -import { hasProviderModelsCache } from "./connected-providers-cache" - -export function __resetModelCache(): void {} - -export function isModelCacheAvailable(): boolean { - if (hasProviderModelsCache()) { - return true - } - const cacheFile = join(getOpenCodeCacheDir(), "models.json") - return existsSync(cacheFile) -} diff --git a/src/tools/hashline-edit/hash-computation.ts b/src/tools/hashline-edit/hash-computation.ts index 348cf3ea..2ab23613 100644 --- a/src/tools/hashline-edit/hash-computation.ts +++ b/src/tools/hashline-edit/hash-computation.ts @@ -1,6 +1,6 @@ import { HASH_DICT } from "./constants" -export function computeLineHash(lineNumber: number, content: string): string { +export function computeLineHash(_lineNumber: number, content: string): string { const stripped = content.replace(/\s+/g, "") const hash = Bun.hash.xxHash32(stripped) const index = hash % 256