summaryrefslogtreecommitdiffhomepage
path: root/packages/ui
diff options
context:
space:
mode:
authorDavid Hill <[email protected]>2026-02-17 14:58:55 +0000
committerDavid Hill <[email protected]>2026-02-17 15:16:07 +0000
commit2cac84882380c8b2a6e3ae27521fedf80407124c (patch)
tree0cfda2bf8862ba7d625c557d2fc88f34e77505dc /packages/ui
parent5a3e0ef13aabd973f48b94fb74b9924a85211de0 (diff)
downloadopencode-2cac84882380c8b2a6e3ae27521fedf80407124c.tar.gz
opencode-2cac84882380c8b2a6e3ae27521fedf80407124c.zip
tweak(ui): use provider catalog names
Renders provider and model display names from the provider list instead of raw IDs in user message hover metadata.
Diffstat (limited to 'packages/ui')
-rw-r--r--packages/ui/src/components/message-part.tsx23
-rw-r--r--packages/ui/src/context/data.tsx2
2 files changed, 19 insertions, 6 deletions
diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx
index 4425fcbcf..55db971b5 100644
--- a/packages/ui/src/components/message-part.tsx
+++ b/packages/ui/src/components/message-part.tsx
@@ -506,6 +506,7 @@ function ContextToolGroup(props: { parts: ToolPart[] }) {
}
export function UserMessageDisplay(props: { message: UserMessage; parts: PartType[]; interrupted?: boolean }) {
+ const data = useData()
const dialog = useDialog()
const i18n = useI18n()
const [copied, setCopied] = createSignal(false)
@@ -534,6 +535,21 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
const agents = createMemo(() => (props.parts?.filter((p) => p.type === "agent") as AgentPart[]) ?? [])
+ const provider = createMemo(() => {
+ const id = props.message.model?.providerID
+ if (!id) return ""
+ const match = data.store.provider?.all?.find((p) => p.id === id)
+ return match?.name ?? id
+ })
+
+ const model = createMemo(() => {
+ const providerID = props.message.model?.providerID
+ const modelID = props.message.model?.modelID
+ if (!providerID || !modelID) return ""
+ const match = data.store.provider?.all?.find((p) => p.id === providerID)
+ return match?.models?.[modelID]?.name ?? modelID
+ })
+
const stamp = createMemo(() => {
const created = props.message.time?.created
if (typeof created !== "number") return ""
@@ -546,12 +562,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
const meta = createMemo(() => {
const agent = props.message.agent
- const items = [
- agent ? agent[0]?.toUpperCase() + agent.slice(1) : "",
- props.message.model?.providerID,
- props.message.model?.modelID,
- stamp(),
- ]
+ const items = [agent ? agent[0]?.toUpperCase() + agent.slice(1) : "", provider(), model(), stamp()]
return items.filter((x) => !!x).join(" \u00B7 ")
})
diff --git a/packages/ui/src/context/data.tsx b/packages/ui/src/context/data.tsx
index 5ff3d9131..2c44763f5 100644
--- a/packages/ui/src/context/data.tsx
+++ b/packages/ui/src/context/data.tsx
@@ -7,11 +7,13 @@ import type {
PermissionRequest,
QuestionRequest,
QuestionAnswer,
+ ProviderListResponse,
} from "@opencode-ai/sdk/v2"
import { createSimpleContext } from "./helper"
import { PreloadMultiFileDiffResult } from "@pierre/diffs/ssr"
type Data = {
+ provider?: ProviderListResponse
session: Session[]
session_status: {
[sessionID: string]: SessionStatus