@tangle-network/sandbox-ui 5.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/globals.css CHANGED
@@ -1472,6 +1472,9 @@
1472
1472
  .w-\[calc\(100vw-32px\)\] {
1473
1473
  width: calc(100vw - 32px);
1474
1474
  }
1475
+ .w-\[clamp\(320px\,32vw\,560px\)\] {
1476
+ width: clamp(320px, 32vw, 560px);
1477
+ }
1475
1478
  .w-\[min\(88vw\,24rem\)\] {
1476
1479
  width: min(88vw, 24rem);
1477
1480
  }
@@ -1916,6 +1919,9 @@
1916
1919
  .resize-none {
1917
1920
  resize: none;
1918
1921
  }
1922
+ .resize-x {
1923
+ resize: horizontal;
1924
+ }
1919
1925
  .resize-y {
1920
1926
  resize: vertical;
1921
1927
  }
@@ -36,6 +36,13 @@ interface TraceWorkspaceProps extends Omit<TraceWaterfallProps, "trace" | "marke
36
36
  conversationOpen?: boolean;
37
37
  /** Called with the agent the reader selected, or undefined when they close its drawer or press Escape. */
38
38
  onSelectAgent?: (agentId: string | undefined) => void;
39
+ /** Dock the conversation as a resizable pane in the layout instead of a fixed overlay over the right edge. */
40
+ docked?: boolean;
41
+ /** The words that created the selected agent — its parent's commission — pinned above its conversation. */
42
+ commission?: {
43
+ by?: string;
44
+ text?: string;
45
+ };
39
46
  /** The host's own account of the selected agent beyond its trace facts, such as its profile: its drawer shows it under them. */
40
47
  renderAgentDrawer?: (agentId: string) => ReactNode;
41
48
  /**
@@ -54,5 +61,5 @@ interface TraceWorkspaceProps extends Omit<TraceWaterfallProps, "trace" | "marke
54
61
  * streaming in a right-hand drawer, and the page's code workspace and scoreboard following the time cursor. Scrubbing is time travel:
55
62
  * every panel shows what was true at the cursor, and the conversation shows what had been said by then.
56
63
  */
57
- declare function TraceWorkspace({ trace, streamUrl, openEventSource, events, onTimeChange, files, scoreboard, selectedAgentId, conversationOpen, onSelectAgent, renderAgentDrawer, agentCards, agentGraph, className, ...waterfall }: TraceWorkspaceProps): import("react").JSX.Element;
64
+ declare function TraceWorkspace({ trace, streamUrl, openEventSource, events, onTimeChange, files, scoreboard, selectedAgentId, conversationOpen, onSelectAgent, renderAgentDrawer, docked, commission, agentCards, agentGraph, className, ...waterfall }: TraceWorkspaceProps): import("react").JSX.Element;
58
65
  export { ToolCallData$1 as A, taskProgress as B, RunStatusIcon$1 as C, TaskListItem as D, TaskList as E, isOpen as F, TraceWorkspace as G, LatestEvents as H, parseToolEvent as I, TraceWaterfallProps as J, TraceWorkspaceProps as K, runStatus$1 as L, ToolCallFeedProps as M, ToolCallStatus as N, TaskListProps as O, ToolCallType as P, showsTaskPriority as R, RunStatus as S, StatusMeta as T, LatestEventsProps as U, taskStatus as V, TraceEvent as W, traceSpanMark as Y, RunPhaseList as _, ApprovalPlanStep as a, RunRowStatus as b, FeedSegment as c, InlineToolItem as d, InlineToolItemProps as f, RunPhase as g, RunGroupProps as h, ApprovalDiffSummary as i, ToolCallFeed as j, TaskStatus as k, InlineThinkingItem as l, RunGroup as m, ApprovalCardProps as n, ExpandedToolDetail as o, LiveDuration as p, TraceWaterfall as q, ApprovalDiffFile as r, ExpandedToolDetailProps as s, ApprovalCard as t, InlineThinkingItemProps as u, RunRowShell as v, RunStatusIconProps as w, RunRowStatusDot as x, RunRowShellProps as y, statusMeta$1 as z };
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ import { C as SandboxArtifactPane, D as SandboxArtifact, E as ChangesPaneProps,
15
15
  import { n as DiffViewProps, t as DiffView } from "./diff-view-DDHWtR6X.js";
16
16
  import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-Ta5GI4hx.js";
17
17
  import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIAction, OpenUIActionsNode, OpenUIArtifactRenderer, OpenUIArtifactRendererProps, OpenUIBadgeNode, OpenUICardNode, OpenUICodeNode, OpenUIComponentNode, OpenUIGridNode, OpenUIHeadingNode, OpenUIKeyValueNode, OpenUIMarkdownNode, OpenUIPrimitive, OpenUISchemaIssue, OpenUISchemaValidation, OpenUISeparatorNode, OpenUIStackNode, OpenUIStatNode, OpenUITableNode, OpenUITextNode, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
18
- import { A as ToolCallData, B as taskProgress, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as isOpen, G as TraceWorkspace, H as LatestEvents, I as parseToolEvent, J as TraceWaterfallProps, K as TraceWorkspaceProps, L as runStatus, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, R as showsTaskPriority, S as RunStatus, T as StatusMeta, U as LatestEventsProps, V as taskStatus, W as TraceEvent, Y as traceSpanMark, _ as RunPhaseList, a as ApprovalPlanStep, b as RunRowStatus, c as FeedSegment, d as InlineToolItem, f as InlineToolItemProps, g as RunPhase, h as RunGroupProps, i as ApprovalDiffSummary, j as ToolCallFeed, k as TaskStatus, l as InlineThinkingItem, m as RunGroup, n as ApprovalCardProps, o as ExpandedToolDetail, p as LiveDuration, q as TraceWaterfall, r as ApprovalDiffFile, s as ExpandedToolDetailProps, t as ApprovalCard, u as InlineThinkingItemProps, v as RunRowShell, w as RunStatusIconProps, x as RunRowStatusDot, y as RunRowShellProps, z as statusMeta } from "./index-CeZgMx53.js";
18
+ import { A as ToolCallData, B as taskProgress, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as isOpen, G as TraceWorkspace, H as LatestEvents, I as parseToolEvent, J as TraceWaterfallProps, K as TraceWorkspaceProps, L as runStatus, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, R as showsTaskPriority, S as RunStatus, T as StatusMeta, U as LatestEventsProps, V as taskStatus, W as TraceEvent, Y as traceSpanMark, _ as RunPhaseList, a as ApprovalPlanStep, b as RunRowStatus, c as FeedSegment, d as InlineToolItem, f as InlineToolItemProps, g as RunPhase, h as RunGroupProps, i as ApprovalDiffSummary, j as ToolCallFeed, k as TaskStatus, l as InlineThinkingItem, m as RunGroup, n as ApprovalCardProps, o as ExpandedToolDetail, p as LiveDuration, q as TraceWaterfall, r as ApprovalDiffFile, s as ExpandedToolDetailProps, t as ApprovalCard, u as InlineThinkingItemProps, v as RunRowShell, w as RunStatusIconProps, x as RunRowStatusDot, y as RunRowShellProps, z as statusMeta } from "./index-D6fZ1Hgz.js";
19
19
  import { i as useEventStream, n as AgentStreamSource, r as EventStreamHandlers, t as AgentStreamOpener } from "./event-stream-DNEbvx4s.js";
20
20
  import { C as foldAgentRows, S as AgentTranscriptEntry, _ as ConversationRecord, a as VirtualList, b as AgentStreamRow, c as ConversationProps, d as ToolCall, f as indexRecord, g as ConversationNode, h as ConversationEvent, i as AgentTree, l as EventFlag, m as recordFlowTrace, n as ToolStep, o as withPrompts, p as model_d_exports, r as timelineItems, s as Conversation, t as PromptMore, u as RecordIndex, v as AgentStreamHistory, w as useAgentStream, x as AgentStreamState, y as AgentStreamPage } from "./index-Bv2iiZaN.js";
21
21
  import { n as filterFileNodes, t as fileTreeFromPaths } from "./index-CrN4d8gd.js";
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import { n as FileBreadcrumb, t as CodeView } from "./code-view-BlhCS1SD.js";
15
15
  import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-DXsoPale.js";
16
16
  import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
17
17
  import { S as ReasoningLevelPicker, _ as modelProvider, a as ChatMessage, b as DEFAULT_REASONING_LEVEL_OPTIONS, c as SpeakerHeader, d as UserMessage, f as agentTimelineStepKind, g as ArtifactAgentDock, h as partitionBySpeaker, i as ChatContainer, l as TRANSCRIPT_TEXT, m as isViewerMessage, n as AgentTimelineColumn, o as MessageAuthor, p as foldSummary, r as AgentTimelineStep, s as MessageList, t as AgentTimeline, u as ThinkingIndicator, v as snapHarnessToModel, x as HARNESS_REASONING_OPTIONS, y as AgentProfilePicker } from "./chat-BrlLa4rg.js";
18
- import { a as useEventStream, i as useAgentStream, n as LatestEvents, o as TraceWaterfall, r as foldAgentRows, s as traceSpanMark, t as TraceWorkspace } from "./trace-workspace-DtoQ3tio.js";
18
+ import { a as useEventStream, i as useAgentStream, n as LatestEvents, o as TraceWaterfall, r as foldAgentRows, s as traceSpanMark, t as TraceWorkspace } from "./trace-workspace-CTMV8zw_.js";
19
19
  import { S as model_exports, i as ToolStep, r as PromptMore, s as timelineItems, w as recordFlowTrace, y as indexRecord } from "./use-follow-tail-DZFn7QDO.js";
20
20
  import { n as Conversation, t as AgentTree } from "./AgentTree-D4d06rfH.js";
21
21
  import { t as withPrompts } from "./record-C-EUpK-n.js";
package/dist/run/live.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { t as WorkspaceFilesPane } from "../workspace-files-pane-D24G7H_Z.js";
2
2
  import { t as DiffView } from "../diff-view-B9mNeTLF.js";
3
3
  import { t as CodeView } from "../code-view-BlhCS1SD.js";
4
- import { a as useEventStream, t as TraceWorkspace } from "../trace-workspace-DtoQ3tio.js";
4
+ import { a as useEventStream, t as TraceWorkspace } from "../trace-workspace-CTMV8zw_.js";
5
5
  import { useDocument } from "../hooks/use-document.js";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
- import { useEffect, useMemo, useRef, useState } from "react";
7
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
8
8
  import { isOpen, runStatus } from "@tangle-network/ui/run/status-meta";
9
9
  // src/run/live-inspection.tsx
10
10
  /** The graph, conversation and files share one selected agent and one product-owned API. */
@@ -127,13 +127,13 @@ const time = (value) => {
127
127
  };
128
128
  const iso = (ms) => ms !== void 0 && Number.isFinite(ms) ? new Date(ms).toISOString() : void 0;
129
129
  const withNodes = (run, nodes) => [...run.workers.map((worker) => {
130
- const node = nodes.find((node) => node.id === worker.id);
130
+ const node = nodes.get(worker.id);
131
131
  return {
132
132
  ...worker,
133
133
  startedAt: worker.startedAt ?? iso(node?.timing?.startedAt),
134
134
  endedAt: worker.endedAt ?? iso(node?.timing?.settledAt ?? node?.settledAt)
135
135
  };
136
- }), ...nodes.filter((node) => node.id !== run.id && !run.workers.some((worker) => worker.id === node.id)).map((node) => ({
136
+ }), ...[...nodes.values()].filter((node) => node.id !== run.id && !run.workers.some((worker) => worker.id === node.id)).map((node) => ({
137
137
  id: node.id,
138
138
  parent: node.parentId,
139
139
  label: node.label ?? node.id,
@@ -201,15 +201,20 @@ function LiveRunView({ api, transport }) {
201
201
  key: JSON.stringify([snapshot.root, run.id])
202
202
  })));
203
203
  const active = runs.find((run) => run.key === selected) ?? runs[0];
204
- const facts = active?.snapshot.pursuit?.nodes.filter((node) => node.runId === active.run.id) ?? [];
205
- const detail = (id) => {
206
- const node = facts.find((node) => node.id === id), receipt = active?.run.workers.find((worker) => worker.id === id)?.materialization;
207
- return [node?.model ?? (receipt?.model?.status === "known" ? receipt.model.id : void 0), node?.backend ?? receipt?.backend].filter(Boolean).join(" · ") || void 0;
208
- };
209
- const run = active && {
204
+ const nodeIndex = useMemo(() => {
205
+ const index = /* @__PURE__ */ new Map();
206
+ for (const node of active?.snapshot.pursuit?.nodes ?? []) if (node.runId === active.run.id) index.set(node.id, node);
207
+ return index;
208
+ }, [active?.snapshot, active?.run.id]);
209
+ const run = useMemo(() => active ? {
210
210
  ...active.run,
211
- workers: withNodes(active.run, facts)
212
- };
211
+ workers: withNodes(active.run, nodeIndex)
212
+ } : void 0, [active?.run, nodeIndex]);
213
+ const receiptIndex = useMemo(() => new Map((run?.workers ?? []).map((worker) => [worker.id, worker])), [run]);
214
+ const detail = useCallback((id) => {
215
+ const node = nodeIndex.get(id), receipt = receiptIndex.get(id)?.materialization;
216
+ return [node?.model ?? (receipt?.model?.status === "known" ? receipt.model.id : void 0), node?.backend ?? receipt?.backend].filter(Boolean).join(" · ") || void 0;
217
+ }, [nodeIndex, receiptIndex]);
213
218
  const outcome = run?.outcome;
214
219
  const outcomeText = outcome ? outcome.kind === "winner" ? "Winner" : `${outcome.kind === "no-winner" ? "No winner" : "Failed"}: ${outcome.reason}` : void 0;
215
220
  const startedAt = run ? Math.min(...[run.startedAt, ...run.workers.map((worker) => worker.startedAt)].flatMap((value) => value && Number.isFinite(Date.parse(value)) ? [Date.parse(value)] : [])) : void 0;
@@ -272,55 +277,65 @@ function LiveRunView({ api, transport }) {
272
277
  active?.run,
273
278
  startedAt
274
279
  ]);
275
- const workers = run?.workers.filter((worker) => worker.id !== run.id) ?? [];
276
- const nodes = run ? [{
277
- id: run.id,
278
- label: "root",
279
- status: runStatus(run.status),
280
- model: detail(run.id),
281
- costUsd: cost(run.driverSpend),
282
- startedAt: time(run.startedAt),
283
- lastActivityAt: run.lastActivityAt,
284
- medianEventGapMs: run.medianEventGapMs,
285
- result: outcomeText ?? run.reason ?? (runStatus(run.status) === "failed" ? "Failure cause not recorded" : void 0)
286
- }, ...workers.map((worker) => ({
287
- id: worker.id,
288
- label: worker.label,
289
- harness: worker.runtime,
290
- model: detail(worker.id),
291
- status: runStatus(worker.status),
292
- costUsd: cost(worker.spend, worker.metered),
293
- startedAt: time(worker.startedAt),
294
- lastActivityAt: worker.lastActivityAt,
295
- medianEventGapMs: worker.medianEventGapMs,
296
- turn: worker.liveTail?.at(-1),
297
- events: worker.liveTail?.slice(-3).map((label, index) => ({
298
- id: `${worker.id}:${index}:${label}`,
299
- label
300
- })),
301
- result: worker.reason ?? (runStatus(worker.status) === "failed" ? "Failure cause not recorded" : worker.verdict)
302
- }))] : [];
280
+ const { workers, nodes, edges, agentCards } = useMemo(() => {
281
+ const workers = run?.workers.filter((worker) => worker.id !== run.id) ?? [];
282
+ const nodes = run ? [{
283
+ id: run.id,
284
+ label: "root",
285
+ status: runStatus(run.status),
286
+ model: detail(run.id),
287
+ costUsd: cost(run.driverSpend),
288
+ startedAt: time(run.startedAt),
289
+ lastActivityAt: run.lastActivityAt,
290
+ medianEventGapMs: run.medianEventGapMs,
291
+ result: outcomeText ?? run.reason ?? (runStatus(run.status) === "failed" ? "Failure cause not recorded" : void 0)
292
+ }, ...workers.map((worker) => ({
293
+ id: worker.id,
294
+ label: worker.label,
295
+ harness: worker.runtime,
296
+ model: detail(worker.id),
297
+ status: runStatus(worker.status),
298
+ costUsd: cost(worker.spend, worker.metered),
299
+ startedAt: time(worker.startedAt),
300
+ lastActivityAt: worker.lastActivityAt,
301
+ medianEventGapMs: worker.medianEventGapMs,
302
+ turn: worker.liveTail?.at(-1),
303
+ events: worker.liveTail?.slice(-3).map((label, index) => ({
304
+ id: `${worker.id}:${index}:${label}`,
305
+ label
306
+ })),
307
+ result: worker.reason ?? (runStatus(worker.status) === "failed" ? "Failure cause not recorded" : worker.verdict)
308
+ }))] : [];
309
+ const known = new Set(nodes.map((node) => node.id));
310
+ return {
311
+ workers,
312
+ nodes,
313
+ edges: workers.map((worker) => ({
314
+ from: worker.parent && worker.parent !== worker.id && known.has(worker.parent) ? worker.parent : run.id,
315
+ to: worker.id,
316
+ kind: "spawn"
317
+ })),
318
+ agentCards: Object.fromEntries(nodes.map(({ id, label, harness, model, turn, events, result, status, costUsd, startedAt, lastActivityAt, medianEventGapMs }) => [id, {
319
+ label,
320
+ harness,
321
+ model,
322
+ turn,
323
+ events,
324
+ result,
325
+ ...startedAt === void 0 ? {
326
+ status,
327
+ costUsd,
328
+ lastActivityAt,
329
+ medianEventGapMs
330
+ } : {}
331
+ }]))
332
+ };
333
+ }, [
334
+ run,
335
+ detail,
336
+ outcomeText
337
+ ]);
303
338
  const inspection = useLiveInspection(active && agent ? `${api}/agents/${active.root}/${encodeURIComponent(active.run.id)}/${encodeURIComponent(agent)}` : void 0, !!run && isOpen(run.status), transport?.fetch);
304
- const known = new Set(nodes.map((node) => node.id));
305
- const edges = workers.map((worker) => ({
306
- from: worker.parent && worker.parent !== worker.id && known.has(worker.parent) ? worker.parent : run.id,
307
- to: worker.id,
308
- kind: "spawn"
309
- }));
310
- const agentCards = Object.fromEntries(nodes.map(({ id, label, harness, model, turn, events, result, status, costUsd, startedAt, lastActivityAt, medianEventGapMs }) => [id, {
311
- label,
312
- harness,
313
- model,
314
- turn,
315
- events,
316
- result,
317
- ...startedAt === void 0 ? {
318
- status,
319
- costUsd,
320
- lastActivityAt,
321
- medianEventGapMs
322
- } : {}
323
- }]));
324
339
  return /* @__PURE__ */ jsxs("main", {
325
340
  className: "ws-live",
326
341
  "data-api": api,
package/dist/run.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { A as ToolCallData, B as taskProgress, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as isOpen, G as TraceWorkspace, H as LatestEvents, I as parseToolEvent, J as TraceWaterfallProps, K as TraceWorkspaceProps, L as runStatus, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, R as showsTaskPriority, S as RunStatus, T as StatusMeta, U as LatestEventsProps, V as taskStatus, W as TraceEvent, Y as traceSpanMark, _ as RunPhaseList, a as ApprovalPlanStep, b as RunRowStatus, c as FeedSegment, d as InlineToolItem, f as InlineToolItemProps, g as RunPhase, h as RunGroupProps, i as ApprovalDiffSummary, j as ToolCallFeed, k as TaskStatus, l as InlineThinkingItem, m as RunGroup, n as ApprovalCardProps, o as ExpandedToolDetail, p as LiveDuration, q as TraceWaterfall, r as ApprovalDiffFile, s as ExpandedToolDetailProps, t as ApprovalCard, u as InlineThinkingItemProps, v as RunRowShell, w as RunStatusIconProps, x as RunRowStatusDot, y as RunRowShellProps, z as statusMeta } from "./index-CeZgMx53.js";
1
+ import { A as ToolCallData, B as taskProgress, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as isOpen, G as TraceWorkspace, H as LatestEvents, I as parseToolEvent, J as TraceWaterfallProps, K as TraceWorkspaceProps, L as runStatus, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, R as showsTaskPriority, S as RunStatus, T as StatusMeta, U as LatestEventsProps, V as taskStatus, W as TraceEvent, Y as traceSpanMark, _ as RunPhaseList, a as ApprovalPlanStep, b as RunRowStatus, c as FeedSegment, d as InlineToolItem, f as InlineToolItemProps, g as RunPhase, h as RunGroupProps, i as ApprovalDiffSummary, j as ToolCallFeed, k as TaskStatus, l as InlineThinkingItem, m as RunGroup, n as ApprovalCardProps, o as ExpandedToolDetail, p as LiveDuration, q as TraceWaterfall, r as ApprovalDiffFile, s as ExpandedToolDetailProps, t as ApprovalCard, u as InlineThinkingItemProps, v as RunRowShell, w as RunStatusIconProps, x as RunRowStatusDot, y as RunRowShellProps, z as statusMeta } from "./index-D6fZ1Hgz.js";
2
2
  import { i as useEventStream, n as AgentStreamSource, r as EventStreamHandlers, t as AgentStreamOpener } from "./event-stream-DNEbvx4s.js";
3
3
  import { C as foldAgentRows, S as AgentTranscriptEntry, _ as ConversationRecord, a as VirtualList, b as AgentStreamRow, c as ConversationProps, d as ToolCall, f as indexRecord, g as ConversationNode, h as ConversationEvent, i as AgentTree, l as EventFlag, m as recordFlowTrace, n as ToolStep, o as withPrompts, p as model_d_exports, r as timelineItems, s as Conversation, t as PromptMore, u as RecordIndex, v as AgentStreamHistory, w as useAgentStream, x as AgentStreamState, y as AgentStreamPage } from "./index-Bv2iiZaN.js";
4
4
  export { type AgentStreamHistory, type AgentStreamOpener, type AgentStreamPage, type AgentStreamRow, type AgentStreamSource, type AgentStreamState, type AgentTranscriptEntry, AgentTree, ApprovalCard, type ApprovalCardProps, type ApprovalDiffFile, ApprovalDiffSummary, type ApprovalPlanStep, Conversation, type ConversationEvent, type ConversationNode, type ConversationProps, type ConversationRecord, type EventFlag, type EventStreamHandlers, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, LatestEvents, type LatestEventsProps, LiveDuration, PromptMore, type RecordIndex, RunGroup, type RunGroupProps, type RunPhase, RunPhaseList, RunRowShell, type RunRowShellProps, type RunRowStatus, RunRowStatusDot, type RunStatus, RunStatusIcon, type RunStatusIconProps, type StatusMeta, TaskList, type TaskListItem, type TaskListProps, type TaskStatus, type ToolCall, type ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, ToolStep, type TraceEvent, TraceWaterfall, type TraceWaterfallProps, TraceWorkspace, type TraceWorkspaceProps, VirtualList, foldAgentRows, indexRecord, isOpen, parseToolEvent, recordFlowTrace, model_d_exports as recordModel, runStatus, showsTaskPriority, statusMeta, taskProgress, taskStatus, timelineItems, traceSpanMark, useAgentStream, useEventStream, withPrompts };
package/dist/run.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as VirtualList } from "./VirtualList-DcSGbEtA.js";
2
- import { a as useEventStream, i as useAgentStream, n as LatestEvents, o as TraceWaterfall, r as foldAgentRows, s as traceSpanMark, t as TraceWorkspace } from "./trace-workspace-DtoQ3tio.js";
2
+ import { a as useEventStream, i as useAgentStream, n as LatestEvents, o as TraceWaterfall, r as foldAgentRows, s as traceSpanMark, t as TraceWorkspace } from "./trace-workspace-CTMV8zw_.js";
3
3
  import { S as model_exports, i as ToolStep, r as PromptMore, s as timelineItems, w as recordFlowTrace, y as indexRecord } from "./use-follow-tail-DZFn7QDO.js";
4
4
  import { n as Conversation, t as AgentTree } from "./AgentTree-D4d06rfH.js";
5
5
  import { t as withPrompts } from "./record-C-EUpK-n.js";
package/dist/styles.css CHANGED
@@ -1472,6 +1472,9 @@
1472
1472
  .w-\[calc\(100vw-32px\)\] {
1473
1473
  width: calc(100vw - 32px);
1474
1474
  }
1475
+ .w-\[clamp\(320px\,32vw\,560px\)\] {
1476
+ width: clamp(320px, 32vw, 560px);
1477
+ }
1475
1478
  .w-\[min\(88vw\,24rem\)\] {
1476
1479
  width: min(88vw, 24rem);
1477
1480
  }
@@ -1916,6 +1919,9 @@
1916
1919
  .resize-none {
1917
1920
  resize: none;
1918
1921
  }
1922
+ .resize-x {
1923
+ resize: horizontal;
1924
+ }
1919
1925
  .resize-y {
1920
1926
  resize: vertical;
1921
1927
  }