@tangle-network/sandbox-ui 0.14.0 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth.d.ts +1 -74
- package/dist/auth.js +1 -4
- package/dist/chat.d.ts +1 -136
- package/dist/chat.js +2 -15
- package/dist/chunk-2BUPSB7O.js +0 -0
- package/dist/chunk-3J6FG3FJ.js +18 -0
- package/dist/chunk-76IQLPW2.js +206 -0
- package/dist/chunk-7ZA5SEK3.js +239 -0
- package/dist/chunk-AZ3AWMTM.js +8 -0
- package/dist/chunk-CMY7W45U.js +380 -0
- package/dist/chunk-EI44GEQ5.js +6 -0
- package/dist/chunk-ENMWGVDL.js +858 -0
- package/dist/{chunk-5OQ27N57.js → chunk-GPT7VKK6.js} +34 -38
- package/dist/chunk-HLZTKSGT.js +2652 -0
- package/dist/chunk-JBGKGLD7.js +16 -0
- package/dist/chunk-NJNME4J4.js +14 -0
- package/dist/chunk-QPAJR74X.js +20 -0
- package/dist/chunk-TK46XFLM.js +28 -0
- package/dist/chunk-WID73FPH.js +89 -0
- package/dist/chunk-YVXK4XRO.js +30 -0
- package/dist/dashboard.d.ts +450 -4
- package/dist/dashboard.js +20 -891
- package/dist/editor.d.ts +1 -120
- package/dist/editor.js +1 -5
- package/dist/files.d.ts +1 -129
- package/dist/files.js +2 -7
- package/dist/globals.css +2 -1265
- package/dist/hooks.d.ts +114 -11
- package/dist/hooks.js +17 -88
- package/dist/index.d.ts +24 -99
- package/dist/index.js +251 -256
- package/dist/markdown.d.ts +1 -29
- package/dist/markdown.js +2 -2
- package/dist/openui.d.ts +8 -115
- package/dist/openui.js +1 -6
- package/dist/pages.d.ts +13 -12
- package/dist/pages.js +91 -115
- package/dist/primitives.d.ts +14 -49
- package/dist/primitives.js +69 -77
- package/dist/run.d.ts +1 -14
- package/dist/run.js +2 -22
- package/dist/sdk-hooks.d.ts +3 -283
- package/dist/sdk-hooks.js +10 -14
- package/dist/stores.d.ts +2 -14
- package/dist/stores.js +11 -39
- package/dist/styles.css +2 -1265
- package/dist/template-card-DStb8boW.d.ts +183 -0
- package/dist/types.d.ts +11 -8
- package/dist/types.js +1 -0
- package/dist/utils.d.ts +1 -44
- package/dist/utils.js +6 -12
- package/dist/workspace.d.ts +5 -10
- package/dist/workspace.js +3 -19
- package/package.json +19 -54
- package/dist/active-sessions-store-CeOmXgv5.d.ts +0 -85
- package/dist/artifact-pane-Bh45Ssco.d.ts +0 -24
- package/dist/branding-DCi5VEik.d.ts +0 -13
- package/dist/button-CMQuQEW_.d.ts +0 -17
- package/dist/chat-container-f4yEs6KN.d.ts +0 -106
- package/dist/chunk-34A66VBG.js +0 -214
- package/dist/chunk-34I7UFSX.js +0 -92
- package/dist/chunk-36QY2W5G.js +0 -802
- package/dist/chunk-4CLN43XT.js +0 -45
- package/dist/chunk-54SQQMMM.js +0 -156
- package/dist/chunk-66EZOYZR.js +0 -102
- package/dist/chunk-BX6AQMUS.js +0 -183
- package/dist/chunk-DI3NZ5ZX.js +0 -192
- package/dist/chunk-DPGIXDAI.js +0 -220
- package/dist/chunk-DXMIEK4K.js +0 -1426
- package/dist/chunk-GSZA3TSY.js +0 -79
- package/dist/chunk-HB5Y37YU.js +0 -54
- package/dist/chunk-LQNEZDRM.js +0 -109
- package/dist/chunk-MA7YKRUP.js +0 -131
- package/dist/chunk-MKTSMWVD.js +0 -109
- package/dist/chunk-MQXABZTB.js +0 -1348
- package/dist/chunk-MT5FJ3ZT.js +0 -186
- package/dist/chunk-NKUPJC34.js +0 -2070
- package/dist/chunk-OEX7NZE3.js +0 -321
- package/dist/chunk-OKLQVY3Y.js +0 -139
- package/dist/chunk-Q56BYXQF.js +0 -61
- package/dist/chunk-QD4QE5P5.js +0 -40
- package/dist/chunk-QDH5GEGY.js +0 -630
- package/dist/chunk-QID2OOMG.js +0 -133
- package/dist/chunk-QMU2PWOU.js +0 -493
- package/dist/chunk-RQHJBTEU.js +0 -10
- package/dist/chunk-T7HMZEVO.js +0 -216
- package/dist/chunk-U6QTHMY6.js +0 -1290
- package/dist/chunk-US6JKJKH.js +0 -124
- package/dist/chunk-VX3XOUEB.js +0 -63
- package/dist/chunk-XLG757B6.js +0 -933
- package/dist/chunk-ZMNSRDMH.js +0 -127
- package/dist/chunk-ZNCEM5CD.js +0 -316
- package/dist/document-editor-pane-A70-EhdQ.d.ts +0 -124
- package/dist/document-editor-pane-TLPVRBBU.js +0 -11
- package/dist/expanded-tool-detail-Dh99mcbY.d.ts +0 -63
- package/dist/file-tabs-BLfxfmAH.d.ts +0 -51
- package/dist/parts-CyGkM6Fp.d.ts +0 -50
- package/dist/run-CtFZ6s-D.d.ts +0 -41
- package/dist/sidebar-drop-zone-tDBsuOH5.d.ts +0 -301
- package/dist/sidecar-CFU2W9j1.d.ts +0 -8
- package/dist/template-card-BAtvcAkU.d.ts +0 -18
- package/dist/tool-call-feed-Bs3MyQMT.d.ts +0 -68
- package/dist/tool-display-Ct9nFAzJ.d.ts +0 -32
- package/dist/usage-chart-CPTcNlGs.d.ts +0 -73
- package/dist/use-sandbox-metrics-DWc0k9Xm.d.ts +0 -153
- package/dist/variant-list-BrHYcBCk.d.ts +0 -540
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// src/run/index.ts
|
|
2
|
+
import {
|
|
3
|
+
ExpandedToolDetail,
|
|
4
|
+
InlineThinkingItem,
|
|
5
|
+
InlineToolItem,
|
|
6
|
+
LiveDuration,
|
|
7
|
+
RunGroup
|
|
8
|
+
} from "@tangle-network/ui/run";
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
ExpandedToolDetail,
|
|
12
|
+
InlineThinkingItem,
|
|
13
|
+
InlineToolItem,
|
|
14
|
+
LiveDuration,
|
|
15
|
+
RunGroup
|
|
16
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/chat/index.ts
|
|
2
|
+
import {
|
|
3
|
+
AgentTimeline,
|
|
4
|
+
ChatContainer,
|
|
5
|
+
ChatInput,
|
|
6
|
+
ChatMessage,
|
|
7
|
+
MessageList,
|
|
8
|
+
ThinkingIndicator,
|
|
9
|
+
UserMessage
|
|
10
|
+
} from "@tangle-network/ui/chat";
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
AgentTimeline,
|
|
14
|
+
ChatContainer,
|
|
15
|
+
ChatInput,
|
|
16
|
+
ChatMessage,
|
|
17
|
+
MessageList,
|
|
18
|
+
ThinkingIndicator,
|
|
19
|
+
UserMessage
|
|
20
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// src/utils/index.ts
|
|
2
|
+
import {
|
|
3
|
+
TOOL_CATEGORY_ICONS,
|
|
4
|
+
cn,
|
|
5
|
+
copyText,
|
|
6
|
+
formatBytes,
|
|
7
|
+
formatDuration,
|
|
8
|
+
formatUptime,
|
|
9
|
+
getToolCategory,
|
|
10
|
+
getToolDisplayMetadata,
|
|
11
|
+
getToolErrorText,
|
|
12
|
+
timeAgo,
|
|
13
|
+
truncateText
|
|
14
|
+
} from "@tangle-network/ui/utils";
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
TOOL_CATEGORY_ICONS,
|
|
18
|
+
cn,
|
|
19
|
+
copyText,
|
|
20
|
+
formatBytes,
|
|
21
|
+
formatDuration,
|
|
22
|
+
formatUptime,
|
|
23
|
+
getToolCategory,
|
|
24
|
+
getToolDisplayMetadata,
|
|
25
|
+
getToolErrorText,
|
|
26
|
+
timeAgo,
|
|
27
|
+
truncateText
|
|
28
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// src/stores/index.ts
|
|
2
|
+
import {
|
|
3
|
+
activeSessionsAtom,
|
|
4
|
+
bumpActiveSessionActivity,
|
|
5
|
+
getActiveSession,
|
|
6
|
+
getAllActiveSessions,
|
|
7
|
+
getAllProjectActivity,
|
|
8
|
+
getSessionsByActivity,
|
|
9
|
+
getSessionsForNavbar,
|
|
10
|
+
getSessionsForProject,
|
|
11
|
+
getTotalRunningSessionCount,
|
|
12
|
+
hasBackgroundRunningSessions,
|
|
13
|
+
registerActiveSession,
|
|
14
|
+
resetActiveSessions,
|
|
15
|
+
setActiveSessionAttention,
|
|
16
|
+
setActiveSessionConnection,
|
|
17
|
+
setActiveSessionError,
|
|
18
|
+
setActiveSessionRunning,
|
|
19
|
+
setForegroundActiveSession,
|
|
20
|
+
unregisterActiveSession,
|
|
21
|
+
updateActiveSessionMeta,
|
|
22
|
+
useActiveSession,
|
|
23
|
+
useActiveSessions,
|
|
24
|
+
useActiveSessionsState,
|
|
25
|
+
useHasBackgroundRunningSessions,
|
|
26
|
+
useNavbarSessions,
|
|
27
|
+
useProjectActivity,
|
|
28
|
+
useProjectSessions,
|
|
29
|
+
useSessionsByActivity,
|
|
30
|
+
useTotalRunningSessions,
|
|
31
|
+
addMessage,
|
|
32
|
+
addParts,
|
|
33
|
+
clearChat,
|
|
34
|
+
isStreamingAtom,
|
|
35
|
+
messagesAtom,
|
|
36
|
+
partMapAtom,
|
|
37
|
+
updatePart
|
|
38
|
+
} from "@tangle-network/ui/stores";
|
|
39
|
+
|
|
40
|
+
// src/stores/session-store.ts
|
|
41
|
+
import { atom } from "nanostores";
|
|
42
|
+
var sessionAtom = atom(null);
|
|
43
|
+
function connectSession(session) {
|
|
44
|
+
sessionAtom.set(session);
|
|
45
|
+
}
|
|
46
|
+
function disconnectSession() {
|
|
47
|
+
sessionAtom.set(null);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export {
|
|
51
|
+
sessionAtom,
|
|
52
|
+
connectSession,
|
|
53
|
+
disconnectSession,
|
|
54
|
+
activeSessionsAtom,
|
|
55
|
+
bumpActiveSessionActivity,
|
|
56
|
+
getActiveSession,
|
|
57
|
+
getAllActiveSessions,
|
|
58
|
+
getAllProjectActivity,
|
|
59
|
+
getSessionsByActivity,
|
|
60
|
+
getSessionsForNavbar,
|
|
61
|
+
getSessionsForProject,
|
|
62
|
+
getTotalRunningSessionCount,
|
|
63
|
+
hasBackgroundRunningSessions,
|
|
64
|
+
registerActiveSession,
|
|
65
|
+
resetActiveSessions,
|
|
66
|
+
setActiveSessionAttention,
|
|
67
|
+
setActiveSessionConnection,
|
|
68
|
+
setActiveSessionError,
|
|
69
|
+
setActiveSessionRunning,
|
|
70
|
+
setForegroundActiveSession,
|
|
71
|
+
unregisterActiveSession,
|
|
72
|
+
updateActiveSessionMeta,
|
|
73
|
+
useActiveSession,
|
|
74
|
+
useActiveSessions,
|
|
75
|
+
useActiveSessionsState,
|
|
76
|
+
useHasBackgroundRunningSessions,
|
|
77
|
+
useNavbarSessions,
|
|
78
|
+
useProjectActivity,
|
|
79
|
+
useProjectSessions,
|
|
80
|
+
useSessionsByActivity,
|
|
81
|
+
useTotalRunningSessions,
|
|
82
|
+
addMessage,
|
|
83
|
+
addParts,
|
|
84
|
+
clearChat,
|
|
85
|
+
isStreamingAtom,
|
|
86
|
+
messagesAtom,
|
|
87
|
+
partMapAtom,
|
|
88
|
+
updatePart
|
|
89
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/editor/index.ts
|
|
2
|
+
import {
|
|
3
|
+
CollaboratorsList,
|
|
4
|
+
EditorToolbar,
|
|
5
|
+
TiptapEditor,
|
|
6
|
+
useAwareness,
|
|
7
|
+
useCollaboratorPresence,
|
|
8
|
+
useCollaborators,
|
|
9
|
+
useDocumentChanges,
|
|
10
|
+
useEditorConnection,
|
|
11
|
+
useYjsState,
|
|
12
|
+
DocumentEditorPane,
|
|
13
|
+
EditorProvider,
|
|
14
|
+
useEditorContext
|
|
15
|
+
} from "@tangle-network/ui/editor";
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
CollaboratorsList,
|
|
19
|
+
EditorToolbar,
|
|
20
|
+
TiptapEditor,
|
|
21
|
+
useAwareness,
|
|
22
|
+
useCollaboratorPresence,
|
|
23
|
+
useCollaborators,
|
|
24
|
+
useDocumentChanges,
|
|
25
|
+
useEditorConnection,
|
|
26
|
+
useYjsState,
|
|
27
|
+
DocumentEditorPane,
|
|
28
|
+
EditorProvider,
|
|
29
|
+
useEditorContext
|
|
30
|
+
};
|
package/dist/dashboard.d.ts
CHANGED
|
@@ -1,8 +1,454 @@
|
|
|
1
|
-
export { B as Backend, a as BackendSelector, b as BackendSelectorProps, C as ClusterStatusBar, c as ClusterStatusBarProps, d as ClusterStatusItem, e as CreditBalance, f as CreditBalanceProps, D as DashboardLayout, g as DashboardLayoutProps, at as DashboardProfile, h as DashboardUser, H as HARNESS_OPTIONS, i as HarnessPicker, j as HarnessPickerProps, k as HarnessType, I as Invoice, l as InvoiceTable, m as InvoiceTableProps, M as ModelInfo, n as ModelPicker, o as ModelPickerProps, p as ModelPickerVariant, q as ModelPreset, N as NavItem, r as NewSandboxCard, s as NewSandboxCardProps, t as PlanCardData, u as PlanCards, v as PlanCardsProps, au as PlanFeature, w as ProductVariant, x as ProfileAvatar, y as ProfileAvatarProps, z as ProfileComparison, A as ProfileComparisonProps, E as ProfileSelector, F as ProfileSelectorProps, R as RailButton, G as RailButtonProps, J as RailModeButton, K as RailModeButtonProps, L as RailSeparator, O as RailSeparatorProps, Q as ResourceMeter, S as ResourceMeterProps, T as SIDEBAR_MOBILE_WIDTH, U as SIDEBAR_PANEL_WIDTH, V as SIDEBAR_RAIL_WIDTH, W as SIDEBAR_TOTAL_WIDTH, X as SandboxCard, Y as SandboxCardData, Z as SandboxCardProps, _ as SandboxStatus, $ as SandboxTable, a0 as SandboxTableProps, a1 as Sidebar, a2 as SidebarContent, a3 as SidebarContentProps, a4 as SidebarPanel, a5 as SidebarPanelContent, a6 as SidebarPanelContentProps, a7 as SidebarPanelHeader, a8 as SidebarPanelHeaderProps, a9 as SidebarPanelProps, aa as SidebarProps, ab as SidebarProvider, ac as SidebarProviderProps, ad as SidebarRail, ae as SidebarRailFooter, af as SidebarRailFooterProps, ag as SidebarRailHeader, ah as SidebarRailHeaderProps, ai as SidebarRailNav, aj as SidebarRailNavProps, ak as SidebarRailProps, al as SidebarUser, av as TeamRole, aw as Variant, an as VariantList, ao as VariantListProps, ax as VariantOutcome, ay as VariantStatus, az as canAdminSandbox, ap as canonicalModelId, aq as formatContext, ar as formatPricing, as as useSidebar } from './variant-list-BrHYcBCk.js';
|
|
2
|
-
export { a as BillingBalance, c as BillingDashboard, d as BillingDashboardProps, B as BillingSubscription, b as BillingUsage, e as PricingPage, f as PricingPageProps, P as PricingTier, g as UsageChart, h as UsageChartProps, U as UsageDataPoint, i as formatPrice } from './usage-chart-CPTcNlGs.js';
|
|
3
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
export { a as TemplateCard, T as TemplateCardData, b as TemplateCardProps } from './template-card-BAtvcAkU.js';
|
|
5
2
|
import * as React from 'react';
|
|
3
|
+
export { B as BillingBalance, a as BillingDashboard, b as BillingDashboardProps, c as BillingSubscription, d as BillingUsage, M as ModelInfo, e as ModelPicker, f as ModelPickerProps, g as ModelPickerVariant, h as ModelPreset, P as PricingPage, i as PricingPageProps, j as PricingTier, T as TemplateCard, k as TemplateCardData, l as TemplateCardProps, U as UsageChart, m as UsageChartProps, n as UsageDataPoint, o as canonicalModelId, p as formatContext, q as formatPrice, r as formatPricing } from './template-card-DStb8boW.js';
|
|
4
|
+
|
|
5
|
+
interface SidebarUser {
|
|
6
|
+
email: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
tier?: string;
|
|
9
|
+
avatarUrl?: string;
|
|
10
|
+
}
|
|
11
|
+
interface SidebarProps {
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
style?: React.CSSProperties;
|
|
15
|
+
}
|
|
16
|
+
declare function Sidebar({ children, className, style }: SidebarProps): react_jsx_runtime.JSX.Element;
|
|
17
|
+
interface SidebarRailProps {
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
className?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Render the rail at the wider mobile-drawer width so labels fit
|
|
22
|
+
* beside the icons. Defaults to the 64px icon-only rail used on
|
|
23
|
+
* desktop.
|
|
24
|
+
*/
|
|
25
|
+
wide?: boolean;
|
|
26
|
+
}
|
|
27
|
+
declare function SidebarRail({ children, className, wide }: SidebarRailProps): react_jsx_runtime.JSX.Element;
|
|
28
|
+
interface SidebarRailHeaderProps {
|
|
29
|
+
children: React.ReactNode;
|
|
30
|
+
className?: string;
|
|
31
|
+
}
|
|
32
|
+
declare function SidebarRailHeader({ children, className }: SidebarRailHeaderProps): react_jsx_runtime.JSX.Element;
|
|
33
|
+
interface SidebarRailNavProps {
|
|
34
|
+
children: React.ReactNode;
|
|
35
|
+
className?: string;
|
|
36
|
+
}
|
|
37
|
+
declare function SidebarRailNav({ children, className }: SidebarRailNavProps): react_jsx_runtime.JSX.Element;
|
|
38
|
+
interface SidebarRailFooterProps {
|
|
39
|
+
children: React.ReactNode;
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
declare function SidebarRailFooter({ children, className }: SidebarRailFooterProps): react_jsx_runtime.JSX.Element;
|
|
43
|
+
interface RailSeparatorProps {
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
declare function RailSeparator({ className }: RailSeparatorProps): react_jsx_runtime.JSX.Element;
|
|
47
|
+
interface RailButtonProps {
|
|
48
|
+
icon: React.ComponentType<{
|
|
49
|
+
className?: string;
|
|
50
|
+
}>;
|
|
51
|
+
label: string;
|
|
52
|
+
isActive?: boolean;
|
|
53
|
+
badge?: number;
|
|
54
|
+
onClick?: () => void;
|
|
55
|
+
className?: string;
|
|
56
|
+
/** Show label text next to icon (for mobile drawer) */
|
|
57
|
+
showLabel?: boolean;
|
|
58
|
+
}
|
|
59
|
+
declare function RailButton({ icon: Icon, label, isActive, badge, onClick, className, showLabel }: RailButtonProps): react_jsx_runtime.JSX.Element;
|
|
60
|
+
interface RailModeButtonProps {
|
|
61
|
+
mode: string;
|
|
62
|
+
icon: React.ComponentType<{
|
|
63
|
+
className?: string;
|
|
64
|
+
}>;
|
|
65
|
+
label: string;
|
|
66
|
+
badge?: number;
|
|
67
|
+
className?: string;
|
|
68
|
+
/** Show label text next to icon (for mobile drawer) */
|
|
69
|
+
showLabel?: boolean;
|
|
70
|
+
}
|
|
71
|
+
declare function RailModeButton({ mode, icon, label, badge, className, showLabel }: RailModeButtonProps): react_jsx_runtime.JSX.Element;
|
|
72
|
+
interface SidebarPanelProps {
|
|
73
|
+
children: React.ReactNode;
|
|
74
|
+
className?: string;
|
|
75
|
+
}
|
|
76
|
+
declare function SidebarPanel({ children, className }: SidebarPanelProps): react_jsx_runtime.JSX.Element;
|
|
77
|
+
interface SidebarPanelHeaderProps {
|
|
78
|
+
children?: React.ReactNode;
|
|
79
|
+
title?: string;
|
|
80
|
+
className?: string;
|
|
81
|
+
}
|
|
82
|
+
declare function SidebarPanelHeader({ children, title, className }: SidebarPanelHeaderProps): react_jsx_runtime.JSX.Element;
|
|
83
|
+
interface SidebarPanelContentProps {
|
|
84
|
+
children: React.ReactNode;
|
|
85
|
+
className?: string;
|
|
86
|
+
}
|
|
87
|
+
declare function SidebarPanelContent({ children, className }: SidebarPanelContentProps): react_jsx_runtime.JSX.Element;
|
|
88
|
+
interface SidebarContentProps {
|
|
89
|
+
children: React.ReactNode;
|
|
90
|
+
className?: string;
|
|
91
|
+
}
|
|
92
|
+
declare function SidebarContent({ children, className }: SidebarContentProps): react_jsx_runtime.JSX.Element;
|
|
93
|
+
interface ProfileAvatarProps {
|
|
94
|
+
user?: SidebarUser | null;
|
|
95
|
+
isLoading?: boolean;
|
|
96
|
+
onLogout?: () => void;
|
|
97
|
+
onSettingsClick?: () => void;
|
|
98
|
+
settingsHref?: string;
|
|
99
|
+
/** Extra dropdown items rendered before settings/logout */
|
|
100
|
+
children?: React.ReactNode;
|
|
101
|
+
className?: string;
|
|
102
|
+
LinkComponent?: React.ComponentType<any>;
|
|
103
|
+
}
|
|
104
|
+
declare function ProfileAvatar({ user, isLoading, onLogout, onSettingsClick, settingsHref, children, className, LinkComponent, }: ProfileAvatarProps): react_jsx_runtime.JSX.Element;
|
|
105
|
+
|
|
106
|
+
/** Width constants (px) matching blueprint-agent layout */
|
|
107
|
+
declare const SIDEBAR_RAIL_WIDTH = 64;
|
|
108
|
+
declare const SIDEBAR_PANEL_WIDTH = 260;
|
|
109
|
+
declare const SIDEBAR_TOTAL_WIDTH: number;
|
|
110
|
+
/**
|
|
111
|
+
* Width of the mobile drawer when the rail is rendered with labels
|
|
112
|
+
* (`showLabel` on {@link RailButton}). The standard 64px rail is only
|
|
113
|
+
* wide enough for icons; labels need a wider container to avoid truncation.
|
|
114
|
+
*/
|
|
115
|
+
declare const SIDEBAR_MOBILE_WIDTH = 256;
|
|
116
|
+
interface SidebarContextValue {
|
|
117
|
+
/** Whether the content panel beside the rail is open */
|
|
118
|
+
panelOpen: boolean;
|
|
119
|
+
setPanelOpen: (open: boolean) => void;
|
|
120
|
+
togglePanel: () => void;
|
|
121
|
+
/** Current panel mode (app-defined, e.g. "projects", "batches") */
|
|
122
|
+
mode: string;
|
|
123
|
+
setMode: (mode: string) => void;
|
|
124
|
+
/** Switch mode — opens panel if closed, closes if same mode clicked */
|
|
125
|
+
switchMode: (mode: string) => void;
|
|
126
|
+
/** Whether entire sidebar (rail + panel) is hidden (focus mode) */
|
|
127
|
+
hidden: boolean;
|
|
128
|
+
setHidden: (hidden: boolean) => void;
|
|
129
|
+
/** Computed content margin in px */
|
|
130
|
+
contentMargin: number;
|
|
131
|
+
/** Whether there are panels at all */
|
|
132
|
+
hasPanels: boolean;
|
|
133
|
+
}
|
|
134
|
+
interface SidebarProviderProps {
|
|
135
|
+
defaultPanelOpen?: boolean;
|
|
136
|
+
defaultMode?: string;
|
|
137
|
+
hasPanels?: boolean;
|
|
138
|
+
children: React.ReactNode;
|
|
139
|
+
}
|
|
140
|
+
declare function SidebarProvider({ defaultPanelOpen, defaultMode, hasPanels, children, }: SidebarProviderProps): react_jsx_runtime.JSX.Element;
|
|
141
|
+
declare function useSidebar(): SidebarContextValue;
|
|
142
|
+
|
|
143
|
+
interface CreditBalanceProps {
|
|
144
|
+
amount: number;
|
|
145
|
+
description?: string;
|
|
146
|
+
onTopUp?: (amount: number) => void;
|
|
147
|
+
quickAmounts?: number[];
|
|
148
|
+
className?: string;
|
|
149
|
+
}
|
|
150
|
+
declare function CreditBalance({ amount, description, onTopUp, quickAmounts, className, }: CreditBalanceProps): react_jsx_runtime.JSX.Element;
|
|
151
|
+
|
|
152
|
+
interface ClusterStatusItem {
|
|
153
|
+
icon?: React.ReactNode;
|
|
154
|
+
label: string;
|
|
155
|
+
value: React.ReactNode;
|
|
156
|
+
valueClass?: string;
|
|
157
|
+
}
|
|
158
|
+
interface ClusterStatusBarProps {
|
|
159
|
+
items: ClusterStatusItem[];
|
|
160
|
+
latency?: string;
|
|
161
|
+
className?: string;
|
|
162
|
+
}
|
|
163
|
+
declare function ClusterStatusBar({ items, latency, className }: ClusterStatusBarProps): react_jsx_runtime.JSX.Element | null;
|
|
164
|
+
|
|
165
|
+
interface ResourceMeterProps {
|
|
166
|
+
label: string;
|
|
167
|
+
value: number;
|
|
168
|
+
max?: number;
|
|
169
|
+
unit?: string;
|
|
170
|
+
icon?: React.ReactNode;
|
|
171
|
+
className?: string;
|
|
172
|
+
}
|
|
173
|
+
declare function ResourceMeter({ label, value, max, unit, icon, className }: ResourceMeterProps): react_jsx_runtime.JSX.Element;
|
|
174
|
+
|
|
175
|
+
type SandboxStatus = "running" | "hibernating" | "provisioning" | "stopped" | "failed" | "archived" | "creating";
|
|
176
|
+
type TeamRole = "owner" | "admin" | "member" | "viewer";
|
|
177
|
+
interface SandboxCardData {
|
|
178
|
+
id: string;
|
|
179
|
+
name: string;
|
|
180
|
+
nodeId?: string;
|
|
181
|
+
status: SandboxStatus;
|
|
182
|
+
image?: string;
|
|
183
|
+
imageIcon?: React.ReactNode;
|
|
184
|
+
cpuPercent?: number;
|
|
185
|
+
ramUsed?: number;
|
|
186
|
+
ramTotal?: number;
|
|
187
|
+
provisioningMessage?: string;
|
|
188
|
+
provisioningPercent?: number;
|
|
189
|
+
archivedAt?: string;
|
|
190
|
+
/**
|
|
191
|
+
* Populated when the sandbox is shared with a team. Drives a small
|
|
192
|
+
* "shared with X" badge in the card header so a user can see at a
|
|
193
|
+
* glance which of their sandboxes are personal vs. collaborative.
|
|
194
|
+
*/
|
|
195
|
+
team?: {
|
|
196
|
+
id: string;
|
|
197
|
+
name?: string;
|
|
198
|
+
/** Caller's role in the team — the card uses this to gate the Delete action. */
|
|
199
|
+
role: TeamRole;
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
interface SandboxCardProps {
|
|
203
|
+
sandbox: SandboxCardData;
|
|
204
|
+
onOpenIDE?: (id: string) => void;
|
|
205
|
+
onOpenTerminal?: (id: string) => void;
|
|
206
|
+
onWake?: (id: string) => void;
|
|
207
|
+
onRestore?: (id: string) => void;
|
|
208
|
+
onDelete?: (id: string) => void;
|
|
209
|
+
onStop?: (id: string) => void;
|
|
210
|
+
onResume?: (id: string) => void;
|
|
211
|
+
onFork?: (id: string) => void;
|
|
212
|
+
onKeepAlive?: (id: string) => void;
|
|
213
|
+
onUsage?: (id: string) => void;
|
|
214
|
+
onHealth?: (id: string) => void;
|
|
215
|
+
className?: string;
|
|
216
|
+
}
|
|
217
|
+
declare function canAdminSandbox(sandbox: SandboxCardData): boolean;
|
|
218
|
+
declare function SandboxCard({ sandbox, onOpenIDE, onOpenTerminal, onWake, onRestore, onDelete, onStop, onResume, onFork, onKeepAlive, onUsage, onHealth, className }: SandboxCardProps): react_jsx_runtime.JSX.Element;
|
|
219
|
+
interface NewSandboxCardProps {
|
|
220
|
+
onClick?: () => void;
|
|
221
|
+
className?: string;
|
|
222
|
+
}
|
|
223
|
+
declare function NewSandboxCard({ onClick, className }: NewSandboxCardProps): react_jsx_runtime.JSX.Element;
|
|
224
|
+
|
|
225
|
+
interface SandboxTableProps {
|
|
226
|
+
sandboxes: SandboxCardData[];
|
|
227
|
+
page?: number;
|
|
228
|
+
pageSize?: number;
|
|
229
|
+
total?: number;
|
|
230
|
+
onPageChange?: (page: number) => void;
|
|
231
|
+
onOpenIDE?: (id: string) => void;
|
|
232
|
+
onOpenTerminal?: (id: string) => void;
|
|
233
|
+
onSSH?: (id: string) => void;
|
|
234
|
+
onWake?: (id: string) => void;
|
|
235
|
+
onMore?: (id: string) => void;
|
|
236
|
+
onDelete?: (id: string) => void;
|
|
237
|
+
className?: string;
|
|
238
|
+
}
|
|
239
|
+
declare function SandboxTable({ sandboxes, page, pageSize, total, onPageChange, onOpenIDE, onOpenTerminal, onSSH, onWake, onMore, onDelete, className, }: SandboxTableProps): react_jsx_runtime.JSX.Element;
|
|
240
|
+
|
|
241
|
+
interface Invoice {
|
|
242
|
+
id: string;
|
|
243
|
+
date: string;
|
|
244
|
+
amount: number;
|
|
245
|
+
status: "paid" | "pending" | "failed";
|
|
246
|
+
}
|
|
247
|
+
interface InvoiceTableProps {
|
|
248
|
+
invoices: Invoice[];
|
|
249
|
+
onExportAll?: () => void;
|
|
250
|
+
onLoadMore?: () => void;
|
|
251
|
+
onViewInvoice?: (id: string) => void;
|
|
252
|
+
hasMore?: boolean;
|
|
253
|
+
className?: string;
|
|
254
|
+
}
|
|
255
|
+
declare function InvoiceTable({ invoices, onExportAll, onLoadMore, onViewInvoice, hasMore, className }: InvoiceTableProps): react_jsx_runtime.JSX.Element;
|
|
256
|
+
|
|
257
|
+
interface PlanFeature {
|
|
258
|
+
text: string;
|
|
259
|
+
}
|
|
260
|
+
interface PlanCardData {
|
|
261
|
+
id: string;
|
|
262
|
+
name: string;
|
|
263
|
+
price: number;
|
|
264
|
+
period?: string;
|
|
265
|
+
features: PlanFeature[];
|
|
266
|
+
popular?: boolean;
|
|
267
|
+
current?: boolean;
|
|
268
|
+
ctaLabel?: string;
|
|
269
|
+
onSelect?: (id: string) => void;
|
|
270
|
+
}
|
|
271
|
+
interface PlanCardsProps {
|
|
272
|
+
plans: PlanCardData[];
|
|
273
|
+
className?: string;
|
|
274
|
+
}
|
|
275
|
+
declare function PlanCards({ plans, className }: PlanCardsProps): react_jsx_runtime.JSX.Element;
|
|
276
|
+
|
|
277
|
+
interface Backend {
|
|
278
|
+
type: string;
|
|
279
|
+
label: string;
|
|
280
|
+
description?: string;
|
|
281
|
+
}
|
|
282
|
+
interface BackendSelectorProps {
|
|
283
|
+
backends: Backend[];
|
|
284
|
+
selected: string;
|
|
285
|
+
onChange: (selected: string) => void;
|
|
286
|
+
label?: string;
|
|
287
|
+
placeholder?: string;
|
|
288
|
+
className?: string;
|
|
289
|
+
}
|
|
290
|
+
declare function BackendSelector({ backends, selected, onChange, label, placeholder, className, }: BackendSelectorProps): react_jsx_runtime.JSX.Element;
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Sandbox agent harness types — mirrors `BackendType` from
|
|
294
|
+
* `@tangle-network/sandbox` SDK. Kept in lockstep with that enum:
|
|
295
|
+
* if the SDK adds a backend, add it here too.
|
|
296
|
+
*/
|
|
297
|
+
type HarnessType = "opencode" | "claude-code" | "codex" | "amp" | "factory-droids" | "cli-base";
|
|
298
|
+
interface HarnessOption extends Backend {
|
|
299
|
+
type: HarnessType;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Default option list with human-readable copy. Order is curated so the
|
|
303
|
+
* recommended choice (`opencode`) appears first; `cli-base` (no agent) last.
|
|
304
|
+
*/
|
|
305
|
+
declare const HARNESS_OPTIONS: readonly HarnessOption[];
|
|
306
|
+
interface HarnessPickerProps extends Omit<BackendSelectorProps, "backends" | "selected" | "onChange"> {
|
|
307
|
+
value: HarnessType;
|
|
308
|
+
onChange: (next: HarnessType) => void;
|
|
309
|
+
/** Filter the available harnesses (e.g. by plan tier). Defaults to all. */
|
|
310
|
+
available?: ReadonlyArray<HarnessType>;
|
|
311
|
+
/** Override or extend the option metadata. Keys are HarnessType. */
|
|
312
|
+
optionsOverride?: Partial<Record<HarnessType, Partial<Omit<HarnessOption, "type">>>>;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Type-safe harness/backend selector for sandbox-backed agent products.
|
|
316
|
+
*
|
|
317
|
+
* Wraps the generic {@link BackendSelector} with the canonical harness list
|
|
318
|
+
* baked in, so consumers don't have to re-declare it (or risk drifting from
|
|
319
|
+
* the SDK enum).
|
|
320
|
+
*/
|
|
321
|
+
declare function HarnessPicker({ value, onChange, available, optionsOverride, label, ...rest }: HarnessPickerProps): react_jsx_runtime.JSX.Element;
|
|
322
|
+
|
|
323
|
+
type ProductVariant = "sandbox";
|
|
324
|
+
interface NavItem {
|
|
325
|
+
id: string;
|
|
326
|
+
label: string;
|
|
327
|
+
href?: string;
|
|
328
|
+
icon: React.ComponentType<{
|
|
329
|
+
className?: string;
|
|
330
|
+
}>;
|
|
331
|
+
badge?: number;
|
|
332
|
+
}
|
|
333
|
+
interface DashboardUser {
|
|
334
|
+
email: string;
|
|
335
|
+
name?: string;
|
|
336
|
+
tier?: string;
|
|
337
|
+
avatarUrl?: string;
|
|
338
|
+
}
|
|
339
|
+
interface TopNavLink {
|
|
340
|
+
label: string;
|
|
341
|
+
href: string;
|
|
342
|
+
}
|
|
343
|
+
interface PanelConfig {
|
|
344
|
+
mode: string;
|
|
345
|
+
title: string;
|
|
346
|
+
content: React.ReactNode;
|
|
347
|
+
}
|
|
348
|
+
interface DashboardLayoutProps {
|
|
349
|
+
children: React.ReactNode;
|
|
350
|
+
variant?: ProductVariant;
|
|
351
|
+
/** Navigation items for the rail */
|
|
352
|
+
navItems: NavItem[];
|
|
353
|
+
/** Nav item IDs that act as panel mode switchers (others are direct links) */
|
|
354
|
+
modeItems?: string[];
|
|
355
|
+
/** Panel content per mode */
|
|
356
|
+
panels?: PanelConfig[];
|
|
357
|
+
activeNavId?: string;
|
|
358
|
+
user?: DashboardUser | null;
|
|
359
|
+
isLoading?: boolean;
|
|
360
|
+
onLogout?: () => void;
|
|
361
|
+
onSettingsClick?: () => void;
|
|
362
|
+
settingsHref?: string;
|
|
363
|
+
onNewSandbox?: () => void;
|
|
364
|
+
className?: string;
|
|
365
|
+
sidebarClassName?: string;
|
|
366
|
+
contentClassName?: string;
|
|
367
|
+
topNavLinks?: TopNavLink[];
|
|
368
|
+
activeTopNavHref?: string;
|
|
369
|
+
LinkComponent?: React.ComponentType<any>;
|
|
370
|
+
footer?: React.ReactNode;
|
|
371
|
+
defaultPanelOpen?: boolean;
|
|
372
|
+
defaultMode?: string;
|
|
373
|
+
/** Extra content in the rail footer (above profile avatar) */
|
|
374
|
+
railFooter?: React.ReactNode;
|
|
375
|
+
/** Extra dropdown items in the profile menu */
|
|
376
|
+
profileMenuItems?: React.ReactNode;
|
|
377
|
+
/** Notification data for the bell dropdown */
|
|
378
|
+
notifications?: {
|
|
379
|
+
items: {
|
|
380
|
+
id: string;
|
|
381
|
+
title: string;
|
|
382
|
+
message: string;
|
|
383
|
+
read: boolean;
|
|
384
|
+
createdAt: string;
|
|
385
|
+
}[];
|
|
386
|
+
unreadCount: number;
|
|
387
|
+
onMarkRead?: (id: string) => void;
|
|
388
|
+
onMarkAllRead?: () => void;
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
declare function DashboardLayout({ defaultPanelOpen, defaultMode, ...props }: DashboardLayoutProps): react_jsx_runtime.JSX.Element;
|
|
392
|
+
|
|
393
|
+
interface Profile {
|
|
394
|
+
id: string;
|
|
395
|
+
name: string;
|
|
396
|
+
description?: string;
|
|
397
|
+
is_builtin?: boolean;
|
|
398
|
+
extends?: string;
|
|
399
|
+
model?: string;
|
|
400
|
+
metrics?: {
|
|
401
|
+
total_runs: number;
|
|
402
|
+
success_rate: number;
|
|
403
|
+
avg_duration_ms: number;
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
interface ProfileSelectorProps {
|
|
407
|
+
profiles: Profile[];
|
|
408
|
+
selectedId?: string | null;
|
|
409
|
+
onSelect: (profile: Profile | null) => void;
|
|
410
|
+
onCreateClick?: () => void;
|
|
411
|
+
onManageClick?: () => void;
|
|
412
|
+
label?: string;
|
|
413
|
+
placeholder?: string;
|
|
414
|
+
showMetrics?: boolean;
|
|
415
|
+
className?: string;
|
|
416
|
+
}
|
|
417
|
+
declare function ProfileSelector({ profiles, selectedId, onSelect, onCreateClick, onManageClick, label, placeholder, showMetrics, className, }: ProfileSelectorProps): react_jsx_runtime.JSX.Element;
|
|
418
|
+
/**
|
|
419
|
+
* Profile performance comparison card.
|
|
420
|
+
* Shows metrics from multiple profiles side by side.
|
|
421
|
+
*/
|
|
422
|
+
interface ProfileComparisonProps {
|
|
423
|
+
profiles: Profile[];
|
|
424
|
+
className?: string;
|
|
425
|
+
}
|
|
426
|
+
declare function ProfileComparison({ profiles, className, }: ProfileComparisonProps): react_jsx_runtime.JSX.Element | null;
|
|
427
|
+
|
|
428
|
+
type VariantStatus = "pending" | "running" | "completed" | "failed" | "cancelled";
|
|
429
|
+
type VariantOutcome = "pending_review" | "accepted" | "rejected" | "merged_with_conflicts" | "expired";
|
|
430
|
+
interface Variant {
|
|
431
|
+
id: string;
|
|
432
|
+
label: string;
|
|
433
|
+
sublabel?: string;
|
|
434
|
+
status: VariantStatus;
|
|
435
|
+
outcome?: VariantOutcome;
|
|
436
|
+
durationMs?: number;
|
|
437
|
+
error?: string;
|
|
438
|
+
summary?: string;
|
|
439
|
+
/** Link to view variant details (e.g., chat UI) */
|
|
440
|
+
detailsUrl?: string;
|
|
441
|
+
}
|
|
442
|
+
interface VariantListProps {
|
|
443
|
+
variants: Variant[];
|
|
444
|
+
selectedId?: string | null;
|
|
445
|
+
onSelect?: (id: string) => void;
|
|
446
|
+
onAccept?: (id: string) => void;
|
|
447
|
+
onReject?: (id: string) => void;
|
|
448
|
+
isActioning?: string | null;
|
|
449
|
+
className?: string;
|
|
450
|
+
}
|
|
451
|
+
declare function VariantList({ variants, selectedId, onSelect, onAccept, onReject, isActioning, className, }: VariantListProps): react_jsx_runtime.JSX.Element;
|
|
6
452
|
|
|
7
453
|
interface SystemLogsViewerProps {
|
|
8
454
|
apiUrl: string;
|
|
@@ -154,4 +600,4 @@ interface InfoPanelProps {
|
|
|
154
600
|
}
|
|
155
601
|
declare function InfoPanel({ label, title, description, className }: InfoPanelProps): react_jsx_runtime.JSX.Element;
|
|
156
602
|
|
|
157
|
-
export { BackendConfig, type BackendConfigProps, type BackendStatusData, type SnapshotInfo as DashboardSnapshotInfo, type ExposedPort, type GitCommitData, GitPanel, type GitPanelProps, type GitStatusData, InfoPanel, type InfoPanelProps, type McpServer, NetworkConfig, type NetworkConfigData, type NetworkConfigProps, PortsList, type PortsListProps, type ProcessInfo, ProcessList, type ProcessListProps, PromoBanner, type PromoBannerProps, SnapshotList, type SnapshotListProps, SystemLogsViewer, type SystemLogsViewerProps, UsageSummary, type UsageSummaryData, type UsageSummaryProps };
|
|
603
|
+
export { type Backend, BackendConfig, type BackendConfigProps, BackendSelector, type BackendSelectorProps, type BackendStatusData, ClusterStatusBar, type ClusterStatusBarProps, type ClusterStatusItem, CreditBalance, type CreditBalanceProps, DashboardLayout, type DashboardLayoutProps, type Profile as DashboardProfile, type SnapshotInfo as DashboardSnapshotInfo, type DashboardUser, type ExposedPort, type GitCommitData, GitPanel, type GitPanelProps, type GitStatusData, HARNESS_OPTIONS, HarnessPicker, type HarnessPickerProps, type HarnessType, InfoPanel, type InfoPanelProps, type Invoice, InvoiceTable, type InvoiceTableProps, type McpServer, type NavItem, NetworkConfig, type NetworkConfigData, type NetworkConfigProps, NewSandboxCard, type NewSandboxCardProps, type PlanCardData, PlanCards, type PlanCardsProps, type PlanFeature, PortsList, type PortsListProps, type ProcessInfo, ProcessList, type ProcessListProps, type ProductVariant, ProfileAvatar, type ProfileAvatarProps, ProfileComparison, type ProfileComparisonProps, ProfileSelector, type ProfileSelectorProps, PromoBanner, type PromoBannerProps, RailButton, type RailButtonProps, RailModeButton, type RailModeButtonProps, RailSeparator, type RailSeparatorProps, ResourceMeter, type ResourceMeterProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, type SandboxCardData, type SandboxCardProps, type SandboxStatus, SandboxTable, type SandboxTableProps, Sidebar, SidebarContent, type SidebarContentProps, 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, SnapshotList, type SnapshotListProps, SystemLogsViewer, type SystemLogsViewerProps, type TeamRole, UsageSummary, type UsageSummaryData, type UsageSummaryProps, type Variant, VariantList, type VariantListProps, type VariantOutcome, type VariantStatus, canAdminSandbox, useSidebar };
|