@tangle-network/charts 0.21.10 → 0.21.12
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/react/flow-waterfall.css +12 -11
- package/dist/react/index.d.ts +3 -3
- package/dist/react/index.js +1 -1
- package/package.json +1 -1
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
/* Root agent neutral, then five agent hues. Each passes 3:1 against both surfaces as a mark. */
|
|
31
31
|
--fw-h0: light-dark(#6c6f84, #a3a6bb);
|
|
32
32
|
--fw-h1: light-dark(#4b55d6, #8f96ff);
|
|
33
|
-
|
|
33
|
+
/* No warm hue among the agents: amber is kept for the slowest and red for failure. */
|
|
34
|
+
--fw-h2: light-dark(#3d8a52, #6fcb8a);
|
|
34
35
|
--fw-h3: light-dark(#0b87a0, #35c2db);
|
|
35
36
|
--fw-h4: light-dark(#b0418a, #dc72bb);
|
|
36
37
|
--fw-h5: light-dark(#6d44c7, #ab8cf7);
|
|
@@ -249,7 +250,7 @@
|
|
|
249
250
|
/* Muted agents (the default): one quiet tone for every agent bar, its steps and handoffs; the slowest agent alone takes amber, and
|
|
250
251
|
failure keeps its red glyph, so color only ever means state. */
|
|
251
252
|
.fw-root.fw-fill-muted .fw-view-agents [data-tone] { --tone: var(--fw-h0); }
|
|
252
|
-
.fw-root.fw-fill-muted .fw-view-agents .fw-row[data-slowest], .fw-root.fw-fill-muted .fw-view-agents .fw-row[data-slowest] [data-tone] { --tone: var(--fw-amber); }
|
|
253
|
+
.fw-root:is(.fw-fill-muted, .fw-fill-agent) .fw-view-agents .fw-row[data-slowest], .fw-root:is(.fw-fill-muted, .fw-fill-agent) .fw-view-agents .fw-row[data-slowest] [data-tone] { --tone: var(--fw-amber); }
|
|
253
254
|
.fw-root [data-outcome="ok"], .fw-root [data-outcome="ok"] [data-tone] { --tone: var(--fw-ok); }
|
|
254
255
|
.fw-root [data-outcome="failed"], .fw-root [data-outcome="failed"] [data-tone] { --tone: var(--fw-failed); }
|
|
255
256
|
.fw-root [data-outcome="warn"], .fw-root [data-outcome="warn"] [data-tone] { --tone: var(--fw-amber); }
|
|
@@ -260,6 +261,9 @@
|
|
|
260
261
|
.fw-root .fw-legends .fw-legend { margin: 0; }
|
|
261
262
|
.fw-root .fw-kinds { margin: 0; padding: 0; justify-content: flex-start; color: var(--fw-muted); }
|
|
262
263
|
.fw-root .fw-kinds .fw-swatch-model { width: 12px; height: 8px; border-radius: 2px; background: var(--fw-kind-model); }
|
|
264
|
+
/* With per-agent hues the key shows kind as shade, as the bars do: darker for a model call, lighter for a tool call. */
|
|
265
|
+
.fw-root.fw-fill-agent .fw-kinds .fw-swatch-model { background: color-mix(in oklab, var(--fw-text) 58%, var(--fw-surface)); }
|
|
266
|
+
.fw-root.fw-fill-agent .fw-kinds .fw-swatch-tool { background: color-mix(in oklab, var(--fw-text) 24%, var(--fw-surface)); }
|
|
263
267
|
.fw-root .fw-kinds .fw-swatch-tool { width: 12px; height: 8px; border-radius: 2px; background: var(--fw-kind-tool); }
|
|
264
268
|
.fw-root .fw-kinds .fw-swatch-wait { width: 12px; height: 8px; border-radius: 2px; background: color-mix(in oklab, var(--fw-text) 12%, transparent); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--fw-text) 18%, transparent); }
|
|
265
269
|
.fw-root .fw-kinds .fw-swatch-handoff { width: 10px; height: 8px; border-left: 1.5px solid var(--fw-muted); border-bottom: 1.5px solid var(--fw-muted); border-bottom-left-radius: 3px; }
|
|
@@ -274,13 +278,14 @@
|
|
|
274
278
|
.fw-root .fw-view-agents .fw-seg { pointer-events: auto; }
|
|
275
279
|
.fw-root .fw-seg-model { background: var(--fill); box-shadow: inset 0 0 0 1px var(--line); }
|
|
276
280
|
.fw-root .fw-seg-tool { background: var(--dim); box-shadow: inset 0 0 0 1px var(--dim-line); }
|
|
277
|
-
/*
|
|
278
|
-
|
|
279
|
-
.fw-root .fw-view-agents .fw-seg-
|
|
281
|
+
/* Without per-agent hues (muted or outcome fill), a step's kind owns its color; with them, kind is the darker and lighter shade of the
|
|
282
|
+
agent's own hue (the rules above), so each agent stays one color. */
|
|
283
|
+
.fw-root:is(.fw-fill-muted, .fw-fill-outcome) .fw-view-agents .fw-seg-model { background: var(--fw-kind-model); box-shadow: none; }
|
|
284
|
+
.fw-root:is(.fw-fill-muted, .fw-fill-outcome) .fw-view-agents .fw-seg-tool { background: var(--fw-kind-tool); box-shadow: none; }
|
|
280
285
|
.fw-root .fw-view-agents .fw-seg-tool { container-type: inline-size; justify-content: flex-start; }
|
|
281
|
-
.fw-root .fw-seg-name { padding: 0 6px; overflow: hidden; white-space: nowrap; text-overflow:
|
|
286
|
+
.fw-root .fw-seg-name { padding: 0 6px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 11px; line-height: 16px; font-weight: 600; color: light-dark(#fff, #06222b); pointer-events: none; }
|
|
282
287
|
@container (max-width: 56px) { .fw-root .fw-seg-name { display: none; } }
|
|
283
|
-
.fw-root .fw-view-agents .fw-seg-alt.fw-seg-model, .fw-
|
|
288
|
+
.fw-root:is(.fw-fill-muted, .fw-fill-outcome) .fw-view-agents :is(.fw-seg-alt.fw-seg-model, .fw-seg-alt.fw-seg-tool) { filter: brightness(.88); }
|
|
284
289
|
.fw-root .fw-seg-failed { background: color-mix(in oklab, var(--fw-failed) 18%, var(--fw-surface)); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--fw-failed) 70%, transparent); color: var(--fw-failed); }
|
|
285
290
|
/* In the agent view a failed turn draws like any turn; the agent's own failure shows once, by its name and its end label. */
|
|
286
291
|
.fw-root .fw-view-agents .fw-seg-failed { background: var(--dim); box-shadow: inset 0 0 0 1px var(--dim-line); }
|
|
@@ -316,10 +321,6 @@
|
|
|
316
321
|
|
|
317
322
|
/* Span card */
|
|
318
323
|
.fw-root .fw-card-anchor { display: contents; }
|
|
319
|
-
/* Agent view: the card docks under the lanes instead of floating over the plot (judges: "covers the data it describes"). */
|
|
320
|
-
/* Two classes on the root so these win over the base .fw-root .fw-card rule that follows. */
|
|
321
|
-
.fw-root.fw-root-agents .fw-card-anchor { display: block; padding: 0 24px 12px; }
|
|
322
|
-
.fw-root.fw-root-agents .fw-card, .fw-root.fw-root-agents .fw-card-above .fw-card { position: relative; left: auto !important; top: auto !important; transform: none; animation-name: fw-arrive; width: auto; max-width: 560px; }
|
|
323
324
|
.fw-root .fw-seg-alt { filter: brightness(.78); }
|
|
324
325
|
/* Agent view: the scrubber track shows how far the run has played, so at rest it reads full, not empty. */
|
|
325
326
|
.fw-root.fw-root-agents .fw-slider { background: linear-gradient(90deg, color-mix(in oklab, var(--fw-text) 32%, transparent) var(--fw-progress), var(--fw-well) var(--fw-progress)) 0 50% / 100% 4px no-repeat; }
|
package/dist/react/index.d.ts
CHANGED
|
@@ -399,9 +399,9 @@ interface FlowWaterfallProps {
|
|
|
399
399
|
markers?: FlowMarker[];
|
|
400
400
|
/** The time the reader moved to, in trace ms; `null` when following live or showing the whole trace. */
|
|
401
401
|
onTimeChange?: (t: number | null) => void;
|
|
402
|
-
/** What an agent bar's color means.
|
|
403
|
-
*
|
|
404
|
-
*
|
|
402
|
+
/** What an agent bar's color means. `agent` (default): each agent or family its own muted hue across dot, bar and handoffs, with
|
|
403
|
+
* model and tool steps as darker and lighter shades of it; the outcome stays on the row dot and amber marks the slowest (blind round
|
|
404
|
+
* 25: global step hues made agents blur together). `muted`: one quiet tone, color on state only. `outcome`: the bar takes its outcome. */
|
|
405
405
|
agentFill?: 'muted' | 'outcome' | 'agent';
|
|
406
406
|
/** One line beside the title saying what the run was for, such as its goal. */
|
|
407
407
|
description?: string;
|
package/dist/react/index.js
CHANGED
|
@@ -4496,7 +4496,7 @@ function FlowWaterfall({ trace, live, startedAt, label = "Trace waterfall", defa
|
|
|
4496
4496
|
const [laneElement, setLaneElement] = useState(null);
|
|
4497
4497
|
const observedTotal = Number.isFinite(trace.totalMs) && trace.totalMs >= 0 ? trace.totalMs : 0;
|
|
4498
4498
|
const isLive = live ?? trace.spans.some(spanRunning);
|
|
4499
|
-
const agentFill = fillProp ??
|
|
4499
|
+
const agentFill = fillProp ?? "agent";
|
|
4500
4500
|
const dataEnd = useMemo(() => Math.max(observedTotal, ...trace.spans.map((span) => Number.isFinite(span.endMs) ? span.endMs : 0)), [trace, observedTotal]);
|
|
4501
4501
|
const trackPx = Math.max(40, laneWidth - LANE_PAD - Math.min(END_LABEL_GUTTER[view], laneWidth * .3));
|
|
4502
4502
|
useEffect(() => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/charts",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.12",
|
|
4
4
|
"description": "Static SVG and HTML figures for benchmarks and operational timing. Draws from producer data and refuses what it cannot draw honestly.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|