@tangle-network/sandbox-ui 2.0.3 → 2.0.4

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
@@ -9127,7 +9127,7 @@
9127
9127
  }
9128
9128
  .ag-live-slot {
9129
9129
  display: flex;
9130
- align-items: center;
9130
+ align-items: flex-start;
9131
9131
  width: 100%;
9132
9132
  height: 100%;
9133
9133
  }
@@ -9139,7 +9139,7 @@
9139
9139
  box-sizing: border-box;
9140
9140
  width: 100%;
9141
9141
  height: 100%;
9142
- padding: 10px;
9142
+ padding: 8px;
9143
9143
  border: 1px solid var(--ag-border);
9144
9144
  border-radius: var(--radius-card);
9145
9145
  animation: agent-arrive var(--motion-arrive) both;
@@ -9165,7 +9165,7 @@
9165
9165
  .ag-live-name {
9166
9166
  grid-column: 2;
9167
9167
  grid-row: 1;
9168
- font-size: 14px;
9168
+ font-size: var(--font-size-sm);
9169
9169
  line-height: 18px;
9170
9170
  font-weight: 600;
9171
9171
  overflow: hidden;
@@ -9173,7 +9173,7 @@
9173
9173
  white-space: nowrap;
9174
9174
  }
9175
9175
  .ag-live-meta, .ag-live-stats {
9176
- font-size: 12px;
9176
+ font-size: var(--font-size-xs);
9177
9177
  line-height: 16px;
9178
9178
  color: var(--ag-muted);
9179
9179
  }
@@ -9187,6 +9187,7 @@
9187
9187
  .ag-live-accounting {
9188
9188
  grid-column: 2 / -1;
9189
9189
  grid-row: 3;
9190
+ font-size: var(--font-size-xs);
9190
9191
  font-variant-numeric: tabular-nums;
9191
9192
  }
9192
9193
  .ag-live-pill {
@@ -9220,19 +9221,16 @@
9220
9221
  flex: 1;
9221
9222
  min-width: 0;
9222
9223
  margin: 0;
9223
- font-size: 13px;
9224
- line-height: 17px;
9224
+ font-size: var(--font-size-sm);
9225
+ line-height: 20px;
9225
9226
  display: -webkit-box;
9226
9227
  -webkit-line-clamp: 2;
9227
9228
  -webkit-box-orient: vertical;
9228
9229
  overflow: hidden;
9229
9230
  }
9230
- .ag-live-failure {
9231
- color: var(--surface-danger-text);
9232
- }
9233
9231
  .ag-live-quiet {
9234
9232
  color: var(--surface-warning-text);
9235
- font-size: 12px;
9233
+ font-size: var(--font-size-xs);
9236
9234
  line-height: 16px;
9237
9235
  }
9238
9236
  .ag-live-inspect {
@@ -9246,8 +9244,8 @@
9246
9244
  text-decoration: underline;
9247
9245
  }
9248
9246
  .ag-live-respond {
9249
- height: 28px;
9250
- min-height: 28px;
9247
+ height: var(--control-height-sm);
9248
+ min-height: var(--control-height-sm);
9251
9249
  flex: none;
9252
9250
  border: 1px solid currentColor;
9253
9251
  border-radius: var(--radius-control);
@@ -9266,18 +9264,13 @@
9266
9264
  margin: 0;
9267
9265
  padding: 0;
9268
9266
  list-style: none;
9269
- min-height: 64px;
9270
- display: flex;
9271
- flex-direction: column;
9272
- justify-content: flex-end;
9273
- transform: translateY(-16px);
9274
9267
  }
9275
9268
  .ag-live-events li {
9276
9269
  display: flex;
9277
9270
  align-items: center;
9278
9271
  gap: 6px;
9279
9272
  min-height: 16px;
9280
- font: 11px/16px var(--font-mono, monospace);
9273
+ font: var(--font-size-xs)/16px var(--font-mono, monospace);
9281
9274
  color: var(--ag-muted);
9282
9275
  transition: color var(--motion-stream);
9283
9276
  }
@@ -9303,34 +9296,33 @@
9303
9296
  font-variant-numeric: tabular-nums;
9304
9297
  }
9305
9298
  .ag-live-chip {
9306
- height: 40px;
9307
- flex-direction: row;
9308
- align-items: center;
9309
- gap: 8px;
9310
- border-radius: var(--radius-pill);
9311
- opacity: 1;
9299
+ height: 80px;
9300
+ display: grid;
9301
+ grid-template-columns: 16px minmax(0, 1fr) auto auto;
9302
+ grid-template-rows: 18px minmax(0, 1fr);
9303
+ gap: 4px 8px;
9312
9304
  }
9313
9305
  .ag-live-chip .ag-live-head {
9314
- display: flex;
9315
- flex: none;
9316
- max-width: 45%;
9306
+ display: contents;
9317
9307
  }
9318
9308
  .ag-live-chip .ag-live-names {
9319
- display: flex;
9320
- min-width: 0;
9309
+ display: contents;
9310
+ }
9311
+ .ag-live-chip .ag-live-name {
9312
+ grid-column: 2;
9313
+ grid-row: 1;
9321
9314
  }
9322
9315
  .ag-live-chip .ag-live-stats, .ag-live-chip .ag-live-head > :first-child {
9323
9316
  display: none;
9324
9317
  }
9325
9318
  .ag-live-chip-result {
9326
- flex: 1;
9319
+ grid-column: 1 / -1;
9320
+ grid-row: 2;
9327
9321
  min-width: 0;
9328
- overflow: hidden;
9329
- text-overflow: ellipsis;
9330
- white-space: nowrap;
9331
- font-size: 12px;
9332
- line-height: 16px;
9333
- font-weight: 500;
9322
+ overflow: auto;
9323
+ overflow-wrap: anywhere;
9324
+ font-size: var(--font-size-sm);
9325
+ line-height: 18px;
9334
9326
  }
9335
9327
  .ag-phone-list {
9336
9328
  display: flex;
@@ -9400,8 +9392,8 @@
9400
9392
  flex: 0 0 auto;
9401
9393
  }
9402
9394
  .ag-live-card.ag-live-chip {
9403
- min-height: 40px;
9404
- height: 40px;
9395
+ min-height: 80px;
9396
+ height: 80px;
9405
9397
  }
9406
9398
  }
9407
9399
  .ag-live-accounting {
@@ -9411,44 +9403,49 @@
9411
9403
  max-width: 100%;
9412
9404
  }
9413
9405
  .ag-live-chip-status {
9414
- flex: none;
9415
- font-size: 12px;
9406
+ grid-column: 3;
9407
+ grid-row: 1;
9408
+ font-size: var(--font-size-xs);
9416
9409
  color: var(--ag-status);
9417
9410
  }
9418
9411
  .ag-live-chip-cost {
9419
- flex: none;
9420
- font-size: 12px;
9412
+ grid-column: 4;
9413
+ grid-row: 1;
9414
+ font-size: var(--font-size-xs);
9421
9415
  color: var(--ag-muted);
9422
9416
  font-variant-numeric: tabular-nums;
9423
9417
  }
9424
9418
  .ag-parent-label {
9425
9419
  color: var(--ag-muted);
9426
- font-size: 12px;
9420
+ font-size: var(--font-size-xs);
9427
9421
  font-weight: 400;
9428
9422
  }
9429
9423
  .ag-agent-card[data-status="needs-you"] p {
9430
9424
  -webkit-line-clamp: 1;
9431
9425
  }
9432
9426
  .ag-latest {
9427
+ container-type: inline-size;
9433
9428
  flex: none;
9434
9429
  min-width: 0;
9435
9430
  border-bottom: 1px solid hsl(var(--border));
9436
- padding: 8px 12px;
9431
+ padding: 4px 12px;
9437
9432
  color: hsl(var(--foreground));
9438
- font-size: 12px;
9433
+ font-size: var(--font-size-xs);
9439
9434
  line-height: 16px;
9440
9435
  }
9441
9436
  .ag-latest header {
9437
+ float: left;
9438
+ width: 128px;
9439
+ height: 64px;
9442
9440
  display: flex;
9443
- align-items: center;
9444
- min-height: 24px;
9445
- gap: 8px;
9441
+ flex-direction: column;
9442
+ align-items: start;
9443
+ justify-content: center;
9446
9444
  }
9447
9445
  .ag-latest header > span {
9448
9446
  color: hsl(var(--muted-foreground));
9449
9447
  }
9450
9448
  .ag-latest header > button {
9451
- margin-left: auto;
9452
9449
  padding: 0;
9453
9450
  border: 0;
9454
9451
  background: transparent;
@@ -9458,20 +9455,26 @@
9458
9455
  cursor: pointer;
9459
9456
  }
9460
9457
  .ag-latest ol {
9458
+ display: grid;
9459
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
9460
+ gap: 0 12px;
9461
9461
  list-style: none;
9462
- margin: 0;
9462
+ margin: 0 0 0 140px;
9463
9463
  padding: 0;
9464
9464
  overflow: auto;
9465
+ height: 64px;
9465
9466
  }
9466
9467
  .ag-latest li {
9467
- height: 28px;
9468
+ min-height: 64px;
9468
9469
  }
9469
9470
  .ag-latest li > button {
9470
- display: flex;
9471
- align-items: center;
9472
- gap: 6px;
9471
+ display: grid;
9472
+ grid-template-columns: 8px minmax(0, 1fr) auto;
9473
+ gap: 0 6px;
9474
+ align-content: start;
9475
+ align-items: start;
9473
9476
  width: 100%;
9474
- height: 28px;
9477
+ min-height: 64px;
9475
9478
  padding: 0;
9476
9479
  border: 0;
9477
9480
  background: transparent;
@@ -9487,8 +9490,8 @@
9487
9490
  font-weight: 600;
9488
9491
  }
9489
9492
  .ag-latest li strong {
9490
- flex: none;
9491
- max-width: 22%;
9493
+ grid-column: 2;
9494
+ grid-row: 1;
9492
9495
  overflow: hidden;
9493
9496
  text-overflow: ellipsis;
9494
9497
  white-space: nowrap;
@@ -9497,34 +9500,91 @@
9497
9500
  box-sizing: border-box;
9498
9501
  width: 8px;
9499
9502
  height: 8px;
9500
- flex: none;
9501
9503
  border-radius: var(--radius-pill);
9502
9504
  }
9503
9505
  .ag-latest-state {
9506
+ grid-column: 3;
9507
+ grid-row: 1;
9504
9508
  display: inline-flex;
9505
9509
  align-items: center;
9506
9510
  gap: 4px;
9507
- flex: none;
9508
9511
  }
9509
9512
  .ag-latest-label {
9510
- flex: 1;
9513
+ grid-column: 2 / -1;
9514
+ grid-row: 2;
9511
9515
  min-width: 0;
9512
- overflow: hidden;
9513
- text-overflow: ellipsis;
9514
- white-space: nowrap;
9515
- font: 11px/16px var(--font-mono, monospace);
9516
+ overflow-wrap: anywhere;
9517
+ font: var(--font-size-xs)/16px var(--font-mono, monospace);
9516
9518
  }
9517
9519
  .ag-latest time {
9518
- flex: none;
9520
+ grid-column: 2 / -1;
9521
+ grid-row: 3;
9519
9522
  color: hsl(var(--muted-foreground));
9520
- font: 11px/16px var(--font-mono, monospace);
9523
+ font: var(--font-size-xs)/16px var(--font-mono, monospace);
9521
9524
  font-variant-numeric: tabular-nums;
9522
9525
  }
9523
9526
  .ag-latest-empty {
9527
+ grid-column: 1 / -1;
9524
9528
  display: flex;
9525
9529
  align-items: center;
9526
9530
  color: hsl(var(--muted-foreground));
9527
9531
  }
9532
+ .ag-frame-owner .ag-live-card {
9533
+ height: 100%;
9534
+ display: grid;
9535
+ grid-template-columns: 18px minmax(0, 1fr) auto;
9536
+ grid-template-rows: 18px minmax(0, 1fr);
9537
+ gap: 4px 8px;
9538
+ }
9539
+ .ag-frame-owner .ag-live-chip-result {
9540
+ white-space: nowrap;
9541
+ }
9542
+ .ag-frame-owner .ag-live-head {
9543
+ display: contents;
9544
+ }
9545
+ .ag-frame-owner .ag-live-meta, .ag-frame-owner .ag-live-events-clip {
9546
+ display: none;
9547
+ }
9548
+ .ag-frame-owner .ag-live-thinking-row {
9549
+ grid-column: 2 / -1;
9550
+ grid-row: 2;
9551
+ }
9552
+ .ag-frame-owner .ag-live-thinking {
9553
+ -webkit-line-clamp: 1;
9554
+ }
9555
+ .ag-frame-owner .ag-live-accounting {
9556
+ display: none;
9557
+ }
9558
+ .ag-frame-owner .ag-agent-card {
9559
+ flex-direction: row;
9560
+ align-items: center;
9561
+ gap: 16px;
9562
+ }
9563
+ @container (width < 600px) {
9564
+ .ag-latest header {
9565
+ float: none;
9566
+ width: auto;
9567
+ height: 24px;
9568
+ flex-direction: row;
9569
+ align-items: center;
9570
+ justify-content: start;
9571
+ gap: 8px;
9572
+ }
9573
+ .ag-latest header > button {
9574
+ margin-left: auto;
9575
+ }
9576
+ .ag-latest ol {
9577
+ grid-template-columns: 1fr;
9578
+ margin-left: 0;
9579
+ height: calc(var(--ag-latest-rows) * 64px);
9580
+ }
9581
+ }
9582
+ @media (pointer: coarse) {
9583
+ .ag-live-respond {
9584
+ min-height: 44px;
9585
+ min-width: 44px;
9586
+ }
9587
+ }
9528
9588
  @property --tw-translate-x {
9529
9589
  syntax: "*";
9530
9590
  inherits: false;
@@ -1,4 +1,4 @@
1
- import { d as AgentGraphNode, n as AgentGraphProps } from "./AgentGraph-BqLPrigw.js";
1
+ import { d as AgentGraphNode, n as AgentGraphProps } from "./AgentGraph-K7OCgKcC.js";
2
2
  import { ReactNode } from "react";
3
3
  import { ApprovalCard, ApprovalCardProps, ApprovalDiffFile, ApprovalDiffSummary, ApprovalPlanStep, ExpandedToolDetail, ExpandedToolDetailProps, FeedSegment, InlineThinkingItem as InlineThinkingItem$1, InlineThinkingItemProps, InlineToolItem, InlineToolItemProps, LiveDuration, RunGroup, RunGroupProps, RunPhase, RunPhaseList, RunRowShell, RunRowShellProps, RunRowStatus, RunRowStatusDot, RunStatus, RunStatusIcon as RunStatusIcon$1, RunStatusIconProps, StatusMeta, TaskList, TaskListItem, TaskListProps, TaskStatus, ToolCallData, ToolCallData as ToolCallData$1, ToolCallFeed, ToolCallFeedProps, ToolCallStatus, ToolCallType, parseToolEvent, runStatus as runStatus$1, showsTaskPriority, statusMeta as statusMeta$1, taskProgress, taskStatus } from "@tangle-network/ui/run";
4
4
  import { FlowWaterfallProps } from "@tangle-network/charts/react";
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ import { C as ChangedFile, D as SandboxArtifactTerminal, E as SandboxArtifactPan
16
16
  import { n as DiffViewProps, t as DiffView } from "./diff-view-DDHWtR6X.js";
17
17
  import { a as PreviewReadiness, i as PreviewAccess, n as EmbeddedAppView, r as EmbeddedAppViewProps, t as EmbeddedApp } from "./embedded-app-view-Ta5GI4hx.js";
18
18
  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";
19
- import { $ as traceSpanMark, A as ToolCallData, B as taskStatus, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as parseToolEvent, G as AgentTranscriptEntry, H as LatestEventsProps, I as runStatus, J as TraceEvent, K as foldAgentRows, L as showsTaskPriority, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, Q as TraceWaterfallProps, R as statusMeta, S as RunStatus, T as StatusMeta, U as AgentStreamRow, V as LatestEvents, W as AgentStreamState, X as TraceWorkspaceProps, Y as TraceWorkspace, Z as TraceWaterfall, _ 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 useAgentStream, 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 taskProgress } from "./index-CjGeAD3E.js";
19
+ import { $ as traceSpanMark, A as ToolCallData, B as taskStatus, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as parseToolEvent, G as AgentTranscriptEntry, H as LatestEventsProps, I as runStatus, J as TraceEvent, K as foldAgentRows, L as showsTaskPriority, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, Q as TraceWaterfallProps, R as statusMeta, S as RunStatus, T as StatusMeta, U as AgentStreamRow, V as LatestEvents, W as AgentStreamState, X as TraceWorkspaceProps, Y as TraceWorkspace, Z as TraceWaterfall, _ 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 useAgentStream, 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 taskProgress } from "./index-DMX2q0_h.js";
20
20
  import { n as filterFileNodes, t as fileTreeFromPaths } from "./index-CrN4d8gd.js";
21
21
  import { ActiveProjectActivity, ActiveSessionActivityOptions, ActiveSessionConnectionOptions, ActiveSessionConnectionState, ActiveSessionReconnectState, ActiveSessionRecord, ActiveSessionStatus, ActiveSessionTransportMode, ActiveSessionsState, ChatSession, RegisterActiveSessionOptions, SessionProjectKey, activeSessionsAtom, addMessage, addParts, bumpActiveSessionActivity, clearChat, connectSession, disconnectSession, getActiveSession, getAllActiveSessions, getAllProjectActivity, getSessionsByActivity, getSessionsForNavbar, getSessionsForProject, getTotalRunningSessionCount, hasBackgroundRunningSessions, isStreamingAtom, messagesAtom, partMapAtom, registerActiveSession, resetActiveSessions, sessionAtom, setActiveSessionAttention, setActiveSessionConnection, setActiveSessionError, setActiveSessionRunning, setForegroundActiveSession, unregisterActiveSession, updateActiveSessionMeta, updatePart, useActiveSession, useActiveSessions, useActiveSessionsState, useHasBackgroundRunningSessions, useNavbarSessions, useProjectActivity, useProjectSessions, useSessionsByActivity, useTotalRunningSessions } from "./stores.js";
22
22
  import { AgentBranding, CustomToolRenderer, DisplayVariant, FinalTextPart, GroupedMessage, MessageRun, MessageUser, ReasoningPart, Run, RunStats, SessionMessage, SessionPart, TextPart, ToolCategory, ToolDisplayMetadata, ToolPart, ToolState, ToolStatus, ToolTime } from "./types.js";
package/dist/index.js CHANGED
@@ -12,8 +12,8 @@ import { a as CodeSurface, i as CODE_THEME, n as buildUnifiedPatch, r as compute
12
12
  import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-DXsoPale.js";
13
13
  import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
14
14
  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";
15
- import { C as TraceWaterfall, S as useAgentStream, _ as statusMeta, a as InlineToolItem, b as TraceWorkspace, c as RunPhaseList, d as RunStatusIcon, f as TaskList, g as showsTaskPriority, h as runStatus, i as InlineThinkingItem, l as RunRowShell, m as parseToolEvent, n as ApprovalDiffSummary, o as LiveDuration, p as ToolCallFeed, r as ExpandedToolDetail, s as RunGroup, t as ApprovalCard, u as RunRowStatusDot, v as taskProgress, w as traceSpanMark, x as foldAgentRows, y as taskStatus } from "./run-B0HDqO5h.js";
16
- import { t as LatestEvents } from "./latest-events-D1i5Ny3N.js";
15
+ import { C as TraceWaterfall, S as useAgentStream, _ as statusMeta, a as InlineToolItem, b as TraceWorkspace, c as RunPhaseList, d as RunStatusIcon, f as TaskList, g as showsTaskPriority, h as runStatus, i as InlineThinkingItem, l as RunRowShell, m as parseToolEvent, n as ApprovalDiffSummary, o as LiveDuration, p as ToolCallFeed, r as ExpandedToolDetail, s as RunGroup, t as ApprovalCard, u as RunRowStatusDot, v as taskProgress, w as traceSpanMark, x as foldAgentRows, y as taskStatus } from "./run-X00BQO6i.js";
16
+ import { t as LatestEvents } from "./latest-events-C_G-ekNg.js";
17
17
  import "./vault-tree.js";
18
18
  import { a as TangleLoginButton, i as UserMenu, n as GitHubLoginButton, r as LoginLayout, t as AuthHeader } from "./auth-BDpoZ_2f.js";
19
19
  import { t as AgentMessagingConnection } from "./connections-DymjzHe_.js";
@@ -1,65 +1,45 @@
1
- import { g as useRunNow, h as useMotionAllowed, o as fmtEventTime, p as tokenMilliseconds } from "./AgentGraph-Dd1EBlhu.js";
1
+ import { g as useRunNow, o as fmtEventTime, p as tokenMilliseconds } from "./AgentGraph-DA5lyE06.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
4
4
  import { RunStatusIcon, statusMeta } from "@tangle-network/ui/run";
5
5
  // src/run/latest-events.tsx
6
6
  function EventRow({ entry, now, onSelect }) {
7
- const ref = useRef(null), motion = useMotionAllowed();
8
- useLayoutEffect(() => {
9
- const element = ref.current;
10
- if (!element) return;
11
- const style = getComputedStyle(element);
12
- const animation = element.animate([{
13
- opacity: 0,
14
- ...motion ? { transform: "translateY(calc(" + style.getPropertyValue("--arrive-distance") + " * -1))" } : {}
15
- }, {
16
- opacity: 1,
17
- ...motion ? { transform: "none" } : {}
18
- }], {
19
- duration: tokenMilliseconds(motion ? "--duration-arrive" : "--duration-fast", element),
20
- easing: style.getPropertyValue("--ease-entrance").trim() || "ease-out"
21
- });
22
- return () => animation.cancel();
23
- }, [entry.id, motion]);
24
7
  const meta = statusMeta(entry.observed ? entry.status : "unknown"), age = fmtEventTime(entry.at, now);
25
- return /* @__PURE__ */ jsx("li", {
26
- ref,
27
- children: /* @__PURE__ */ jsxs("button", {
28
- type: "button",
29
- disabled: !onSelect,
30
- onClick: () => onSelect?.(entry),
31
- title: entry.name + ": " + entry.label,
32
- children: [
33
- /* @__PURE__ */ jsx("span", {
34
- className: "ag-latest-dot",
35
- style: {
36
- background: entry.observed ? "var(" + meta.token + ")" : "transparent",
37
- border: entry.observed ? void 0 : "1.5px solid var(" + meta.token + ")"
38
- },
8
+ return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("button", {
9
+ type: "button",
10
+ disabled: !onSelect,
11
+ onClick: () => onSelect?.(entry),
12
+ title: entry.name + ": " + entry.label,
13
+ children: [
14
+ /* @__PURE__ */ jsx("span", {
15
+ className: "ag-latest-dot",
16
+ style: {
17
+ background: entry.observed ? "var(" + meta.token + ")" : "transparent",
18
+ border: entry.observed ? void 0 : "1.5px solid var(" + meta.token + ")"
19
+ },
20
+ "aria-hidden": true
21
+ }),
22
+ /* @__PURE__ */ jsx("strong", { children: entry.name }),
23
+ entry.observed && /* @__PURE__ */ jsxs("span", {
24
+ className: "ag-latest-state",
25
+ style: { color: "var(" + meta.token + ")" },
26
+ children: [entry.status !== "running" && /* @__PURE__ */ jsx(RunStatusIcon, {
27
+ status: entry.status,
28
+ size: 14,
39
29
  "aria-hidden": true
40
- }),
41
- /* @__PURE__ */ jsx("strong", { children: entry.name }),
42
- entry.observed && /* @__PURE__ */ jsxs("span", {
43
- className: "ag-latest-state",
44
- style: { color: "var(" + meta.token + ")" },
45
- children: [entry.status !== "running" && /* @__PURE__ */ jsx(RunStatusIcon, {
46
- status: entry.status,
47
- size: 14,
48
- "aria-hidden": true
49
- }), meta.label]
50
- }),
51
- /* @__PURE__ */ jsx("span", {
52
- className: "ag-latest-label",
53
- children: entry.label
54
- }),
55
- /* @__PURE__ */ jsxs("time", { children: [
56
- entry.observed ? "Observed " : "",
57
- age,
58
- age !== "now" && age !== "—" ? " ago" : ""
59
- ] })
60
- ]
61
- })
62
- });
30
+ }), meta.label]
31
+ }),
32
+ /* @__PURE__ */ jsx("span", {
33
+ className: "ag-latest-label",
34
+ children: entry.label
35
+ }),
36
+ /* @__PURE__ */ jsxs("time", { children: [
37
+ entry.observed ? "Observed " : "",
38
+ age,
39
+ age !== "now" && age !== "—" ? " ago" : ""
40
+ ] })
41
+ ]
42
+ }) });
63
43
  }
64
44
  /** Recorded events and locally observed state changes. Hover or focus holds the reading position. */
65
45
  function LatestEvents({ agents, n = 5, now, live = now === void 0, selectedId, onSelect }) {
@@ -165,7 +145,7 @@ function LatestEvents({ agents, n = 5, now, live = now === void 0, selectedId, o
165
145
  /* @__PURE__ */ jsx("ol", {
166
146
  tabIndex: 0,
167
147
  "aria-label": "Recorded activity events",
168
- style: { height: Math.min(limit, 3) * 28 },
148
+ style: { "--ag-latest-rows": Math.min(limit, 3) },
169
149
  children: visible.length ? visible.map((entry) => /* @__PURE__ */ jsx(EventRow, {
170
150
  entry,
171
151
  now: clock,
@@ -1,6 +1,6 @@
1
1
  import { i as modelBrandFor, t as ModelBrandStack } from "./model-brand-bTcMjQtB.js";
2
2
  import { t as ProviderIcon } from "./provider-logo-CPKRPHcS.js";
3
- import { r as clampPreview } from "./AgentGraph-Dd1EBlhu.js";
3
+ import { r as clampPreview } from "./AgentGraph-DA5lyE06.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { AlertTriangle, Bell, Box, Cable, Camera, Circle, Clock, Code, GitBranch, Repeat, ScanSearch, Sparkles, UserCheck, Webhook, Zap } from "lucide-react";
6
6
  import { RunStatusIcon, statusMeta } from "@tangle-network/ui/run";
@@ -1,8 +1,8 @@
1
1
  import { t as cn } from "./utils-BER_bdgE.js";
2
2
  import { i as modelBrandFor, t as ModelBrandStack } from "./model-brand-bTcMjQtB.js";
3
3
  import { t as ProviderIcon } from "./provider-logo-CPKRPHcS.js";
4
- import { f as syncAmbient, l as activityTiming, t as AgentGraph, u as ambientStyle } from "./AgentGraph-Dd1EBlhu.js";
5
- import { t as LatestEvents } from "./latest-events-D1i5Ny3N.js";
4
+ import { f as syncAmbient, l as activityTiming, t as AgentGraph, u as ambientStyle } from "./AgentGraph-DA5lyE06.js";
5
+ import { t as LatestEvents } from "./latest-events-C_G-ekNg.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  import { useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
8
8
  import { X } from "lucide-react";
package/dist/run.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as traceSpanMark, A as ToolCallData, B as taskStatus, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as parseToolEvent, G as AgentTranscriptEntry, H as LatestEventsProps, I as runStatus, J as TraceEvent, K as foldAgentRows, L as showsTaskPriority, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, Q as TraceWaterfallProps, R as statusMeta, S as RunStatus, T as StatusMeta, U as AgentStreamRow, V as LatestEvents, W as AgentStreamState, X as TraceWorkspaceProps, Y as TraceWorkspace, Z as TraceWaterfall, _ 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 useAgentStream, 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 taskProgress } from "./index-CjGeAD3E.js";
1
+ import { $ as traceSpanMark, A as ToolCallData, B as taskStatus, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as parseToolEvent, G as AgentTranscriptEntry, H as LatestEventsProps, I as runStatus, J as TraceEvent, K as foldAgentRows, L as showsTaskPriority, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, Q as TraceWaterfallProps, R as statusMeta, S as RunStatus, T as StatusMeta, U as AgentStreamRow, V as LatestEvents, W as AgentStreamState, X as TraceWorkspaceProps, Y as TraceWorkspace, Z as TraceWaterfall, _ 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 useAgentStream, 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 taskProgress } from "./index-DMX2q0_h.js";
2
2
  export { type AgentStreamRow, type AgentStreamState, type AgentTranscriptEntry, ApprovalCard, type ApprovalCardProps, type ApprovalDiffFile, ApprovalDiffSummary, type ApprovalPlanStep, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, LatestEvents, type LatestEventsProps, LiveDuration, 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 ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, type TraceEvent, TraceWaterfall, type TraceWaterfallProps, TraceWorkspace, type TraceWorkspaceProps, foldAgentRows, parseToolEvent, runStatus, showsTaskPriority, statusMeta, taskProgress, taskStatus, traceSpanMark, useAgentStream };
package/dist/run.js CHANGED
@@ -1,3 +1,3 @@
1
- import { C as TraceWaterfall, S as useAgentStream, _ as statusMeta, a as InlineToolItem, b as TraceWorkspace, c as RunPhaseList, d as RunStatusIcon, f as TaskList, g as showsTaskPriority, h as runStatus, i as InlineThinkingItem, l as RunRowShell, m as parseToolEvent, n as ApprovalDiffSummary, o as LiveDuration, p as ToolCallFeed, r as ExpandedToolDetail, s as RunGroup, t as ApprovalCard, u as RunRowStatusDot, v as taskProgress, w as traceSpanMark, x as foldAgentRows, y as taskStatus } from "./run-B0HDqO5h.js";
2
- import { t as LatestEvents } from "./latest-events-D1i5Ny3N.js";
1
+ import { C as TraceWaterfall, S as useAgentStream, _ as statusMeta, a as InlineToolItem, b as TraceWorkspace, c as RunPhaseList, d as RunStatusIcon, f as TaskList, g as showsTaskPriority, h as runStatus, i as InlineThinkingItem, l as RunRowShell, m as parseToolEvent, n as ApprovalDiffSummary, o as LiveDuration, p as ToolCallFeed, r as ExpandedToolDetail, s as RunGroup, t as ApprovalCard, u as RunRowStatusDot, v as taskProgress, w as traceSpanMark, x as foldAgentRows, y as taskStatus } from "./run-X00BQO6i.js";
2
+ import { t as LatestEvents } from "./latest-events-C_G-ekNg.js";
3
3
  export { ApprovalCard, ApprovalDiffSummary, ExpandedToolDetail, InlineThinkingItem, InlineToolItem, LatestEvents, LiveDuration, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, RunStatusIcon, TaskList, ToolCallFeed, TraceWaterfall, TraceWorkspace, foldAgentRows, parseToolEvent, runStatus, showsTaskPriority, statusMeta, taskProgress, taskStatus, traceSpanMark, useAgentStream };