@tangle-network/sandbox-ui 0.33.0 → 0.34.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/chat.d.ts CHANGED
@@ -3,7 +3,7 @@ export { AgentTimeline, AgentTimelineArtifactItem, AgentTimelineCustomItem, Agen
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { ReasoningEffort, HarnessType } from '@tangle-network/agent-interface';
5
5
  import * as React from 'react';
6
- import { M as ModelInfo } from './model-picker-Cmisf9Y8.js';
6
+ import { M as ModelInfo } from './model-picker-NOWFpRY4.js';
7
7
 
8
8
  /**
9
9
  * A reasoning selection: `auto` is a UI-only sentinel ("let the harness/model default decide",
package/dist/chat.js CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  modelProvider,
17
17
  snapHarnessToModel,
18
18
  snapModelToHarness
19
- } from "./chunk-AWYBQTP6.js";
19
+ } from "./chunk-DVEIMFMF.js";
20
20
  import "./chunk-I64YISXS.js";
21
21
  import "./chunk-NMR2CTGP.js";
22
22
  import "./chunk-EI44GEQ5.js";
@@ -2610,10 +2610,27 @@ import { GitBranch, GitCommit, FileEdit, FilePlus, File } from "lucide-react";
2610
2610
  import { jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
2611
2611
  function GitPanel({ status, log, loading = false, onRefresh, className }) {
2612
2612
  if (loading) {
2613
- return /* @__PURE__ */ jsx21("div", { className: cn("rounded-lg border border-border bg-card p-5", className), children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
2614
- /* @__PURE__ */ jsx21("div", { className: "h-4 w-4 animate-spin rounded-full border-2 border-primary border-t-transparent" }),
2615
- "Loading git info..."
2616
- ] }) });
2613
+ return /* @__PURE__ */ jsxs20(
2614
+ "div",
2615
+ {
2616
+ className: cn("rounded-lg border border-border bg-card overflow-hidden", className),
2617
+ "aria-busy": "true",
2618
+ children: [
2619
+ /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Loading git info\u2026" }),
2620
+ /* @__PURE__ */ jsx21("div", { className: "flex items-center justify-between border-b border-border bg-muted/30 px-4 py-3", children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2", children: [
2621
+ /* @__PURE__ */ jsx21(GitBranch, { className: "h-4 w-4 text-muted-foreground" }),
2622
+ /* @__PURE__ */ jsx21("div", { className: "h-3.5 w-24 animate-pulse rounded bg-muted" })
2623
+ ] }) }),
2624
+ /* @__PURE__ */ jsxs20("div", { className: "px-4 py-3", children: [
2625
+ /* @__PURE__ */ jsx21("div", { className: "mb-2 h-2.5 w-20 animate-pulse rounded bg-muted" }),
2626
+ /* @__PURE__ */ jsx21("div", { className: "space-y-2.5", children: [0, 1, 2].map((row) => /* @__PURE__ */ jsxs20("div", { className: "flex items-start gap-2", children: [
2627
+ /* @__PURE__ */ jsx21(GitCommit, { className: "mt-0.5 h-3 w-3 shrink-0 text-muted-foreground" }),
2628
+ /* @__PURE__ */ jsx21("div", { className: "h-3 w-3/4 animate-pulse rounded bg-muted" })
2629
+ ] }, row)) })
2630
+ ] })
2631
+ ]
2632
+ }
2633
+ );
2617
2634
  }
2618
2635
  if (!status) {
2619
2636
  return /* @__PURE__ */ jsx21("div", { className: cn("rounded-lg border border-border bg-card p-5", className), children: /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
@@ -347,6 +347,13 @@ function AgentSessionControls({
347
347
  disabled: model.disabled || (visibleModels ?? []).length === 0
348
348
  }
349
349
  );
350
+ const selectedModel = model?.models.find(
351
+ (entry) => canonicalModelId(entry) === model.value
352
+ );
353
+ const modelReasoning = selectedModel ? {
354
+ supportsReasoning: selectedModel.supportsReasoning,
355
+ maxEffort: selectedModel.maxReasoningEffort
356
+ } : null;
350
357
  const reasoningNode = reasoning && /* @__PURE__ */ jsx2(
351
358
  ReasoningLevelPicker,
352
359
  {
@@ -354,7 +361,7 @@ function AgentSessionControls({
354
361
  onChange: reasoning.onChange,
355
362
  options: reasoning.options,
356
363
  disabled: reasoning.disabled,
357
- available: harness ? reasoningEffortsFor(harness.value) : reasoning.available
364
+ available: harness ? reasoningEffortsFor(harness.value, modelReasoning) : reasoning.available
358
365
  }
359
366
  );
360
367
  if (layout === "gear") {
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { ReactNode } from 'react';
4
4
  import { HarnessType } from '@tangle-network/agent-interface';
5
5
  export { HarnessType } from '@tangle-network/agent-interface';
6
- 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-Cmisf9Y8.js';
6
+ 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';
7
7
  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';
8
8
 
9
9
  interface Backend {
package/dist/dashboard.js CHANGED
@@ -52,7 +52,7 @@ import {
52
52
  canAdminSandbox,
53
53
  parseInsufficientBalance,
54
54
  useSidebar
55
- } from "./chunk-CI6RWXWY.js";
55
+ } from "./chunk-75Z5H43I.js";
56
56
  import {
57
57
  BillingDashboard,
58
58
  InfoPanel,
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export { ExpandedToolDetail, ExpandedToolDetailProps, InlineThinkingItem, Inline
9
9
  export { CommandPreview, DiffPreview, GlobResultsPreview, GrepResultsPreview, QuestionPreview, WebSearchPreview, WriteFilePreview } from '@tangle-network/ui/tool-previews';
10
10
  export { FileArtifactPane, FileArtifactPaneProps, FileNode, FilePreview, FilePreviewProps, FileTabData, FileTabs, FileTabsProps, FileTree, FileTreeProps, FileTreeVisibilityOptions, RichFileTree, RichFileTreeGitEntry, RichFileTreeGitStatus, RichFileTreeProps, RichFileTreeThemeVars, filterFileTree } from '@tangle-network/ui/files';
11
11
  export { ActivityFeed, ActivityFeedProps, ActivityItem, Backend, BackendConfig, BackendConfigProps, BackendSelector, BackendSelectorProps, BackendStatusData, ClusterStatusBar, ClusterStatusBarProps, ClusterStatusItem, CreditBalance, CreditBalanceProps, DashboardLayout, DashboardLayoutProps, DashboardProfile, DashboardSnapshotInfo, DashboardUser, ExposedPort, 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, PortsList, PortsListProps, 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
- 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-Cmisf9Y8.js';
12
+ 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
13
  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';
14
14
  export { AuthHeader, AuthHeaderProps, GitHubLoginButton, GitHubLoginButtonProps, LoginLayout, LoginLayoutProps, SessionUser, UserMenu, UserMenuProps } from '@tangle-network/ui/auth';
15
15
  export { TangleLoginButton, TangleLoginButtonProps } from './auth.js';
package/dist/index.js CHANGED
@@ -104,7 +104,7 @@ import {
104
104
  modelProvider,
105
105
  snapHarnessToModel,
106
106
  snapModelToHarness
107
- } from "./chunk-AWYBQTP6.js";
107
+ } from "./chunk-DVEIMFMF.js";
108
108
  import {
109
109
  ExpandedToolDetail,
110
110
  InlineThinkingItem,
@@ -199,7 +199,7 @@ import {
199
199
  canAdminSandbox,
200
200
  parseInsufficientBalance,
201
201
  useSidebar
202
- } from "./chunk-CI6RWXWY.js";
202
+ } from "./chunk-75Z5H43I.js";
203
203
  import {
204
204
  BillingDashboard,
205
205
  InfoPanel,
@@ -1,4 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReasoningEffort } from '@tangle-network/agent-interface';
2
3
 
3
4
  /**
4
5
  * Wire-format model entry as returned by `/v1/models` on the Tangle Router
@@ -47,6 +48,14 @@ interface ModelInfo {
47
48
  * (matched by dedup key) so the section is never empty for a router catalog.
48
49
  */
49
50
  featured?: boolean;
51
+ /**
52
+ * Per-model reasoning capability, fed to the reasoning-effort picker's capability filter. Source it
53
+ * from your model catalog (e.g. the router's `supported_parameters` containing `reasoning`). When
54
+ * `false`, only `none` is offered for this model regardless of harness.
55
+ */
56
+ supportsReasoning?: boolean;
57
+ /** The model's own reasoning ceiling, if narrower than its harness's (e.g. a model capped at `high`). */
58
+ maxReasoningEffort?: ReasoningEffort;
50
59
  }
51
60
  type ModelBrandKey = "ai21" | "alibaba" | "anthropic" | "azure" | "bedrock" | "cartesia" | "cerebras" | "cohere" | "deepseek" | "elevenlabs" | "fal" | "fireworks" | "google" | "groq" | "kuaishou" | "luma" | "meta" | "mistral" | "moonshot" | "openai" | "openrouter" | "perplexity" | "pika" | "replicate" | "runway" | "stability" | "tangle" | "tcloud" | "together" | "vertex" | "xai" | "zai" | "unknown";
52
61
  type ModelPickerVariant = "field" | "pill";
package/dist/pages.d.ts CHANGED
@@ -2,7 +2,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { CSSProperties, ReactNode } from 'react';
4
4
  import { c as BillingSubscription, B as BillingBalance, d as BillingUsage, j as UsageDataPoint, f as PricingTier, g as TemplateCardData } from './template-card-UhV3pmRC.js';
5
- export { M as ModelInfo } from './model-picker-Cmisf9Y8.js';
5
+ export { M as ModelInfo } from './model-picker-NOWFpRY4.js';
6
+ import '@tangle-network/agent-interface';
6
7
 
7
8
  /**
8
9
  * Shared, self-contained sign-in / sign-up page for every Tangle vertical app.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/sandbox-ui",
3
- "version": "0.33.0",
3
+ "version": "0.34.0",
4
4
  "description": "Unified UI component library for Tangle Sandbox — primitives, chat, dashboard, terminal, editor, and workspace components",
5
5
  "repository": {
6
6
  "type": "git",