@tangle-network/sandbox-ui 1.1.2 → 1.1.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/{AgentGraph-CWW3Zx1N.js → AgentGraph-DJEQrKTs.js} +2 -2
- package/dist/{AgentGraphCanvas-D7jjAE6i.js → AgentGraphCanvas-CMdOlSlh.js} +19 -12
- package/dist/{WorkflowGraph-DYsP_Kcg.js → WorkflowGraph-DZ3xejKE.js} +1 -1
- package/dist/globals.css +242 -5
- package/dist/index.js +1 -1
- package/dist/{run-C91XKDrv.js → run-2128n_Cm.js} +1 -1
- package/dist/run.js +1 -1
- package/dist/styles.css +242 -5
- package/dist/tailwind.css +44 -0
- package/dist/workflows.js +1 -1
- package/package.json +3 -3
|
@@ -2618,7 +2618,7 @@ function retryImport(factory, retries = 2, delayMs = 350) {
|
|
|
2618
2618
|
});
|
|
2619
2619
|
}
|
|
2620
2620
|
function lazyWorkflowGraph() {
|
|
2621
|
-
return lazy(() => retryImport(() => import("./WorkflowGraph-
|
|
2621
|
+
return lazy(() => retryImport(() => import("./WorkflowGraph-DZ3xejKE.js").then((m) => ({ default: m.WorkflowGraph }))));
|
|
2622
2622
|
}
|
|
2623
2623
|
var GraphErrorBoundary = class extends Component {
|
|
2624
2624
|
state = { hasError: false };
|
|
@@ -2678,7 +2678,7 @@ function WorkflowGraph(props) {
|
|
|
2678
2678
|
* taking the pane down.
|
|
2679
2679
|
*/
|
|
2680
2680
|
function lazyCanvas() {
|
|
2681
|
-
return lazy(() => retryImport(() => import("./AgentGraphCanvas-
|
|
2681
|
+
return lazy(() => retryImport(() => import("./AgentGraphCanvas-CMdOlSlh.js").then((m) => ({ default: m.AgentGraphCanvas }))));
|
|
2682
2682
|
}
|
|
2683
2683
|
/** The agents as a list, for when the canvas cannot load. */
|
|
2684
2684
|
function AgentListFallback({ nodes, selectedId, onSelect, className, onRetry }) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as MOTION_CONTROL } from "./motion-Bn7ESHrj.js";
|
|
2
|
-
import { T as statusBorder, U as fmtTokenTotal, V as fmtCost, a as useColorMode, c as NodeMark, d as RESTING_BORDER, f as RESTING_SHADOW, i as motionAllowed, o as KIND_ACCENT, p as STATUS_COLOR, r as SELECTION_OUTLINE, y as edgeColor } from "./AgentGraph-
|
|
2
|
+
import { T as statusBorder, U as fmtTokenTotal, V as fmtCost, a as useColorMode, c as NodeMark, d as RESTING_BORDER, f as RESTING_SHADOW, i as motionAllowed, o as KIND_ACCENT, p as STATUS_COLOR, r as SELECTION_OUTLINE, y as edgeColor } from "./AgentGraph-DJEQrKTs.js";
|
|
3
3
|
import { t as loadElk } from "./elk-loader-Dl9S7jQk.js";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -596,11 +596,7 @@ function AgentMessageEdgeView({ id, source, target, data, markerEnd }) {
|
|
|
596
596
|
}) })] });
|
|
597
597
|
}
|
|
598
598
|
// src/workflows/agent-live-card.tsx
|
|
599
|
-
const SETTLED = /* @__PURE__ */ new Set([
|
|
600
|
-
"succeeded",
|
|
601
|
-
"failed",
|
|
602
|
-
"stopped"
|
|
603
|
-
]);
|
|
599
|
+
const SETTLED = /* @__PURE__ */ new Set(["succeeded", "stopped"]);
|
|
604
600
|
const EVENT_GLYPHS = [
|
|
605
601
|
[/^(bash|sh|run|exec|cargo|npm|pnpm|make)\b/, Terminal],
|
|
606
602
|
[/^(edit|write|patch|apply)\b/, Pencil],
|
|
@@ -611,6 +607,13 @@ const EVENT_GLYPHS = [
|
|
|
611
607
|
[/^(wait|sleep|queue)\b/, Hourglass]
|
|
612
608
|
];
|
|
613
609
|
const eventGlyph = (label) => EVENT_GLYPHS.find(([match]) => match.test(label.toLowerCase()))?.[1] ?? Sparkles;
|
|
610
|
+
function clockTime(at) {
|
|
611
|
+
return at == null || !Number.isFinite(at) ? void 0 : new Date(at).toLocaleTimeString([], {
|
|
612
|
+
hour: "2-digit",
|
|
613
|
+
minute: "2-digit",
|
|
614
|
+
hourCycle: "h23"
|
|
615
|
+
});
|
|
616
|
+
}
|
|
614
617
|
function ago(at, now) {
|
|
615
618
|
if (at == null || !Number.isFinite(at)) return void 0;
|
|
616
619
|
const s = Math.max(0, Math.round((now - at) / 1e3));
|
|
@@ -640,7 +643,8 @@ function useNow(fixed, live) {
|
|
|
640
643
|
function LiveAgentCard({ data }) {
|
|
641
644
|
const { agent, selected, direction } = data;
|
|
642
645
|
const settled = SETTLED.has(agent.status);
|
|
643
|
-
const
|
|
646
|
+
const failed = agent.status === "failed";
|
|
647
|
+
const now = useNow(data.now, !settled && !failed);
|
|
644
648
|
const s = agentStatus(agent.status);
|
|
645
649
|
const alive = aliveFor(agent.startedAt, now);
|
|
646
650
|
if (settled) return /* @__PURE__ */ jsxs("div", {
|
|
@@ -725,7 +729,10 @@ function LiveAgentCard({ data }) {
|
|
|
725
729
|
})
|
|
726
730
|
]
|
|
727
731
|
}),
|
|
728
|
-
/* @__PURE__ */ jsx("p", {
|
|
732
|
+
failed ? /* @__PURE__ */ jsx("p", {
|
|
733
|
+
className: "ag-live-thinking ag-live-failure",
|
|
734
|
+
children: agent.result ?? events.at(-1)?.label ?? s.label
|
|
735
|
+
}) : /* @__PURE__ */ jsx("p", {
|
|
729
736
|
className: "ag-live-thinking",
|
|
730
737
|
children: agent.turn || /* @__PURE__ */ jsx("span", {
|
|
731
738
|
className: "ag-live-quiet",
|
|
@@ -737,7 +744,7 @@ function LiveAgentCard({ data }) {
|
|
|
737
744
|
"aria-label": "Latest events",
|
|
738
745
|
children: events.map((event) => {
|
|
739
746
|
const Glyph = eventGlyph(event.label);
|
|
740
|
-
const when = ago(event.at, now);
|
|
747
|
+
const when = failed ? clockTime(event.at) : ago(event.at, now);
|
|
741
748
|
return /* @__PURE__ */ jsxs("li", { children: [
|
|
742
749
|
/* @__PURE__ */ jsx(Glyph, {
|
|
743
750
|
"aria-hidden": true,
|
|
@@ -1002,7 +1009,7 @@ function AgentGraphCanvas({ nodes, edges, selectedId, onSelect, direction = "TB"
|
|
|
1002
1009
|
className: `flex items-center justify-center rounded-lg border border-border border-dashed p-4 text-center text-muted-foreground text-xs ${className ?? ""}`,
|
|
1003
1010
|
children: emptyState ?? "No agents yet"
|
|
1004
1011
|
});
|
|
1005
|
-
return /* @__PURE__ */
|
|
1012
|
+
return /* @__PURE__ */ jsx("div", {
|
|
1006
1013
|
ref: (el) => {
|
|
1007
1014
|
wrapperRef.current = el;
|
|
1008
1015
|
measureCanvas(el);
|
|
@@ -1010,7 +1017,7 @@ function AgentGraphCanvas({ nodes, edges, selectedId, onSelect, direction = "TB"
|
|
|
1010
1017
|
className: `agent-graph${live ? " ag-live" : ""} relative transition-opacity duration-150 ease-out motion-reduce:transition-none ${layout && shown ? "opacity-100" : "opacity-0"} ${className ?? ""}`,
|
|
1011
1018
|
"data-layout": layout && shown ? "ready" : "pending",
|
|
1012
1019
|
"data-columns": layout?.columns,
|
|
1013
|
-
children:
|
|
1020
|
+
children: /* @__PURE__ */ jsxs(ReactFlow, {
|
|
1014
1021
|
nodes: flowNodes,
|
|
1015
1022
|
edges: flowEdges,
|
|
1016
1023
|
nodeTypes: NODE_TYPES,
|
|
@@ -1066,7 +1073,7 @@ function AgentGraphCanvas({ nodes, edges, selectedId, onSelect, direction = "TB"
|
|
|
1066
1073
|
}
|
|
1067
1074
|
})
|
|
1068
1075
|
]
|
|
1069
|
-
})
|
|
1076
|
+
})
|
|
1070
1077
|
});
|
|
1071
1078
|
}
|
|
1072
1079
|
export { AgentGraphCanvas };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as buildWorkflowGraph, B as clampPreview, C as problemSurface, E as COMPACT_NODE_SIZE, F as worstSeverity, H as fmtDuration, N as triggerNodeIndex, P as wfEdgeId, S as problemBorder, T as statusBorder, V as fmtCost, W as fmtTokens, _ as StatusFooter, a as useColorMode, b as emptySlotLabel, c as NodeMark, d as RESTING_BORDER, f as RESTING_SHADOW, i as motionAllowed, j as isStructuralKind, l as ProblemMarker, m as STATUS_LABEL, p as STATUS_COLOR, r as SELECTION_OUTLINE, u as ProblemMessages, v as StatusPill, w as problemTitle, x as kindAccent, y as edgeColor, z as shortModel } from "./AgentGraph-
|
|
1
|
+
import { A as buildWorkflowGraph, B as clampPreview, C as problemSurface, E as COMPACT_NODE_SIZE, F as worstSeverity, H as fmtDuration, N as triggerNodeIndex, P as wfEdgeId, S as problemBorder, T as statusBorder, V as fmtCost, W as fmtTokens, _ as StatusFooter, a as useColorMode, b as emptySlotLabel, c as NodeMark, d as RESTING_BORDER, f as RESTING_SHADOW, i as motionAllowed, j as isStructuralKind, l as ProblemMarker, m as STATUS_LABEL, p as STATUS_COLOR, r as SELECTION_OUTLINE, u as ProblemMessages, v as StatusPill, w as problemTitle, x as kindAccent, y as edgeColor, z as shortModel } from "./AgentGraph-DJEQrKTs.js";
|
|
2
2
|
import { n as classifyOutput, t as NodeOutputBody } from "./node-output-DlySTwxr.js";
|
|
3
3
|
import { t as loadElk } from "./elk-loader-Dl9S7jQk.js";
|
|
4
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
package/dist/globals.css
CHANGED
|
@@ -78,7 +78,6 @@
|
|
|
78
78
|
--radius-xl: 12px;
|
|
79
79
|
--radius-2xl: 1rem;
|
|
80
80
|
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
81
|
-
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
82
81
|
--animate-spin: spin 1s linear infinite;
|
|
83
82
|
--animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
|
|
84
83
|
--animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
@@ -4490,10 +4489,6 @@
|
|
|
4490
4489
|
--tw-duration: var(--transition-fast);
|
|
4491
4490
|
transition-duration: var(--transition-fast);
|
|
4492
4491
|
}
|
|
4493
|
-
.ease-in-out {
|
|
4494
|
-
--tw-ease: var(--ease-in-out);
|
|
4495
|
-
transition-timing-function: var(--ease-in-out);
|
|
4496
|
-
}
|
|
4497
4492
|
.ease-out {
|
|
4498
4493
|
--tw-ease: var(--ease-out);
|
|
4499
4494
|
transition-timing-function: var(--ease-out);
|
|
@@ -8701,6 +8696,248 @@
|
|
|
8701
8696
|
.tangle-prose th:not(:first-child), .tangle-prose td:not(:first-child) {
|
|
8702
8697
|
border-left: 1px solid var(--border-subtle);
|
|
8703
8698
|
}
|
|
8699
|
+
.ag-live {
|
|
8700
|
+
--ag-fg: hsl(var(--foreground));
|
|
8701
|
+
--ag-muted: hsl(var(--muted-foreground));
|
|
8702
|
+
--ag-surface: hsl(var(--card));
|
|
8703
|
+
--ag-border: hsl(var(--border));
|
|
8704
|
+
}
|
|
8705
|
+
.ag-live .ag-live-card {
|
|
8706
|
+
position: relative;
|
|
8707
|
+
display: flex;
|
|
8708
|
+
flex-direction: column;
|
|
8709
|
+
gap: 8px;
|
|
8710
|
+
width: 100%;
|
|
8711
|
+
height: 100%;
|
|
8712
|
+
padding: 12px;
|
|
8713
|
+
border: 1px solid var(--ag-border);
|
|
8714
|
+
border-radius: 14px;
|
|
8715
|
+
background: var(--ag-surface);
|
|
8716
|
+
color: var(--ag-fg);
|
|
8717
|
+
cursor: pointer;
|
|
8718
|
+
overflow: hidden;
|
|
8719
|
+
animation: ag-live-grow 420ms cubic-bezier(.2,.8,.2,1) both;
|
|
8720
|
+
transform-origin: 50% 0;
|
|
8721
|
+
transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms cubic-bezier(.2,.8,.2,1);
|
|
8722
|
+
}
|
|
8723
|
+
.ag-live .ag-live-card:hover {
|
|
8724
|
+
transform: translateY(-1px);
|
|
8725
|
+
}
|
|
8726
|
+
.ag-live .ag-live-card[data-status="running"]::before {
|
|
8727
|
+
content: "";
|
|
8728
|
+
position: absolute;
|
|
8729
|
+
inset: 0 0 auto;
|
|
8730
|
+
height: 2px;
|
|
8731
|
+
background: linear-gradient(90deg, transparent, var(--ag-status), transparent);
|
|
8732
|
+
background-size: 40% 100%;
|
|
8733
|
+
background-repeat: no-repeat;
|
|
8734
|
+
animation: ag-live-sheen 2.4s ease-in-out infinite;
|
|
8735
|
+
}
|
|
8736
|
+
.ag-live .ag-live-head {
|
|
8737
|
+
display: flex;
|
|
8738
|
+
align-items: center;
|
|
8739
|
+
gap: 8px;
|
|
8740
|
+
min-width: 0;
|
|
8741
|
+
}
|
|
8742
|
+
.ag-live .ag-live-names {
|
|
8743
|
+
display: flex;
|
|
8744
|
+
flex-direction: column;
|
|
8745
|
+
min-width: 0;
|
|
8746
|
+
flex: 1;
|
|
8747
|
+
}
|
|
8748
|
+
.ag-live .ag-live-name {
|
|
8749
|
+
font-size: 14px;
|
|
8750
|
+
line-height: 18px;
|
|
8751
|
+
font-weight: 600;
|
|
8752
|
+
letter-spacing: -.01em;
|
|
8753
|
+
white-space: nowrap;
|
|
8754
|
+
overflow: hidden;
|
|
8755
|
+
text-overflow: ellipsis;
|
|
8756
|
+
}
|
|
8757
|
+
.ag-live .ag-live-meta, .ag-live .ag-live-stats {
|
|
8758
|
+
font-size: 11px;
|
|
8759
|
+
line-height: 14px;
|
|
8760
|
+
color: var(--ag-muted);
|
|
8761
|
+
white-space: nowrap;
|
|
8762
|
+
overflow: hidden;
|
|
8763
|
+
text-overflow: ellipsis;
|
|
8764
|
+
}
|
|
8765
|
+
.ag-live .ag-live-stats {
|
|
8766
|
+
display: flex;
|
|
8767
|
+
flex-direction: column;
|
|
8768
|
+
align-items: flex-end;
|
|
8769
|
+
gap: 2px;
|
|
8770
|
+
font-variant-numeric: tabular-nums;
|
|
8771
|
+
flex: none;
|
|
8772
|
+
}
|
|
8773
|
+
.ag-live .ag-live-pill {
|
|
8774
|
+
display: inline-flex;
|
|
8775
|
+
align-items: center;
|
|
8776
|
+
gap: 4px;
|
|
8777
|
+
height: 16px;
|
|
8778
|
+
padding: 0 6px;
|
|
8779
|
+
border-radius: 8px;
|
|
8780
|
+
font-weight: 600;
|
|
8781
|
+
color: var(--ag-status);
|
|
8782
|
+
background: var(--ag-status);
|
|
8783
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
8784
|
+
background: color-mix(in oklab, var(--ag-status) 14%, transparent);
|
|
8785
|
+
}
|
|
8786
|
+
}
|
|
8787
|
+
.ag-live .ag-live-dot {
|
|
8788
|
+
width: 6px;
|
|
8789
|
+
height: 6px;
|
|
8790
|
+
border-radius: 50%;
|
|
8791
|
+
background: var(--ag-status);
|
|
8792
|
+
}
|
|
8793
|
+
.ag-live [data-status="running"] .ag-live-dot {
|
|
8794
|
+
animation: ag-live-breathe 1.6s ease-in-out infinite;
|
|
8795
|
+
}
|
|
8796
|
+
.ag-live .ag-live-thinking {
|
|
8797
|
+
flex: none;
|
|
8798
|
+
margin: 0;
|
|
8799
|
+
font-size: 13px;
|
|
8800
|
+
line-height: 17px;
|
|
8801
|
+
display: -webkit-box;
|
|
8802
|
+
-webkit-line-clamp: 2;
|
|
8803
|
+
-webkit-box-orient: vertical;
|
|
8804
|
+
overflow: hidden;
|
|
8805
|
+
animation: ag-live-in 260ms ease-out both;
|
|
8806
|
+
}
|
|
8807
|
+
.ag-live .ag-live-quiet {
|
|
8808
|
+
color: var(--ag-muted);
|
|
8809
|
+
}
|
|
8810
|
+
.ag-live .ag-live-failure {
|
|
8811
|
+
color: var(--ag-status);
|
|
8812
|
+
}
|
|
8813
|
+
.ag-live .ag-live-events {
|
|
8814
|
+
margin: auto 0 0;
|
|
8815
|
+
padding: 0;
|
|
8816
|
+
list-style: none;
|
|
8817
|
+
display: flex;
|
|
8818
|
+
flex-direction: column;
|
|
8819
|
+
}
|
|
8820
|
+
.ag-live .ag-live-events li {
|
|
8821
|
+
display: flex;
|
|
8822
|
+
align-items: center;
|
|
8823
|
+
gap: 6px;
|
|
8824
|
+
height: 16px;
|
|
8825
|
+
font: 11px/16px var(--font-mono, ui-monospace, monospace);
|
|
8826
|
+
color: var(--ag-muted);
|
|
8827
|
+
animation: ag-live-in 260ms cubic-bezier(.2,.8,.2,1) both;
|
|
8828
|
+
}
|
|
8829
|
+
.ag-live .ag-live-events li svg {
|
|
8830
|
+
flex: none;
|
|
8831
|
+
opacity: .8;
|
|
8832
|
+
}
|
|
8833
|
+
.ag-live .ag-live-events li:nth-last-child(3) {
|
|
8834
|
+
opacity: .55;
|
|
8835
|
+
}
|
|
8836
|
+
.ag-live .ag-live-events li:nth-last-child(2) {
|
|
8837
|
+
opacity: .8;
|
|
8838
|
+
}
|
|
8839
|
+
.ag-live .ag-live-events li:last-child {
|
|
8840
|
+
color: var(--ag-fg);
|
|
8841
|
+
animation: ag-live-in 260ms cubic-bezier(.2,.8,.2,1) both, ag-live-flash 1.2s ease-out both;
|
|
8842
|
+
}
|
|
8843
|
+
.ag-live .ag-live-event-label {
|
|
8844
|
+
flex: 1;
|
|
8845
|
+
min-width: 0;
|
|
8846
|
+
white-space: nowrap;
|
|
8847
|
+
overflow: hidden;
|
|
8848
|
+
text-overflow: ellipsis;
|
|
8849
|
+
}
|
|
8850
|
+
.ag-live .ag-live-event-at {
|
|
8851
|
+
flex: none;
|
|
8852
|
+
font-family: inherit;
|
|
8853
|
+
color: var(--ag-muted);
|
|
8854
|
+
font-variant-numeric: tabular-nums;
|
|
8855
|
+
}
|
|
8856
|
+
.ag-live .ag-live-slot {
|
|
8857
|
+
display: flex;
|
|
8858
|
+
align-items: center;
|
|
8859
|
+
justify-content: center;
|
|
8860
|
+
width: 100%;
|
|
8861
|
+
height: 100%;
|
|
8862
|
+
}
|
|
8863
|
+
.ag-live .ag-live-chip {
|
|
8864
|
+
display: inline-flex;
|
|
8865
|
+
align-items: center;
|
|
8866
|
+
gap: 8px;
|
|
8867
|
+
max-width: 100%;
|
|
8868
|
+
height: 32px;
|
|
8869
|
+
padding: 0 12px;
|
|
8870
|
+
border: 1px solid var(--ag-border);
|
|
8871
|
+
border-radius: 16px;
|
|
8872
|
+
background: var(--ag-surface);
|
|
8873
|
+
color: var(--ag-muted);
|
|
8874
|
+
font-size: 12px;
|
|
8875
|
+
cursor: pointer;
|
|
8876
|
+
animation: ag-live-settle 320ms cubic-bezier(.2,.8,.2,1) both;
|
|
8877
|
+
}
|
|
8878
|
+
.ag-live .ag-live-chip-name {
|
|
8879
|
+
color: var(--ag-fg);
|
|
8880
|
+
font-weight: 600;
|
|
8881
|
+
white-space: nowrap;
|
|
8882
|
+
overflow: hidden;
|
|
8883
|
+
text-overflow: ellipsis;
|
|
8884
|
+
}
|
|
8885
|
+
.ag-live .ag-live-chip-result {
|
|
8886
|
+
color: var(--ag-fg);
|
|
8887
|
+
font-weight: 500;
|
|
8888
|
+
line-height: 16px;
|
|
8889
|
+
white-space: nowrap;
|
|
8890
|
+
overflow: hidden;
|
|
8891
|
+
text-overflow: ellipsis;
|
|
8892
|
+
}
|
|
8893
|
+
@keyframes ag-live-sheen {
|
|
8894
|
+
from {
|
|
8895
|
+
background-position: -40% 0;
|
|
8896
|
+
}
|
|
8897
|
+
to {
|
|
8898
|
+
background-position: 140% 0;
|
|
8899
|
+
}
|
|
8900
|
+
}
|
|
8901
|
+
@keyframes ag-live-breathe {
|
|
8902
|
+
50% {
|
|
8903
|
+
opacity: .35;
|
|
8904
|
+
transform: scale(.8);
|
|
8905
|
+
}
|
|
8906
|
+
}
|
|
8907
|
+
@keyframes ag-live-flash {
|
|
8908
|
+
from {
|
|
8909
|
+
background: color-mix(in oklab, var(--ag-status) 16%, transparent);
|
|
8910
|
+
}
|
|
8911
|
+
to {
|
|
8912
|
+
background: transparent;
|
|
8913
|
+
}
|
|
8914
|
+
}
|
|
8915
|
+
@keyframes ag-live-grow {
|
|
8916
|
+
from {
|
|
8917
|
+
opacity: 0;
|
|
8918
|
+
transform: scale(.92) translateY(-8px);
|
|
8919
|
+
}
|
|
8920
|
+
}
|
|
8921
|
+
@keyframes ag-live-in {
|
|
8922
|
+
from {
|
|
8923
|
+
opacity: 0;
|
|
8924
|
+
transform: translateY(6px);
|
|
8925
|
+
}
|
|
8926
|
+
}
|
|
8927
|
+
@keyframes ag-live-settle {
|
|
8928
|
+
from {
|
|
8929
|
+
opacity: 1;
|
|
8930
|
+
transform: scale(1.08);
|
|
8931
|
+
}
|
|
8932
|
+
}
|
|
8933
|
+
@media (prefers-reduced-motion: reduce) {
|
|
8934
|
+
.ag-live *, .ag-live *::before {
|
|
8935
|
+
animation: none !important;
|
|
8936
|
+
}
|
|
8937
|
+
.ag-live .ag-live-card:hover {
|
|
8938
|
+
transform: none;
|
|
8939
|
+
}
|
|
8940
|
+
}
|
|
8704
8941
|
@property --tw-translate-x {
|
|
8705
8942
|
syntax: "*";
|
|
8706
8943
|
inherits: false;
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import { a as CodeSurface, i as CODE_THEME, n as buildUnifiedPatch, r as compute
|
|
|
13
13
|
import { n as PreviewView, t as EmbeddedAppView } from "./embedded-app-view-DXsoPale.js";
|
|
14
14
|
import { OPENUI_NODE_JSON_SCHEMA, OPENUI_NODE_TYPES, OpenUIArtifactRenderer, findUnsupportedOpenUINode, validateOpenUIJsonArtifact, validateOpenUIJsonNode } from "./openui.js";
|
|
15
15
|
import { a as MessageList, c as UserMessage, d as modelProvider, f as snapHarnessToModel, g as ReasoningLevelPicker, h as HARNESS_REASONING_OPTIONS, i as MessageAuthor, l as isViewerMessage, m as DEFAULT_REASONING_LEVEL_OPTIONS, n as ChatContainer, o as TRANSCRIPT_TEXT, p as AgentProfilePicker, r as ChatMessage, s as ThinkingIndicator, t as AgentTimeline, u as ArtifactAgentDock } from "./chat-4OZD23RA.js";
|
|
16
|
-
import { _ as TraceWorkspace, a as InlineToolItem, b as TraceWaterfall, c as RunPhaseList, d as TaskList, f as ToolCallFeed, g as taskStatus, h as taskProgress, i as InlineThinkingItem, l as RunRowShell, m as showsTaskPriority, n as ApprovalDiffSummary, o as LiveDuration, p as parseToolEvent, r as ExpandedToolDetail, s as RunGroup, t as ApprovalCard, u as RunRowStatusDot, v as foldAgentRows, x as traceSpanMark, y as useAgentStream } from "./run-
|
|
16
|
+
import { _ as TraceWorkspace, a as InlineToolItem, b as TraceWaterfall, c as RunPhaseList, d as TaskList, f as ToolCallFeed, g as taskStatus, h as taskProgress, i as InlineThinkingItem, l as RunRowShell, m as showsTaskPriority, n as ApprovalDiffSummary, o as LiveDuration, p as parseToolEvent, r as ExpandedToolDetail, s as RunGroup, t as ApprovalCard, u as RunRowStatusDot, v as foldAgentRows, x as traceSpanMark, y as useAgentStream } from "./run-2128n_Cm.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,7 +1,7 @@
|
|
|
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 { t as AgentGraph } from "./AgentGraph-
|
|
4
|
+
import { t as AgentGraph } from "./AgentGraph-DJEQrKTs.js";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState } from "react";
|
|
7
7
|
import { X } from "lucide-react";
|
package/dist/run.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as ApprovalCard, n as ApprovalDiffSummary, r as ExpandedToolDetail, i as InlineThinkingItem, a as InlineToolItem, o as LiveDuration, s as RunGroup, c as RunPhaseList, l as RunRowShell, u as RunRowStatusDot, d as TaskList, f as ToolCallFeed, b as TraceWaterfall, _ as TraceWorkspace, v as foldAgentRows, p as parseToolEvent, m as showsTaskPriority, h as taskProgress, g as taskStatus, x as traceSpanMark, y as useAgentStream } from "./run-
|
|
1
|
+
export { t as ApprovalCard, n as ApprovalDiffSummary, r as ExpandedToolDetail, i as InlineThinkingItem, a as InlineToolItem, o as LiveDuration, s as RunGroup, c as RunPhaseList, l as RunRowShell, u as RunRowStatusDot, d as TaskList, f as ToolCallFeed, b as TraceWaterfall, _ as TraceWorkspace, v as foldAgentRows, p as parseToolEvent, m as showsTaskPriority, h as taskProgress, g as taskStatus, x as traceSpanMark, y as useAgentStream } from "./run-2128n_Cm.js";
|
package/dist/styles.css
CHANGED
|
@@ -78,7 +78,6 @@
|
|
|
78
78
|
--radius-xl: 12px;
|
|
79
79
|
--radius-2xl: 1rem;
|
|
80
80
|
--ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
81
|
-
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
82
81
|
--animate-spin: spin 1s linear infinite;
|
|
83
82
|
--animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
|
|
84
83
|
--animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
@@ -4490,10 +4489,6 @@
|
|
|
4490
4489
|
--tw-duration: var(--transition-fast);
|
|
4491
4490
|
transition-duration: var(--transition-fast);
|
|
4492
4491
|
}
|
|
4493
|
-
.ease-in-out {
|
|
4494
|
-
--tw-ease: var(--ease-in-out);
|
|
4495
|
-
transition-timing-function: var(--ease-in-out);
|
|
4496
|
-
}
|
|
4497
4492
|
.ease-out {
|
|
4498
4493
|
--tw-ease: var(--ease-out);
|
|
4499
4494
|
transition-timing-function: var(--ease-out);
|
|
@@ -8701,6 +8696,248 @@
|
|
|
8701
8696
|
.tangle-prose th:not(:first-child), .tangle-prose td:not(:first-child) {
|
|
8702
8697
|
border-left: 1px solid var(--border-subtle);
|
|
8703
8698
|
}
|
|
8699
|
+
.ag-live {
|
|
8700
|
+
--ag-fg: hsl(var(--foreground));
|
|
8701
|
+
--ag-muted: hsl(var(--muted-foreground));
|
|
8702
|
+
--ag-surface: hsl(var(--card));
|
|
8703
|
+
--ag-border: hsl(var(--border));
|
|
8704
|
+
}
|
|
8705
|
+
.ag-live .ag-live-card {
|
|
8706
|
+
position: relative;
|
|
8707
|
+
display: flex;
|
|
8708
|
+
flex-direction: column;
|
|
8709
|
+
gap: 8px;
|
|
8710
|
+
width: 100%;
|
|
8711
|
+
height: 100%;
|
|
8712
|
+
padding: 12px;
|
|
8713
|
+
border: 1px solid var(--ag-border);
|
|
8714
|
+
border-radius: 14px;
|
|
8715
|
+
background: var(--ag-surface);
|
|
8716
|
+
color: var(--ag-fg);
|
|
8717
|
+
cursor: pointer;
|
|
8718
|
+
overflow: hidden;
|
|
8719
|
+
animation: ag-live-grow 420ms cubic-bezier(.2,.8,.2,1) both;
|
|
8720
|
+
transform-origin: 50% 0;
|
|
8721
|
+
transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms cubic-bezier(.2,.8,.2,1);
|
|
8722
|
+
}
|
|
8723
|
+
.ag-live .ag-live-card:hover {
|
|
8724
|
+
transform: translateY(-1px);
|
|
8725
|
+
}
|
|
8726
|
+
.ag-live .ag-live-card[data-status="running"]::before {
|
|
8727
|
+
content: "";
|
|
8728
|
+
position: absolute;
|
|
8729
|
+
inset: 0 0 auto;
|
|
8730
|
+
height: 2px;
|
|
8731
|
+
background: linear-gradient(90deg, transparent, var(--ag-status), transparent);
|
|
8732
|
+
background-size: 40% 100%;
|
|
8733
|
+
background-repeat: no-repeat;
|
|
8734
|
+
animation: ag-live-sheen 2.4s ease-in-out infinite;
|
|
8735
|
+
}
|
|
8736
|
+
.ag-live .ag-live-head {
|
|
8737
|
+
display: flex;
|
|
8738
|
+
align-items: center;
|
|
8739
|
+
gap: 8px;
|
|
8740
|
+
min-width: 0;
|
|
8741
|
+
}
|
|
8742
|
+
.ag-live .ag-live-names {
|
|
8743
|
+
display: flex;
|
|
8744
|
+
flex-direction: column;
|
|
8745
|
+
min-width: 0;
|
|
8746
|
+
flex: 1;
|
|
8747
|
+
}
|
|
8748
|
+
.ag-live .ag-live-name {
|
|
8749
|
+
font-size: 14px;
|
|
8750
|
+
line-height: 18px;
|
|
8751
|
+
font-weight: 600;
|
|
8752
|
+
letter-spacing: -.01em;
|
|
8753
|
+
white-space: nowrap;
|
|
8754
|
+
overflow: hidden;
|
|
8755
|
+
text-overflow: ellipsis;
|
|
8756
|
+
}
|
|
8757
|
+
.ag-live .ag-live-meta, .ag-live .ag-live-stats {
|
|
8758
|
+
font-size: 11px;
|
|
8759
|
+
line-height: 14px;
|
|
8760
|
+
color: var(--ag-muted);
|
|
8761
|
+
white-space: nowrap;
|
|
8762
|
+
overflow: hidden;
|
|
8763
|
+
text-overflow: ellipsis;
|
|
8764
|
+
}
|
|
8765
|
+
.ag-live .ag-live-stats {
|
|
8766
|
+
display: flex;
|
|
8767
|
+
flex-direction: column;
|
|
8768
|
+
align-items: flex-end;
|
|
8769
|
+
gap: 2px;
|
|
8770
|
+
font-variant-numeric: tabular-nums;
|
|
8771
|
+
flex: none;
|
|
8772
|
+
}
|
|
8773
|
+
.ag-live .ag-live-pill {
|
|
8774
|
+
display: inline-flex;
|
|
8775
|
+
align-items: center;
|
|
8776
|
+
gap: 4px;
|
|
8777
|
+
height: 16px;
|
|
8778
|
+
padding: 0 6px;
|
|
8779
|
+
border-radius: 8px;
|
|
8780
|
+
font-weight: 600;
|
|
8781
|
+
color: var(--ag-status);
|
|
8782
|
+
background: var(--ag-status);
|
|
8783
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
8784
|
+
background: color-mix(in oklab, var(--ag-status) 14%, transparent);
|
|
8785
|
+
}
|
|
8786
|
+
}
|
|
8787
|
+
.ag-live .ag-live-dot {
|
|
8788
|
+
width: 6px;
|
|
8789
|
+
height: 6px;
|
|
8790
|
+
border-radius: 50%;
|
|
8791
|
+
background: var(--ag-status);
|
|
8792
|
+
}
|
|
8793
|
+
.ag-live [data-status="running"] .ag-live-dot {
|
|
8794
|
+
animation: ag-live-breathe 1.6s ease-in-out infinite;
|
|
8795
|
+
}
|
|
8796
|
+
.ag-live .ag-live-thinking {
|
|
8797
|
+
flex: none;
|
|
8798
|
+
margin: 0;
|
|
8799
|
+
font-size: 13px;
|
|
8800
|
+
line-height: 17px;
|
|
8801
|
+
display: -webkit-box;
|
|
8802
|
+
-webkit-line-clamp: 2;
|
|
8803
|
+
-webkit-box-orient: vertical;
|
|
8804
|
+
overflow: hidden;
|
|
8805
|
+
animation: ag-live-in 260ms ease-out both;
|
|
8806
|
+
}
|
|
8807
|
+
.ag-live .ag-live-quiet {
|
|
8808
|
+
color: var(--ag-muted);
|
|
8809
|
+
}
|
|
8810
|
+
.ag-live .ag-live-failure {
|
|
8811
|
+
color: var(--ag-status);
|
|
8812
|
+
}
|
|
8813
|
+
.ag-live .ag-live-events {
|
|
8814
|
+
margin: auto 0 0;
|
|
8815
|
+
padding: 0;
|
|
8816
|
+
list-style: none;
|
|
8817
|
+
display: flex;
|
|
8818
|
+
flex-direction: column;
|
|
8819
|
+
}
|
|
8820
|
+
.ag-live .ag-live-events li {
|
|
8821
|
+
display: flex;
|
|
8822
|
+
align-items: center;
|
|
8823
|
+
gap: 6px;
|
|
8824
|
+
height: 16px;
|
|
8825
|
+
font: 11px/16px var(--font-mono, ui-monospace, monospace);
|
|
8826
|
+
color: var(--ag-muted);
|
|
8827
|
+
animation: ag-live-in 260ms cubic-bezier(.2,.8,.2,1) both;
|
|
8828
|
+
}
|
|
8829
|
+
.ag-live .ag-live-events li svg {
|
|
8830
|
+
flex: none;
|
|
8831
|
+
opacity: .8;
|
|
8832
|
+
}
|
|
8833
|
+
.ag-live .ag-live-events li:nth-last-child(3) {
|
|
8834
|
+
opacity: .55;
|
|
8835
|
+
}
|
|
8836
|
+
.ag-live .ag-live-events li:nth-last-child(2) {
|
|
8837
|
+
opacity: .8;
|
|
8838
|
+
}
|
|
8839
|
+
.ag-live .ag-live-events li:last-child {
|
|
8840
|
+
color: var(--ag-fg);
|
|
8841
|
+
animation: ag-live-in 260ms cubic-bezier(.2,.8,.2,1) both, ag-live-flash 1.2s ease-out both;
|
|
8842
|
+
}
|
|
8843
|
+
.ag-live .ag-live-event-label {
|
|
8844
|
+
flex: 1;
|
|
8845
|
+
min-width: 0;
|
|
8846
|
+
white-space: nowrap;
|
|
8847
|
+
overflow: hidden;
|
|
8848
|
+
text-overflow: ellipsis;
|
|
8849
|
+
}
|
|
8850
|
+
.ag-live .ag-live-event-at {
|
|
8851
|
+
flex: none;
|
|
8852
|
+
font-family: inherit;
|
|
8853
|
+
color: var(--ag-muted);
|
|
8854
|
+
font-variant-numeric: tabular-nums;
|
|
8855
|
+
}
|
|
8856
|
+
.ag-live .ag-live-slot {
|
|
8857
|
+
display: flex;
|
|
8858
|
+
align-items: center;
|
|
8859
|
+
justify-content: center;
|
|
8860
|
+
width: 100%;
|
|
8861
|
+
height: 100%;
|
|
8862
|
+
}
|
|
8863
|
+
.ag-live .ag-live-chip {
|
|
8864
|
+
display: inline-flex;
|
|
8865
|
+
align-items: center;
|
|
8866
|
+
gap: 8px;
|
|
8867
|
+
max-width: 100%;
|
|
8868
|
+
height: 32px;
|
|
8869
|
+
padding: 0 12px;
|
|
8870
|
+
border: 1px solid var(--ag-border);
|
|
8871
|
+
border-radius: 16px;
|
|
8872
|
+
background: var(--ag-surface);
|
|
8873
|
+
color: var(--ag-muted);
|
|
8874
|
+
font-size: 12px;
|
|
8875
|
+
cursor: pointer;
|
|
8876
|
+
animation: ag-live-settle 320ms cubic-bezier(.2,.8,.2,1) both;
|
|
8877
|
+
}
|
|
8878
|
+
.ag-live .ag-live-chip-name {
|
|
8879
|
+
color: var(--ag-fg);
|
|
8880
|
+
font-weight: 600;
|
|
8881
|
+
white-space: nowrap;
|
|
8882
|
+
overflow: hidden;
|
|
8883
|
+
text-overflow: ellipsis;
|
|
8884
|
+
}
|
|
8885
|
+
.ag-live .ag-live-chip-result {
|
|
8886
|
+
color: var(--ag-fg);
|
|
8887
|
+
font-weight: 500;
|
|
8888
|
+
line-height: 16px;
|
|
8889
|
+
white-space: nowrap;
|
|
8890
|
+
overflow: hidden;
|
|
8891
|
+
text-overflow: ellipsis;
|
|
8892
|
+
}
|
|
8893
|
+
@keyframes ag-live-sheen {
|
|
8894
|
+
from {
|
|
8895
|
+
background-position: -40% 0;
|
|
8896
|
+
}
|
|
8897
|
+
to {
|
|
8898
|
+
background-position: 140% 0;
|
|
8899
|
+
}
|
|
8900
|
+
}
|
|
8901
|
+
@keyframes ag-live-breathe {
|
|
8902
|
+
50% {
|
|
8903
|
+
opacity: .35;
|
|
8904
|
+
transform: scale(.8);
|
|
8905
|
+
}
|
|
8906
|
+
}
|
|
8907
|
+
@keyframes ag-live-flash {
|
|
8908
|
+
from {
|
|
8909
|
+
background: color-mix(in oklab, var(--ag-status) 16%, transparent);
|
|
8910
|
+
}
|
|
8911
|
+
to {
|
|
8912
|
+
background: transparent;
|
|
8913
|
+
}
|
|
8914
|
+
}
|
|
8915
|
+
@keyframes ag-live-grow {
|
|
8916
|
+
from {
|
|
8917
|
+
opacity: 0;
|
|
8918
|
+
transform: scale(.92) translateY(-8px);
|
|
8919
|
+
}
|
|
8920
|
+
}
|
|
8921
|
+
@keyframes ag-live-in {
|
|
8922
|
+
from {
|
|
8923
|
+
opacity: 0;
|
|
8924
|
+
transform: translateY(6px);
|
|
8925
|
+
}
|
|
8926
|
+
}
|
|
8927
|
+
@keyframes ag-live-settle {
|
|
8928
|
+
from {
|
|
8929
|
+
opacity: 1;
|
|
8930
|
+
transform: scale(1.08);
|
|
8931
|
+
}
|
|
8932
|
+
}
|
|
8933
|
+
@media (prefers-reduced-motion: reduce) {
|
|
8934
|
+
.ag-live *, .ag-live *::before {
|
|
8935
|
+
animation: none !important;
|
|
8936
|
+
}
|
|
8937
|
+
.ag-live .ag-live-card:hover {
|
|
8938
|
+
transform: none;
|
|
8939
|
+
}
|
|
8940
|
+
}
|
|
8704
8941
|
@property --tw-translate-x {
|
|
8705
8942
|
syntax: "*";
|
|
8706
8943
|
inherits: false;
|
package/dist/tailwind.css
CHANGED
|
@@ -893,6 +893,50 @@
|
|
|
893
893
|
border-left: 1px solid var(--border-subtle);
|
|
894
894
|
}
|
|
895
895
|
|
|
896
|
+
/* AgentGraph live cards, scoped under `.ag-live` on the package theme tokens. Type 11/12/13/14 px, 4 px grid. */
|
|
897
|
+
.ag-live { --ag-fg: hsl(var(--foreground)); --ag-muted: hsl(var(--muted-foreground)); --ag-surface: hsl(var(--card)); --ag-border: hsl(var(--border)); }
|
|
898
|
+
.ag-live .ag-live-card { position: relative; display: flex; flex-direction: column; gap: 8px; width: 100%; height: 100%; padding: 12px; border: 1px solid var(--ag-border);
|
|
899
|
+
border-radius: 14px; background: var(--ag-surface); color: var(--ag-fg); cursor: pointer; overflow: hidden; animation: ag-live-grow 420ms cubic-bezier(.2,.8,.2,1) both; transform-origin: 50% 0;
|
|
900
|
+
transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms cubic-bezier(.2,.8,.2,1); }
|
|
901
|
+
.ag-live .ag-live-card:hover { transform: translateY(-1px); }
|
|
902
|
+
/* A running agent's card carries a thin travelling sheen along its top edge: work in progress without a glowing border. */
|
|
903
|
+
.ag-live .ag-live-card[data-status="running"]::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px;
|
|
904
|
+
background: linear-gradient(90deg, transparent, var(--ag-status), transparent); background-size: 40% 100%; background-repeat: no-repeat; animation: ag-live-sheen 2.4s ease-in-out infinite; }
|
|
905
|
+
.ag-live .ag-live-head { display: flex; align-items: center; gap: 8px; min-width: 0; }
|
|
906
|
+
.ag-live .ag-live-names { display: flex; flex-direction: column; min-width: 0; flex: 1; }
|
|
907
|
+
.ag-live .ag-live-name { font-size: 14px; line-height: 18px; font-weight: 600; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
908
|
+
.ag-live .ag-live-meta, .ag-live .ag-live-stats { font-size: 11px; line-height: 14px; color: var(--ag-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
909
|
+
.ag-live .ag-live-stats { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-variant-numeric: tabular-nums; flex: none; }
|
|
910
|
+
.ag-live .ag-live-pill { display: inline-flex; align-items: center; gap: 4px; height: 16px; padding: 0 6px; border-radius: 8px; font-weight: 600; color: var(--ag-status);
|
|
911
|
+
background: color-mix(in oklab, var(--ag-status) 14%, transparent); }
|
|
912
|
+
.ag-live .ag-live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ag-status); }
|
|
913
|
+
.ag-live [data-status="running"] .ag-live-dot { animation: ag-live-breathe 1.6s ease-in-out infinite; }
|
|
914
|
+
.ag-live .ag-live-thinking { flex: none; margin: 0; font-size: 13px; line-height: 17px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; animation: ag-live-in 260ms ease-out both; }
|
|
915
|
+
.ag-live .ag-live-quiet { color: var(--ag-muted); }
|
|
916
|
+
.ag-live .ag-live-failure { color: var(--ag-status); }
|
|
917
|
+
.ag-live .ag-live-events { margin: auto 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
|
|
918
|
+
.ag-live .ag-live-events li { display: flex; align-items: center; gap: 6px; height: 16px; font: 11px/16px var(--font-mono, ui-monospace, monospace); color: var(--ag-muted);
|
|
919
|
+
animation: ag-live-in 260ms cubic-bezier(.2,.8,.2,1) both; }
|
|
920
|
+
.ag-live .ag-live-events li svg { flex: none; opacity: .8; }
|
|
921
|
+
/* Older lines fade back so the newest reads first, as a log tail does. */
|
|
922
|
+
.ag-live .ag-live-events li:nth-last-child(3) { opacity: .55; }
|
|
923
|
+
.ag-live .ag-live-events li:nth-last-child(2) { opacity: .8; }
|
|
924
|
+
.ag-live .ag-live-events li:last-child { color: var(--ag-fg); animation: ag-live-in 260ms cubic-bezier(.2,.8,.2,1) both, ag-live-flash 1.2s ease-out both; }
|
|
925
|
+
.ag-live .ag-live-event-label { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
926
|
+
.ag-live .ag-live-event-at { flex: none; font-family: inherit; color: var(--ag-muted); font-variant-numeric: tabular-nums; }
|
|
927
|
+
.ag-live .ag-live-slot { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
|
|
928
|
+
.ag-live .ag-live-chip { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; height: 32px; padding: 0 12px; border: 1px solid var(--ag-border); border-radius: 16px;
|
|
929
|
+
background: var(--ag-surface); color: var(--ag-muted); font-size: 12px; cursor: pointer; animation: ag-live-settle 320ms cubic-bezier(.2,.8,.2,1) both; }
|
|
930
|
+
.ag-live .ag-live-chip-name { color: var(--ag-fg); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
931
|
+
.ag-live .ag-live-chip-result { color: var(--ag-fg); font-weight: 500; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
932
|
+
@keyframes ag-live-sheen { from { background-position: -40% 0; } to { background-position: 140% 0; } }
|
|
933
|
+
@keyframes ag-live-breathe { 50% { opacity: .35; transform: scale(.8); } }
|
|
934
|
+
@keyframes ag-live-flash { from { background: color-mix(in oklab, var(--ag-status) 16%, transparent); } to { background: transparent; } }
|
|
935
|
+
@keyframes ag-live-grow { from { opacity: 0; transform: scale(.92) translateY(-8px); } }
|
|
936
|
+
@keyframes ag-live-in { from { opacity: 0; transform: translateY(6px); } }
|
|
937
|
+
@keyframes ag-live-settle { from { opacity: 1; transform: scale(1.08); } }
|
|
938
|
+
@media (prefers-reduced-motion: reduce) { .ag-live *, .ag-live *::before { animation: none !important; } .ag-live .ag-live-card:hover { transform: none; } }
|
|
939
|
+
|
|
896
940
|
/* Published sources: this package's dist and its @tangle-network/ui peer. */
|
|
897
941
|
@source "./**/*.js";
|
|
898
942
|
@source "../../ui/dist/**/*.js";
|
package/dist/workflows.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { i as modelBrandFor, t as ModelBrandStack } from "./model-brand-bTcMjQtB.js";
|
|
2
|
-
import { A as buildWorkflowGraph, D as TRIGGER_NODE_ID, I as actionPathLabel, L as humanizeIdentifier, M as triggerNodeId, N as triggerNodeIndex, O as actionNodeId, R as parseActionPath, c as NodeMark, g as STATUS_TONE, h as STATUS_PILL, k as branchNodeId, m as STATUS_LABEL, n as WorkflowGraph, p as STATUS_COLOR, s as KIND_ICON, t as AgentGraph, v as StatusPill, z as shortModel } from "./AgentGraph-
|
|
2
|
+
import { A as buildWorkflowGraph, D as TRIGGER_NODE_ID, I as actionPathLabel, L as humanizeIdentifier, M as triggerNodeId, N as triggerNodeIndex, O as actionNodeId, R as parseActionPath, c as NodeMark, g as STATUS_TONE, h as STATUS_PILL, k as branchNodeId, m as STATUS_LABEL, n as WorkflowGraph, p as STATUS_COLOR, s as KIND_ICON, t as AgentGraph, v as StatusPill, z as shortModel } from "./AgentGraph-DJEQrKTs.js";
|
|
3
3
|
import { n as classifyOutput, r as condenseText, t as NodeOutputBody } from "./node-output-DlySTwxr.js";
|
|
4
4
|
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": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
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.29.0",
|
|
141
|
-
"@tangle-network/charts": "^0.21.
|
|
141
|
+
"@tangle-network/charts": "^0.21.20",
|
|
142
142
|
"@tangle-network/ui": "^11.45.0",
|
|
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.7.1",
|
|
239
239
|
"@tangle-network/brand": "1.29.0",
|
|
240
|
-
"@tangle-network/charts": "^0.21.
|
|
240
|
+
"@tangle-network/charts": "^0.21.20",
|
|
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",
|