@tangle-network/sandbox-ui 1.1.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +1 -1
  2. package/dist/{AgentGraph-DxAeQQch.d.ts → AgentGraph-B4uWLXlD.d.ts} +12 -17
  3. package/dist/AgentGraph-C1DsA-Rd.js +1369 -0
  4. package/dist/{AgentGraphCanvas-CMdOlSlh.js → AgentGraphCanvas-Bcxq-e6E.js} +557 -383
  5. package/dist/{WorkflowGraph-DZ3xejKE.js → WorkflowGraph-BDjc7V_U.js} +3 -2
  6. package/dist/canvas-theme-DGd0fm1H.js +58 -0
  7. package/dist/{chat-4OZD23RA.js → chat-BrlLa4rg.js} +2 -2
  8. package/dist/chat.d.ts +2 -2
  9. package/dist/chat.js +1 -1
  10. package/dist/{dashboard-ClKA3opr.js → dashboard-FMrtIe9S.js} +3 -3
  11. package/dist/dashboard.js +1 -1
  12. package/dist/globals.css +2366 -1801
  13. package/dist/{index-ucJHuuVZ.d.ts → index-5zOVKgDT.d.ts} +2 -2
  14. package/dist/index-BK8KKLNY.d.ts +26 -0
  15. package/dist/{index-72uBu5lu.d.ts → index-D9-IiEpQ.d.ts} +21 -6
  16. package/dist/index.d.ts +5 -6
  17. package/dist/index.js +8 -291
  18. package/dist/integrations.d.ts +2 -1
  19. package/dist/integrations.js +6 -1
  20. package/dist/latest-events-B34ElSTE.js +190 -0
  21. package/dist/{AgentGraph-DJEQrKTs.js → node-ui-Bfnh08U3.js} +40 -1194
  22. package/dist/primitives-CCdx5Hh_.js +23 -0
  23. package/dist/primitives.d.ts +2 -3
  24. package/dist/primitives.js +1 -2
  25. package/dist/{run-Qern6muT.js → run-BqpdpP1K.js} +161 -60
  26. package/dist/run.d.ts +2 -2
  27. package/dist/run.js +3 -1
  28. package/dist/styles.css +2366 -1801
  29. package/dist/tailwind.css +74 -60
  30. package/dist/tokens.css +452 -851
  31. package/dist/{workbench-DOgYO3Zg.js → workbench-BVnZNhP2.js} +1 -1
  32. package/dist/workbench.js +1 -1
  33. package/dist/workflows.d.ts +3 -7
  34. package/dist/workflows.js +2 -1
  35. package/package.json +11 -10
  36. package/dist/elk-loader-Dl9S7jQk.js +0 -12
  37. package/dist/index-BAEvGqrn.d.ts +0 -26
  38. package/dist/primitives-CiwDp4-0.js +0 -32
  39. package/dist/rolldown-runtime-782esTHO.js +0 -26
@@ -0,0 +1,23 @@
1
+ import { Alert as Alert$1, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, ArtifactPane as ArtifactPane$1, Avatar as Avatar$1, AvatarFallback as AvatarFallback$1, AvatarImage as AvatarImage$1, Badge as Badge$1, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button as Button$1, CATEGORY_TONES, Calendar, Card as Card$1, CardContent as CardContent$1, CardDescription as CardDescription$1, CardFooter, CardHeader as CardHeader$1, CardTitle as CardTitle$1, Checkbox, Chip, CodeBlock, Collapsible, CollapsibleContent, CollapsibleTrigger, ComplianceBadge, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, DatePicker as DatePicker$1, Dialog as Dialog$1, DialogClose as DialogClose$1, DialogContent as DialogContent$1, DialogDescription as DialogDescription$1, DialogFooter as DialogFooter$1, DialogHeader as DialogHeader$1, DialogOverlay, DialogPortal, DialogTitle as DialogTitle$1, DialogTrigger as DialogTrigger$1, DropZone, DropdownMenu as DropdownMenu$1, DropdownMenuCheckboxItem, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuGroup, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuLabel as DropdownMenuLabel$1, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator as DropdownMenuSeparator$1, DropdownMenuShortcut, DropdownMenuSub as DropdownMenuSub$1, DropdownMenuSubContent as DropdownMenuSubContent$1, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuTrigger as DropdownMenuTrigger$1, EmptyState as EmptyState$1, Field, FilterField as FilterField$1, Heading, HelpText, HoverCard, HoverCardContent, HoverCardDescription, HoverCardHeader, HoverCardTitle, HoverCardTrigger, IconTile, InlineCode, Input as Input$1, Label as Label$1, Metric, MetricChart, MetricStrip, PageHeader, PageHeader as PageHeader$1, PageShell as PageShell$1, Pagination, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Progress as Progress$1, RadioGroup, RadioGroupItem, SegmentedControl as SegmentedControl$1, Select as Select$1, SelectContent as SelectContent$1, SelectGroup, SelectItem as SelectItem$1, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger as SelectTrigger$1, SelectValue as SelectValue$1, Separator, SeriesSparkline, SettingsList, SettingsListItem, SettingsNote, SettingsRow, SettingsSection, Sheet as Sheet$1, SheetClose as SheetClose$1, SheetContent as SheetContent$1, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle as SheetTitle$1, SheetTrigger as SheetTrigger$1, SidebarDropZone, Skeleton as Skeleton$1, SkeletonCard as SkeletonCard$1, SkeletonTable, Slider, StatCard as StatCard$1, StatusPill as StatusPill$1, Switch, TONE_CLASSES, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs as Tabs$1, TabsContent as TabsContent$1, TabsList as TabsList$1, TabsTrigger as TabsTrigger$1, Tag, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, Textarea as Textarea$1, ThemeToggle, TimeSelect, ToastContainer, ToastProvider, Toolbar as Toolbar$1, Tooltip as Tooltip$1, TooltipContent as TooltipContent$1, TooltipProvider as TooltipProvider$1, TooltipTrigger as TooltipTrigger$1, UploadProgress, Wizard, WizardStep, badgeVariants, buttonVariants, fieldMessageId, formatCalendarDate, initialsOf, localToday as localToday$1, normalizeSeries, parseCalendarDate, periodDelta, seriesAreaPath, seriesExtent, seriesLinePath, seriesMean, seriesScale, toneFor, useTheme, useToast } from "@tangle-network/ui/primitives";
2
+ import { Logo, TangleKnot as TangleKnot$1 } from "@tangle-network/brand";
3
+ import { jsx } from "react/jsx-runtime";
4
+ // src/primitives/logo.tsx
5
+ /** Keep the Sandbox wordmark API while Brand owns the mark and layout. */
6
+ function Logo$1({ variant = "sandbox", size = "md", className, iconOnly = false }) {
7
+ return /* @__PURE__ */ jsx(Logo, {
8
+ size,
9
+ variant: iconOnly ? "icon" : "full",
10
+ suffix: variant === "sandbox" ? "Sandbox" : null,
11
+ className
12
+ });
13
+ }
14
+ Logo$1.displayName = "Logo";
15
+ // src/primitives/heading.tsx
16
+ /** Compatibility name for the canonical nested (h2) page header. */
17
+ function SectionTitle(props) {
18
+ return /* @__PURE__ */ jsx(PageHeader, {
19
+ ...props,
20
+ level: 2
21
+ });
22
+ }
23
+ export { ContextMenuShortcut as $, TabsContent$1 as $n, Popover as $t, Card$1 as A, SheetHeader as An, seriesAreaPath as Ar, DropdownMenuSubTrigger$1 as At, CollapsibleContent as B, StatCard$1 as Bn, TangleKnot$1 as Br, HoverCardHeader as Bt, BreadcrumbLink as C, SettingsRow as Cn, fieldMessageId as Cr, DropdownMenuPortal as Ct, Button$1 as D, SheetContent$1 as Dn, normalizeSeries as Dr, DropdownMenuShortcut as Dt, BreadcrumbSeparator as E, SheetClose$1 as En, localToday$1 as Er, DropdownMenuSeparator$1 as Et, CardTitle$1 as F, SidebarDropZone as Fn, toneFor as Fr, Heading as Ft, ContextMenuContent as G, TableBody as Gn, Input$1 as Gt, ComplianceBadge as H, Switch as Hn, HoverCardTrigger as Ht, Checkbox as I, Skeleton$1 as In, useTheme as Ir, HelpText as It, ContextMenuLabel as J, TableFooter as Jn, MetricChart as Jt, ContextMenuGroup as K, TableCaption as Kn, Label$1 as Kt, Chip as L, SkeletonCard$1 as Ln, useToast as Lr, HoverCard as Lt, CardDescription$1 as M, SheetPortal as Mn, seriesLinePath as Mr, EmptyState$1 as Mt, CardFooter as N, SheetTitle$1 as Nn, seriesMean as Nr, Field as Nt, CATEGORY_TONES as O, SheetDescription as On, parseCalendarDate as Or, DropdownMenuSub$1 as Ot, CardHeader$1 as P, SheetTrigger$1 as Pn, seriesScale as Pr, FilterField$1 as Pt, ContextMenuSeparator as Q, Tabs$1 as Qn, Pagination as Qt, CodeBlock as R, SkeletonTable as Rn, SectionTitle as Rr, HoverCardContent as Rt, BreadcrumbItem as S, SettingsNote as Sn, buttonVariants as Sr, DropdownMenuLabel$1 as St, BreadcrumbPage as T, Sheet$1 as Tn, initialsOf as Tr, DropdownMenuRadioItem as Tt, ContextMenu as U, TONE_CLASSES as Un, IconTile as Ut, CollapsibleTrigger as V, StatusPill$1 as Vn, HoverCardTitle as Vt, ContextMenuCheckboxItem as W, Table as Wn, InlineCode as Wt, ContextMenuRadioGroup as X, TableHeader as Xn, PageHeader$1 as Xt, ContextMenuPortal as Y, TableHead as Yn, MetricStrip as Yt, ContextMenuRadioItem as Z, TableRow as Zn, PageShell$1 as Zt, AvatarFallback$1 as _, SelectValue$1 as _n, TooltipTrigger$1 as _r, DropdownMenu$1 as _t, AlertDialogCancel as a, RadioGroup as an, TerminalInput as ar, DatePicker$1 as at, Breadcrumb as b, SettingsList as bn, WizardStep as br, DropdownMenuGroup as bt, AlertDialogFooter as c, Select$1 as cn, Textarea$1 as cr, DialogContent$1 as ct, AlertDialogPortal as d, SelectItem$1 as dn, ToastContainer as dr, DialogHeader$1 as dt, PopoverAnchor as en, TabsList$1 as er, ContextMenuSub as et, AlertDialogTitle as f, SelectLabel as fn, ToastProvider as fr, DialogOverlay as ft, Avatar$1 as g, SelectTrigger$1 as gn, TooltipProvider$1 as gr, DropZone as gt, ArtifactPane$1 as h, SelectSeparator as hn, TooltipContent$1 as hr, DialogTrigger$1 as ht, AlertDialogAction as i, Progress$1 as in, TerminalDisplay as ir, CopyButton as it, CardContent$1 as j, SheetOverlay as jn, seriesExtent as jr, DropdownMenuTrigger$1 as jt, Calendar as k, SheetFooter as kn, periodDelta as kr, DropdownMenuSubContent$1 as kt, AlertDialogHeader as l, SelectContent$1 as ln, ThemeToggle as lr, DialogDescription$1 as lt, AlertTitle as m, SelectScrollUpButton as mn, Tooltip$1 as mr, DialogTitle$1 as mt, AlertDescription as n, PopoverContent as nn, Tag as nr, ContextMenuSubTrigger as nt, AlertDialogContent as o, RadioGroupItem as on, TerminalLine as or, Dialog$1 as ot, AlertDialogTrigger as p, SelectScrollDownButton as pn, Toolbar$1 as pr, DialogPortal as pt, ContextMenuItem as q, TableCell as qn, Metric as qt, AlertDialog as r, PopoverTrigger as rn, TerminalCursor as rr, ContextMenuTrigger as rt, AlertDialogDescription as s, SegmentedControl$1 as sn, TextShimmer as sr, DialogClose$1 as st, Alert$1 as t, PopoverClose as tn, TabsTrigger$1 as tr, ContextMenuSubContent as tt, AlertDialogOverlay as u, SelectGroup as un, TimeSelect as ur, DialogFooter$1 as ut, AvatarImage$1 as v, Separator as vn, UploadProgress as vr, DropdownMenuCheckboxItem as vt, BreadcrumbList as w, SettingsSection as wn, formatCalendarDate as wr, DropdownMenuRadioGroup as wt, BreadcrumbEllipsis as x, SettingsListItem as xn, badgeVariants as xr, DropdownMenuItem$1 as xt, Badge$1 as y, SeriesSparkline as yn, Wizard as yr, DropdownMenuContent$1 as yt, Collapsible as z, Slider as zn, Logo$1 as zr, HoverCardDescription as zt };
@@ -1,3 +1,2 @@
1
- import { a as LogoProps, i as Logo, n as SectionTitle, o as TangleKnot, r as SectionTitleProps, t as HeadingProps } from "./index-BAEvGqrn.js";
2
- export * from "@tangle-network/ui/primitives";
3
- export { type HeadingProps, Logo, type LogoProps, SectionTitle, type SectionTitleProps, TangleKnot };
1
+ import { $ as CollapsibleContent, $i as Logo, $n as Separator, $r as TabsContent, $t as FieldProps, A as BreadcrumbPage, Ai as WizardProps, An as PaginationProps, Ar as SidebarDropZone, At as DialogPortal, B as CardDescription, Bi as parseCalendarDate, Bn as SegmentedControl, Br as StatusTone, Bt as DropdownMenuLabel, C as Badge, Ci as TooltipContent, Cn as MetricStrip, Cr as SheetDescription, Ct as Dialog, D as BreadcrumbItem, Di as UploadProgress, Dn as PageShell, Dr as SheetPortal, Dt as DialogFooter, E as BreadcrumbEllipsis, Ei as UploadFile, En as PageHeaderProps, Er as SheetOverlay, Et as DialogDescription, F as Calendar, Fi as fieldMessageId, Fn as PopoverContent, Fr as Slider, Ft as DropdownMenu, G as CategoryTone, Gi as seriesMean, Gn as SelectGroup, Gr as TableCaption, Gt as DropdownMenuShortcut, H as CardHeader, Hi as seriesAreaPath, Hn as SegmentedControlProps, Hr as TONE_CLASSES, Ht as DropdownMenuRadioGroup, I as CalendarDate, Ii as formatCalendarDate, In as PopoverTrigger, Ir as StatCard, It as DropdownMenuCheckboxItem, J as Chip, Ji as useTheme, Jn as SelectScrollDownButton, Jr as TableHead, Jt as DropdownMenuSubTrigger, K as ChartReferenceLine, Ki as seriesScale, Kn as SelectItem, Kr as TableCell, Kt as DropdownMenuSub, L as CalendarProps, Li as initialsOf, Ln as Progress, Lr as StatCardProps, Lt as DropdownMenuContent, M as Button, Mi as WizardStepProps, Mn as Popover, Mr as Skeleton, Mt as DialogTrigger, N as ButtonProps, Ni as badgeVariants, Nn as PopoverAnchor, Nr as SkeletonCard, Nt as DropZone, O as BreadcrumbLink, Oi as UploadProgressProps, On as PageShellProps, Or as SheetTitle, Ot as DialogHeader, P as CATEGORY_TONES, Pi as buttonVariants, Pn as PopoverClose, Pr as SkeletonTable, Pt as DropZoneProps, Q as Collapsible, Qi as SectionTitleProps, Qn as SelectValue, Qr as Tabs, Qt as Field, R as Card, Ri as localToday, Rn as RadioGroup, Rr as StatusPill, Rt as DropdownMenuGroup, S as AvatarProps, Si as Tooltip, Sn as MetricProps, Sr as SheetContent, St as DatePickerProps, T as Breadcrumb, Ti as TooltipTrigger, Tn as PageHeader, Tr as SheetHeader, Tt as DialogContent, U as CardTitle, Ui as seriesExtent, Un as Select, Ur as Table, Ut as DropdownMenuRadioItem, V as CardFooter, Vi as periodDelta, Vn as SegmentedControlOption, Vr as Switch, Vt as DropdownMenuPortal, W as CardTitleProps, Wi as seriesLinePath, Wn as SelectContent, Wr as TableBody, Wt as DropdownMenuSeparator, X as CodeBlock, Xi as HeadingProps, Xn as SelectSeparator, Xr as TableProps, Xt as EmptyState, Y as ChipProps, Yi as useToast, Yn as SelectScrollUpButton, Yr as TableHeader, Yt as DropdownMenuTrigger, Z as CodeBlockProps, Zi as SectionTitle, Zn as SelectTrigger, Zr as TableRow, Zt as EmptyStateProps, _ as ArtifactPane, _i as ToastProvider, _n as InputProps, _r as SettingsRowProps, _t as ContextMenuSubContent, a as AlertDialogCancel, ai as TerminalDisplay, an as HelpTextProps, ar as SeriesSparklineProps, at as ContextMenu, b as AvatarFallback, bi as Toolbar, bn as MetricChart, br as Sheet, bt as CopyButton, c as AlertDialogFooter, ci as TextShimmer, cn as HoverCardDescription, cr as SettingsListColumns, ct as ContextMenuGroup, d as AlertDialogPortal, di as TextareaProps, dn as HoverCardTrigger, dr as SettingsListMenuItem, dt as ContextMenuPortal, ea as LogoProps, ei as TabsList, en as FilterField, er as SeriesExtent, et as CollapsibleTrigger, f as AlertDialogTitle, fi as ThemeToggle, fn as IconTile, fr as SettingsListProps, ft as ContextMenuRadioGroup, g as AlertTone, gi as ToastContainer, gn as Input, gr as SettingsRowLayout, gt as ContextMenuSub, h as AlertTitle, hi as Toast, hn as InlineCodeProps, hr as SettingsRow, ht as ContextMenuShortcut, i as AlertDialogAction, ii as TerminalCursor, in as HelpText, ir as SeriesSparkline, it as ComplianceStatus, j as BreadcrumbSeparator, ji as WizardStep, jn as PeriodDelta, jr as SidebarDropZoneProps, jt as DialogTitle, k as BreadcrumbList, ki as Wizard, kn as Pagination, kr as SheetTrigger, kt as DialogOverlay, l as AlertDialogHeader, li as TextShimmerProps, ln as HoverCardHeader, lr as SettingsListItem, lt as ContextMenuItem, m as AlertProps, mi as TimeSelectProps, mn as InlineCode, mr as SettingsNoteProps, mt as ContextMenuSeparator, n as AlertDescription, ni as Tag, nn as Heading, nr as SeriesPointInput, nt as ComplianceBadgeProps, o as AlertDialogContent, oi as TerminalInput, on as HoverCard, or as SettingsList, ot as ContextMenuCheckboxItem, p as AlertDialogTrigger, pi as TimeSelect, pn as IconTileProps, pr as SettingsNote, pt as ContextMenuRadioItem, q as Checkbox, qi as toneFor, qn as SelectLabel, qr as TableFooter, qt as DropdownMenuSubContent, r as AlertDialog, ri as TagProps, rn as HeadingVariant, rr as SeriesScale, rt as ComplianceProduct, s as AlertDialogDescription, si as TerminalLine, sn as HoverCardContent, sr as SettingsListAction, st as ContextMenuContent, t as Alert, ta as TangleKnot, ti as TabsTrigger, tn as FilterFieldProps, tr as SeriesPoint, tt as ComplianceBadge, u as AlertDialogOverlay, ui as Textarea, un as HoverCardTitle, ur as SettingsListItemProps, ut as ContextMenuLabel, v as ArtifactPaneProps, vi as Tone, vn as Label, vr as SettingsSection, vt as ContextMenuSubTrigger, w as BadgeProps, wi as TooltipProvider, wn as MetricStripProps, wr as SheetFooter, wt as DialogClose, x as AvatarImage, xi as ToolbarProps, xn as MetricChartProps, xr as SheetClose, xt as DatePicker, y as Avatar, yi as ToneClasses, yn as Metric, yr as SettingsSectionProps, yt as ContextMenuTrigger, z as CardContent, zi as normalizeSeries, zn as RadioGroupItem, zr as StatusPillProps, zt as DropdownMenuItem } from "./index-BK8KKLNY.js";
2
+ export { Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTone, ArtifactPane, type ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, type AvatarProps, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, type ButtonProps, CATEGORY_TONES, Calendar, type CalendarDate, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, type CategoryTone, type ChartReferenceLine, Checkbox, Chip, type ChipProps, CodeBlock, type CodeBlockProps, Collapsible, CollapsibleContent, CollapsibleTrigger, ComplianceBadge, type ComplianceBadgeProps, type ComplianceProduct, type ComplianceStatus, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropZone, type DropZoneProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EmptyStateProps, Field, type FieldProps, FilterField, type FilterFieldProps, Heading, type HeadingProps, type HeadingVariant, HelpText, type HelpTextProps, HoverCard, HoverCardContent, HoverCardDescription, HoverCardHeader, HoverCardTitle, HoverCardTrigger, IconTile, type IconTileProps, InlineCode, type InlineCodeProps, Input, type InputProps, Label, Logo, type LogoProps, Metric, MetricChart, type MetricChartProps, type MetricProps, MetricStrip, type MetricStripProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, Pagination, type PaginationProps, type PeriodDelta, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, SectionTitle, type SectionTitleProps, SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type SeriesExtent, type SeriesPoint, type SeriesPointInput, type SeriesScale, SeriesSparkline, type SeriesSparklineProps, SettingsList, type SettingsListAction, type SettingsListColumns, SettingsListItem, type SettingsListItemProps, type SettingsListMenuItem, type SettingsListProps, SettingsNote, type SettingsNoteProps, SettingsRow, type SettingsRowLayout, type SettingsRowProps, SettingsSection, type SettingsSectionProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SidebarDropZone, type SidebarDropZoneProps, Skeleton, SkeletonCard, SkeletonTable, Slider, StatCard, type StatCardProps, StatusPill, type StatusPillProps, type StatusTone, Switch, TONE_CLASSES, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, type TagProps, TangleKnot, TerminalCursor, TerminalDisplay, TerminalInput, TerminalLine, TextShimmer, type TextShimmerProps, Textarea, type TextareaProps, ThemeToggle, TimeSelect, type TimeSelectProps, type Toast, ToastContainer, ToastProvider, type Tone, type ToneClasses, Toolbar, type ToolbarProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type UploadFile, UploadProgress, type UploadProgressProps, Wizard, type WizardProps, WizardStep, type WizardStepProps, badgeVariants, buttonVariants, fieldMessageId, formatCalendarDate, initialsOf, localToday, normalizeSeries, parseCalendarDate, periodDelta, seriesAreaPath, seriesExtent, seriesLinePath, seriesMean, seriesScale, toneFor, useTheme, useToast };
@@ -1,2 +1 @@
1
- export { r as Logo, n as SectionTitle, i as TangleKnot } from "./primitives-CiwDp4-0.js";
2
- export * from "@tangle-network/ui/primitives";
1
+ export { t as Alert, n as AlertDescription, r as AlertDialog, i as AlertDialogAction, a as AlertDialogCancel, o as AlertDialogContent, s as AlertDialogDescription, c as AlertDialogFooter, l as AlertDialogHeader, u as AlertDialogOverlay, d as AlertDialogPortal, f as AlertDialogTitle, p as AlertDialogTrigger, m as AlertTitle, h as ArtifactPane, g as Avatar, _ as AvatarFallback, v as AvatarImage, y as Badge, b as Breadcrumb, x as BreadcrumbEllipsis, S as BreadcrumbItem, C as BreadcrumbLink, w as BreadcrumbList, T as BreadcrumbPage, E as BreadcrumbSeparator, D as Button, O as CATEGORY_TONES, k as Calendar, A as Card, j as CardContent, M as CardDescription, N as CardFooter, P as CardHeader, F as CardTitle, I as Checkbox, L as Chip, R as CodeBlock, z as Collapsible, B as CollapsibleContent, V as CollapsibleTrigger, H as ComplianceBadge, U as ContextMenu, W as ContextMenuCheckboxItem, G as ContextMenuContent, K as ContextMenuGroup, q as ContextMenuItem, J as ContextMenuLabel, Y as ContextMenuPortal, X as ContextMenuRadioGroup, Z as ContextMenuRadioItem, Q as ContextMenuSeparator, $ as ContextMenuShortcut, et as ContextMenuSub, tt as ContextMenuSubContent, nt as ContextMenuSubTrigger, rt as ContextMenuTrigger, it as CopyButton, at as DatePicker, ot as Dialog, st as DialogClose, ct as DialogContent, lt as DialogDescription, ut as DialogFooter, dt as DialogHeader, ft as DialogOverlay, pt as DialogPortal, mt as DialogTitle, ht as DialogTrigger, gt as DropZone, _t as DropdownMenu, vt as DropdownMenuCheckboxItem, yt as DropdownMenuContent, bt as DropdownMenuGroup, xt as DropdownMenuItem, St as DropdownMenuLabel, Ct as DropdownMenuPortal, wt as DropdownMenuRadioGroup, Tt as DropdownMenuRadioItem, Et as DropdownMenuSeparator, Dt as DropdownMenuShortcut, Ot as DropdownMenuSub, kt as DropdownMenuSubContent, At as DropdownMenuSubTrigger, jt as DropdownMenuTrigger, Mt as EmptyState, Nt as Field, Pt as FilterField, Ft as Heading, It as HelpText, Lt as HoverCard, Rt as HoverCardContent, zt as HoverCardDescription, Bt as HoverCardHeader, Vt as HoverCardTitle, Ht as HoverCardTrigger, Ut as IconTile, Wt as InlineCode, Gt as Input, Kt as Label, zr as Logo, qt as Metric, Jt as MetricChart, Yt as MetricStrip, Xt as PageHeader, Zt as PageShell, Qt as Pagination, $t as Popover, en as PopoverAnchor, tn as PopoverClose, nn as PopoverContent, rn as PopoverTrigger, in as Progress, an as RadioGroup, on as RadioGroupItem, Rr as SectionTitle, sn as SegmentedControl, cn as Select, ln as SelectContent, un as SelectGroup, dn as SelectItem, fn as SelectLabel, pn as SelectScrollDownButton, mn as SelectScrollUpButton, hn as SelectSeparator, gn as SelectTrigger, _n as SelectValue, vn as Separator, yn as SeriesSparkline, bn as SettingsList, xn as SettingsListItem, Sn as SettingsNote, Cn as SettingsRow, wn as SettingsSection, Tn as Sheet, En as SheetClose, Dn as SheetContent, On as SheetDescription, kn as SheetFooter, An as SheetHeader, jn as SheetOverlay, Mn as SheetPortal, Nn as SheetTitle, Pn as SheetTrigger, Fn as SidebarDropZone, In as Skeleton, Ln as SkeletonCard, Rn as SkeletonTable, zn as Slider, Bn as StatCard, Vn as StatusPill, Hn as Switch, Un as TONE_CLASSES, Wn as Table, Gn as TableBody, Kn as TableCaption, qn as TableCell, Jn as TableFooter, Yn as TableHead, Xn as TableHeader, Zn as TableRow, Qn as Tabs, $n as TabsContent, er as TabsList, tr as TabsTrigger, nr as Tag, Br as TangleKnot, rr as TerminalCursor, ir as TerminalDisplay, ar as TerminalInput, or as TerminalLine, sr as TextShimmer, cr as Textarea, lr as ThemeToggle, ur as TimeSelect, dr as ToastContainer, fr as ToastProvider, pr as Toolbar, mr as Tooltip, hr as TooltipContent, gr as TooltipProvider, _r as TooltipTrigger, vr as UploadProgress, yr as Wizard, br as WizardStep, xr as badgeVariants, Sr as buttonVariants, Cr as fieldMessageId, wr as formatCalendarDate, Tr as initialsOf, Er as localToday, Dr as normalizeSeries, Or as parseCalendarDate, kr as periodDelta, Ar as seriesAreaPath, jr as seriesExtent, Mr as seriesLinePath, Nr as seriesMean, Pr as seriesScale, Fr as toneFor, Ir as useTheme, Lr as useToast } from "./primitives-CCdx5Hh_.js";
@@ -1,13 +1,14 @@
1
1
  import { t as cn } from "./utils-BER_bdgE.js";
2
2
  import { i as modelBrandFor, t as ModelBrandStack } from "./model-brand-bTcMjQtB.js";
3
3
  import { t as ProviderIcon } from "./provider-logo-CPKRPHcS.js";
4
- import { t as AgentGraph } from "./AgentGraph-DJEQrKTs.js";
4
+ import { f as syncAmbient, l as activityTiming, t as AgentGraph, u as ambientStyle } from "./AgentGraph-C1DsA-Rd.js";
5
+ import { t as LatestEvents } from "./latest-events-B34ElSTE.js";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
7
  import { useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
7
8
  import { X } from "lucide-react";
8
9
  import { AgentTimeline } from "@tangle-network/ui/chat";
9
- import { ApprovalCard, ApprovalDiffSummary, ExpandedToolDetail, InlineThinkingItem, InlineThinkingItem as InlineThinkingItem$1, InlineToolItem, LiveDuration, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, TaskList, ToolCallFeed, parseToolEvent, showsTaskPriority, taskProgress, taskStatus } from "@tangle-network/ui/run";
10
- import { FlowWaterfall } from "@tangle-network/charts/react";
10
+ import { ApprovalCard, ApprovalDiffSummary, ExpandedToolDetail, InlineThinkingItem, InlineThinkingItem as InlineThinkingItem$1, InlineToolItem, LiveDuration, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, RunStatusIcon as RunStatusIcon$1, TaskList, ToolCallFeed, parseToolEvent, runStatus, runStatus as runStatus$1, showsTaskPriority, statusMeta as statusMeta$1, taskProgress, taskStatus } from "@tangle-network/ui/run";
11
+ import { FlowWaterfall, toolGlyph } from "@tangle-network/charts/react";
11
12
  // src/run/trace-waterfall.tsx
12
13
  /** Agent and model spans show their lab/host mark; tool spans show their provider's mark. Unknown keeps the kind glyph. */
13
14
  function traceSpanMark(span) {
@@ -264,32 +265,82 @@ function agentOf(span, byId) {
264
265
  }
265
266
  /** The trace's agents as a spawn tree at the cursor: an agent not started by then is left out, one that ends after it is
266
267
  * still running, so the Graph and the Timeline always show the same moment. */
267
- function agentGraphAt(spans, byId, at, epoch, cards) {
268
- const nodes = [];
269
- const edges = [];
270
- const seen = /* @__PURE__ */ new Set();
268
+ function agentGraphAt(spans, byId, at, epoch, cards, extraEdges = []) {
269
+ const nodes = [], edges = [], seen = /* @__PURE__ */ new Set();
270
+ const timed = new Set(spans.flatMap((span) => span.kind === "pipeline" && span.id ? [span.id] : []));
271
+ const recorded = /* @__PURE__ */ new Map();
272
+ for (const [index, span] of spans.entries()) {
273
+ if (span.kind === "pipeline" || at !== null && span.startMs > at) continue;
274
+ const owner = agentOf(span, byId);
275
+ if (!owner?.id) continue;
276
+ const events = recorded.get(owner.id) ?? [];
277
+ const endpoints = [{
278
+ suffix: "start",
279
+ label: "Started ",
280
+ time: span.startMs
281
+ }];
282
+ if (span.status !== "running" && span.endMs !== span.startMs && (at === null || span.endMs <= at)) endpoints.push({
283
+ suffix: "end",
284
+ label: "Recorded ",
285
+ time: span.endMs
286
+ });
287
+ for (const endpoint of endpoints) events.push({
288
+ id: (span.id ?? String(index)) + ":" + endpoint.suffix,
289
+ label: endpoint.label + span.name,
290
+ at: epoch == null || !Number.isFinite(epoch) ? void 0 : epoch + endpoint.time
291
+ });
292
+ recorded.set(owner.id, events);
293
+ }
271
294
  for (const span of spans) {
272
- if (span.kind !== "pipeline" || !span.id || at !== null && span.startMs > at) continue;
273
- if (seen.has(span.id)) continue;
295
+ if (span.kind !== "pipeline" || !span.id || seen.has(span.id) || at !== null && span.startMs > at) continue;
274
296
  seen.add(span.id);
275
- const running = at === null ? span.status === "running" : span.endMs > at || span.status === "running";
297
+ const card = cards?.[span.id];
298
+ const state = at !== null && (span.endMs > at || span.status === "running") ? "running" : runStatus(span.status ?? "unknown");
299
+ const activity = (span.activityAt ?? []).reduce((last, time) => Number.isFinite(time) && (at === null || time <= at) ? Math.max(last, time) : last, -Infinity);
300
+ const events = (card?.events ?? recorded.get(span.id) ?? []).filter((event) => at === null || epoch != null && event.at != null && event.at <= epoch + at).sort((a, b) => (a.at ?? 0) - (b.at ?? 0));
301
+ const timing = activityTiming({
302
+ events,
303
+ lastActivityAt: epoch != null && Number.isFinite(epoch) && Number.isFinite(activity) ? epoch + activity : at === null ? card?.lastActivityAt : void 0,
304
+ medianEventGapMs: span.medianEventGapMs ?? (at === null ? card?.medianEventGapMs : void 0)
305
+ });
276
306
  nodes.push({
307
+ ...card,
277
308
  id: span.id,
278
- label: span.name,
279
- model: span.detail,
280
- costUsd: span.costUsd,
281
- status: running ? "running" : span.status === "failed" ? "failed" : "succeeded",
282
- startedAt: epoch === void 0 ? void 0 : epoch + span.startMs,
283
- ...cards?.[span.id]
309
+ label: card?.label ?? span.name,
310
+ model: card?.model ?? span.detail,
311
+ status: at === null && card?.status ? card.status : state === "done" ? "succeeded" : state,
312
+ costUsd: at === null ? card?.costUsd ?? span.costUsd : span.endMs <= at ? span.costUsd : void 0,
313
+ startedAt: epoch == null || !Number.isFinite(epoch) ? at === null ? card?.startedAt : void 0 : epoch + span.startMs,
314
+ ...timing,
315
+ events: events.slice(-4),
316
+ turn: at === null ? card?.turn : void 0,
317
+ result: at === null ? card?.result ?? span.output : span.endMs <= at ? span.output : void 0,
318
+ commits: at === null ? card?.commits : void 0,
319
+ tokens: at === null ? card?.tokens : void 0
284
320
  });
285
- const parent = span.parentId ? byId.get(span.parentId) : void 0;
286
- const spawner = parent && agentOf(parent, byId);
321
+ const parent = span.parentId ? byId.get(span.parentId) : void 0, spawner = parent && agentOf(parent, byId);
287
322
  if (spawner?.id) edges.push({
288
323
  from: spawner.id,
289
324
  to: span.id,
290
325
  kind: "spawn"
291
326
  });
292
327
  }
328
+ for (const [id, card] of Object.entries(cards ?? {})) if (!timed.has(id)) nodes.push(at === null ? {
329
+ ...card,
330
+ id,
331
+ label: card.label ?? id,
332
+ status: card.status ?? "unknown"
333
+ } : {
334
+ id,
335
+ label: card.label ?? id,
336
+ model: card.model,
337
+ harness: card.harness,
338
+ role: card.role,
339
+ status: "unknown",
340
+ turn: "Timing unavailable at this cursor"
341
+ });
342
+ const ids = new Set(nodes.map((node) => node.id));
343
+ for (const edge of extraEdges) if (ids.has(edge.from) && ids.has(edge.to) && (edge.kind !== "spawn" || !edges.some((prior) => prior.kind === "spawn" && prior.from === edge.from && prior.to === edge.to))) edges.push(edge);
293
344
  return {
294
345
  nodes,
295
346
  edges
@@ -342,7 +393,7 @@ function NotTimeIndexed({ label }) {
342
393
  * streaming in a right-hand drawer, and the page's code workspace and scoreboard following the time cursor. Scrubbing is time travel:
343
394
  * every panel shows what was true at the cursor, and the conversation shows what had been said by then.
344
395
  */
345
- function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scoreboard, selectedAgentId, onSelectAgent, agentCards, className, ...waterfall }) {
396
+ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scoreboard, selectedAgentId, onSelectAgent, agentCards, agentGraph, className, ...waterfall }) {
346
397
  const byId = useMemo(() => new Map(trace.spans.flatMap((span) => span.id ? [[span.id, span]] : [])), [trace]);
347
398
  const [ownSelection, setOwnSelection] = useState();
348
399
  const selected = selectedAgentId ?? ownSelection;
@@ -350,7 +401,10 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
350
401
  setOwnSelection(agentId);
351
402
  onSelectAgent?.(agentId);
352
403
  };
353
- const agent = selected ? byId.get(selected) : void 0;
404
+ const agent = selected ? byId.get(selected) : void 0, card = selected ? agentCards?.[selected] : void 0;
405
+ const agentId = agent?.id ?? (card ? selected : void 0), agentName = agent?.name ?? card?.label ?? agentId, agentModel = agent?.detail ?? card?.model;
406
+ const { defaultLayout = "tree", ...graphOptions } = agentGraph ?? {};
407
+ const [graphLayout, setGraphLayout] = useState(defaultLayout);
354
408
  const [cursor, setCursor] = useState(null);
355
409
  const stream = useAgentStream(selected && streamUrl ? streamUrl(selected) : void 0);
356
410
  const origin = useMemo(() => {
@@ -362,15 +416,21 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
362
416
  agent,
363
417
  stream.entries
364
418
  ]);
365
- const [view, setView] = useState("timeline");
366
- const graph = useMemo(() => view === "graph" ? agentGraphAt(trace.spans, byId, cursor, waterfall.startedAt, agentCards) : void 0, [
367
- view,
419
+ const graph = useMemo(() => agentGraphAt(trace.spans, byId, cursor, waterfall.startedAt, agentCards, agentGraph?.edges), [
368
420
  trace,
369
421
  byId,
370
422
  cursor,
371
423
  waterfall.startedAt,
372
- agentCards
424
+ agentCards,
425
+ agentGraph?.edges
373
426
  ]);
427
+ const selectedNode = graph.nodes.find((node) => node.id === agentId);
428
+ const facts = cursor === null || agent && agent.endMs <= cursor ? [...agent?.facts ?? []] : [];
429
+ for (const [label, value] of [["Recorded result", selectedNode?.result], ["Activity", selectedNode?.turn]]) if (value && !facts.some((fact) => fact.value === value)) facts.push({
430
+ label,
431
+ value
432
+ });
433
+ const graphNow = cursor !== null && waterfall.startedAt !== void 0 ? waterfall.startedAt + cursor : void 0;
374
434
  const shown = cursor === null || origin === void 0 ? stream.entries : stream.entries.filter((entry) => entry.at - origin <= cursor);
375
435
  const live = stream.alive && !stream.error && cursor === null;
376
436
  const items = useMemo(() => timelineItems(shown, live), [shown, live]);
@@ -391,42 +451,65 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
391
451
  className: cn("sandbox-trace-workspace flex min-h-0 flex-col gap-3", className),
392
452
  children: [
393
453
  /* @__PURE__ */ jsx("div", {
394
- role: "group",
395
- "aria-label": "Run view",
396
- className: "flex gap-1 self-end rounded-lg border border-border bg-card p-0.5 text-sm",
397
- children: ["timeline", "graph"].map((option) => /* @__PURE__ */ jsx("button", {
398
- type: "button",
399
- "aria-pressed": view === option,
400
- onClick: () => setView(option),
401
- className: "rounded-md px-3 py-1 capitalize text-muted-foreground aria-pressed:bg-muted aria-pressed:text-foreground",
402
- children: option
403
- }, option))
404
- }),
405
- graph && /* @__PURE__ */ jsx(AgentGraph, {
406
- nodes: graph.nodes,
407
- edges: graph.edges,
408
- selectedId: agent?.id ?? null,
409
- onSelect: select,
410
- live: cursor === null && graph.nodes.some((node) => node.status === "running"),
411
- now: cursor !== null && waterfall.startedAt !== void 0 ? waterfall.startedAt + cursor : void 0,
412
- className: "h-[60vh] min-h-[480px] rounded-xl border border-border bg-card"
413
- }),
414
- /* @__PURE__ */ jsx("div", {
415
- hidden: view === "graph",
454
+ className: agentId ? "min-w-0 lg:mr-[420px]" : "min-w-0",
416
455
  children: /* @__PURE__ */ jsx(TraceWaterfall, {
417
456
  ...waterfall,
418
457
  trace,
419
458
  markers: events,
420
- selectedId: agent?.id,
459
+ selectedId: agentId,
421
460
  onDeselect: () => select(void 0),
422
461
  onSelect: (span) => {
423
462
  const owner = agentOf(span, byId);
424
463
  if (owner?.id) select(owner.id);
425
464
  },
426
- onTimeChange: (t) => {
427
- setCursor(t);
428
- onTimeChange?.(t);
429
- }
465
+ onTimeChange: (time) => {
466
+ setCursor(time);
467
+ onTimeChange?.(time);
468
+ },
469
+ latestEvents: /* @__PURE__ */ jsx(LatestEvents, {
470
+ agents: graph.nodes,
471
+ now: graphNow,
472
+ live: cursor === null,
473
+ selectedId: agentId,
474
+ onSelect: select
475
+ }),
476
+ graph: /* @__PURE__ */ jsxs("section", {
477
+ className: "flex h-[60vh] min-h-[480px] flex-col",
478
+ "aria-label": "Agent graph",
479
+ children: [/* @__PURE__ */ jsxs("label", {
480
+ className: "flex h-8 shrink-0 items-center justify-end gap-2 px-3 text-xs text-muted-foreground",
481
+ children: ["Layout", /* @__PURE__ */ jsxs("select", {
482
+ "aria-label": "Graph layout",
483
+ value: graphLayout,
484
+ onChange: (event) => setGraphLayout(event.currentTarget.value),
485
+ className: "rounded-[var(--radius-control)] border border-border bg-card px-2 py-1 text-foreground",
486
+ children: [/* @__PURE__ */ jsx("option", {
487
+ value: "tree",
488
+ children: "Tree"
489
+ }), /* @__PURE__ */ jsx("option", {
490
+ value: "hub",
491
+ children: "Hub"
492
+ })]
493
+ })]
494
+ }), /* @__PURE__ */ jsx(AgentGraph, {
495
+ ...graphOptions,
496
+ layout: graphLayout,
497
+ renderEventIcon: (event) => toolGlyph(event.label),
498
+ nodes: graph.nodes,
499
+ edges: graph.edges,
500
+ selectedId: agentId ?? null,
501
+ onSelect: select,
502
+ showLatestEvents: false,
503
+ now: graphNow,
504
+ live: cursor === null && graph.nodes.some((node) => [
505
+ "running",
506
+ "waiting",
507
+ "needs-you",
508
+ "failed"
509
+ ].includes(node.status)),
510
+ className: cn("min-h-0 flex-1", graphOptions.className)
511
+ })]
512
+ })
430
513
  })
431
514
  }),
432
515
  files && /* @__PURE__ */ jsx("section", {
@@ -439,8 +522,8 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
439
522
  className: "overflow-hidden rounded-xl border border-border bg-card",
440
523
  children: scoreboard
441
524
  }),
442
- agent && /* @__PURE__ */ jsxs("aside", {
443
- "aria-label": `${agent.name} conversation`,
525
+ agentId && /* @__PURE__ */ jsxs("aside", {
526
+ "aria-label": `${agentName} conversation`,
444
527
  onKeyDown: (event) => {
445
528
  if (event.key === "Escape") select(void 0);
446
529
  },
@@ -450,16 +533,19 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
450
533
  className: "flex shrink-0 items-center gap-2 border-b border-border px-3 py-2",
451
534
  children: [
452
535
  /* @__PURE__ */ jsx("span", {
453
- className: cn("h-2 w-2 shrink-0 rounded-full", live ? "bg-[var(--status-running,#34c48c)]" : "bg-muted-foreground/50"),
454
- "aria-hidden": true
536
+ className: cn("h-1.5 w-1.5 shrink-0 rounded-full", live ? "bg-[var(--surface-info-text)]" : "bg-muted-foreground"),
537
+ "aria-hidden": true,
538
+ "data-motion": live ? "essential" : void 0,
539
+ style: live ? ambientStyle : void 0,
540
+ onAnimationStart: syncAmbient
455
541
  }),
456
542
  /* @__PURE__ */ jsx("h3", {
457
543
  className: "min-w-0 flex-1 truncate text-sm font-semibold",
458
- children: agent.name
544
+ children: agentName
459
545
  }),
460
- agent.detail && /* @__PURE__ */ jsx("span", {
546
+ agentModel && /* @__PURE__ */ jsx("span", {
461
547
  className: "truncate text-xs text-muted-foreground",
462
- children: agent.detail
548
+ children: agentModel
463
549
  }),
464
550
  /* @__PURE__ */ jsx("button", {
465
551
  type: "button",
@@ -474,6 +560,21 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
474
560
  })
475
561
  ]
476
562
  }),
563
+ facts.length > 0 && /* @__PURE__ */ jsx("section", {
564
+ "aria-label": "Recorded agent details",
565
+ tabIndex: 0,
566
+ className: "max-h-[35vh] shrink-0 overflow-y-auto border-b border-border px-3 py-2 text-sm",
567
+ children: /* @__PURE__ */ jsx("dl", {
568
+ className: "space-y-2",
569
+ children: facts.map((fact, index) => /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", {
570
+ className: "text-xs text-muted-foreground",
571
+ children: fact.label
572
+ }), /* @__PURE__ */ jsx("dd", {
573
+ className: "m-0 whitespace-pre-wrap break-words",
574
+ children: fact.value
575
+ })] }, index))
576
+ })
577
+ }),
477
578
  /* @__PURE__ */ jsx("div", {
478
579
  ref: scroller,
479
580
  onScroll: (event) => {
@@ -483,7 +584,7 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
483
584
  },
484
585
  "data-primary-content": "",
485
586
  className: "min-h-0 flex-1 overflow-y-auto px-3 py-2",
486
- children: streamUrl ? /* @__PURE__ */ jsx(AgentTimeline, {
587
+ children: streamUrl && (cursor === null || origin !== void 0) ? /* @__PURE__ */ jsx(AgentTimeline, {
487
588
  items,
488
589
  isThinking: live && items.length === 0,
489
590
  emptyState: /* @__PURE__ */ jsx("p", {
@@ -508,4 +609,4 @@ function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scorebo
508
609
  ]
509
610
  });
510
611
  }
511
- export { TraceWorkspace as _, InlineToolItem as a, TraceWaterfall as b, RunPhaseList as c, TaskList as d, ToolCallFeed as f, taskStatus as g, taskProgress as h, InlineThinkingItem$1 as i, RunRowShell as l, showsTaskPriority as m, ApprovalDiffSummary as n, LiveDuration as o, parseToolEvent as p, ExpandedToolDetail as r, RunGroup as s, ApprovalCard as t, RunRowStatusDot as u, foldAgentRows as v, traceSpanMark as x, useAgentStream as y };
612
+ export { TraceWaterfall as C, useAgentStream as S, statusMeta$1 as _, InlineToolItem as a, TraceWorkspace as b, RunPhaseList as c, RunStatusIcon$1 as d, TaskList as f, showsTaskPriority as g, runStatus$1 as h, InlineThinkingItem$1 as i, RunRowShell as l, parseToolEvent as m, ApprovalDiffSummary as n, LiveDuration as o, ToolCallFeed as p, ExpandedToolDetail as r, RunGroup as s, ApprovalCard as t, RunRowStatusDot as u, taskProgress as v, traceSpanMark as w, foldAgentRows as x, taskStatus as y };
package/dist/run.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as ToolCallType, B as TraceEvent, C as TaskListItem, D as ToolCallFeed, E as ToolCallData, F as AgentStreamRow, G as traceSpanMark, H as TraceWorkspaceProps, I as AgentStreamState, L as AgentTranscriptEntry, M as showsTaskPriority, N as taskProgress, O as ToolCallFeedProps, P as taskStatus, R as foldAgentRows, S as TaskList, T as TaskStatus, U as TraceWaterfall, V as TraceWorkspace, W as TraceWaterfallProps, _ as RunPhaseList, a as ApprovalPlanStep, b as RunRowStatus, c as FeedSegment, d as InlineToolItem, f as InlineToolItemProps, g as RunPhase, h as RunGroupProps, i as ApprovalDiffSummary, j as parseToolEvent, k as ToolCallStatus, l as InlineThinkingItem, m as RunGroup, n as ApprovalCardProps, o as ExpandedToolDetail, p as LiveDuration, r as ApprovalDiffFile, s as ExpandedToolDetailProps, t as ApprovalCard, u as InlineThinkingItemProps, v as RunRowShell, w as TaskListProps, x as RunRowStatusDot, y as RunRowShellProps, z as useAgentStream } from "./index-72uBu5lu.js";
2
- export { type AgentStreamRow, type AgentStreamState, type AgentTranscriptEntry, ApprovalCard, type ApprovalCardProps, type ApprovalDiffFile, ApprovalDiffSummary, type ApprovalPlanStep, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, LiveDuration, RunGroup, type RunGroupProps, type RunPhase, RunPhaseList, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, TaskList, type TaskListItem, type TaskListProps, type TaskStatus, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, type TraceEvent, TraceWaterfall, type TraceWaterfallProps, TraceWorkspace, type TraceWorkspaceProps, foldAgentRows, parseToolEvent, showsTaskPriority, taskProgress, taskStatus, traceSpanMark, useAgentStream };
1
+ import { $ as traceSpanMark, A as ToolCallData, B as taskStatus, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as parseToolEvent, G as AgentTranscriptEntry, H as LatestEventsProps, I as runStatus, J as TraceEvent, K as foldAgentRows, L as showsTaskPriority, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, Q as TraceWaterfallProps, R as statusMeta, S as RunStatus, T as StatusMeta, U as AgentStreamRow, V as LatestEvents, W as AgentStreamState, X as TraceWorkspaceProps, Y as TraceWorkspace, Z as TraceWaterfall, _ as RunPhaseList, a as ApprovalPlanStep, b as RunRowStatus, c as FeedSegment, d as InlineToolItem, f as InlineToolItemProps, g as RunPhase, h as RunGroupProps, i as ApprovalDiffSummary, j as ToolCallFeed, k as TaskStatus, l as InlineThinkingItem, m as RunGroup, n as ApprovalCardProps, o as ExpandedToolDetail, p as LiveDuration, q as useAgentStream, r as ApprovalDiffFile, s as ExpandedToolDetailProps, t as ApprovalCard, u as InlineThinkingItemProps, v as RunRowShell, w as RunStatusIconProps, x as RunRowStatusDot, y as RunRowShellProps, z as taskProgress } from "./index-D9-IiEpQ.js";
2
+ export { type AgentStreamRow, type AgentStreamState, type AgentTranscriptEntry, ApprovalCard, type ApprovalCardProps, type ApprovalDiffFile, ApprovalDiffSummary, type ApprovalPlanStep, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, LatestEvents, type LatestEventsProps, LiveDuration, RunGroup, type RunGroupProps, type RunPhase, RunPhaseList, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, type RunStatus, RunStatusIcon, type RunStatusIconProps, type StatusMeta, TaskList, type TaskListItem, type TaskListProps, type TaskStatus, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, type TraceEvent, TraceWaterfall, type TraceWaterfallProps, TraceWorkspace, type TraceWorkspaceProps, foldAgentRows, parseToolEvent, runStatus, showsTaskPriority, statusMeta, taskProgress, taskStatus, traceSpanMark, useAgentStream };
package/dist/run.js CHANGED
@@ -1 +1,3 @@
1
- export { t as ApprovalCard, n as ApprovalDiffSummary, r as ExpandedToolDetail, i as InlineThinkingItem, a as InlineToolItem, o as LiveDuration, s as RunGroup, c as RunPhaseList, l as RunRowShell, u as RunRowStatusDot, d as TaskList, f as ToolCallFeed, b as TraceWaterfall, _ as TraceWorkspace, v as foldAgentRows, p as parseToolEvent, m as showsTaskPriority, h as taskProgress, g as taskStatus, x as traceSpanMark, y as useAgentStream } from "./run-Qern6muT.js";
1
+ import { C as TraceWaterfall, S as useAgentStream, _ as statusMeta, a as InlineToolItem, b as TraceWorkspace, c as RunPhaseList, d as RunStatusIcon, f as TaskList, g as showsTaskPriority, h as runStatus, i as InlineThinkingItem, l as RunRowShell, m as parseToolEvent, n as ApprovalDiffSummary, o as LiveDuration, p as ToolCallFeed, r as ExpandedToolDetail, s as RunGroup, t as ApprovalCard, u as RunRowStatusDot, v as taskProgress, w as traceSpanMark, x as foldAgentRows, y as taskStatus } from "./run-BqpdpP1K.js";
2
+ import { t as LatestEvents } from "./latest-events-B34ElSTE.js";
3
+ export { ApprovalCard, ApprovalDiffSummary, ExpandedToolDetail, InlineThinkingItem, InlineToolItem, LatestEvents, LiveDuration, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, RunStatusIcon, TaskList, ToolCallFeed, TraceWaterfall, TraceWorkspace, foldAgentRows, parseToolEvent, runStatus, showsTaskPriority, statusMeta, taskProgress, taskStatus, traceSpanMark, useAgentStream };