From ed20f1c4b38fafea5fa1a4203819a32f1d592182 Mon Sep 17 00:00:00 2001 From: Benjamin Shafii Date: Tue, 31 Mar 2026 17:44:27 -0700 Subject: [PATCH] feat(session): render streamed file mentions as cards Break assistant text into stable blocks so streaming stays responsive and tool-created files surface as openable transcript cards instead of getting buried in prose. --- apps/app/package.json | 1 + apps/app/pr/session-rich-file-card.png | Bin 0 -> 329064 bytes .../src/app/components/session/file-card.tsx | 178 +++++ .../components/session/message-content.tsx | 611 ++++++++++++++++++ .../app/components/session/message-list.tsx | 101 ++- apps/app/src/app/lib/tauri.ts | 13 + apps/app/src/app/pages/session.tsx | 193 ++---- apps/app/src/app/session/content-blocks.ts | 104 +++ apps/app/src/app/session/file-actions.ts | 108 ++++ apps/app/src/app/session/file-links.ts | 259 ++++++++ .../app/src/app/session/file-presentations.ts | 134 ++++ apps/app/src/app/utils/index.ts | 157 +++-- apps/desktop/src-tauri/src/commands/misc.rs | 81 +++ apps/desktop/src-tauri/src/lib.rs | 5 +- pnpm-lock.yaml | 8 + 15 files changed, 1735 insertions(+), 218 deletions(-) create mode 100644 apps/app/pr/session-rich-file-card.png create mode 100644 apps/app/src/app/components/session/file-card.tsx create mode 100644 apps/app/src/app/components/session/message-content.tsx create mode 100644 apps/app/src/app/session/content-blocks.ts create mode 100644 apps/app/src/app/session/file-actions.ts create mode 100644 apps/app/src/app/session/file-links.ts create mode 100644 apps/app/src/app/session/file-presentations.ts diff --git a/apps/app/package.json b/apps/app/package.json index 2838d2a8d..0f04d68e8 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -52,6 +52,7 @@ "jsonc-parser": "^3.2.1", "lucide-solid": "^0.562.0", "marked": "^17.0.1", + "remend": "^1.3.0", "solid-js": "^1.9.0" }, "devDependencies": { diff --git a/apps/app/pr/session-rich-file-card.png b/apps/app/pr/session-rich-file-card.png new file mode 100644 index 0000000000000000000000000000000000000000..43130bcc4ee337d413530035eb81283a58055903 GIT binary patch literal 329064 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 z⁢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

-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

    lS=pC? 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

    Z$tUrxc<9 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%0D@GXvvzw3UfdPf`=Evn}}= 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 aVuHMmiAj*GxD9ZJKucW@S*>at{{H}~3i0m% literal 0 HcmV?d00001 diff --git a/apps/app/src/app/components/session/file-card.tsx b/apps/app/src/app/components/session/file-card.tsx new file mode 100644 index 000000000..cf29a2491 --- /dev/null +++ b/apps/app/src/app/components/session/file-card.tsx @@ -0,0 +1,178 @@ +import { Match, Show, Switch, createMemo, createResource } from "solid-js"; +import { + Archive, + Database, + File, + FileCode2, + FileSpreadsheet, + FileText, + FolderOpen, + ImageIcon, + PlaySquare, +} from "lucide-solid"; +import { usePlatform } from "../../context/platform"; +import { + getDefaultDesktopFileAssociation, + resolvePrimaryLocalFile, + runLocalFileAction, +} from "../../session/file-actions"; +import { + filePresentationForReference, + type FileReferenceCard, +} from "../../session/file-presentations"; +import { isTauriRuntime } from "../../utils"; + +type Props = { + reference: FileReferenceCard; + tone?: "light" | "dark"; + workspaceRoot?: string; +}; + +export default function FileCard(props: Props) { + const platform = usePlatform(); + const tone = () => props.tone ?? "light"; + const workspaceRoot = () => props.workspaceRoot ?? ""; + const presentation = createMemo(() => + filePresentationForReference({ + path: props.reference.path, + title: props.reference.title, + detail: props.reference.detail, + mime: props.reference.mime, + }), + ); + const [resolvedFile] = createResource( + () => `${props.reference.path}\u0000${workspaceRoot()}`, + async () => resolvePrimaryLocalFile(props.reference.path, workspaceRoot()), + ); + const [defaultApp] = createResource( + () => `${props.reference.path}\u0000${workspaceRoot()}`, + async () => getDefaultDesktopFileAssociation(props.reference.path, workspaceRoot()), + ); + + const surfaceClass = () => + tone() === "dark" + ? "border-gray-6 bg-gray-1/60" + : "border-gray-6/70 bg-gray-2/30"; + const chipClass = () => + tone() === "dark" + ? "bg-gray-12/10 text-gray-12/80" + : "bg-gray-1/70 text-gray-9"; + const iconWrapClass = () => + tone() === "dark" + ? "bg-gray-12/10 text-gray-12" + : "bg-gray-1 text-gray-11"; + + const openLabel = createMemo(() => { + const app = defaultApp(); + if (app?.name?.trim()) { + return `Open in ${app.name.replace(/\.app$/i, "")}`; + } + return "Open"; + }); + + const canUseDesktopActions = createMemo(() => + Boolean(isTauriRuntime() && resolvedFile()), + ); + + const openReference = async () => { + if (!resolvedFile()) return; + if (!isTauriRuntime()) { + platform.openLink(`file://${resolvedFile()}`); + return; + } + + const { openPath } = await import("@tauri-apps/plugin-opener"); + await runLocalFileAction({ + file: resolvedFile()!, + workspaceRoot: workspaceRoot(), + action: async (candidate) => { + await openPath(candidate); + }, + }); + }; + + const revealReference = async () => { + if (!resolvedFile() || !isTauriRuntime()) return; + const { openPath, revealItemInDir } = await import("@tauri-apps/plugin-opener"); + await runLocalFileAction({ + file: resolvedFile()!, + workspaceRoot: workspaceRoot(), + action: async (candidate) => { + await revealItemInDir(candidate).catch(() => openPath(candidate)); + }, + }); + }; + + const FileGlyph = () => ( + }> + + + + + + + + + + + + + + + + + + + + + + + ); + + return ( +

    +
    +
    + +
    +
    +
    +
    + {presentation().title} +
    +
    + {presentation().typeLabel} +
    +
    + +
    {presentation().detail}
    +
    +
    + + + + +
    +
    +
    +
    + ); +} diff --git a/apps/app/src/app/components/session/message-content.tsx b/apps/app/src/app/components/session/message-content.tsx new file mode 100644 index 000000000..800af91e1 --- /dev/null +++ b/apps/app/src/app/components/session/message-content.tsx @@ -0,0 +1,611 @@ +import { + For, + Match, + Show, + Switch, + createEffect, + createMemo, + createSignal, + onCleanup, +} from "solid-js"; +import { marked } from "marked"; +import type { Part } from "@opencode-ai/sdk/v2/client"; +import { Check, Copy } from "lucide-solid"; +import type { ArtifactItem } from "../../types"; +import { usePlatform } from "../../context/platform"; +import { splitSessionContentBlocks, type SessionContentBlock } from "../../session/content-blocks"; +import { + dedupeFileReferenceCards, + fileReferenceCardFromArtifact, + type FileReferenceCard, +} from "../../session/file-presentations"; +import { + normalizeFilePath, + parseLinkFromToken, + splitTextTokens, +} from "../../session/file-links"; +import { perfNow, recordPerfLog } from "../../lib/perf-log"; +import { isTauriRuntime } from "../../utils"; +import FileCard from "./file-card"; + +type Props = { + part: Part; + developerMode?: boolean; + tone?: "light" | "dark"; + workspaceRoot?: string; + renderMarkdown?: boolean; + markdownThrottleMs?: number; + highlightQuery?: string; + artifacts?: ArtifactItem[]; +}; + +function escapeHtml(value: string) { + return value.replace(/&/g, "&").replace(//g, ">"); +} + +function useThrottledValue(value: () => T, delayMs: number | (() => number) = 48) { + const [state, setState] = createSignal(value()); + let timer: ReturnType | undefined; + let hasEmitted = false; + + createEffect(() => { + const next = value(); + const delay = typeof delayMs === "function" ? delayMs() : delayMs; + if (!delay || !hasEmitted) { + hasEmitted = true; + setState(() => next); + return; + } + if (timer) clearTimeout(timer); + timer = setTimeout(() => { + setState(() => next); + timer = undefined; + }, delay); + }); + + onCleanup(() => { + if (timer) clearTimeout(timer); + }); + + return state; +} + +const MARKDOWN_CACHE_MAX_ENTRIES = 300; +const LARGE_TEXT_COLLAPSE_CHAR_THRESHOLD = 12_000; +const LARGE_TEXT_PREVIEW_CHARS = 3_200; +const SEARCH_HIGHLIGHT_MARK_ATTR = "data-openwork-highlight"; +const markdownHtmlCache = new Map(); +const expandedLargeTextPartIds = new Set(); +const rendererByTone = new Map<"light" | "dark", ReturnType>(); + +function markdownCacheKey(tone: "light" | "dark", text: string) { + return `${tone}\u0000${text}`; +} + +function readMarkdownCache(key: string) { + const cached = markdownHtmlCache.get(key); + if (cached === undefined) return undefined; + markdownHtmlCache.delete(key); + markdownHtmlCache.set(key, cached); + return cached; +} + +function writeMarkdownCache(key: string, html: string) { + if (markdownHtmlCache.has(key)) markdownHtmlCache.delete(key); + markdownHtmlCache.set(key, html); + while (markdownHtmlCache.size > MARKDOWN_CACHE_MAX_ENTRIES) { + const oldest = markdownHtmlCache.keys().next().value; + if (!oldest) break; + markdownHtmlCache.delete(oldest); + } +} + +function rendererForTone(tone: "light" | "dark") { + const cached = rendererByTone.get(tone); + if (cached) return cached; + const next = createCustomRenderer(tone); + rendererByTone.set(tone, next); + return next; +} + +function createCustomRenderer(tone: "light" | "dark") { + const renderer = new marked.Renderer(); + const inlineCodeClass = + tone === "dark" + ? "bg-gray-12/15 text-gray-12" + : "bg-gray-2/70 text-gray-12"; + + const isSafeUrl = (url: string) => { + const normalized = (url || "").trim().toLowerCase(); + if (normalized.startsWith("javascript:")) return false; + if (normalized.startsWith("data:")) return normalized.startsWith("data:image/"); + return true; + }; + + renderer.html = ({ text }) => escapeHtml(text); + renderer.codespan = ({ text }) => { + return `${escapeHtml( + text, + )}`; + }; + renderer.link = ({ href, title, text }) => { + const safeHref = isSafeUrl(href ?? "") ? escapeHtml(href ?? "#") : "#"; + const safeTitle = title ? escapeHtml(title) : ""; + return ` + + ${text} + + `; + }; + renderer.image = ({ href, title, text }) => { + const safeHref = isSafeUrl(href ?? "") ? escapeHtml(href ?? "") : ""; + const safeTitle = title ? escapeHtml(title) : ""; + return ` + ${escapeHtml(text || + `; + }; + + return renderer; +} + +function applyTextHighlights(root: HTMLElement, query: string) { + root.querySelectorAll(`[${SEARCH_HIGHLIGHT_MARK_ATTR}]`).forEach((mark) => { + const parent = mark.parentNode; + if (!parent) return; + parent.replaceChild(document.createTextNode(mark.textContent ?? ""), mark); + parent.normalize(); + }); + + const needle = query.trim().toLowerCase(); + if (!needle) return; + + const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { + acceptNode(node) { + const parent = node.parentElement; + if (!parent) return NodeFilter.FILTER_REJECT; + if (parent.closest("script, style, button, mark")) return NodeFilter.FILTER_REJECT; + if (!node.textContent?.trim()) return NodeFilter.FILTER_REJECT; + return NodeFilter.FILTER_ACCEPT; + }, + }); + + const textNodes: Text[] = []; + let node = walker.nextNode(); + while (node) { + textNodes.push(node as Text); + node = walker.nextNode(); + } + + textNodes.forEach((textNode) => { + const text = textNode.textContent ?? ""; + const lower = text.toLowerCase(); + let searchIndex = 0; + let matchIndex = lower.indexOf(needle, searchIndex); + if (matchIndex === -1) return; + + const fragment = document.createDocumentFragment(); + while (matchIndex !== -1) { + if (matchIndex > searchIndex) { + fragment.appendChild(document.createTextNode(text.slice(searchIndex, matchIndex))); + } + const mark = document.createElement("mark"); + mark.setAttribute(SEARCH_HIGHLIGHT_MARK_ATTR, "true"); + mark.className = "rounded px-0.5 bg-amber-4/70 text-current"; + mark.textContent = text.slice(matchIndex, matchIndex + needle.length); + fragment.appendChild(mark); + searchIndex = matchIndex + needle.length; + matchIndex = lower.indexOf(needle, searchIndex); + if (matchIndex === -1) { + fragment.appendChild(document.createTextNode(text.slice(searchIndex))); + } + } + textNode.parentNode?.replaceChild(fragment, textNode); + }); +} + +function markdownHtmlForBlock(tone: "light" | "dark", raw: string, developerMode: boolean) { + const key = markdownCacheKey(tone, raw); + const cached = readMarkdownCache(key); + if (cached !== undefined) return cached; + + const startedAt = perfNow(); + const html = String( + marked.parse(raw, { + breaks: true, + gfm: true, + renderer: rendererForTone(tone), + async: false, + }) ?? "", + ); + const parseMs = Math.round((perfNow() - startedAt) * 100) / 100; + if (developerMode && (parseMs >= 8 || raw.length >= 2_500)) { + recordPerfLog(true, "session.render", "markdown-block-parse", { + chars: raw.length, + ms: parseMs, + }); + } + writeMarkdownCache(key, html); + return html; +} + +type MarkdownBlockViewProps = { + block: Extract; + tone: "light" | "dark"; + developerMode: boolean; + onLinkClick: (event: MouseEvent) => void; +}; + +function MarkdownBlockView(props: MarkdownBlockViewProps) { + const html = createMemo(() => markdownHtmlForBlock(props.tone, props.block.raw, props.developerMode)); + return ( +
    + ); +} + +function CodeBlockView(props: { block: Extract; tone: "light" | "dark" }) { + const [copied, setCopied] = createSignal(false); + let copyTimer: number | undefined; + + onCleanup(() => { + if (copyTimer !== undefined) { + window.clearTimeout(copyTimer); + } + }); + + const copyCode = async () => { + try { + await navigator.clipboard.writeText(props.block.code); + setCopied(true); + if (copyTimer !== undefined) window.clearTimeout(copyTimer); + copyTimer = window.setTimeout(() => { + setCopied(false); + copyTimer = undefined; + }, 1800); + } catch { + // ignore + } + }; + + const shellClass = () => + props.tone === "dark" + ? "border-gray-11/20 bg-gray-12/10 text-gray-12" + : "border-gray-6/70 bg-gray-1/70 text-gray-12"; + + return ( +
    +
    +
    + {props.block.lang || "code"} +
    + +
    +
    +        {props.block.code}
    +      
    +
    + ); +} + +export default function MessageContent(props: Props) { + const platform = usePlatform(); + const tone = () => props.tone ?? "light"; + const textClass = () => "text-gray-12"; + const part = () => props.part; + const renderMarkdown = () => props.renderMarkdown ?? false; + const markdownThrottleMs = () => Math.max(0, props.markdownThrottleMs ?? 48); + const rawText = createMemo(() => { + if (part().type !== "text") return ""; + return String((part() as { text?: string }).text ?? ""); + }); + const textPartStableId = createMemo(() => { + if (part().type !== "text") return ""; + const record = part() as { id?: string | number; messageID?: string | number }; + const partId = record.id; + if (typeof partId === "string") return partId; + if (typeof partId === "number") return String(partId); + const messageId = record.messageID; + if (typeof messageId === "string") return `msg:${messageId}`; + if (typeof messageId === "number") return `msg:${String(messageId)}`; + return ""; + }); + const isPersistedExpanded = () => { + const id = textPartStableId(); + return Boolean(id && expandedLargeTextPartIds.has(id)); + }; + const [expandedLongText, setExpandedLongText] = createSignal(isPersistedExpanded()); + createEffect(() => { + if (!isPersistedExpanded() || expandedLongText()) return; + setExpandedLongText(true); + }); + const shouldCollapseLongText = createMemo( + () => renderMarkdown() && part().type === "text" && rawText().length >= LARGE_TEXT_COLLAPSE_CHAR_THRESHOLD, + ); + const collapsedLongText = createMemo( + () => shouldCollapseLongText() && !(expandedLongText() || isPersistedExpanded()), + ); + const collapsedPreviewText = createMemo(() => { + const text = rawText(); + if (!collapsedLongText()) return text; + if (text.length <= LARGE_TEXT_PREVIEW_CHARS) return text; + return `${text.slice(0, LARGE_TEXT_PREVIEW_CHARS)}\n\n...`; + }); + const markdownSource = createMemo(() => { + if (!renderMarkdown() || part().type !== "text") return ""; + if (collapsedLongText()) return ""; + return rawText(); + }); + const throttledMarkdownSource = useThrottledValue(markdownSource, markdownThrottleMs); + let previousBlocks: SessionContentBlock[] = []; + const contentBlocks = createMemo(() => { + if (!renderMarkdown() || part().type !== "text") return [] as SessionContentBlock[]; + const text = throttledMarkdownSource(); + if (!text.trim()) { + previousBlocks = []; + return [] as SessionContentBlock[]; + } + const startedAt = perfNow(); + const next = splitSessionContentBlocks(text, previousBlocks); + previousBlocks = next; + const elapsedMs = Math.round((perfNow() - startedAt) * 100) / 100; + if ((props.developerMode ?? false) && (elapsedMs >= 6 || text.length >= 6_000)) { + recordPerfLog(true, "session.render", "content-blocks", { + chars: text.length, + blocks: next.length, + ms: elapsedMs, + }); + } + return next; + }); + const inlineFileCards = createMemo(() => + contentBlocks() + .filter((block): block is Extract => block.kind === "file") + .map((block) => ({ + id: block.id, + path: block.path, + title: block.label, + detail: block.path, + source: "text" as const, + })), + ); + const mentionedFileCards = createMemo(() => { + if (!renderMarkdown() || part().type !== "text") return []; + return splitTextTokens(rawText()) + .filter((token): token is Extract[number], { kind: "link" }> => token.kind === "link") + .filter((token) => token.type === "file") + .map((token) => ({ + id: `mention:${token.href}`, + path: token.href, + detail: token.href, + source: "text" as const, + })); + }); + const artifactCards = createMemo(() => + (props.artifacts ?? []) + .map((artifact) => fileReferenceCardFromArtifact(artifact)) + .filter((value): value is FileReferenceCard => Boolean(value)), + ); + const visibleArtifactCards = createMemo(() => + dedupeFileReferenceCards([...inlineFileCards(), ...mentionedFileCards(), ...artifactCards()]), + ); + let textContainerEl: HTMLDivElement | undefined; + + const openLink = async (href: string, type: "url" | "file") => { + if (type === "url") { + platform.openLink(href); + return; + } + + const filePath = normalizeFilePath(href, props.workspaceRoot ?? ""); + if (!filePath) return; + if (!isTauriRuntime()) { + platform.openLink(href.startsWith("file://") ? href : `file://${filePath}`); + return; + } + + const { openPath, revealItemInDir } = await import("@tauri-apps/plugin-opener"); + await revealItemInDir(filePath).catch(() => openPath(filePath)); + }; + + const openMarkdownLink = async (event: MouseEvent) => { + const target = event.target; + if (!(target instanceof HTMLElement)) return; + const anchor = target.closest("a"); + if (!(anchor instanceof HTMLAnchorElement)) return; + const href = anchor.getAttribute("href")?.trim(); + if (!href) return; + const link = parseLinkFromToken(href); + if (!link) return; + event.preventDefault(); + event.stopPropagation(); + await openLink(link.href, link.type); + }; + + const renderTextWithLinks = () => { + const text = rawText(); + if (!text) return {""}; + const tokens = splitTextTokens(text); + return ( + + + {(token) => + token.kind === "link" ? ( + { + event.preventDefault(); + event.stopPropagation(); + void openLink(token.href, token.type); + }} + > + {token.value} + + ) : ( + token.value + ) + } + + + ); + }; + + createEffect(() => { + const root = textContainerEl; + if (!root) return; + const query = props.highlightQuery ?? ""; + const signature = `${rawText().length}:${contentBlocks().length}:${visibleArtifactCards().length}:${query}`; + void signature; + queueMicrotask(() => { + if (!textContainerEl || textContainerEl !== root) return; + applyTextHighlights(textContainerEl, query); + }); + }); + + if (part().type === "file") { + const file = part() as { + id?: string | number; + filename?: string; + url?: string; + mime?: string; + source?: { + path?: string; + name?: string; + uri?: string; + }; + }; + const sourcePath = typeof file.source?.path === "string" ? file.source.path : ""; + const sourceUri = typeof file.source?.uri === "string" ? file.source.uri : ""; + const path = sourcePath || file.url || sourceUri; + return ( + + ); + } + + return ( +
    { + textContainerEl = el; + }} + class={textClass()} + > + +
    +
    + {collapsedPreviewText()} +
    + +
    +
    + + + {renderTextWithLinks()}
    } + > +
    + + {(block) => ( + + + } + tone={tone()} + developerMode={props.developerMode ?? false} + onLinkClick={openMarkdownLink} + /> + + + } + tone={tone()} + /> + + +
    + ).path, + title: (block as Extract).label, + detail: (block as Extract).path, + source: "text", + }} + tone={tone()} + workspaceRoot={props.workspaceRoot} + /> +
    +
    +
    + )} +
    +
    + + + 0}> +
    + + {(reference) => ( + + )} + +
    +
    + +
    + ); +} diff --git a/apps/app/src/app/components/session/message-list.tsx b/apps/app/src/app/components/session/message-list.tsx index 4c3605304..c41072f9d 100644 --- a/apps/app/src/app/components/session/message-list.tsx +++ b/apps/app/src/app/components/session/message-list.tsx @@ -25,11 +25,12 @@ import { type StepGroupMode, } from "../../types"; import { + deriveArtifactsFromParts, groupMessageParts, isUserVisiblePart, summarizeStep, } from "../../utils"; -import PartView from "../part-view"; +import MessageContent from "./message-content"; import { perfNow, recordPerfLog } from "../../lib/perf-log"; export type MessageListProps = { @@ -61,6 +62,7 @@ type StepClusterBlock = { id: string; stepGroups: StepTimelineGroup[]; messageIds: string[]; + artifacts: MessageBlock["artifacts"]; isUser: boolean; }; @@ -74,6 +76,14 @@ type MessageBlock = { kind: "message"; message: MessageWithParts; renderableParts: Part[]; + artifacts: Array<{ + id: string; + name: string; + path?: string; + kind: "file" | "text"; + size?: string; + messageId?: string; + }>; attachments: Array<{ url: string; filename: string; @@ -89,6 +99,35 @@ type MessageBlockItem = MessageBlock | StepClusterBlock; const VIRTUALIZATION_THRESHOLD = 500; const VIRTUAL_OVERSCAN = 4; +function mergeArtifacts( + ...lists: Array< + Array<{ + id: string; + name: string; + path?: string; + kind: "file" | "text"; + size?: string; + messageId?: string; + }> + > +) { + const merged = new Map(); + for (const list of lists) { + list.forEach((artifact) => { + const key = (artifact.path || artifact.id || artifact.name).toLowerCase(); + merged.set(key, artifact); + }); + } + return Array.from(merged.values()); +} + function normalizePath(path: string) { const normalized = path.replace(/\\/g, "/").trim().replace(/\/+/g, "/"); if (!normalized || normalized === "/") return normalized; @@ -410,6 +449,7 @@ export default function MessageList(props: MessageListProps) { const blocks: MessageBlockItem[] = []; const nextMessagePartCountById = new Map(); const nextMessageBlockById = new Map(); + let pendingAssistantArtifacts: MessageBlock["artifacts"] = []; let changedMessageCount = 0; let addedMessageCount = 0; let toolPartCount = 0; @@ -461,6 +501,10 @@ export default function MessageList(props: MessageListProps) { const groupId = String((message.info as any).id ?? "message"); const attachments = attachmentsForParts(renderableParts); const nonAttachmentParts = renderableParts.filter((part) => !isAttachmentPart(part)); + const ownArtifacts = deriveArtifactsFromParts(renderableParts, messageId || undefined); + const artifacts = !isUser + ? mergeArtifacts(pendingAssistantArtifacts, ownArtifacts) + : ownArtifacts; const groups = groupMessageParts(nonAttachmentParts, groupId); const isStepsOnly = groups.length > 0 && groups.every((group) => group.kind === "steps"); @@ -479,6 +523,11 @@ export default function MessageList(props: MessageListProps) { ); if (isStepsOnly) { + if (!isUser && artifacts.length > 0) { + pendingAssistantArtifacts = artifacts; + } else if (isUser) { + pendingAssistantArtifacts = []; + } blocks.push({ kind: "steps-cluster", id: stepGroups[0].id, @@ -488,15 +537,19 @@ export default function MessageList(props: MessageListProps) { mode: group.mode, })), messageIds: [messageId], + artifacts, isUser, }); return; } + pendingAssistantArtifacts = []; + const block: MessageBlock = { kind: "message", message, renderableParts, + artifacts, attachments, groups, isUser, @@ -983,6 +1036,24 @@ export default function MessageList(props: MessageListProps) { ); } + const carriedArtifacts = + !block.isUser && block.artifacts.length === 0 + ? (() => { + for (let cursor = blockIndex - 1; cursor >= 0; cursor -= 1) { + const previous = messageBlocks()[cursor]; + if (!previous) continue; + if (previous.kind === "steps-cluster") { + if (!previous.isUser && previous.artifacts.length > 0) { + return previous.artifacts; + } + continue; + } + break; + } + return [] as MessageBlock["artifacts"]; + })() + : block.artifacts; + const groupSpacing = block.isUser ? "mb-3" : "mb-4"; const isSyntheticSessionError = !block.isUser && @@ -1079,30 +1150,32 @@ export default function MessageList(props: MessageListProps) { > {(() => { + const textGroup = group as { + kind: "text"; + part: Part; + segment: "intent" | "result"; + }; const isStreamingLatestAssistant = !block.isUser && props.isStreaming && block.messageId === latestAssistantMessageId(); const markdownThrottleMs = isStreamingLatestAssistant - ? 120 - : 100; + ? 48 + : 0; + const isFinalTextGroup = idx() === block.groups.length - 1; + const artifacts = + !block.isUser && isFinalTextGroup + ? carriedArtifacts + : []; return ( - { return invoke("app_build_info"); } +export async function desktopGetDefaultAppForFile( + path: string, +): Promise { + return invoke("desktop_default_app_for_file", { + path, + }); +} + export async function nukeOpenworkAndOpencodeConfigAndExit(): Promise { return invoke("nuke_openwork_and_opencode_config_and_exit"); } diff --git a/apps/app/src/app/pages/session.tsx b/apps/app/src/app/pages/session.tsx index f41e7b20d..ad13a34cf 100644 --- a/apps/app/src/app/pages/session.tsx +++ b/apps/app/src/app/pages/session.tsx @@ -75,7 +75,6 @@ import type { OpenworkServerSettings, OpenworkServerStatus, } from "../lib/openwork-server"; -import { join } from "@tauri-apps/api/path"; import { isUserVisiblePart, isTauriRuntime, @@ -83,13 +82,16 @@ import { normalizeDirectoryPath, } from "../utils"; import { finishPerf, perfNow, recordPerfLog } from "../lib/perf-log"; -import { normalizeLocalFilePath } from "../lib/local-file-path"; import { defaultBlueprintCopyForPreset, defaultBlueprintStartersForPreset, } from "../lib/workspace-blueprints"; import { DEFAULT_SESSION_TITLE, getDisplaySessionTitle } from "../lib/session-title"; import { useSessionDisplayPreferences } from "../app-settings/session-display-preferences"; +import { + runLocalFileAction as runLocalFileActionAcrossWorkspace, + type LocalFileActionResult, +} from "../session/file-actions"; import MessageList from "../components/session/message-list"; import Composer from "../components/session/composer"; @@ -256,7 +258,6 @@ const INITIAL_MESSAGE_WINDOW = 140; const MESSAGE_WINDOW_LOAD_CHUNK = 120; const MAX_SEARCH_MESSAGE_CHARS = 4_000; const MAX_SEARCH_HITS = 2_000; -const STREAM_RENDER_BATCH_MS = 48; const MAIN_THREAD_LAG_INTERVAL_MS = 200; const MAIN_THREAD_LAG_WARN_MS = 180; @@ -320,6 +321,13 @@ export default function SessionView(props: SessionViewProps) { let streamRenderBatchTimer: number | undefined; let streamRenderBatchQueuedAt = 0; let streamRenderBatchReschedules = 0; + let pendingRenderedMessageBatch: + | { + messages: MessageWithParts[]; + sourceMessageCount: number; + sourcePartCount: number; + } + | null = null; const [composerNotice, setComposerNotice] = createSignal( null, @@ -655,9 +663,10 @@ export default function SessionView(props: SessionViewProps) { const sourcePartCount = totalPartCount(); if (props.sessionStatus === "idle") { if (streamRenderBatchTimer !== undefined) { - window.clearTimeout(streamRenderBatchTimer); + window.cancelAnimationFrame(streamRenderBatchTimer); streamRenderBatchTimer = undefined; } + pendingRenderedMessageBatch = null; setBatchedRenderedMessages(next); streamRenderBatchQueuedAt = 0; streamRenderBatchReschedules = 0; @@ -670,14 +679,25 @@ export default function SessionView(props: SessionViewProps) { streamRenderBatchReschedules += 1; } + pendingRenderedMessageBatch = { + messages: next, + sourceMessageCount, + sourcePartCount, + }; + if (streamRenderBatchTimer !== undefined) { - window.clearTimeout(streamRenderBatchTimer); - streamRenderBatchTimer = undefined; + return; } - streamRenderBatchTimer = window.setTimeout(() => { + streamRenderBatchTimer = window.requestAnimationFrame(() => { const applyStartedAt = perfNow(); - setBatchedRenderedMessages(next); + const batch = pendingRenderedMessageBatch ?? { + messages: next, + sourceMessageCount, + sourcePartCount, + }; + pendingRenderedMessageBatch = null; + setBatchedRenderedMessages(batch.messages); streamRenderBatchTimer = undefined; const applyMs = Math.round((perfNow() - applyStartedAt) * 100) / 100; const queuedMs = @@ -704,14 +724,14 @@ export default function SessionView(props: SessionViewProps) { reschedules, sessionID: props.selectedSessionId, status: props.sessionStatus, - sourceMessageCount, - sourcePartCount, - renderedMessageCount: next.length, + sourceMessageCount: batch.sourceMessageCount, + sourcePartCount: batch.sourcePartCount, + renderedMessageCount: batch.messages.length, }); } }); } - }, STREAM_RENDER_BATCH_MS); + }); }); createEffect(() => { @@ -850,139 +870,52 @@ export default function SessionView(props: SessionViewProps) { const canCompactSession = createMemo( () => Boolean(props.selectedSessionId) && hasUserMessages(), ); - - const resolveLocalFileCandidates = async (file: string) => { - const trimmed = normalizeLocalFilePath(file).trim(); - if (!trimmed) return []; - if (isAbsolutePath(trimmed)) return [trimmed]; - - const root = props.selectedWorkspaceRoot.trim(); - if (!root) return []; - - const normalized = trimmed - .replace(/[\\/]+/g, "/") - .replace(/^\.\/+/, "") - .replace(/\/+$/, ""); - const candidates: string[] = []; - const seen = new Set(); - - const pushCandidate = (value: string) => { - const key = value - .trim() - .replace(/[\\/]+/g, "/") - .toLowerCase(); - if (!key || seen.has(key)) return; - seen.add(key); - candidates.push(value); - }; - - pushCandidate(await join(root, normalized)); - - if (normalized.startsWith(".opencode/openwork/outbox/")) { - return candidates; - } - - if (normalized.startsWith("openwork/outbox/")) { - const suffix = normalized.slice("openwork/outbox/".length); - if (suffix) { - pushCandidate( - await join(root, ".opencode", "openwork", "outbox", suffix), - ); - } - return candidates; - } - - if (normalized.startsWith("outbox/")) { - const suffix = normalized.slice("outbox/".length); - if (suffix) { - pushCandidate( - await join(root, ".opencode", "openwork", "outbox", suffix), - ); - } - return candidates; - } - - if (!normalized.startsWith(".opencode/")) { - pushCandidate( - await join(root, ".opencode", "openwork", "outbox", normalized), - ); - } - - return candidates; - }; - const runLocalFileAction = async ( file: string, mode: "open" | "reveal", action: (candidate: string) => Promise, - ) => { - const candidates = await resolveLocalFileCandidates(file); - if (!candidates.length) { - return { ok: false as const, reason: "missing-root" as const }; - } - - let lastError: unknown = null; - for (let index = 0; index < candidates.length; index += 1) { - const candidate = candidates[index]; - const startedAt = perfNow(); - try { + ): Promise => { + let lastAttemptedCandidate: string | null = null; + const result = await runLocalFileActionAcrossWorkspace({ + file, + workspaceRoot: props.selectedWorkspaceRoot, + action: async (candidate) => { + lastAttemptedCandidate = candidate; + const startedAt = perfNow(); recordPerfLog(props.developerMode, "session.file-open", "attempt", { mode, input: file, target: candidate, - candidateIndex: index, - candidateCount: candidates.length, }); - await action(candidate); - finishPerf( - props.developerMode, - "session.file-open", - "success", - startedAt, - { + try { + await action(candidate); + finishPerf(props.developerMode, "session.file-open", "success", startedAt, { mode, input: file, target: candidate, - candidateIndex: index, - candidateCount: candidates.length, - }, - ); - return { ok: true as const, path: candidate }; - } catch (error) { - lastError = error; - console.warn("[session.file-open] candidate failed", { - mode, - input: file, - target: candidate, - candidateIndex: index, - candidateCount: candidates.length, - error: error instanceof Error ? error.message : String(error), - }); - finishPerf( - props.developerMode, - "session.file-open", - "candidate-failed", - startedAt, - { + }); + } catch (error) { + finishPerf(props.developerMode, "session.file-open", "candidate-failed", startedAt, { mode, input: file, target: candidate, - candidateIndex: index, - candidateCount: candidates.length, error: error instanceof Error ? error.message : String(error), - }, - ); - } + }); + throw error; + } + }, + }); + + if (!result.ok && result.reason !== "missing-root") { + console.warn("[session.file-open] failed", { + mode, + input: file, + target: lastAttemptedCandidate, + error: result.reason, + }); } - const suffix = - candidates.length > 1 - ? ` (tried ${candidates.length} paths: workspace root and outbox fallbacks)` - : ""; - return { - ok: false as const, - reason: `${lastError instanceof Error ? lastError.message : "File open failed"}${suffix}`, - }; + return result; }; const revealWorkspaceInFinder = async (workspaceId: string) => { @@ -1045,9 +978,10 @@ export default function SessionView(props: SessionViewProps) { jumpControlsSuppressTimer = undefined; } if (streamRenderBatchTimer !== undefined) { - window.clearTimeout(streamRenderBatchTimer); + window.cancelAnimationFrame(streamRenderBatchTimer); streamRenderBatchTimer = undefined; } + pendingRenderedMessageBatch = null; streamRenderBatchQueuedAt = 0; streamRenderBatchReschedules = 0; }); @@ -1096,9 +1030,6 @@ export default function SessionView(props: SessionViewProps) { setMessageWindowStart(count); }); - const isAbsolutePath = (value: string) => - /^(?:[a-zA-Z]:[\\/]|\\\\|\/|~\/)/.test(value.trim()); - const handleWorkingFileClick = async (file: string) => { const trimmed = file.trim(); if (!trimmed) return; diff --git a/apps/app/src/app/session/content-blocks.ts b/apps/app/src/app/session/content-blocks.ts new file mode 100644 index 000000000..4bc16b597 --- /dev/null +++ b/apps/app/src/app/session/content-blocks.ts @@ -0,0 +1,104 @@ +import { marked } from "marked"; +import remend from "remend"; +import { detectStandaloneFileReference } from "./file-links"; + +export type SessionContentBlock = + | { + kind: "markdown"; + id: string; + raw: string; + } + | { + kind: "code"; + id: string; + raw: string; + code: string; + lang: string; + } + | { + kind: "file"; + id: string; + raw: string; + path: string; + label?: string; + }; + +type MarkedToken = { + type?: string; + raw?: string; + text?: string; + lang?: string; +}; + +const blockId = (kind: SessionContentBlock["kind"], index: number, raw: string) => + `${kind}:${index}:${raw.slice(0, 80)}`; + +const reuseBlock = (previous: SessionContentBlock[] | undefined, index: number, next: SessionContentBlock) => { + const existing = previous?.[index]; + if (!existing) return next; + + if (existing.kind !== next.kind) return next; + if (existing.raw !== next.raw) return next; + if (existing.kind === "code" && next.kind === "code") { + if (existing.code !== next.code || existing.lang !== next.lang) return next; + } + if (existing.kind === "file" && next.kind === "file") { + if (existing.path !== next.path || existing.label !== next.label) return next; + } + return existing; +}; + +const tokenRaw = (token: MarkedToken) => (typeof token.raw === "string" ? token.raw : ""); + +const tokenToBlock = (token: MarkedToken, index: number): SessionContentBlock | null => { + const raw = tokenRaw(token); + if (!raw.trim()) return null; + + if (token.type === "code") { + const code = typeof token.text === "string" ? token.text : raw; + const lang = typeof token.lang === "string" ? token.lang : ""; + return { + kind: "code", + id: blockId("code", index, raw), + raw, + code, + lang, + }; + } + + if (token.type === "paragraph") { + const reference = detectStandaloneFileReference(raw); + if (reference) { + return { + kind: "file", + id: blockId("file", index, raw), + raw, + path: reference.path, + label: reference.label, + }; + } + } + + return { + kind: "markdown", + id: blockId("markdown", index, raw), + raw, + }; +}; + +export const splitSessionContentBlocks = ( + value: string, + previous: SessionContentBlock[] = [], +): SessionContentBlock[] => { + const healed = remend(value, { inlineKatex: false }); + const tokens = marked.lexer(healed, { gfm: true, breaks: true }) as MarkedToken[]; + const next: SessionContentBlock[] = []; + + tokens.forEach((token, index) => { + const block = tokenToBlock(token, index); + if (!block) return; + next.push(reuseBlock(previous, next.length, block)); + }); + + return next; +}; diff --git a/apps/app/src/app/session/file-actions.ts b/apps/app/src/app/session/file-actions.ts new file mode 100644 index 000000000..b7f6d2d12 --- /dev/null +++ b/apps/app/src/app/session/file-actions.ts @@ -0,0 +1,108 @@ +import { join } from "@tauri-apps/api/path"; +import { normalizeLocalFilePath } from "../lib/local-file-path"; +import { desktopGetDefaultAppForFile, type DesktopFileAssociation } from "../lib/tauri"; +import { isTauriRuntime } from "../utils"; + +export type LocalFileActionMode = "open" | "reveal"; + +export type LocalFileActionResult = + | { ok: true; path: string } + | { ok: false; reason: "missing-root" | string }; + +export const isAbsoluteLocalPath = (value: string) => + /^(?:[a-zA-Z]:[\\/]|\\\\|\/|~\/)/.test(value.trim()); + +export const resolveLocalFileCandidates = async (file: string, workspaceRoot: string) => { + const trimmed = normalizeLocalFilePath(file).trim(); + if (!trimmed) return []; + if (isAbsoluteLocalPath(trimmed)) return [trimmed]; + + const root = workspaceRoot.trim(); + if (!root) return []; + + const normalized = trimmed + .replace(/[\\/]+/g, "/") + .replace(/^\.\/+/, "") + .replace(/\/+$/, ""); + const candidates: string[] = []; + const seen = new Set(); + + const pushCandidate = (value: string) => { + const key = value + .trim() + .replace(/[\\/]+/g, "/") + .toLowerCase(); + if (!key || seen.has(key)) return; + seen.add(key); + candidates.push(value); + }; + + pushCandidate(await join(root, normalized)); + + if (normalized.startsWith(".opencode/openwork/outbox/")) { + return candidates; + } + + if (normalized.startsWith("openwork/outbox/")) { + const suffix = normalized.slice("openwork/outbox/".length); + if (suffix) { + pushCandidate(await join(root, ".opencode", "openwork", "outbox", suffix)); + } + return candidates; + } + + if (normalized.startsWith("outbox/")) { + const suffix = normalized.slice("outbox/".length); + if (suffix) { + pushCandidate(await join(root, ".opencode", "openwork", "outbox", suffix)); + } + return candidates; + } + + if (!normalized.startsWith(".opencode/")) { + pushCandidate(await join(root, ".opencode", "openwork", "outbox", normalized)); + } + + return candidates; +}; + +export const runLocalFileAction = async (options: { + file: string; + workspaceRoot: string; + action: (candidate: string) => Promise; +}): Promise => { + const candidates = await resolveLocalFileCandidates(options.file, options.workspaceRoot); + if (!candidates.length) { + return { ok: false, reason: "missing-root" }; + } + + let lastError: unknown = null; + for (const candidate of candidates) { + try { + await options.action(candidate); + return { ok: true, path: candidate }; + } catch (error) { + lastError = error; + } + } + + return { + ok: false, + reason: lastError instanceof Error ? lastError.message : "File action failed", + }; +}; + +export const resolvePrimaryLocalFile = async (file: string, workspaceRoot: string) => { + const candidates = await resolveLocalFileCandidates(file, workspaceRoot); + return candidates[0] ?? null; +}; + +export const getDefaultDesktopFileAssociation = async ( + file: string, + workspaceRoot: string, +): Promise => { + if (!isTauriRuntime()) return null; + const resolved = await resolvePrimaryLocalFile(file, workspaceRoot); + if (!resolved) return null; + return desktopGetDefaultAppForFile(resolved); +}; diff --git a/apps/app/src/app/session/file-links.ts b/apps/app/src/app/session/file-links.ts new file mode 100644 index 000000000..a370677a8 --- /dev/null +++ b/apps/app/src/app/session/file-links.ts @@ -0,0 +1,259 @@ +type LinkType = "url" | "file"; + +export type TextSegment = + | { kind: "text"; value: string } + | { kind: "link"; value: string; href: string; type: LinkType }; + +export type LinkDetectionOptions = { + allowFilePaths?: boolean; +}; + +const WEB_LINK_RE = /^(?:https?:\/\/|www\.)/i; +const FILE_URI_RE = /^file:\/\//i; +const URI_SCHEME_RE = /^[A-Za-z][A-Za-z0-9+.-]*:/; +const WINDOWS_PATH_RE = /^[A-Za-z]:[\\/][^\s"'`\)\]\}>]+$/; +const POSIX_PATH_RE = /^\/(?!\/)[^\s"'`\)\]\}>][^\s"'`\)\]\}>]*$/; +const TILDE_PATH_RE = /^~\/[^\s"'`\)\]\}>][^\s"'`\)\]\}>]*$/; +const BARE_FILENAME_RE = /^(?!\.)(?!.*\.\.)(?:[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)+)$/; +const SAFE_PATH_CHAR_RE = /[^\s"'`\)\]\}>]/; +const LEADING_PUNCTU = /["'`\(\[\{<]/; +const TRAILING_PUNCTU = /["'`\)\]}>.,:;!?]/; + +export const stripFileReferenceSuffix = (value: string) => { + const withoutQueryOrFragment = value.replace(/[?#].*$/, "").trim(); + if (!withoutQueryOrFragment) return ""; + return withoutQueryOrFragment.replace(/:(\d+)(?::\d+)?$/, ""); +}; + +export const isWorkspaceRelativeFilePath = (value: string) => { + const stripped = stripFileReferenceSuffix(value); + if (!stripped) return false; + + const normalized = stripped.replace(/\\/g, "/"); + if (!normalized.includes("/")) return false; + if (normalized.startsWith("/") || normalized.startsWith("~/") || normalized.startsWith("//")) { + return false; + } + if (URI_SCHEME_RE.test(normalized)) return false; + if (/^[A-Za-z]:\//.test(normalized)) return false; + + const segments = normalized.split("/"); + if (!segments.length) return false; + return segments.every((segment) => segment.length > 0 && segment !== "." && segment !== ".."); +}; + +export const isRelativeFilePath = (value: string) => { + if (value === "." || value === "..") return false; + + const normalized = value.replace(/\\/g, "/"); + const segments = normalized.split("/"); + const hasNonTraversalSegment = segments.some((segment) => segment && segment !== "." && segment !== ".."); + + if (normalized.startsWith("./") || normalized.startsWith("../")) { + return hasNonTraversalSegment; + } + + const [firstSegment, secondSegment] = normalized.split("/"); + if (!secondSegment || firstSegment.length <= 1) return false; + if (secondSegment === "." || secondSegment === "..") return false; + return firstSegment.startsWith(".") && SAFE_PATH_CHAR_RE.test(secondSegment); +}; + +export const isBareRelativeFilePath = (value: string) => { + if (value.includes("/") || value.includes("\\") || value.includes(":")) return false; + if (!BARE_FILENAME_RE.test(value)) return false; + + const extension = value.split(".").pop() ?? ""; + if (!/[A-Za-z]/.test(extension)) return false; + + const dotCount = (value.match(/\./g) ?? []).length; + if (dotCount === 1 && !value.includes("_") && !value.includes("-")) { + const [name, tld] = value.split("."); + if (/^[A-Za-z]{2,24}$/.test(name ?? "") && /^[A-Za-z]{2,10}$/.test(tld ?? "")) { + return false; + } + } + + return true; +}; + +export const isLikelyWebLink = (value: string) => WEB_LINK_RE.test(value); + +export const isLikelyFilePath = (value: string) => { + if (FILE_URI_RE.test(value)) return true; + if (WINDOWS_PATH_RE.test(value)) return true; + if (POSIX_PATH_RE.test(value)) return true; + if (TILDE_PATH_RE.test(value)) return true; + if (isRelativeFilePath(value)) return true; + if (isBareRelativeFilePath(value)) return true; + if (isWorkspaceRelativeFilePath(value)) return true; + + return false; +}; + +export const parseLinkFromToken = ( + token: string, + options: LinkDetectionOptions = {}, +): { href: string; type: LinkType; value: string } | null => { + let start = 0; + let end = token.length; + + while (start < end && LEADING_PUNCTU.test(token[start] ?? "")) { + start += 1; + } + + while (end > start && TRAILING_PUNCTU.test(token[end - 1] ?? "")) { + end -= 1; + } + + const value = token.slice(start, end); + if (!value) return null; + + if (isLikelyWebLink(value)) { + return { + value, + type: "url", + href: value.toLowerCase().startsWith("www.") ? `https://${value}` : value, + }; + } + + if ((options.allowFilePaths ?? true) && isLikelyFilePath(value)) { + return { + value, + type: "file", + href: value, + }; + } + + return null; +}; + +export const splitTextTokens = (text: string, options: LinkDetectionOptions = {}): TextSegment[] => { + const tokens: TextSegment[] = []; + const matches = text.matchAll(/\S+/g); + let position = 0; + + for (const match of matches) { + const token = match[0] ?? ""; + const index = match.index ?? 0; + + if (index > position) { + tokens.push({ kind: "text", value: text.slice(position, index) }); + } + + const link = parseLinkFromToken(token, options); + if (!link) { + tokens.push({ kind: "text", value: token }); + } else { + const start = token.indexOf(link.value); + if (start > 0) { + tokens.push({ kind: "text", value: token.slice(0, start) }); + } + tokens.push({ kind: "link", value: link.value, href: link.href, type: link.type }); + const end = start + link.value.length; + if (end < token.length) { + tokens.push({ kind: "text", value: token.slice(end) }); + } + } + + position = index + token.length; + } + + if (position < text.length) { + tokens.push({ kind: "text", value: text.slice(position) }); + } + + return tokens; +}; + +export const normalizeRelativePath = (relativePath: string, workspaceRoot: string) => { + const root = workspaceRoot.trim().replace(/\\/g, "/").replace(/\/+$/g, ""); + if (!root) return null; + + const relative = relativePath.trim().replace(/\\/g, "/"); + if (!relative) return null; + + const isPosixRoot = root.startsWith("/"); + const rootValue = isPosixRoot ? root.slice(1) : root; + const rootParts = rootValue.split("/").filter((value) => value.length > 0); + const isWindowsDrive = /^[A-Za-z]:$/.test(rootParts[0] ?? ""); + const resolved: string[] = [...rootParts]; + const segments = relative.split("/"); + + for (const segment of segments) { + if (!segment || segment === ".") continue; + + if (segment === "..") { + if (!(isWindowsDrive && resolved.length === 1)) { + resolved.pop(); + } + continue; + } + + resolved.push(segment); + } + + const normalized = resolved.join("/"); + if (isPosixRoot) return `/${normalized || ""}` || "/"; + return normalized; +}; + +export const normalizeFilePath = (href: string, workspaceRoot: string): string | null => { + const strippedHref = stripFileReferenceSuffix(href); + if (!strippedHref) return null; + + if (FILE_URI_RE.test(href)) { + try { + const parsed = new URL(href); + if (parsed.protocol !== "file:") return null; + const raw = decodeURIComponent(parsed.pathname || ""); + if (!raw) return null; + if (/^\/[A-Za-z]:\//.test(raw)) { + return raw.slice(1); + } + if (parsed.hostname && !parsed.pathname.startsWith(`/${parsed.hostname}`) && !raw.startsWith("/")) { + return `/${parsed.hostname}${raw}`; + } + return raw; + } catch { + const raw = decodeURIComponent(href.replace(/^file:\/\//, "")); + if (!raw) return null; + return raw; + } + } + + const trimmed = strippedHref.trim(); + if (isRelativeFilePath(trimmed) || isBareRelativeFilePath(trimmed) || isWorkspaceRelativeFilePath(trimmed)) { + if (!workspaceRoot) return null; + return normalizeRelativePath(trimmed, workspaceRoot); + } + + return trimmed || null; +}; + +export type DetectedLocalFileReference = { + path: string; + label?: string; +}; + +export const detectStandaloneFileReference = (raw: string): DetectedLocalFileReference | null => { + const trimmed = raw.trim(); + if (!trimmed || trimmed.includes("\n\n")) return null; + + const markdownLink = trimmed.match(/^\[([^\]]+)\]\(([^)]+)\)$/); + if (markdownLink) { + const [, label, href] = markdownLink; + const cleanHref = href.trim(); + if (isLikelyFilePath(cleanHref)) { + return { path: cleanHref, label: label.trim() || undefined }; + } + return null; + } + + const stripped = trimmed.replace(/^`([^`]+)`$/, "$1").replace(/^\*\*([^*]+)\*\*$/, "$1"); + if (!stripped.includes(" ") && isLikelyFilePath(stripped)) { + return { path: stripped }; + } + + return null; +}; diff --git a/apps/app/src/app/session/file-presentations.ts b/apps/app/src/app/session/file-presentations.ts new file mode 100644 index 000000000..5587a5416 --- /dev/null +++ b/apps/app/src/app/session/file-presentations.ts @@ -0,0 +1,134 @@ +import type { ArtifactItem } from "../types"; + +export type FilePresentation = { + title: string; + detail?: string; + typeLabel: string; + extension: string; + category: "spreadsheet" | "document" | "image" | "code" | "archive" | "media" | "data" | "file"; +}; + +export type FileReferenceCard = { + id: string; + path: string; + title?: string; + detail?: string; + mime?: string; + source: "artifact" | "file-part" | "text"; +}; + +const EXTENSION_LABELS: Record = { + csv: { typeLabel: "Table · CSV", category: "spreadsheet" }, + tsv: { typeLabel: "Table · TSV", category: "spreadsheet" }, + xlsx: { typeLabel: "Spreadsheet · XLSX", category: "spreadsheet" }, + xls: { typeLabel: "Spreadsheet · XLS", category: "spreadsheet" }, + numbers: { typeLabel: "Spreadsheet · Numbers", category: "spreadsheet" }, + md: { typeLabel: "Document · Markdown", category: "document" }, + txt: { typeLabel: "Document · Text", category: "document" }, + pdf: { typeLabel: "Document · PDF", category: "document" }, + doc: { typeLabel: "Document · Word", category: "document" }, + docx: { typeLabel: "Document · Word", category: "document" }, + html: { typeLabel: "Document · HTML", category: "document" }, + json: { typeLabel: "Data · JSON", category: "data" }, + jsonl: { typeLabel: "Data · JSONL", category: "data" }, + yaml: { typeLabel: "Data · YAML", category: "data" }, + yml: { typeLabel: "Data · YAML", category: "data" }, + xml: { typeLabel: "Data · XML", category: "data" }, + ts: { typeLabel: "Code · TypeScript", category: "code" }, + tsx: { typeLabel: "Code · TSX", category: "code" }, + js: { typeLabel: "Code · JavaScript", category: "code" }, + jsx: { typeLabel: "Code · JSX", category: "code" }, + py: { typeLabel: "Code · Python", category: "code" }, + rs: { typeLabel: "Code · Rust", category: "code" }, + go: { typeLabel: "Code · Go", category: "code" }, + sh: { typeLabel: "Script · Shell", category: "code" }, + bash: { typeLabel: "Script · Bash", category: "code" }, + css: { typeLabel: "Code · CSS", category: "code" }, + png: { typeLabel: "Image · PNG", category: "image" }, + jpg: { typeLabel: "Image · JPEG", category: "image" }, + jpeg: { typeLabel: "Image · JPEG", category: "image" }, + gif: { typeLabel: "Image · GIF", category: "image" }, + webp: { typeLabel: "Image · WebP", category: "image" }, + svg: { typeLabel: "Image · SVG", category: "image" }, + zip: { typeLabel: "Archive · ZIP", category: "archive" }, + tar: { typeLabel: "Archive · TAR", category: "archive" }, + gz: { typeLabel: "Archive · GZip", category: "archive" }, + mp4: { typeLabel: "Media · MP4", category: "media" }, + mov: { typeLabel: "Media · MOV", category: "media" }, + mp3: { typeLabel: "Media · MP3", category: "media" }, + wav: { typeLabel: "Media · WAV", category: "media" }, +}; + +const MIME_PREFIX_PRESENTATIONS: Array<{ + prefix: string; + typeLabel: string; + category: FilePresentation["category"]; +}> = [ + { prefix: "image/", typeLabel: "Image", category: "image" }, + { prefix: "audio/", typeLabel: "Media · Audio", category: "media" }, + { prefix: "video/", typeLabel: "Media · Video", category: "media" }, + { prefix: "text/", typeLabel: "Document · Text", category: "document" }, +]; + +export const normalizeReferencePath = (value: string) => + value.trim().replace(/[\\/]+/g, "/"); + +export const referenceKey = (value: string) => normalizeReferencePath(value).toLowerCase(); + +export const filenameFromPath = (value: string) => { + const normalized = normalizeReferencePath(value); + const segments = normalized.split("/").filter(Boolean); + return segments[segments.length - 1] ?? normalized; +}; + +export const extensionFromPath = (value: string) => { + const filename = filenameFromPath(value); + const extension = filename.split(".").pop() ?? ""; + return extension.toLowerCase(); +}; + +export const filePresentationForReference = (options: { + path: string; + title?: string; + detail?: string; + mime?: string; +}): FilePresentation => { + const normalizedPath = normalizeReferencePath(options.path); + const extension = extensionFromPath(normalizedPath); + const titled = options.title?.trim(); + const mime = options.mime?.trim().toLowerCase() ?? ""; + const explicit = extension ? EXTENSION_LABELS[extension] : undefined; + const mimeMatch = MIME_PREFIX_PRESENTATIONS.find((entry) => mime.startsWith(entry.prefix)); + const typeLabel = explicit?.typeLabel ?? mimeMatch?.typeLabel ?? (extension ? `File · ${extension.toUpperCase()}` : "File"); + const category = explicit?.category ?? mimeMatch?.category ?? "file"; + const filename = filenameFromPath(normalizedPath); + return { + title: titled || filename, + detail: options.detail?.trim() || normalizedPath, + typeLabel, + extension, + category, + }; +}; + +export const fileReferenceCardFromArtifact = (artifact: ArtifactItem): FileReferenceCard | null => { + const path = artifact.path?.trim(); + if (!path) return null; + return { + id: artifact.id, + path, + title: artifact.name, + detail: artifact.path, + source: "artifact", + }; +}; + +export const dedupeFileReferenceCards = (items: FileReferenceCard[]) => { + const next = new Map(); + for (const item of items) { + const key = referenceKey(item.path); + if (!key) continue; + next.set(key, item); + } + return Array.from(next.values()); +}; diff --git a/apps/app/src/app/utils/index.ts b/apps/app/src/app/utils/index.ts index 7ba440f60..df49f362b 100644 --- a/apps/app/src/app/utils/index.ts +++ b/apps/app/src/app/utils/index.ts @@ -1021,6 +1021,91 @@ export function summarizeStep(part: Part): { title: string; detail?: string; isS return { title: "Step", toolCategory: "tool" }; } +function collectArtifactsFromParts(results: Map, parts: Part[], messageId?: string) { + parts.forEach((part) => { + if (part.type !== "tool") return; + const record = part as any; + const state = record.state ?? {}; + const input = state.input && typeof state.input === "object" + ? (state.input as Record) + : {}; + const matches = new Set(); + + const explicit = [ + state.path, + state.file, + ...(Array.isArray(state.files) ? state.files : []), + input.filePath, + input.path, + input.file, + ...(Array.isArray(input.files) ? input.files : []), + ]; + + explicit.forEach((f) => { + if (typeof f === "string") { + const trimmed = f.trim(); + if ( + trimmed.length > 0 && + trimmed.length <= 500 && + trimmed.includes(".") && + !/^\.{2,}$/.test(trimmed) + ) { + matches.add(trimmed); + } + } + }); + + const toolName = + typeof record.tool === "string" && record.tool.trim() + ? record.tool.trim().toLowerCase() + : ""; + const titleText = typeof state.title === "string" ? state.title : ""; + const outputText = + typeof state.output === "string" && !ARTIFACT_OUTPUT_SKIP_TOOLS.has(toolName) + ? state.output.slice(0, ARTIFACT_OUTPUT_SCAN_LIMIT) + : ""; + + const text = [titleText, outputText] + .filter((v): v is string => Boolean(v)) + .join(" "); + + if (text) { + ARTIFACT_PATH_PATTERN.lastIndex = 0; + Array.from(text.matchAll(ARTIFACT_PATH_PATTERN)) + .map((m) => m[1]) + .filter((f) => f && f.length <= 500) + .forEach((f) => matches.add(f)); + } + + if (matches.size === 0) return; + + matches.forEach((match) => { + const cleanedPath = cleanArtifactPath(match); + if (!cleanedPath) return; + + const key = cleanedPath.toLowerCase(); + const name = cleanedPath.split("/").pop() ?? cleanedPath; + const id = `artifact-${encodeURIComponent(cleanedPath)}`; + + if (results.has(key)) results.delete(key); + results.set(key, { + id, + name, + path: cleanedPath, + kind: "file" as const, + size: state.size ? String(state.size) : undefined, + messageId: messageId || undefined, + }); + }); + }); +} + +export function deriveArtifactsFromParts(parts: Part[], messageId?: string): ArtifactItem[] { + const results = new Map(); + collectArtifactsFromParts(results, parts, messageId); + return Array.from(results.values()); +} + export function deriveArtifacts(list: MessageWithParts[], options: DeriveArtifactsOptions = {}): ArtifactItem[] { const results = new Map(); const maxMessages = @@ -1031,77 +1116,7 @@ export function deriveArtifacts(list: MessageWithParts[], options: DeriveArtifac source.forEach((message) => { const messageId = String((message.info as any)?.id ?? ""); - - message.parts.forEach((part) => { - if (part.type !== "tool") return; - const record = part as any; - const state = record.state ?? {}; - const matches = new Set(); - - const explicit = [ - state.path, - state.file, - ...(Array.isArray(state.files) ? state.files : []), - ]; - - explicit.forEach((f) => { - if (typeof f === "string") { - const trimmed = f.trim(); - if ( - trimmed.length > 0 && - trimmed.length <= 500 && - trimmed.includes(".") && - !/^\.{2,}$/.test(trimmed) - ) { - matches.add(trimmed); - } - } - }); - - const toolName = - typeof record.tool === "string" && record.tool.trim() - ? record.tool.trim().toLowerCase() - : ""; - const titleText = typeof state.title === "string" ? state.title : ""; - const outputText = - typeof state.output === "string" && !ARTIFACT_OUTPUT_SKIP_TOOLS.has(toolName) - ? state.output.slice(0, ARTIFACT_OUTPUT_SCAN_LIMIT) - : ""; - - const text = [titleText, outputText] - .filter((v): v is string => Boolean(v)) - .join(" "); - - if (text) { - ARTIFACT_PATH_PATTERN.lastIndex = 0; - Array.from(text.matchAll(ARTIFACT_PATH_PATTERN)) - .map((m) => m[1]) - .filter((f) => f && f.length <= 500) - .forEach((f) => matches.add(f)); - } - - if (matches.size === 0) return; - - matches.forEach((match) => { - const cleanedPath = cleanArtifactPath(match); - if (!cleanedPath) return; - - const key = cleanedPath.toLowerCase(); - const name = cleanedPath.split("/").pop() ?? cleanedPath; - const id = `artifact-${encodeURIComponent(cleanedPath)}`; - - // Delete and re-add to move to end (most recent) - if (results.has(key)) results.delete(key); - results.set(key, { - id, - name, - path: cleanedPath, - kind: "file" as const, - size: state.size ? String(state.size) : undefined, - messageId: messageId || undefined, - }); - }); - }); + collectArtifactsFromParts(results, message.parts, messageId || undefined); }); return Array.from(results.values()); diff --git a/apps/desktop/src-tauri/src/commands/misc.rs b/apps/desktop/src-tauri/src/commands/misc.rs index e44f88610..27771303d 100644 --- a/apps/desktop/src-tauri/src/commands/misc.rs +++ b/apps/desktop/src-tauri/src/commands/misc.rs @@ -1,6 +1,7 @@ use std::collections::HashSet; use std::fs; use std::path::{Path, PathBuf}; +use std::process::Command; use crate::engine::doctor::resolve_engine_path; use crate::engine::manager::EngineManager; @@ -48,6 +49,13 @@ pub struct AppBuildInfo { pub openwork_dev_mode: bool, } +#[derive(serde::Serialize)] +#[serde(rename_all = "camelCase")] +pub struct DesktopFileAssociation { + pub name: String, + pub path: Option, +} + fn env_truthy(key: &str) -> bool { matches!( std::env::var(key) @@ -228,6 +236,67 @@ fn validate_server_name(name: &str) -> Result { Ok(trimmed.to_string()) } +#[cfg(target_os = "macos")] +fn default_app_for_file(path: &Path) -> Result, String> { + if !path.exists() { + return Ok(None); + } + + let display_target = path.to_string_lossy().replace('"', "\\\""); + let path_script = format!( + "set fileInfo to info for POSIX file \"{}\"\nPOSIX path of (default application of fileInfo)", + display_target + ); + let path_output = Command::new("osascript") + .arg("-e") + .arg(path_script) + .output() + .map_err(|error| format!("Failed to read default app path: {error}"))?; + + if !path_output.status.success() { + return Ok(None); + } + + let app_path = String::from_utf8_lossy(&path_output.stdout) + .trim() + .to_string(); + if app_path.is_empty() { + return Ok(None); + } + + let app_target = app_path.replace('"', "\\\""); + let name_script = format!( + "name of (info for POSIX file \"{}\")", + app_target.trim_end_matches('/') + ); + let name_output = Command::new("osascript") + .arg("-e") + .arg(name_script) + .output() + .map_err(|error| format!("Failed to read default app name: {error}"))?; + + if !name_output.status.success() { + return Ok(None); + } + + let name = String::from_utf8_lossy(&name_output.stdout) + .trim() + .to_string(); + if name.is_empty() { + return Ok(None); + } + + Ok(Some(DesktopFileAssociation { + name, + path: Some(app_path), + })) +} + +#[cfg(not(target_os = "macos"))] +fn default_app_for_file(_path: &Path) -> Result, String> { + Ok(None) +} + fn read_workspace_openwork_config( workspace_path: &Path, ) -> Result { @@ -436,6 +505,18 @@ pub fn app_build_info(app: AppHandle) -> AppBuildInfo { } } +#[tauri::command] +pub fn desktop_default_app_for_file( + path: String, +) -> Result, String> { + let path = PathBuf::from(path.trim()); + if path.as_os_str().is_empty() { + return Ok(None); + } + + default_app_for_file(&path) +} + #[tauri::command] pub fn nuke_openwork_and_opencode_config_and_exit( app: AppHandle, diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs index 4e8f74969..b608999b4 100644 --- a/apps/desktop/src-tauri/src/lib.rs +++ b/apps/desktop/src-tauri/src/lib.rs @@ -24,8 +24,8 @@ use commands::engine::{ engine_doctor, engine_info, engine_install, engine_restart, engine_start, engine_stop, }; use commands::misc::{ - app_build_info, nuke_openwork_and_opencode_config_and_exit, opencode_mcp_auth, - reset_opencode_cache, reset_openwork_state, + app_build_info, desktop_default_app_for_file, nuke_openwork_and_opencode_config_and_exit, + opencode_mcp_auth, reset_opencode_cache, reset_openwork_state, }; use commands::opencode_router::{ opencodeRouter_config_set, opencodeRouter_info, opencodeRouter_start, opencodeRouter_status, @@ -213,6 +213,7 @@ pub fn run() { write_opencode_config, updater_environment, app_build_info, + desktop_default_app_for_file, nuke_openwork_and_opencode_config_and_exit, reset_openwork_state, reset_opencode_cache, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 598ff4539..ee3d8f646 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -85,6 +85,9 @@ importers: marked: specifier: ^17.0.1 version: 17.0.1 + remend: + specifier: ^1.3.0 + version: 1.3.0 solid-js: specifier: ^1.9.0 version: 1.9.9 @@ -4454,6 +4457,9 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} + remend@1.3.0: + resolution: {integrity: sha512-iIhggPkhW3hFImKtB10w0dz4EZbs28mV/dmbcYVonWEJ6UGHHpP+bFZnTh6GNWJONg5m+U56JrL+8IxZRdgWjw==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -9086,6 +9092,8 @@ snapshots: real-require@0.2.0: {} + remend@1.3.0: {} + require-directory@2.1.1: {} require-in-the-middle@8.0.1: