@tangle-network/sandbox-ui 0.100.1 → 0.101.1

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.
package/dist/chat.d.ts CHANGED
@@ -145,6 +145,14 @@ interface ComposerFile {
145
145
  /** Shown on the chip when `status === "error"`. */
146
146
  errorMessage?: string;
147
147
  }
148
+ /** Context the agent will see alongside the next message. */
149
+ interface ComposerContextItem {
150
+ id: string;
151
+ label: string;
152
+ icon?: React.ReactNode;
153
+ /** Omit to render a non-removable chip. */
154
+ onRemove?: () => void;
155
+ }
148
156
  interface AgentComposerProps {
149
157
  /** Composer text (controlled). */
150
158
  value: string;
@@ -171,6 +179,8 @@ interface AgentComposerProps {
171
179
  controls: React.ReactNode;
172
180
  /** Extra content left of the send button (token meter, cost, status). */
173
181
  trailing?: React.ReactNode;
182
+ /** Context the agent will see alongside the next message. */
183
+ contextItems?: ReadonlyArray<ComposerContextItem>;
174
184
  /**
175
185
  * Attachments are opt-in: pass `onAttach` to show the attach button, accept
176
186
  * drag-and-drop onto the composer, and render `attachments` as chips.
@@ -246,7 +256,7 @@ interface AgentComposerProps {
246
256
  * generic clipboard image blobs `pasted-image-<n>.<ext>`), a streaming Stop
247
257
  * button (`busy` + `onCancel`), and a Cmd/Ctrl+L focus shortcut.
248
258
  */
249
- declare function AgentComposer({ value, onChange, onSubmit, placeholder, disabled, busy, onCancel, controls, trailing, onAttach, onAttachFolder, attachments, onRemoveFile, onRetryFile, accept, onRejectFiles, dropTitle, dropDescription, canSubmitWhileBusy, canSubmitAttachmentsOnly, mention, focusShortcut, minRows, maxHeight, className, sendLabel, autoFocus, }: AgentComposerProps): React.JSX.Element;
259
+ declare function AgentComposer({ value, onChange, onSubmit, placeholder, disabled, busy, onCancel, controls, trailing, contextItems, onAttach, onAttachFolder, attachments, onRemoveFile, onRetryFile, accept, onRejectFiles, dropTitle, dropDescription, canSubmitWhileBusy, canSubmitAttachmentsOnly, mention, focusShortcut, minRows, maxHeight, className, sendLabel, autoFocus, }: AgentComposerProps): React.JSX.Element;
250
260
 
251
261
  /**
252
262
  * Visual contract for a rendered mention pill. The TipTap editor extension in
@@ -429,4 +439,4 @@ declare function createFetchTransport(opts: {
429
439
  fetchImpl?: typeof fetch;
430
440
  }): ArtifactAgentDockTransport;
431
441
 
432
- export { AgentComposer, type AgentComposerMention, type AgentComposerProps, type AgentProfileCapability, type AgentProfileDraft, type AgentProfileOption, AgentProfilePicker, type AgentProfilePickerProps, ArtifactAgentDock, type ArtifactAgentDockProps, type ArtifactAgentDockTransport, type ArtifactDockMessage, type ArtifactDockStreamEvent, type ArtifactKind, type ArtifactScope, type ComposerFile, type ComposerFileRejection, type ComposerFileValidationConfig, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MENTION_PILL_CLASS, type MentionItem, type ReasoningLevel, type ReasoningLevelOption, ReasoningLevelPicker, type ReasoningLevelPickerProps, createFetchTransport, isAcceptedType, validateComposerFiles };
442
+ export { AgentComposer, type AgentComposerMention, type AgentComposerProps, type AgentProfileCapability, type AgentProfileDraft, type AgentProfileOption, AgentProfilePicker, type AgentProfilePickerProps, ArtifactAgentDock, type ArtifactAgentDockProps, type ArtifactAgentDockTransport, type ArtifactDockMessage, type ArtifactDockStreamEvent, type ArtifactKind, type ArtifactScope, type ComposerContextItem, type ComposerFile, type ComposerFileRejection, type ComposerFileValidationConfig, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MENTION_PILL_CLASS, type MentionItem, type ReasoningLevel, type ReasoningLevelOption, ReasoningLevelPicker, type ReasoningLevelPickerProps, createFetchTransport, isAcceptedType, validateComposerFiles };
package/dist/chat.js CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  modelProvider,
17
17
  snapHarnessToModel,
18
18
  validateComposerFiles
19
- } from "./chunk-IWTLWBPZ.js";
19
+ } from "./chunk-XIXYQNXD.js";
20
20
  import "./chunk-TK46XFLM.js";
21
21
  import {
22
22
  MENTION_PILL_CLASS
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Button,
3
3
  Logo
4
- } from "./chunk-4ZZUMXPX.js";
4
+ } from "./chunk-FG6H4554.js";
5
5
  import {
6
6
  moonshot_default
7
7
  } from "./chunk-RQZRXKMR.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  RichFileTree
3
- } from "./chunk-3J6FG3FJ.js";
3
+ } from "./chunk-PZVUIUUW.js";
4
4
  import {
5
5
  PortsList
6
- } from "./chunk-3W343PY5.js";
6
+ } from "./chunk-5BAZTDVH.js";
7
7
  import {
8
8
  TerminalView
9
9
  } from "./chunk-WYMAC3T3.js";
@@ -4,7 +4,9 @@ import {
4
4
  InlineThinkingItem,
5
5
  InlineToolItem,
6
6
  LiveDuration,
7
- RunGroup
7
+ RunGroup,
8
+ ToolCallFeed,
9
+ parseToolEvent
8
10
  } from "@tangle-network/ui/run";
9
11
 
10
12
  export {
@@ -12,5 +14,7 @@ export {
12
14
  InlineThinkingItem,
13
15
  InlineToolItem,
14
16
  LiveDuration,
15
- RunGroup
17
+ RunGroup,
18
+ ToolCallFeed,
19
+ parseToolEvent
16
20
  };
@@ -4,6 +4,7 @@ import {
4
4
 
5
5
  // src/primitives/index.ts
6
6
  import {
7
+ ArtifactPane,
7
8
  Avatar,
8
9
  AvatarFallback,
9
10
  AvatarImage,
@@ -244,6 +245,7 @@ export {
244
245
  PageHeader,
245
246
  SectionTitle,
246
247
  PageShell,
248
+ ArtifactPane,
247
249
  Avatar,
248
250
  AvatarFallback,
249
251
  AvatarImage,
@@ -5,7 +5,12 @@ import {
5
5
  FileTabs,
6
6
  FileTree,
7
7
  RichFileTree,
8
- filterFileTree
8
+ detectFileFormat,
9
+ fileExtension,
10
+ filterFileTree,
11
+ getCodeLanguage,
12
+ getFormatLabel,
13
+ getSyntaxLanguage
9
14
  } from "@tangle-network/ui/files";
10
15
 
11
16
  export {
@@ -14,5 +19,10 @@ export {
14
19
  FileTabs,
15
20
  FileTree,
16
21
  RichFileTree,
17
- filterFileTree
22
+ detectFileFormat,
23
+ fileExtension,
24
+ filterFileTree,
25
+ getCodeLanguage,
26
+ getFormatLabel,
27
+ getSyntaxLanguage
18
28
  };
@@ -240,6 +240,7 @@ function AgentComposer({
240
240
  onCancel,
241
241
  controls,
242
242
  trailing,
243
+ contextItems = [],
243
244
  onAttach,
244
245
  onAttachFolder,
245
246
  attachments = [],
@@ -388,6 +389,34 @@ function AgentComposer({
388
389
  disabled && "opacity-60"
389
390
  ),
390
391
  children: [
392
+ contextItems.length > 0 && /* @__PURE__ */ jsx2(
393
+ "div",
394
+ {
395
+ "aria-label": "Message context",
396
+ className: "flex min-w-0 flex-wrap gap-1.5",
397
+ children: contextItems.map((item) => /* @__PURE__ */ jsxs2(
398
+ "span",
399
+ {
400
+ className: "inline-flex min-w-0 max-w-full items-center gap-1.5 rounded-md border border-primary/30 bg-primary/10 px-2.5 py-1 text-primary text-xs",
401
+ children: [
402
+ item.icon && /* @__PURE__ */ jsx2("span", { className: "shrink-0", "aria-hidden": "true", children: item.icon }),
403
+ /* @__PURE__ */ jsx2("span", { className: "min-w-0 truncate", children: item.label }),
404
+ item.onRemove && /* @__PURE__ */ jsx2(
405
+ "button",
406
+ {
407
+ type: "button",
408
+ "aria-label": `Remove context ${item.label}`,
409
+ onClick: item.onRemove,
410
+ className: "shrink-0 rounded p-0.5 text-primary/70 transition-colors hover:text-primary focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
411
+ children: /* @__PURE__ */ jsx2(X, { className: "size-3" })
412
+ }
413
+ )
414
+ ]
415
+ },
416
+ item.id
417
+ ))
418
+ }
419
+ ),
391
420
  attachments.length > 0 && /* @__PURE__ */ jsx2("div", { className: "flex flex-wrap gap-1.5", children: [...folderChips, ...fileChips].map((file) => {
392
421
  const isError = file.status === "error";
393
422
  const isPending = file.status === "pending";
package/dist/dashboard.js CHANGED
@@ -60,7 +60,7 @@ import {
60
60
  chatCapableHarnesses,
61
61
  parseInsufficientBalance,
62
62
  useSidebar
63
- } from "./chunk-3W343PY5.js";
63
+ } from "./chunk-5BAZTDVH.js";
64
64
  import {
65
65
  BillingDashboard,
66
66
  InfoPanel,
@@ -69,7 +69,7 @@ import {
69
69
  UsageChart,
70
70
  formatPrice
71
71
  } from "./chunk-OMUIPJQZ.js";
72
- import "./chunk-4ZZUMXPX.js";
72
+ import "./chunk-FG6H4554.js";
73
73
  import {
74
74
  ModelBrandStack,
75
75
  canonicalModelId,
package/dist/files.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { FileArtifactPane, FileArtifactPaneProps, FileNode, FilePreview, FilePreviewProps, FileTabData, FileTabs, FileTabsProps, FileTree, FileTreeProps, FileTreeVisibilityOptions, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, filterFileTree } from '@tangle-network/ui/files';
1
+ export { FileArtifactPane, FileArtifactPaneProps, FileFormat, FileNode, FilePreview, FilePreviewProps, FileTabData, FileTabs, FileTabsProps, FileTree, FileTreeProps, FileTreeVisibilityOptions, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, detectFileFormat, fileExtension, filterFileTree, getCodeLanguage, getFormatLabel, getSyntaxLanguage } from '@tangle-network/ui/files';
2
2
  import '@tangle-network/ui/openui';
3
3
  import '@tangle-network/ui/run';
4
4
  import '@tangle-network/ui/utils';
package/dist/files.js CHANGED
@@ -4,8 +4,13 @@ import {
4
4
  FileTabs,
5
5
  FileTree,
6
6
  RichFileTree,
7
- filterFileTree
8
- } from "./chunk-3J6FG3FJ.js";
7
+ detectFileFormat,
8
+ fileExtension,
9
+ filterFileTree,
10
+ getCodeLanguage,
11
+ getFormatLabel,
12
+ getSyntaxLanguage
13
+ } from "./chunk-PZVUIUUW.js";
9
14
  import "./chunk-CZ7CSFO4.js";
10
15
  export {
11
16
  FileArtifactPane,
@@ -13,5 +18,10 @@ export {
13
18
  FileTabs,
14
19
  FileTree,
15
20
  RichFileTree,
16
- filterFileTree
21
+ detectFileFormat,
22
+ fileExtension,
23
+ filterFileTree,
24
+ getCodeLanguage,
25
+ getFormatLabel,
26
+ getSyntaxLanguage
17
27
  };
package/dist/globals.css CHANGED
@@ -4965,6 +4965,8 @@
4965
4965
  --shadow-dropdown: 0 8px 30px rgba(0, 0, 0, 0.45);
4966
4966
  --shadow-glow: none;
4967
4967
  --shadow-accent: 0 1px 2px rgba(0, 0, 0, 0.3);
4968
+ --shadow-overlay: 0 2px 6px hsl(var(--hsl-foreground) / 0.1),
4969
+ 0 16px 40px hsl(var(--hsl-foreground) / 0.16);
4968
4970
  --shadow-status-running: none;
4969
4971
  --shadow-status-creating: none;
4970
4972
  --shadow-status-error: none;
package/dist/index.d.ts CHANGED
@@ -5,11 +5,11 @@ export { AgentWorkbench, ApprovalConfidenceStat, ApprovalItem, ApprovalQueue, Ap
5
5
  export { ArtifactView, BRAND_PRISM_THEME, CodeSurface, CodeSurfaceProps, CodeView, CodeViewProps, DiffStats, DiffView, DiffViewProps, FileBreadcrumb, FileBreadcrumbProps, GitStatusBadge, PanelHeader, PanelHeaderProps, PillTabItem, PillTabs, PillTabsProps, PreviewView, PreviewViewProps, SandboxArtifact, SandboxArtifactPane, SandboxArtifactPaneProps, SandboxArtifactTerminal, buildUnifiedPatch, computeDiffStats, resolveLanguage } from './workbench.js';
6
6
  export { OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode } from '@tangle-network/ui/openui';
7
7
  export { AgentTimeline, AgentTimelineArtifactItem, AgentTimelineCustomItem, AgentTimelineItem, AgentTimelineMessageItem, AgentTimelineProps, AgentTimelineStatusItem, AgentTimelineTone, AgentTimelineToolGroupItem, AgentTimelineToolItem, ChatContainer, ChatContainerProps, ChatMessage, ChatMessageProps, MessageList, MessageListProps, MessageRole, ThinkingIndicator, ThinkingIndicatorProps, UserMessage, UserMessageProps } from '@tangle-network/ui/chat';
8
- export { AgentComposer, AgentComposerMention, AgentComposerProps, AgentProfileCapability, AgentProfileDraft, AgentProfileOption, AgentProfilePicker, AgentProfilePickerProps, ArtifactAgentDock, ArtifactAgentDockProps, ArtifactAgentDockTransport, ArtifactDockMessage, ArtifactDockStreamEvent, ArtifactKind, ArtifactScope, ComposerFile, ComposerFileRejection, ComposerFileValidationConfig, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MENTION_PILL_CLASS, MentionItem, ReasoningLevel, ReasoningLevelOption, ReasoningLevelPicker, ReasoningLevelPickerProps, createFetchTransport, isAcceptedType, validateComposerFiles } from './chat.js';
8
+ export { AgentComposer, AgentComposerMention, AgentComposerProps, AgentProfileCapability, AgentProfileDraft, AgentProfileOption, AgentProfilePicker, AgentProfilePickerProps, ArtifactAgentDock, ArtifactAgentDockProps, ArtifactAgentDockTransport, ArtifactDockMessage, ArtifactDockStreamEvent, ArtifactKind, ArtifactScope, ComposerContextItem, ComposerFile, ComposerFileRejection, ComposerFileValidationConfig, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MENTION_PILL_CLASS, MentionItem, ReasoningLevel, ReasoningLevelOption, ReasoningLevelPicker, ReasoningLevelPickerProps, createFetchTransport, isAcceptedType, validateComposerFiles } from './chat.js';
9
9
  export { HarnessType, modelProvider, snapHarnessToModel } from '@tangle-network/agent-interface';
10
- export { ExpandedToolDetail, ExpandedToolDetailProps, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps } from '@tangle-network/ui/run';
11
- export { CommandPreview, DiffPreview, GlobResultsPreview, GrepResultsPreview, QuestionPreview, WebSearchPreview, WriteFilePreview } from '@tangle-network/ui/tool-previews';
12
- export { FileArtifactPane, FileArtifactPaneProps, FileNode, FilePreview, FilePreviewProps, FileTabData, FileTabs, FileTabsProps, FileTree, FileTreeProps, FileTreeVisibilityOptions, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, filterFileTree } from '@tangle-network/ui/files';
10
+ export { ExpandedToolDetail, ExpandedToolDetailProps, FeedSegment, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps, ToolCallData, ToolCallFeed, ToolCallFeedProps, ToolCallStatus, ToolCallType, parseToolEvent } from '@tangle-network/ui/run';
11
+ export { CommandPreview, CommandPreviewProps, DiffPreview, DiffPreviewProps, GlobResultsPreview, GlobResultsPreviewProps, GrepResultsPreview, GrepResultsPreviewProps, QuestionPreview, QuestionPreviewProps, WebSearchPreview, WebSearchPreviewProps, WriteFilePreview, WriteFilePreviewProps } from '@tangle-network/ui/tool-previews';
12
+ export { FileArtifactPane, FileArtifactPaneProps, FileFormat, FileNode, FilePreview, FilePreviewProps, FileTabData, FileTabs, FileTabsProps, FileTree, FileTreeProps, FileTreeVisibilityOptions, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, detectFileFormat, fileExtension, filterFileTree, getCodeLanguage, getFormatLabel, getSyntaxLanguage } from '@tangle-network/ui/files';
13
13
  export { ActivityFeed, ActivityFeedProps, ActivityItem, AppearanceController, Backend, BackendConfig, BackendConfigProps, BackendSelector, BackendSelectorProps, BackendStatusData, ClusterStatusBar, ClusterStatusBarProps, ClusterStatusItem, CreditBalance, CreditBalanceProps, DashboardLayout, DashboardLayoutProps, DashboardProfile, DashboardSnapshotInfo, DashboardUser, GitCommitData, GitPanel, GitPanelProps, GitStatusData, HARNESS_BRAND, HARNESS_OPTIONS, HarnessBrand, HarnessLogo, HarnessLogoProps, HarnessPicker, HarnessPickerProps, INSUFFICIENT_BALANCE_CODE, InfoPanel, InfoPanelProps, InsufficientBalance, Invoice, InvoiceTable, InvoiceTableProps, McpServer, MetricAreaChart, MetricAreaChartProps, MetricChartPoint, MetricChartTone, NavItem, NetworkConfig, NetworkConfigData, NetworkConfigProps, NewSandboxCard, NewSandboxCardProps, OutOfCreditsModal, OutOfCreditsModalProps, PlanCardData, PlanCards, PlanCardsProps, PlanFeature, ProcessInfo, ProcessList, ProcessListProps, ProductVariant, ProfileAvatar, ProfileAvatarProps, ProfileComparison, ProfileComparisonProps, ProfileSelector, ProfileSelectorProps, PromoBanner, PromoBannerProps, RailButton, RailButtonProps, RailCollapseToggle, RailCollapseToggleProps, RailExpandable, RailExpandableProps, RailExpandableSubItem, RailFlyout, RailFlyoutProps, RailHeader, RailHeaderProps, RailModeButton, RailModeButtonProps, RailSeparator, RailSeparatorProps, RailThemeToggle, RailTooltip, RailTooltipProps, ResourceMeter, ResourceMeterProps, ResourceSnapshot, ResourceSnapshotItem, ResourceSnapshotProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, SandboxCardData, SandboxCardProps, SandboxStatus, SandboxTable, SandboxTableProps, Sidebar, SidebarContent, SidebarContentProps, SidebarLayout, SidebarLayoutFlyoutItem, SidebarLayoutNavItem, SidebarLayoutProps, SidebarPanel, SidebarPanelContent, SidebarPanelContentProps, SidebarPanelHeader, SidebarPanelHeaderProps, SidebarPanelProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailFooter, SidebarRailFooterProps, SidebarRailHeader, SidebarRailHeaderProps, SidebarRailNav, SidebarRailNavProps, SidebarRailProps, SidebarUser, SnapshotList, SnapshotListProps, SystemLogsViewer, SystemLogsViewerProps, TeamRole, ThemeMode, UsageSummary, UsageSummaryData, UsageSummaryProps, Variant, VariantList, VariantListProps, VariantOutcome, VariantStatus, canAdminSandbox, chatCapableHarnesses, parseInsufficientBalance, useSidebar } from './dashboard.js';
14
14
  export { M as ModelBrandIdentity, a as ModelBrandStack, b as ModelInfo, c as canonicalModelId, m as modelBrandFor } from './model-brand-BNnaUKKZ.js';
15
15
  export { B as BillingBalance, a as BillingDashboard, b as BillingDashboardProps, c as BillingSubscription, d as BillingUsage, P as PricingPage, e as PricingPageProps, f as PricingTier, T as TemplateCard, g as TemplateCardData, h as TemplateCardProps, U as UsageChart, i as UsageChartProps, j as UsageDataPoint, k as formatPrice } from './template-card-Bn-Bw5xC.js';
package/dist/index.js CHANGED
@@ -88,7 +88,7 @@ import {
88
88
  modelProvider,
89
89
  snapHarnessToModel,
90
90
  validateComposerFiles
91
- } from "./chunk-IWTLWBPZ.js";
91
+ } from "./chunk-XIXYQNXD.js";
92
92
  import {
93
93
  TOOL_CATEGORY_ICONS,
94
94
  cn,
@@ -110,8 +110,10 @@ import {
110
110
  InlineThinkingItem,
111
111
  InlineToolItem,
112
112
  LiveDuration,
113
- RunGroup
114
- } from "./chunk-JBGKGLD7.js";
113
+ RunGroup,
114
+ ToolCallFeed,
115
+ parseToolEvent
116
+ } from "./chunk-A5QIQYS6.js";
115
117
  import {
116
118
  AgentWorkbench,
117
119
  ApprovalQueue,
@@ -149,15 +151,20 @@ import {
149
151
  buildUnifiedPatch,
150
152
  computeDiffStats,
151
153
  resolveLanguage
152
- } from "./chunk-WCUIUBG5.js";
154
+ } from "./chunk-5JXSQZZH.js";
153
155
  import {
154
156
  FileArtifactPane,
155
157
  FilePreview,
156
158
  FileTabs,
157
159
  FileTree,
158
160
  RichFileTree,
159
- filterFileTree
160
- } from "./chunk-3J6FG3FJ.js";
161
+ detectFileFormat,
162
+ fileExtension,
163
+ filterFileTree,
164
+ getCodeLanguage,
165
+ getFormatLabel,
166
+ getSyntaxLanguage
167
+ } from "./chunk-PZVUIUUW.js";
161
168
  import {
162
169
  ActivityFeed,
163
170
  BackendConfig,
@@ -220,7 +227,7 @@ import {
220
227
  chatCapableHarnesses,
221
228
  parseInsufficientBalance,
222
229
  useSidebar
223
- } from "./chunk-3W343PY5.js";
230
+ } from "./chunk-5BAZTDVH.js";
224
231
  import {
225
232
  BillingDashboard,
226
233
  InfoPanel,
@@ -319,7 +326,7 @@ import {
319
326
  buttonVariants,
320
327
  useTheme,
321
328
  useToast
322
- } from "./chunk-4ZZUMXPX.js";
329
+ } from "./chunk-FG6H4554.js";
323
330
  import {
324
331
  ModelBrandStack,
325
332
  canonicalModelId,
@@ -554,6 +561,7 @@ export {
554
561
  ThinkingIndicator,
555
562
  ToastContainer,
556
563
  ToastProvider,
564
+ ToolCallFeed,
557
565
  UploadProgress,
558
566
  UsageChart,
559
567
  UsageSummary,
@@ -582,8 +590,10 @@ export {
582
590
  createAuthFetcher,
583
591
  createFetchTransport,
584
592
  createShellShouldRevalidate,
593
+ detectFileFormat,
585
594
  disconnectSession,
586
595
  dispatchSessionCreated,
596
+ fileExtension,
587
597
  filterFileTree,
588
598
  formatBytes,
589
599
  formatDuration,
@@ -592,9 +602,12 @@ export {
592
602
  getActiveSession,
593
603
  getAllActiveSessions,
594
604
  getAllProjectActivity,
605
+ getCodeLanguage,
606
+ getFormatLabel,
595
607
  getSessionsByActivity,
596
608
  getSessionsForNavbar,
597
609
  getSessionsForProject,
610
+ getSyntaxLanguage,
598
611
  getToolCategory,
599
612
  getToolDisplayMetadata,
600
613
  getToolErrorText,
@@ -606,6 +619,7 @@ export {
606
619
  modelBrandFor,
607
620
  modelProvider,
608
621
  parseInsufficientBalance,
622
+ parseToolEvent,
609
623
  partMapAtom,
610
624
  registerActiveSession,
611
625
  resetActiveSessions,
package/dist/pages.js CHANGED
@@ -23,7 +23,7 @@ import {
23
23
  SelectValue,
24
24
  Switch,
25
25
  Textarea
26
- } from "./chunk-4ZZUMXPX.js";
26
+ } from "./chunk-FG6H4554.js";
27
27
  import "./chunk-RQZRXKMR.js";
28
28
  import {
29
29
  cn
@@ -1,4 +1,4 @@
1
- export { Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast } from '@tangle-network/ui/primitives';
1
+ export { ArtifactPane, ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, Badge, BadgeProps, Button, ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CodeBlock, CodeBlockProps, CopyButton, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateProps, InlineCode, InlineCodeProps, Input, InputProps, Label, Progress, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SidebarDropZone, SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, StatCard, StatCardProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, Textarea, TextareaProps, ThemeToggle, Toast, ToastContainer, ToastProvider, UploadFile, UploadProgress, UploadProgressProps, badgeVariants, buttonVariants, useTheme, useToast } from '@tangle-network/ui/primitives';
2
2
  export { L as Logo, a as LogoProps, T as TangleKnot } from './logo-CaIvk3J1.js';
3
3
  import * as React from 'react';
4
4
  import { HTMLAttributes, ElementType, ReactNode } from 'react';
@@ -1,4 +1,5 @@
1
1
  import {
2
+ ArtifactPane,
2
3
  Avatar,
3
4
  AvatarFallback,
4
5
  AvatarImage,
@@ -91,10 +92,11 @@ import {
91
92
  buttonVariants,
92
93
  useTheme,
93
94
  useToast
94
- } from "./chunk-4ZZUMXPX.js";
95
+ } from "./chunk-FG6H4554.js";
95
96
  import "./chunk-EI44GEQ5.js";
96
97
  import "./chunk-CZ7CSFO4.js";
97
98
  export {
99
+ ArtifactPane,
98
100
  Avatar,
99
101
  AvatarFallback,
100
102
  AvatarImage,
package/dist/run.d.ts CHANGED
@@ -1 +1 @@
1
- export { ExpandedToolDetail, ExpandedToolDetailProps, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps } from '@tangle-network/ui/run';
1
+ export { ExpandedToolDetail, ExpandedToolDetailProps, FeedSegment, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps, ToolCallData, ToolCallFeed, ToolCallFeedProps, ToolCallStatus, ToolCallType, parseToolEvent } from '@tangle-network/ui/run';
package/dist/run.js CHANGED
@@ -3,13 +3,17 @@ import {
3
3
  InlineThinkingItem,
4
4
  InlineToolItem,
5
5
  LiveDuration,
6
- RunGroup
7
- } from "./chunk-JBGKGLD7.js";
6
+ RunGroup,
7
+ ToolCallFeed,
8
+ parseToolEvent
9
+ } from "./chunk-A5QIQYS6.js";
8
10
  import "./chunk-CZ7CSFO4.js";
9
11
  export {
10
12
  ExpandedToolDetail,
11
13
  InlineThinkingItem,
12
14
  InlineToolItem,
13
15
  LiveDuration,
14
- RunGroup
16
+ RunGroup,
17
+ ToolCallFeed,
18
+ parseToolEvent
15
19
  };
package/dist/styles.css CHANGED
@@ -4965,6 +4965,8 @@
4965
4965
  --shadow-dropdown: 0 8px 30px rgba(0, 0, 0, 0.45);
4966
4966
  --shadow-glow: none;
4967
4967
  --shadow-accent: 0 1px 2px rgba(0, 0, 0, 0.3);
4968
+ --shadow-overlay: 0 2px 6px hsl(var(--hsl-foreground) / 0.1),
4969
+ 0 16px 40px hsl(var(--hsl-foreground) / 0.16);
4968
4970
  --shadow-status-running: none;
4969
4971
  --shadow-status-creating: none;
4970
4972
  --shadow-status-error: none;
package/dist/tokens.css CHANGED
@@ -319,6 +319,18 @@
319
319
  --shadow-dropdown: 0 8px 30px rgba(0, 0, 0, 0.45);
320
320
  --shadow-glow: none;
321
321
  --shadow-accent: 0 1px 2px rgba(0, 0, 0, 0.3);
322
+ /* The lift above --shadow-dropdown, for a surface that covers the page
323
+ rather than sitting beside it: a drawer, a modal, a floating dock.
324
+ Two layers — a tight contact shadow plus a wide ambient one.
325
+ Alone among the shadows this is derived from --hsl-foreground instead of
326
+ a fixed rgba, so it INVERTS with the theme. That is what makes it work in
327
+ dark: a black shadow on a dark canvas renders as nothing (see the ladder
328
+ note at the top of this file), while the foreground is near-white there,
329
+ so the same declaration reads as a soft halo. One definition therefore
330
+ serves both themes and the light block does not restate it. */
331
+ --shadow-overlay:
332
+ 0 2px 6px hsl(var(--hsl-foreground) / 0.1),
333
+ 0 16px 40px hsl(var(--hsl-foreground) / 0.16);
322
334
  --shadow-status-running: none;
323
335
  --shadow-status-creating: none;
324
336
  --shadow-status-error: none;
package/dist/workbench.js CHANGED
@@ -12,13 +12,13 @@ import {
12
12
  buildUnifiedPatch,
13
13
  computeDiffStats,
14
14
  resolveLanguage
15
- } from "./chunk-WCUIUBG5.js";
16
- import "./chunk-3J6FG3FJ.js";
17
- import "./chunk-3W343PY5.js";
15
+ } from "./chunk-5JXSQZZH.js";
16
+ import "./chunk-PZVUIUUW.js";
17
+ import "./chunk-5BAZTDVH.js";
18
18
  import "./chunk-OMUIPJQZ.js";
19
19
  import "./chunk-WYMAC3T3.js";
20
20
  import "./chunk-KEYPUGS3.js";
21
- import "./chunk-4ZZUMXPX.js";
21
+ import "./chunk-FG6H4554.js";
22
22
  import "./chunk-RQZRXKMR.js";
23
23
  import "./chunk-BGVEHENC.js";
24
24
  import "./chunk-EI44GEQ5.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox-ui",
3
- "version": "0.100.1",
3
+ "version": "0.101.1",
4
4
  "description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -119,7 +119,7 @@
119
119
  "@hocuspocus/provider": ">=2.15.0 <5.0.0",
120
120
  "@nanostores/react": ">=0.8.4 <2.0.0",
121
121
  "@tangle-network/agent-interface": ">=0.36.0 <0.48.0",
122
- "@tangle-network/brand": "^1.4.0",
122
+ "@tangle-network/brand": "^1.5.0",
123
123
  "@tangle-network/ui": "^11.0.0",
124
124
  "@tanstack/react-query": "^5.0.0",
125
125
  "@tiptap/extension-collaboration": ">=3.20.4 <4.0.0",
@@ -191,7 +191,7 @@
191
191
  "@storybook/react-vite": "^10.5.4",
192
192
  "@tailwindcss/postcss": "^4.3.3",
193
193
  "@tangle-network/agent-interface": "0.47.0",
194
- "@tangle-network/brand": "^1.4.0",
194
+ "@tangle-network/brand": "^1.5.0",
195
195
  "@tangle-network/ui": "^11.2.0",
196
196
  "@tanstack/react-query": "^5.101.4",
197
197
  "@testing-library/dom": "^10.4.1",