@tangle-network/sandbox-ui 0.119.0 → 0.120.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.
package/README.md CHANGED
@@ -232,6 +232,36 @@ function App() {
232
232
  }
233
233
  ```
234
234
 
235
+ ### Compact workspace files
236
+
237
+ New agent products compose their application shell with `AgentWorkspaceCompanion` from `@tangle-network/agent-app/workspace-react`.
238
+ Use `WorkspaceFilesPane` for its Files content and `WorkspaceArtifactView` for technical artifact rendering.
239
+ Both are exported from `@tangle-network/sandbox-ui/workspace`.
240
+
241
+ ```tsx
242
+ <WorkspaceFilesPane
243
+ paths={workspacePaths}
244
+ selectedPath={selectedPath}
245
+ onSelect={openFile}
246
+ onBack={closePreview}
247
+ preview={selectedArtifact ? {
248
+ path: selectedArtifact.path,
249
+ content: <WorkspaceArtifactView artifact={selectedArtifact} />,
250
+ actions: <DownloadFile artifact={selectedArtifact} />,
251
+ } : undefined}
252
+ />
253
+ ```
254
+
255
+ Pass either a recursive `root: FileNode` or canonical `paths`, including trailing slashes for empty folders.
256
+ A root input returns its original node as the second `onSelect` argument; flat paths have no node metadata.
257
+ The pane uses the shared searchable file tree and retains it while a preview is open.
258
+ Returning to files preserves expansion, selection, and scroll.
259
+ Native search ends when a result is selected.
260
+ Adapters own loading, permissions, errors, file reads, and actions; `emptyState` customizes an empty workspace.
261
+ The preview header exposes Back to files, the selected path, and supplied actions without a second title frame.
262
+
263
+ ### Existing sandbox workbench
264
+
235
265
  Compose sandbox applications around `SandboxWorkbench` when you want the library’s default operating model:
236
266
 
237
267
  ```tsx
@@ -437,7 +467,7 @@ Retheming is absolutely supported, but the documentation was thinner than it sho
437
467
  | `/primitives` | Button, Card, Dialog, Badge, Input, Select, Table, Tabs, Toast, etc. |
438
468
  | `/chat` | ChatContainer, ChatInput, ChatMessage, AgentTimeline, ThinkingIndicator |
439
469
  | `/run` | ToolCallFeed, RunGroup, InlineToolItem, ExpandedToolDetail |
440
- | `/workspace` | SandboxWorkbench, WorkspaceLayout, DirectoryPane, RuntimePane, StatusBar |
470
+ | `/workspace` | WorkspaceFilesPane, WorkspaceArtifactView, SandboxWorkbench, WorkspaceLayout, DirectoryPane, RuntimePane, StatusBar |
441
471
  | `/workbench` | DiffView, ChangesPane, CodeView, artifact and preview components |
442
472
  | `/openui` | OpenUIArtifactRenderer and schema types for structured artifact rendering |
443
473
  | `/files` | FileTree, FilePreview, FileTabs, FileArtifactPane |
package/dist/files.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { C as getCodeLanguage, D as resolveFilePreviewKind, E as parseCsv, S as filterFileTree, T as getSyntaxLanguage, _ as RichFileTreeGitStatus, a as FileNode, b as detectFileFormat, c as FilePreviewProps, d as FileTabsProps, f as FileTree, g as RichFileTreeGitEntry, h as RichFileTree, i as FileFormat, l as FileTabData, m as FileTreeVisibilityOptions, n as FileArtifactPane, o as FilePreview, p as FileTreeProps, r as FileArtifactPaneProps, s as FilePreviewKind, t as CSV_PREVIEW_ROW_LIMIT, u as FileTabs, v as RichFileTreeProps, w as getFormatLabel, x as fileExtension, y as RichFileTreeThemeVars } from "./index-CXX5IpH2.js";
1
+ import { C as getCodeLanguage, D as resolveFilePreviewKind, E as parseCsv, S as filterFileTree, T as getSyntaxLanguage, _ as RichFileTreeGitStatus, a as FileNode, b as detectFileFormat, c as FilePreviewProps, d as FileTabsProps, f as FileTree, g as RichFileTreeGitEntry, h as RichFileTree, i as FileFormat, l as FileTabData, m as FileTreeVisibilityOptions, n as FileArtifactPane, o as FilePreview, p as FileTreeProps, r as FileArtifactPaneProps, s as FilePreviewKind, t as CSV_PREVIEW_ROW_LIMIT, u as FileTabs, v as RichFileTreeProps, w as getFormatLabel, x as fileExtension, y as RichFileTreeThemeVars } from "./index-B6wKsKV6.js";
2
2
  export { CSV_PREVIEW_ROW_LIMIT, FileArtifactPane, type FileArtifactPaneProps, type FileFormat, type FileNode, FilePreview, type FilePreviewKind, type FilePreviewProps, type FileTabData, FileTabs, type FileTabsProps, FileTree, type FileTreeProps, type FileTreeVisibilityOptions, RichFileTree, type RichFileTreeGitEntry, type RichFileTreeGitStatus, type RichFileTreeProps, type RichFileTreeThemeVars, detectFileFormat, fileExtension, filterFileTree, getCodeLanguage, getFormatLabel, getSyntaxLanguage, parseCsv, resolveFilePreviewKind };
package/dist/globals.css CHANGED
@@ -525,6 +525,9 @@
525
525
  .mx-2 {
526
526
  margin-inline: calc(var(--spacing) * 2);
527
527
  }
528
+ .mx-3 {
529
+ margin-inline: calc(var(--spacing) * 3);
530
+ }
528
531
  .mx-4 {
529
532
  margin-inline: calc(var(--spacing) * 4);
530
533
  }
@@ -858,6 +861,9 @@
858
861
  .h-\[220px\] {
859
862
  height: 220px;
860
863
  }
864
+ .h-\[360px\] {
865
+ height: 360px;
866
+ }
861
867
  .h-\[380px\] {
862
868
  height: 380px;
863
869
  }
@@ -1907,12 +1913,6 @@
1907
1913
  .gap-y-3 {
1908
1914
  row-gap: calc(var(--spacing) * 3);
1909
1915
  }
1910
- :where(.divide-x > :not(:last-child)) {
1911
- --tw-divide-x-reverse: 0;
1912
- border-inline-style: var(--tw-border-style);
1913
- border-inline-start-width: calc(1px * var(--tw-divide-x-reverse));
1914
- border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
1915
- }
1916
1916
  :where(.divide-y > :not(:last-child)) {
1917
1917
  --tw-divide-y-reverse: 0;
1918
1918
  border-bottom-style: var(--tw-border-style);
@@ -2362,6 +2362,9 @@
2362
2362
  .bg-\[var\(--accent-surface-strong\)\] {
2363
2363
  background-color: var(--accent-surface-strong);
2364
2364
  }
2365
+ .bg-\[var\(--bg-input\)\] {
2366
+ background-color: var(--bg-input);
2367
+ }
2365
2368
  .bg-\[var\(--bg-root\)\] {
2366
2369
  background-color: var(--bg-root);
2367
2370
  }
@@ -2605,6 +2608,9 @@
2605
2608
  background-color: color-mix(in oklab, var(--color-green-600) 20%, transparent);
2606
2609
  }
2607
2610
  }
2611
+ .bg-input {
2612
+ background-color: hsl(var(--input));
2613
+ }
2608
2614
  .bg-muted {
2609
2615
  background-color: hsl(var(--muted));
2610
2616
  }
@@ -3888,6 +3894,11 @@
3888
3894
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3889
3895
  transition-duration: var(--tw-duration, var(--default-transition-duration));
3890
3896
  }
3897
+ .transition-\[color\,background-color\,border-color\,box-shadow\,transform\,scale\] {
3898
+ transition-property: color,background-color,border-color,box-shadow,transform,scale;
3899
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3900
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3901
+ }
3891
3902
  .transition-\[color\,background-color\,border-color\,box-shadow\] {
3892
3903
  transition-property: color,background-color,border-color,box-shadow;
3893
3904
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -4119,6 +4130,16 @@
4119
4130
  border-bottom-style: var(--tw-border-style);
4120
4131
  border-bottom-width: 0px;
4121
4132
  }
4133
+ .autofill\:caret-\[var\(--text-primary\)\]:autofill {
4134
+ caret-color: var(--text-primary);
4135
+ }
4136
+ .autofill\:shadow-\[inset_0_0_0_1000px_var\(--bg-input\)\]:autofill {
4137
+ --tw-shadow: inset 0 0 0 1000px var(--tw-shadow-color, var(--bg-input));
4138
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4139
+ }
4140
+ .autofill\:\[-webkit-text-fill-color\:var\(--text-primary\)\]:autofill {
4141
+ -webkit-text-fill-color: var(--text-primary);
4142
+ }
4122
4143
  @media (hover: hover) {
4123
4144
  .hover\:-translate-y-0\.5:hover {
4124
4145
  --tw-translate-y: calc(var(--spacing) * -0.5);
@@ -4700,12 +4721,29 @@
4700
4721
  .aria-disabled\:opacity-50[aria-disabled="true"] {
4701
4722
  opacity: 50%;
4702
4723
  }
4724
+ .aria-invalid\:border-\[var\(--surface-danger-border\)\][aria-invalid="true"] {
4725
+ border-color: var(--surface-danger-border);
4726
+ }
4727
+ @media (hover: hover) {
4728
+ .aria-invalid\:hover\:border-\[var\(--surface-danger-border\)\][aria-invalid="true"]:hover {
4729
+ border-color: var(--surface-danger-border);
4730
+ }
4731
+ }
4732
+ .aria-invalid\:focus\:border-\[var\(--focus-border-danger\)\][aria-invalid="true"]:focus {
4733
+ border-color: var(--focus-border-danger);
4734
+ }
4735
+ .aria-invalid\:focus\:ring-\[var\(--focus-halo-danger\)\][aria-invalid="true"]:focus {
4736
+ --tw-ring-color: var(--focus-halo-danger);
4737
+ }
4703
4738
  .data-\[disabled\]\:pointer-events-none[data-disabled] {
4704
4739
  pointer-events: none;
4705
4740
  }
4706
4741
  .data-\[disabled\]\:opacity-50[data-disabled] {
4707
4742
  opacity: 50%;
4708
4743
  }
4744
+ .data-\[placeholder\]\:text-muted-foreground[data-placeholder] {
4745
+ color: hsl(var(--muted-foreground));
4746
+ }
4709
4747
  .data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
4710
4748
  --tw-translate-y: var(--spacing);
4711
4749
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -4754,6 +4792,10 @@
4754
4792
  .data-\[state\=checked\]\:bg-primary[data-state="checked"] {
4755
4793
  background-color: hsl(var(--primary));
4756
4794
  }
4795
+ .data-\[state\=checked\]\:font-medium[data-state="checked"] {
4796
+ --tw-font-weight: var(--font-weight-medium);
4797
+ font-weight: var(--font-weight-medium);
4798
+ }
4757
4799
  .data-\[state\=checked\]\:text-\[var\(--accent-text\)\][data-state="checked"] {
4758
4800
  color: var(--accent-text);
4759
4801
  }
@@ -4834,6 +4876,10 @@
4834
4876
  .motion-reduce\:transition-none {
4835
4877
  transition-property: none;
4836
4878
  }
4879
+ .motion-reduce\:duration-0 {
4880
+ --tw-duration: 0ms;
4881
+ transition-duration: 0ms;
4882
+ }
4837
4883
  .motion-reduce\:active\:scale-100:active {
4838
4884
  --tw-scale-x: 100%;
4839
4885
  --tw-scale-y: 100%;
@@ -4859,6 +4905,23 @@
4859
4905
  display: none;
4860
4906
  }
4861
4907
  }
4908
+ @media (width < 40rem) {
4909
+ .max-sm\:col-span-2 {
4910
+ grid-column: span 2 / span 2;
4911
+ }
4912
+ .max-sm\:border-b {
4913
+ border-bottom-style: var(--tw-border-style);
4914
+ border-bottom-width: 1px;
4915
+ }
4916
+ .max-sm\:border-l\! {
4917
+ border-left-style: var(--tw-border-style) !important;
4918
+ border-left-width: 1px !important;
4919
+ }
4920
+ .max-sm\:border-l-0\! {
4921
+ border-left-style: var(--tw-border-style) !important;
4922
+ border-left-width: 0px !important;
4923
+ }
4924
+ }
4862
4925
  @media (width >= 40rem) {
4863
4926
  .sm\:col-span-1 {
4864
4927
  grid-column: span 1 / span 1;
@@ -5060,6 +5123,9 @@
5060
5123
  .lg\:grid-cols-4 {
5061
5124
  grid-template-columns: repeat(4, minmax(0, 1fr));
5062
5125
  }
5126
+ .lg\:grid-cols-5 {
5127
+ grid-template-columns: repeat(5, minmax(0, 1fr));
5128
+ }
5063
5129
  .lg\:grid-cols-6 {
5064
5130
  grid-template-columns: repeat(6, minmax(0, 1fr));
5065
5131
  }
@@ -5243,29 +5309,43 @@
5243
5309
  .\[\&\:not\(\:first-child\)\]\:pt-0:not(:first-child) {
5244
5310
  padding-top: 0px;
5245
5311
  }
5312
+ .\[\&\>\*\]\:max-w-full > * {
5313
+ max-width: 100%;
5314
+ }
5315
+ .\[\&\>\*\]\:min-w-0 > * {
5316
+ min-width: 0px;
5317
+ }
5246
5318
  @media (width < 40rem) {
5247
- .max-sm\:\[\&\:not\(\:nth-child\(2n\+1\)\)\]\:border-l:not(:nth-child(2n+1)) {
5319
+ .max-sm\:\[\&\>div\:not\(\:nth-child\(2n\+1\)\)\]\:border-l > div:not(:nth-child(2n+1)) {
5248
5320
  border-left-style: var(--tw-border-style);
5249
5321
  border-left-width: 1px;
5250
5322
  }
5251
5323
  }
5252
- @media (width >= 48rem) {
5253
- .md\:\[\&\:not\(\:nth-child\(3n\+1\)\)\]\:border-l:not(:nth-child(3n+1)) {
5324
+ @media (width >= 40rem) {
5325
+ .sm\:\[\&\>div\:not\(\:nth-child\(3n\+1\)\)\]\:border-l > div:not(:nth-child(3n+1)) {
5254
5326
  border-left-style: var(--tw-border-style);
5255
5327
  border-left-width: 1px;
5256
5328
  }
5257
- }
5258
- @media (width >= 40rem) {
5259
- .sm\:\[\&\:not\(\:nth-child\(4n\+1\)\)\]\:border-l:not(:nth-child(4n+1)) {
5329
+ @media (width < 64rem) {
5330
+ .sm\:max-lg\:\[\&\>div\:not\(\:nth-child\(3n\+1\)\)\]\:border-l > div:not(:nth-child(3n+1)) {
5331
+ border-left-style: var(--tw-border-style);
5332
+ border-left-width: 1px;
5333
+ }
5334
+ }
5335
+ .sm\:\[\&\>div\:not\(\:nth-child\(4n\+1\)\)\]\:border-l > div:not(:nth-child(4n+1)) {
5260
5336
  border-left-style: var(--tw-border-style);
5261
5337
  border-left-width: 1px;
5262
5338
  }
5263
5339
  }
5264
- .\[\&\>\*\]\:max-w-full > * {
5265
- max-width: 100%;
5266
- }
5267
- .\[\&\>\*\]\:min-w-0 > * {
5268
- min-width: 0px;
5340
+ @media (width >= 64rem) {
5341
+ .lg\:\[\&\>div\:not\(\:nth-child\(5n\+1\)\)\]\:border-l > div:not(:nth-child(5n+1)) {
5342
+ border-left-style: var(--tw-border-style);
5343
+ border-left-width: 1px;
5344
+ }
5345
+ .lg\:\[\&\>div\:not\(\:nth-child\(6n\+1\)\)\]\:border-l > div:not(:nth-child(6n+1)) {
5346
+ border-left-style: var(--tw-border-style);
5347
+ border-left-width: 1px;
5348
+ }
5269
5349
  }
5270
5350
  .\[\&\>span\]\:line-clamp-1 > span {
5271
5351
  overflow: hidden;
@@ -5273,10 +5353,24 @@
5273
5353
  -webkit-box-orient: vertical;
5274
5354
  -webkit-line-clamp: 1;
5275
5355
  }
5356
+ .\[\&\>span\]\:min-w-0 > span {
5357
+ min-width: 0px;
5358
+ }
5359
+ .\[\&\>span\]\:text-left > span {
5360
+ text-align: left;
5361
+ }
5362
+ .\[\&\>svg\]\:transition-transform > svg {
5363
+ transition-property: transform, translate, scale, rotate;
5364
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
5365
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
5366
+ }
5276
5367
  .\[\&\>tr\]\:last\:border-b-0 > tr:last-child {
5277
5368
  border-bottom-style: var(--tw-border-style);
5278
5369
  border-bottom-width: 0px;
5279
5370
  }
5371
+ .\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open] > svg {
5372
+ rotate: 180deg;
5373
+ }
5280
5374
  [data-sandbox-theme=''] .\[\[data-sandbox-theme\=\'\'\]_\&\]\:invert {
5281
5375
  --tw-invert: invert(100%);
5282
5376
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
@@ -6815,7 +6909,7 @@
6815
6909
  inherits: false;
6816
6910
  initial-value: 0;
6817
6911
  }
6818
- @property --tw-divide-x-reverse {
6912
+ @property --tw-divide-y-reverse {
6819
6913
  syntax: "*";
6820
6914
  inherits: false;
6821
6915
  initial-value: 0;
@@ -6825,11 +6919,6 @@
6825
6919
  inherits: false;
6826
6920
  initial-value: solid;
6827
6921
  }
6828
- @property --tw-divide-y-reverse {
6829
- syntax: "*";
6830
- inherits: false;
6831
- initial-value: 0;
6832
- }
6833
6922
  @property --tw-gradient-position {
6834
6923
  syntax: "*";
6835
6924
  inherits: false;
@@ -7130,9 +7219,8 @@
7130
7219
  --tw-skew-y: initial;
7131
7220
  --tw-space-y-reverse: 0;
7132
7221
  --tw-space-x-reverse: 0;
7133
- --tw-divide-x-reverse: 0;
7134
- --tw-border-style: solid;
7135
7222
  --tw-divide-y-reverse: 0;
7223
+ --tw-border-style: solid;
7136
7224
  --tw-gradient-position: initial;
7137
7225
  --tw-gradient-from: #0000;
7138
7226
  --tw-gradient-via: #0000;
@@ -0,0 +1,2 @@
1
+ import { CSV_PREVIEW_ROW_LIMIT, FileArtifactPane as FileArtifactPane$1, FileArtifactPaneProps, FileFormat, FileNode as FileNode$1, FilePreview, FilePreviewKind, FilePreviewProps, FileTabData as FileTabData$1, FileTabs, FileTabsProps, FileTree as FileTree$1, FileTreeProps, FileTreeVisibilityOptions as FileTreeVisibilityOptions$1, RichFileTree as RichFileTree$1, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps as RichFileTreeProps$1, RichFileTreeThemeVars, detectFileFormat, fileExtension, filterFileTree as filterFileTree$1, getCodeLanguage, getFormatLabel, getSyntaxLanguage, parseCsv, resolveFilePreviewKind } from "@tangle-network/ui/files";
2
+ export { getCodeLanguage as C, resolveFilePreviewKind as D, parseCsv as E, filterFileTree$1 as S, getSyntaxLanguage as T, RichFileTreeGitStatus as _, FileNode$1 as a, detectFileFormat as b, FilePreviewProps as c, FileTabsProps as d, FileTree$1 as f, RichFileTreeGitEntry as g, RichFileTree$1 as h, FileFormat as i, FileTabData$1 as l, FileTreeVisibilityOptions$1 as m, FileArtifactPane$1 as n, FilePreview as o, FileTreeProps as p, FileArtifactPaneProps as r, FilePreviewKind as s, CSV_PREVIEW_ROW_LIMIT as t, FileTabs as u, RichFileTreeProps$1 as v, getFormatLabel as w, fileExtension as x, RichFileTreeThemeVars as y };
@@ -1,7 +1,7 @@
1
1
  import { ArtifactPane as ArtifactPane$1, ArtifactPaneProps } from "@tangle-network/ui/primitives";
2
2
  import { HTMLAttributes, ReactNode, Ref } from "react";
3
3
  import { LucideIcon } from "lucide-react";
4
- import { FileNode, FileTabData, FileTreeVisibilityOptions } from "@tangle-network/ui/files";
4
+ import { FileNode, FileTabData, FileTreeVisibilityOptions, RichFileTreeProps } from "@tangle-network/ui/files";
5
5
  import { ActiveSessionRecord, ActiveSessionStatus, SessionProjectKey } from "@tangle-network/ui/stores";
6
6
  import { ChatContainerProps } from "@tangle-network/ui/chat";
7
7
  import { OpenUIAction, OpenUIComponentNode } from "@tangle-network/ui/openui";
@@ -774,4 +774,36 @@ interface ApprovalQueueProps {
774
774
  */
775
775
  declare function ApprovalQueue({ items, className, onApprove, onReject, renderItemDetail, renderTypeBadge, renderStats, canResolve, header, emptyState, showResolved: controlledShowResolved }: ApprovalQueueProps): import("react").JSX.Element;
776
776
  //#endregion
777
- export { TerminalProps as $, ShellShouldRevalidateArgs as A, SessionSidebarLink as B, SandboxWorkbenchLayoutOptions as C, SandboxWorkbenchSessionProps as D, SandboxWorkbenchProps as E, SessionSidebar as F, SessionOptimisticController as G, SessionSidebarVariant as H, SessionSidebarBadge as I, useOptimisticSessionItems as J, UseOptimisticSessionItemsOptions as K, SessionSidebarFilter as L, createShellShouldRevalidate as M, shellShouldRevalidate as N, SessionActivityMonitor as O, formatRelativeAge as P, TerminalPanel as Q, SessionSidebarGroupBy as R, SandboxWorkbenchFileArtifact as S, SandboxWorkbenchOpenUIArtifact as T, SESSION_CREATED_EVENT as U, SessionSidebarProps as V, SessionCreatedDetail as W, RuntimePaneProps as X, RuntimePane as Y, TerminalLine as Z, FormAudit as _, ApprovalQueue as a, StatusBannerProps as at, SandboxWorkbenchArtifact as b, CalendarView as c, WorkspacePaneHeader as ct, TaskBoardColumn as d, WorkspaceLayoutProps as dt, ContextBadge as et, TaskBoardItem as f, AuditResultsProps as g, AuditResults as h, ApprovalItem as i, StatusBanner as it, ShellShouldRevalidateOptions as j, SessionActivityMonitorProps as k, CalendarViewProps as l, WorkspacePaneHeaderProps as lt, AuditCheck as m, ArtifactPaneProps as n, StatusBarProps as nt, ApprovalQueueProps as o, DirectoryPane as ot, TaskBoardProps as p, dispatchSessionCreated as q, ApprovalConfidenceStat as r, BannerType as rt, CalendarEvent as s, DirectoryPaneProps as st, ArtifactPane$1 as t, StatusBar as tt, TaskBoard as u, WorkspaceLayout as ut, AgentWorkbench as v, SandboxWorkbenchMarkdownArtifact as w, SandboxWorkbenchCustomArtifact as x, SandboxWorkbench as y, SessionSidebarItem as z };
777
+ //#region src/workspace/workspace-files-pane.d.ts
778
+ interface WorkspaceFilesPreview {
779
+ path: string;
780
+ content: ReactNode;
781
+ actions?: ReactNode;
782
+ }
783
+ type WorkspaceFilesSource = {
784
+ root: FileNode;
785
+ paths?: never;
786
+ } | {
787
+ paths: ReadonlyArray<string>;
788
+ root?: never;
789
+ };
790
+ type WorkspaceFilesPaneProps = Omit<RichFileTreeProps, "root" | "paths" | "onSelect" | "className"> & WorkspaceFilesSource & {
791
+ /** Root inputs preserve the original node. Flat path inputs have no node metadata. */
792
+ onSelect?: (path: string, node?: FileNode) => void;
793
+ preview?: WorkspaceFilesPreview;
794
+ onBack?: () => void;
795
+ /** Supply loading, unavailable, or empty content from the authoritative adapter. */
796
+ emptyState?: ReactNode;
797
+ className?: string;
798
+ };
799
+ /** Compact file navigation shared by workspace companions and standalone panes. */
800
+ declare function WorkspaceFilesPane({ root, paths, onSelect, preview, onBack, emptyState, className, ...treeProps }: WorkspaceFilesPaneProps): import("react").JSX.Element;
801
+ //#endregion
802
+ //#region src/workspace/workspace-artifact-view.d.ts
803
+ interface WorkspaceArtifactViewProps {
804
+ artifact: SandboxWorkbenchArtifact;
805
+ }
806
+ /** The shared technical renderer for workspace files and generated artifacts. */
807
+ declare function WorkspaceArtifactView({ artifact }: WorkspaceArtifactViewProps): import("react").JSX.Element;
808
+ //#endregion
809
+ export { useOptimisticSessionItems as $, SandboxWorkbenchOpenUIArtifact as A, SessionSidebar as B, AgentWorkbench as C, SandboxWorkbenchFileArtifact as D, SandboxWorkbenchCustomArtifact as E, ShellShouldRevalidateArgs as F, SessionSidebarLink as G, SessionSidebarFilter as H, ShellShouldRevalidateOptions as I, SESSION_CREATED_EVENT as J, SessionSidebarProps as K, createShellShouldRevalidate as L, SandboxWorkbenchSessionProps as M, SessionActivityMonitor as N, SandboxWorkbenchLayoutOptions as O, SessionActivityMonitorProps as P, dispatchSessionCreated as Q, shellShouldRevalidate as R, FormAudit as S, SandboxWorkbenchArtifact as T, SessionSidebarGroupBy as U, SessionSidebarBadge as V, SessionSidebarItem as W, SessionOptimisticController as X, SessionCreatedDetail as Y, UseOptimisticSessionItemsOptions as Z, TaskBoardItem as _, WorkspaceFilesPane as a, ContextBadge as at, AuditResults as b, ApprovalConfidenceStat as c, BannerType as ct, ApprovalQueueProps as d, DirectoryPane as dt, RuntimePane as et, CalendarEvent as f, DirectoryPaneProps as ft, TaskBoardColumn as g, WorkspaceLayoutProps as gt, TaskBoard as h, WorkspaceLayout as ht, WorkspaceArtifactViewProps as i, TerminalProps as it, SandboxWorkbenchProps as j, SandboxWorkbenchMarkdownArtifact as k, ApprovalItem as l, StatusBanner as lt, CalendarViewProps as m, WorkspacePaneHeaderProps as mt, ArtifactPaneProps as n, TerminalLine as nt, WorkspaceFilesPaneProps as o, StatusBar as ot, CalendarView as p, WorkspacePaneHeader as pt, SessionSidebarVariant as q, WorkspaceArtifactView as r, TerminalPanel as rt, WorkspaceFilesPreview as s, StatusBarProps as st, ArtifactPane$1 as t, RuntimePaneProps as tt, ApprovalQueue as u, StatusBannerProps as ut, TaskBoardProps as v, SandboxWorkbench as w, AuditResultsProps as x, AuditCheck as y, formatRelativeAge as z };
@@ -1,5 +1,5 @@
1
1
  import { v as ExposedPort } from "./index-CGMpKgB8.js";
2
- import { _ as RichFileTreeGitStatus, g as RichFileTreeGitEntry } from "./index-CXX5IpH2.js";
2
+ import { _ as RichFileTreeGitStatus, g as RichFileTreeGitEntry } from "./index-B6wKsKV6.js";
3
3
  import { a as PreviewReadiness, i as PreviewAccess } from "./embedded-app-view-B_vMTtJn.js";
4
4
  import * as React$1 from "react";
5
5
  import { CSSProperties } from "react";
package/dist/index.d.ts CHANGED
@@ -4,14 +4,14 @@ import { a as SharedMessagingRouteViewState, i as AgentTargetSummary, n as Agent
4
4
  import { $ as HARNESS_BRAND, $t as useSidebar, A as Variant, An as SidebarProps, At as ActivityItem, B as ProfileComparison, Bn as ThemeMode, Bt as InsufficientBalance, C as GitPanelProps, Cn as SidebarContentProps, Ct as SandboxCardData, D as UsageSummaryProps, Dn as SidebarPanelHeader, Dt as canAdminSandbox, E as UsageSummaryData, En as SidebarPanelContentProps, Et as TeamRole, F as MetricAreaChart, Fn as SidebarRailHeaderProps, Ft as ResourceMeterProps, G as SidebarLayoutFlyoutItem, Gt as CreditBalanceProps, H as ProfileSelector, Ht as OutOfCreditsModalProps, I as MetricAreaChartProps, In as SidebarRailNav, It as ClusterStatusBar, J as DashboardLayout, Jt as SIDEBAR_RAIL_LABELED_WIDTH, K as SidebarLayoutNavItem, Kt as SIDEBAR_MOBILE_WIDTH, L as MetricChartPoint, Ln as SidebarRailNavProps, Lt as ClusterStatusBarProps, M as VariantListProps, Mn as SidebarRailFooter, Mt as ResourceSnapshotItem, N as VariantOutcome, Nn as SidebarRailFooterProps, Nt as ResourceSnapshotProps, O as SystemLogsViewer, On as SidebarPanelHeaderProps, Ot as ActivityFeed, P as VariantStatus, Pn as SidebarRailHeader, Pt as ResourceMeter, Q as ProductVariant, Qt as SidebarProviderProps, R as MetricChartTone, Rn as SidebarRailProps, Rt as ClusterStatusItem, S as GitPanel, Sn as SidebarContent, St as SandboxCard, T as UsageSummary, Tn as SidebarPanelContent, Tt as SandboxStatus, U as ProfileSelectorProps, Ut as parseInsufficientBalance, V as ProfileComparisonProps, Vt as OutOfCreditsModal, W as SidebarLayout, Wt as CreditBalance, X as DashboardUser, Xt as SIDEBAR_TOTAL_WIDTH, Y as DashboardLayoutProps, Yt as SIDEBAR_RAIL_WIDTH, Z as NavItem, Zt as SidebarProvider, _ as ProcessListProps, _n as RailModeButtonProps, _t as InvoiceTableProps, a as SnapshotInfo, an as RailButton, at as HarnessPickerProps, b as PortsListProps, bn as RailThemeToggle, bt as NewSandboxCard, c as BackendConfig, cn as RailCollapseToggleProps, ct as Backend, d as McpServer, dn as RailExpandableSubItem, dt as PlanCardData, en as RailTooltip, et as HarnessBrand, f as NetworkConfig, fn as RailFlyout, ft as PlanCards, g as ProcessList, gn as RailModeButton, gt as InvoiceTable, h as ProcessInfo, hn as RailHeaderProps, ht as Invoice, i as PromoBannerProps, in as ProfileAvatarProps, it as HarnessPicker, j as VariantList, jn as SidebarRail, jt as ResourceSnapshot, k as SystemLogsViewerProps, kn as SidebarPanelProps, kt as ActivityFeedProps, l as BackendConfigProps, ln as RailExpandable, lt as BackendSelector, m as NetworkConfigProps, mn as RailHeader, mt as PlanFeature, n as InfoPanelProps, nn as AppearanceController, nt as HarnessLogoProps, o as SnapshotList, on as RailButtonProps, ot as HarnessType, p as NetworkConfigData, pn as RailFlyoutProps, pt as PlanCardsProps, q as SidebarLayoutProps, qt as SIDEBAR_PANEL_WIDTH, r as PromoBanner, rn as ProfileAvatar, rt as HARNESS_OPTIONS, s as SnapshotListProps, sn as RailCollapseToggle, st as chatCapableHarnesses, t as InfoPanel, tn as RailTooltipProps, tt as HarnessLogo, u as BackendStatusData, un as RailExpandableProps, ut as BackendSelectorProps, v as ExposedPort, vn as RailSeparator, vt as SandboxTable, w as GitStatusData, wn as SidebarPanel, wt as SandboxCardProps, x as GitCommitData, xn as Sidebar, xt as NewSandboxCardProps, y as PortsList, yn as RailSeparatorProps, yt as SandboxTableProps, z as Profile, zn as SidebarUser, zt as INSUFFICIENT_BALANCE_CODE } from "./index-CGMpKgB8.js";
5
5
  import { a as modelBrandFor, i as canonicalModelId, n as ModelBrandStack, r as ModelInfo, t as ModelBrandIdentity } from "./model-brand-B9A4H9pJ.js";
6
6
  import { a as UsageChartProps, c as PricingPageProps, d as BillingBalance, f as BillingDashboard, h as BillingUsage, i as UsageChart, l as PricingTier, m as BillingSubscription, n as TemplateCardData, o as UsageDataPoint, p as BillingDashboardProps, r as TemplateCardProps, s as PricingPage, t as TemplateCard, u as formatPrice } from "./template-card-L-4gmjx2.js";
7
- import { C as getCodeLanguage, D as resolveFilePreviewKind, E as parseCsv, S as filterFileTree, T as getSyntaxLanguage, _ as RichFileTreeGitStatus, a as FileNode, b as detectFileFormat, c as FilePreviewProps, d as FileTabsProps, f as FileTree, g as RichFileTreeGitEntry, h as RichFileTree, i as FileFormat, l as FileTabData, m as FileTreeVisibilityOptions, n as FileArtifactPane, o as FilePreview, p as FileTreeProps, r as FileArtifactPaneProps, s as FilePreviewKind, t as CSV_PREVIEW_ROW_LIMIT, u as FileTabs, v as RichFileTreeProps, w as getFormatLabel, x as fileExtension, y as RichFileTreeThemeVars } from "./index-CXX5IpH2.js";
7
+ import { C as getCodeLanguage, D as resolveFilePreviewKind, E as parseCsv, S as filterFileTree, T as getSyntaxLanguage, _ as RichFileTreeGitStatus, a as FileNode, b as detectFileFormat, c as FilePreviewProps, d as FileTabsProps, f as FileTree, g as RichFileTreeGitEntry, h as RichFileTree, i as FileFormat, l as FileTabData, m as FileTreeVisibilityOptions, n as FileArtifactPane, o as FilePreview, p as FileTreeProps, r as FileArtifactPaneProps, s as FilePreviewKind, t as CSV_PREVIEW_ROW_LIMIT, u as FileTabs, v as RichFileTreeProps, w as getFormatLabel, x as fileExtension, y as RichFileTreeThemeVars } from "./index-B6wKsKV6.js";
8
8
  import { n as UsePtySessionReturn, r as usePtySession, t as UsePtySessionOptions } from "./use-pty-session-DbAYO5uH.js";
9
9
  import { t as Session } from "./sidecar-DgH_vQ6m.js";
10
10
  import { d as useSessionStream, l as UseSessionStreamOptions, n as UseSidecarAuthOptions, o as SessionDegradation, r as useSidecarAuth, s as SessionInfo, t as SidecarAuth, u as UseSessionStreamResult } from "./use-sidecar-auth-CCTJcrq7.js";
11
11
  import { AgentStreamEvent, AppendUserMessageOptions, ApplySdkEventOptions, AuthUser, AutomationStreamEvent, BeginAssistantMessageOptions, BotStreamEvent, CompleteAssistantMessageOptions, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, SSEEvent, SandboxMetrics, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, SidecarMetricsPayload, TaskStreamEvent, TerminalStreamEvent, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSandboxMetricsOptions, UseSandboxMetricsResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, createAuthFetcher, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useLiveTime, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessions, useToolCallStream } from "./hooks.js";
12
12
  import { $ as InlineCode, A as DropZone, At as SkeletonTable, B as DropdownMenuRadioItem, Bt as TableCell, C as DialogDescription, Ct as SelectSeparator, D as DialogPortal, Dt as SidebarDropZoneProps, E as DialogOverlay, Et as SidebarDropZone, F as DropdownMenuGroup, Ft as StatusTone, G as DropdownMenuSubTrigger, Gt as TableRow, H as DropdownMenuShortcut, Ht as TableHead, I as DropdownMenuItem, It as Switch, J as EmptyStateProps, Jt as TabsList, K as DropdownMenuTrigger, Kt as Tabs, L as DropdownMenuLabel, Lt as Table, M as DropdownMenu, Mt as StatCardProps, N as DropdownMenuCheckboxItem, Nt as StatusPill, O as DialogTitle, Ot as Skeleton, P as DropdownMenuContent, Pt as StatusPillProps, Q as HeadingVariant, R as DropdownMenuPortal, Rt as TableBody, S as DialogContent, Sn as TangleKnot, St as SelectScrollUpButton, T as DialogHeader, Tt as SelectValue, U as DropdownMenuSub, Ut as TableHeader, V as DropdownMenuSeparator, Vt as TableFooter, W as DropdownMenuSubContent, Wt as TableProps, X as FilterFieldProps, Y as FilterField, Yt as TabsTrigger, Z as Heading, Zt as TerminalDisplay, _ as CodeBlock, _n as HeadingProps, _t as SelectContent, a as AvatarImage, an as Toast, at as MetricProps, b as Dialog, bn as Logo, bt as SelectLabel, c as Button, cn as Toolbar, ct as PageHeader, d as CardContent, dn as UploadProgress, dt as PageShellProps, en as TextShimmer, et as InlineCodeProps, f as CardDescription, fn as UploadProgressProps, ft as Progress, g as CardTitleProps, gn as useToast, gt as Select, h as CardTitle, hn as useTheme, ht as SegmentedControlProps, i as AvatarFallback, in as ThemeToggle, it as Metric, j as DropZoneProps, jt as StatCard, k as DialogTrigger, kt as SkeletonCard, l as ButtonProps, ln as ToolbarProps, lt as PageHeaderProps, m as CardHeader, mn as buttonVariants, mt as SegmentedControlOption, nn as Textarea, nt as InputProps, o as Badge, on as ToastContainer, ot as MetricStrip, p as CardFooter, pn as badgeVariants, pt as SegmentedControl, q as EmptyState, qt as TabsContent, r as Avatar, rn as TextareaProps, rt as Label, s as BadgeProps, sn as ToastProvider, st as MetricStripProps, tn as TextShimmerProps, tt as Input, u as Card, un as UploadFile, ut as PageShell, v as CodeBlockProps, vn as SectionTitle, vt as SelectGroup, w as DialogFooter, wt as SelectTrigger, x as DialogClose, xn as LogoProps, xt as SelectScrollDownButton, y as CopyButton, yn as SectionTitleProps, yt as SelectItem, z as DropdownMenuRadioGroup, zt as TableCaption } from "./index-SJKueyy4.js";
13
- import { $ as TerminalProps, A as ShellShouldRevalidateArgs, B as SessionSidebarLink, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebar, G as SessionOptimisticController, H as SessionSidebarVariant, I as SessionSidebarBadge, J as useOptimisticSessionItems, K as UseOptimisticSessionItemsOptions, L as SessionSidebarFilter, M as createShellShouldRevalidate, N as shellShouldRevalidate, O as SessionActivityMonitor, P as formatRelativeAge, Q as TerminalPanel, R as SessionSidebarGroupBy, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SESSION_CREATED_EVENT, V as SessionSidebarProps, W as SessionCreatedDetail, X as RuntimePaneProps, Y as RuntimePane, Z as TerminalLine, _ as FormAudit, a as ApprovalQueue, at as StatusBannerProps, b as SandboxWorkbenchArtifact, c as CalendarView, ct as WorkspacePaneHeader, d as TaskBoardColumn, dt as WorkspaceLayoutProps, et as ContextBadge, f as TaskBoardItem, g as AuditResultsProps, h as AuditResults, i as ApprovalItem, it as StatusBanner, j as ShellShouldRevalidateOptions, k as SessionActivityMonitorProps, l as CalendarViewProps, lt as WorkspacePaneHeaderProps, m as AuditCheck, n as ArtifactPaneProps, nt as StatusBarProps, o as ApprovalQueueProps, ot as DirectoryPane, p as TaskBoardProps, q as dispatchSessionCreated, r as ApprovalConfidenceStat, rt as BannerType, s as CalendarEvent, st as DirectoryPaneProps, t as ArtifactPane, tt as StatusBar, u as TaskBoard, ut as WorkspaceLayout, v as AgentWorkbench, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarItem } from "./index-CcbhfDa-.js";
14
- import { A as SandboxArtifactTerminal, C as ChangesPane, D as ChangesPaneProps, E as ChangedFile, O as SandboxArtifact, S as PillTabsProps, T as ArtifactView, _ as DiffStats, a as PreviewView, b as PillTabItem, c as DiffViewProps, d as FileBreadcrumb, f as FileBreadcrumbProps, g as PanelHeaderProps, h as PanelHeader, i as resolveLanguage, k as SandboxArtifactPaneProps, l as CodeView, m as GitStatusBadge, n as CodeSurface, o as PreviewViewProps, p as DiffStatsBadge, r as CodeSurfaceProps, s as DiffView, t as BRAND_PRISM_THEME, u as CodeViewProps, v as buildUnifiedPatch, w as SandboxArtifactPane, x as PillTabs, y as computeDiffStats } from "./index-z_zNuZHm.js";
13
+ import { $ as useOptimisticSessionItems, A as SandboxWorkbenchOpenUIArtifact, B as SessionSidebar, C as AgentWorkbench, D as SandboxWorkbenchFileArtifact, E as SandboxWorkbenchCustomArtifact, F as ShellShouldRevalidateArgs, G as SessionSidebarLink, H as SessionSidebarFilter, I as ShellShouldRevalidateOptions, J as SESSION_CREATED_EVENT, K as SessionSidebarProps, L as createShellShouldRevalidate, M as SandboxWorkbenchSessionProps, N as SessionActivityMonitor, O as SandboxWorkbenchLayoutOptions, P as SessionActivityMonitorProps, Q as dispatchSessionCreated, R as shellShouldRevalidate, S as FormAudit, T as SandboxWorkbenchArtifact, U as SessionSidebarGroupBy, V as SessionSidebarBadge, W as SessionSidebarItem, X as SessionOptimisticController, Y as SessionCreatedDetail, Z as UseOptimisticSessionItemsOptions, _ as TaskBoardItem, a as WorkspaceFilesPane, at as ContextBadge, b as AuditResults, c as ApprovalConfidenceStat, ct as BannerType, d as ApprovalQueueProps, dt as DirectoryPane, et as RuntimePane, f as CalendarEvent, ft as DirectoryPaneProps, g as TaskBoardColumn, gt as WorkspaceLayoutProps, h as TaskBoard, ht as WorkspaceLayout, i as WorkspaceArtifactViewProps, it as TerminalProps, j as SandboxWorkbenchProps, k as SandboxWorkbenchMarkdownArtifact, l as ApprovalItem, lt as StatusBanner, m as CalendarViewProps, mt as WorkspacePaneHeaderProps, n as ArtifactPaneProps, nt as TerminalLine, o as WorkspaceFilesPaneProps, ot as StatusBar, p as CalendarView, pt as WorkspacePaneHeader, q as SessionSidebarVariant, r as WorkspaceArtifactView, rt as TerminalPanel, s as WorkspaceFilesPreview, st as StatusBarProps, t as ArtifactPane, tt as RuntimePaneProps, u as ApprovalQueue, ut as StatusBannerProps, v as TaskBoardProps, w as SandboxWorkbench, x as AuditResultsProps, y as AuditCheck, z as formatRelativeAge } from "./index-BxFd7DOv.js";
14
+ import { A as SandboxArtifactTerminal, C as ChangesPane, D as ChangesPaneProps, E as ChangedFile, O as SandboxArtifact, S as PillTabsProps, T as ArtifactView, _ as DiffStats, a as PreviewView, b as PillTabItem, c as DiffViewProps, d as FileBreadcrumb, f as FileBreadcrumbProps, g as PanelHeaderProps, h as PanelHeader, i as resolveLanguage, k as SandboxArtifactPaneProps, l as CodeView, m as GitStatusBadge, n as CodeSurface, o as PreviewViewProps, p as DiffStatsBadge, r as CodeSurfaceProps, s as DiffView, t as BRAND_PRISM_THEME, u as CodeViewProps, v as buildUnifiedPatch, w as SandboxArtifactPane, x as PillTabs, y as computeDiffStats } from "./index-DJyIXUx9.js";
15
15
  import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-B_vMTtJn.js";
16
16
  import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISchemaIssue, OpenUISchemaValidation, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
17
17
  import { ExpandedToolDetail, ExpandedToolDetailProps, FeedSegment, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps, RunRowShell, RunRowShellProps, RunRowStatus, RunRowStatusDot, ToolCallData, ToolCallFeed, ToolCallFeedProps, ToolCallStatus, ToolCallType, parseToolEvent } from "./run.js";
@@ -21,4 +21,4 @@ import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focus
21
21
  import { TerminalCursor as TerminalDisplayCursor, TerminalInput as TerminalDisplayInput, TerminalLine as TerminalDisplayLine } from "@tangle-network/ui/primitives";
22
22
  import { CodeBlock as CodeBlockDisplay, Markdown, MarkdownProps, getSanitizedMarkdownHeadingIdFromRawFragment } from "@tangle-network/ui/markdown";
23
23
  import { CommandPreview, CommandPreviewProps, DiffPreview, DiffPreviewProps, GlobResultsPreview, GlobResultsPreviewProps, GrepResultsPreview, GrepResultsPreviewProps, QuestionPreview, QuestionPreviewProps, WebSearchPreview, WebSearchPreviewProps, WriteFilePreview, WriteFilePreviewProps } from "@tangle-network/ui/tool-previews";
24
- export { ActivityFeed, type ActivityFeedProps, type ActivityItem, type AgentBranding, type AgentEnrollmentViewState, AgentMessagingConnection, type AgentMessagingConnectionProps, type AgentProfileCapability, type AgentProfileDraft, type AgentProfileOption, AgentProfilePicker, type AgentProfilePickerProps, type AgentStreamEvent, type AgentTargetSummary, AgentTimeline, type AgentTimelineArtifactItem, type AgentTimelineCustomItem, type AgentTimelineItem, type AgentTimelineMessageItem, type AgentTimelineProps, type AgentTimelineStatusItem, type AgentTimelineTone, type AgentTimelineToolGroupItem, type AgentTimelineToolItem, AgentWorkbench, type AppearanceController, type AppendUserMessageOptions, type ApplySdkEventOptions, type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactAgentDock, type ArtifactAgentDockProps, type ArtifactAgentDockTransport, type ArtifactDockMessage, type ArtifactDockStreamEvent, type ArtifactKind, ArtifactPane, type ArtifactPaneProps, type ArtifactScope, type ArtifactView, type AuditCheck, AuditResults, type AuditResultsProps, AuthHeader, type AuthHeaderProps, type AuthUser, type AutomationStreamEvent, Avatar, AvatarFallback, AvatarImage, BRAND_PRISM_THEME, type Backend, BackendConfig, type BackendConfigProps, BackendSelector, type BackendSelectorProps, type BackendStatusData, Badge, type BadgeProps, type BannerType, type BeginAssistantMessageOptions, type BillingBalance, BillingDashboard, type BillingDashboardProps, type BillingSubscription, type BillingUsage, type BotStreamEvent, Button, type ButtonProps, CSV_PREVIEW_ROW_LIMIT, type CalendarEvent, CalendarView, type CalendarViewProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, type ChangedFile, ChangesPane, type ChangesPaneProps, ChatContainer, type ChatContainerProps, ChatMessage, type ChatMessageProps, ChatSession, ClusterStatusBar, type ClusterStatusBarProps, type ClusterStatusItem, CodeBlock, CodeBlockDisplay, type CodeBlockProps, CodeSurface, type CodeSurfaceProps, CodeView, type CodeViewProps, CommandPreview, type CommandPreviewProps, type CompleteAssistantMessageOptions, type ContextBadge, CopyButton, CreditBalance, type CreditBalanceProps, type CustomToolRenderer, DEFAULT_REASONING_LEVEL_OPTIONS, DashboardLayout, type DashboardLayoutProps, type Profile as DashboardProfile, type SnapshotInfo as DashboardSnapshotInfo, type DashboardUser, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, type DiffPreviewProps, type DiffStats, DiffStatsBadge, DiffView, type DiffViewProps, DirectoryPane, type DirectoryPaneProps, type DisplayVariant, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type EmbeddedApp, EmbeddedAppView, type EmbeddedAppViewProps, EmptyState, type EmptyStateProps, ExpandedToolDetail, type ExpandedToolDetailProps, type ExposedPort, type FeedSegment, FileArtifactPane, type FileArtifactPaneProps, FileBreadcrumb, type FileBreadcrumbProps, type FileFormat, type FileNode, FilePreview, type FilePreviewKind, type FilePreviewProps, type FileTabData, FileTabs, type FileTabsProps, FileTree, type FileTreeProps, type FileTreeVisibilityOptions, FilterField, type FilterFieldProps, type FinalTextPart, type FormAudit, type GitCommitData, GitHubLoginButton, type GitHubLoginButtonProps, GitPanel, type GitPanelProps, GitStatusBadge, type GitStatusData, GlobResultsPreview, type GlobResultsPreviewProps, GrepResultsPreview, type GrepResultsPreviewProps, type GroupedMessage, HARNESS_BRAND, HARNESS_OPTIONS, HARNESS_REASONING_OPTIONS, type HarnessBrand, HarnessLogo, type HarnessLogoProps, HarnessPicker, type HarnessPickerProps, type HarnessType, Heading, type HeadingProps, type HeadingVariant, INSUFFICIENT_BALANCE_CODE, InfoPanel, type InfoPanelProps, InlineCode, type InlineCodeProps, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, Input, type InputProps, type InsufficientBalance, type Invoice, InvoiceTable, type InvoiceTableProps, Label, LiveDuration, LoginLayout, type LoginLayoutProps, Logo, type LogoProps, Markdown, type MarkdownProps, type McpServer, MessageList, type MessageListProps, type MessageRole, type MessageRun, type MessageUser, Metric, MetricAreaChart, type MetricAreaChartProps, type MetricChartPoint, type MetricChartTone, type MetricProps, MetricStrip, type MetricStripProps, type ModelBrandIdentity, ModelBrandStack, type ModelInfo, type NavItem, NetworkConfig, type NetworkConfigData, type NetworkConfigProps, NewSandboxCard, type NewSandboxCardProps, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, type OpenUIAction, type OpenUIActionsNode, OpenUIArtifactRenderer, type OpenUIArtifactRendererProps, type OpenUIBadgeNode, type OpenUICardNode, type OpenUICodeNode, type OpenUIComponentNode, type OpenUIGridNode, type OpenUIHeadingNode, type OpenUIKeyValueNode, type OpenUIMarkdownNode, type OpenUIPrimitive, type OpenUISchemaIssue, type OpenUISchemaValidation, type OpenUISeparatorNode, type OpenUIStackNode, type OpenUIStatNode, type OpenUITableNode, type OpenUITextNode, OutOfCreditsModal, type OutOfCreditsModalProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, PanelHeader, type PanelHeaderProps, type PillTabItem, PillTabs, type PillTabsProps, type PlanCardData, PlanCards, type PlanCardsProps, type PlanFeature, PortsList, type PortsListProps, type PreviewAccess, type PreviewReadiness, PreviewView, type PreviewViewProps, PricingPage, type PricingPageProps, type PricingTier, type ProcessInfo, ProcessList, type ProcessListProps, type ProductVariant, ProfileAvatar, type ProfileAvatarProps, ProfileComparison, type ProfileComparisonProps, ProfileSelector, type ProfileSelectorProps, Progress, PromoBanner, type PromoBannerProps, QuestionPreview, type QuestionPreviewProps, RailButton, type RailButtonProps, RailCollapseToggle, type RailCollapseToggleProps, RailExpandable, type RailExpandableProps, type RailExpandableSubItem, RailFlyout, type RailFlyoutProps, RailHeader, type RailHeaderProps, RailModeButton, type RailModeButtonProps, RailSeparator, type RailSeparatorProps, RailThemeToggle, RailTooltip, type RailTooltipProps, type RealtimeSessionOptions, RealtimeSessionRegistry, type RealtimeSessionRegistryProps, type RealtimeSessionState, type RealtimeSessionTarget, type ReasoningLevel, type ReasoningLevelOption, ReasoningLevelPicker, type ReasoningLevelPickerProps, type ReasoningPart, ResourceMeter, type ResourceMeterProps, ResourceSnapshot, type ResourceSnapshotItem, type ResourceSnapshotProps, RichFileTree, type RichFileTreeGitEntry, type RichFileTreeGitStatus, type RichFileTreeProps, type RichFileTreeThemeVars, type Run, RunGroup, type RunGroupProps, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, type RunStats, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, type SSEEvent, type SandboxArtifact, SandboxArtifactPane, type SandboxArtifactPaneProps, type SandboxArtifactTerminal, SandboxCard, type SandboxCardData, type SandboxCardProps, type SandboxMetrics, type SandboxStatus, SandboxTable, type SandboxTableProps, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, type SdkSessionAttachment, type SdkSessionEvent, type SdkSessionSeed, SectionTitle, type SectionTitleProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Session, SessionActivityMonitor, type SessionActivityMonitorProps, type SessionCreatedDetail, type SessionDegradation, type SessionInfo, type SessionMessage, type SessionOptimisticController, type SessionPart, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type SessionUser, type SharedMessagingRouteViewState, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, Sidebar, SidebarContent, type SidebarContentProps, SidebarDropZone, type SidebarDropZoneProps, SidebarLayout, type SidebarLayoutFlyoutItem, type SidebarLayoutNavItem, type SidebarLayoutProps, SidebarPanel, SidebarPanelContent, type SidebarPanelContentProps, SidebarPanelHeader, type SidebarPanelHeaderProps, type SidebarPanelProps, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarRail, SidebarRailFooter, type SidebarRailFooterProps, SidebarRailHeader, type SidebarRailHeaderProps, SidebarRailNav, type SidebarRailNavProps, type SidebarRailProps, type SidebarUser, type SidecarAuth, type SidecarMetricsPayload, Skeleton, SkeletonCard, SkeletonTable, SnapshotList, type SnapshotListProps, StatCard, type StatCardProps, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, StatusPill, type StatusPillProps, type StatusTone, Switch, SystemLogsViewer, type SystemLogsViewerProps, TOOL_CATEGORY_ICONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TangleLoginButton, type TangleLoginButtonProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TaskStreamEvent, type TeamRole, TemplateCard, type TemplateCardData, type TemplateCardProps, TerminalDisplay, TerminalDisplayCursor, TerminalDisplayInput, TerminalDisplayLine, type TerminalLine, TerminalPanel, type TerminalProps, type TerminalStreamEvent, type TextPart, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, type ThemeMode, ThemeToggle, ThinkingIndicator, type ThinkingIndicatorProps, type Toast, ToastContainer, ToastProvider, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, type ToolCategory, type ToolDisplayMetadata, type ToolPart, type ToolState, type ToolStatus, type ToolTime, Toolbar, type ToolbarProps, type UploadFile, UploadProgress, type UploadProgressProps, UsageChart, type UsageChartProps, type UsageDataPoint, UsageSummary, type UsageSummaryData, type UsageSummaryProps, type UseAuthOptions, type UseAuthResult, type UseOptimisticSessionItemsOptions, type UsePtySessionOptions, type UsePtySessionReturn, type UseRunGroupsOptions, type UseSSEStreamOptions, type UseSSEStreamResult, type UseSandboxMetricsOptions, type UseSandboxMetricsResult, type UseSdkSessionOptions, type UseSdkSessionReturn, type UseSessionStreamOptions, type UseSessionStreamResult, type UseSidecarAuthOptions, type UseToolCallStreamReturn, UserMenu, type UserMenuProps, UserMessage, type UserMessageProps, type Variant, VariantList, type VariantListProps, type VariantOutcome, type VariantStatus, WebSearchPreview, type WebSearchPreviewProps, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, WriteFilePreview, type WriteFilePreviewProps, activeSessionsAtom, addMessage, addParts, badgeVariants, buildUnifiedPatch, bumpActiveSessionActivity, buttonVariants, canAdminSandbox, canonicalModelId, chatCapableHarnesses, clearChat, cn, computeDiffStats, connectSession, copyText, createAuthFetcher, createFetchTransport, createShellShouldRevalidate, detectFileFormat, disconnectSession, dispatchSessionCreated, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatPrice, formatRelativeAge, formatUptime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, modelBrandFor, modelProvider, parseCsv, parseInsufficientBalance, parseToolEvent, partMapAtom, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, resolveLanguage, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, shellShouldRevalidate, snapHarnessToModel, timeAgo, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useOptimisticSessionItems, useProjectActivity, useProjectSessions, usePtySession, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessionStream, useSessions, useSessionsByActivity, useSidebar, useSidecarAuth, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
24
+ export { ActivityFeed, type ActivityFeedProps, type ActivityItem, type AgentBranding, type AgentEnrollmentViewState, AgentMessagingConnection, type AgentMessagingConnectionProps, type AgentProfileCapability, type AgentProfileDraft, type AgentProfileOption, AgentProfilePicker, type AgentProfilePickerProps, type AgentStreamEvent, type AgentTargetSummary, AgentTimeline, type AgentTimelineArtifactItem, type AgentTimelineCustomItem, type AgentTimelineItem, type AgentTimelineMessageItem, type AgentTimelineProps, type AgentTimelineStatusItem, type AgentTimelineTone, type AgentTimelineToolGroupItem, type AgentTimelineToolItem, AgentWorkbench, type AppearanceController, type AppendUserMessageOptions, type ApplySdkEventOptions, type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactAgentDock, type ArtifactAgentDockProps, type ArtifactAgentDockTransport, type ArtifactDockMessage, type ArtifactDockStreamEvent, type ArtifactKind, ArtifactPane, type ArtifactPaneProps, type ArtifactScope, type ArtifactView, type AuditCheck, AuditResults, type AuditResultsProps, AuthHeader, type AuthHeaderProps, type AuthUser, type AutomationStreamEvent, Avatar, AvatarFallback, AvatarImage, BRAND_PRISM_THEME, type Backend, BackendConfig, type BackendConfigProps, BackendSelector, type BackendSelectorProps, type BackendStatusData, Badge, type BadgeProps, type BannerType, type BeginAssistantMessageOptions, type BillingBalance, BillingDashboard, type BillingDashboardProps, type BillingSubscription, type BillingUsage, type BotStreamEvent, Button, type ButtonProps, CSV_PREVIEW_ROW_LIMIT, type CalendarEvent, CalendarView, type CalendarViewProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, type ChangedFile, ChangesPane, type ChangesPaneProps, ChatContainer, type ChatContainerProps, ChatMessage, type ChatMessageProps, ChatSession, ClusterStatusBar, type ClusterStatusBarProps, type ClusterStatusItem, CodeBlock, CodeBlockDisplay, type CodeBlockProps, CodeSurface, type CodeSurfaceProps, CodeView, type CodeViewProps, CommandPreview, type CommandPreviewProps, type CompleteAssistantMessageOptions, type ContextBadge, CopyButton, CreditBalance, type CreditBalanceProps, type CustomToolRenderer, DEFAULT_REASONING_LEVEL_OPTIONS, DashboardLayout, type DashboardLayoutProps, type Profile as DashboardProfile, type SnapshotInfo as DashboardSnapshotInfo, type DashboardUser, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, type DiffPreviewProps, type DiffStats, DiffStatsBadge, DiffView, type DiffViewProps, DirectoryPane, type DirectoryPaneProps, type DisplayVariant, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type EmbeddedApp, EmbeddedAppView, type EmbeddedAppViewProps, EmptyState, type EmptyStateProps, ExpandedToolDetail, type ExpandedToolDetailProps, type ExposedPort, type FeedSegment, FileArtifactPane, type FileArtifactPaneProps, FileBreadcrumb, type FileBreadcrumbProps, type FileFormat, type FileNode, FilePreview, type FilePreviewKind, type FilePreviewProps, type FileTabData, FileTabs, type FileTabsProps, FileTree, type FileTreeProps, type FileTreeVisibilityOptions, FilterField, type FilterFieldProps, type FinalTextPart, type FormAudit, type GitCommitData, GitHubLoginButton, type GitHubLoginButtonProps, GitPanel, type GitPanelProps, GitStatusBadge, type GitStatusData, GlobResultsPreview, type GlobResultsPreviewProps, GrepResultsPreview, type GrepResultsPreviewProps, type GroupedMessage, HARNESS_BRAND, HARNESS_OPTIONS, HARNESS_REASONING_OPTIONS, type HarnessBrand, HarnessLogo, type HarnessLogoProps, HarnessPicker, type HarnessPickerProps, type HarnessType, Heading, type HeadingProps, type HeadingVariant, INSUFFICIENT_BALANCE_CODE, InfoPanel, type InfoPanelProps, InlineCode, type InlineCodeProps, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, Input, type InputProps, type InsufficientBalance, type Invoice, InvoiceTable, type InvoiceTableProps, Label, LiveDuration, LoginLayout, type LoginLayoutProps, Logo, type LogoProps, Markdown, type MarkdownProps, type McpServer, MessageList, type MessageListProps, type MessageRole, type MessageRun, type MessageUser, Metric, MetricAreaChart, type MetricAreaChartProps, type MetricChartPoint, type MetricChartTone, type MetricProps, MetricStrip, type MetricStripProps, type ModelBrandIdentity, ModelBrandStack, type ModelInfo, type NavItem, NetworkConfig, type NetworkConfigData, type NetworkConfigProps, NewSandboxCard, type NewSandboxCardProps, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, type OpenUIAction, type OpenUIActionsNode, OpenUIArtifactRenderer, type OpenUIArtifactRendererProps, type OpenUIBadgeNode, type OpenUICardNode, type OpenUICodeNode, type OpenUIComponentNode, type OpenUIGridNode, type OpenUIHeadingNode, type OpenUIKeyValueNode, type OpenUIMarkdownNode, type OpenUIPrimitive, type OpenUISchemaIssue, type OpenUISchemaValidation, type OpenUISeparatorNode, type OpenUIStackNode, type OpenUIStatNode, type OpenUITableNode, type OpenUITextNode, OutOfCreditsModal, type OutOfCreditsModalProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, PanelHeader, type PanelHeaderProps, type PillTabItem, PillTabs, type PillTabsProps, type PlanCardData, PlanCards, type PlanCardsProps, type PlanFeature, PortsList, type PortsListProps, type PreviewAccess, type PreviewReadiness, PreviewView, type PreviewViewProps, PricingPage, type PricingPageProps, type PricingTier, type ProcessInfo, ProcessList, type ProcessListProps, type ProductVariant, ProfileAvatar, type ProfileAvatarProps, ProfileComparison, type ProfileComparisonProps, ProfileSelector, type ProfileSelectorProps, Progress, PromoBanner, type PromoBannerProps, QuestionPreview, type QuestionPreviewProps, RailButton, type RailButtonProps, RailCollapseToggle, type RailCollapseToggleProps, RailExpandable, type RailExpandableProps, type RailExpandableSubItem, RailFlyout, type RailFlyoutProps, RailHeader, type RailHeaderProps, RailModeButton, type RailModeButtonProps, RailSeparator, type RailSeparatorProps, RailThemeToggle, RailTooltip, type RailTooltipProps, type RealtimeSessionOptions, RealtimeSessionRegistry, type RealtimeSessionRegistryProps, type RealtimeSessionState, type RealtimeSessionTarget, type ReasoningLevel, type ReasoningLevelOption, ReasoningLevelPicker, type ReasoningLevelPickerProps, type ReasoningPart, ResourceMeter, type ResourceMeterProps, ResourceSnapshot, type ResourceSnapshotItem, type ResourceSnapshotProps, RichFileTree, type RichFileTreeGitEntry, type RichFileTreeGitStatus, type RichFileTreeProps, type RichFileTreeThemeVars, type Run, RunGroup, type RunGroupProps, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, type RunStats, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, type SSEEvent, type SandboxArtifact, SandboxArtifactPane, type SandboxArtifactPaneProps, type SandboxArtifactTerminal, SandboxCard, type SandboxCardData, type SandboxCardProps, type SandboxMetrics, type SandboxStatus, SandboxTable, type SandboxTableProps, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, type SdkSessionAttachment, type SdkSessionEvent, type SdkSessionSeed, SectionTitle, type SectionTitleProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Session, SessionActivityMonitor, type SessionActivityMonitorProps, type SessionCreatedDetail, type SessionDegradation, type SessionInfo, type SessionMessage, type SessionOptimisticController, type SessionPart, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type SessionUser, type SharedMessagingRouteViewState, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, Sidebar, SidebarContent, type SidebarContentProps, SidebarDropZone, type SidebarDropZoneProps, SidebarLayout, type SidebarLayoutFlyoutItem, type SidebarLayoutNavItem, type SidebarLayoutProps, SidebarPanel, SidebarPanelContent, type SidebarPanelContentProps, SidebarPanelHeader, type SidebarPanelHeaderProps, type SidebarPanelProps, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarRail, SidebarRailFooter, type SidebarRailFooterProps, SidebarRailHeader, type SidebarRailHeaderProps, SidebarRailNav, type SidebarRailNavProps, type SidebarRailProps, type SidebarUser, type SidecarAuth, type SidecarMetricsPayload, Skeleton, SkeletonCard, SkeletonTable, SnapshotList, type SnapshotListProps, StatCard, type StatCardProps, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, StatusPill, type StatusPillProps, type StatusTone, Switch, SystemLogsViewer, type SystemLogsViewerProps, TOOL_CATEGORY_ICONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TangleLoginButton, type TangleLoginButtonProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TaskStreamEvent, type TeamRole, TemplateCard, type TemplateCardData, type TemplateCardProps, TerminalDisplay, TerminalDisplayCursor, TerminalDisplayInput, TerminalDisplayLine, type TerminalLine, TerminalPanel, type TerminalProps, type TerminalStreamEvent, type TextPart, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, type ThemeMode, ThemeToggle, ThinkingIndicator, type ThinkingIndicatorProps, type Toast, ToastContainer, ToastProvider, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, type ToolCategory, type ToolDisplayMetadata, type ToolPart, type ToolState, type ToolStatus, type ToolTime, Toolbar, type ToolbarProps, type UploadFile, UploadProgress, type UploadProgressProps, UsageChart, type UsageChartProps, type UsageDataPoint, UsageSummary, type UsageSummaryData, type UsageSummaryProps, type UseAuthOptions, type UseAuthResult, type UseOptimisticSessionItemsOptions, type UsePtySessionOptions, type UsePtySessionReturn, type UseRunGroupsOptions, type UseSSEStreamOptions, type UseSSEStreamResult, type UseSandboxMetricsOptions, type UseSandboxMetricsResult, type UseSdkSessionOptions, type UseSdkSessionReturn, type UseSessionStreamOptions, type UseSessionStreamResult, type UseSidecarAuthOptions, type UseToolCallStreamReturn, UserMenu, type UserMenuProps, UserMessage, type UserMessageProps, type Variant, VariantList, type VariantListProps, type VariantOutcome, type VariantStatus, WebSearchPreview, type WebSearchPreviewProps, WorkspaceArtifactView, type WorkspaceArtifactViewProps, WorkspaceFilesPane, type WorkspaceFilesPaneProps, type WorkspaceFilesPreview, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, WriteFilePreview, type WriteFilePreviewProps, activeSessionsAtom, addMessage, addParts, badgeVariants, buildUnifiedPatch, bumpActiveSessionActivity, buttonVariants, canAdminSandbox, canonicalModelId, chatCapableHarnesses, clearChat, cn, computeDiffStats, connectSession, copyText, createAuthFetcher, createFetchTransport, createShellShouldRevalidate, detectFileFormat, disconnectSession, dispatchSessionCreated, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatPrice, formatRelativeAge, formatUptime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, modelBrandFor, modelProvider, parseCsv, parseInsufficientBalance, parseToolEvent, partMapAtom, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, resolveLanguage, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, shellShouldRevalidate, snapHarnessToModel, timeAgo, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useOptimisticSessionItems, useProjectActivity, useProjectSessions, usePtySession, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessionStream, useSessions, useSessionsByActivity, useSidebar, useSidecarAuth, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { a as computeDiffStats, c as BRAND_PRISM_THEME, d as DiffStatsBadge, f as GitStatusBadge, i as buildUnifiedPatch, l as CodeSurface, m as PillTabs, n as SandboxArtifactPane, o as CodeView, p as PanelHeader, r as DiffView, s as FileBreadcrumb, t as ChangesPane, u as resolveLanguage } from "./workbench-DuIQZobw.js";
2
2
  import { $ as Select, A as DropdownMenuItem, B as DropdownMenuTrigger, Bt as buttonVariants, C as DialogTitle, Ct as TableRow, D as DropdownMenuCheckboxItem, Dt as TabsTrigger, E as DropdownMenu, Et as TabsList, F as DropdownMenuSeparator, Ft as ToastContainer, G as Input, Gt as TangleKnot, H as FilterField, Ht as useToast, I as DropdownMenuShortcut, It as ToastProvider, J as MetricStrip, K as Label, L as DropdownMenuSub, Lt as Toolbar, M as DropdownMenuPortal, Mt as TextShimmer, N as DropdownMenuRadioGroup, Nt as Textarea, O as DropdownMenuContent, P as DropdownMenuRadioItem, Pt as ThemeToggle, Q as SegmentedControl, R as DropdownMenuSubContent, Rt as UploadProgress, S as DialogPortal, St as TableHeader, T as DropZone, Tt as TabsContent, U as Heading, Ut as SectionTitle, V as EmptyState, Vt as useTheme, W as InlineCode, Wt as Logo, X as PageShell, Y as PageHeader, Z as Progress, _ as DialogContent, _t as TableBody, a as Badge, at as SelectScrollUpButton, b as DialogHeader, bt as TableFooter, c as CardContent, ct as SelectValue, d as CardHeader, dt as SkeletonCard, et as SelectContent, f as CardTitle, ft as SkeletonTable, g as DialogClose, gt as Table, h as Dialog, ht as Switch, i as AvatarImage, it as SelectScrollDownButton, j as DropdownMenuLabel, k as DropdownMenuGroup, kt as TerminalDisplay, l as CardDescription, lt as SidebarDropZone, m as CopyButton, mt as StatusPill, n as Avatar, nt as SelectItem, o as Button, ot as SelectSeparator, p as CodeBlock, pt as StatCard, q as Metric, r as AvatarFallback, rt as SelectLabel, s as Card, st as SelectTrigger, tt as SelectGroup, u as CardFooter, ut as Skeleton, v as DialogDescription, vt as TableCaption, w as DialogTrigger, wt as Tabs, x as DialogOverlay, xt as TableHead, y as DialogFooter, yt as TableCell, z as DropdownMenuSubTrigger, zt as badgeVariants } from "./primitives-BQGtwZX3.js";
3
3
  import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
4
- import { _ as TerminalPanel, a as AuditResults, b as DirectoryPane, c as SessionActivityMonitor, d as SessionSidebar, f as SESSION_CREATED_EVENT, g as RuntimePane, h as formatRelativeAge, i as TaskBoard, l as createShellShouldRevalidate, m as useOptimisticSessionItems, n as ApprovalQueue, o as AgentWorkbench, p as dispatchSessionCreated, r as CalendarView, s as SandboxWorkbench, t as ArtifactPane, u as shellShouldRevalidate, v as StatusBar, x as WorkspaceLayout, y as StatusBanner } from "./workspace--bNv-rQy.js";
4
+ import { C as WorkspaceLayout, S as DirectoryPane, _ as formatRelativeAge, a as TaskBoard, b as StatusBar, c as SandboxWorkbench, d as createShellShouldRevalidate, f as shellShouldRevalidate, g as useOptimisticSessionItems, h as dispatchSessionCreated, i as CalendarView, l as WorkspaceArtifactView, m as SESSION_CREATED_EVENT, n as WorkspaceFilesPane, o as AuditResults, p as SessionSidebar, r as ApprovalQueue, s as AgentWorkbench, t as ArtifactPane, u as SessionActivityMonitor, v as RuntimePane, x as StatusBanner, y as TerminalPanel } from "./workspace-iRO3GeHT.js";
5
5
  import { $ as SidebarRailNav, A as ResourceMeter, B as RailFlyout, C as InvoiceTable, D as canAdminSandbox, E as SandboxCard, F as CreditBalance, G as Sidebar, H as RailModeButton, I as ProfileAvatar, J as SidebarPanelContent, K as SidebarContent, L as RailButton, M as INSUFFICIENT_BALANCE_CODE, N as OutOfCreditsModal, O as ActivityFeed, P as parseInsufficientBalance, Q as SidebarRailHeader, R as RailCollapseToggle, S as PlanCards, T as NewSandboxCard, U as RailSeparator, V as RailHeader, W as RailThemeToggle, X as SidebarRail, Y as SidebarPanelHeader, Z as SidebarRailFooter, _ as HarnessPicker, a as ProcessList, at as SIDEBAR_TOTAL_WIDTH, b as HarnessLogo, c as UsageSummary, d as MetricAreaChart, et as RailTooltip, f as ProfileComparison, g as HARNESS_OPTIONS, h as DashboardLayout, i as NetworkConfig, it as SIDEBAR_RAIL_WIDTH, j as ClusterStatusBar, k as ResourceSnapshot, l as SystemLogsViewer, m as SidebarLayout, n as SnapshotList, nt as SIDEBAR_PANEL_WIDTH, o as PortsList, ot as SidebarProvider, p as ProfileSelector, q as SidebarPanel, r as BackendConfig, rt as SIDEBAR_RAIL_LABELED_WIDTH, s as GitPanel, st as useSidebar, t as PromoBanner, tt as SIDEBAR_MOBILE_WIDTH, u as VariantList, v as chatCapableHarnesses, w as SandboxTable, x as BackendSelector, y as HARNESS_BRAND, z as RailExpandable } from "./dashboard-CnGK2S3A.js";
6
6
  import { n as canonicalModelId, r as modelBrandFor, t as ModelBrandStack } from "./model-brand-hMyDTUqB.js";
7
7
  import { a as formatPrice, i as PricingPage, n as TemplateCard, o as BillingDashboard, r as UsageChart, t as InfoPanel } from "./info-panel-C9cqDzOL.js";
@@ -21,4 +21,4 @@ import { TOOL_CATEGORY_ICONS, cn, copyText, focusField, focusFieldInvalid, focus
21
21
  import { TerminalCursor as TerminalDisplayCursor, TerminalInput as TerminalDisplayInput, TerminalLine as TerminalDisplayLine } from "@tangle-network/ui/primitives";
22
22
  import { CodeBlock as CodeBlockDisplay, Markdown, getSanitizedMarkdownHeadingIdFromRawFragment } from "@tangle-network/ui/markdown";
23
23
  import { CommandPreview, DiffPreview, GlobResultsPreview, GrepResultsPreview, QuestionPreview, WebSearchPreview, WriteFilePreview } from "@tangle-network/ui/tool-previews";
24
- export { ActivityFeed, AgentMessagingConnection, AgentProfilePicker, AgentTimeline, AgentWorkbench, ApprovalQueue, ArtifactAgentDock, ArtifactPane, AuditResults, AuthHeader, Avatar, AvatarFallback, AvatarImage, BRAND_PRISM_THEME, BackendConfig, BackendSelector, Badge, BillingDashboard, Button, CSV_PREVIEW_ROW_LIMIT, CalendarView, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChangesPane, ChatContainer, ChatMessage, ClusterStatusBar, CodeBlock, CodeBlockDisplay, CodeSurface, CodeView, CommandPreview, CopyButton, CreditBalance, DEFAULT_REASONING_LEVEL_OPTIONS, DashboardLayout, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, DiffStatsBadge, DiffView, DirectoryPane, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmbeddedAppView, EmptyState, ExpandedToolDetail, FileArtifactPane, FileBreadcrumb, FilePreview, FileTabs, FileTree, FilterField, GitHubLoginButton, GitPanel, GitStatusBadge, GlobResultsPreview, GrepResultsPreview, HARNESS_BRAND, HARNESS_OPTIONS, HARNESS_REASONING_OPTIONS, HarnessLogo, HarnessPicker, Heading, INSUFFICIENT_BALANCE_CODE, InfoPanel, InlineCode, InlineThinkingItem, InlineToolItem, Input, InvoiceTable, Label, LiveDuration, LoginLayout, Logo, Markdown, MessageList, Metric, MetricAreaChart, MetricStrip, ModelBrandStack, NetworkConfig, NewSandboxCard, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, OutOfCreditsModal, PageHeader, PageShell, PanelHeader, PillTabs, PlanCards, PortsList, PreviewView, PricingPage, ProcessList, ProfileAvatar, ProfileComparison, ProfileSelector, Progress, PromoBanner, QuestionPreview, RailButton, RailCollapseToggle, RailExpandable, RailFlyout, RailHeader, RailModeButton, RailSeparator, RailThemeToggle, RailTooltip, RealtimeSessionRegistry, ReasoningLevelPicker, ResourceMeter, ResourceSnapshot, RichFileTree, RunGroup, RunRowShell, RunRowStatusDot, RuntimePane, SESSION_CREATED_EVENT, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxArtifactPane, SandboxCard, SandboxTable, SandboxWorkbench, SectionTitle, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SessionActivityMonitor, SessionSidebar, Sidebar, SidebarContent, SidebarDropZone, SidebarLayout, SidebarPanel, SidebarPanelContent, SidebarPanelHeader, SidebarProvider, SidebarRail, SidebarRailFooter, SidebarRailHeader, SidebarRailNav, Skeleton, SkeletonCard, SkeletonTable, SnapshotList, StatCard, StatusBanner, StatusBar, StatusPill, Switch, SystemLogsViewer, TOOL_CATEGORY_ICONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TangleLoginButton, TaskBoard, TemplateCard, TerminalDisplay, TerminalDisplayCursor, TerminalDisplayInput, TerminalDisplayLine, TerminalPanel, TextShimmer, Textarea, ThemeToggle, ThinkingIndicator, ToastContainer, ToastProvider, ToolCallFeed, Toolbar, UploadProgress, UsageChart, UsageSummary, UserMenu, UserMessage, VariantList, WebSearchPreview, WorkspaceLayout, WorkspacePaneHeader, WriteFilePreview, activeSessionsAtom, addMessage, addParts, badgeVariants, buildUnifiedPatch, bumpActiveSessionActivity, buttonVariants, canAdminSandbox, canonicalModelId, chatCapableHarnesses, clearChat, cn, computeDiffStats, connectSession, copyText, createAuthFetcher, createFetchTransport, createShellShouldRevalidate, detectFileFormat, disconnectSession, dispatchSessionCreated, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatPrice, formatRelativeAge, formatUptime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, modelBrandFor, modelProvider, parseCsv, parseInsufficientBalance, parseToolEvent, partMapAtom, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, resolveLanguage, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, shellShouldRevalidate, snapHarnessToModel, timeAgo, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useOptimisticSessionItems, useProjectActivity, useProjectSessions, usePtySession, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessionStream, useSessions, useSessionsByActivity, useSidebar, useSidecarAuth, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
24
+ export { ActivityFeed, AgentMessagingConnection, AgentProfilePicker, AgentTimeline, AgentWorkbench, ApprovalQueue, ArtifactAgentDock, ArtifactPane, AuditResults, AuthHeader, Avatar, AvatarFallback, AvatarImage, BRAND_PRISM_THEME, BackendConfig, BackendSelector, Badge, BillingDashboard, Button, CSV_PREVIEW_ROW_LIMIT, CalendarView, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChangesPane, ChatContainer, ChatMessage, ClusterStatusBar, CodeBlock, CodeBlockDisplay, CodeSurface, CodeView, CommandPreview, CopyButton, CreditBalance, DEFAULT_REASONING_LEVEL_OPTIONS, DashboardLayout, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiffPreview, DiffStatsBadge, DiffView, DirectoryPane, DropZone, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmbeddedAppView, EmptyState, ExpandedToolDetail, FileArtifactPane, FileBreadcrumb, FilePreview, FileTabs, FileTree, FilterField, GitHubLoginButton, GitPanel, GitStatusBadge, GlobResultsPreview, GrepResultsPreview, HARNESS_BRAND, HARNESS_OPTIONS, HARNESS_REASONING_OPTIONS, HarnessLogo, HarnessPicker, Heading, INSUFFICIENT_BALANCE_CODE, InfoPanel, InlineCode, InlineThinkingItem, InlineToolItem, Input, InvoiceTable, Label, LiveDuration, LoginLayout, Logo, Markdown, MessageList, Metric, MetricAreaChart, MetricStrip, ModelBrandStack, NetworkConfig, NewSandboxCard, OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, OutOfCreditsModal, PageHeader, PageShell, PanelHeader, PillTabs, PlanCards, PortsList, PreviewView, PricingPage, ProcessList, ProfileAvatar, ProfileComparison, ProfileSelector, Progress, PromoBanner, QuestionPreview, RailButton, RailCollapseToggle, RailExpandable, RailFlyout, RailHeader, RailModeButton, RailSeparator, RailThemeToggle, RailTooltip, RealtimeSessionRegistry, ReasoningLevelPicker, ResourceMeter, ResourceSnapshot, RichFileTree, RunGroup, RunRowShell, RunRowStatusDot, RuntimePane, SESSION_CREATED_EVENT, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxArtifactPane, SandboxCard, SandboxTable, SandboxWorkbench, SectionTitle, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SessionActivityMonitor, SessionSidebar, Sidebar, SidebarContent, SidebarDropZone, SidebarLayout, SidebarPanel, SidebarPanelContent, SidebarPanelHeader, SidebarProvider, SidebarRail, SidebarRailFooter, SidebarRailHeader, SidebarRailNav, Skeleton, SkeletonCard, SkeletonTable, SnapshotList, StatCard, StatusBanner, StatusBar, StatusPill, Switch, SystemLogsViewer, TOOL_CATEGORY_ICONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TangleKnot, TangleLoginButton, TaskBoard, TemplateCard, TerminalDisplay, TerminalDisplayCursor, TerminalDisplayInput, TerminalDisplayLine, TerminalPanel, TextShimmer, Textarea, ThemeToggle, ThinkingIndicator, ToastContainer, ToastProvider, ToolCallFeed, Toolbar, UploadProgress, UsageChart, UsageSummary, UserMenu, UserMessage, VariantList, WebSearchPreview, WorkspaceArtifactView, WorkspaceFilesPane, WorkspaceLayout, WorkspacePaneHeader, WriteFilePreview, activeSessionsAtom, addMessage, addParts, badgeVariants, buildUnifiedPatch, bumpActiveSessionActivity, buttonVariants, canAdminSandbox, canonicalModelId, chatCapableHarnesses, clearChat, cn, computeDiffStats, connectSession, copyText, createAuthFetcher, createFetchTransport, createShellShouldRevalidate, detectFileFormat, disconnectSession, dispatchSessionCreated, fileExtension, filterFileTree, findUnsupportedOpenUINode, focusField, focusFieldInvalid, focusFieldWithin, focusRing, focusRingInset, formatBytes, formatDuration, formatPrice, formatRelativeAge, formatUptime, getActiveSession, getAllActiveSessions, getAllProjectActivity, getCodeLanguage, getFormatLabel, getSanitizedMarkdownHeadingIdFromRawFragment, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getSyntaxLanguage, getToolCategory, getToolDisplayMetadata, getToolErrorText, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, modelBrandFor, modelProvider, parseCsv, parseInsufficientBalance, parseToolEvent, partMapAtom, registerActiveSession, resetActiveSessions, resolveFilePreviewKind, resolveLanguage, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, shellShouldRevalidate, snapHarnessToModel, timeAgo, truncateText, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useApiKey, useAuth, useAutoScroll, useCreateSession, useDeleteSession, useDropdownMenu, useHasBackgroundRunningSessions, useLiveTime, useNavbarSessions, useOptimisticSessionItems, useProjectActivity, useProjectSessions, usePtySession, useRealtimeSession, useRenameSession, useRunCollapseState, useRunGroups, useSSEStream, useSandboxMetrics, useSdkSession, useSessionStream, useSessions, useSessionsByActivity, useSidebar, useSidecarAuth, useTheme, useToast, useToolCallStream, useTotalRunningSessions, validateOpenUIJsonArtifact, validateOpenUIJsonNode };
package/dist/styles.css CHANGED
@@ -525,6 +525,9 @@
525
525
  .mx-2 {
526
526
  margin-inline: calc(var(--spacing) * 2);
527
527
  }
528
+ .mx-3 {
529
+ margin-inline: calc(var(--spacing) * 3);
530
+ }
528
531
  .mx-4 {
529
532
  margin-inline: calc(var(--spacing) * 4);
530
533
  }
@@ -858,6 +861,9 @@
858
861
  .h-\[220px\] {
859
862
  height: 220px;
860
863
  }
864
+ .h-\[360px\] {
865
+ height: 360px;
866
+ }
861
867
  .h-\[380px\] {
862
868
  height: 380px;
863
869
  }
@@ -1907,12 +1913,6 @@
1907
1913
  .gap-y-3 {
1908
1914
  row-gap: calc(var(--spacing) * 3);
1909
1915
  }
1910
- :where(.divide-x > :not(:last-child)) {
1911
- --tw-divide-x-reverse: 0;
1912
- border-inline-style: var(--tw-border-style);
1913
- border-inline-start-width: calc(1px * var(--tw-divide-x-reverse));
1914
- border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
1915
- }
1916
1916
  :where(.divide-y > :not(:last-child)) {
1917
1917
  --tw-divide-y-reverse: 0;
1918
1918
  border-bottom-style: var(--tw-border-style);
@@ -2362,6 +2362,9 @@
2362
2362
  .bg-\[var\(--accent-surface-strong\)\] {
2363
2363
  background-color: var(--accent-surface-strong);
2364
2364
  }
2365
+ .bg-\[var\(--bg-input\)\] {
2366
+ background-color: var(--bg-input);
2367
+ }
2365
2368
  .bg-\[var\(--bg-root\)\] {
2366
2369
  background-color: var(--bg-root);
2367
2370
  }
@@ -2605,6 +2608,9 @@
2605
2608
  background-color: color-mix(in oklab, var(--color-green-600) 20%, transparent);
2606
2609
  }
2607
2610
  }
2611
+ .bg-input {
2612
+ background-color: hsl(var(--input));
2613
+ }
2608
2614
  .bg-muted {
2609
2615
  background-color: hsl(var(--muted));
2610
2616
  }
@@ -3888,6 +3894,11 @@
3888
3894
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3889
3895
  transition-duration: var(--tw-duration, var(--default-transition-duration));
3890
3896
  }
3897
+ .transition-\[color\,background-color\,border-color\,box-shadow\,transform\,scale\] {
3898
+ transition-property: color,background-color,border-color,box-shadow,transform,scale;
3899
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
3900
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
3901
+ }
3891
3902
  .transition-\[color\,background-color\,border-color\,box-shadow\] {
3892
3903
  transition-property: color,background-color,border-color,box-shadow;
3893
3904
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -4119,6 +4130,16 @@
4119
4130
  border-bottom-style: var(--tw-border-style);
4120
4131
  border-bottom-width: 0px;
4121
4132
  }
4133
+ .autofill\:caret-\[var\(--text-primary\)\]:autofill {
4134
+ caret-color: var(--text-primary);
4135
+ }
4136
+ .autofill\:shadow-\[inset_0_0_0_1000px_var\(--bg-input\)\]:autofill {
4137
+ --tw-shadow: inset 0 0 0 1000px var(--tw-shadow-color, var(--bg-input));
4138
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4139
+ }
4140
+ .autofill\:\[-webkit-text-fill-color\:var\(--text-primary\)\]:autofill {
4141
+ -webkit-text-fill-color: var(--text-primary);
4142
+ }
4122
4143
  @media (hover: hover) {
4123
4144
  .hover\:-translate-y-0\.5:hover {
4124
4145
  --tw-translate-y: calc(var(--spacing) * -0.5);
@@ -4700,12 +4721,29 @@
4700
4721
  .aria-disabled\:opacity-50[aria-disabled="true"] {
4701
4722
  opacity: 50%;
4702
4723
  }
4724
+ .aria-invalid\:border-\[var\(--surface-danger-border\)\][aria-invalid="true"] {
4725
+ border-color: var(--surface-danger-border);
4726
+ }
4727
+ @media (hover: hover) {
4728
+ .aria-invalid\:hover\:border-\[var\(--surface-danger-border\)\][aria-invalid="true"]:hover {
4729
+ border-color: var(--surface-danger-border);
4730
+ }
4731
+ }
4732
+ .aria-invalid\:focus\:border-\[var\(--focus-border-danger\)\][aria-invalid="true"]:focus {
4733
+ border-color: var(--focus-border-danger);
4734
+ }
4735
+ .aria-invalid\:focus\:ring-\[var\(--focus-halo-danger\)\][aria-invalid="true"]:focus {
4736
+ --tw-ring-color: var(--focus-halo-danger);
4737
+ }
4703
4738
  .data-\[disabled\]\:pointer-events-none[data-disabled] {
4704
4739
  pointer-events: none;
4705
4740
  }
4706
4741
  .data-\[disabled\]\:opacity-50[data-disabled] {
4707
4742
  opacity: 50%;
4708
4743
  }
4744
+ .data-\[placeholder\]\:text-muted-foreground[data-placeholder] {
4745
+ color: hsl(var(--muted-foreground));
4746
+ }
4709
4747
  .data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
4710
4748
  --tw-translate-y: var(--spacing);
4711
4749
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -4754,6 +4792,10 @@
4754
4792
  .data-\[state\=checked\]\:bg-primary[data-state="checked"] {
4755
4793
  background-color: hsl(var(--primary));
4756
4794
  }
4795
+ .data-\[state\=checked\]\:font-medium[data-state="checked"] {
4796
+ --tw-font-weight: var(--font-weight-medium);
4797
+ font-weight: var(--font-weight-medium);
4798
+ }
4757
4799
  .data-\[state\=checked\]\:text-\[var\(--accent-text\)\][data-state="checked"] {
4758
4800
  color: var(--accent-text);
4759
4801
  }
@@ -4834,6 +4876,10 @@
4834
4876
  .motion-reduce\:transition-none {
4835
4877
  transition-property: none;
4836
4878
  }
4879
+ .motion-reduce\:duration-0 {
4880
+ --tw-duration: 0ms;
4881
+ transition-duration: 0ms;
4882
+ }
4837
4883
  .motion-reduce\:active\:scale-100:active {
4838
4884
  --tw-scale-x: 100%;
4839
4885
  --tw-scale-y: 100%;
@@ -4859,6 +4905,23 @@
4859
4905
  display: none;
4860
4906
  }
4861
4907
  }
4908
+ @media (width < 40rem) {
4909
+ .max-sm\:col-span-2 {
4910
+ grid-column: span 2 / span 2;
4911
+ }
4912
+ .max-sm\:border-b {
4913
+ border-bottom-style: var(--tw-border-style);
4914
+ border-bottom-width: 1px;
4915
+ }
4916
+ .max-sm\:border-l\! {
4917
+ border-left-style: var(--tw-border-style) !important;
4918
+ border-left-width: 1px !important;
4919
+ }
4920
+ .max-sm\:border-l-0\! {
4921
+ border-left-style: var(--tw-border-style) !important;
4922
+ border-left-width: 0px !important;
4923
+ }
4924
+ }
4862
4925
  @media (width >= 40rem) {
4863
4926
  .sm\:col-span-1 {
4864
4927
  grid-column: span 1 / span 1;
@@ -5060,6 +5123,9 @@
5060
5123
  .lg\:grid-cols-4 {
5061
5124
  grid-template-columns: repeat(4, minmax(0, 1fr));
5062
5125
  }
5126
+ .lg\:grid-cols-5 {
5127
+ grid-template-columns: repeat(5, minmax(0, 1fr));
5128
+ }
5063
5129
  .lg\:grid-cols-6 {
5064
5130
  grid-template-columns: repeat(6, minmax(0, 1fr));
5065
5131
  }
@@ -5243,29 +5309,43 @@
5243
5309
  .\[\&\:not\(\:first-child\)\]\:pt-0:not(:first-child) {
5244
5310
  padding-top: 0px;
5245
5311
  }
5312
+ .\[\&\>\*\]\:max-w-full > * {
5313
+ max-width: 100%;
5314
+ }
5315
+ .\[\&\>\*\]\:min-w-0 > * {
5316
+ min-width: 0px;
5317
+ }
5246
5318
  @media (width < 40rem) {
5247
- .max-sm\:\[\&\:not\(\:nth-child\(2n\+1\)\)\]\:border-l:not(:nth-child(2n+1)) {
5319
+ .max-sm\:\[\&\>div\:not\(\:nth-child\(2n\+1\)\)\]\:border-l > div:not(:nth-child(2n+1)) {
5248
5320
  border-left-style: var(--tw-border-style);
5249
5321
  border-left-width: 1px;
5250
5322
  }
5251
5323
  }
5252
- @media (width >= 48rem) {
5253
- .md\:\[\&\:not\(\:nth-child\(3n\+1\)\)\]\:border-l:not(:nth-child(3n+1)) {
5324
+ @media (width >= 40rem) {
5325
+ .sm\:\[\&\>div\:not\(\:nth-child\(3n\+1\)\)\]\:border-l > div:not(:nth-child(3n+1)) {
5254
5326
  border-left-style: var(--tw-border-style);
5255
5327
  border-left-width: 1px;
5256
5328
  }
5257
- }
5258
- @media (width >= 40rem) {
5259
- .sm\:\[\&\:not\(\:nth-child\(4n\+1\)\)\]\:border-l:not(:nth-child(4n+1)) {
5329
+ @media (width < 64rem) {
5330
+ .sm\:max-lg\:\[\&\>div\:not\(\:nth-child\(3n\+1\)\)\]\:border-l > div:not(:nth-child(3n+1)) {
5331
+ border-left-style: var(--tw-border-style);
5332
+ border-left-width: 1px;
5333
+ }
5334
+ }
5335
+ .sm\:\[\&\>div\:not\(\:nth-child\(4n\+1\)\)\]\:border-l > div:not(:nth-child(4n+1)) {
5260
5336
  border-left-style: var(--tw-border-style);
5261
5337
  border-left-width: 1px;
5262
5338
  }
5263
5339
  }
5264
- .\[\&\>\*\]\:max-w-full > * {
5265
- max-width: 100%;
5266
- }
5267
- .\[\&\>\*\]\:min-w-0 > * {
5268
- min-width: 0px;
5340
+ @media (width >= 64rem) {
5341
+ .lg\:\[\&\>div\:not\(\:nth-child\(5n\+1\)\)\]\:border-l > div:not(:nth-child(5n+1)) {
5342
+ border-left-style: var(--tw-border-style);
5343
+ border-left-width: 1px;
5344
+ }
5345
+ .lg\:\[\&\>div\:not\(\:nth-child\(6n\+1\)\)\]\:border-l > div:not(:nth-child(6n+1)) {
5346
+ border-left-style: var(--tw-border-style);
5347
+ border-left-width: 1px;
5348
+ }
5269
5349
  }
5270
5350
  .\[\&\>span\]\:line-clamp-1 > span {
5271
5351
  overflow: hidden;
@@ -5273,10 +5353,24 @@
5273
5353
  -webkit-box-orient: vertical;
5274
5354
  -webkit-line-clamp: 1;
5275
5355
  }
5356
+ .\[\&\>span\]\:min-w-0 > span {
5357
+ min-width: 0px;
5358
+ }
5359
+ .\[\&\>span\]\:text-left > span {
5360
+ text-align: left;
5361
+ }
5362
+ .\[\&\>svg\]\:transition-transform > svg {
5363
+ transition-property: transform, translate, scale, rotate;
5364
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
5365
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
5366
+ }
5276
5367
  .\[\&\>tr\]\:last\:border-b-0 > tr:last-child {
5277
5368
  border-bottom-style: var(--tw-border-style);
5278
5369
  border-bottom-width: 0px;
5279
5370
  }
5371
+ .\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open] > svg {
5372
+ rotate: 180deg;
5373
+ }
5280
5374
  [data-sandbox-theme=''] .\[\[data-sandbox-theme\=\'\'\]_\&\]\:invert {
5281
5375
  --tw-invert: invert(100%);
5282
5376
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
@@ -6815,7 +6909,7 @@
6815
6909
  inherits: false;
6816
6910
  initial-value: 0;
6817
6911
  }
6818
- @property --tw-divide-x-reverse {
6912
+ @property --tw-divide-y-reverse {
6819
6913
  syntax: "*";
6820
6914
  inherits: false;
6821
6915
  initial-value: 0;
@@ -6825,11 +6919,6 @@
6825
6919
  inherits: false;
6826
6920
  initial-value: solid;
6827
6921
  }
6828
- @property --tw-divide-y-reverse {
6829
- syntax: "*";
6830
- inherits: false;
6831
- initial-value: 0;
6832
- }
6833
6922
  @property --tw-gradient-position {
6834
6923
  syntax: "*";
6835
6924
  inherits: false;
@@ -7130,9 +7219,8 @@
7130
7219
  --tw-skew-y: initial;
7131
7220
  --tw-space-y-reverse: 0;
7132
7221
  --tw-space-x-reverse: 0;
7133
- --tw-divide-x-reverse: 0;
7134
- --tw-border-style: solid;
7135
7222
  --tw-divide-y-reverse: 0;
7223
+ --tw-border-style: solid;
7136
7224
  --tw-gradient-position: initial;
7137
7225
  --tw-gradient-from: #0000;
7138
7226
  --tw-gradient-via: #0000;
@@ -1,3 +1,3 @@
1
- import { A as SandboxArtifactTerminal, C as ChangesPane, D as ChangesPaneProps, E as ChangedFile, O as SandboxArtifact, S as PillTabsProps, T as ArtifactView, _ as DiffStats, a as PreviewView, b as PillTabItem, c as DiffViewProps, d as FileBreadcrumb, f as FileBreadcrumbProps, g as PanelHeaderProps, h as PanelHeader, i as resolveLanguage, k as SandboxArtifactPaneProps, l as CodeView, m as GitStatusBadge, n as CodeSurface, o as PreviewViewProps, p as DiffStatsBadge, r as CodeSurfaceProps, s as DiffView, t as BRAND_PRISM_THEME, u as CodeViewProps, v as buildUnifiedPatch, w as SandboxArtifactPane, x as PillTabs, y as computeDiffStats } from "./index-z_zNuZHm.js";
1
+ import { A as SandboxArtifactTerminal, C as ChangesPane, D as ChangesPaneProps, E as ChangedFile, O as SandboxArtifact, S as PillTabsProps, T as ArtifactView, _ as DiffStats, a as PreviewView, b as PillTabItem, c as DiffViewProps, d as FileBreadcrumb, f as FileBreadcrumbProps, g as PanelHeaderProps, h as PanelHeader, i as resolveLanguage, k as SandboxArtifactPaneProps, l as CodeView, m as GitStatusBadge, n as CodeSurface, o as PreviewViewProps, p as DiffStatsBadge, r as CodeSurfaceProps, s as DiffView, t as BRAND_PRISM_THEME, u as CodeViewProps, v as buildUnifiedPatch, w as SandboxArtifactPane, x as PillTabs, y as computeDiffStats } from "./index-DJyIXUx9.js";
2
2
  import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-B_vMTtJn.js";
3
3
  export { type ArtifactView, BRAND_PRISM_THEME, type ChangedFile, ChangesPane, type ChangesPaneProps, CodeSurface, type CodeSurfaceProps, CodeView, type CodeViewProps, type DiffStats, DiffStatsBadge, DiffView, type DiffViewProps, type EmbeddedApp, EmbeddedAppView, type EmbeddedAppViewProps, FileBreadcrumb, type FileBreadcrumbProps, GitStatusBadge, PanelHeader, type PanelHeaderProps, type PillTabItem, PillTabs, type PillTabsProps, type PreviewAccess, type PreviewReadiness, PreviewView, type PreviewViewProps, type SandboxArtifact, SandboxArtifactPane, type SandboxArtifactPaneProps, type SandboxArtifactTerminal, buildUnifiedPatch, computeDiffStats, resolveLanguage };
@@ -7,9 +7,9 @@ import { Markdown } from "@tangle-network/ui/markdown";
7
7
  import { useCallback, useEffect, useId, useImperativeHandle, useMemo, useRef, useState } from "react";
8
8
  import { createPortal } from "react-dom";
9
9
  import * as DialogPrimitive from "@radix-ui/react-dialog";
10
- import { Activity, AlertCircle, AlertTriangle, ArrowLeft, Binary, Bot, Boxes, CheckCircle, ChevronDown, ChevronRight, ChevronUp, FileCode2, FileText, FolderTree, LayoutPanelTop, Loader2, LoaderCircle, MessageSquareText, PanelBottomClose, PanelBottomOpen, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen, Plus, RefreshCw, Search, Settings, Shield, ShieldCheck, Sparkles, Terminal, TerminalSquare, Upload, Wifi, X, XCircle, Zap } from "lucide-react";
10
+ import { Activity, AlertCircle, AlertTriangle, ArrowLeft, Binary, Bot, Boxes, CheckCircle, ChevronDown, ChevronRight, ChevronUp, FileCode2, FileText, FolderOpen, FolderTree, LayoutPanelTop, Loader2, LoaderCircle, MessageSquareText, PanelBottomClose, PanelBottomOpen, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen, Plus, RefreshCw, Search, Settings, Shield, ShieldCheck, Sparkles, Terminal, TerminalSquare, Upload, Wifi, X, XCircle, Zap } from "lucide-react";
11
11
  import { focusField, focusRing, focusRingInset } from "@tangle-network/ui/utils";
12
- import { FileArtifactPane, FileTree, filterFileTree } from "@tangle-network/ui/files";
12
+ import { FileArtifactPane, FileTree, RichFileTree, filterFileTree } from "@tangle-network/ui/files";
13
13
  import { useActiveSessions, useNavbarSessions, useProjectActivity, useTotalRunningSessions } from "@tangle-network/ui/stores";
14
14
  import { ChatContainer } from "@tangle-network/ui/chat";
15
15
  import { OpenUIArtifactRenderer } from "@tangle-network/ui/openui";
@@ -1627,6 +1627,69 @@ function SessionActivityMonitor({ className, compact = false, sessionsById = {},
1627
1627
  });
1628
1628
  }
1629
1629
  //#endregion
1630
+ //#region src/workspace/workspace-artifact-view.tsx
1631
+ /** The shared technical renderer for workspace files and generated artifacts. */
1632
+ function WorkspaceArtifactView({ artifact }) {
1633
+ switch (artifact.kind) {
1634
+ case "file": return /* @__PURE__ */ jsx(FileArtifactPane, {
1635
+ path: artifact.path === artifact.filename ? void 0 : artifact.path,
1636
+ filename: artifact.filename,
1637
+ content: artifact.content,
1638
+ blobUrl: artifact.blobUrl,
1639
+ mimeType: artifact.mimeType,
1640
+ onDownload: artifact.onDownload,
1641
+ tabs: artifact.tabs,
1642
+ activeTabId: artifact.activeTabId,
1643
+ onTabSelect: artifact.onTabSelect,
1644
+ onTabClose: artifact.onTabClose,
1645
+ eyebrow: artifact.eyebrow ?? null,
1646
+ meta: artifact.meta,
1647
+ toolbar: artifact.toolbar,
1648
+ footer: artifact.footer,
1649
+ hideTitleBlock: typeof artifact.title === "string" && artifact.title === artifact.filename && artifact.path === artifact.filename && !artifact.eyebrow && !artifact.meta
1650
+ });
1651
+ case "markdown": return /* @__PURE__ */ jsx(ArtifactPane, {
1652
+ eyebrow: artifact.eyebrow ?? "Document",
1653
+ title: artifact.title,
1654
+ subtitle: artifact.subtitle,
1655
+ meta: artifact.meta,
1656
+ headerActions: artifact.headerActions,
1657
+ toolbar: artifact.toolbar,
1658
+ footer: artifact.footer,
1659
+ children: /* @__PURE__ */ jsx("div", {
1660
+ className: "p-5",
1661
+ children: /* @__PURE__ */ jsx(Markdown, {
1662
+ className: "prose-sm max-w-none",
1663
+ children: artifact.content
1664
+ })
1665
+ })
1666
+ });
1667
+ case "openui": return /* @__PURE__ */ jsx(ArtifactPane, {
1668
+ eyebrow: artifact.eyebrow ?? "Structured Artifact",
1669
+ title: artifact.title,
1670
+ subtitle: artifact.subtitle,
1671
+ meta: artifact.meta,
1672
+ headerActions: artifact.headerActions,
1673
+ toolbar: artifact.toolbar,
1674
+ footer: artifact.footer,
1675
+ children: /* @__PURE__ */ jsx(OpenUIArtifactRenderer, {
1676
+ schema: artifact.schema,
1677
+ onAction: artifact.onAction
1678
+ })
1679
+ });
1680
+ case "custom": return /* @__PURE__ */ jsx(ArtifactPane, {
1681
+ eyebrow: artifact.eyebrow ?? "Artifact",
1682
+ title: artifact.title,
1683
+ subtitle: artifact.subtitle,
1684
+ meta: artifact.meta,
1685
+ headerActions: artifact.headerActions,
1686
+ toolbar: artifact.toolbar,
1687
+ footer: artifact.footer,
1688
+ children: artifact.content
1689
+ });
1690
+ }
1691
+ }
1692
+ //#endregion
1630
1693
  //#region src/workspace/sandbox-workbench.tsx
1631
1694
  function getArtifactTabIcon(kind) {
1632
1695
  switch (kind) {
@@ -1709,66 +1772,6 @@ function ArtifactTabs({ artifacts, activeArtifactId, onSelect, onClose, tabIdPre
1709
1772
  })
1710
1773
  });
1711
1774
  }
1712
- function renderArtifact(artifact) {
1713
- switch (artifact.kind) {
1714
- case "file": return /* @__PURE__ */ jsx(FileArtifactPane, {
1715
- path: artifact.path === artifact.filename ? void 0 : artifact.path,
1716
- filename: artifact.filename,
1717
- content: artifact.content,
1718
- blobUrl: artifact.blobUrl,
1719
- mimeType: artifact.mimeType,
1720
- onDownload: artifact.onDownload,
1721
- tabs: artifact.tabs,
1722
- activeTabId: artifact.activeTabId,
1723
- onTabSelect: artifact.onTabSelect,
1724
- onTabClose: artifact.onTabClose,
1725
- eyebrow: artifact.eyebrow ?? null,
1726
- meta: artifact.meta,
1727
- toolbar: artifact.toolbar,
1728
- footer: artifact.footer,
1729
- hideTitleBlock: typeof artifact.title === "string" && artifact.title === artifact.filename && artifact.path === artifact.filename && !artifact.eyebrow && !artifact.meta
1730
- });
1731
- case "markdown": return /* @__PURE__ */ jsx(ArtifactPane, {
1732
- eyebrow: artifact.eyebrow ?? "Document",
1733
- title: artifact.title,
1734
- subtitle: artifact.subtitle,
1735
- meta: artifact.meta,
1736
- headerActions: artifact.headerActions,
1737
- toolbar: artifact.toolbar,
1738
- footer: artifact.footer,
1739
- children: /* @__PURE__ */ jsx("div", {
1740
- className: "p-5",
1741
- children: /* @__PURE__ */ jsx(Markdown, {
1742
- className: "prose-sm max-w-none",
1743
- children: artifact.content
1744
- })
1745
- })
1746
- });
1747
- case "openui": return /* @__PURE__ */ jsx(ArtifactPane, {
1748
- eyebrow: artifact.eyebrow ?? "Structured Artifact",
1749
- title: artifact.title,
1750
- subtitle: artifact.subtitle,
1751
- meta: artifact.meta,
1752
- headerActions: artifact.headerActions,
1753
- toolbar: artifact.toolbar,
1754
- footer: artifact.footer,
1755
- children: /* @__PURE__ */ jsx(OpenUIArtifactRenderer, {
1756
- schema: artifact.schema,
1757
- onAction: artifact.onAction
1758
- })
1759
- });
1760
- case "custom": return /* @__PURE__ */ jsx(ArtifactPane, {
1761
- eyebrow: artifact.eyebrow ?? "Artifact",
1762
- title: artifact.title,
1763
- subtitle: artifact.subtitle,
1764
- meta: artifact.meta,
1765
- headerActions: artifact.headerActions,
1766
- toolbar: artifact.toolbar,
1767
- footer: artifact.footer,
1768
- children: artifact.content
1769
- });
1770
- }
1771
- }
1772
1775
  function regionHeader(sections, fallback) {
1773
1776
  if (sections.length !== 1) return fallback;
1774
1777
  switch (sections[0]?.key) {
@@ -1895,7 +1898,7 @@ function SandboxWorkbench({ title, subtitle, status, centerHeader: centerHeaderP
1895
1898
  "aria-label": activeArtifact ? void 0 : "Artifact content",
1896
1899
  tabIndex: 0,
1897
1900
  className: `min-h-0 flex-1 overflow-auto bg-background ${focusRingInset}`,
1898
- children: activeArtifact ? renderArtifact(activeArtifact) : /* @__PURE__ */ jsx("div", {
1901
+ children: activeArtifact ? /* @__PURE__ */ jsx(WorkspaceArtifactView, { artifact: activeArtifact }) : /* @__PURE__ */ jsx("div", {
1899
1902
  className: "flex h-full items-center justify-center p-6",
1900
1903
  children: emptyArtifactState ?? /* @__PURE__ */ jsx(EmptyState, {
1901
1904
  icon: /* @__PURE__ */ jsx(Boxes, { className: "h-8 w-8" }),
@@ -2603,4 +2606,93 @@ function ApprovalQueue({ items, className, onApprove, onReject, renderItemDetail
2603
2606
  });
2604
2607
  }
2605
2608
  //#endregion
2606
- export { TerminalPanel as _, AuditResults as a, DirectoryPane as b, SessionActivityMonitor as c, SessionSidebar as d, SESSION_CREATED_EVENT as f, RuntimePane as g, formatRelativeAge as h, TaskBoard as i, createShellShouldRevalidate as l, useOptimisticSessionItems as m, ApprovalQueue as n, AgentWorkbench as o, dispatchSessionCreated as p, CalendarView as r, SandboxWorkbench as s, ArtifactPane$1 as t, shellShouldRevalidate as u, StatusBar as v, WorkspaceLayout as x, StatusBanner as y };
2609
+ //#region src/workspace/workspace-files-pane.tsx
2610
+ function indexNodes(root) {
2611
+ const nodes = /* @__PURE__ */ new Map();
2612
+ function visit(node) {
2613
+ nodes.set(node.path.replace(/\/$/, ""), node);
2614
+ node.children?.forEach(visit);
2615
+ }
2616
+ if (root) visit(root);
2617
+ return nodes;
2618
+ }
2619
+ function activeElementWithin(element) {
2620
+ let active = element.ownerDocument.activeElement;
2621
+ if (!element.contains(active)) return null;
2622
+ while (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement;
2623
+ return active instanceof HTMLElement ? active : null;
2624
+ }
2625
+ /** Compact file navigation shared by workspace companions and standalone panes. */
2626
+ function WorkspaceFilesPane({ root, paths, onSelect, preview, onBack, emptyState, className, ...treeProps }) {
2627
+ const nodes = useMemo(() => indexNodes(root), [root]);
2628
+ const treeRef = useRef(null);
2629
+ const backRef = useRef(null);
2630
+ const returnFocusRef = useRef(null);
2631
+ const wasPreviewRef = useRef(false);
2632
+ const hasPreview = preview !== void 0;
2633
+ const isEmpty = root ? !root.path && root.type === "directory" && !root.children?.length : paths?.length === 0;
2634
+ useEffect(() => {
2635
+ if (hasPreview && !wasPreviewRef.current) backRef.current?.focus();
2636
+ if (!hasPreview && wasPreviewRef.current) {
2637
+ const target = returnFocusRef.current;
2638
+ if (target?.isConnected) target.focus();
2639
+ else treeRef.current?.focus();
2640
+ }
2641
+ wasPreviewRef.current = hasPreview;
2642
+ }, [hasPreview]);
2643
+ return /* @__PURE__ */ jsxs("div", {
2644
+ className: cn$1("flex h-full min-h-0 min-w-0 flex-col bg-background", className),
2645
+ children: [/* @__PURE__ */ jsx("div", {
2646
+ ref: treeRef,
2647
+ hidden: hasPreview,
2648
+ tabIndex: -1,
2649
+ role: "region",
2650
+ "aria-label": "Workspace files",
2651
+ className: cn$1("min-h-0 flex-1", hasPreview && "hidden"),
2652
+ children: isEmpty ? emptyState !== void 0 ? emptyState : /* @__PURE__ */ jsx(EmptyState, {
2653
+ icon: /* @__PURE__ */ jsx(FolderOpen, { className: "h-6 w-6" }),
2654
+ title: "No files yet"
2655
+ }) : /* @__PURE__ */ jsx(RichFileTree, {
2656
+ ...treeProps,
2657
+ root,
2658
+ paths,
2659
+ onSelect: (path) => {
2660
+ if (treeRef.current) returnFocusRef.current = activeElementWithin(treeRef.current);
2661
+ onSelect?.(path, nodes.get(path.replace(/\/$/, "")));
2662
+ },
2663
+ className: "h-full"
2664
+ })
2665
+ }), preview && /* @__PURE__ */ jsxs("div", {
2666
+ className: "flex min-h-0 flex-1 flex-col",
2667
+ children: [/* @__PURE__ */ jsxs("div", {
2668
+ className: "flex min-h-10 shrink-0 flex-wrap items-center gap-2 border-b border-border px-3 py-2",
2669
+ children: [
2670
+ onBack && /* @__PURE__ */ jsxs("button", {
2671
+ ref: backRef,
2672
+ type: "button",
2673
+ onClick: onBack,
2674
+ className: cn$1("inline-flex shrink-0 items-center gap-1 rounded-md px-1 py-1 text-sm text-muted-foreground hover:text-foreground", focusRing),
2675
+ children: [/* @__PURE__ */ jsx(ArrowLeft, {
2676
+ "aria-hidden": "true",
2677
+ className: "h-3.5 w-3.5"
2678
+ }), "Back to files"]
2679
+ }),
2680
+ /* @__PURE__ */ jsx("span", {
2681
+ className: "min-w-0 flex-1 truncate text-sm text-muted-foreground",
2682
+ title: preview.path,
2683
+ children: preview.path
2684
+ }),
2685
+ preview.actions && /* @__PURE__ */ jsx("div", {
2686
+ className: "flex shrink-0 items-center gap-2",
2687
+ children: preview.actions
2688
+ })
2689
+ ]
2690
+ }), /* @__PURE__ */ jsx("div", {
2691
+ className: "min-h-0 flex-1 overflow-auto",
2692
+ children: preview.content
2693
+ })]
2694
+ })]
2695
+ });
2696
+ }
2697
+ //#endregion
2698
+ export { WorkspaceLayout as C, DirectoryPane as S, formatRelativeAge as _, TaskBoard as a, StatusBar as b, SandboxWorkbench as c, createShellShouldRevalidate as d, shellShouldRevalidate as f, useOptimisticSessionItems as g, dispatchSessionCreated as h, CalendarView as i, WorkspaceArtifactView as l, SESSION_CREATED_EVENT as m, WorkspaceFilesPane as n, AuditResults as o, SessionSidebar as p, ApprovalQueue as r, AgentWorkbench as s, ArtifactPane$1 as t, SessionActivityMonitor as u, RuntimePane as v, StatusBanner as x, TerminalPanel as y };
@@ -1,2 +1,2 @@
1
- import { $ as TerminalProps, A as ShellShouldRevalidateArgs, B as SessionSidebarLink, C as SandboxWorkbenchLayoutOptions, D as SandboxWorkbenchSessionProps, E as SandboxWorkbenchProps, F as SessionSidebar, G as SessionOptimisticController, H as SessionSidebarVariant, I as SessionSidebarBadge, J as useOptimisticSessionItems, K as UseOptimisticSessionItemsOptions, L as SessionSidebarFilter, M as createShellShouldRevalidate, N as shellShouldRevalidate, O as SessionActivityMonitor, P as formatRelativeAge, Q as TerminalPanel, R as SessionSidebarGroupBy, S as SandboxWorkbenchFileArtifact, T as SandboxWorkbenchOpenUIArtifact, U as SESSION_CREATED_EVENT, V as SessionSidebarProps, W as SessionCreatedDetail, X as RuntimePaneProps, Y as RuntimePane, Z as TerminalLine, _ as FormAudit, a as ApprovalQueue, at as StatusBannerProps, b as SandboxWorkbenchArtifact, c as CalendarView, ct as WorkspacePaneHeader, d as TaskBoardColumn, dt as WorkspaceLayoutProps, et as ContextBadge, f as TaskBoardItem, g as AuditResultsProps, h as AuditResults, i as ApprovalItem, it as StatusBanner, j as ShellShouldRevalidateOptions, k as SessionActivityMonitorProps, l as CalendarViewProps, lt as WorkspacePaneHeaderProps, m as AuditCheck, n as ArtifactPaneProps, nt as StatusBarProps, o as ApprovalQueueProps, ot as DirectoryPane, p as TaskBoardProps, q as dispatchSessionCreated, r as ApprovalConfidenceStat, rt as BannerType, s as CalendarEvent, st as DirectoryPaneProps, t as ArtifactPane, tt as StatusBar, u as TaskBoard, ut as WorkspaceLayout, v as AgentWorkbench, w as SandboxWorkbenchMarkdownArtifact, x as SandboxWorkbenchCustomArtifact, y as SandboxWorkbench, z as SessionSidebarItem } from "./index-CcbhfDa-.js";
2
- export { AgentWorkbench, type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactPane, type ArtifactPaneProps, type AuditCheck, AuditResults, type AuditResultsProps, type BannerType, type CalendarEvent, CalendarView, type CalendarViewProps, type ContextBadge, DirectoryPane, type DirectoryPaneProps, type FormAudit, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, SessionActivityMonitor, type SessionActivityMonitorProps, type SessionCreatedDetail, type SessionOptimisticController, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TerminalLine, TerminalPanel, type TerminalProps, type UseOptimisticSessionItemsOptions, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
1
+ import { $ as useOptimisticSessionItems, A as SandboxWorkbenchOpenUIArtifact, B as SessionSidebar, C as AgentWorkbench, D as SandboxWorkbenchFileArtifact, E as SandboxWorkbenchCustomArtifact, F as ShellShouldRevalidateArgs, G as SessionSidebarLink, H as SessionSidebarFilter, I as ShellShouldRevalidateOptions, J as SESSION_CREATED_EVENT, K as SessionSidebarProps, L as createShellShouldRevalidate, M as SandboxWorkbenchSessionProps, N as SessionActivityMonitor, O as SandboxWorkbenchLayoutOptions, P as SessionActivityMonitorProps, Q as dispatchSessionCreated, R as shellShouldRevalidate, S as FormAudit, T as SandboxWorkbenchArtifact, U as SessionSidebarGroupBy, V as SessionSidebarBadge, W as SessionSidebarItem, X as SessionOptimisticController, Y as SessionCreatedDetail, Z as UseOptimisticSessionItemsOptions, _ as TaskBoardItem, a as WorkspaceFilesPane, at as ContextBadge, b as AuditResults, c as ApprovalConfidenceStat, ct as BannerType, d as ApprovalQueueProps, dt as DirectoryPane, et as RuntimePane, f as CalendarEvent, ft as DirectoryPaneProps, g as TaskBoardColumn, gt as WorkspaceLayoutProps, h as TaskBoard, ht as WorkspaceLayout, i as WorkspaceArtifactViewProps, it as TerminalProps, j as SandboxWorkbenchProps, k as SandboxWorkbenchMarkdownArtifact, l as ApprovalItem, lt as StatusBanner, m as CalendarViewProps, mt as WorkspacePaneHeaderProps, n as ArtifactPaneProps, nt as TerminalLine, o as WorkspaceFilesPaneProps, ot as StatusBar, p as CalendarView, pt as WorkspacePaneHeader, q as SessionSidebarVariant, r as WorkspaceArtifactView, rt as TerminalPanel, s as WorkspaceFilesPreview, st as StatusBarProps, t as ArtifactPane, tt as RuntimePaneProps, u as ApprovalQueue, ut as StatusBannerProps, v as TaskBoardProps, w as SandboxWorkbench, x as AuditResultsProps, y as AuditCheck, z as formatRelativeAge } from "./index-BxFd7DOv.js";
2
+ export { AgentWorkbench, type ApprovalConfidenceStat, type ApprovalItem, ApprovalQueue, type ApprovalQueueProps, ArtifactPane, type ArtifactPaneProps, type AuditCheck, AuditResults, type AuditResultsProps, type BannerType, type CalendarEvent, CalendarView, type CalendarViewProps, type ContextBadge, DirectoryPane, type DirectoryPaneProps, type FormAudit, RuntimePane, type RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, type SandboxWorkbenchArtifact, type SandboxWorkbenchCustomArtifact, type SandboxWorkbenchFileArtifact, type SandboxWorkbenchLayoutOptions, type SandboxWorkbenchMarkdownArtifact, type SandboxWorkbenchOpenUIArtifact, type SandboxWorkbenchProps, type SandboxWorkbenchSessionProps, SessionActivityMonitor, type SessionActivityMonitorProps, type SessionCreatedDetail, type SessionOptimisticController, SessionSidebar, type SessionSidebarBadge, type SessionSidebarFilter, type SessionSidebarGroupBy, type SessionSidebarItem, type SessionSidebarLink, type SessionSidebarProps, type SessionSidebarVariant, type ShellShouldRevalidateArgs, type ShellShouldRevalidateOptions, StatusBanner, type StatusBannerProps, StatusBar, type StatusBarProps, TaskBoard, type TaskBoardColumn, type TaskBoardItem, type TaskBoardProps, type TerminalLine, TerminalPanel, type TerminalProps, type UseOptimisticSessionItemsOptions, WorkspaceArtifactView, type WorkspaceArtifactViewProps, WorkspaceFilesPane, type WorkspaceFilesPaneProps, type WorkspaceFilesPreview, WorkspaceLayout, type WorkspaceLayoutProps, WorkspacePaneHeader, type WorkspacePaneHeaderProps, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
package/dist/workspace.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { t as WorkspacePaneHeader } from "./workspace-pane-header-Bg1cCcHX.js";
2
- import { _ as TerminalPanel, a as AuditResults, b as DirectoryPane, c as SessionActivityMonitor, d as SessionSidebar, f as SESSION_CREATED_EVENT, g as RuntimePane, h as formatRelativeAge, i as TaskBoard, l as createShellShouldRevalidate, m as useOptimisticSessionItems, n as ApprovalQueue, o as AgentWorkbench, p as dispatchSessionCreated, r as CalendarView, s as SandboxWorkbench, t as ArtifactPane, u as shellShouldRevalidate, v as StatusBar, x as WorkspaceLayout, y as StatusBanner } from "./workspace--bNv-rQy.js";
3
- export { AgentWorkbench, ApprovalQueue, ArtifactPane, AuditResults, CalendarView, DirectoryPane, RuntimePane, SESSION_CREATED_EVENT, SandboxWorkbench, SessionActivityMonitor, SessionSidebar, StatusBanner, StatusBar, TaskBoard, TerminalPanel, WorkspaceLayout, WorkspacePaneHeader, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
2
+ import { C as WorkspaceLayout, S as DirectoryPane, _ as formatRelativeAge, a as TaskBoard, b as StatusBar, c as SandboxWorkbench, d as createShellShouldRevalidate, f as shellShouldRevalidate, g as useOptimisticSessionItems, h as dispatchSessionCreated, i as CalendarView, l as WorkspaceArtifactView, m as SESSION_CREATED_EVENT, n as WorkspaceFilesPane, o as AuditResults, p as SessionSidebar, r as ApprovalQueue, s as AgentWorkbench, t as ArtifactPane, u as SessionActivityMonitor, v as RuntimePane, x as StatusBanner, y as TerminalPanel } from "./workspace-iRO3GeHT.js";
3
+ export { AgentWorkbench, ApprovalQueue, ArtifactPane, AuditResults, CalendarView, DirectoryPane, RuntimePane, SESSION_CREATED_EVENT, SandboxWorkbench, SessionActivityMonitor, SessionSidebar, StatusBanner, StatusBar, TaskBoard, TerminalPanel, WorkspaceArtifactView, WorkspaceFilesPane, WorkspaceLayout, WorkspacePaneHeader, createShellShouldRevalidate, dispatchSessionCreated, formatRelativeAge, shellShouldRevalidate, useOptimisticSessionItems };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox-ui",
3
- "version": "0.119.0",
3
+ "version": "0.120.0",
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",
@@ -128,7 +128,7 @@
128
128
  "@nanostores/react": ">=0.8.4 <2.0.0",
129
129
  "@tangle-network/agent-interface": "^1.0.0 || ^2.0.0",
130
130
  "@tangle-network/brand": "^1.10.0",
131
- "@tangle-network/ui": "^11.13.0",
131
+ "@tangle-network/ui": "^11.15.2",
132
132
  "@tanstack/react-query": "^5.0.0",
133
133
  "@tiptap/core": ">=3.20.4 <4.0.0",
134
134
  "@tiptap/extension-collaboration": ">=3.20.4 <4.0.0",
@@ -214,7 +214,7 @@
214
214
  "@tailwindcss/postcss": "^4.3.3",
215
215
  "@tangle-network/agent-interface": "2.13.1",
216
216
  "@tangle-network/brand": "1.10.0",
217
- "@tangle-network/ui": "11.13.0",
217
+ "@tangle-network/ui": "11.15.2",
218
218
  "@tanstack/react-query": "^5.104.0",
219
219
  "@testing-library/dom": "^10.4.2",
220
220
  "@testing-library/jest-dom": "^7.0.1",
@@ -1,2 +0,0 @@
1
- import { CSV_PREVIEW_ROW_LIMIT, FileArtifactPane as FileArtifactPane$1, FileArtifactPaneProps, FileFormat, FileNode as FileNode$1, FilePreview, FilePreviewKind, FilePreviewProps, FileTabData as FileTabData$1, FileTabs, FileTabsProps, FileTree as FileTree$1, FileTreeProps, FileTreeVisibilityOptions as FileTreeVisibilityOptions$1, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, detectFileFormat, fileExtension, filterFileTree as filterFileTree$1, getCodeLanguage, getFormatLabel, getSyntaxLanguage, parseCsv, resolveFilePreviewKind } from "@tangle-network/ui/files";
2
- export { getCodeLanguage as C, resolveFilePreviewKind as D, parseCsv as E, filterFileTree$1 as S, getSyntaxLanguage as T, RichFileTreeGitStatus as _, FileNode$1 as a, detectFileFormat as b, FilePreviewProps as c, FileTabsProps as d, FileTree$1 as f, RichFileTreeGitEntry as g, RichFileTree as h, FileFormat as i, FileTabData$1 as l, FileTreeVisibilityOptions$1 as m, FileArtifactPane$1 as n, FilePreview as o, FileTreeProps as p, FileArtifactPaneProps as r, FilePreviewKind as s, CSV_PREVIEW_ROW_LIMIT as t, FileTabs as u, RichFileTreeProps as v, getFormatLabel as w, fileExtension as x, RichFileTreeThemeVars as y };