From 9acdd6b85ddc796b3c948584006ca23e235c151f Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Tue, 17 Feb 2026 14:08:44 +0900 Subject: [PATCH] refactor: remove 3 orphaned files from call-omo-agent and delegate-task --- .../call-omo-agent/agent-type-normalizer.ts | 12 --- .../call-omo-agent/sync-agent-executor.ts | 89 ------------------- .../delegate-task/skill-content-resolver.ts | 21 ----- 3 files changed, 122 deletions(-) delete mode 100644 src/tools/call-omo-agent/agent-type-normalizer.ts delete mode 100644 src/tools/call-omo-agent/sync-agent-executor.ts delete mode 100644 src/tools/delegate-task/skill-content-resolver.ts diff --git a/src/tools/call-omo-agent/agent-type-normalizer.ts b/src/tools/call-omo-agent/agent-type-normalizer.ts deleted file mode 100644 index ac40d5363..000000000 --- a/src/tools/call-omo-agent/agent-type-normalizer.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ALLOWED_AGENTS } from "./constants" -import type { AllowedAgentType } from "./types" - -export function normalizeAgentType(input: string): AllowedAgentType | null { - const lowered = input.toLowerCase() - for (const allowed of ALLOWED_AGENTS) { - if (allowed.toLowerCase() === lowered) { - return allowed - } - } - return null -} diff --git a/src/tools/call-omo-agent/sync-agent-executor.ts b/src/tools/call-omo-agent/sync-agent-executor.ts deleted file mode 100644 index 9b1a1bd67..000000000 --- a/src/tools/call-omo-agent/sync-agent-executor.ts +++ /dev/null @@ -1,89 +0,0 @@ -import type { PluginInput } from "@opencode-ai/plugin" -import { log } from "../../shared" -import { extractNewSessionOutput, type SessionMessage } from "./session-message-output-extractor" -import { waitForSessionCompletion } from "./session-completion-poller" -import { resolveOrCreateSessionId } from "./subagent-session-creator" -import { promptSubagentSession } from "./subagent-session-prompter" -import type { CallOmoAgentArgs } from "./types" -import type { ToolContextWithMetadata } from "./tool-context-with-metadata" - -function buildTaskMetadata(sessionID: string): string { - return ["", `session_id: ${sessionID}`, ""].join( - "\n", - ) -} - -function getMessagesArray(result: unknown): SessionMessage[] { - if (Array.isArray(result)) return result as SessionMessage[] - if (typeof result !== "object" || result === null) return [] - if (!("data" in result)) return [] - const data = (result as { data?: unknown }).data - return Array.isArray(data) ? (data as SessionMessage[]) : [] -} - -export async function executeSyncAgent( - args: CallOmoAgentArgs, - toolContext: ToolContextWithMetadata, - ctx: PluginInput, -): Promise { - const sessionResult = await resolveOrCreateSessionId(ctx, args, toolContext) - if (!sessionResult.ok) { - return sessionResult.error - } - const sessionID = sessionResult.sessionID - - await toolContext.metadata?.({ - title: args.description, - metadata: { sessionId: sessionID }, - }) - - log(`[call_omo_agent] Sending prompt to session ${sessionID}`) - log("[call_omo_agent] Prompt preview", { preview: args.prompt.substring(0, 100) }) - - const promptResult = await promptSubagentSession(ctx, { - sessionID, - agent: args.subagent_type, - prompt: args.prompt, - }) - if (!promptResult.ok) { - const errorMessage = promptResult.error - if (errorMessage.includes("agent.name") || errorMessage.includes("undefined")) { - return `Error: Agent "${args.subagent_type}" not found. Make sure the agent is registered in your opencode.json or provided by a plugin.\n\n${buildTaskMetadata(sessionID)}` - } - return `Error: Failed to send prompt: ${errorMessage}\n\n${buildTaskMetadata(sessionID)}` - } - - log("[call_omo_agent] Prompt sent, polling for completion...") - const completion = await waitForSessionCompletion(ctx, { - sessionID, - abortSignal: toolContext.abort, - maxPollTimeMs: 5 * 60 * 1000, - pollIntervalMs: 500, - stabilityRequired: 3, - }) - if (!completion.ok) { - if (completion.reason === "aborted") { - return `Task aborted.\n\n${buildTaskMetadata(sessionID)}` - } - return `Error: Agent task timed out after 5 minutes.\n\n${buildTaskMetadata(sessionID)}` - } - - const messagesResult = await ctx.client.session.messages({ - path: { id: sessionID }, - }) - if (messagesResult.error) { - log("[call_omo_agent] Messages error", { error: messagesResult.error }) - return `Error: Failed to get messages: ${messagesResult.error}` - } - - const messages = getMessagesArray(messagesResult) - log("[call_omo_agent] Got messages", { count: messages.length }) - - const extracted = extractNewSessionOutput(sessionID, messages) - if (!extracted.hasNewOutput) { - return `No new output since last check.\n\n${buildTaskMetadata(sessionID)}` - } - - log("[call_omo_agent] Got response", { length: extracted.output.length }) - return `${extracted.output}\n\n${buildTaskMetadata(sessionID)}` -} diff --git a/src/tools/delegate-task/skill-content-resolver.ts b/src/tools/delegate-task/skill-content-resolver.ts deleted file mode 100644 index db31c8988..000000000 --- a/src/tools/delegate-task/skill-content-resolver.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { GitMasterConfig, BrowserAutomationProvider } from "../../config/schema" -import { resolveMultipleSkillsAsync } from "../../features/opencode-skill-loader/skill-content" -import { discoverSkills } from "../../features/opencode-skill-loader" - -export async function resolveSkillContent( - skills: string[], - options: { gitMasterConfig?: GitMasterConfig; browserProvider?: BrowserAutomationProvider, disabledSkills?: Set } -): Promise<{ content: string | undefined; error: string | null }> { - if (skills.length === 0) { - return { content: undefined, error: null } - } - - const { resolved, notFound } = await resolveMultipleSkillsAsync(skills, options) - if (notFound.length > 0) { - const allSkills = await discoverSkills({ includeClaudeCodePaths: true }) - const available = allSkills.map(s => s.name).join(", ") - return { content: undefined, error: `Skills not found: ${notFound.join(", ")}. Available: ${available}` } - } - - return { content: Array.from(resolved.values()).join("\n\n"), error: null } -}