// Independently adapted from pi-subagents-j0k3r (MIT); see THIRD_PARTY_NOTICES.md. import { textComponent } from "../components.js"; import { formatUsage, modelLabel, tasksFromDetails } from "../formatting.js"; const dim = (theme: any, text: string) => theme?.fg?.("dim", text) ?? text; export function renderAgents(result: any, options: any, theme: any) { const details = result?.details ?? result; const agents = Array.isArray(details) ? details : details?.agents ?? []; if (!agents.length) return textComponent("No subagents available."); const shown = options?.expanded ? agents : agents.slice(0, 5); return textComponent([...shown.map((agent: any) => `${agent?.name ?? "subagent"} · model: ${modelLabel(agent?.model)} · effort: ${agent?.effort ?? "default/current"}${options?.expanded ? `\n${dim(theme, ` tools: ${agent?.tools?.join(", ") || "none"}`)}` : ""}`), !options?.expanded && agents.length > shown.length ? dim(theme, `… ${agents.length - shown.length} more agents hidden`) : undefined, !options?.expanded ? dim(theme, "ctrl+o to expand") : undefined].filter(Boolean).join("\n")); } export function renderTasks(result: any, options: any, theme: any, resultTool: string) { const tasks = tasksFromDetails(result); const shown = options?.expanded ? tasks : tasks.slice(0, 5); const rows = shown.map((task) => options?.expanded ? [`agent: ${task.agent} · status: ${task.status} · attempt: ${task.attempt} · id: ${task.id}`, `model: ${modelLabel(task.model)} · effort: ${task.effort}`, formatUsage(task.usage) ? `usage: ${formatUsage(task.usage)}` : undefined, task.result || task.error ? `response: collapsed · ${resultTool} ${task.id}` : undefined].filter(Boolean).join("\n") : `agent: ${task.agent} · status: ${task.status} · attempt: ${task.attempt} · id: ${task.id}${formatUsage(task.usage) ? ` · usage: ${formatUsage(task.usage)}` : ""}`).join(options?.expanded ? "\n\n" : "\n"); if (options?.expanded) return textComponent(`Listed ${tasks.length} subagent task(s):${rows ? `\n\n${rows}` : ""}`); return textComponent(`${dim(theme, `Listed ${tasks.length} subagent task(s).\nList view: collapsed · ctrl+o to expand`)}${rows ? `\n\n${rows}` : ""}${tasks.length > shown.length ? `\n${dim(theme, `… ${tasks.length - shown.length} more task(s) hidden`)}` : ""}`); }