basalt-ui 2.4.0 → 2.5.0

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/MIGRATING.md +34 -12
  3. package/agent/rules/basalt-state.md +1 -1
  4. package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
  5. package/dist/agent/ai-sdk-transport.js +4 -1
  6. package/dist/agent/index.d.ts +1 -1
  7. package/dist/agent/index.d.ts.map +1 -1
  8. package/dist/agent/run-records.d.ts +12 -3
  9. package/dist/agent/run-records.d.ts.map +1 -1
  10. package/dist/agent/run-records.js +16 -3
  11. package/dist/agent/transport.d.ts +10 -3
  12. package/dist/agent/transport.d.ts.map +1 -1
  13. package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
  14. package/dist/agent/use-agent-thread-runs.js +23 -7
  15. package/dist/charts/DualPanel.d.ts.map +1 -1
  16. package/dist/charts/DualPanel.js +14 -5
  17. package/dist/charts/MirroredBars.d.ts.map +1 -1
  18. package/dist/charts/MirroredBars.js +6 -4
  19. package/dist/charts/compile.d.ts +4 -0
  20. package/dist/charts/compile.d.ts.map +1 -1
  21. package/dist/charts/compile.js +40 -11
  22. package/dist/charts/panel.d.ts +6 -0
  23. package/dist/charts/panel.d.ts.map +1 -1
  24. package/dist/charts/panel.js +10 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/provider/index.d.ts.map +1 -1
  28. package/dist/provider/index.js +8 -2
  29. package/dist/state/fields.d.ts +10 -15
  30. package/dist/state/fields.d.ts.map +1 -1
  31. package/dist/state/fields.js +27 -1
  32. package/dist/telemetry.d.ts +58 -4
  33. package/dist/telemetry.d.ts.map +1 -1
  34. package/dist/telemetry.js +13 -5
  35. package/llms.txt +2 -2
  36. package/package.json +1 -1
  37. package/src/agent/ai-sdk-transport.ts +5 -2
  38. package/src/agent/index.ts +1 -1
  39. package/src/agent/run-records.ts +27 -3
  40. package/src/agent/transport.ts +11 -5
  41. package/src/agent/use-agent-thread-runs.ts +35 -8
  42. package/src/charts/DualPanel.tsx +13 -4
  43. package/src/charts/MirroredBars.tsx +5 -3
  44. package/src/charts/compile.ts +59 -12
  45. package/src/charts/panel.tsx +16 -1
  46. package/src/index.ts +1 -1
  47. package/src/provider/index.tsx +8 -2
  48. package/src/state/fields.ts +41 -19
  49. package/src/telemetry.ts +70 -7
@@ -6,6 +6,7 @@ import { scaleLinear } from "@tanstack/charts/scales/linear";
6
6
  import { scaleUtc } from "d3-scale";
7
7
  import { tooltip as tooltipHost } from "@tanstack/charts/tooltip";
8
8
  import { portal } from "@tanstack/charts/tooltip/portal";
9
+ import { SHORT_CHART_HEIGHT } from "./box.js";
9
10
  import { fmtCompact } from "../format/number.js";
10
11
  import { VX } from "../tokens/index.js";
11
12
  import { cursorBinding, sourceOnlyFocus } from "./cursor.js";
@@ -21,6 +22,7 @@ const LADDER = {
21
22
  };
22
23
  const INSIDE_LABEL_DX = 4;
23
24
  const INSIDE_LABEL_DY = -6;
25
+ const labelsInside = (cls, height) => cls === "compact" && height > 0 && height < SHORT_CHART_HEIGHT;
24
26
  function defaultNumberFormat(v) {
25
27
  return fmtCompact(v, { digits: Math.abs(v) >= 1e3 ? 1 : 2 });
26
28
  }
@@ -69,13 +71,23 @@ function seriesRow(s, value, active) {
69
71
  }
70
72
  const REF_KEY_PREFIX = "__ref-";
71
73
  const refLegendKey = (index) => `${REF_KEY_PREFIX}${index}`;
74
+ const SWATCH_SOLID = /* @__PURE__ */ new Map([
75
+ [VX.goodRef, VX.goodSolid],
76
+ [VX.badRef, VX.badSolid],
77
+ [VX.warnRef, VX.warnSolid],
78
+ // The tinted status fills are as translucent, and a consumer may pass either as a line color.
79
+ [VX.good, VX.goodSolid],
80
+ [VX.goodSoft, VX.goodSolid],
81
+ [VX.bad, VX.badSolid],
82
+ [VX.warn, VX.warnSolid]
83
+ ]);
72
84
  function refLegendSeries(refLines) {
73
85
  return (refLines ?? []).flatMap(
74
86
  (r, i) => r.legend === void 0 ? [] : [
75
87
  {
76
88
  key: refLegendKey(i),
77
89
  label: r.legend.label,
78
- color: r.color,
90
+ color: SWATCH_SOLID.get(r.color) ?? r.color,
79
91
  role: "reference",
80
92
  tooltip: false,
81
93
  getValue: () => null,
@@ -91,12 +103,12 @@ function visibleSeries(series, hidden) {
91
103
  );
92
104
  }
93
105
  function yGuide(opts) {
94
- const { cfg, axis, cls, side, grid } = opts;
106
+ const { cfg, axis, cls, side, grid, height } = opts;
95
107
  const ladder = LADDER[cls];
96
108
  const ticks = typeof cfg?.ticks === "object" ? { values: cfg.ticks } : { count: typeof cfg?.ticks === "number" ? cfg.ticks : ladder.yTicks };
97
109
  const gridLine = grid ? { grid: GRID_LINE } : {};
98
110
  if (cls === "micro") return { ...gridLine, axis: false };
99
- const inside = cls === "compact";
111
+ const inside = labelsInside(cls, height);
100
112
  return {
101
113
  ...gridLine,
102
114
  ...side === "right" && { side: "right" },
@@ -129,8 +141,9 @@ function strideTicks(values, cls) {
129
141
  return values.filter((_, i) => i % stride === 0);
130
142
  }
131
143
  function xGuide(opts) {
132
- const { model, xTicks, format, cls } = opts;
144
+ const { model, xTicks, format, cls, height } = opts;
133
145
  const ladder = LADDER[cls];
146
+ const inside = labelsInside(cls, height);
134
147
  const ticks = xTickPolicy(model, xTicks ?? ladder.xTicks);
135
148
  return {
136
149
  axis: {
@@ -140,8 +153,8 @@ function xGuide(opts) {
140
153
  fontSize: ladder.font,
141
154
  opacity: 1,
142
155
  thin: true,
143
- // A locked-zero left margin (compact) must not clip the first label.
144
- ...cls === "compact" && {
156
+ // A locked-zero left margin (inside labels) must not clip the first label.
157
+ ...inside && {
145
158
  anchor: ({ index }) => index === 0 ? "start" : void 0
146
159
  }
147
160
  }
@@ -382,16 +395,23 @@ const refLineMarks = (input, axes) => (input.refLines ?? []).flatMap(
382
395
  )
383
396
  );
384
397
  function buildScales(opts) {
385
- const { input, model, axes, formatX, cls, zoneScale } = opts;
398
+ const { input, model, axes, formatX, cls, height, zoneScale } = opts;
386
399
  const { left, right } = axes;
387
400
  return {
388
401
  x: {
389
402
  scale: model.scale,
390
- ...xGuide({ model, xTicks: input.xTicks, format: formatX, cls })
403
+ ...xGuide({ model, xTicks: input.xTicks, format: formatX, cls, height })
391
404
  },
392
405
  y: {
393
406
  scale: yScaleFor(input.y, left.domain),
394
- ...yGuide({ cfg: input.y, axis: left, cls, side: "left", grid: input.y?.grid ?? true })
407
+ ...yGuide({
408
+ cfg: input.y,
409
+ axis: left,
410
+ cls,
411
+ height,
412
+ side: "left",
413
+ grid: input.y?.grid ?? true
414
+ })
395
415
  },
396
416
  ...right && {
397
417
  y2: {
@@ -401,6 +421,7 @@ function buildScales(opts) {
401
421
  cfg: input.y2,
402
422
  axis: right,
403
423
  cls,
424
+ height,
404
425
  side: "right",
405
426
  grid: input.y2?.grid ?? false
406
427
  })
@@ -520,11 +541,19 @@ function compileCartesian(input) {
520
541
  });
521
542
  return {
522
543
  marks: [...under, ...kindMarks, ...dots, ...over, crosshair({ x: CROSSHAIR, y: false })],
523
- scales: buildScales({ input, model, axes, formatX, cls, zoneScale: under.length > 0 }),
544
+ scales: buildScales({
545
+ input,
546
+ model,
547
+ axes,
548
+ formatX,
549
+ cls,
550
+ height,
551
+ zoneScale: under.length > 0
552
+ }),
524
553
  theme: CHART_THEME,
525
554
  ...gradients.length > 0 && { gradients },
526
555
  clip: true,
527
- ...cls === "compact" && { margin: { left: 0, ...axes.right && { right: 0 } } }
556
+ ...labelsInside(cls, height) && { margin: { left: 0, ...axes.right && { right: 0 } } }
528
557
  };
529
558
  },
530
559
  // Followers paint the crosshair only, unless the chart opts into following tooltips.
@@ -40,6 +40,8 @@ export declare const paneY: (opts: {
40
40
  format: (v: number) => string;
41
41
  ticks: number;
42
42
  cls: ContainerClass;
43
+ /** The whole chart's height ({@link chartHeightOf}). */
44
+ height: number;
43
45
  }) => StoredChartSpec["scales"][string];
44
46
  type ChartScale = NonNullable<StoredChartSpec['scales'][string]>['scale'];
45
47
  /** The shared x axis (drawn on the bottom pane only): the rung's ticks and format. */
@@ -48,7 +50,11 @@ export declare const paneX: <X extends ChartX>(opts: {
48
50
  model: XScaleModel<X>;
49
51
  format: (v: ChartValue) => string;
50
52
  cls: ContainerClass;
53
+ /** The whole chart's height ({@link chartHeightOf}). */
54
+ height: number;
51
55
  }) => StoredChartSpec["scales"][string];
56
+ /** The whole chart's height from one pane's: a pane gets `share` of the height less the gap. */
57
+ export declare const chartHeightOf: (paneHeight: number, share: number, gap: number) => number;
52
58
  /** One row per datum for a series: a `null` or non-finite value is kept as a gap. */
53
59
  export declare function rowsOf<T, X extends ChartX>(data: readonly T[], x: (d: T) => X, s: ChartSeries<T>): PlotRow<T, X>[];
54
60
  export declare function PanelRung<T, X extends ChartX>(props: PanelRungProps<T, X>): ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/charts/panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/charts/panel.tsx"],"names":[],"mappings":"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"}
@@ -16,14 +16,22 @@ const paneY = (opts) => ({
16
16
  cfg: { ticks: opts.ticks },
17
17
  axis: { domain: opts.domain, format: opts.format },
18
18
  cls: opts.cls,
19
+ height: opts.height,
19
20
  side: "left",
20
21
  grid: true
21
22
  })
22
23
  });
23
24
  const paneX = (opts) => ({
24
25
  scale: opts.scale,
25
- ...xGuide({ model: opts.model, xTicks: void 0, format: opts.format, cls: opts.cls })
26
+ ...xGuide({
27
+ model: opts.model,
28
+ xTicks: void 0,
29
+ format: opts.format,
30
+ cls: opts.cls,
31
+ height: opts.height
32
+ })
26
33
  });
34
+ const chartHeightOf = (paneHeight, share, gap) => paneHeight > 0 && share > 0 ? paneHeight / share + gap : 0;
27
35
  function rowsOf(data, x, s) {
28
36
  return data.map((d) => {
29
37
  const v = s.getValue(d);
@@ -117,6 +125,7 @@ function PanelRung(props) {
117
125
  }
118
126
  export {
119
127
  PanelRung,
128
+ chartHeightOf,
120
129
  paneX,
121
130
  paneY,
122
131
  rowsOf
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export { BasaltProvider } from './provider/index.js';
9
9
  export { createBasaltRouter, type BasaltRouter, type BasaltRouterContext, } from './provider/create-router.js';
10
- export type { BasaltEvent } from './telemetry.js';
10
+ export type { BasaltEvent, ChatTurnEnd, ChatTurnTrace, Telemetry, TraceHeaders } from './telemetry.js';
11
11
  export { defineNav, navGroup, navTarget, flattenNav, useBasaltNav, type NavItemId, } from './router-tanstack/index.js';
12
12
  export { scrollParentOf, useCoarsePointer } from './common/index.js';
13
13
  export { createBasaltTheme } from './theme/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAMvC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AASzD,OAAO,EAAE,SAAS,EAAqE,MAAM,OAAO,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAStD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,qFAAqF;IACrF,MAAM,EAAE,YAAY,CAAA;IACpB,qFAAqF;IACrF,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAA;IACtD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;IAC/D;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAA;CAChD,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,OAAO,GAAG,oBAAoB,GAAG,sBAAsB,CAAC,CAAA;AAIpG,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;CAC1C,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAwB1D,mGAAmG;AACnG,qBAAa,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAC;gBAC/D,KAAK,EAAE,iBAAiB;IAKpC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;IAIrD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAczD,MAAM,IAAI,SAAS;CAO7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAYD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAmBvC;AAqMD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,aAAoB,EACpB,cAAc,EACd,kBAA2B,EAC3B,KAAK,EACL,aAAyB,EACzB,eAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,+BA6ErB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AASzD,OAAO,EAAE,SAAS,EAAqE,MAAM,OAAO,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAStD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAQxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,qFAAqF;IACrF,MAAM,EAAE,YAAY,CAAA;IACpB,qFAAqF;IACrF,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAA;IACtD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;IAC/D;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAA;CAChD,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,OAAO,GAAG,oBAAoB,GAAG,sBAAsB,CAAC,CAAA;AAIpG,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;CAC1C,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAwB1D,mGAAmG;AACnG,qBAAa,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAC;gBAC/D,KAAK,EAAE,iBAAiB;IAKpC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;IAIrD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAczD,MAAM,IAAI,SAAS;CAO7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAYD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAmBvC;AAqMD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,aAAoB,EACpB,cAAc,EACd,kBAA2B,EAC3B,KAAK,EACL,aAAyB,EACzB,eAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,+BA6ErB"}
@@ -18,7 +18,13 @@ import { registerColorSchemeSetter } from "../commands/shell-bridge.js";
18
18
  import { useIsomorphicLayoutEffect } from "../common/isomorphic-layout-effect.js";
19
19
  import { PageTitle } from "../shell/page-title.js";
20
20
  import { SizeClassHintContext } from "../shell/use-size-class.js";
21
- import { TelemetryContext, bindRouterTelemetry, createEmitter, errorName, now } from "../telemetry.js";
21
+ import {
22
+ TelemetryContext,
23
+ bindRouterTelemetry,
24
+ createLiveEmitter,
25
+ errorName,
26
+ now
27
+ } from "../telemetry.js";
22
28
  import { useRegistryHotkeys } from "./hotkeys.js";
23
29
  import { buildSpotlightActions } from "./spotlight-actions.js";
24
30
  function DefaultErrorFallback() {
@@ -251,7 +257,7 @@ function BasaltProvider({
251
257
  useEffect(() => {
252
258
  sinkRef.current = telemetry;
253
259
  });
254
- const emit = useMemo(() => createEmitter((event) => sinkRef.current?.(event)), []);
260
+ const emit = useMemo(() => createLiveEmitter(() => sinkRef.current), []);
255
261
  useWindowErrors(emit);
256
262
  useRegistryHotkeys();
257
263
  useEffect(() => registerModalsProvider(), []);
@@ -254,21 +254,14 @@ type NumberHandleExtras<F> = F extends {
254
254
  readonly int?: undefined;
255
255
  readonly step?: undefined;
256
256
  };
257
- /**
258
- * `createLocalStore`'s `use()` read options. `fallback` is a CALL-SITE default for a value that
259
- * arrives as a prop (a leader, a latest date): it applies only while the field is unset (nothing
260
- * stored), is applied in render AFTER the store read, and is never persisted — `clear()` unsets
261
- * back to it. `handle.fallback` and `isDefault` still report the definition's.
262
- *
263
- * An object fallback (range, multi) must be memoised by the caller: the value returned while unset
264
- * IS that object, so a fresh literal per render changes identity every render.
265
- */
266
- export type FieldReadOptions<F extends AnyField> = {
267
- fallback?: FieldValue<F>;
268
- };
269
- /** A `createLocalStore` field: the shared handle, plus `use({ fallback })`. */
257
+ /** A `createLocalStore` field: the shared handle plus `withFallback`. */
270
258
  export type LocalFieldHandle<F extends AnyField> = FieldHandle<F> & {
271
- use(read?: FieldReadOptions<F>): readonly [FieldValue<F>, (next: FieldValue<F>, opts?: FieldSetOptions) => void];
259
+ /**
260
+ * The same field with a call-site unset value (a prop-derived leader), for `use()` and any
261
+ * control as `field=`. Rule: `basalt-state`. Stable per fallback: a primitive is cached for the
262
+ * LAST value only, an object (range, multi) by identity — memoise objects at the caller.
263
+ */
264
+ withFallback(fallback: FieldValue<F>): FieldHandle<F>;
272
265
  };
273
266
  /**
274
267
  * The binding every basalt control takes instead of `value`/`onChange` (C2). One field, both lanes,
@@ -480,7 +473,9 @@ type StoreRecord = Record<string, unknown>;
480
473
  */
481
474
  export type FieldWrite = (next: unknown, opts?: FieldSetOptions) => void;
482
475
  /** One field's `use()`, untyped. @internal — see `FieldCodec`. */
483
- export type FieldUse = (read?: FieldReadOptions<AnyField>) => readonly [unknown, FieldWrite];
476
+ export type FieldUse = (read?: {
477
+ fallback?: unknown;
478
+ }) => readonly [unknown, FieldWrite];
484
479
  /** One named field plus its codec, in declaration order. @internal — see `FieldCodec`. */
485
480
  export type StoreEntry = {
486
481
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/state/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/state/fields.ts"],"names":[],"mappings":"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"}
@@ -392,7 +392,33 @@ function createLocalStore(o) {
392
392
  const persisted = entry.codec.lane.persist;
393
393
  const use = persisted ? persistedUse(entry) : core.memoryUse(entry);
394
394
  const clear = persisted ? () => core.clearField(entry.name) : () => core.clearMemory(entry.name);
395
- field2[entry.name] = core.handle(entry, use, clear);
395
+ const bare = core.handle(entry, use, clear);
396
+ const derive = (fallback) => {
397
+ const useDerived = () => use({ fallback });
398
+ return Object.create(bare, {
399
+ use: { value: useDerived, enumerable: true },
400
+ fallback: { get: () => fallback, enumerable: true },
401
+ isDefault: { value: (v) => entry.codec.equals(v, fallback), enumerable: true }
402
+ });
403
+ };
404
+ const byIdentity = /* @__PURE__ */ new WeakMap();
405
+ let last;
406
+ const withFallback = (fallback) => {
407
+ if (typeof fallback === "function") return derive(fallback);
408
+ if (typeof fallback === "object") {
409
+ const cached = byIdentity.get(fallback);
410
+ if (cached !== void 0) return cached;
411
+ const handle = derive(fallback);
412
+ byIdentity.set(fallback, handle);
413
+ return handle;
414
+ }
415
+ if (last !== void 0 && Object.is(last.value, fallback)) return last.handle;
416
+ last = { value: fallback, handle: derive(fallback) };
417
+ return last.handle;
418
+ };
419
+ field2[entry.name] = Object.assign(core.handle(entry, use, clear), {
420
+ withFallback
421
+ });
396
422
  }
397
423
  const store = {
398
424
  field: field2,
@@ -57,15 +57,69 @@ export type BasaltEvent = Ok<'route.navigate', RouteAttrs> | Err<'route.error',
57
57
  }> | Err<'window.error', {
58
58
  'basalt.error.source': 'error' | 'unhandledrejection';
59
59
  }> | Ok<'chat.turn', ChatAttrs> | Err<'chat.turn', ChatAttrs, Span>;
60
- export type Telemetry = (event: BasaltEvent) => void;
60
+ /** W3C trace-context request headers a sink contributes to one chat turn's request. */
61
+ export type TraceHeaders = {
62
+ readonly traceparent: string;
63
+ readonly tracestate?: string | undefined;
64
+ };
65
+ /**
66
+ * How a traced chat turn ended: its `chat.turn` event fired (`settled`/`failed`), or `stopped` — a
67
+ * `stop()`, an unmount or a newer run taking the thread over — which emits no event. The one
68
+ * lifecycle vocabulary of the run records too.
69
+ */
70
+ export type ChatTurnEnd = 'settled' | 'failed' | 'stopped';
71
+ /** The turn a sink is asked to trace. */
72
+ type ChatTurnInit = {
73
+ readonly threadId: string;
74
+ readonly messageId: string;
75
+ };
76
+ /**
77
+ * What a sink returns from `startChatTurn`. `settle` runs once, synchronously, right after the
78
+ * turn's `chat.turn` event (`settled`/`failed`), or when the turn is cut short (`stopped`) — the
79
+ * point to end a span opened in `startChatTurn`. It runs even when `headers` is absent or
80
+ * malformed (dropped, the request goes out untraced), so the span never leaks.
81
+ */
82
+ export type ChatTurnTrace = {
83
+ readonly headers?: TraceHeaders | undefined;
84
+ readonly settle?: ((end: ChatTurnEnd) => void) | undefined;
85
+ };
86
+ /**
87
+ * The event sink. It may carry one optional hook, `startChatTurn`, called when a new chat turn
88
+ * begins (not on a resume): open your span there and return its `traceparent` (and `tracestate`)
89
+ * and `aiSdkTransport` sends them with that turn's request to the chat endpoint — never anywhere
90
+ * else. A sink without the hook, or no sink, changes nothing on the wire. basalt has no OTel
91
+ * dependency; the hook is where the consumer's SDK does the work.
92
+ *
93
+ * @example
94
+ * export const telemetry: Telemetry = Object.assign(onEvent, {
95
+ * startChatTurn({ threadId }) {
96
+ * const span = tracer.startSpan('chat.turn', {
97
+ * attributes: { 'basalt.chat.thread_id': threadId },
98
+ * })
99
+ * const carrier: Record<string, string> = {}
100
+ * propagation.inject(trace.setSpan(context.active(), span), carrier)
101
+ * return {
102
+ * headers: { traceparent: carrier.traceparent ?? '', tracestate: carrier.tracestate },
103
+ * settle(end) {
104
+ * if (end === 'failed') span.setStatus({ code: SpanStatusCode.ERROR })
105
+ * span.end()
106
+ * },
107
+ * }
108
+ * },
109
+ * })
110
+ */
111
+ export type Telemetry = ((event: BasaltEvent) => void) & {
112
+ readonly startChatTurn?: ((turn: ChatTurnInit) => ChatTurnTrace | undefined) | undefined;
113
+ };
61
114
  export declare const now: () => number;
62
115
  /** `error.name`, `'Error'` for a non-`Error` throw. */
63
116
  export declare const errorName: (error: unknown) => string;
64
117
  /**
65
- * Wrap a sink so it is called synchronously and a throwing sink never breaks a render. No sink, no
66
- * events.
118
+ * The wrapped emitter over a sink read at call time (a ref), so a swapped sink is never stale. It is
119
+ * called synchronously and a throwing sink never breaks a render; no sink, no events. Its
120
+ * `startChatTurn` forwards the sink's hook; the hook's consumer validates the headers.
67
121
  */
68
- export declare function createEmitter(sink: Telemetry | undefined): Telemetry;
122
+ export declare function createLiveEmitter(read: () => Telemetry | undefined): Telemetry;
69
123
  /**
70
124
  * The provider's wrapped emitter, for hooks that emit their own events (`useAgentThreadRuns`'
71
125
  * `chat.turn`). `undefined` outside a `BasaltProvider`, where such a hook emits nothing.
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,+DAA+D;AAC/D,KAAK,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAC3B,qCAAqC;AACrC,KAAK,IAAI,GAAG,EAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAA;AAErC,+DAA+D;AAC/D,KAAK,SAAS,GACV,OAAO,GACP,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,oBAAoB,GACpB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,SAAS,CAAA;AAEb,KAAK,OAAO,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,SAAS,CAAA;CAAE,CAAA;AAC3E,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,CAAC,CAAA;CAAE,CAAA;AAChE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAA;CAAE,CAAA;AAE/E,KAAK,UAAU,GAAG;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,SAAS,GAAG;IACf,uBAAuB,EAAE,MAAM,CAAA;IAC/B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,YAAY,CAAA;CACnC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GACnB,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAChC,GAAG,CAAC,aAAa,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,GACjD,GAAG,CAAC,aAAa,EAAE;IAAE,mBAAmB,EAAE,MAAM,CAAC;IAAC,4BAA4B,EAAE,MAAM,CAAA;CAAE,CAAC,GACzF,GAAG,CAAC,gBAAgB,EAAE;IAAE,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAAC,GACxD,GAAG,CAAC,cAAc,EAAE;IAAE,uBAAuB,EAAE,MAAM,CAAA;CAAE,CAAC,GACxD,GAAG,CAAC,cAAc,EAAE;IAAE,qBAAqB,EAAE,OAAO,GAAG,oBAAoB,CAAA;CAAE,CAAC,GAC9E,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,GAC1B,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;AAErC,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AAEpD,eAAO,MAAM,GAAG,QAAO,MAAoD,CAAA;AAE3E,uDAAuD;AACvD,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,MAAyD,CAAA;AAEpG;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CASpE;AAID;;;GAGG;AACH,eAAO,MAAM,gBAAgB,gDAAkD,CAAA;AAK/E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,IAAI,CAK/E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAEzD"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
package/dist/telemetry.js CHANGED
@@ -1,14 +1,22 @@
1
1
  import { createContext } from "react";
2
2
  const now = () => performance.timeOrigin + performance.now();
3
3
  const errorName = (error) => error instanceof Error ? error.name : "Error";
4
- function createEmitter(sink) {
5
- if (sink === void 0) return noop;
6
- return (event) => {
4
+ function createLiveEmitter(read) {
5
+ const emit = (event) => {
7
6
  try {
8
- sink(event);
7
+ read()?.(event);
9
8
  } catch {
10
9
  }
11
10
  };
11
+ return Object.assign(emit, {
12
+ startChatTurn(turn) {
13
+ try {
14
+ return read()?.startChatTurn?.(turn);
15
+ } catch {
16
+ return void 0;
17
+ }
18
+ }
19
+ });
12
20
  }
13
21
  function noop() {
14
22
  }
@@ -26,7 +34,7 @@ function routerTelemetry(router) {
26
34
  export {
27
35
  TelemetryContext,
28
36
  bindRouterTelemetry,
29
- createEmitter,
37
+ createLiveEmitter,
30
38
  errorName,
31
39
  now,
32
40
  routerTelemetry
package/llms.txt CHANGED
@@ -1,4 +1,4 @@
1
- # basalt-ui v2.4.0
1
+ # basalt-ui v2.5.0
2
2
  # Opinionated framework for Mantine-based React apps — theme, app shell, TanStack Charts, toolchain presets
3
3
  #
4
4
  # Entry points: use the exact import specifier below; do not guess.
@@ -13,7 +13,7 @@
13
13
  # A subpath's `Install:` line is its required peers; `OptionalPeers:` are import()-only, install on use.
14
14
 
15
15
  Package: basalt-ui
16
- Version: 2.4.0
16
+ Version: 2.5.0
17
17
 
18
18
  ## basalt-ui
19
19
  Import: import { ... } from 'basalt-ui'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "basalt-ui",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "description": "Opinionated framework for Mantine-based React apps — theme, app shell, TanStack Charts, toolchain presets",
5
5
  "keywords": [
6
6
  "charts",
@@ -49,7 +49,7 @@ import { assertNever } from '../register'
49
49
  import { mintMessageId, mintThreadId } from './id'
50
50
  import { TERMINAL_TOOL_STATES } from './parts'
51
51
  import type { AgentPart, AgentPartDraft } from './parts'
52
- import type { ResumableAgentTransport } from './transport'
52
+ import type { AgentStreamContext, ResumableAgentTransport } from './transport'
53
53
 
54
54
  // ── ai (optional peer) — TYPE-ONLY imports, erased at runtime ────────────────
55
55
  // verbatimModuleSyntax-safe: these never trigger a runtime resolution of 'ai'. The actual runtime
@@ -415,7 +415,7 @@ export function aiSdkTransport<TPart = AgentPart>(
415
415
  async *stream(
416
416
  input: string,
417
417
  signal?: AbortSignal,
418
- ctx?: { readonly messageId: string },
418
+ ctx?: AgentStreamContext,
419
419
  ): AsyncGenerator<TPart> {
420
420
  // Synthesized locally, first — we already know the chat id client-side, so there is no
421
421
  // need to wait on the server to hand us a run id (unlike a river-style protocol).
@@ -439,6 +439,9 @@ export function aiSdkTransport<TPart = AgentPart>(
439
439
  trigger: 'submit-message',
440
440
  messageId: undefined,
441
441
  abortSignal: signal,
442
+ // Per-turn trace context goes to the chat endpoint only (merged over the static headers by
443
+ // AI SDK's HTTP transport); absent, the request is exactly what it was.
444
+ ...(ctx?.headers !== undefined ? { headers: ctx.headers } : {}),
442
445
  })
443
446
  yield* diffChunkStream<TPart>(chatId, chunkStream, readStream, signal)
444
447
  },
@@ -24,7 +24,7 @@ export { toAgentError } from './error'
24
24
  export type { ChatMessage } from './history'
25
25
  export type { AgentThread, ThreadStatus, ThreadsStore } from './thread'
26
26
  export type { AgentOutcome, OutcomeResolver } from './outcome'
27
- export type { AgentTransport, ResumableAgentTransport } from './transport'
27
+ export type { AgentStreamContext, AgentTransport, ResumableAgentTransport } from './transport'
28
28
 
29
29
  // ── Chat UI ───────────────────────────────────────────────────────────────────
30
30
  export { ThreadFeed } from './chat/thread-feed'