@tangle-network/charts 0.21.8 → 0.21.9
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 +7 -5
- package/dist/react/index.js +25 -8
- package/package.json +1 -1
|
@@ -191,7 +191,9 @@
|
|
|
191
191
|
.fw-root .fw-view-agents .fw-label { padding-left: 16px; gap: 12px; border-right: 0; }
|
|
192
192
|
.fw-root .fw-view-agents .fw-names { flex-direction: column; align-items: flex-start; gap: 0; }
|
|
193
193
|
.fw-root .fw-view-agents .fw-span-name { font-weight: 600; line-height: 18px; }
|
|
194
|
-
|
|
194
|
+
/* One 16 px line that wraps its last part out of sight: when the line is full the tool count drops whole, never "7 to…". */
|
|
195
|
+
.fw-root .fw-view-agents .fw-subtitle { display: flex; flex-wrap: wrap; align-items: center; column-gap: 4px; height: 16px; overflow: hidden; max-width: 100%; min-width: 0; color: var(--fw-muted); font-size: 12px; line-height: 16px; }
|
|
196
|
+
.fw-root .fw-view-agents .fw-subtitle-extra { flex: none; white-space: nowrap; }
|
|
195
197
|
.fw-root .fw-view-agents .fw-subtitle-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
196
198
|
.fw-root .fw-view-agents .fw-detail-icon { flex: none; width: 16px; height: 16px; align-items: center; justify-content: center; overflow: hidden; }
|
|
197
199
|
.fw-root .fw-view-agents .fw-detail { font-size: 12px; line-height: 16px; }
|
|
@@ -233,8 +235,8 @@
|
|
|
233
235
|
.fw-root .fw-bar.fw-k-pipeline.fw-has-marks { background: color-mix(in oklab, var(--tone) 9%, transparent); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--tone) 18%, transparent); }
|
|
234
236
|
.fw-root .fw-bar.fw-k-pipeline.fw-has-agents { background: repeating-linear-gradient(-45deg, var(--fw-hatch) 0 1px, transparent 1px 5px), color-mix(in oklab, var(--fw-text) 4%, transparent); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--fw-text) 12%, transparent); }
|
|
235
237
|
/* An agent bar with no child marks says who it is by its lane color, never a neutral grey. */
|
|
236
|
-
/* In the agent view the bar's own extent between steps is waiting:
|
|
237
|
-
.fw-root .fw-view-agents .fw-bar.fw-k-pipeline.fw-has-marks { background:
|
|
238
|
+
/* In the agent view the bar's own extent between steps is waiting: a flat faint fill under the step segments (long hatching read muddy). */
|
|
239
|
+
.fw-root .fw-view-agents .fw-bar.fw-k-pipeline.fw-has-marks { background: color-mix(in oklab, var(--tone) 12%, transparent); }
|
|
238
240
|
/* An agent lane is a tint of its color; full saturation is kept for its model and tool segments and its status dot, so a run never
|
|
239
241
|
reads as a wall of colored slabs. */
|
|
240
242
|
.fw-root .fw-view-agents .fw-bar.fw-k-pipeline:not(.fw-has-marks, .fw-has-agents) { background: color-mix(in oklab, var(--tone) 30%, var(--fw-surface)); box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--tone) 55%, transparent); }
|
|
@@ -308,8 +310,8 @@
|
|
|
308
310
|
.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; }
|
|
309
311
|
.fw-root .fw-seg-alt { filter: brightness(.78); }
|
|
310
312
|
/* Agent view: the scrubber track shows how far the run has played, so at rest it reads full, not empty. */
|
|
311
|
-
.fw-root.fw-root-agents .fw-slider { background: linear-gradient(90deg, var(--fw-
|
|
312
|
-
/* The playhead: a round knob on a
|
|
313
|
+
.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; }
|
|
314
|
+
/* The playhead: a round knob on a thin neutral track, visible at rest without outweighing the chart. */
|
|
313
315
|
.fw-root.fw-root-agents .fw-slider::-webkit-slider-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--fw-text); box-shadow: 0 0 0 3px var(--fw-surface); }
|
|
314
316
|
.fw-root.fw-root-agents .fw-slider::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--fw-text); box-shadow: 0 0 0 3px var(--fw-surface); }
|
|
315
317
|
.fw-root .fw-card { position: absolute; z-index: 20; width: 320px; padding: 12px; border-radius: 12px; background: var(--fw-raised); border: 1px solid var(--fw-border);
|
package/dist/react/index.js
CHANGED
|
@@ -2833,6 +2833,11 @@ function agentSummary(row) {
|
|
|
2833
2833
|
tools ? `${tools} tool ${tools === 1 ? "call" : "calls"}` : ""
|
|
2834
2834
|
].filter(Boolean).join(" · ");
|
|
2835
2835
|
}
|
|
2836
|
+
/** The summary split where it may be cut: the tool count goes first when the line does not fit, never half a word. */
|
|
2837
|
+
function agentSummaryParts(row) {
|
|
2838
|
+
const tools = / · (\d+ tool calls?)$/.exec(agentSummary(row));
|
|
2839
|
+
return tools ? [agentSummary(row).slice(0, tools.index), tools[1]] : [agentSummary(row)];
|
|
2840
|
+
}
|
|
2836
2841
|
/**
|
|
2837
2842
|
* The agent view's rows: families folded until opened, and an opened agent's own steps (its turns and tool calls, not its
|
|
2838
2843
|
* child agents) nested beneath it with their icons, durations and costs, as a reader drills from the run into one agent.
|
|
@@ -3322,6 +3327,7 @@ const FlowRow = memo(function FlowRow(props) {
|
|
|
3322
3327
|
const kind = !row.ok ? "failed" : row.kind;
|
|
3323
3328
|
const marks = isAgent || row.hasChildren || row.id.startsWith("run:") ? folded && !agentView ? row.segments : row.own : [];
|
|
3324
3329
|
const label = endLabel(row, clockMs);
|
|
3330
|
+
const summary = agentSummaryParts(row);
|
|
3325
3331
|
const inspect = (event) => props.onInspect(row.id, event.currentTarget);
|
|
3326
3332
|
const family = agentView && row.id.startsWith("family:");
|
|
3327
3333
|
const step = agentView && row.stepOf !== void 0;
|
|
@@ -3393,6 +3399,10 @@ const FlowRow = memo(function FlowRow(props) {
|
|
|
3393
3399
|
className: "fw-toggle-space",
|
|
3394
3400
|
"aria-hidden": true
|
|
3395
3401
|
})),
|
|
3402
|
+
agentView && !opens && /* @__PURE__ */ jsx("span", {
|
|
3403
|
+
className: "fw-toggle-space",
|
|
3404
|
+
"aria-hidden": true
|
|
3405
|
+
}),
|
|
3396
3406
|
(!agentView || step) && /* @__PURE__ */ jsx("span", {
|
|
3397
3407
|
className: "fw-icon-tile",
|
|
3398
3408
|
"aria-hidden": true,
|
|
@@ -3429,14 +3439,21 @@ const FlowRow = memo(function FlowRow(props) {
|
|
|
3429
3439
|
]
|
|
3430
3440
|
}), agentView && /* @__PURE__ */ jsxs("span", {
|
|
3431
3441
|
className: "fw-subtitle",
|
|
3432
|
-
children: [
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3442
|
+
children: [
|
|
3443
|
+
renderIcon && /* @__PURE__ */ jsx("span", {
|
|
3444
|
+
className: "fw-detail-icon",
|
|
3445
|
+
"aria-hidden": true,
|
|
3446
|
+
children: renderIcon(span)
|
|
3447
|
+
}),
|
|
3448
|
+
/* @__PURE__ */ jsx("span", {
|
|
3449
|
+
className: "fw-subtitle-text",
|
|
3450
|
+
children: span.detail && span.detail !== props.sharedDetail ? `${span.detail} · ${summary[0]}` : summary[0]
|
|
3451
|
+
}),
|
|
3452
|
+
summary[1] && /* @__PURE__ */ jsxs("span", {
|
|
3453
|
+
className: "fw-subtitle-extra",
|
|
3454
|
+
children: ["· ", summary[1]]
|
|
3455
|
+
})
|
|
3456
|
+
]
|
|
3440
3457
|
})]
|
|
3441
3458
|
}),
|
|
3442
3459
|
folded && /* @__PURE__ */ jsxs("span", {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/charts",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.9",
|
|
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",
|