@tangle-network/sandbox-ui 0.6.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +5 -6
  2. package/dist/auth.d.ts +10 -6
  3. package/dist/auth.js +3 -3
  4. package/dist/{chat-container-Cg-GwyiK.d.ts → chat-container-f4yEs6KN.d.ts} +9 -1
  5. package/dist/chat.d.ts +12 -2
  6. package/dist/chat.js +10 -10
  7. package/dist/{chunk-WBQ7VULC.js → chunk-34A66VBG.js} +7 -7
  8. package/dist/{chunk-JP725R4W.js → chunk-34I7UFSX.js} +2 -2
  9. package/dist/{chunk-CNWVHQFY.js → chunk-54SQQMMM.js} +6 -24
  10. package/dist/{chunk-DLCFZDGX.js → chunk-5UM2XMEJ.js} +39 -14
  11. package/dist/{chunk-YYGECNZZ.js → chunk-66EZOYZR.js} +3 -3
  12. package/dist/{chunk-6V4XVKFY.js → chunk-7YWFOGKQ.js} +344 -338
  13. package/dist/{chunk-DCPYTL4W.js → chunk-D4CZWJCD.js} +72 -148
  14. package/dist/{chunk-XTPAWK7L.js → chunk-DI3NZ5ZX.js} +15 -51
  15. package/dist/{chunk-MXRQ4MJE.js → chunk-DXMIEK4K.js} +34 -23
  16. package/dist/{chunk-ZMWWE5RF.js → chunk-EXSOPXIY.js} +141 -123
  17. package/dist/{chunk-GW4GRAWJ.js → chunk-GSZA3TSY.js} +18 -12
  18. package/dist/{chunk-W4LM3QYZ.js → chunk-HB5Y37YU.js} +8 -8
  19. package/dist/{chunk-RKXIRRKQ.js → chunk-JLKYXLFN.js} +70 -66
  20. package/dist/{chunk-BRBTD7RH.js → chunk-MA7YKRUP.js} +28 -18
  21. package/dist/{chunk-TSE423UF.js → chunk-MKTSMWVD.js} +6 -6
  22. package/dist/{chunk-MJUDMVRU.js → chunk-MT5FJ3ZT.js} +17 -17
  23. package/dist/{chunk-565V6JTN.js → chunk-OHPW55EV.js} +60 -99
  24. package/dist/chunk-OKLQVY3Y.js +139 -0
  25. package/dist/{chunk-OVNLOE3Y.js → chunk-PLTZB5BC.js} +41 -41
  26. package/dist/{chunk-E2XT3G52.js → chunk-QC4BJEG6.js} +136 -137
  27. package/dist/{chunk-KH5UDAJ2.js → chunk-QDH5GEGY.js} +58 -54
  28. package/dist/{chunk-33W2TLUL.js → chunk-QID2OOMG.js} +12 -3
  29. package/dist/{chunk-FJSVPBKY.js → chunk-S7OXQTST.js} +17 -3
  30. package/dist/chunk-T7HMZEVO.js +216 -0
  31. package/dist/{chunk-FNYJFCGU.js → chunk-U6QTHMY6.js} +145 -256
  32. package/dist/{chunk-YS66Q3RC.js → chunk-US6JKJKH.js} +2 -2
  33. package/dist/chunk-VX3XOUEB.js +63 -0
  34. package/dist/{chunk-TDYQBLL5.js → chunk-ZMNSRDMH.js} +6 -6
  35. package/dist/dashboard.d.ts +156 -4
  36. package/dist/dashboard.js +885 -8
  37. package/dist/{document-editor-pane-DWWUTTTZ.js → document-editor-pane-TLPVRBBU.js} +3 -3
  38. package/dist/editor.d.ts +9 -8
  39. package/dist/editor.js +3 -3
  40. package/dist/files.js +3 -3
  41. package/dist/globals.css +4787 -69
  42. package/dist/hooks.d.ts +1 -1
  43. package/dist/hooks.js +7 -7
  44. package/dist/index.d.ts +4 -4
  45. package/dist/index.js +28 -28
  46. package/dist/markdown.js +1 -1
  47. package/dist/openui.js +5 -5
  48. package/dist/pages.d.ts +114 -5
  49. package/dist/pages.js +1978 -365
  50. package/dist/primitives.d.ts +5 -2
  51. package/dist/primitives.js +10 -10
  52. package/dist/run.js +4 -4
  53. package/dist/sdk-hooks.d.ts +2 -3
  54. package/dist/sdk-hooks.js +5 -5
  55. package/dist/styles.css +4787 -69
  56. package/dist/template-card-BAtvcAkU.d.ts +18 -0
  57. package/dist/terminal.d.ts +3 -1
  58. package/dist/terminal.js +66 -32
  59. package/dist/tokens.css +289 -237
  60. package/dist/{usage-chart-XCoB_7Xu.d.ts → usage-chart-SSiOgeQI.d.ts} +3 -1
  61. package/dist/{use-pty-session-COzVkhtc.d.ts → use-pty-session-0AOuwXgq.d.ts} +2 -0
  62. package/dist/{index-BT_-ecpc.d.ts → variant-list-CsS6ydgm.d.ts} +16 -7
  63. package/dist/workspace.d.ts +2 -2
  64. package/dist/workspace.js +13 -13
  65. package/package.json +18 -3
  66. package/tailwind.config.cjs +3 -2
  67. package/dist/chunk-3HW53XTH.js +0 -228
  68. package/dist/chunk-OKCIKTXQ.js +0 -63
@@ -11,7 +11,7 @@ import {
11
11
  CodeBlock,
12
12
  CopyButton,
13
13
  Markdown
14
- } from "./chunk-3HW53XTH.js";
14
+ } from "./chunk-T7HMZEVO.js";
15
15
  import {
16
16
  cn
17
17
  } from "./chunk-RQHJBTEU.js";
@@ -39,17 +39,17 @@ function PreviewCard({
39
39
  "div",
40
40
  {
41
41
  className: cn(
42
- "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] shadow-[var(--shadow-card)]",
42
+ "overflow-hidden rounded-[var(--radius-lg)] border border-border bg-card shadow-[var(--shadow-card)]",
43
43
  className
44
44
  ),
45
45
  children: [
46
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-[var(--tool-card-px)] py-[var(--tool-card-py)]", children: [
47
- /* @__PURE__ */ jsx("div", { className: "flex h-[var(--tool-icon-size)] w-[var(--tool-icon-size)] shrink-0 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: icon }),
46
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 border-b border-border bg-card px-[var(--tool-card-px)] py-[var(--tool-card-py)]", children: [
47
+ /* @__PURE__ */ jsx("div", { className: "flex h-[var(--tool-icon-size)] w-[var(--tool-icon-size)] shrink-0 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--border-accent)] bg-muted text-primary", children: icon }),
48
48
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
49
- /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-[var(--text-primary)]", children: title }),
50
- description ? /* @__PURE__ */ jsx("span", { className: "truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: description }) : null
49
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-foreground", children: title }),
50
+ description ? /* @__PURE__ */ jsx("span", { className: "truncate text-xs font-mono text-muted-foreground", children: description }) : null
51
51
  ] }) }),
52
- meta ? /* @__PURE__ */ jsx("div", { className: "shrink-0 text-xs text-[var(--text-muted)]", children: meta }) : null
52
+ meta ? /* @__PURE__ */ jsx("div", { className: "shrink-0 text-xs text-muted-foreground", children: meta }) : null
53
53
  ] }),
54
54
  children ? /* @__PURE__ */ jsx("div", { className: "space-y-2 px-[var(--tool-card-px)] py-[var(--tool-card-py)]", children }) : null
55
55
  ]
@@ -64,7 +64,7 @@ function PreviewEmpty({
64
64
  "div",
65
65
  {
66
66
  className: cn(
67
- "rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2.5 text-xs text-[var(--text-muted)]",
67
+ "rounded-[var(--radius-md)] border border-dashed border-border bg-muted px-3 py-2.5 text-xs text-muted-foreground",
68
68
  className
69
69
  ),
70
70
  children: label
@@ -75,8 +75,8 @@ function PreviewError({ error }) {
75
75
  return /* @__PURE__ */ jsx("div", { className: "rounded-[var(--radius-md)] border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-3 py-3 text-sm text-[var(--surface-danger-text)]", children: error });
76
76
  }
77
77
  function PreviewLoading({ label = "Running\u2026" }) {
78
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2 text-xs text-[var(--text-muted)]", children: [
79
- /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin text-[var(--brand-cool)]" }),
78
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-border bg-muted px-3 py-2 text-xs text-muted-foreground", children: [
79
+ /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin text-primary" }),
80
80
  /* @__PURE__ */ jsx("span", { children: label })
81
81
  ] });
82
82
  }
@@ -114,7 +114,7 @@ var CommandPreview = memo(({ part }) => {
114
114
  "span",
115
115
  {
116
116
  className: cn(
117
- "inline-flex items-center rounded-full border px-2 py-0.5 font-[var(--font-mono)]",
117
+ "inline-flex items-center rounded-full border px-2 py-0.5 font-mono",
118
118
  isError ? "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]" : "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]"
119
119
  ),
120
120
  children: [
@@ -128,23 +128,23 @@ var CommandPreview = memo(({ part }) => {
128
128
  "button",
129
129
  {
130
130
  onClick: () => setExpanded((value) => !value),
131
- className: "flex w-full items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2 text-left transition-colors hover:border-[var(--border-accent-hover)] hover:bg-[var(--bg-hover)]/45",
131
+ className: "flex w-full items-center gap-2 rounded-[var(--radius-md)] border border-border bg-muted px-3 py-2 text-left transition-colors hover:border-[var(--border-accent-hover)] hover:bg-accent/45",
132
132
  children: [
133
- /* @__PURE__ */ jsx2("code", { className: "min-w-0 flex-1 truncate text-xs font-[var(--font-mono)] text-[var(--text-secondary)]", children: command }),
134
- lineCount > 0 ? /* @__PURE__ */ jsxs2("span", { className: "shrink-0 text-xs text-[var(--text-muted)]", children: [
133
+ /* @__PURE__ */ jsx2("code", { className: "min-w-0 flex-1 truncate text-xs font-mono text-foreground", children: command }),
134
+ lineCount > 0 ? /* @__PURE__ */ jsxs2("span", { className: "shrink-0 text-xs text-muted-foreground", children: [
135
135
  lineCount,
136
136
  " line",
137
137
  lineCount === 1 ? "" : "s"
138
138
  ] }) : null,
139
- expanded ? /* @__PURE__ */ jsx2(ChevronDown, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx2(ChevronRight, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" })
139
+ expanded ? /* @__PURE__ */ jsx2(ChevronDown, { className: "h-3.5 w-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsx2(ChevronRight, { className: "h-3.5 w-3.5 text-muted-foreground" })
140
140
  ]
141
141
  }
142
142
  ),
143
143
  part.state.status === "running" ? /* @__PURE__ */ jsx2(PreviewLoading, {}) : null,
144
144
  errorText ? /* @__PURE__ */ jsx2(PreviewError, { error: errorText }) : null,
145
- expanded && output ? /* @__PURE__ */ jsxs2("div", { className: "overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]", children: [
146
- output.stdout ? /* @__PURE__ */ jsx2("pre", { className: "max-h-80 overflow-auto px-3 py-3 text-xs font-[var(--font-mono)] whitespace-pre-wrap break-all text-[var(--text-secondary)]", children: output.stdout }) : null,
147
- output.stderr ? /* @__PURE__ */ jsx2("pre", { className: "max-h-80 overflow-auto border-t border-[var(--border-subtle)] px-3 py-3 text-xs font-[var(--font-mono)] whitespace-pre-wrap break-all text-red-200", children: output.stderr }) : null
145
+ expanded && output ? /* @__PURE__ */ jsxs2("div", { className: "overflow-hidden rounded-[var(--radius-md)] border border-border bg-muted", children: [
146
+ output.stdout ? /* @__PURE__ */ jsx2("pre", { className: "max-h-80 overflow-auto px-3 py-3 text-xs font-mono whitespace-pre-wrap break-all text-foreground", children: output.stdout }) : null,
147
+ output.stderr ? /* @__PURE__ */ jsx2("pre", { className: "max-h-80 overflow-auto border-t border-border px-3 py-3 text-xs font-mono whitespace-pre-wrap break-all text-red-200", children: output.stderr }) : null
148
148
  ] }) : null
149
149
  ]
150
150
  }
@@ -202,7 +202,7 @@ var WriteFilePreview = memo2(({ part }) => {
202
202
  icon: /* @__PURE__ */ jsx3(FileEdit, { className: "h-4 w-4" }),
203
203
  title: "Write file",
204
204
  description: write.path,
205
- meta: /* @__PURE__ */ jsxs3("span", { className: "text-xs text-[var(--text-muted)]", children: [
205
+ meta: /* @__PURE__ */ jsxs3("span", { className: "text-xs text-muted-foreground", children: [
206
206
  "+",
207
207
  lineCount,
208
208
  " line",
@@ -308,12 +308,12 @@ var GrepResultsPreview = memo3(({ part }) => {
308
308
  groupedMatches.map(([path, pathMatches]) => /* @__PURE__ */ jsxs4(
309
309
  "div",
310
310
  {
311
- className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]/55",
311
+ className: "rounded-[var(--radius-md)] border border-border bg-muted/55",
312
312
  children: [
313
- /* @__PURE__ */ jsx4("div", { className: "border-b border-[var(--border-subtle)] px-3 py-2 text-xs font-medium text-[var(--text-secondary)]", children: path }),
314
- /* @__PURE__ */ jsx4("div", { className: "divide-y divide-[var(--border-subtle)]", children: pathMatches.map((match, index) => /* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-[auto_minmax(0,1fr)] gap-3 px-3 py-2", children: [
315
- /* @__PURE__ */ jsx4("div", { className: "pt-0.5 text-xs font-mono text-[var(--text-muted)]", children: match.line ?? "\xB7" }),
316
- /* @__PURE__ */ jsx4("pre", { className: "overflow-x-auto whitespace-pre-wrap break-words text-xs font-[var(--font-mono)] text-[var(--text-secondary)]", children: match.text })
313
+ /* @__PURE__ */ jsx4("div", { className: "border-b border-border px-3 py-2 text-xs font-medium text-foreground", children: path }),
314
+ /* @__PURE__ */ jsx4("div", { className: "divide-y divide-border", children: pathMatches.map((match, index) => /* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-[auto_minmax(0,1fr)] gap-3 px-3 py-2", children: [
315
+ /* @__PURE__ */ jsx4("div", { className: "pt-0.5 text-xs font-mono text-muted-foreground", children: match.line ?? "\xB7" }),
316
+ /* @__PURE__ */ jsx4("pre", { className: "overflow-x-auto whitespace-pre-wrap break-words text-xs font-mono text-foreground", children: match.text })
317
317
  ] }, `${path}-${match.line ?? index}-${index}`)) })
318
318
  ]
319
319
  },
@@ -378,10 +378,10 @@ var GlobResultsPreview = memo4(({ part }) => {
378
378
  return /* @__PURE__ */ jsxs5(
379
379
  "div",
380
380
  {
381
- className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]/55 px-3 py-2",
381
+ className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-border bg-muted/55 px-3 py-2",
382
382
  children: [
383
- /* @__PURE__ */ jsx5(Icon, { className: "h-4 w-4 shrink-0 text-[var(--brand-cool)]" }),
384
- /* @__PURE__ */ jsx5("span", { className: "min-w-0 truncate text-xs font-[var(--font-mono)] text-[var(--text-secondary)]", children: file })
383
+ /* @__PURE__ */ jsx5(Icon, { className: "h-4 w-4 shrink-0 text-primary" }),
384
+ /* @__PURE__ */ jsx5("span", { className: "min-w-0 truncate text-xs font-mono text-foreground", children: file })
385
385
  ]
386
386
  },
387
387
  file
@@ -460,11 +460,11 @@ var WebSearchPreview = memo5(({ part }) => {
460
460
  href: result.url,
461
461
  target: "_blank",
462
462
  rel: "noreferrer",
463
- className: "block rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)]/55 px-3 py-3 transition-colors hover:border-[var(--border-accent-hover)] hover:bg-[var(--bg-hover)]/50",
463
+ className: "block rounded-[var(--radius-md)] border border-border bg-muted/55 px-3 py-3 transition-colors hover:border-[var(--border-accent-hover)] hover:bg-accent/50",
464
464
  children: [
465
- /* @__PURE__ */ jsx6("div", { className: "text-sm font-medium text-[var(--text-primary)]", children: result.title }),
466
- /* @__PURE__ */ jsx6("div", { className: "mt-1 truncate text-xs text-[var(--brand-cool)]", children: result.url }),
467
- result.snippet ? /* @__PURE__ */ jsx6("p", { className: "mt-2 text-sm leading-relaxed text-[var(--text-muted)]", children: result.snippet }) : null
465
+ /* @__PURE__ */ jsx6("div", { className: "text-sm font-medium text-foreground", children: result.title }),
466
+ /* @__PURE__ */ jsx6("div", { className: "mt-1 truncate text-xs text-primary", children: result.url }),
467
+ result.snippet ? /* @__PURE__ */ jsx6("p", { className: "mt-2 text-sm leading-relaxed text-muted-foreground", children: result.snippet }) : null
468
468
  ]
469
469
  },
470
470
  result.url
@@ -539,14 +539,14 @@ var QuestionPreview = memo6(({ part }) => {
539
539
  questions.map((question, index) => /* @__PURE__ */ jsxs7(
540
540
  "div",
541
541
  {
542
- className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-3",
542
+ className: "rounded-[var(--radius-md)] border border-border bg-muted px-3 py-3",
543
543
  children: [
544
- /* @__PURE__ */ jsxs7("div", { className: "text-xs font-semibold uppercase tracking-[0.08em] text-[var(--text-muted)]", children: [
544
+ /* @__PURE__ */ jsxs7("div", { className: "text-xs font-semibold uppercase tracking-[0.08em] text-muted-foreground", children: [
545
545
  "Question ",
546
546
  index + 1
547
547
  ] }),
548
- /* @__PURE__ */ jsx7("div", { className: "mt-2 text-sm leading-relaxed text-[var(--text-primary)]", children: question }),
549
- /* @__PURE__ */ jsx7("div", { className: "mt-3 rounded-[var(--radius-sm)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-3 py-2 text-sm text-[var(--text-secondary)]", children: answers[index] ?? (part.state.status === "completed" ? "No answer recorded." : "Awaiting answer") })
548
+ /* @__PURE__ */ jsx7("div", { className: "mt-2 text-sm leading-relaxed text-foreground", children: question }),
549
+ /* @__PURE__ */ jsx7("div", { className: "mt-3 rounded-[var(--radius-sm)] border border-border bg-card px-3 py-2 text-sm text-foreground", children: answers[index] ?? (part.state.status === "completed" ? "No answer recorded." : "Awaiting answer") })
550
550
  ]
551
551
  },
552
552
  `${question}-${index}`
@@ -600,11 +600,11 @@ var DiffPreview = memo7(({ part }) => {
600
600
  !payload.diff && !payload.before && !payload.after ? /* @__PURE__ */ jsx8(PreviewEmpty, { label: "No structured diff payload was provided." }) : null,
601
601
  payload.diff ? /* @__PURE__ */ jsx8(CodeBlock, { code: payload.diff, language: "diff", className: "rounded-[var(--radius-md)]" }) : null,
602
602
  !payload.diff && payload.before ? /* @__PURE__ */ jsxs8("div", { className: "space-y-2", children: [
603
- /* @__PURE__ */ jsx8("div", { className: "text-xs font-semibold uppercase tracking-[0.08em] text-[var(--text-muted)]", children: "Before" }),
603
+ /* @__PURE__ */ jsx8("div", { className: "text-xs font-semibold uppercase tracking-[0.08em] text-muted-foreground", children: "Before" }),
604
604
  /* @__PURE__ */ jsx8(CodeBlock, { code: payload.before, language: "text", className: "rounded-[var(--radius-md)]" })
605
605
  ] }) : null,
606
606
  !payload.diff && payload.after ? /* @__PURE__ */ jsxs8("div", { className: "space-y-2", children: [
607
- /* @__PURE__ */ jsx8("div", { className: "text-xs font-semibold uppercase tracking-[0.08em] text-[var(--text-muted)]", children: "After" }),
607
+ /* @__PURE__ */ jsx8("div", { className: "text-xs font-semibold uppercase tracking-[0.08em] text-muted-foreground", children: "After" }),
608
608
  /* @__PURE__ */ jsx8(CodeBlock, { code: payload.after, language: "text", className: "rounded-[var(--radius-md)]" })
609
609
  ] }) : null
610
610
  ]
@@ -686,16 +686,16 @@ var ExpandedToolDetail = memo8(({ part }) => {
686
686
  return /* @__PURE__ */ jsx9(DiffPreview, { part });
687
687
  }
688
688
  if (meta.displayVariant === "read-file") {
689
- return /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] shadow-[var(--shadow-card)]", children: [
690
- /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2.5 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-3 py-2", children: [
691
- /* @__PURE__ */ jsx9("div", { className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: /* @__PURE__ */ jsx9(FileText2, { className: "h-3.5 w-3.5" }) }),
689
+ return /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-border bg-card shadow-[var(--shadow-card)]", children: [
690
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2.5 border-b border-border bg-card px-3 py-2", children: [
691
+ /* @__PURE__ */ jsx9("div", { className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-sm)] border border-[var(--border-accent)] bg-muted text-primary", children: /* @__PURE__ */ jsx9(FileText2, { className: "h-3.5 w-3.5" }) }),
692
692
  /* @__PURE__ */ jsxs9("div", { className: "min-w-0 flex items-center gap-2", children: [
693
- /* @__PURE__ */ jsx9("span", { className: "text-xs font-semibold text-[var(--text-primary)]", children: "Read file" }),
694
- meta.targetPath ? /* @__PURE__ */ jsx9("span", { className: "truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: meta.targetPath }) : null
693
+ /* @__PURE__ */ jsx9("span", { className: "text-xs font-semibold text-foreground", children: "Read file" }),
694
+ meta.targetPath ? /* @__PURE__ */ jsx9("span", { className: "truncate text-xs font-mono text-muted-foreground", children: meta.targetPath }) : null
695
695
  ] })
696
696
  ] }),
697
697
  /* @__PURE__ */ jsxs9("div", { className: "space-y-2 px-3 py-2.5", children: [
698
- typeof output === "string" ? /* @__PURE__ */ jsx9(CodeBlock, { code: output, language: langFromPath(meta.targetPath) ?? "text", className: "rounded-[var(--radius-md)]" }) : /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-dashed border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-4 text-sm text-[var(--text-muted)]", children: "No readable file content was returned." }),
698
+ typeof output === "string" ? /* @__PURE__ */ jsx9(CodeBlock, { code: output, language: langFromPath(meta.targetPath) ?? "text", className: "rounded-[var(--radius-md)]" }) : /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-dashed border-border bg-muted px-3 py-4 text-sm text-muted-foreground", children: "No readable file content was returned." }),
699
699
  error ? /* @__PURE__ */ jsx9("div", { className: "rounded-[var(--radius-md)] border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-3 py-3 text-sm text-[var(--surface-danger-text)]", children: error }) : null
700
700
  ] })
701
701
  ] });
@@ -703,17 +703,17 @@ var ExpandedToolDetail = memo8(({ part }) => {
703
703
  const inputStr = formatOutput(input);
704
704
  const outputStr = formatOutput(output);
705
705
  return /* @__PURE__ */ jsxs9("div", { className: "space-y-3", children: [
706
- inputStr && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)]", children: [
707
- /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-3 py-2", children: [
708
- /* @__PURE__ */ jsx9(ArrowRight, { className: "h-3 w-3 text-[var(--brand-cool)]" }),
709
- /* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-[var(--text-muted)]", children: "Input" })
706
+ inputStr && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-border bg-card", children: [
707
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-border bg-background px-3 py-2", children: [
708
+ /* @__PURE__ */ jsx9(ArrowRight, { className: "h-3 w-3 text-primary" }),
709
+ /* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground", children: "Input" })
710
710
  ] }),
711
711
  /* @__PURE__ */ jsx9(CodeBlock, { code: inputStr, language: "json", className: "rounded-none border-0" })
712
712
  ] }),
713
- status === "completed" && outputStr && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)]", children: [
714
- /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-3 py-2", children: [
715
- /* @__PURE__ */ jsx9(ArrowLeft, { className: "h-3 w-3 text-[var(--brand-cool)]" }),
716
- /* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-[var(--text-muted)]", children: "Output" })
713
+ status === "completed" && outputStr && /* @__PURE__ */ jsxs9("div", { className: "overflow-hidden rounded-[var(--radius-lg)] border border-border bg-card", children: [
714
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 border-b border-border bg-background px-3 py-2", children: [
715
+ /* @__PURE__ */ jsx9(ArrowLeft, { className: "h-3 w-3 text-primary" }),
716
+ /* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground", children: "Output" })
717
717
  ] }),
718
718
  /* @__PURE__ */ jsx9(
719
719
  CodeBlock,
@@ -729,10 +729,10 @@ var ExpandedToolDetail = memo8(({ part }) => {
729
729
  /* @__PURE__ */ jsx9(AlertCircle, { className: "h-3 w-3 text-[var(--surface-danger-text)]" }),
730
730
  /* @__PURE__ */ jsx9("span", { className: "text-xs font-medium uppercase tracking-[0.08em] text-[var(--surface-danger-text)]", children: "Error" })
731
731
  ] }),
732
- /* @__PURE__ */ jsx9("pre", { className: "bg-[var(--surface-danger-bg)] p-3 text-xs font-[var(--font-mono)] whitespace-pre-wrap break-all text-[var(--surface-danger-text)]", children: error })
732
+ /* @__PURE__ */ jsx9("pre", { className: "bg-[var(--surface-danger-bg)] p-3 text-xs font-mono whitespace-pre-wrap break-all text-[var(--surface-danger-text)]", children: error })
733
733
  ] }),
734
- (status === "pending" || status === "running") && /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-3 text-xs text-[var(--text-muted)]", children: [
735
- /* @__PURE__ */ jsx9(Loader23, { className: cn("h-3 w-3 animate-spin text-[var(--brand-cool)]") }),
734
+ (status === "pending" || status === "running") && /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-border bg-muted px-3 py-3 text-xs text-muted-foreground", children: [
735
+ /* @__PURE__ */ jsx9(Loader23, { className: cn("h-3 w-3 animate-spin text-primary") }),
736
736
  "Running\u2026"
737
737
  ] })
738
738
  ] });
@@ -816,8 +816,8 @@ var InlineToolItem = memo9(
816
816
  {
817
817
  className: cn(
818
818
  "w-full border text-left transition-colors",
819
- "border-[var(--border-subtle)] bg-[var(--bg-card)] hover:border-[var(--border-accent-hover)] hover:bg-[var(--bg-hover)]/35",
820
- open && "border-[var(--border-accent)] bg-[var(--bg-hover)]/30",
819
+ "border-border bg-card hover:border-[var(--border-accent-hover)] hover:bg-accent/35",
820
+ open && "border-border bg-accent/30",
821
821
  shapeClass,
822
822
  className
823
823
  ),
@@ -825,22 +825,22 @@ var InlineToolItem = memo9(
825
825
  /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2 px-2.5 py-1.5", children: [
826
826
  /* @__PURE__ */ jsx11("div", { className: cn(
827
827
  "shrink-0",
828
- isRunning && "text-[var(--brand-cool)]",
828
+ isRunning && "text-primary",
829
829
  isComplete && "text-[var(--surface-success-text)]",
830
830
  isError && "text-[var(--surface-danger-text)]",
831
- !isRunning && !isComplete && !isError && "text-[var(--text-muted)]"
831
+ !isRunning && !isComplete && !isError && "text-muted-foreground"
832
832
  ), children: isRunning ? /* @__PURE__ */ jsx11(Loader24, { className: "h-3.5 w-3.5 animate-spin" }) : isComplete ? /* @__PURE__ */ jsx11(CheckCircle2, { className: "h-3.5 w-3.5" }) : isError ? /* @__PURE__ */ jsx11(AlertCircle2, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx11(DefaultIcon, { className: "h-3.5 w-3.5" }) }),
833
- /* @__PURE__ */ jsx11("span", { className: "truncate text-xs font-medium text-[var(--text-primary)]", children: meta.title }),
834
- meta.description ? /* @__PURE__ */ jsx11("span", { className: "hidden truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)] sm:inline", children: meta.description }) : null,
833
+ /* @__PURE__ */ jsx11("span", { className: "truncate text-xs font-medium text-foreground", children: meta.title }),
834
+ meta.description ? /* @__PURE__ */ jsx11("span", { className: "hidden truncate text-xs font-mono text-muted-foreground sm:inline", children: meta.description }) : null,
835
835
  /* @__PURE__ */ jsxs10("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
836
836
  isRunning && startTime ? /* @__PURE__ */ jsx11(LiveDuration, { startTime }) : null,
837
- !isRunning && durationMs != null ? /* @__PURE__ */ jsx11("span", { className: "text-[10px] font-[var(--font-mono)] tabular-nums text-[var(--text-muted)]", children: formatDuration(durationMs) }) : null,
837
+ !isRunning && durationMs != null ? /* @__PURE__ */ jsx11("span", { className: "text-[10px] font-mono tabular-nums text-muted-foreground", children: formatDuration(durationMs) }) : null,
838
838
  isError ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-1.5 py-px text-[10px] font-semibold uppercase text-[var(--surface-danger-text)]", children: "Failed" }) : null,
839
- isRunning ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--brand-cool)]/10 px-1.5 py-px text-[10px] font-semibold uppercase text-[var(--brand-cool)]", children: "Running" }) : null,
840
- open ? /* @__PURE__ */ jsx11(ChevronDown2, { className: "h-3 w-3 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx11(ChevronRight2, { className: "h-3 w-3 text-[var(--text-muted)]" })
839
+ isRunning ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-accent)] bg-primary/10 px-1.5 py-px text-[10px] font-semibold uppercase text-primary", children: "Running" }) : null,
840
+ open ? /* @__PURE__ */ jsx11(ChevronDown2, { className: "h-3 w-3 text-muted-foreground" }) : /* @__PURE__ */ jsx11(ChevronRight2, { className: "h-3 w-3 text-muted-foreground" })
841
841
  ] })
842
842
  ] }),
843
- errorText && !open ? /* @__PURE__ */ jsx11("div", { className: "border-t border-[var(--border-subtle)] px-3 py-2 text-xs text-red-200", children: errorText }) : null
843
+ errorText && !open ? /* @__PURE__ */ jsx11("div", { className: "border-t border-border px-3 py-2 text-xs text-red-200", children: errorText }) : null
844
844
  ]
845
845
  }
846
846
  ) }),
@@ -862,7 +862,7 @@ InlineToolItem.displayName = "InlineToolItem";
862
862
  // src/run/inline-thinking-item.tsx
863
863
  import { memo as memo10, useEffect as useEffect2, useRef, useState as useState4 } from "react";
864
864
  import * as Collapsible2 from "@radix-ui/react-collapsible";
865
- import { Brain, ChevronDown as ChevronDown3, ChevronRight as ChevronRight3 } from "lucide-react";
865
+ import { Brain, ChevronRight as ChevronRight3 } from "lucide-react";
866
866
  import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
867
867
  var InlineThinkingItem = memo10(
868
868
  ({
@@ -893,38 +893,60 @@ var InlineThinkingItem = memo10(
893
893
  return () => window.clearTimeout(timer);
894
894
  }
895
895
  }, [autoCollapse, durationMs, isActive]);
896
- return /* @__PURE__ */ jsxs11(Collapsible2.Root, { open, onOpenChange: setOpen, children: [
897
- /* @__PURE__ */ jsx12(Collapsible2.Trigger, { asChild: true, children: /* @__PURE__ */ jsx12(
898
- "button",
899
- {
900
- className: cn(
901
- "w-full rounded-[var(--radius-lg)] border text-left transition-colors",
902
- isActive ? "border-primary/30 bg-primary/10" : "border-border bg-muted hover:bg-accent",
903
- open && !isActive && "bg-accent",
904
- className
905
- ),
906
- children: /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2.5 px-3 py-2", children: [
907
- /* @__PURE__ */ jsx12(Brain, { className: cn("h-4 w-4 shrink-0", isActive ? "text-primary animate-pulse" : "text-muted-foreground") }),
908
- /* @__PURE__ */ jsx12("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx12("span", { className: "truncate text-xs text-foreground", children: preview ?? (isActive ? "Thinking\u2026" : "Reasoning") }) }),
909
- /* @__PURE__ */ jsxs11("div", { className: "flex shrink-0 items-center gap-2", children: [
910
- isActive && startTime ? /* @__PURE__ */ jsx12(LiveDuration, { startTime }) : null,
911
- !isActive && durationMs != null ? /* @__PURE__ */ jsx12("span", { className: "text-[10px] font-mono tabular-nums text-muted-foreground", children: formatDuration(durationMs) }) : null,
912
- open ? /* @__PURE__ */ jsx12(ChevronDown3, { className: "h-3 w-3 text-muted-foreground" }) : /* @__PURE__ */ jsx12(ChevronRight3, { className: "h-3 w-3 text-muted-foreground" })
913
- ] })
914
- ] })
915
- }
916
- ) }),
917
- /* @__PURE__ */ jsx12(Collapsible2.Content, { className: "overflow-hidden rounded-b-[var(--radius-lg)] data-[state=open]:animate-slideDown data-[state=closed]:animate-slideUp", children: part.text ? /* @__PURE__ */ jsx12(
918
- "div",
919
- {
920
- className: cn(
921
- "max-h-60 overflow-y-auto border-t border-border bg-card px-3 py-3 text-sm leading-relaxed text-foreground",
922
- contentClassName
923
- ),
924
- children: /* @__PURE__ */ jsx12(Markdown, { children: part.text })
925
- }
926
- ) : /* @__PURE__ */ jsx12("div", { className: "border-t border-border px-3 py-2.5 text-xs text-muted-foreground", children: "No reasoning text provided." }) })
927
- ] });
896
+ return /* @__PURE__ */ jsx12(Collapsible2.Root, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs11(
897
+ "div",
898
+ {
899
+ className: cn(
900
+ "overflow-hidden rounded-[var(--radius-lg)] border bg-card transition-colors",
901
+ isActive ? "border-[var(--border-accent)]" : "border-border hover:border-[var(--border-accent)]",
902
+ className
903
+ ),
904
+ children: [
905
+ /* @__PURE__ */ jsx12(Collapsible2.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs11(
906
+ "button",
907
+ {
908
+ className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-sm cursor-pointer",
909
+ children: [
910
+ /* @__PURE__ */ jsx12(
911
+ "div",
912
+ {
913
+ className: cn(
914
+ "flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--radius-sm)] border",
915
+ isActive ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-primary" : "border-border bg-muted text-muted-foreground"
916
+ ),
917
+ children: /* @__PURE__ */ jsx12(Brain, { className: cn("h-3 w-3 shrink-0", isActive && "animate-pulse") })
918
+ }
919
+ ),
920
+ /* @__PURE__ */ jsx12("p", { className: "min-w-0 flex-1 truncate font-[var(--font-sans)] text-muted-foreground", children: preview ?? (isActive ? "Thinking\u2026" : "Reasoning") }),
921
+ /* @__PURE__ */ jsxs11("div", { className: "flex shrink-0 items-center gap-2", children: [
922
+ isActive && startTime ? /* @__PURE__ */ jsx12(LiveDuration, { startTime }) : null,
923
+ !isActive && durationMs != null ? /* @__PURE__ */ jsx12("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: formatDuration(durationMs) }) : null,
924
+ /* @__PURE__ */ jsx12(
925
+ ChevronRight3,
926
+ {
927
+ className: cn(
928
+ "h-3 w-3 text-muted-foreground transition-transform shrink-0",
929
+ open && "rotate-90"
930
+ )
931
+ }
932
+ )
933
+ ] })
934
+ ]
935
+ }
936
+ ) }),
937
+ /* @__PURE__ */ jsx12(Collapsible2.Content, { className: "overflow-hidden data-[state=open]:animate-slideDown data-[state=closed]:animate-slideUp", children: part.text ? /* @__PURE__ */ jsx12(
938
+ "div",
939
+ {
940
+ className: cn(
941
+ "max-h-60 overflow-y-auto border-t border-border bg-muted px-3 py-3 text-sm leading-relaxed text-muted-foreground",
942
+ contentClassName
943
+ ),
944
+ children: /* @__PURE__ */ jsx12(Markdown, { children: part.text })
945
+ }
946
+ ) : /* @__PURE__ */ jsx12("div", { className: "border-t border-border bg-muted px-3 py-2.5 text-xs text-muted-foreground", children: "No reasoning text provided." }) })
947
+ ]
948
+ }
949
+ ) });
928
950
  }
929
951
  );
930
952
  InlineThinkingItem.displayName = "InlineThinkingItem";
@@ -935,7 +957,7 @@ import * as Collapsible3 from "@radix-ui/react-collapsible";
935
957
  import {
936
958
  Bot as Bot2,
937
959
  Loader2 as Loader25,
938
- ChevronDown as ChevronDown4,
960
+ ChevronDown as ChevronDown3,
939
961
  ChevronRight as ChevronRight4,
940
962
  Terminal as Terminal3,
941
963
  FileEdit as FileEdit3,
@@ -950,12 +972,12 @@ import {
950
972
  import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
951
973
  var DEFAULT_BRANDING = {
952
974
  label: "Agent",
953
- accentClass: "text-[var(--brand-cool)]",
975
+ accentClass: "text-primary",
954
976
  bgClass: "bg-[var(--accent-surface-soft)]",
955
- containerBgClass: "bg-[var(--bg-section)]",
956
- borderClass: "border-[var(--border-accent)]",
977
+ containerBgClass: "bg-muted",
978
+ borderClass: "border-border",
957
979
  iconClass: "",
958
- textClass: "text-[var(--brand-cool)]"
980
+ textClass: "text-primary"
959
981
  };
960
982
  var CATEGORY_ICON_MAP = {
961
983
  command: Terminal3,
@@ -991,7 +1013,7 @@ function CategoryBadges({ categories }) {
991
1013
  "span",
992
1014
  {
993
1015
  title: cat,
994
- className: "flex h-5 w-5 items-center justify-center rounded border border-[var(--border-subtle)] text-[var(--text-muted)]",
1016
+ className: "flex h-5 w-5 items-center justify-center rounded border border-border text-muted-foreground",
995
1017
  children: /* @__PURE__ */ jsx13(Icon, { className: "h-3 w-3" })
996
1018
  },
997
1019
  cat
@@ -1052,54 +1074,50 @@ var RunGroup = memo11(
1052
1074
  if (!hasRenderableParts) {
1053
1075
  return null;
1054
1076
  }
1055
- return /* @__PURE__ */ jsxs12(Collapsible3.Root, { open: !collapsed, onOpenChange: () => onToggle(), children: [
1056
- /* @__PURE__ */ jsxs12("div", { className: "flex items-start gap-3", children: [
1077
+ return /* @__PURE__ */ jsx13(Collapsible3.Root, { open: !collapsed, onOpenChange: () => onToggle(), children: /* @__PURE__ */ jsxs12("div", { className: "rounded-[var(--radius-xl)] border border-border bg-card shadow-[var(--shadow-card)]", children: [
1078
+ /* @__PURE__ */ jsxs12("div", { className: "flex items-start gap-3 px-4 py-4", children: [
1057
1079
  /* @__PURE__ */ jsx13(Collapsible3.Trigger, { asChild: true, children: /* @__PURE__ */ jsx13(
1058
1080
  "button",
1059
1081
  {
1060
1082
  className: cn(
1061
- "w-full rounded-[var(--radius-lg)] border px-3 py-2 text-left transition-colors",
1062
- "bg-[var(--depth-2)] hover:bg-[var(--depth-3)]",
1063
- collapsed ? branding.borderClass : "border-[var(--border-subtle)]",
1064
- branding.bgClass
1083
+ "w-full rounded-[20px] px-0 py-0 text-left transition-colors",
1084
+ "bg-transparent hover:bg-transparent"
1065
1085
  ),
1066
1086
  children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2.5", children: [
1067
1087
  /* @__PURE__ */ jsx13(
1068
1088
  "div",
1069
1089
  {
1070
1090
  className: cn(
1071
- "flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-md)] border bg-[var(--accent-surface-soft)]",
1072
- branding.borderClass
1091
+ "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--brand-primary)] text-white"
1073
1092
  ),
1074
- children: /* @__PURE__ */ jsx13(Bot2, { className: cn("h-3.5 w-3.5", branding.accentClass) })
1093
+ children: /* @__PURE__ */ jsx13(Bot2, { className: "h-4 w-4" })
1075
1094
  }
1076
1095
  ),
1077
- /* @__PURE__ */ jsx13("span", { className: cn("text-xs font-semibold", branding.textClass), children: branding.label }),
1078
- renderSummary(run) ? /* @__PURE__ */ jsx13("span", { className: "text-[11px] text-[var(--text-muted)]", children: renderSummary(run) }) : null,
1079
- collapsed && run.summaryText ? /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate text-[11px] text-[var(--text-secondary)]", children: run.summaryText }) : null,
1096
+ /* @__PURE__ */ jsx13("span", { className: cn("text-sm font-semibold", branding.textClass), children: branding.label }),
1097
+ renderSummary(run) ? /* @__PURE__ */ jsx13("span", { className: "text-[11px] text-muted-foreground", children: renderSummary(run) }) : null,
1098
+ collapsed && run.summaryText ? /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate text-[11px] text-foreground/70", children: run.summaryText }) : null,
1080
1099
  /* @__PURE__ */ jsxs12("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
1081
1100
  /* @__PURE__ */ jsx13(CategoryBadges, { categories: stats.toolCategories }),
1082
1101
  isStreaming ? /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-2 py-px text-[10px] font-semibold uppercase text-[var(--accent-text)]", children: [
1083
1102
  /* @__PURE__ */ jsx13(Loader25, { className: "h-2.5 w-2.5 animate-spin" }),
1084
1103
  "Running"
1085
- ] }) : /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-subtle)] px-2 py-px text-[10px] font-semibold uppercase text-[var(--text-muted)]", children: [
1104
+ ] }) : /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-border px-2 py-px text-[10px] font-semibold uppercase text-muted-foreground", children: [
1086
1105
  /* @__PURE__ */ jsx13(Sparkles, { className: "h-2.5 w-2.5" }),
1087
1106
  "Done"
1088
1107
  ] }),
1089
- !collapsed ? /* @__PURE__ */ jsx13(ChevronDown4, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx13(ChevronRight4, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" })
1108
+ !collapsed ? /* @__PURE__ */ jsx13(ChevronDown3, { className: "h-3.5 w-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsx13(ChevronRight4, { className: "h-3.5 w-3.5 text-muted-foreground" })
1090
1109
  ] })
1091
1110
  ] })
1092
1111
  }
1093
1112
  ) }),
1094
1113
  headerActions ? /* @__PURE__ */ jsx13("div", { className: "flex shrink-0 flex-wrap items-center justify-end gap-1.5 pt-1", children: headerActions }) : null
1095
1114
  ] }),
1096
- collapsed && run.summaryText && /* @__PURE__ */ jsx13("div", { className: "px-4 py-2 text-sm leading-6 text-[var(--text-muted)] line-clamp-2", children: run.summaryText }),
1115
+ collapsed && run.summaryText && /* @__PURE__ */ jsx13("div", { className: "px-4 pb-4 text-sm leading-6 text-muted-foreground line-clamp-2", children: run.summaryText }),
1097
1116
  /* @__PURE__ */ jsx13(Collapsible3.Content, { className: "overflow-hidden data-[state=open]:animate-slideDown data-[state=closed]:animate-slideUp", children: /* @__PURE__ */ jsx13(
1098
1117
  "div",
1099
1118
  {
1100
1119
  className: cn(
1101
- "mt-1.5 space-y-1.5 rounded-[var(--radius-lg)] border border-[var(--border-subtle)] p-2 shadow-[var(--shadow-card)]",
1102
- branding.containerBgClass
1120
+ "space-y-3 border-t border-border px-4 pb-4 pt-3"
1103
1121
  ),
1104
1122
  children: allParts.map(({ part, msgId, index }, partIndex) => {
1105
1123
  const key = `${msgId}-${index}`;
@@ -1133,8 +1151,8 @@ var RunGroup = memo11(
1133
1151
  return /* @__PURE__ */ jsx13(
1134
1152
  "div",
1135
1153
  {
1136
- className: "rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-3 py-2.5",
1137
- children: /* @__PURE__ */ jsx13(Markdown, { children: part.text })
1154
+ className: "px-1 py-1",
1155
+ children: /* @__PURE__ */ jsx13(Markdown, { className: "tangle-prose text-[15px] leading-7", children: part.text })
1138
1156
  },
1139
1157
  key
1140
1158
  );
@@ -1143,7 +1161,7 @@ var RunGroup = memo11(
1143
1161
  })
1144
1162
  }
1145
1163
  ) })
1146
- ] });
1164
+ ] }) });
1147
1165
  }
1148
1166
  );
1149
1167
  RunGroup.displayName = "RunGroup";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Markdown
3
- } from "./chunk-3HW53XTH.js";
3
+ } from "./chunk-T7HMZEVO.js";
4
4
  import {
5
5
  cn
6
6
  } from "./chunk-RQHJBTEU.js";
@@ -14,7 +14,12 @@ function ChatMessage({
14
14
  toolCalls,
15
15
  isStreaming,
16
16
  timestamp,
17
- className
17
+ className,
18
+ userLabel = "You",
19
+ assistantLabel = "Agent",
20
+ hideRoleLabel,
21
+ hideAvatar,
22
+ avatar
18
23
  }) {
19
24
  const isUser = role === "user";
20
25
  return /* @__PURE__ */ jsxs(
@@ -26,31 +31,32 @@ function ChatMessage({
26
31
  className
27
32
  ),
28
33
  children: [
29
- /* @__PURE__ */ jsx(
34
+ !hideAvatar && (avatar ? /* @__PURE__ */ jsx("div", { className: "mt-0.5 shrink-0", children: avatar }) : /* @__PURE__ */ jsx(
30
35
  "div",
31
36
  {
32
37
  className: cn(
33
- "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-[calc(var(--radius-md)+2px)] border",
34
- isUser ? "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-[var(--accent-text)]" : "border-[var(--border-subtle)] bg-[var(--bg-section)] text-[var(--brand-cool)]"
38
+ "mt-0.5 flex shrink-0 items-center justify-center rounded-[calc(var(--radius-md)+2px)] border",
39
+ "h-[var(--avatar-size)] w-[var(--avatar-size)]",
40
+ isUser ? "border-border bg-[var(--accent-surface-soft)] text-[var(--accent-text)]" : "border-border bg-muted text-[var(--brand-cool)]"
35
41
  ),
36
42
  children: isUser ? /* @__PURE__ */ jsx(User, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx(Bot, { className: "h-3.5 w-3.5" })
37
43
  }
38
- ),
44
+ )),
39
45
  /* @__PURE__ */ jsxs(
40
46
  "div",
41
47
  {
42
48
  className: cn(
43
49
  "min-w-0 max-w-[85%] space-y-1 rounded-[var(--radius-lg)] border",
44
50
  "px-[var(--chat-message-px)] py-[var(--chat-message-py)]",
45
- isUser ? "border-[var(--border-accent)] bg-[var(--depth-3)]" : "border-[var(--border-subtle)] bg-[var(--depth-2)]"
51
+ isUser ? "border-border bg-muted/50" : "border-border bg-card"
46
52
  ),
47
53
  children: [
48
- /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", isUser && "flex-row-reverse"), children: [
49
- /* @__PURE__ */ jsx("span", { className: "text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--text-secondary)]", children: isUser ? "You" : "Agent" }),
50
- timestamp && /* @__PURE__ */ jsx("span", { className: "text-[11px] text-[var(--text-muted)]", children: formatTime(timestamp) })
54
+ !hideRoleLabel && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", isUser && "flex-row-reverse"), children: [
55
+ /* @__PURE__ */ jsx("span", { className: "text-[var(--font-size-xs)] font-[var(--chat-label-weight,600)] uppercase tracking-[var(--chat-label-tracking,0.14em)] text-foreground", children: isUser ? userLabel : assistantLabel }),
56
+ timestamp && /* @__PURE__ */ jsx("span", { className: "text-[var(--font-size-xs)] text-muted-foreground", children: formatTime(timestamp) })
51
57
  ] }),
52
- isUser ? /* @__PURE__ */ jsx("div", { className: "whitespace-pre-wrap text-[15px] leading-7 text-[var(--text-primary)]", children: content }) : /* @__PURE__ */ jsxs(Fragment, { children: [
53
- content && /* @__PURE__ */ jsx(Markdown, { className: "tangle-prose text-[15px] leading-7", children: content }),
58
+ isUser ? /* @__PURE__ */ jsx("div", { className: "whitespace-pre-wrap text-[var(--font-size-base)] leading-[var(--line-height-base)] text-foreground", children: content }) : /* @__PURE__ */ jsxs(Fragment, { children: [
59
+ content && /* @__PURE__ */ jsx(Markdown, { className: "tangle-prose text-[var(--font-size-base)] leading-[var(--line-height-base)]", children: content }),
54
60
  isStreaming && /* @__PURE__ */ jsx("span", { className: "ml-0.5 inline-block h-4 w-2 animate-pulse rounded-sm bg-[var(--brand-cool)] align-text-bottom" })
55
61
  ] }),
56
62
  toolCalls