diff --git a/packages/opencode/src/cli/cmd/tui/context/local.tsx b/packages/opencode/src/cli/cmd/tui/context/local.tsx index b60a775b375..63f1d9743bf 100644 --- a/packages/opencode/src/cli/cmd/tui/context/local.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/local.tsx @@ -75,9 +75,10 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ }) }, color(name: string) { - const agent = agents().find((x) => x.name === name) + const all = sync.data.agent + const agent = all.find((x) => x.name === name) if (agent?.color) return RGBA.fromHex(agent.color) - const index = agents().findIndex((x) => x.name === name) + const index = all.findIndex((x) => x.name === name) if (index === -1) return colors()[0] return colors()[index % colors().length] }, diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 1503e37d99e..aa331ca0f0d 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -23,6 +23,7 @@ import { MacOSScrollAccel, type ScrollAcceleration, TextAttributes, + RGBA, } from "@opentui/core" import { Prompt, type PromptRef } from "@tui/component/prompt" import type { AssistantMessage, Part, ToolPart, UserMessage, TextPart, ReasoningPart } from "@opencode-ai/sdk/v2" @@ -1410,7 +1411,14 @@ function ToolTitle(props: { fallback: string; when: any; icon: string; children: ) } -function InlineTool(props: { icon: string; complete: any; pending: string; children: JSX.Element; part: ToolPart }) { +function InlineTool(props: { + icon: string + iconColor?: RGBA + complete: any + pending: string + children: JSX.Element + part: ToolPart +}) { const [margin, setMargin] = createSignal(0) const { theme } = useTheme() const ctx = use() @@ -1461,7 +1469,7 @@ function InlineTool(props: { icon: string; complete: any; pending: string; child > ~ {props.pending}} when={props.complete}> - {props.icon} {props.children} + {props.icon} {props.children} @@ -1644,8 +1652,10 @@ function Task(props: ToolProps) { const { theme } = useTheme() const keybind = useKeybind() const { navigate } = useRoute() + const local = useLocal() const current = createMemo(() => props.metadata.summary?.findLast((x) => x.state.status !== "pending")) + const color = createMemo(() => local.agent.color(props.input.subagent_type ?? "unknown")) return ( @@ -1679,11 +1689,13 @@ function Task(props: ToolProps) { - {Locale.titlecase(props.input.subagent_type ?? "unknown")} Task "{props.input.description}" + {Locale.titlecase(props.input.subagent_type ?? "unknown")} Task " + {props.input.description}"