@tangle-network/sandbox-ui 0.134.4 → 0.134.5
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.
|
@@ -317,29 +317,67 @@ function profileSubtitle(profile) {
|
|
|
317
317
|
*/
|
|
318
318
|
function AgentProfilePicker({ value, onChange, profiles, capabilities, onCreate, onUpdate, onDelete, disabled, locked, lockReason, onNewChat, className, triggerClassName, popoverClassName, side = "top" }) {
|
|
319
319
|
const [open, setOpen] = React$1.useState(false);
|
|
320
|
-
const [composing,
|
|
320
|
+
const [composing, setComposingState] = React$1.useState(null);
|
|
321
|
+
const [saving, setSaving] = React$1.useState(false);
|
|
322
|
+
const [saveError, setSaveError] = React$1.useState(null);
|
|
323
|
+
const pendingSave = React$1.useRef(false);
|
|
324
|
+
const editorEpoch = React$1.useRef(0);
|
|
325
|
+
const setComposing = React$1.useCallback((next) => {
|
|
326
|
+
editorEpoch.current += 1;
|
|
327
|
+
pendingSave.current = false;
|
|
328
|
+
setSaving(false);
|
|
329
|
+
setSaveError(null);
|
|
330
|
+
setComposingState(next);
|
|
331
|
+
}, []);
|
|
332
|
+
React$1.useEffect(() => () => {
|
|
333
|
+
editorEpoch.current += 1;
|
|
334
|
+
}, []);
|
|
321
335
|
const popoverRef = React$1.useRef(null);
|
|
322
336
|
const ref = useClickOutside(() => {
|
|
337
|
+
if (pendingSave.current) return;
|
|
323
338
|
setOpen(false);
|
|
324
339
|
setComposing(null);
|
|
325
340
|
}, [popoverRef]);
|
|
326
|
-
const canAuthor = Boolean(capabilities &&
|
|
341
|
+
const canAuthor = Boolean(capabilities && onCreate);
|
|
327
342
|
const builtins = profiles.filter((profile) => profile.builtin);
|
|
328
343
|
const custom = profiles.filter((profile) => !profile.builtin);
|
|
329
344
|
const selectedName = profiles.find((profile) => profile.id === value)?.name ?? value;
|
|
330
345
|
React$1.useEffect(() => {
|
|
331
|
-
if (!locked) return;
|
|
346
|
+
if (!locked && !disabled) return;
|
|
332
347
|
setOpen(false);
|
|
333
348
|
setComposing(null);
|
|
334
|
-
}, [
|
|
349
|
+
}, [
|
|
350
|
+
locked,
|
|
351
|
+
disabled,
|
|
352
|
+
setComposing
|
|
353
|
+
]);
|
|
335
354
|
function select(id) {
|
|
336
355
|
onChange(id);
|
|
337
356
|
setOpen(false);
|
|
338
357
|
}
|
|
339
358
|
async function save(draft) {
|
|
340
|
-
if (
|
|
341
|
-
|
|
342
|
-
|
|
359
|
+
if (pendingSave.current || locked || disabled) return;
|
|
360
|
+
const epoch = editorEpoch.current;
|
|
361
|
+
pendingSave.current = true;
|
|
362
|
+
setSaving(true);
|
|
363
|
+
setSaveError(null);
|
|
364
|
+
try {
|
|
365
|
+
if (draft.id) {
|
|
366
|
+
if (!onUpdate) throw new Error("Editing this agent is unavailable.");
|
|
367
|
+
await onUpdate(draft.id, draft);
|
|
368
|
+
} else {
|
|
369
|
+
if (!onCreate) throw new Error("Creating an agent is unavailable.");
|
|
370
|
+
await onCreate(draft);
|
|
371
|
+
}
|
|
372
|
+
if (editorEpoch.current === epoch) setComposing(null);
|
|
373
|
+
} catch (error) {
|
|
374
|
+
if (editorEpoch.current === epoch) setSaveError(error instanceof Error && error.message.trim() ? error.message : "Could not save this agent. Your draft is still here; try again.");
|
|
375
|
+
} finally {
|
|
376
|
+
if (editorEpoch.current === epoch) {
|
|
377
|
+
pendingSave.current = false;
|
|
378
|
+
setSaving(false);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
343
381
|
}
|
|
344
382
|
if (locked && onNewChat) return /* @__PURE__ */ jsxs(InformativeLock, {
|
|
345
383
|
ariaLabel: "Agent profile (locked)",
|
|
@@ -361,9 +399,13 @@ function AgentProfilePicker({ value, onChange, profiles, capabilities, onCreate,
|
|
|
361
399
|
className: cn$1("relative inline-flex", className),
|
|
362
400
|
children: [/* @__PURE__ */ jsxs("button", {
|
|
363
401
|
type: "button",
|
|
364
|
-
disabled: disabled || locked,
|
|
402
|
+
disabled: disabled || locked || saving,
|
|
365
403
|
title: locked ? lockReason : void 0,
|
|
366
|
-
onClick: () =>
|
|
404
|
+
onClick: () => {
|
|
405
|
+
if (pendingSave.current) return;
|
|
406
|
+
if (open) setComposing(null);
|
|
407
|
+
setOpen((v) => !v);
|
|
408
|
+
},
|
|
367
409
|
className: cn$1("inline-flex h-8 items-center gap-1.5 rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container px-2.5", "text-xs font-medium text-foreground shadow-sm transition-colors", "hover:border-[var(--md3-outline-variant)] hover:bg-surface-container-high", focusRing, "data-[state=open]:border-[var(--md3-outline-variant)] data-[state=open]:bg-surface-container-high", "disabled:cursor-not-allowed disabled:opacity-60", triggerClassName),
|
|
368
410
|
"data-state": open ? "open" : "closed",
|
|
369
411
|
"aria-label": "Agent profile",
|
|
@@ -375,7 +417,7 @@ function AgentProfilePicker({ value, onChange, profiles, capabilities, onCreate,
|
|
|
375
417
|
}),
|
|
376
418
|
!locked && /* @__PURE__ */ jsx(ChevronDown, { className: "ml-auto h-3.5 w-3.5 shrink-0 text-muted-foreground" })
|
|
377
419
|
]
|
|
378
|
-
}), open && !locked && /* @__PURE__ */ jsx(AnchoredPopover, {
|
|
420
|
+
}), open && !locked && !disabled && /* @__PURE__ */ jsx(AnchoredPopover, {
|
|
379
421
|
ref: popoverRef,
|
|
380
422
|
anchorRef: ref,
|
|
381
423
|
side,
|
|
@@ -384,7 +426,11 @@ function AgentProfilePicker({ value, onChange, profiles, capabilities, onCreate,
|
|
|
384
426
|
children: composing ? /* @__PURE__ */ jsx(ProfileForm, {
|
|
385
427
|
capabilities: capabilities ?? [],
|
|
386
428
|
initial: composing === "new" ? void 0 : composing,
|
|
387
|
-
|
|
429
|
+
saving,
|
|
430
|
+
error: saveError,
|
|
431
|
+
onCancel: () => {
|
|
432
|
+
if (!pendingSave.current) setComposing(null);
|
|
433
|
+
},
|
|
388
434
|
onSave: save
|
|
389
435
|
}) : /* @__PURE__ */ jsxs("div", {
|
|
390
436
|
className: "max-h-[min(60vh,420px)] overflow-y-auto",
|
|
@@ -460,16 +506,18 @@ function ProfileRow({ active, title, subtitle, onSelect, onEdit, onDelete }) {
|
|
|
460
506
|
})]
|
|
461
507
|
});
|
|
462
508
|
}
|
|
463
|
-
function ProfileForm({ capabilities, initial, onCancel, onSave }) {
|
|
509
|
+
function ProfileForm({ capabilities, initial, saving, error, onCancel, onSave }) {
|
|
464
510
|
const [name, setName] = React$1.useState(initial?.name ?? "");
|
|
465
511
|
const [caps, setCaps] = React$1.useState(initial?.capabilities ? [...initial.capabilities] : capabilities.map((c) => c.id));
|
|
466
512
|
const [instructions, setInstructions] = React$1.useState(initial?.instructions ?? "");
|
|
467
513
|
const toggle = (id) => setCaps((prev) => prev.includes(id) ? prev.filter((c) => c !== id) : [...prev, id]);
|
|
468
514
|
return /* @__PURE__ */ jsxs("div", {
|
|
469
515
|
className: "space-y-3 p-2.5",
|
|
516
|
+
"aria-busy": saving,
|
|
470
517
|
children: [
|
|
471
518
|
/* @__PURE__ */ jsx("input", {
|
|
472
519
|
autoFocus: true,
|
|
520
|
+
disabled: saving,
|
|
473
521
|
value: name,
|
|
474
522
|
onChange: (event) => setName(event.target.value),
|
|
475
523
|
placeholder: "Agent name (e.g. Tax Reviewer)",
|
|
@@ -484,6 +532,7 @@ function ProfileForm({ capabilities, initial, onCancel, onSave }) {
|
|
|
484
532
|
className: "flex cursor-pointer items-start gap-2 rounded-md px-2 py-1.5 hover:bg-accent/40",
|
|
485
533
|
children: [/* @__PURE__ */ jsx("input", {
|
|
486
534
|
type: "checkbox",
|
|
535
|
+
disabled: saving,
|
|
487
536
|
checked: caps.includes(cap.id),
|
|
488
537
|
onChange: () => toggle(cap.id),
|
|
489
538
|
className: "mt-0.5"
|
|
@@ -500,30 +549,37 @@ function ProfileForm({ capabilities, initial, onCancel, onSave }) {
|
|
|
500
549
|
}, cap.id))
|
|
501
550
|
})] }),
|
|
502
551
|
/* @__PURE__ */ jsx("textarea", {
|
|
552
|
+
disabled: saving,
|
|
503
553
|
value: instructions,
|
|
504
554
|
onChange: (event) => setInstructions(event.target.value),
|
|
505
555
|
rows: 2,
|
|
506
556
|
placeholder: "Instructions (optional) — how this agent should behave",
|
|
507
557
|
className: `w-full resize-none rounded-lg border bg-surface-container px-3 py-2 text-sm ${focusField}`
|
|
508
558
|
}),
|
|
559
|
+
error && /* @__PURE__ */ jsx("p", {
|
|
560
|
+
role: "alert",
|
|
561
|
+
className: "text-sm text-destructive",
|
|
562
|
+
children: error
|
|
563
|
+
}),
|
|
509
564
|
/* @__PURE__ */ jsxs("div", {
|
|
510
565
|
className: "flex justify-end gap-2",
|
|
511
566
|
children: [/* @__PURE__ */ jsx("button", {
|
|
512
567
|
type: "button",
|
|
568
|
+
disabled: saving,
|
|
513
569
|
onClick: onCancel,
|
|
514
570
|
className: "rounded-lg px-3 py-1.5 text-sm text-muted-foreground hover:bg-accent/40",
|
|
515
571
|
children: "Cancel"
|
|
516
572
|
}), /* @__PURE__ */ jsx("button", {
|
|
517
573
|
type: "button",
|
|
518
|
-
disabled: !name.trim(),
|
|
519
|
-
onClick: () => onSave({
|
|
574
|
+
disabled: saving || !name.trim(),
|
|
575
|
+
onClick: () => void onSave({
|
|
520
576
|
id: initial?.id,
|
|
521
577
|
name: name.trim(),
|
|
522
578
|
capabilities: caps,
|
|
523
579
|
instructions: instructions.trim()
|
|
524
580
|
}),
|
|
525
581
|
className: "rounded-lg bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground transition-opacity hover:opacity-90 disabled:opacity-40",
|
|
526
|
-
children: "Save agent"
|
|
582
|
+
children: saving ? "Saving agent…" : "Save agent"
|
|
527
583
|
})]
|
|
528
584
|
})
|
|
529
585
|
]
|
package/dist/chat.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as ArtifactDockMessage, B as AgentProfilePickerProps, C as ThinkingIndicatorProps, D as ArtifactAgentDock, E as isViewerMessage, F as snapHarnessToModel, G as ReasoningLevelPicker, H as HARNESS_REASONING_OPTIONS, I as AgentProfileCapability, K as ReasoningLevelPickerProps, L as AgentProfileDraft, M as ArtifactKind, N as ArtifactScope, O as ArtifactAgentDockProps, P as modelProvider, R as AgentProfileOption, S as ThinkingIndicator, T as UserMessageProps, U as ReasoningLevel, V as DEFAULT_REASONING_LEVEL_OPTIONS, W as ReasoningLevelOption, _ as MessageAuthorProps, a as AgentTimelineMessageItem, b as MessageRole, c as AgentTimelineTone, d as ChatAuthor, f as ChatContainer, g as MessageAuthor, h as ChatMessageProps, i as AgentTimelineItem, j as ArtifactDockStreamEvent, k as ArtifactAgentDockTransport, l as AgentTimelineToolGroupItem, m as ChatMessage, n as AgentTimelineArtifactItem, o as AgentTimelineProps, p as ChatContainerProps, r as AgentTimelineCustomItem, s as AgentTimelineStatusItem, t as AgentTimeline, u as AgentTimelineToolItem, v as MessageList, w as UserMessage, x as TRANSCRIPT_TEXT, y as MessageListProps, z as AgentProfilePicker } from "./index-
|
|
1
|
+
import { A as ArtifactDockMessage, B as AgentProfilePickerProps, C as ThinkingIndicatorProps, D as ArtifactAgentDock, E as isViewerMessage, F as snapHarnessToModel, G as ReasoningLevelPicker, H as HARNESS_REASONING_OPTIONS, I as AgentProfileCapability, K as ReasoningLevelPickerProps, L as AgentProfileDraft, M as ArtifactKind, N as ArtifactScope, O as ArtifactAgentDockProps, P as modelProvider, R as AgentProfileOption, S as ThinkingIndicator, T as UserMessageProps, U as ReasoningLevel, V as DEFAULT_REASONING_LEVEL_OPTIONS, W as ReasoningLevelOption, _ as MessageAuthorProps, a as AgentTimelineMessageItem, b as MessageRole, c as AgentTimelineTone, d as ChatAuthor, f as ChatContainer, g as MessageAuthor, h as ChatMessageProps, i as AgentTimelineItem, j as ArtifactDockStreamEvent, k as ArtifactAgentDockTransport, l as AgentTimelineToolGroupItem, m as ChatMessage, n as AgentTimelineArtifactItem, o as AgentTimelineProps, p as ChatContainerProps, r as AgentTimelineCustomItem, s as AgentTimelineStatusItem, t as AgentTimeline, u as AgentTimelineToolItem, v as MessageList, w as UserMessage, x as TRANSCRIPT_TEXT, y as MessageListProps, z as AgentProfilePicker } from "./index-D-U-1U0i.js";
|
|
2
2
|
export { type AgentProfileCapability, type AgentProfileDraft, type AgentProfileOption, AgentProfilePicker, type AgentProfilePickerProps, AgentTimeline, type AgentTimelineArtifactItem, type AgentTimelineCustomItem, type AgentTimelineItem, type AgentTimelineMessageItem, type AgentTimelineProps, type AgentTimelineStatusItem, type AgentTimelineTone, type AgentTimelineToolGroupItem, type AgentTimelineToolItem, ArtifactAgentDock, type ArtifactAgentDockProps, type ArtifactAgentDockTransport, type ArtifactDockMessage, type ArtifactDockStreamEvent, type ArtifactKind, type ArtifactScope, type ChatAuthor, ChatContainer, type ChatContainerProps, ChatMessage, type ChatMessageProps, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MessageAuthor, type MessageAuthorProps, MessageList, type MessageListProps, type MessageRole, type ReasoningLevel, type ReasoningLevelOption, ReasoningLevelPicker, type ReasoningLevelPickerProps, TRANSCRIPT_TEXT, ThinkingIndicator, type ThinkingIndicatorProps, UserMessage, type UserMessageProps, isViewerMessage, modelProvider, snapHarnessToModel };
|
package/dist/chat.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as MessageList, c as UserMessage, d as modelProvider, f as snapHarnessToModel, g as ReasoningLevelPicker, h as HARNESS_REASONING_OPTIONS, i as MessageAuthor, l as isViewerMessage, m as DEFAULT_REASONING_LEVEL_OPTIONS, n as ChatContainer, o as TRANSCRIPT_TEXT, p as AgentProfilePicker, r as ChatMessage, s as ThinkingIndicator, t as AgentTimeline, u as ArtifactAgentDock } from "./chat-
|
|
1
|
+
import { a as MessageList, c as UserMessage, d as modelProvider, f as snapHarnessToModel, g as ReasoningLevelPicker, h as HARNESS_REASONING_OPTIONS, i as MessageAuthor, l as isViewerMessage, m as DEFAULT_REASONING_LEVEL_OPTIONS, n as ChatContainer, o as TRANSCRIPT_TEXT, p as AgentProfilePicker, r as ChatMessage, s as ThinkingIndicator, t as AgentTimeline, u as ArtifactAgentDock } from "./chat-przZ1xCc.js";
|
|
2
2
|
export { AgentProfilePicker, AgentTimeline, ArtifactAgentDock, ChatContainer, ChatMessage, DEFAULT_REASONING_LEVEL_OPTIONS, HARNESS_REASONING_OPTIONS, MessageAuthor, MessageList, ReasoningLevelPicker, TRANSCRIPT_TEXT, ThinkingIndicator, UserMessage, isViewerMessage, modelProvider, snapHarnessToModel };
|
|
@@ -100,7 +100,9 @@ interface AgentProfilePickerProps {
|
|
|
100
100
|
* selection-only picker (the New / edit / delete affordances stay hidden).
|
|
101
101
|
*/
|
|
102
102
|
capabilities?: ReadonlyArray<AgentProfileCapability>;
|
|
103
|
+
/** Resolve after commit; reject write failures to retain the draft and show its error. Do not reject a post-commit refresh failure. */
|
|
103
104
|
onCreate?: (draft: AgentProfileDraft) => void | Promise<void>;
|
|
105
|
+
/** Same commit/rejection contract as onCreate. */
|
|
104
106
|
onUpdate?: (id: string, draft: AgentProfileDraft) => void | Promise<void>;
|
|
105
107
|
onDelete?: (id: string) => void | Promise<void>;
|
|
106
108
|
disabled?: boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as LoginLayout, c as UserMenu, d as TangleLoginButtonProps, i as GitHubLoginButtonProps, l as UserMenuProps, n as AuthHeaderProps, o as LoginLayoutProps, r as GitHubLoginButton, s as SessionUser, t as AuthHeader, u as TangleLoginButton } from "./index-DvmZLMT1.js";
|
|
2
|
-
import { A as ArtifactDockMessage, B as AgentProfilePickerProps, C as ThinkingIndicatorProps, D as ArtifactAgentDock, E as isViewerMessage, F as snapHarnessToModel, G as ReasoningLevelPicker, H as HARNESS_REASONING_OPTIONS, I as AgentProfileCapability, K as ReasoningLevelPickerProps, L as AgentProfileDraft, M as ArtifactKind, N as ArtifactScope, O as ArtifactAgentDockProps, P as modelProvider, R as AgentProfileOption, S as ThinkingIndicator, T as UserMessageProps, U as ReasoningLevel, V as DEFAULT_REASONING_LEVEL_OPTIONS, W as ReasoningLevelOption, _ as MessageAuthorProps, a as AgentTimelineMessageItem, b as MessageRole, c as AgentTimelineTone, d as ChatAuthor, f as ChatContainer, g as MessageAuthor, h as ChatMessageProps, i as AgentTimelineItem, j as ArtifactDockStreamEvent, k as ArtifactAgentDockTransport, l as AgentTimelineToolGroupItem, m as ChatMessage, n as AgentTimelineArtifactItem, o as AgentTimelineProps, p as ChatContainerProps, r as AgentTimelineCustomItem, s as AgentTimelineStatusItem, t as AgentTimeline, u as AgentTimelineToolItem, v as MessageList, w as UserMessage, x as TRANSCRIPT_TEXT, y as MessageListProps, z as AgentProfilePicker } from "./index-
|
|
2
|
+
import { A as ArtifactDockMessage, B as AgentProfilePickerProps, C as ThinkingIndicatorProps, D as ArtifactAgentDock, E as isViewerMessage, F as snapHarnessToModel, G as ReasoningLevelPicker, H as HARNESS_REASONING_OPTIONS, I as AgentProfileCapability, K as ReasoningLevelPickerProps, L as AgentProfileDraft, M as ArtifactKind, N as ArtifactScope, O as ArtifactAgentDockProps, P as modelProvider, R as AgentProfileOption, S as ThinkingIndicator, T as UserMessageProps, U as ReasoningLevel, V as DEFAULT_REASONING_LEVEL_OPTIONS, W as ReasoningLevelOption, _ as MessageAuthorProps, a as AgentTimelineMessageItem, b as MessageRole, c as AgentTimelineTone, d as ChatAuthor, f as ChatContainer, g as MessageAuthor, h as ChatMessageProps, i as AgentTimelineItem, j as ArtifactDockStreamEvent, k as ArtifactAgentDockTransport, l as AgentTimelineToolGroupItem, m as ChatMessage, n as AgentTimelineArtifactItem, o as AgentTimelineProps, p as ChatContainerProps, r as AgentTimelineCustomItem, s as AgentTimelineStatusItem, t as AgentTimeline, u as AgentTimelineToolItem, v as MessageList, w as UserMessage, x as TRANSCRIPT_TEXT, y as MessageListProps, z as AgentProfilePicker } from "./index-D-U-1U0i.js";
|
|
3
3
|
import { a as SharedMessagingRouteViewState, i as AgentTargetSummary, n as AgentMessagingConnection, r as AgentMessagingConnectionProps, t as AgentEnrollmentViewState } from "./index-ClRHbsoX.js";
|
|
4
4
|
import { $ as SandboxTable, $t as Sidebar, A as MetricChartPoint, At as SIDEBAR_TOTAL_WIDTH, B as ProductVariant, Bt as RailButton, C as UsageSummary, Ct as OutOfCreditsModal, D as SystemLogsViewerProps, Dt as SIDEBAR_PANEL_WIDTH, E as SystemLogsViewer, Et as SIDEBAR_MOBILE_WIDTH, F as SidebarLayoutProps, Ft as RailTooltipProps, G as HARNESS_OPTIONS, Gt as RailFlyout, H as HarnessBrand, Ht as RailExpandable, I as DashboardLayout, It as McpServer, J as HarnessType, Jt as RailHeaderProps, K as HarnessPicker, Kt as RailFlyoutProps, L as DashboardLayoutProps, Lt as AppearanceController, M as SidebarLayout, Mt as SidebarProviderProps, N as SidebarLayoutFlyoutItem, Nt as useSidebar, O as MetricAreaChart, Ot as SIDEBAR_RAIL_LABELED_WIDTH, P as SidebarLayoutNavItem, Pt as RailTooltip, Q as BackendSelectorProps, Qt as RailSeparatorProps, R as DashboardUser, Rt as ProfileAvatar, S as GitStatusData, St as InsufficientBalance, T as UsageSummaryProps, Tt as parseInsufficientBalance, U as HarnessLogo, Ut as RailExpandableProps, V as HARNESS_BRAND, Vt as RailButtonProps, W as HarnessLogoProps, Wt as RailExpandableSubItem, X as Backend, Xt as RailModeButtonProps, Y as chatCapableHarnesses, Yt as RailModeButton, Z as BackendSelector, Zt as RailSeparator, _ as PortsList, _t as ResourceSnapshotItem, a as PromoBanner, an as SidebarPanelHeader, at as NewSandboxCard, b as GitPanel, bt as ResourceMeterProps, c as SnapshotList, cn as SidebarProps, ct as SandboxCardData, d as ProcessList, dn as SidebarRailFooterProps, dt as TeamRole, en as SidebarContent, et as SandboxTableProps, f as ProcessListProps, fn as SidebarRailNav, ft as canAdminSandbox, g as ExposedPort, gn as ThemeMode, gt as ResourceSnapshot, h as TemplateCardProps, hn as SidebarUser, ht as ActivityItem, i as SandboxPageShellProps, in as SidebarPanelContentProps, it as sandboxStatus, j as MetricChartTone, jt as SidebarProvider, k as MetricAreaChartProps, kt as SIDEBAR_RAIL_WIDTH, l as SnapshotListProps, ln as SidebarRail, lt as SandboxCardProps, m as TemplateCardData, mn as SidebarRailProps, mt as ActivityFeedProps, n as DashboardPageHeaderProps, nn as SidebarPanel, nt as SandboxStatusPill, o as PromoBannerProps, on as SidebarPanelHeaderProps, ot as NewSandboxCardProps, p as TemplateCard, pn as SidebarRailNavProps, pt as ActivityFeed, q as HarnessPickerProps, qt as RailHeader, r as SandboxPageShell, rn as SidebarPanelContent, rt as SandboxStatusPillProps, s as SnapshotInfo, sn as SidebarPanelProps, st as SandboxCard, t as DashboardPageHeader, tn as SidebarContentProps, tt as SANDBOX_STATUS, u as ProcessInfo, un as SidebarRailFooter, ut as SandboxStatus, v as PortsListProps, vt as ResourceSnapshotProps, w as UsageSummaryData, wt as OutOfCreditsModalProps, x as GitPanelProps, xt as INSUFFICIENT_BALANCE_CODE, y as GitCommitData, yt as ResourceMeter, z as NavItem, zt as ProfileAvatarProps } from "./index-DQzli0pf.js";
|
|
5
5
|
import { a as canonicalModelId, i as ProviderMark, n as ModelBrandStack, o as modelBrandFor, r as ModelInfo, t as ModelBrandIdentity } from "./model-brand-B57CV8Lg.js";
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { t as usePtySession } from "./use-pty-session-Bf4hBLXJ.js";
|
|
|
10
10
|
import { CSV_PREVIEW_ROW_LIMIT, FileArtifactPane, FileCard, FileList, FilePreview, FileTabs, FileTree, PdfViewer, RichFileTree, configurePdfViewer, detectFileFormat, fileExtension, filterFileTree, getCodeLanguage, getFormatLabel, getSyntaxLanguage, parseCsv, resolveFilePreviewKind } from "./files.js";
|
|
11
11
|
import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-CYb9hevq.js";
|
|
12
12
|
import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
|
|
13
|
-
import { a as MessageList, c as UserMessage, d as modelProvider, f as snapHarnessToModel, g as ReasoningLevelPicker, h as HARNESS_REASONING_OPTIONS, i as MessageAuthor, l as isViewerMessage, m as DEFAULT_REASONING_LEVEL_OPTIONS, n as ChatContainer, o as TRANSCRIPT_TEXT, p as AgentProfilePicker, r as ChatMessage, s as ThinkingIndicator, t as AgentTimeline, u as ArtifactAgentDock } from "./chat-
|
|
13
|
+
import { a as MessageList, c as UserMessage, d as modelProvider, f as snapHarnessToModel, g as ReasoningLevelPicker, h as HARNESS_REASONING_OPTIONS, i as MessageAuthor, l as isViewerMessage, m as DEFAULT_REASONING_LEVEL_OPTIONS, n as ChatContainer, o as TRANSCRIPT_TEXT, p as AgentProfilePicker, r as ChatMessage, s as ThinkingIndicator, t as AgentTimeline, u as ArtifactAgentDock } from "./chat-przZ1xCc.js";
|
|
14
14
|
import { ApprovalCard, ApprovalDiffSummary, ExpandedToolDetail, InlineThinkingItem, InlineToolItem, LiveDuration, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, TaskList, ToolCallFeed, parseToolEvent, showsTaskPriority, taskProgress, taskStatus } from "./run.js";
|
|
15
15
|
import "./vault-tree.js";
|
|
16
16
|
import { a as TangleLoginButton, i as UserMenu, n as GitHubLoginButton, r as LoginLayout, t as AuthHeader } from "./auth-CWe17Hly.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "0.134.
|
|
3
|
+
"version": "0.134.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
|
|
6
6
|
"repository": {
|