diff --git a/v2/src/lib/components/Agent/AgentPane.svelte b/v2/src/lib/components/Agent/AgentPane.svelte index 62e5174..a7509f6 100644 --- a/v2/src/lib/components/Agent/AgentPane.svelte +++ b/v2/src/lib/components/Agent/AgentPane.svelte @@ -338,7 +338,15 @@ {(msg.content as import('../../adapters/sdk-messages').InitContent).model} {:else if msg.type === 'text'} -
{@html renderMarkdown((msg.content as TextContent).text)}
+ {@const textContent = (msg.content as TextContent).text} + {@const firstLine = textContent.split('\n')[0].slice(0, 120)} +
+ + + {firstLine}{firstLine.length >= 120 ? '...' : ''} + +
{@html renderMarkdown(textContent)}
+
{:else if msg.type === 'thinking'}
Thinking... @@ -396,7 +404,13 @@ {(cost.durationMs / 1000).toFixed(1)}s {#if cost.result} -
{cost.result}
+
+ + + {cost.result.split('\n')[0].slice(0, 80)}{cost.result.length > 80 ? '...' : ''} + +
{cost.result}
+
{/if} {:else if msg.type === 'error'}
{(msg.content as ErrorContent).message}
@@ -712,6 +726,25 @@ font-size: 0.6875rem; } + /* === Text collapsible wrapper === */ + .msg-text-collapsible summary { + color: var(--ctp-subtext0); + font-size: 0.8125rem; + } + + .msg-text-collapsible summary .text-preview { + color: var(--ctp-subtext1); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + flex: 1; + min-width: 0; + } + + .msg-text-collapsible[open] > summary .text-preview { + display: none; + } + /* === Text messages (markdown) === */ .msg-text { word-break: break-word; @@ -999,7 +1032,29 @@ color: var(--ctp-overlay0); } - /* === Session summary === */ + /* === Session summary (collapsible) === */ + .msg-summary-collapsible { + font-size: 0.8125rem; + } + + .msg-summary-collapsible summary { + color: var(--ctp-overlay1); + font-size: 0.75rem; + } + + .msg-summary-collapsible summary .summary-preview { + color: var(--ctp-overlay0); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + flex: 1; + min-width: 0; + } + + .msg-summary-collapsible[open] > summary .summary-preview { + display: none; + } + .msg-summary { background: color-mix(in srgb, var(--ctp-surface0) 60%, var(--ctp-base) 40%); border-top: 0.125rem solid var(--ctp-surface2);