@tangle-network/sandbox-ui 2.0.5 → 2.0.7
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/README.md +4 -0
- package/dist/{AgentGraph-YuBa5O8m.js → AgentGraph-CFlI9qta.js} +2 -2
- package/dist/{AgentGraphCanvas-DYAMCkhv.js → AgentGraphCanvas-CmxReSqa.js} +4 -4
- package/dist/{WorkflowGraph-DkdcJ8wb.js → WorkflowGraph-BtJnA5iY.js} +2 -2
- package/dist/{chat-BrlLa4rg.js → chat-BU39pb2j.js} +2 -2
- package/dist/chat.d.ts +1 -1
- package/dist/chat.js +1 -1
- package/dist/globals.css +170 -1
- package/dist/index-D70BfRTV.d.ts +308 -0
- package/dist/{index-5zOVKgDT.d.ts → index-Due7tY0w.d.ts} +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4 -4
- package/dist/{latest-events-CWvZr8Ut.js → latest-events-v_vXRyd7.js} +1 -2
- package/dist/{node-ui-Dst2R2M5.js → node-ui-D8dbX86X.js} +1 -1
- package/dist/rolldown-runtime-D8jQpDG7.js +12 -0
- package/dist/run-BgllNBrW.js +2036 -0
- package/dist/run.d.ts +2 -2
- package/dist/run.js +3 -3
- package/dist/styles.css +170 -1
- package/dist/tailwind.css +31 -1
- package/dist/workflows.js +2 -2
- package/package.json +5 -4
- package/dist/index-DFNf9mJ2.d.ts +0 -121
- package/dist/run-wUKH3Qh6.js +0 -612
package/dist/run.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
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 };
|
|
1
|
+
import { $ as AgentStreamRow, A as ToolCallData, B as taskStatus, C as RunStatusIcon, D as TaskListItem, E as TaskList, F as parseToolEvent, G as RecordIndex, H as Conversation, I as runStatus, J as ConversationEvent, K as indexRecord, L as showsTaskPriority, M as ToolCallFeedProps, N as ToolCallStatus, O as TaskListProps, P as ToolCallType, Q as LatestEventsProps, R as statusMeta, S as RunStatus, T as StatusMeta, U as ConversationProps, V as withPrompts, W as EventFlag, X as ConversationRecord, Y as ConversationNode, Z as LatestEvents, _ as RunPhaseList, a as ApprovalPlanStep, at as TraceWorkspace, b as RunRowStatus, c as FeedSegment, ct as TraceWaterfallProps, d as InlineToolItem, et as AgentStreamState, f as InlineToolItemProps, g as RunPhase, h as RunGroupProps, i as ApprovalDiffSummary, it as TraceEvent, j as ToolCallFeed, k as TaskStatus, l as InlineThinkingItem, lt as traceSpanMark, m as RunGroup, n as ApprovalCardProps, nt as foldAgentRows, o as ExpandedToolDetail, ot as TraceWorkspaceProps, p as LiveDuration, q as model_d_exports, r as ApprovalDiffFile, rt as useAgentStream, s as ExpandedToolDetailProps, st as TraceWaterfall, t as ApprovalCard, tt as AgentTranscriptEntry, u as InlineThinkingItemProps, v as RunRowShell, w as RunStatusIconProps, x as RunRowStatusDot, y as RunRowShellProps, z as taskProgress } from "./index-D70BfRTV.js";
|
|
2
|
+
export { type AgentStreamRow, type AgentStreamState, type AgentTranscriptEntry, ApprovalCard, type ApprovalCardProps, type ApprovalDiffFile, ApprovalDiffSummary, type ApprovalPlanStep, Conversation, type ConversationEvent, type ConversationNode, type ConversationProps, type ConversationRecord, type EventFlag, ExpandedToolDetail, type ExpandedToolDetailProps, type FeedSegment, InlineThinkingItem, type InlineThinkingItemProps, InlineToolItem, type InlineToolItemProps, LatestEvents, type LatestEventsProps, LiveDuration, 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 ToolCallData, ToolCallFeed, type ToolCallFeedProps, type ToolCallStatus, type ToolCallType, type TraceEvent, TraceWaterfall, type TraceWaterfallProps, TraceWorkspace, type TraceWorkspaceProps, foldAgentRows, indexRecord, parseToolEvent, model_d_exports as recordModel, runStatus, showsTaskPriority, statusMeta, taskProgress, taskStatus, traceSpanMark, useAgentStream, withPrompts };
|
package/dist/run.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as TraceWaterfall,
|
|
2
|
-
import { t as LatestEvents } from "./latest-events-
|
|
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 };
|
|
1
|
+
import { C as model_exports, D as TraceWaterfall, E as useAgentStream, O as traceSpanMark, S as indexRecord, T as foldAgentRows, _ as statusMeta, a as InlineToolItem, b as withPrompts, 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 TraceWorkspace, x as Conversation, y as taskStatus } from "./run-BgllNBrW.js";
|
|
2
|
+
import { t as LatestEvents } from "./latest-events-v_vXRyd7.js";
|
|
3
|
+
export { ApprovalCard, ApprovalDiffSummary, Conversation, ExpandedToolDetail, InlineThinkingItem, InlineToolItem, LatestEvents, LiveDuration, RunGroup, RunPhaseList, RunRowShell, RunRowStatusDot, RunStatusIcon, TaskList, ToolCallFeed, TraceWaterfall, TraceWorkspace, foldAgentRows, indexRecord, parseToolEvent, model_exports as recordModel, runStatus, showsTaskPriority, statusMeta, taskProgress, taskStatus, traceSpanMark, useAgentStream, withPrompts };
|
package/dist/styles.css
CHANGED
|
@@ -9593,7 +9593,7 @@
|
|
|
9593
9593
|
.ag-latest ol {
|
|
9594
9594
|
grid-template-columns: 1fr;
|
|
9595
9595
|
margin-left: 0;
|
|
9596
|
-
height:
|
|
9596
|
+
height: 64px;
|
|
9597
9597
|
}
|
|
9598
9598
|
}
|
|
9599
9599
|
@media (pointer: coarse) {
|
|
@@ -9602,6 +9602,175 @@
|
|
|
9602
9602
|
min-width: 44px;
|
|
9603
9603
|
}
|
|
9604
9604
|
}
|
|
9605
|
+
.record-conversation {
|
|
9606
|
+
height: 29rem;
|
|
9607
|
+
overflow: auto;
|
|
9608
|
+
scroll-behavior: auto;
|
|
9609
|
+
overscroll-behavior: contain;
|
|
9610
|
+
}
|
|
9611
|
+
.record-conversation .virtual-row {
|
|
9612
|
+
display: flow-root;
|
|
9613
|
+
overflow-anchor: auto;
|
|
9614
|
+
}
|
|
9615
|
+
.record-conversation .chat-empty {
|
|
9616
|
+
padding: 1rem;
|
|
9617
|
+
font: var(--font-size-base)/1.5 var(--font-sans);
|
|
9618
|
+
color: hsl(var(--muted-foreground));
|
|
9619
|
+
}
|
|
9620
|
+
.record-conversation .chat-row.selected {
|
|
9621
|
+
box-shadow: -10px 0 0 -8px var(--accent-text);
|
|
9622
|
+
}
|
|
9623
|
+
.record-conversation .chat-row.flagged {
|
|
9624
|
+
box-shadow: -10px 0 0 -8px hsl(var(--muted-foreground));
|
|
9625
|
+
}
|
|
9626
|
+
.record-conversation .chat-row > :is(.publication-note, .clip-note, .event-flags) {
|
|
9627
|
+
margin: 4px 0 8px;
|
|
9628
|
+
}
|
|
9629
|
+
.record-conversation .ar-prompt-more {
|
|
9630
|
+
display: flex;
|
|
9631
|
+
justify-content: flex-end;
|
|
9632
|
+
margin: 4px 0 0;
|
|
9633
|
+
}
|
|
9634
|
+
.record-conversation .tool-note {
|
|
9635
|
+
font: var(--font-size-sm)/20px var(--font-sans);
|
|
9636
|
+
color: hsl(var(--muted-foreground));
|
|
9637
|
+
white-space: nowrap;
|
|
9638
|
+
}
|
|
9639
|
+
.record-conversation .lifecycle-note {
|
|
9640
|
+
display: flex;
|
|
9641
|
+
gap: 8px;
|
|
9642
|
+
align-items: baseline;
|
|
9643
|
+
margin: 8px 0;
|
|
9644
|
+
padding: 0 12px;
|
|
9645
|
+
font: var(--font-size-sm)/1.5 var(--font-sans);
|
|
9646
|
+
color: hsl(var(--muted-foreground));
|
|
9647
|
+
}
|
|
9648
|
+
.record-conversation .lifecycle-note b {
|
|
9649
|
+
color: hsl(var(--foreground));
|
|
9650
|
+
font-weight: 600;
|
|
9651
|
+
}
|
|
9652
|
+
.record-conversation .lifecycle-note > span {
|
|
9653
|
+
min-width: 0;
|
|
9654
|
+
overflow-wrap: anywhere;
|
|
9655
|
+
}
|
|
9656
|
+
.record-conversation .poll-calls {
|
|
9657
|
+
margin: 0;
|
|
9658
|
+
padding: 4px 12px 8px;
|
|
9659
|
+
list-style: none;
|
|
9660
|
+
max-height: 18rem;
|
|
9661
|
+
overflow: auto;
|
|
9662
|
+
}
|
|
9663
|
+
.record-conversation .poll-calls li {
|
|
9664
|
+
display: flex;
|
|
9665
|
+
gap: 12px;
|
|
9666
|
+
padding: 2px 0;
|
|
9667
|
+
font: var(--font-size-sm)/1.5 var(--font-sans);
|
|
9668
|
+
color: hsl(var(--muted-foreground));
|
|
9669
|
+
}
|
|
9670
|
+
.record-conversation .poll-calls .mono {
|
|
9671
|
+
min-width: 0;
|
|
9672
|
+
overflow: hidden;
|
|
9673
|
+
text-overflow: ellipsis;
|
|
9674
|
+
white-space: nowrap;
|
|
9675
|
+
font-family: var(--font-mono);
|
|
9676
|
+
}
|
|
9677
|
+
.record-conversation .transcript-edge {
|
|
9678
|
+
display: flex;
|
|
9679
|
+
justify-content: center;
|
|
9680
|
+
gap: 16px;
|
|
9681
|
+
margin: 8px 0 0;
|
|
9682
|
+
}
|
|
9683
|
+
.record-conversation .publication-note {
|
|
9684
|
+
font: var(--font-size-sm)/1.4 var(--font-sans);
|
|
9685
|
+
color: hsl(var(--muted-foreground));
|
|
9686
|
+
overflow-wrap: anywhere;
|
|
9687
|
+
}
|
|
9688
|
+
.record-conversation .publication-note:empty {
|
|
9689
|
+
display: none;
|
|
9690
|
+
}
|
|
9691
|
+
.record-conversation .clip-note {
|
|
9692
|
+
display: flex;
|
|
9693
|
+
flex-wrap: wrap;
|
|
9694
|
+
gap: 8px;
|
|
9695
|
+
align-items: center;
|
|
9696
|
+
font: var(--font-size-sm)/1.5 var(--font-sans);
|
|
9697
|
+
color: hsl(var(--muted-foreground));
|
|
9698
|
+
}
|
|
9699
|
+
.record-conversation .event-flags {
|
|
9700
|
+
display: inline-flex;
|
|
9701
|
+
gap: 4px;
|
|
9702
|
+
margin-left: 8px;
|
|
9703
|
+
}
|
|
9704
|
+
.record-conversation .event-flag {
|
|
9705
|
+
padding: 0 4px;
|
|
9706
|
+
min-height: 0;
|
|
9707
|
+
border: 0;
|
|
9708
|
+
border-radius: var(--radius-control);
|
|
9709
|
+
font: 600 var(--font-size-sm)/1.6 var(--font-sans);
|
|
9710
|
+
cursor: pointer;
|
|
9711
|
+
}
|
|
9712
|
+
.record-conversation .event-flag.polarity-good {
|
|
9713
|
+
color: var(--accent-text);
|
|
9714
|
+
background: var(--accent-text);
|
|
9715
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
9716
|
+
background: color-mix(in srgb, var(--accent-text) 14%, transparent);
|
|
9717
|
+
}
|
|
9718
|
+
}
|
|
9719
|
+
.record-conversation .event-flag.polarity-bad {
|
|
9720
|
+
color: hsl(var(--muted-foreground));
|
|
9721
|
+
background: hsl(var(--muted-foreground));
|
|
9722
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
9723
|
+
background: color-mix(in srgb, hsl(var(--muted-foreground)) 14%, transparent);
|
|
9724
|
+
}
|
|
9725
|
+
}
|
|
9726
|
+
.record-conversation .event-flag.polarity-neutral {
|
|
9727
|
+
color: hsl(var(--foreground));
|
|
9728
|
+
background: hsl(var(--muted));
|
|
9729
|
+
}
|
|
9730
|
+
.record-conversation .event-flag:is(.polarity-unknown, .polarity-uncalibrated) {
|
|
9731
|
+
color: hsl(var(--muted-foreground));
|
|
9732
|
+
background: transparent;
|
|
9733
|
+
box-shadow: inset 0 0 0 1px hsl(var(--border));
|
|
9734
|
+
border-style: dashed;
|
|
9735
|
+
}
|
|
9736
|
+
.record-conversation .event-flag.polarity-none {
|
|
9737
|
+
color: hsl(var(--muted-foreground));
|
|
9738
|
+
background: transparent;
|
|
9739
|
+
}
|
|
9740
|
+
.record-conversation .link-button {
|
|
9741
|
+
display: inline;
|
|
9742
|
+
min-height: 0;
|
|
9743
|
+
padding: 0;
|
|
9744
|
+
border: 0;
|
|
9745
|
+
background: none;
|
|
9746
|
+
color: var(--accent-text);
|
|
9747
|
+
font: inherit;
|
|
9748
|
+
cursor: pointer;
|
|
9749
|
+
}
|
|
9750
|
+
.record-conversation .link-button:hover, .record-conversation .link-button:focus-visible {
|
|
9751
|
+
text-decoration: underline;
|
|
9752
|
+
}
|
|
9753
|
+
.record-conversation .ar-turn {
|
|
9754
|
+
display: flex;
|
|
9755
|
+
align-items: center;
|
|
9756
|
+
justify-content: space-between;
|
|
9757
|
+
gap: 16px;
|
|
9758
|
+
margin: 20px 0 8px;
|
|
9759
|
+
padding-top: 12px;
|
|
9760
|
+
border-top: 1px solid hsl(var(--border));
|
|
9761
|
+
}
|
|
9762
|
+
.record-conversation .ar-turn time, .record-conversation .ar-idle-event time {
|
|
9763
|
+
flex: none;
|
|
9764
|
+
color: hsl(var(--muted-foreground));
|
|
9765
|
+
font: var(--font-size-sm)/1.5 var(--font-sans);
|
|
9766
|
+
}
|
|
9767
|
+
.record-conversation .ar-idle-event {
|
|
9768
|
+
display: grid;
|
|
9769
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
9770
|
+
align-items: baseline;
|
|
9771
|
+
gap: 16px;
|
|
9772
|
+
padding: 4px 0;
|
|
9773
|
+
}
|
|
9605
9774
|
@property --tw-translate-x {
|
|
9606
9775
|
syntax: "*";
|
|
9607
9776
|
inherits: false;
|
package/dist/tailwind.css
CHANGED
|
@@ -960,9 +960,39 @@
|
|
|
960
960
|
.ag-frame-owner .ag-agent-card { flex-direction: row; align-items: center; gap: 16px; }
|
|
961
961
|
@container (width < 600px) {
|
|
962
962
|
.ag-latest header { float: none; width: auto; height: 24px; flex-direction: row; align-items: center; justify-content: start; gap: 8px; } .ag-latest header > button { margin-left: auto; }
|
|
963
|
-
.ag-latest ol { grid-template-columns: 1fr; margin-left: 0; height:
|
|
963
|
+
.ag-latest ol { grid-template-columns: 1fr; margin-left: 0; height: 64px; }
|
|
964
964
|
}
|
|
965
965
|
@media (pointer: coarse) { .ag-live-respond { min-height: 44px; min-width: 44px; } }
|
|
966
|
+
.record-conversation { height: 29rem; overflow: auto; scroll-behavior: auto; overscroll-behavior: contain; }
|
|
967
|
+
.record-conversation .virtual-row { display: flow-root; overflow-anchor: auto; }
|
|
968
|
+
.record-conversation .chat-empty { padding: 1rem; font: var(--font-size-base)/1.5 var(--font-sans); color: hsl(var(--muted-foreground)); }
|
|
969
|
+
.record-conversation .chat-row.selected { box-shadow: -10px 0 0 -8px var(--accent-text); }
|
|
970
|
+
.record-conversation .chat-row.flagged { box-shadow: -10px 0 0 -8px hsl(var(--muted-foreground)); }
|
|
971
|
+
.record-conversation .chat-row > :is(.publication-note, .clip-note, .event-flags) { margin: 4px 0 8px; }
|
|
972
|
+
.record-conversation .ar-prompt-more { display: flex; justify-content: flex-end; margin: 4px 0 0; }
|
|
973
|
+
.record-conversation .tool-note { font: var(--font-size-sm)/20px var(--font-sans); color: hsl(var(--muted-foreground)); white-space: nowrap; }
|
|
974
|
+
.record-conversation .lifecycle-note { display: flex; gap: 8px; align-items: baseline; margin: 8px 0; padding: 0 12px; font: var(--font-size-sm)/1.5 var(--font-sans); color: hsl(var(--muted-foreground)); }
|
|
975
|
+
.record-conversation .lifecycle-note b { color: hsl(var(--foreground)); font-weight: 600; }
|
|
976
|
+
.record-conversation .lifecycle-note > span { min-width: 0; overflow-wrap: anywhere; }
|
|
977
|
+
.record-conversation .poll-calls { margin: 0; padding: 4px 12px 8px; list-style: none; max-height: 18rem; overflow: auto; }
|
|
978
|
+
.record-conversation .poll-calls li { display: flex; gap: 12px; padding: 2px 0; font: var(--font-size-sm)/1.5 var(--font-sans); color: hsl(var(--muted-foreground)); }
|
|
979
|
+
.record-conversation .poll-calls .mono { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--font-mono); }
|
|
980
|
+
.record-conversation .transcript-edge { display: flex; justify-content: center; gap: 16px; margin: 8px 0 0; }
|
|
981
|
+
.record-conversation .publication-note { font: var(--font-size-sm)/1.4 var(--font-sans); color: hsl(var(--muted-foreground)); overflow-wrap: anywhere; }
|
|
982
|
+
.record-conversation .publication-note:empty { display: none; }
|
|
983
|
+
.record-conversation .clip-note { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font: var(--font-size-sm)/1.5 var(--font-sans); color: hsl(var(--muted-foreground)); }
|
|
984
|
+
.record-conversation .event-flags { display: inline-flex; gap: 4px; margin-left: 8px; }
|
|
985
|
+
.record-conversation .event-flag { padding: 0 4px; min-height: 0; border: 0; border-radius: var(--radius-control); font: 600 var(--font-size-sm)/1.6 var(--font-sans); cursor: pointer; }
|
|
986
|
+
.record-conversation .event-flag.polarity-good { color: var(--accent-text); background: color-mix(in srgb, var(--accent-text) 14%, transparent); }
|
|
987
|
+
.record-conversation .event-flag.polarity-bad { color: hsl(var(--muted-foreground)); background: color-mix(in srgb, hsl(var(--muted-foreground)) 14%, transparent); }
|
|
988
|
+
.record-conversation .event-flag.polarity-neutral { color: hsl(var(--foreground)); background: hsl(var(--muted)); }
|
|
989
|
+
.record-conversation .event-flag:is(.polarity-unknown, .polarity-uncalibrated) { color: hsl(var(--muted-foreground)); background: transparent; box-shadow: inset 0 0 0 1px hsl(var(--border)); border-style: dashed; }
|
|
990
|
+
.record-conversation .event-flag.polarity-none { color: hsl(var(--muted-foreground)); background: transparent; }
|
|
991
|
+
.record-conversation .link-button { display: inline; min-height: 0; padding: 0; border: 0; background: none; color: var(--accent-text); font: inherit; cursor: pointer; }
|
|
992
|
+
.record-conversation .link-button:hover, .record-conversation .link-button:focus-visible { text-decoration: underline; }
|
|
993
|
+
.record-conversation .ar-turn { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 20px 0 8px; padding-top: 12px; border-top: 1px solid hsl(var(--border)); }
|
|
994
|
+
.record-conversation .ar-turn time, .record-conversation .ar-idle-event time { flex: none; color: hsl(var(--muted-foreground)); font: var(--font-size-sm)/1.5 var(--font-sans); }
|
|
995
|
+
.record-conversation .ar-idle-event { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 16px; padding: 4px 0; }
|
|
966
996
|
|
|
967
997
|
/* Published sources: this package's dist and its @tangle-network/ui peer. */
|
|
968
998
|
@source "./**/*.js";
|
package/dist/workflows.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as modelBrandFor, t as ModelBrandStack } from "./model-brand-bTcMjQtB.js";
|
|
2
|
-
import { n as WorkflowGraph, t as AgentGraph } from "./AgentGraph-
|
|
3
|
-
import { C as actionNodeId, D as triggerNodeId, M as humanizeIdentifier, N as parseActionPath, O as triggerNodeIndex, P as shortModel, S as TRIGGER_NODE_ID, T as buildWorkflowGraph, c as STATUS_COLOR, d as STATUS_TONE, j as actionPathLabel, l as STATUS_LABEL, n as KIND_ICON, p as StatusPill, r as NodeMark, u as STATUS_PILL, w as branchNodeId } from "./node-ui-
|
|
2
|
+
import { n as WorkflowGraph, t as AgentGraph } from "./AgentGraph-CFlI9qta.js";
|
|
3
|
+
import { C as actionNodeId, D as triggerNodeId, M as humanizeIdentifier, N as parseActionPath, O as triggerNodeIndex, P as shortModel, S as TRIGGER_NODE_ID, T as buildWorkflowGraph, c as STATUS_COLOR, d as STATUS_TONE, j as actionPathLabel, l as STATUS_LABEL, n as KIND_ICON, p as StatusPill, r as NodeMark, u as STATUS_PILL, w as branchNodeId } from "./node-ui-D8dbX86X.js";
|
|
4
4
|
import { n as classifyOutput, r as condenseText, t as NodeOutputBody } from "./node-output-DlySTwxr.js";
|
|
5
5
|
export { AgentGraph, KIND_ICON, ModelBrandStack, NodeMark, NodeOutputBody, StatusPill as NodeStatusPill, STATUS_COLOR, STATUS_LABEL, STATUS_PILL, STATUS_TONE, TRIGGER_NODE_ID, WorkflowGraph as WorkflowGraphLazy, actionNodeId, actionPathLabel, branchNodeId, buildWorkflowGraph, classifyOutput, condenseText, humanizeIdentifier, modelBrandFor, parseActionPath, shortModel, triggerNodeId, triggerNodeIndex };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/sandbox-ui",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
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": {
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"@nanostores/react": ">=0.8.4 <2.0.0",
|
|
139
139
|
"@tangle-network/agent-interface": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^5.2.0",
|
|
140
140
|
"@tangle-network/brand": "^1.31.1",
|
|
141
|
-
"@tangle-network/charts": "^2.0.
|
|
141
|
+
"@tangle-network/charts": "^2.0.9",
|
|
142
142
|
"@tangle-network/ui": "^11.51.1",
|
|
143
143
|
"@tanstack/react-query": "^5.0.0",
|
|
144
144
|
"@tiptap/core": ">=3.20.4 <4.0.0",
|
|
@@ -237,7 +237,7 @@
|
|
|
237
237
|
"@tailwindcss/postcss": "^4.3.3",
|
|
238
238
|
"@tangle-network/agent-interface": "5.10.2",
|
|
239
239
|
"@tangle-network/brand": "^1.31.1",
|
|
240
|
-
"@tangle-network/charts": "^2.0.
|
|
240
|
+
"@tangle-network/charts": "^2.0.9",
|
|
241
241
|
"@tanstack/react-query": "^5.104.5",
|
|
242
242
|
"@testing-library/dom": "^10.4.2",
|
|
243
243
|
"@testing-library/jest-dom": "^7.0.1",
|
|
@@ -270,7 +270,8 @@
|
|
|
270
270
|
"typescript": "^7.0.2",
|
|
271
271
|
"vite": "^8.3.5",
|
|
272
272
|
"vitest": "^5.0.5",
|
|
273
|
-
"yjs": "^13.6.33"
|
|
273
|
+
"yjs": "^13.6.33",
|
|
274
|
+
"@drewstone/agent-record": "https://github.com/drewstone/agent-record/releases/download/v1.0.2/drewstone-agent-record-1.0.2.tgz"
|
|
274
275
|
},
|
|
275
276
|
"scripts": {
|
|
276
277
|
"build": "tsdown",
|
package/dist/index-DFNf9mJ2.d.ts
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { d as AgentGraphNode, n as AgentGraphProps } from "./AgentGraph-DzdpPFEI.js";
|
|
2
|
-
import { ReactNode } from "react";
|
|
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
|
-
import { FlowWaterfallProps } from "@tangle-network/charts/react";
|
|
5
|
-
import { FlowMarker, FlowSpan, FlowTrace } from "@tangle-network/charts";
|
|
6
|
-
/** Agent and model spans show their lab/host mark; tool spans show their provider's mark. Unknown keeps the kind glyph. */
|
|
7
|
-
declare function traceSpanMark(span: FlowSpan): ReactNode;
|
|
8
|
-
type TraceWaterfallProps = FlowWaterfallProps;
|
|
9
|
-
/**
|
|
10
|
-
* The run inspector: the agent timeline (`defaultView="agents"`) and the span waterfall over one clock, from
|
|
11
|
-
* `@tangle-network/charts`, with Sandbox UI's brand marks. Feed it `otlpFlowTrace(spans)` from the
|
|
12
|
-
* `traces convert` contract. Import `@tangle-network/charts/react/flow-waterfall.css` once.
|
|
13
|
-
*/
|
|
14
|
-
declare function TraceWaterfall({ renderIcon, ...props }: TraceWaterfallProps): import("react").JSX.Element;
|
|
15
|
-
/** A moment on the run's event track: a release, a check verdict, a spawn, a crash or a steer. */
|
|
16
|
-
interface TraceEvent extends FlowMarker {}
|
|
17
|
-
interface TraceWorkspaceProps extends Omit<TraceWaterfallProps, "trace" | "markers" | "onSelect" | "onTimeChange" | "selectedId" | "onDeselect" | "graph" | "latestEvents"> {
|
|
18
|
-
trace: FlowTrace;
|
|
19
|
-
/** The selected agent's message stream (Server-Sent Events: rows, reset, end; reconnects with ?after=lastSeq). */
|
|
20
|
-
streamUrl?: (agentId: string) => string;
|
|
21
|
-
events?: TraceEvent[];
|
|
22
|
-
/** The time the reader moved to, in trace ms; null while following live or showing the whole run. */
|
|
23
|
-
onTimeChange?: (t: number | null) => void;
|
|
24
|
-
/**
|
|
25
|
-
* The code workspace as of the cursor and scoped to the selected agent, usually a WorkspaceFilesPane: the page answers
|
|
26
|
-
* the as-of query. It spans the full width and at least 70% of the viewport. Keep its key on the commit so a scrub
|
|
27
|
-
* keeps its state.
|
|
28
|
-
*/
|
|
29
|
-
files?: ReactNode;
|
|
30
|
-
/** The scoreboard as of the cursor, under the code workspace; omitted when not given. */
|
|
31
|
-
scoreboard?: ReactNode;
|
|
32
|
-
selectedAgentId?: string;
|
|
33
|
-
/** Called with the agent the reader selected, or undefined when they close its drawer or press Escape. */
|
|
34
|
-
onSelectAgent?: (agentId: string | undefined) => void;
|
|
35
|
-
/**
|
|
36
|
-
* What the trace cannot say about a live agent, by agent id: its activity, thinking line, latest events, commits or
|
|
37
|
-
* result. Timed agents follow the trace cursor. Workers without recorded timing retain their live identity and metadata.
|
|
38
|
-
*/
|
|
39
|
-
agentCards?: Readonly<Record<string, Partial<AgentGraphNode>>>;
|
|
40
|
-
/** Existing graph layouts and recorded edges/tools; node identity and clock stay with this workspace. */
|
|
41
|
-
agentGraph?: Partial<Pick<AgentGraphProps, "edges" | "tools" | "calls" | "you" | "direction" | "title" | "className">> & {
|
|
42
|
-
defaultLayout?: AgentGraphProps["layout"];
|
|
43
|
-
};
|
|
44
|
-
className?: string;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* The run workspace: the agent timeline and span waterfall over one clock, the selected agent's conversation
|
|
48
|
-
* streaming in a right-hand drawer, and the page's code workspace and scoreboard following the time cursor. Scrubbing is time travel:
|
|
49
|
-
* every panel shows what was true at the cursor, and the conversation shows what had been said by then.
|
|
50
|
-
*/
|
|
51
|
-
declare function TraceWorkspace({ trace, streamUrl, events, onTimeChange, files, scoreboard, selectedAgentId, onSelectAgent, agentCards, agentGraph, className, ...waterfall }: TraceWorkspaceProps): import("react").JSX.Element;
|
|
52
|
-
/** One row of an agent's message stream (tangle-tools `/api/discovery/runs/<run>/agents/<agent>/stream`). */
|
|
53
|
-
interface AgentStreamRow {
|
|
54
|
-
seq: number;
|
|
55
|
-
/** ISO time the event happened. */
|
|
56
|
-
at: string;
|
|
57
|
-
stream?: string;
|
|
58
|
-
attempt?: number;
|
|
59
|
-
event: {
|
|
60
|
-
kind: "text" | "reasoning" | "tool-call" | "tool-result" | "user" | "notice" | (string & {});
|
|
61
|
-
text?: string;
|
|
62
|
-
/** A notice's origin: the agent's `delegated-input`, its `recorded-result`, or a capture fact such as `capture-unavailable`. */
|
|
63
|
-
provenance?: string;
|
|
64
|
-
toolCallId?: string;
|
|
65
|
-
toolName?: string;
|
|
66
|
-
args?: unknown;
|
|
67
|
-
result?: unknown;
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/** A transcript entry with the time it began, so a time cursor can show the conversation as of any moment. */
|
|
71
|
-
type AgentTranscriptEntry = {
|
|
72
|
-
id: string;
|
|
73
|
-
at: number;
|
|
74
|
-
kind: "message";
|
|
75
|
-
role: "assistant" | "user";
|
|
76
|
-
content: string;
|
|
77
|
-
sealed?: true;
|
|
78
|
-
} | {
|
|
79
|
-
id: string;
|
|
80
|
-
at: number;
|
|
81
|
-
kind: "reasoning";
|
|
82
|
-
text: string;
|
|
83
|
-
} | {
|
|
84
|
-
id: string;
|
|
85
|
-
at: number;
|
|
86
|
-
kind: "tool";
|
|
87
|
-
call: ToolCallData;
|
|
88
|
-
} | {
|
|
89
|
-
id: string;
|
|
90
|
-
at: number;
|
|
91
|
-
kind: "notice";
|
|
92
|
-
text: string;
|
|
93
|
-
};
|
|
94
|
-
interface AgentStreamState {
|
|
95
|
-
generation?: string | number;
|
|
96
|
-
entries: AgentTranscriptEntry[];
|
|
97
|
-
lastSeq: number;
|
|
98
|
-
/** The agent is still producing output. */
|
|
99
|
-
alive: boolean;
|
|
100
|
-
/** Why the stream shows nothing new; a reconnect that delivers rows clears it. */
|
|
101
|
-
error?: string;
|
|
102
|
-
}
|
|
103
|
-
/** Fold stream rows into transcript entries: text of one turn merges, a tool call becomes a row its result completes. */
|
|
104
|
-
declare function foldAgentRows(entries: AgentTranscriptEntry[], rows: readonly AgentStreamRow[]): AgentTranscriptEntry[];
|
|
105
|
-
/**
|
|
106
|
-
* Follow one agent's message stream over Server-Sent Events: `rows`, `reset` and `end` events, reconnecting with
|
|
107
|
-
* `?after=<lastSeq>` when the server closes the connection, so a long turn streams without gaps or repeats.
|
|
108
|
-
*/
|
|
109
|
-
declare function useAgentStream(url: string | undefined): AgentStreamState;
|
|
110
|
-
interface LatestEventsProps {
|
|
111
|
-
agents: readonly AgentGraphNode[];
|
|
112
|
-
n?: number;
|
|
113
|
-
now?: number;
|
|
114
|
-
/** Observe incoming status changes. Disable when scrubbing a trace without an epoch. */
|
|
115
|
-
live?: boolean;
|
|
116
|
-
selectedId?: string | null;
|
|
117
|
-
onSelect?: (id: string) => void;
|
|
118
|
-
}
|
|
119
|
-
/** Recorded events and locally observed state changes. Hover or focus holds the reading position. */
|
|
120
|
-
declare function LatestEvents({ agents, n, now, live, selectedId, onSelect }: LatestEventsProps): import("react").JSX.Element;
|
|
121
|
-
export { traceSpanMark as $, ToolCallData$1 as A, taskStatus as B, RunStatusIcon$1 as C, TaskListItem as D, TaskList as E, parseToolEvent as F, AgentTranscriptEntry as G, LatestEventsProps as H, runStatus$1 as I, TraceEvent as J, foldAgentRows as K, showsTaskPriority as L, ToolCallFeedProps as M, ToolCallStatus as N, TaskListProps as O, ToolCallType as P, TraceWaterfallProps as Q, statusMeta$1 as R, RunStatus as S, StatusMeta as T, AgentStreamRow as U, LatestEvents as V, AgentStreamState as W, TraceWorkspaceProps as X, TraceWorkspace as Y, TraceWaterfall as Z, 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$1 as l, RunGroup as m, ApprovalCardProps as n, ExpandedToolDetail as o, LiveDuration as p, useAgentStream 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, taskProgress as z };
|