@tangle-network/sandbox-ui 0.5.1 → 0.6.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.
@@ -11,7 +11,7 @@ import {
11
11
  CodeBlock,
12
12
  CopyButton,
13
13
  Markdown
14
- } from "./chunk-H5XYSFYE.js";
14
+ } from "./chunk-3HW53XTH.js";
15
15
  import {
16
16
  cn
17
17
  } from "./chunk-RQHJBTEU.js";
@@ -43,15 +43,15 @@ function PreviewCard({
43
43
  className
44
44
  ),
45
45
  children: [
46
- /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-4 py-3", children: [
47
- /* @__PURE__ */ jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--radius-md)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: icon }),
48
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
49
- /* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: title }),
50
- description ? /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-[var(--text-muted)]", children: description }) : null
51
- ] }),
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 }),
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
51
+ ] }) }),
52
52
  meta ? /* @__PURE__ */ jsx("div", { className: "shrink-0 text-xs text-[var(--text-muted)]", children: meta }) : null
53
53
  ] }),
54
- children ? /* @__PURE__ */ jsx("div", { className: "space-y-3 px-4 py-4", children }) : null
54
+ children ? /* @__PURE__ */ jsx("div", { className: "space-y-2 px-[var(--tool-card-px)] py-[var(--tool-card-py)]", children }) : null
55
55
  ]
56
56
  }
57
57
  );
@@ -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-4 text-sm text-[var(--text-muted)]",
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)]",
68
68
  className
69
69
  ),
70
70
  children: label
@@ -75,7 +75,7 @@ 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-3 text-sm text-[var(--text-muted)]", children: [
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
79
  /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin text-[var(--brand-cool)]" }),
80
80
  /* @__PURE__ */ jsx("span", { children: label })
81
81
  ] });
@@ -687,14 +687,14 @@ var ExpandedToolDetail = memo8(({ part }) => {
687
687
  }
688
688
  if (meta.displayVariant === "read-file") {
689
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-3 border-b border-[var(--border-subtle)] bg-[var(--depth-1)] px-4 py-3", children: [
691
- /* @__PURE__ */ jsx9("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--radius-md)] border border-[var(--border-accent)] bg-[var(--bg-section)] text-[var(--brand-cool)]", children: /* @__PURE__ */ jsx9(FileText2, { className: "h-4 w-4" }) }),
692
- /* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
693
- /* @__PURE__ */ jsx9("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: "Read file" }),
694
- meta.targetPath ? /* @__PURE__ */ jsx9("div", { className: "mt-1 text-xs text-[var(--text-muted)]", children: meta.targetPath }) : null
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" }) }),
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
695
695
  ] })
696
696
  ] }),
697
- /* @__PURE__ */ jsxs9("div", { className: "space-y-3 px-4 py-4", children: [
697
+ /* @__PURE__ */ jsxs9("div", { className: "space-y-2 px-3 py-2.5", children: [
698
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." }),
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
  ] })
@@ -822,7 +822,7 @@ var InlineToolItem = memo9(
822
822
  className
823
823
  ),
824
824
  children: [
825
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2.5 px-3 py-2", children: [
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
828
  isRunning && "text-[var(--brand-cool)]",
@@ -830,18 +830,14 @@ var InlineToolItem = memo9(
830
830
  isError && "text-[var(--surface-danger-text)]",
831
831
  !isRunning && !isComplete && !isError && "text-[var(--text-muted)]"
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__ */ jsxs10("div", { className: "min-w-0 flex-1", children: [
834
- /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2", children: [
835
- /* @__PURE__ */ jsx11("span", { className: "truncate text-sm font-medium text-[var(--text-primary)]", children: meta.title }),
836
- isError ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.06em] text-[var(--surface-danger-text)]", children: "Failed" }) : null,
837
- isRunning ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--brand-cool)]/10 px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.06em] text-[var(--brand-cool)]", children: "Running" }) : null
838
- ] }),
839
- meta.description ? /* @__PURE__ */ jsx11("div", { className: "mt-1 truncate text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: meta.description }) : null
840
- ] }),
841
- /* @__PURE__ */ jsxs10("div", { className: "flex shrink-0 items-center gap-2", children: [
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,
835
+ /* @__PURE__ */ jsxs10("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
842
836
  isRunning && startTime ? /* @__PURE__ */ jsx11(LiveDuration, { startTime }) : null,
843
- !isRunning && durationMs != null ? /* @__PURE__ */ jsx11("span", { className: "rounded-full border border-[var(--border-subtle)] bg-[var(--bg-section)] px-2 py-0.5 text-[11px] font-[var(--font-mono)] text-[var(--text-muted)]", children: formatDuration(durationMs) }) : null,
844
- open ? /* @__PURE__ */ jsx11(ChevronDown2, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx11(ChevronRight2, { className: "h-3.5 w-3.5 text-[var(--text-muted)]" })
837
+ !isRunning && durationMs != null ? /* @__PURE__ */ jsx11("span", { className: "text-[10px] font-[var(--font-mono)] tabular-nums text-[var(--text-muted)]", children: formatDuration(durationMs) }) : null,
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)]" })
845
841
  ] })
846
842
  ] }),
847
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
@@ -1001,17 +997,14 @@ function CategoryBadges({ categories }) {
1001
997
  [categories]
1002
998
  );
1003
999
  if (sorted.length === 0) return null;
1004
- return /* @__PURE__ */ jsx13("div", { className: "flex items-center gap-1.5", children: sorted.map((cat) => {
1000
+ return /* @__PURE__ */ jsx13("div", { className: "flex items-center gap-1", children: sorted.map((cat) => {
1005
1001
  const Icon = CATEGORY_ICON_MAP[cat] ?? Settings2;
1006
- return /* @__PURE__ */ jsxs12(
1002
+ return /* @__PURE__ */ jsx13(
1007
1003
  "span",
1008
1004
  {
1009
1005
  title: cat,
1010
- className: "flex h-7 items-center gap-1 rounded-full border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.04),transparent)] px-2 text-[11px] uppercase tracking-[0.12em] text-[var(--text-muted)]",
1011
- children: [
1012
- /* @__PURE__ */ jsx13(Icon, { className: "h-3.5 w-3.5" }),
1013
- /* @__PURE__ */ jsx13("span", { children: cat })
1014
- ]
1006
+ className: "flex h-5 w-5 items-center justify-center rounded border border-[var(--border-subtle)] text-[var(--text-muted)]",
1007
+ children: /* @__PURE__ */ jsx13(Icon, { className: "h-3 w-3" })
1015
1008
  },
1016
1009
  cat
1017
1010
  );
@@ -1077,40 +1070,36 @@ var RunGroup = memo11(
1077
1070
  "button",
1078
1071
  {
1079
1072
  className: cn(
1080
- "w-full rounded-[var(--radius-xl)] border px-4 py-3.5 text-left transition-colors",
1073
+ "w-full rounded-[var(--radius-lg)] border px-3 py-2 text-left transition-colors",
1081
1074
  "bg-[var(--depth-2)] hover:bg-[var(--depth-3)]",
1082
1075
  collapsed ? branding.borderClass : "border-[var(--border-subtle)]",
1083
1076
  branding.bgClass
1084
1077
  ),
1085
- children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
1078
+ children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2.5", children: [
1086
1079
  /* @__PURE__ */ jsx13(
1087
1080
  "div",
1088
1081
  {
1089
1082
  className: cn(
1090
- "flex h-11 w-11 shrink-0 items-center justify-center rounded-[calc(var(--radius-lg)+2px)] border bg-[var(--accent-surface-soft)] shadow-[var(--shadow-accent)]",
1083
+ "flex h-7 w-7 shrink-0 items-center justify-center rounded-[var(--radius-md)] border bg-[var(--accent-surface-soft)]",
1091
1084
  branding.borderClass
1092
1085
  ),
1093
- children: /* @__PURE__ */ jsx13(Bot2, { className: cn("h-4 w-4", branding.accentClass) })
1086
+ children: /* @__PURE__ */ jsx13(Bot2, { className: cn("h-3.5 w-3.5", branding.accentClass) })
1094
1087
  }
1095
1088
  ),
1096
- /* @__PURE__ */ jsxs12("div", { className: "min-w-0 flex-1", children: [
1097
- /* @__PURE__ */ jsxs12("div", { className: "flex flex-wrap items-center gap-2", children: [
1098
- /* @__PURE__ */ jsx13("span", { className: cn("text-sm font-semibold tracking-[0.01em]", branding.textClass), children: branding.label }),
1099
- 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.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--accent-text)]", children: [
1100
- /* @__PURE__ */ jsx13(Loader25, { className: "h-3 w-3 animate-spin" }),
1101
- "Running"
1102
- ] }) : /* @__PURE__ */ jsxs12("span", { className: "inline-flex items-center gap-1 rounded-full border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.04),transparent)] px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--text-muted)]", children: [
1103
- /* @__PURE__ */ jsx13(Sparkles, { className: "h-3 w-3" }),
1104
- "Complete"
1105
- ] })
1089
+ /* @__PURE__ */ jsx13("span", { className: cn("text-xs font-semibold", branding.textClass), children: branding.label }),
1090
+ renderSummary(run) ? /* @__PURE__ */ jsx13("span", { className: "text-[11px] text-[var(--text-muted)]", children: renderSummary(run) }) : null,
1091
+ collapsed && run.summaryText ? /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate text-[11px] text-[var(--text-secondary)]", children: run.summaryText }) : null,
1092
+ /* @__PURE__ */ jsxs12("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
1093
+ /* @__PURE__ */ jsx13(CategoryBadges, { categories: stats.toolCategories }),
1094
+ 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: [
1095
+ /* @__PURE__ */ jsx13(Loader25, { className: "h-2.5 w-2.5 animate-spin" }),
1096
+ "Running"
1097
+ ] }) : /* @__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: [
1098
+ /* @__PURE__ */ jsx13(Sparkles, { className: "h-2.5 w-2.5" }),
1099
+ "Done"
1106
1100
  ] }),
1107
- /* @__PURE__ */ jsxs12("div", { className: "mt-1 flex flex-wrap items-center gap-2 text-xs text-[var(--text-muted)]", children: [
1108
- renderSummary(run) ? /* @__PURE__ */ jsx13("span", { children: renderSummary(run) }) : null,
1109
- collapsed && run.summaryText ? /* @__PURE__ */ jsx13("span", { className: "min-w-0 truncate text-[var(--text-secondary)]", children: run.summaryText }) : null
1110
- ] })
1111
- ] }),
1112
- /* @__PURE__ */ jsx13(CategoryBadges, { categories: stats.toolCategories }),
1113
- !collapsed ? /* @__PURE__ */ jsx13(ChevronDown4, { className: "h-4 w-4 shrink-0 text-[var(--text-muted)]" }) : /* @__PURE__ */ jsx13(ChevronRight4, { className: "h-4 w-4 shrink-0 text-[var(--text-muted)]" })
1101
+ !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)]" })
1102
+ ] })
1114
1103
  ] })
1115
1104
  }
1116
1105
  ) }),
@@ -1121,7 +1110,7 @@ var RunGroup = memo11(
1121
1110
  "div",
1122
1111
  {
1123
1112
  className: cn(
1124
- "mt-2 space-y-3 rounded-[calc(var(--radius-xl)+2px)] border border-[var(--border-subtle)] p-3.5 shadow-[var(--shadow-card)]",
1113
+ "mt-1.5 space-y-1.5 rounded-[var(--radius-lg)] border border-[var(--border-subtle)] p-2 shadow-[var(--shadow-card)]",
1125
1114
  branding.containerBgClass
1126
1115
  ),
1127
1116
  children: allParts.map(({ part, msgId, index }, partIndex) => {
@@ -1156,7 +1145,7 @@ var RunGroup = memo11(
1156
1145
  return /* @__PURE__ */ jsx13(
1157
1146
  "div",
1158
1147
  {
1159
- className: "rounded-[calc(var(--radius-lg)+2px)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-4 py-4",
1148
+ className: "rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[var(--bg-card)] px-3 py-2.5",
1160
1149
  children: /* @__PURE__ */ jsx13(Markdown, { children: part.text })
1161
1150
  },
1162
1151
  key
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CodeBlock
3
- } from "./chunk-H5XYSFYE.js";
3
+ } from "./chunk-3HW53XTH.js";
4
4
  import {
5
5
  cn
6
6
  } from "./chunk-RQHJBTEU.js";
@@ -116,7 +116,7 @@ function ToolCallStep({
116
116
  onClick: () => hasExpandable && setExpanded(!expanded),
117
117
  disabled: !hasExpandable,
118
118
  className: cn(
119
- "flex w-full items-center gap-3 px-3 py-3 text-left text-sm",
119
+ "flex w-full items-center gap-2.5 px-3 py-2 text-left text-sm",
120
120
  hasExpandable && "cursor-pointer"
121
121
  ),
122
122
  children: [
@@ -124,12 +124,12 @@ function ToolCallStep({
124
124
  "div",
125
125
  {
126
126
  className: cn(
127
- "flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--radius-md)] border",
127
+ "flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--radius-sm)] border",
128
128
  status === "running" && "border-[var(--border-accent)] bg-[var(--accent-surface-soft)] text-[var(--brand-cool)]",
129
129
  status === "success" && "border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]",
130
130
  status === "error" && "border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]"
131
131
  ),
132
- children: status === "running" ? /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin shrink-0" }) : /* @__PURE__ */ jsx(Icon, { className: cn("h-4 w-4 shrink-0", STATUS_COLORS[status]) })
132
+ children: status === "running" ? /* @__PURE__ */ jsx(Loader2, { className: "h-3 w-3 animate-spin shrink-0" }) : /* @__PURE__ */ jsx(Icon, { className: cn("h-3 w-3 shrink-0", STATUS_COLORS[status]) })
133
133
  }
134
134
  ),
135
135
  /* @__PURE__ */ jsx("span", { className: "truncate flex-1 font-[var(--font-sans)] text-[var(--text-secondary)]", children: label }),
@@ -158,7 +158,7 @@ function ToolCallStep({
158
158
  ]
159
159
  }
160
160
  ),
161
- expanded && (detail || output) && /* @__PURE__ */ jsxs("div", { className: "space-y-2 border-t border-[var(--border-subtle)] bg-[var(--bg-section)] px-4 py-4", children: [
161
+ expanded && (detail || output) && /* @__PURE__ */ jsxs("div", { className: "space-y-2 border-t border-[var(--border-subtle)] bg-[var(--bg-section)] px-3 py-2.5", children: [
162
162
  detail && (isFilePath(detail) ? /* @__PURE__ */ jsx(FilePathChip, { path: detail }) : /* @__PURE__ */ jsx("div", { className: "text-xs font-[var(--font-mono)] text-[var(--text-muted)]", children: detail })),
163
163
  output && /* @__PURE__ */ jsx(
164
164
  CodeBlock,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseToolEvent
3
- } from "./chunk-XBR3IP7B.js";
3
+ } from "./chunk-33W2TLUL.js";
4
4
  import {
5
5
  bumpActiveSessionActivity,
6
6
  registerActiveSession,
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  CodeBlock,
11
11
  Markdown
12
- } from "./chunk-H5XYSFYE.js";
12
+ } from "./chunk-3HW53XTH.js";
13
13
  import {
14
14
  Badge,
15
15
  Card,
@@ -10,21 +10,21 @@ import {
10
10
  } from "./chunk-BRBTD7RH.js";
11
11
  import {
12
12
  ChatContainer
13
- } from "./chunk-R3IU37AW.js";
13
+ } from "./chunk-5F3VOGCT.js";
14
14
  import {
15
15
  OpenUIArtifactRenderer
16
- } from "./chunk-VBWY44UU.js";
16
+ } from "./chunk-OVNLOE3Y.js";
17
17
  import {
18
18
  FileArtifactPane,
19
19
  FileTree,
20
20
  filterFileTree
21
- } from "./chunk-WQH233GF.js";
21
+ } from "./chunk-KH5UDAJ2.js";
22
22
  import {
23
23
  ArtifactPane
24
24
  } from "./chunk-W4LM3QYZ.js";
25
25
  import {
26
26
  Markdown
27
- } from "./chunk-H5XYSFYE.js";
27
+ } from "./chunk-3HW53XTH.js";
28
28
  import {
29
29
  Badge
30
30
  } from "./chunk-TDYQBLL5.js";
@@ -958,7 +958,7 @@ function SessionSidebar({
958
958
  isActive: currentItemId === item.id
959
959
  })).length
960
960
  ])), [currentItemId, filters, orderedItems, sessionsById]);
961
- return /* @__PURE__ */ jsxs7("aside", { className: cn("flex w-64 shrink-0 flex-col border-r border-[var(--border-subtle)] bg-[var(--depth-2)]", className), children: [
961
+ return /* @__PURE__ */ jsxs7("aside", { className: cn("flex w-64 shrink-0 flex-col border-r border-[var(--border-subtle)] bg-[var(--bg-card)]", className), children: [
962
962
  /* @__PURE__ */ jsxs7("div", { className: "border-b border-[var(--border-subtle)] px-3 py-3", children: [
963
963
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-between gap-2", children: [
964
964
  /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 min-w-0", children: [
@@ -1113,15 +1113,15 @@ import { Activity, AlertCircle as AlertCircle2, LoaderCircle, MessageSquareText
1113
1113
  import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
1114
1114
  function SessionStatusDot({ session }) {
1115
1115
  if (session.status === "error") {
1116
- return /* @__PURE__ */ jsx8(AlertCircle2, { className: "h-3.5 w-3.5 text-[var(--status-danger)]" });
1116
+ return /* @__PURE__ */ jsx8(AlertCircle2, { className: "h-3 w-3 text-[var(--surface-danger-text)]" });
1117
1117
  }
1118
1118
  if (session.status === "running") {
1119
- return /* @__PURE__ */ jsx8(LoaderCircle, { className: "h-3.5 w-3.5 animate-spin text-[var(--brand-cool)]" });
1119
+ return /* @__PURE__ */ jsx8(LoaderCircle, { className: "h-3 w-3 animate-spin text-[var(--brand-cool)]" });
1120
1120
  }
1121
1121
  if (session.status === "attention-needed") {
1122
- return /* @__PURE__ */ jsx8(Activity, { className: "h-3.5 w-3.5 text-[var(--status-warning)]" });
1122
+ return /* @__PURE__ */ jsx8(Activity, { className: "h-3 w-3 text-[var(--surface-warning-text)]" });
1123
1123
  }
1124
- return /* @__PURE__ */ jsx8("span", { className: "h-2 w-2 rounded-full bg-[var(--text-dim)]" });
1124
+ return /* @__PURE__ */ jsx8("span", { className: "h-1.5 w-1.5 rounded-full bg-[var(--text-dim)]" });
1125
1125
  }
1126
1126
  function navigateToSession(session) {
1127
1127
  if (!session.href || typeof window === "undefined") return;
@@ -1141,41 +1141,38 @@ function SessionActivityMonitor({
1141
1141
  const sessionLookup = Object.keys(sessionsById).length > 0 ? sessionsById : Object.fromEntries(trackedSessions.map((session) => [session.sessionId, session]));
1142
1142
  if (projectActivity.length === 0) {
1143
1143
  if (compact) return null;
1144
- return /* @__PURE__ */ jsx8("div", { className: cn("rounded-[var(--radius-lg)] border border-[var(--border-subtle)] bg-[linear-gradient(180deg,rgba(255,255,255,0.04),transparent)] p-3 text-sm text-[var(--text-muted)]", className), children: emptyMessage });
1144
+ return /* @__PURE__ */ jsx8("div", { className: cn("rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--depth-2)] px-3 py-2 text-xs text-[var(--text-muted)]", className), children: emptyMessage });
1145
1145
  }
1146
- return /* @__PURE__ */ jsxs8("div", { className: cn("space-y-3", className), children: [
1147
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between px-1", children: [
1148
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--text-muted)]", children: [
1149
- /* @__PURE__ */ jsx8(Activity, { className: "h-3.5 w-3.5" }),
1150
- "Active Sessions"
1146
+ return /* @__PURE__ */ jsxs8("div", { className: cn("space-y-1.5", className), children: [
1147
+ /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between px-0.5", children: [
1148
+ /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--text-muted)]", children: [
1149
+ /* @__PURE__ */ jsx8(Activity, { className: "h-3 w-3" }),
1150
+ "Active"
1151
1151
  ] }),
1152
- totalRunning > 0 && /* @__PURE__ */ jsxs8("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-2 py-0.5 text-[11px] font-medium text-[var(--accent-text)]", children: [
1153
- totalRunning,
1154
- " running"
1155
- ] })
1152
+ totalRunning > 0 && /* @__PURE__ */ jsx8("span", { className: "rounded-full border border-[var(--border-accent)] bg-[var(--accent-surface-soft)] px-1.5 py-px text-[10px] font-medium text-[var(--accent-text)]", children: totalRunning })
1156
1153
  ] }),
1157
- /* @__PURE__ */ jsx8("div", { className: "space-y-2", children: projectActivity.map((project) => {
1154
+ /* @__PURE__ */ jsx8("div", { className: "space-y-1", children: projectActivity.map((project) => {
1158
1155
  const label = resolveProjectLabel?.(project.projectId, project.projectLabel) ?? project.projectLabel ?? String(project.projectId);
1159
1156
  return /* @__PURE__ */ jsxs8(
1160
1157
  "div",
1161
1158
  {
1162
- className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-section)] p-3 shadow-[var(--shadow-card)]",
1159
+ className: "rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--depth-2)]",
1163
1160
  children: [
1164
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between gap-3", children: [
1165
- /* @__PURE__ */ jsxs8("div", { children: [
1166
- /* @__PURE__ */ jsx8("div", { className: "text-sm font-semibold text-[var(--text-primary)]", children: label }),
1167
- /* @__PURE__ */ jsxs8("div", { className: "text-xs text-[var(--text-muted)]", children: [
1161
+ /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-between gap-2 px-2.5 py-1.5", children: [
1162
+ /* @__PURE__ */ jsxs8("div", { className: "min-w-0", children: [
1163
+ /* @__PURE__ */ jsx8("div", { className: "truncate text-xs font-medium text-[var(--text-primary)]", children: label }),
1164
+ /* @__PURE__ */ jsxs8("div", { className: "text-[10px] text-[var(--text-muted)]", children: [
1168
1165
  project.activeSessionCount,
1169
- " tracked session",
1166
+ " session",
1170
1167
  project.activeSessionCount === 1 ? "" : "s"
1171
1168
  ] })
1172
1169
  ] }),
1173
- project.runningSessionIds.length > 0 && /* @__PURE__ */ jsxs8("span", { className: "rounded-full border border-[var(--border-subtle)] bg-[var(--bg-section)] px-2 py-0.5 text-[11px] text-[var(--text-secondary)]", children: [
1170
+ project.runningSessionIds.length > 0 && /* @__PURE__ */ jsxs8("span", { className: "shrink-0 text-[10px] text-[var(--text-muted)]", children: [
1174
1171
  project.runningSessionIds.length,
1175
1172
  " live"
1176
1173
  ] })
1177
1174
  ] }),
1178
- !compact && project.runningSessionIds.length > 0 && /* @__PURE__ */ jsx8("div", { className: "mt-3 space-y-2", children: project.runningSessionIds.map((sessionId) => {
1175
+ !compact && project.runningSessionIds.length > 0 && /* @__PURE__ */ jsx8("div", { className: "border-t border-[var(--border-subtle)] px-1.5 py-1", children: project.runningSessionIds.map((sessionId) => {
1179
1176
  const session = sessionLookup[sessionId];
1180
1177
  if (!session) return null;
1181
1178
  return /* @__PURE__ */ jsxs8(
@@ -1189,16 +1186,11 @@ function SessionActivityMonitor({
1189
1186
  }
1190
1187
  navigateToSession(session);
1191
1188
  },
1192
- className: "flex w-full items-center justify-between 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:bg-[var(--bg-elevated)]",
1189
+ className: "flex w-full items-center gap-2 rounded-[var(--radius-sm)] px-2 py-1 text-left transition-colors hover:bg-[var(--bg-hover)]",
1193
1190
  children: [
1194
- /* @__PURE__ */ jsxs8("div", { className: "flex min-w-0 items-center gap-2", children: [
1195
- /* @__PURE__ */ jsx8(SessionStatusDot, { session }),
1196
- /* @__PURE__ */ jsxs8("div", { className: "min-w-0", children: [
1197
- /* @__PURE__ */ jsx8("div", { className: "truncate text-sm font-medium text-[var(--text-primary)]", children: session.title ?? "Untitled Session" }),
1198
- /* @__PURE__ */ jsx8("div", { className: "truncate text-xs text-[var(--text-muted)]", children: session.href ?? session.sessionId })
1199
- ] })
1200
- ] }),
1201
- /* @__PURE__ */ jsx8(MessageSquareText2, { className: "h-4 w-4 shrink-0 text-[var(--text-dim)]" })
1191
+ /* @__PURE__ */ jsx8(SessionStatusDot, { session }),
1192
+ /* @__PURE__ */ jsx8("span", { className: "min-w-0 truncate text-xs text-[var(--text-primary)]", children: session.title ?? "Untitled" }),
1193
+ /* @__PURE__ */ jsx8(MessageSquareText2, { className: "ml-auto h-3 w-3 shrink-0 text-[var(--text-dim)]" })
1202
1194
  ]
1203
1195
  },
1204
1196
  sessionId
package/dist/dashboard.js CHANGED
@@ -30,7 +30,7 @@ import {
30
30
  SidebarRailNav,
31
31
  VariantList,
32
32
  useSidebar
33
- } from "./chunk-7DVFZEVW.js";
33
+ } from "./chunk-6V4XVKFY.js";
34
34
  import {
35
35
  BillingDashboard,
36
36
  PricingPage,
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  DocumentEditorPane
4
- } from "./chunk-FFOXUHOF.js";
4
+ } from "./chunk-FNYJFCGU.js";
5
5
  import "./chunk-Q56BYXQF.js";
6
6
  import "./chunk-W4LM3QYZ.js";
7
- import "./chunk-H5XYSFYE.js";
7
+ import "./chunk-3HW53XTH.js";
8
8
  import "./chunk-RQHJBTEU.js";
9
9
  export {
10
10
  DocumentEditorPane
package/dist/editor.js CHANGED
@@ -11,10 +11,10 @@ import {
11
11
  useEditorConnection,
12
12
  useEditorContext,
13
13
  useYjsState
14
- } from "./chunk-FFOXUHOF.js";
14
+ } from "./chunk-FNYJFCGU.js";
15
15
  import "./chunk-Q56BYXQF.js";
16
16
  import "./chunk-W4LM3QYZ.js";
17
- import "./chunk-H5XYSFYE.js";
17
+ import "./chunk-3HW53XTH.js";
18
18
  import "./chunk-RQHJBTEU.js";
19
19
  export {
20
20
  CollaboratorsList,
package/dist/files.js CHANGED
@@ -4,9 +4,9 @@ import {
4
4
  FileTabs,
5
5
  FileTree,
6
6
  filterFileTree
7
- } from "./chunk-WQH233GF.js";
7
+ } from "./chunk-KH5UDAJ2.js";
8
8
  import "./chunk-W4LM3QYZ.js";
9
- import "./chunk-H5XYSFYE.js";
9
+ import "./chunk-3HW53XTH.js";
10
10
  import "./chunk-RQHJBTEU.js";
11
11
  export {
12
12
  FileArtifactPane,
package/dist/hooks.js CHANGED
@@ -15,17 +15,17 @@ import {
15
15
  useSessionStream,
16
16
  useSidecarAuth,
17
17
  useToolCallStream
18
- } from "./chunk-5F4NX5R2.js";
19
- import "./chunk-XBR3IP7B.js";
18
+ } from "./chunk-MXRQ4MJE.js";
19
+ import "./chunk-33W2TLUL.js";
20
20
  import "./chunk-OEX7NZE3.js";
21
21
  import {
22
22
  useAutoScroll,
23
23
  useRunCollapseState,
24
24
  useRunGroups
25
25
  } from "./chunk-CNWVHQFY.js";
26
- import "./chunk-NTSRY4GW.js";
26
+ import "./chunk-MJUDMVRU.js";
27
27
  import "./chunk-BX6AQMUS.js";
28
- import "./chunk-H5XYSFYE.js";
28
+ import "./chunk-3HW53XTH.js";
29
29
  import "./chunk-RQHJBTEU.js";
30
30
 
31
31
  // src/hooks/use-session-crud.ts
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  useEditorConnection,
16
16
  useEditorContext,
17
17
  useYjsState
18
- } from "./chunk-FFOXUHOF.js";
18
+ } from "./chunk-FNYJFCGU.js";
19
19
  import {
20
20
  AuthHeader,
21
21
  GitHubLoginButton,
@@ -39,7 +39,7 @@ import {
39
39
  useSessionStream,
40
40
  useSidecarAuth,
41
41
  useToolCallStream
42
- } from "./chunk-5F4NX5R2.js";
42
+ } from "./chunk-MXRQ4MJE.js";
43
43
  import {
44
44
  DropZone,
45
45
  Label,
@@ -85,11 +85,11 @@ import {
85
85
  } from "./chunk-Q56BYXQF.js";
86
86
  import {
87
87
  ChatMessage
88
- } from "./chunk-5CEMHKBP.js";
88
+ } from "./chunk-GW4GRAWJ.js";
89
89
  import {
90
90
  ToolCallFeed,
91
91
  parseToolEvent
92
- } from "./chunk-XBR3IP7B.js";
92
+ } from "./chunk-33W2TLUL.js";
93
93
  import {
94
94
  AgentWorkbench,
95
95
  AuditResults,
@@ -102,7 +102,7 @@ import {
102
102
  StatusBar,
103
103
  TerminalPanel,
104
104
  WorkspaceLayout
105
- } from "./chunk-P24K22CV.js";
105
+ } from "./chunk-WSR2NB2H.js";
106
106
  import "./chunk-OEX7NZE3.js";
107
107
  import {
108
108
  EmptyState,
@@ -116,7 +116,7 @@ import {
116
116
  MessageList,
117
117
  ThinkingIndicator,
118
118
  UserMessage
119
- } from "./chunk-R3IU37AW.js";
119
+ } from "./chunk-5F3VOGCT.js";
120
120
  import {
121
121
  useAutoScroll,
122
122
  useRunCollapseState,
@@ -134,7 +134,7 @@ import {
134
134
  RunGroup,
135
135
  WebSearchPreview,
136
136
  WriteFilePreview
137
- } from "./chunk-WC7QTWPN.js";
137
+ } from "./chunk-LY32SP6X.js";
138
138
  import {
139
139
  formatDuration,
140
140
  truncateText
@@ -142,7 +142,7 @@ import {
142
142
  import {
143
143
  ToolCallGroup,
144
144
  ToolCallStep
145
- } from "./chunk-NTSRY4GW.js";
145
+ } from "./chunk-MJUDMVRU.js";
146
146
  import {
147
147
  TOOL_CATEGORY_ICONS,
148
148
  getToolCategory,
@@ -152,7 +152,7 @@ import {
152
152
  import {
153
153
  InlineCode,
154
154
  OpenUIArtifactRenderer
155
- } from "./chunk-VBWY44UU.js";
155
+ } from "./chunk-OVNLOE3Y.js";
156
156
  import {
157
157
  Table,
158
158
  TableBody,
@@ -169,7 +169,7 @@ import {
169
169
  FileTabs,
170
170
  FileTree,
171
171
  filterFileTree
172
- } from "./chunk-WQH233GF.js";
172
+ } from "./chunk-KH5UDAJ2.js";
173
173
  import {
174
174
  ArtifactPane
175
175
  } from "./chunk-W4LM3QYZ.js";
@@ -177,7 +177,7 @@ import {
177
177
  CodeBlock,
178
178
  CopyButton,
179
179
  Markdown
180
- } from "./chunk-H5XYSFYE.js";
180
+ } from "./chunk-3HW53XTH.js";
181
181
  import {
182
182
  BackendSelector,
183
183
  ClusterStatusBar,
@@ -210,7 +210,7 @@ import {
210
210
  SidebarRailNav,
211
211
  VariantList,
212
212
  useSidebar
213
- } from "./chunk-7DVFZEVW.js";
213
+ } from "./chunk-6V4XVKFY.js";
214
214
  import {
215
215
  BillingDashboard,
216
216
  PricingPage,
package/dist/markdown.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  CodeBlock,
3
3
  CopyButton,
4
4
  Markdown
5
- } from "./chunk-H5XYSFYE.js";
5
+ } from "./chunk-3HW53XTH.js";
6
6
  import "./chunk-RQHJBTEU.js";
7
7
  export {
8
8
  CodeBlock,
package/dist/openui.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  OpenUIArtifactRenderer
3
- } from "./chunk-VBWY44UU.js";
3
+ } from "./chunk-OVNLOE3Y.js";
4
4
  import "./chunk-JP725R4W.js";
5
- import "./chunk-H5XYSFYE.js";
5
+ import "./chunk-3HW53XTH.js";
6
6
  import "./chunk-TDYQBLL5.js";
7
7
  import "./chunk-TSE423UF.js";
8
8
  import "./chunk-RQHJBTEU.js";