@tangle-network/sandbox-ui 0.45.0 → 0.47.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/dist/{WorkflowGraph-7YYGIBNV.js → WorkflowGraph-EOV2P5AM.js} +2 -1
- package/dist/assets.js +1 -0
- package/dist/assistant.js +2 -1
- package/dist/auth.js +1 -0
- package/dist/chat.js +4 -3
- package/dist/{chunk-6NDOA4SB.js → chunk-2ISY4R72.js} +112 -104
- package/dist/{chunk-KIRJZUX2.js → chunk-BR2LMUAE.js} +61 -34
- package/dist/{chunk-H7GMPMPB.js → chunk-GTJ5PSK5.js} +90 -3
- package/dist/{chunk-CUUUFJF5.js → chunk-KOUYJ6QP.js} +23 -23
- package/dist/{chunk-3RNYDTQ3.js → chunk-LQHTCM56.js} +21 -27
- package/dist/chunk-NXUSLH7H.js +7528 -0
- package/dist/{chunk-2XNT74ZX.js → chunk-OMUIPJQZ.js} +28 -20
- package/dist/{chunk-KCWIC3SJ.js → chunk-PZ62T5PM.js} +281 -214
- package/dist/chunk-U67V476Y.js +35 -0
- package/dist/chunk-VIREDUBF.js +215 -0
- package/dist/dashboard.d.ts +82 -66
- package/dist/dashboard.js +5 -4
- package/dist/editor.js +2 -0
- package/dist/files.d.ts +5 -0
- package/dist/files.js +1 -0
- package/dist/globals.css +1170 -47
- package/dist/hooks.js +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +95 -65
- package/dist/integrations.d.ts +5 -6
- package/dist/integrations.js +158 -63
- package/dist/markdown.js +2 -0
- package/dist/openui.d.ts +0 -5
- package/dist/openui.js +1 -0
- package/dist/pages.d.ts +1 -1
- package/dist/pages.js +89 -88
- package/dist/ports-list-DfG0VfPt.d.ts +17 -0
- package/dist/primitives.js +1 -0
- package/dist/run.js +1 -0
- package/dist/sdk-hooks.js +1 -0
- package/dist/stores.js +1 -0
- package/dist/styles.css +1170 -47
- package/dist/terminal.js +5 -209
- package/dist/utils.js +1 -0
- package/dist/workbench.d.ts +227 -0
- package/dist/workbench.js +40 -0
- package/dist/workflows.js +2 -1
- package/dist/workspace.d.ts +6 -2
- package/dist/workspace.js +2 -1
- package/package.json +13 -7
package/dist/hooks.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,15 +2,17 @@ export { ArtifactPane, ArtifactPaneProps, Avatar, AvatarFallback, AvatarImage, B
|
|
|
2
2
|
export { L as Logo, a as LogoProps, T as TangleKnot } from './logo-CZ6moVvw.js';
|
|
3
3
|
export { CodeBlock as CodeBlockDisplay, Markdown, MarkdownProps } from '@tangle-network/ui/markdown';
|
|
4
4
|
export { AgentWorkbench, ApprovalConfidenceStat, ApprovalItem, ApprovalQueue, ApprovalQueueProps, AuditCheck, AuditResults, AuditResultsProps, BannerType, CalendarEvent, CalendarView, CalendarViewProps, ContextBadge, DirectoryPane, DirectoryPaneProps, FormAudit, RuntimePane, RuntimePaneProps, SESSION_CREATED_EVENT, SandboxWorkbench, SandboxWorkbenchArtifact, SandboxWorkbenchCustomArtifact, SandboxWorkbenchFileArtifact, SandboxWorkbenchLayoutOptions, SandboxWorkbenchMarkdownArtifact, SandboxWorkbenchOpenUIArtifact, SandboxWorkbenchProps, SandboxWorkbenchSessionProps, SessionActivityMonitor, SessionActivityMonitorProps, SessionCreatedDetail, SessionOptimisticController, SessionSidebar, SessionSidebarBadge, SessionSidebarFilter, SessionSidebarItem, SessionSidebarLink, SessionSidebarProps, ShellShouldRevalidateArgs, ShellShouldRevalidateOptions, StatusBanner, StatusBannerProps, StatusBar, StatusBarProps, TaskBoard, TaskBoardColumn, TaskBoardItem, TaskBoardProps, TerminalLine, TerminalPanel, TerminalProps, UseOptimisticSessionItemsOptions, WorkspaceLayout, WorkspaceLayoutProps, createShellShouldRevalidate, dispatchSessionCreated, shellShouldRevalidate, useOptimisticSessionItems } from './workspace.js';
|
|
5
|
+
export { ArtifactView, BRAND_PRISM_THEME, CodeSurface, CodeSurfaceProps, CodeView, CodeViewProps, DiffStats, DiffView, DiffViewProps, FileBreadcrumb, FileBreadcrumbProps, GitStatusBadge, PanelHeader, PanelHeaderProps, PillTabItem, PillTabs, PillTabsProps, PreviewView, PreviewViewProps, SandboxArtifact, SandboxArtifactPane, SandboxArtifactPaneProps, SandboxArtifactTerminal, buildUnifiedPatch, computeDiffStats, resolveLanguage } from './workbench.js';
|
|
5
6
|
export { OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode } from '@tangle-network/ui/openui';
|
|
6
7
|
export { AgentTimeline, AgentTimelineArtifactItem, AgentTimelineCustomItem, AgentTimelineItem, AgentTimelineMessageItem, AgentTimelineProps, AgentTimelineStatusItem, AgentTimelineTone, AgentTimelineToolGroupItem, AgentTimelineToolItem, ChatContainer, ChatContainerProps, ChatInput, ChatInputProps, ChatMessage, ChatMessageProps, MessageList, MessageListProps, MessageRole, PendingFile, ThinkingIndicator, ThinkingIndicatorProps, UserMessage, UserMessageProps } from '@tangle-network/ui/chat';
|
|
7
8
|
export { AgentSessionControls, AgentSessionControlsProps, AgentSessionHarnessControl, AgentSessionModelControl, AgentSessionReasoningControl, ArtifactAgentDock, ArtifactAgentDockProps, ArtifactAgentDockTransport, ArtifactDockMessage, ArtifactDockStreamEvent, ArtifactKind, ArtifactScope, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_MODEL_POLICIES, ReasoningLevel, ReasoningLevelOption, ReasoningLevelPicker, ReasoningLevelPickerProps, createFetchTransport, isModelCompatibleWithHarness, modelProvider, snapHarnessToModel, snapModelToHarness } from './chat.js';
|
|
8
9
|
export { ExpandedToolDetail, ExpandedToolDetailProps, InlineThinkingItem, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps } from '@tangle-network/ui/run';
|
|
9
10
|
export { CommandPreview, DiffPreview, GlobResultsPreview, GrepResultsPreview, QuestionPreview, WebSearchPreview, WriteFilePreview } from '@tangle-network/ui/tool-previews';
|
|
10
11
|
export { FileArtifactPane, FileArtifactPaneProps, FileNode, FilePreview, FilePreviewProps, FileTabData, FileTabs, FileTabsProps, FileTree, FileTreeProps, FileTreeVisibilityOptions, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, filterFileTree } from '@tangle-network/ui/files';
|
|
11
|
-
export { ActivityFeed, ActivityFeedProps, ActivityItem, Backend, BackendConfig, BackendConfigProps, BackendSelector, BackendSelectorProps, BackendStatusData, ClusterStatusBar, ClusterStatusBarProps, ClusterStatusItem, CreditBalance, CreditBalanceProps, DashboardLayout, DashboardLayoutProps, DashboardProfile, DashboardSnapshotInfo, DashboardUser,
|
|
12
|
+
export { ActivityFeed, ActivityFeedProps, ActivityItem, Backend, BackendConfig, BackendConfigProps, BackendSelector, BackendSelectorProps, BackendStatusData, ClusterStatusBar, ClusterStatusBarProps, ClusterStatusItem, CreditBalance, CreditBalanceProps, DashboardLayout, DashboardLayoutProps, DashboardProfile, DashboardSnapshotInfo, DashboardUser, GitCommitData, GitPanel, GitPanelProps, GitStatusData, HARNESS_BRAND, HARNESS_OPTIONS, HarnessBrand, HarnessLogo, HarnessLogoProps, HarnessPicker, HarnessPickerProps, INSUFFICIENT_BALANCE_CODE, InfoPanel, InfoPanelProps, InsufficientBalance, Invoice, InvoiceTable, InvoiceTableProps, McpServer, MetricAreaChart, MetricAreaChartProps, MetricChartPoint, MetricChartTone, NavItem, NetworkConfig, NetworkConfigData, NetworkConfigProps, NewSandboxCard, NewSandboxCardProps, OutOfCreditsModal, OutOfCreditsModalProps, PlanCardData, PlanCards, PlanCardsProps, PlanFeature, ProcessInfo, ProcessList, ProcessListProps, ProductVariant, ProfileAvatar, ProfileAvatarProps, ProfileComparison, ProfileComparisonProps, ProfileSelector, ProfileSelectorProps, PromoBanner, PromoBannerProps, RailButton, RailButtonProps, RailCollapseToggle, RailCollapseToggleProps, RailFlyout, RailFlyoutProps, RailModeButton, RailModeButtonProps, RailSeparator, RailSeparatorProps, RailThemeToggle, RailTooltip, RailTooltipProps, ResourceMeter, ResourceMeterProps, ResourceSnapshot, ResourceSnapshotItem, ResourceSnapshotProps, SIDEBAR_MOBILE_WIDTH, SIDEBAR_PANEL_WIDTH, SIDEBAR_RAIL_LABELED_WIDTH, SIDEBAR_RAIL_WIDTH, SIDEBAR_TOTAL_WIDTH, SandboxCard, SandboxCardData, SandboxCardProps, SandboxStatus, SandboxTable, SandboxTableProps, Sidebar, SidebarContent, SidebarContentProps, SidebarLayout, SidebarLayoutFlyoutItem, SidebarLayoutNavItem, SidebarLayoutProps, SidebarPanel, SidebarPanelContent, SidebarPanelContentProps, SidebarPanelHeader, SidebarPanelHeaderProps, SidebarPanelProps, SidebarProps, SidebarProvider, SidebarProviderProps, SidebarRail, SidebarRailFooter, SidebarRailFooterProps, SidebarRailHeader, SidebarRailHeaderProps, SidebarRailNav, SidebarRailNavProps, SidebarRailProps, SidebarUser, SnapshotList, SnapshotListProps, SystemLogsViewer, SystemLogsViewerProps, TeamRole, UsageSummary, UsageSummaryData, UsageSummaryProps, Variant, VariantList, VariantListProps, VariantOutcome, VariantStatus, canAdminSandbox, chatCapableHarnesses, parseInsufficientBalance, useSidebar } from './dashboard.js';
|
|
12
13
|
export { D as DEFAULT_FEATURED_MODEL_IDS, M as ModelInfo, a as ModelPicker, b as ModelPickerProps, c as ModelPickerVariant, d as canonicalModelId, e as dedupeModels, f as formatContext, g as formatPricing, m as modelDedupKey } from './model-picker-NOWFpRY4.js';
|
|
13
14
|
export { B as BillingBalance, a as BillingDashboard, b as BillingDashboardProps, c as BillingSubscription, d as BillingUsage, P as PricingPage, e as PricingPageProps, f as PricingTier, T as TemplateCard, g as TemplateCardData, h as TemplateCardProps, U as UsageChart, i as UsageChartProps, j as UsageDataPoint, k as formatPrice } from './template-card-UhV3pmRC.js';
|
|
15
|
+
export { E as ExposedPort, P as PortsList, a as PortsListProps } from './ports-list-DfG0VfPt.js';
|
|
14
16
|
export { AuthHeader, AuthHeaderProps, GitHubLoginButton, GitHubLoginButtonProps, LoginLayout, LoginLayoutProps, SessionUser, UserMenu, UserMenuProps } from '@tangle-network/ui/auth';
|
|
15
17
|
export { TangleLoginButton, TangleLoginButtonProps } from './auth.js';
|
|
16
18
|
export { AgentStreamEvent, AppendUserMessageOptions, ApplySdkEventOptions, AuthUser, AutomationStreamEvent, BeginAssistantMessageOptions, BotStreamEvent, CompleteAssistantMessageOptions, RealtimeSessionOptions, RealtimeSessionRegistry, RealtimeSessionRegistryProps, RealtimeSessionState, RealtimeSessionTarget, SSEEvent, SdkSessionAttachment, SdkSessionEvent, SdkSessionSeed, TaskStreamEvent, TerminalStreamEvent, UseAuthOptions, UseAuthResult, UseRunGroupsOptions, UseSSEStreamOptions, UseSSEStreamResult, UseSdkSessionOptions, UseSdkSessionReturn, UseToolCallStreamReturn, createAuthFetcher, useApiKey, useAuth, useAutoScroll, useDropdownMenu, useLiveTime, useRealtimeSession, useRunCollapseState, useRunGroups, useSSEStream, useSdkSession, useToolCallStream } from '@tangle-network/ui/hooks';
|
package/dist/index.js
CHANGED
|
@@ -76,6 +76,79 @@ import {
|
|
|
76
76
|
timeAgo,
|
|
77
77
|
truncateText
|
|
78
78
|
} from "./chunk-TK46XFLM.js";
|
|
79
|
+
import {
|
|
80
|
+
OpenUIArtifactRenderer
|
|
81
|
+
} from "./chunk-AZ3AWMTM.js";
|
|
82
|
+
import {
|
|
83
|
+
AuthHeader,
|
|
84
|
+
GitHubLoginButton,
|
|
85
|
+
LoginLayout,
|
|
86
|
+
TangleLoginButton,
|
|
87
|
+
UserMenu
|
|
88
|
+
} from "./chunk-IOB2PW5Z.js";
|
|
89
|
+
import {
|
|
90
|
+
AgentSessionControls,
|
|
91
|
+
AgentTimeline,
|
|
92
|
+
ArtifactAgentDock,
|
|
93
|
+
ChatContainer,
|
|
94
|
+
ChatInput,
|
|
95
|
+
ChatMessage,
|
|
96
|
+
DEFAULT_REASONING_LEVEL_OPTIONS,
|
|
97
|
+
HARNESS_MODEL_POLICIES,
|
|
98
|
+
MessageList,
|
|
99
|
+
ReasoningLevelPicker,
|
|
100
|
+
ThinkingIndicator,
|
|
101
|
+
UserMessage,
|
|
102
|
+
createFetchTransport,
|
|
103
|
+
isModelCompatibleWithHarness,
|
|
104
|
+
modelProvider,
|
|
105
|
+
snapHarnessToModel,
|
|
106
|
+
snapModelToHarness
|
|
107
|
+
} from "./chunk-KOUYJ6QP.js";
|
|
108
|
+
import {
|
|
109
|
+
ExpandedToolDetail,
|
|
110
|
+
InlineThinkingItem,
|
|
111
|
+
InlineToolItem,
|
|
112
|
+
LiveDuration,
|
|
113
|
+
RunGroup
|
|
114
|
+
} from "./chunk-JBGKGLD7.js";
|
|
115
|
+
import {
|
|
116
|
+
AgentWorkbench,
|
|
117
|
+
ApprovalQueue,
|
|
118
|
+
ArtifactPane,
|
|
119
|
+
AuditResults,
|
|
120
|
+
CalendarView,
|
|
121
|
+
DirectoryPane,
|
|
122
|
+
RuntimePane,
|
|
123
|
+
SESSION_CREATED_EVENT,
|
|
124
|
+
SandboxWorkbench,
|
|
125
|
+
SessionActivityMonitor,
|
|
126
|
+
SessionSidebar,
|
|
127
|
+
StatusBanner,
|
|
128
|
+
StatusBar,
|
|
129
|
+
TaskBoard,
|
|
130
|
+
TerminalPanel,
|
|
131
|
+
WorkspaceLayout,
|
|
132
|
+
createShellShouldRevalidate,
|
|
133
|
+
dispatchSessionCreated,
|
|
134
|
+
shellShouldRevalidate,
|
|
135
|
+
useOptimisticSessionItems
|
|
136
|
+
} from "./chunk-2ISY4R72.js";
|
|
137
|
+
import {
|
|
138
|
+
BRAND_PRISM_THEME,
|
|
139
|
+
CodeSurface,
|
|
140
|
+
CodeView,
|
|
141
|
+
DiffView,
|
|
142
|
+
FileBreadcrumb,
|
|
143
|
+
GitStatusBadge,
|
|
144
|
+
PanelHeader,
|
|
145
|
+
PillTabs,
|
|
146
|
+
PreviewView,
|
|
147
|
+
SandboxArtifactPane,
|
|
148
|
+
buildUnifiedPatch,
|
|
149
|
+
computeDiffStats,
|
|
150
|
+
resolveLanguage
|
|
151
|
+
} from "./chunk-NXUSLH7H.js";
|
|
79
152
|
import {
|
|
80
153
|
FileArtifactPane,
|
|
81
154
|
FilePreview,
|
|
@@ -138,17 +211,7 @@ import {
|
|
|
138
211
|
canAdminSandbox,
|
|
139
212
|
parseInsufficientBalance,
|
|
140
213
|
useSidebar
|
|
141
|
-
} from "./chunk-
|
|
142
|
-
import {
|
|
143
|
-
usePtySession
|
|
144
|
-
} from "./chunk-77WVVJA4.js";
|
|
145
|
-
import {
|
|
146
|
-
AuthHeader,
|
|
147
|
-
GitHubLoginButton,
|
|
148
|
-
LoginLayout,
|
|
149
|
-
TangleLoginButton,
|
|
150
|
-
UserMenu
|
|
151
|
-
} from "./chunk-IOB2PW5Z.js";
|
|
214
|
+
} from "./chunk-PZ62T5PM.js";
|
|
152
215
|
import {
|
|
153
216
|
BillingDashboard,
|
|
154
217
|
InfoPanel,
|
|
@@ -156,7 +219,11 @@ import {
|
|
|
156
219
|
TemplateCard,
|
|
157
220
|
UsageChart,
|
|
158
221
|
formatPrice
|
|
159
|
-
} from "./chunk-
|
|
222
|
+
} from "./chunk-OMUIPJQZ.js";
|
|
223
|
+
import "./chunk-VIREDUBF.js";
|
|
224
|
+
import {
|
|
225
|
+
usePtySession
|
|
226
|
+
} from "./chunk-77WVVJA4.js";
|
|
160
227
|
import {
|
|
161
228
|
Avatar,
|
|
162
229
|
AvatarFallback,
|
|
@@ -244,25 +311,6 @@ import {
|
|
|
244
311
|
useTheme,
|
|
245
312
|
useToast
|
|
246
313
|
} from "./chunk-4ZZUMXPX.js";
|
|
247
|
-
import {
|
|
248
|
-
AgentSessionControls,
|
|
249
|
-
AgentTimeline,
|
|
250
|
-
ArtifactAgentDock,
|
|
251
|
-
ChatContainer,
|
|
252
|
-
ChatInput,
|
|
253
|
-
ChatMessage,
|
|
254
|
-
DEFAULT_REASONING_LEVEL_OPTIONS,
|
|
255
|
-
HARNESS_MODEL_POLICIES,
|
|
256
|
-
MessageList,
|
|
257
|
-
ReasoningLevelPicker,
|
|
258
|
-
ThinkingIndicator,
|
|
259
|
-
UserMessage,
|
|
260
|
-
createFetchTransport,
|
|
261
|
-
isModelCompatibleWithHarness,
|
|
262
|
-
modelProvider,
|
|
263
|
-
snapHarnessToModel,
|
|
264
|
-
snapModelToHarness
|
|
265
|
-
} from "./chunk-CUUUFJF5.js";
|
|
266
314
|
import {
|
|
267
315
|
BackendSelector,
|
|
268
316
|
HARNESS_BRAND,
|
|
@@ -270,7 +318,7 @@ import {
|
|
|
270
318
|
HarnessLogo,
|
|
271
319
|
HarnessPicker,
|
|
272
320
|
chatCapableHarnesses
|
|
273
|
-
} from "./chunk-
|
|
321
|
+
} from "./chunk-BR2LMUAE.js";
|
|
274
322
|
import {
|
|
275
323
|
DEFAULT_FEATURED_MODEL_IDS,
|
|
276
324
|
ModelPicker,
|
|
@@ -279,40 +327,9 @@ import {
|
|
|
279
327
|
formatContext,
|
|
280
328
|
formatPricing,
|
|
281
329
|
modelDedupKey
|
|
282
|
-
} from "./chunk-
|
|
283
|
-
import {
|
|
284
|
-
ExpandedToolDetail,
|
|
285
|
-
InlineThinkingItem,
|
|
286
|
-
InlineToolItem,
|
|
287
|
-
LiveDuration,
|
|
288
|
-
RunGroup
|
|
289
|
-
} from "./chunk-JBGKGLD7.js";
|
|
290
|
-
import {
|
|
291
|
-
AgentWorkbench,
|
|
292
|
-
ApprovalQueue,
|
|
293
|
-
ArtifactPane,
|
|
294
|
-
AuditResults,
|
|
295
|
-
CalendarView,
|
|
296
|
-
DirectoryPane,
|
|
297
|
-
RuntimePane,
|
|
298
|
-
SESSION_CREATED_EVENT,
|
|
299
|
-
SandboxWorkbench,
|
|
300
|
-
SessionActivityMonitor,
|
|
301
|
-
SessionSidebar,
|
|
302
|
-
StatusBanner,
|
|
303
|
-
StatusBar,
|
|
304
|
-
TaskBoard,
|
|
305
|
-
TerminalPanel,
|
|
306
|
-
WorkspaceLayout,
|
|
307
|
-
createShellShouldRevalidate,
|
|
308
|
-
dispatchSessionCreated,
|
|
309
|
-
shellShouldRevalidate,
|
|
310
|
-
useOptimisticSessionItems
|
|
311
|
-
} from "./chunk-6NDOA4SB.js";
|
|
330
|
+
} from "./chunk-LQHTCM56.js";
|
|
312
331
|
import "./chunk-EI44GEQ5.js";
|
|
313
|
-
import
|
|
314
|
-
OpenUIArtifactRenderer
|
|
315
|
-
} from "./chunk-AZ3AWMTM.js";
|
|
332
|
+
import "./chunk-U67V476Y.js";
|
|
316
333
|
|
|
317
334
|
// src/index.ts
|
|
318
335
|
import { CodeBlock as CodeBlock2 } from "@tangle-network/ui/markdown";
|
|
@@ -344,6 +361,7 @@ export {
|
|
|
344
361
|
Avatar,
|
|
345
362
|
AvatarFallback,
|
|
346
363
|
AvatarImage,
|
|
364
|
+
BRAND_PRISM_THEME,
|
|
347
365
|
BackendConfig,
|
|
348
366
|
BackendSelector,
|
|
349
367
|
Badge,
|
|
@@ -362,6 +380,8 @@ export {
|
|
|
362
380
|
ClusterStatusBar,
|
|
363
381
|
CodeBlock,
|
|
364
382
|
CodeBlock2 as CodeBlockDisplay,
|
|
383
|
+
CodeSurface,
|
|
384
|
+
CodeView,
|
|
365
385
|
CommandPreview,
|
|
366
386
|
CopyButton,
|
|
367
387
|
CreditBalance,
|
|
@@ -379,6 +399,7 @@ export {
|
|
|
379
399
|
DialogTitle,
|
|
380
400
|
DialogTrigger,
|
|
381
401
|
DiffPreview,
|
|
402
|
+
DiffView,
|
|
382
403
|
DirectoryPane,
|
|
383
404
|
DropZone,
|
|
384
405
|
DropdownMenu,
|
|
@@ -399,11 +420,13 @@ export {
|
|
|
399
420
|
EmptyState,
|
|
400
421
|
ExpandedToolDetail,
|
|
401
422
|
FileArtifactPane,
|
|
423
|
+
FileBreadcrumb,
|
|
402
424
|
FilePreview,
|
|
403
425
|
FileTabs,
|
|
404
426
|
FileTree,
|
|
405
427
|
GitHubLoginButton,
|
|
406
428
|
GitPanel,
|
|
429
|
+
GitStatusBadge,
|
|
407
430
|
GlobResultsPreview,
|
|
408
431
|
GrepResultsPreview,
|
|
409
432
|
HARNESS_BRAND,
|
|
@@ -430,8 +453,11 @@ export {
|
|
|
430
453
|
NewSandboxCard,
|
|
431
454
|
OpenUIArtifactRenderer,
|
|
432
455
|
OutOfCreditsModal,
|
|
456
|
+
PanelHeader,
|
|
457
|
+
PillTabs,
|
|
433
458
|
PlanCards,
|
|
434
459
|
PortsList,
|
|
460
|
+
PreviewView,
|
|
435
461
|
PricingPage,
|
|
436
462
|
ProcessList,
|
|
437
463
|
ProfileAvatar,
|
|
@@ -460,6 +486,7 @@ export {
|
|
|
460
486
|
SIDEBAR_RAIL_LABELED_WIDTH,
|
|
461
487
|
SIDEBAR_RAIL_WIDTH,
|
|
462
488
|
SIDEBAR_TOTAL_WIDTH,
|
|
489
|
+
SandboxArtifactPane,
|
|
463
490
|
SandboxCard,
|
|
464
491
|
SandboxTable,
|
|
465
492
|
SandboxWorkbench,
|
|
@@ -537,6 +564,7 @@ export {
|
|
|
537
564
|
addMessage,
|
|
538
565
|
addParts,
|
|
539
566
|
badgeVariants,
|
|
567
|
+
buildUnifiedPatch,
|
|
540
568
|
bumpActiveSessionActivity,
|
|
541
569
|
buttonVariants,
|
|
542
570
|
canAdminSandbox,
|
|
@@ -544,6 +572,7 @@ export {
|
|
|
544
572
|
chatCapableHarnesses,
|
|
545
573
|
clearChat,
|
|
546
574
|
cn,
|
|
575
|
+
computeDiffStats,
|
|
547
576
|
connectSession,
|
|
548
577
|
copyText,
|
|
549
578
|
createAuthFetcher,
|
|
@@ -579,6 +608,7 @@ export {
|
|
|
579
608
|
partMapAtom,
|
|
580
609
|
registerActiveSession,
|
|
581
610
|
resetActiveSessions,
|
|
611
|
+
resolveLanguage,
|
|
582
612
|
sessionAtom,
|
|
583
613
|
setActiveSessionAttention,
|
|
584
614
|
setActiveSessionConnection,
|
package/dist/integrations.d.ts
CHANGED
|
@@ -13,10 +13,7 @@ interface IntegrationConnection {
|
|
|
13
13
|
connectorId?: string;
|
|
14
14
|
status: "connected" | "pending" | "revoked" | "expired" | (string & {});
|
|
15
15
|
grantedScopes?: string[];
|
|
16
|
-
|
|
17
|
-
identity?: string;
|
|
18
|
-
displayName?: string;
|
|
19
|
-
} & Record<string, unknown>;
|
|
16
|
+
accountDisplay?: string | null;
|
|
20
17
|
expiresAt?: string | null;
|
|
21
18
|
createdAt?: string;
|
|
22
19
|
updatedAt?: string;
|
|
@@ -57,8 +54,10 @@ interface IntegrationsPanelProps {
|
|
|
57
54
|
connectorId: string;
|
|
58
55
|
}) => void | Promise<void>;
|
|
59
56
|
/**
|
|
60
|
-
* Invoked when the user
|
|
61
|
-
*
|
|
57
|
+
* Invoked when the user confirms disconnecting a live connection from the
|
|
58
|
+
* disconnect control on a connected tile. May return a promise; the
|
|
59
|
+
* confirmation dialog shows a loading state until it settles and surfaces a
|
|
60
|
+
* thrown error inline.
|
|
62
61
|
*/
|
|
63
62
|
onDisconnect: (connectionId: string) => void | Promise<void>;
|
|
64
63
|
/** Empty-state message when the catalog hasn't loaded any providers. */
|
package/dist/integrations.js
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
normalizeProviderId
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
ProviderIcon,
|
|
3
|
+
normalizeProviderId
|
|
4
|
+
} from "./chunk-GTJ5PSK5.js";
|
|
5
|
+
import "./chunk-U67V476Y.js";
|
|
6
6
|
|
|
7
7
|
// src/integrations/integrations-panel.tsx
|
|
8
8
|
import * as React from "react";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
Button,
|
|
11
|
+
Card,
|
|
12
|
+
CardContent,
|
|
13
|
+
Dialog,
|
|
14
|
+
DialogContent,
|
|
15
|
+
DialogDescription,
|
|
16
|
+
DialogFooter,
|
|
17
|
+
DialogHeader,
|
|
18
|
+
DialogTitle,
|
|
19
|
+
EmptyState
|
|
20
|
+
} from "@tangle-network/ui/primitives";
|
|
10
21
|
import { cn } from "@tangle-network/ui/utils";
|
|
11
|
-
import { Check, Search,
|
|
22
|
+
import { Check, Search, Unplug } from "lucide-react";
|
|
12
23
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
24
|
var DEFAULT_FEATURED_IDS = [
|
|
14
25
|
"gmail",
|
|
@@ -48,51 +59,7 @@ var DEFAULT_FEATURED_IDS = [
|
|
|
48
59
|
function defaultConnectorOf(provider) {
|
|
49
60
|
return provider.connectors?.[0]?.connectorId ?? provider.providerId;
|
|
50
61
|
}
|
|
51
|
-
|
|
52
|
-
provider,
|
|
53
|
-
size = 56
|
|
54
|
-
}) {
|
|
55
|
-
const candidates = React.useMemo(
|
|
56
|
-
() => providerLogoCandidates({
|
|
57
|
-
id: provider.providerId,
|
|
58
|
-
iconUrl: provider.iconUrl
|
|
59
|
-
}),
|
|
60
|
-
[provider]
|
|
61
|
-
);
|
|
62
|
-
const [index, setIndex] = React.useState(0);
|
|
63
|
-
const label = (provider.displayName ?? provider.providerId).trim();
|
|
64
|
-
const initial = label.charAt(0).toUpperCase() || "?";
|
|
65
|
-
const src = candidates[index];
|
|
66
|
-
if (!src) {
|
|
67
|
-
return /* @__PURE__ */ jsx(
|
|
68
|
-
"span",
|
|
69
|
-
{
|
|
70
|
-
className: "flex shrink-0 items-center justify-center rounded-2xl font-semibold text-white",
|
|
71
|
-
style: {
|
|
72
|
-
width: size,
|
|
73
|
-
height: size,
|
|
74
|
-
backgroundColor: monogramColor(provider.providerId),
|
|
75
|
-
fontSize: Math.round(size * 0.42)
|
|
76
|
-
},
|
|
77
|
-
"aria-hidden": true,
|
|
78
|
-
children: initial
|
|
79
|
-
}
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
return /* @__PURE__ */ jsx(
|
|
83
|
-
"img",
|
|
84
|
-
{
|
|
85
|
-
src,
|
|
86
|
-
alt: "",
|
|
87
|
-
width: size,
|
|
88
|
-
height: size,
|
|
89
|
-
loading: "lazy",
|
|
90
|
-
className: "shrink-0 object-contain",
|
|
91
|
-
style: { width: size, height: size },
|
|
92
|
-
onError: () => setIndex((i) => i + 1)
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
}
|
|
62
|
+
var LOGO_SIZE = 48;
|
|
96
63
|
function buildConnectionIndex(connections) {
|
|
97
64
|
const index = /* @__PURE__ */ new Map();
|
|
98
65
|
for (const conn of connections) {
|
|
@@ -139,6 +106,12 @@ function IntegrationsPanel({
|
|
|
139
106
|
}) {
|
|
140
107
|
const [query, setQuery] = React.useState("");
|
|
141
108
|
const [sort, setSort] = React.useState(defaultSort);
|
|
109
|
+
const [disconnectTarget, setDisconnectTarget] = React.useState(null);
|
|
110
|
+
const [isDisconnecting, setIsDisconnecting] = React.useState(false);
|
|
111
|
+
const [disconnectError, setDisconnectError] = React.useState(
|
|
112
|
+
null
|
|
113
|
+
);
|
|
114
|
+
const activeDisconnect = React.useRef(0);
|
|
142
115
|
const connectionIndex = React.useMemo(
|
|
143
116
|
() => buildConnectionIndex(connections),
|
|
144
117
|
[connections]
|
|
@@ -161,6 +134,30 @@ function IntegrationsPanel({
|
|
|
161
134
|
});
|
|
162
135
|
return sorted;
|
|
163
136
|
}, [catalog, query, sort, featuredRank]);
|
|
137
|
+
const closeDisconnect = React.useCallback(() => {
|
|
138
|
+
activeDisconnect.current += 1;
|
|
139
|
+
setIsDisconnecting(false);
|
|
140
|
+
setDisconnectTarget(null);
|
|
141
|
+
setDisconnectError(null);
|
|
142
|
+
}, []);
|
|
143
|
+
const confirmDisconnect = React.useCallback(async () => {
|
|
144
|
+
if (!disconnectTarget) return;
|
|
145
|
+
const reqId = activeDisconnect.current += 1;
|
|
146
|
+
setIsDisconnecting(true);
|
|
147
|
+
setDisconnectError(null);
|
|
148
|
+
try {
|
|
149
|
+
await Promise.resolve(onDisconnect(disconnectTarget.connectionId));
|
|
150
|
+
if (activeDisconnect.current !== reqId) return;
|
|
151
|
+
setDisconnectTarget(null);
|
|
152
|
+
} catch (e) {
|
|
153
|
+
if (activeDisconnect.current !== reqId) return;
|
|
154
|
+
setDisconnectError(
|
|
155
|
+
e instanceof Error ? e.message : "Failed to disconnect."
|
|
156
|
+
);
|
|
157
|
+
} finally {
|
|
158
|
+
if (activeDisconnect.current === reqId) setIsDisconnecting(false);
|
|
159
|
+
}
|
|
160
|
+
}, [disconnectTarget, onDisconnect]);
|
|
164
161
|
if (error) {
|
|
165
162
|
return /* @__PURE__ */ jsx(Card, { className: cn("border-destructive/50", className), children: /* @__PURE__ */ jsx(CardContent, { className: "py-6", children: /* @__PURE__ */ jsxs("p", { className: "text-sm text-destructive", children: [
|
|
166
163
|
"Failed to load integrations: ",
|
|
@@ -195,6 +192,7 @@ function IntegrationsPanel({
|
|
|
195
192
|
}
|
|
196
193
|
);
|
|
197
194
|
}
|
|
195
|
+
const disconnectAccountLabel = disconnectTarget?.accountDisplay;
|
|
198
196
|
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-4", className), children: [
|
|
199
197
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: [
|
|
200
198
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center gap-2 rounded-lg border border-border bg-card px-3 py-2", children: [
|
|
@@ -259,8 +257,9 @@ function IntegrationsPanel({
|
|
|
259
257
|
{
|
|
260
258
|
"data-testid": `integration-${provider.providerId}`,
|
|
261
259
|
"data-connected": "true",
|
|
260
|
+
title: live.accountDisplay ? `${name} \u2014 ${live.accountDisplay}` : name,
|
|
262
261
|
className: cn(
|
|
263
|
-
"
|
|
262
|
+
"relative flex aspect-square flex-col items-center justify-center gap-2 rounded-xl border p-3 text-center",
|
|
264
263
|
"border-[var(--surface-success-border)] bg-[var(--surface-success-bg)]"
|
|
265
264
|
),
|
|
266
265
|
children: [
|
|
@@ -269,16 +268,48 @@ function IntegrationsPanel({
|
|
|
269
268
|
"button",
|
|
270
269
|
{
|
|
271
270
|
type: "button",
|
|
272
|
-
onClick: () =>
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
271
|
+
onClick: () => setDisconnectTarget({
|
|
272
|
+
connectionId: live.id,
|
|
273
|
+
name,
|
|
274
|
+
accountDisplay: live.accountDisplay
|
|
275
|
+
}),
|
|
276
|
+
"data-testid": `disconnect-${provider.providerId}`,
|
|
277
|
+
"aria-label": `Disconnect ${name}`,
|
|
278
|
+
title: "Disconnect",
|
|
279
|
+
className: "absolute right-1.5 top-1.5 flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground/70 transition-colors hover:bg-background hover:text-foreground focus-visible:bg-background focus-visible:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
280
|
+
children: /* @__PURE__ */ jsx(Unplug, { className: "h-3.5 w-3.5" })
|
|
281
|
+
}
|
|
282
|
+
),
|
|
283
|
+
/* @__PURE__ */ jsx(
|
|
284
|
+
ProviderIcon,
|
|
285
|
+
{
|
|
286
|
+
id: provider.providerId,
|
|
287
|
+
iconUrl: provider.iconUrl,
|
|
288
|
+
displayName: provider.displayName,
|
|
289
|
+
size: LOGO_SIZE,
|
|
290
|
+
className: "rounded-2xl"
|
|
278
291
|
}
|
|
279
292
|
),
|
|
280
|
-
/* @__PURE__ */
|
|
281
|
-
|
|
293
|
+
/* @__PURE__ */ jsxs("div", { className: "flex h-8 w-full flex-col justify-center leading-4", children: [
|
|
294
|
+
/* @__PURE__ */ jsx(
|
|
295
|
+
"span",
|
|
296
|
+
{
|
|
297
|
+
className: cn(
|
|
298
|
+
"w-full text-xs font-medium text-foreground",
|
|
299
|
+
live.accountDisplay ? "truncate" : "line-clamp-2"
|
|
300
|
+
),
|
|
301
|
+
children: name
|
|
302
|
+
}
|
|
303
|
+
),
|
|
304
|
+
live.accountDisplay ? /* @__PURE__ */ jsx(
|
|
305
|
+
"span",
|
|
306
|
+
{
|
|
307
|
+
className: "w-full truncate text-[11px] leading-4 text-muted-foreground",
|
|
308
|
+
"data-testid": `account-${provider.providerId}`,
|
|
309
|
+
children: live.accountDisplay
|
|
310
|
+
}
|
|
311
|
+
) : null
|
|
312
|
+
] })
|
|
282
313
|
]
|
|
283
314
|
},
|
|
284
315
|
`${provider.providerId}:${connectorId}`
|
|
@@ -297,13 +328,77 @@ function IntegrationsPanel({
|
|
|
297
328
|
"hover:border-primary/40 hover:bg-accent/40 hover:shadow-sm focus:outline-none focus-visible:border-primary/50 focus-visible:ring-2 focus-visible:ring-primary/20"
|
|
298
329
|
),
|
|
299
330
|
children: [
|
|
300
|
-
/* @__PURE__ */ jsx(
|
|
301
|
-
|
|
331
|
+
/* @__PURE__ */ jsx(
|
|
332
|
+
ProviderIcon,
|
|
333
|
+
{
|
|
334
|
+
id: provider.providerId,
|
|
335
|
+
iconUrl: provider.iconUrl,
|
|
336
|
+
displayName: provider.displayName,
|
|
337
|
+
size: LOGO_SIZE,
|
|
338
|
+
className: "rounded-2xl"
|
|
339
|
+
}
|
|
340
|
+
),
|
|
341
|
+
/* @__PURE__ */ jsx("span", { className: "line-clamp-2 h-8 w-full text-xs font-medium leading-4 text-foreground", children: name })
|
|
302
342
|
]
|
|
303
343
|
},
|
|
304
344
|
`${provider.providerId}:${connectorId}`
|
|
305
345
|
);
|
|
306
|
-
}) })
|
|
346
|
+
}) }),
|
|
347
|
+
/* @__PURE__ */ jsx(
|
|
348
|
+
Dialog,
|
|
349
|
+
{
|
|
350
|
+
open: !!disconnectTarget,
|
|
351
|
+
onOpenChange: (open) => {
|
|
352
|
+
if (!open) closeDisconnect();
|
|
353
|
+
},
|
|
354
|
+
children: /* @__PURE__ */ jsxs(
|
|
355
|
+
DialogContent,
|
|
356
|
+
{
|
|
357
|
+
className: "max-w-sm",
|
|
358
|
+
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
359
|
+
children: [
|
|
360
|
+
/* @__PURE__ */ jsxs(DialogHeader, { children: [
|
|
361
|
+
/* @__PURE__ */ jsxs(DialogTitle, { children: [
|
|
362
|
+
"Disconnect ",
|
|
363
|
+
disconnectTarget?.name ?? "integration",
|
|
364
|
+
"?"
|
|
365
|
+
] }),
|
|
366
|
+
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
367
|
+
"This removes Sandbox's access to your",
|
|
368
|
+
" ",
|
|
369
|
+
disconnectTarget?.name ?? "this",
|
|
370
|
+
" account",
|
|
371
|
+
disconnectAccountLabel ? ` (${disconnectAccountLabel})` : "",
|
|
372
|
+
". You can reconnect anytime."
|
|
373
|
+
] })
|
|
374
|
+
] }),
|
|
375
|
+
disconnectError ? /* @__PURE__ */ jsx("p", { className: "text-sm text-destructive", role: "alert", children: disconnectError }) : null,
|
|
376
|
+
/* @__PURE__ */ jsxs(DialogFooter, { children: [
|
|
377
|
+
/* @__PURE__ */ jsx(
|
|
378
|
+
Button,
|
|
379
|
+
{
|
|
380
|
+
variant: "outline",
|
|
381
|
+
onClick: closeDisconnect,
|
|
382
|
+
"data-testid": "cancel-disconnect",
|
|
383
|
+
children: "Cancel"
|
|
384
|
+
}
|
|
385
|
+
),
|
|
386
|
+
/* @__PURE__ */ jsx(
|
|
387
|
+
Button,
|
|
388
|
+
{
|
|
389
|
+
variant: "destructive",
|
|
390
|
+
loading: isDisconnecting,
|
|
391
|
+
onClick: confirmDisconnect,
|
|
392
|
+
"data-testid": "confirm-disconnect",
|
|
393
|
+
children: "Disconnect"
|
|
394
|
+
}
|
|
395
|
+
)
|
|
396
|
+
] })
|
|
397
|
+
]
|
|
398
|
+
}
|
|
399
|
+
)
|
|
400
|
+
}
|
|
401
|
+
)
|
|
307
402
|
] });
|
|
308
403
|
}
|
|
309
404
|
|
package/dist/markdown.js
CHANGED
package/dist/openui.d.ts
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
1
|
export { OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode } from '@tangle-network/ui/openui';
|
|
2
|
-
import '@tangle-network/ui/run';
|
|
3
|
-
import '@tangle-network/ui/files';
|
|
4
|
-
import '@tangle-network/ui/utils';
|
|
5
|
-
import '@tangle-network/ui/editor';
|
|
6
|
-
import '@tangle-network/ui/markdown';
|
package/dist/openui.js
CHANGED
package/dist/pages.d.ts
CHANGED
|
@@ -202,7 +202,7 @@ interface ProvisioningConfig {
|
|
|
202
202
|
key: string;
|
|
203
203
|
value: string;
|
|
204
204
|
}[];
|
|
205
|
-
driver: "docker" | "firecracker" | "tangle";
|
|
205
|
+
driver: "docker" | "firecracker" | "host-agent-docker" | "host-agent-firecracker" | "tangle";
|
|
206
206
|
bare: boolean;
|
|
207
207
|
startupScriptIds?: string[];
|
|
208
208
|
}
|