fix(ui): use v2 message info and show model variant
This commit is contained in:
@@ -7,7 +7,7 @@ import {
|
||||
type Accessor,
|
||||
type Component,
|
||||
} from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { FileContent, FileNode, File as GitFileStatus } from "@opencode-ai/sdk/v2/client"
|
||||
import IconButton from "@suid/material/IconButton"
|
||||
import MenuOpenIcon from "@suid/icons-material/MenuOpen"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { For, Show, type Accessor, type Component } from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import { Accordion } from "@kobalte/core"
|
||||
import { Tooltip } from "@kobalte/core/tooltip"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { batch, createMemo, type Accessor } from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { Session } from "../../../types/session"
|
||||
import {
|
||||
activeParentSessionId,
|
||||
|
||||
@@ -23,10 +23,10 @@ const TOOL_BORDER_COLOR = "var(--message-tool-border)"
|
||||
type ToolCallPart = Extract<ClientPart, { type: "tool" }>
|
||||
|
||||
|
||||
type ToolState = import("@opencode-ai/sdk").ToolState
|
||||
type ToolStateRunning = import("@opencode-ai/sdk").ToolStateRunning
|
||||
type ToolStateCompleted = import("@opencode-ai/sdk").ToolStateCompleted
|
||||
type ToolStateError = import("@opencode-ai/sdk").ToolStateError
|
||||
type ToolState = import("@opencode-ai/sdk/v2").ToolState
|
||||
type ToolStateRunning = import("@opencode-ai/sdk/v2").ToolStateRunning
|
||||
type ToolStateCompleted = import("@opencode-ai/sdk/v2").ToolStateCompleted
|
||||
type ToolStateError = import("@opencode-ai/sdk/v2").ToolStateError
|
||||
|
||||
function isToolStateRunning(state: ToolState | undefined): state is ToolStateRunning {
|
||||
return Boolean(state && state.status === "running")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { For, Show, createSignal } from "solid-js"
|
||||
import { Copy, ExternalLink, Split, Trash2, Undo } from "lucide-solid"
|
||||
import type { MessageInfo, ClientPart } from "../types/message"
|
||||
import type { MessageInfo, ClientPart, SDKAssistantMessageV2 } from "../types/message"
|
||||
import { partHasRenderableText } from "../types/message"
|
||||
import type { MessageRecord } from "../stores/message-v2/types"
|
||||
import MessagePart from "./message-part"
|
||||
@@ -258,8 +258,16 @@ export default function MessageItem(props: MessageItemProps) {
|
||||
if (!info || info.role !== "assistant") return ""
|
||||
const modelID = info.modelID || ""
|
||||
const providerID = info.providerID || ""
|
||||
if (modelID && providerID) return `${providerID}/${modelID}`
|
||||
return modelID
|
||||
|
||||
const base = modelID && providerID ? `${providerID}/${modelID}` : modelID
|
||||
if (!base) return ""
|
||||
|
||||
const variant = (info as SDKAssistantMessageV2).variant
|
||||
if (typeof variant === "string" && variant.trim().length > 0) {
|
||||
return `${base} (${variant.trim()})`
|
||||
}
|
||||
|
||||
return base
|
||||
}
|
||||
|
||||
const agentMeta = () => {
|
||||
|
||||
@@ -44,7 +44,7 @@ import { getLogger } from "../lib/logger"
|
||||
|
||||
const log = getLogger("session")
|
||||
|
||||
type ToolState = import("@opencode-ai/sdk").ToolState
|
||||
type ToolState = import("@opencode-ai/sdk/v2").ToolState
|
||||
|
||||
const TOOL_CALL_CACHE_SCOPE = "tool-call"
|
||||
const TOOL_SCROLL_SENTINEL_MARGIN_PX = 48
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import { getRelativePath, isToolStateCompleted, isToolStateError, isToolStateRunning } from "./utils"
|
||||
import { tGlobal } from "../../lib/i18n"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { Accessor, JSXElement } from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { TextPart } from "../../types/message"
|
||||
import { Markdown } from "../markdown"
|
||||
import type { MarkdownRenderOptions, ToolScrollHelpers } from "./types"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { createMemo, Show, For, createEffect, type Accessor } from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { QuestionRequest } from "@opencode-ai/sdk/v2"
|
||||
import { useI18n } from "../../lib/i18n"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { For, Show, createEffect, createMemo, createSignal, untrack } from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { ToolRenderer } from "../types"
|
||||
import { ensureMarkdownContent, getDefaultToolAction, getToolIcon, getToolName, readToolStatePayload } from "../utils"
|
||||
import { resolveTitleForTool } from "../tool-title"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { For, Show } from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { ToolRenderer } from "../types"
|
||||
import { readToolStatePayload } from "../utils"
|
||||
import { useI18n, tGlobal } from "../../../lib/i18n"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { ToolRendererContext, ToolRenderer, ToolCallPart } from "./types"
|
||||
import { getDefaultToolAction, getToolName, isToolStateCompleted, isToolStateRunning } from "./utils"
|
||||
import { enMessages } from "../../lib/i18n/messages/en"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { Accessor, JSXElement } from "solid-js"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { ClientPart } from "../../types/message"
|
||||
|
||||
export type ToolCallPart = Extract<ClientPart, { type: "tool" }>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { isRenderableDiffText } from "../../lib/diff-utils"
|
||||
import { getLanguageFromPath } from "../../lib/markdown"
|
||||
import type { ToolState } from "@opencode-ai/sdk"
|
||||
import type { ToolState } from "@opencode-ai/sdk/v2"
|
||||
import type { DiffPayload } from "./types"
|
||||
import { getLogger } from "../../lib/logger"
|
||||
import { tGlobal } from "../../lib/i18n"
|
||||
const log = getLogger("session")
|
||||
|
||||
|
||||
export type ToolStateRunning = import("@opencode-ai/sdk").ToolStateRunning
|
||||
export type ToolStateCompleted = import("@opencode-ai/sdk").ToolStateCompleted
|
||||
export type ToolStateError = import("@opencode-ai/sdk").ToolStateError
|
||||
export type ToolStateRunning = import("@opencode-ai/sdk/v2").ToolStateRunning
|
||||
export type ToolStateCompleted = import("@opencode-ai/sdk/v2").ToolStateCompleted
|
||||
export type ToolStateError = import("@opencode-ai/sdk/v2").ToolStateError
|
||||
|
||||
export const diffCapableTools = new Set(["edit", "patch"])
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SDK types
|
||||
// SDK v2 types
|
||||
import type {
|
||||
EventMessageUpdated as MessageUpdateEvent,
|
||||
EventMessageRemoved as MessageRemovedEvent,
|
||||
@@ -6,7 +6,8 @@ import type {
|
||||
EventMessagePartRemoved as MessagePartRemovedEvent,
|
||||
Part as SDKPart,
|
||||
Message as SDKMessage,
|
||||
} from "@opencode-ai/sdk"
|
||||
AssistantMessage as SDKAssistantMessageV2,
|
||||
} from "@opencode-ai/sdk/v2"
|
||||
|
||||
import type { PermissionRequestLike } from "./permission"
|
||||
|
||||
@@ -17,7 +18,8 @@ export type {
|
||||
MessagePartUpdatedEvent,
|
||||
MessagePartRemovedEvent,
|
||||
SDKPart,
|
||||
SDKMessage
|
||||
SDKMessage,
|
||||
SDKAssistantMessageV2,
|
||||
}
|
||||
|
||||
// Server streaming event: append-only delta updates.
|
||||
|
||||
Reference in New Issue
Block a user