@tangle-network/agent-app 0.45.32 → 0.45.34
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/{DesignCanvas-RSWQCXM3.js → DesignCanvas-EODMDQMT.js} +2 -2
- package/dist/{DesignCanvasEditor-XZMGIST7.js → DesignCanvasEditor-DRRZ6ZD3.js} +4 -4
- package/dist/{InvitationsPanel-CJ7DR4F7.js → InvitationsPanel-BATXZHY4.js} +2 -2
- package/dist/{MembersPanel-BB4OD2KB.js → MembersPanel-XNLF3SA4.js} +2 -2
- package/dist/agent-session-controls-1q1XR3j8.d.ts +257 -0
- package/dist/assistant/index.d.ts +1 -1
- package/dist/assistant/index.js +11 -10
- package/dist/assistant/index.js.map +1 -1
- package/dist/chat-react/index.d.ts +1 -1
- package/dist/chat-react/index.js +1 -1
- package/dist/{chunk-YIQHOAHN.js → chunk-3UBAO3N5.js} +3 -3
- package/dist/{chunk-YIQHOAHN.js.map → chunk-3UBAO3N5.js.map} +1 -1
- package/dist/{chunk-PURHUAOR.js → chunk-556RB3XI.js} +5 -5
- package/dist/chunk-556RB3XI.js.map +1 -0
- package/dist/{chunk-HZ4WCA37.js → chunk-5MZXWPFN.js} +9 -9
- package/dist/chunk-5MZXWPFN.js.map +1 -0
- package/dist/{chunk-FNM7JYME.js → chunk-5N434BGF.js} +17 -17
- package/dist/chunk-5N434BGF.js.map +1 -0
- package/dist/{chunk-5SXS3YAB.js → chunk-7MV23XBW.js} +2 -2
- package/dist/chunk-7MV23XBW.js.map +1 -0
- package/dist/{chunk-IFYJDX3J.js → chunk-AIHKKLKY.js} +47 -46
- package/dist/chunk-AIHKKLKY.js.map +1 -0
- package/dist/{chunk-S564OFTL.js → chunk-F4XLTVQ3.js} +3 -3
- package/dist/{chunk-S564OFTL.js.map → chunk-F4XLTVQ3.js.map} +1 -1
- package/dist/{chunk-LSQR6HM6.js → chunk-IN6LNZ7O.js} +35 -34
- package/dist/chunk-IN6LNZ7O.js.map +1 -0
- package/dist/chunk-MIZMWCKW.js +904 -0
- package/dist/chunk-MIZMWCKW.js.map +1 -0
- package/dist/{chunk-QGOU3VXH.js → chunk-UXRJAUJL.js} +3 -3
- package/dist/design-canvas-react/index.js +8 -8
- package/dist/design-canvas-react/index.js.map +1 -1
- package/dist/design-canvas-react/lazy.js +1 -1
- package/dist/studio-react/index.js +27 -27
- package/dist/studio-react/index.js.map +1 -1
- package/dist/teams-react/index.js +2 -2
- package/dist/teams-react/lazy.js +2 -2
- package/dist/theme/index.js +1 -1
- package/dist/theme/tailwind-preset.d.ts +5 -1
- package/dist/theme/tailwind-preset.js +11 -2
- package/dist/theme/tailwind-preset.js.map +1 -1
- package/dist/theme/tokens.css +126 -79
- package/dist/web-react/async/index.js +1 -1
- package/dist/web-react/index.d.ts +31 -91
- package/dist/web-react/index.js +13 -3
- package/dist/work-product-react/index.js +3 -3
- package/dist/work-product-react/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/agent-session-controls-BwImzYKC.d.ts +0 -129
- package/dist/chunk-5SXS3YAB.js.map +0 -1
- package/dist/chunk-FNM7JYME.js.map +0 -1
- package/dist/chunk-HZ4WCA37.js.map +0 -1
- package/dist/chunk-IFYJDX3J.js.map +0 -1
- package/dist/chunk-L7FHRORY.js +0 -763
- package/dist/chunk-L7FHRORY.js.map +0 -1
- package/dist/chunk-LSQR6HM6.js.map +0 -1
- package/dist/chunk-PURHUAOR.js.map +0 -1
- /package/dist/{DesignCanvas-RSWQCXM3.js.map → DesignCanvas-EODMDQMT.js.map} +0 -0
- /package/dist/{DesignCanvasEditor-XZMGIST7.js.map → DesignCanvasEditor-DRRZ6ZD3.js.map} +0 -0
- /package/dist/{InvitationsPanel-CJ7DR4F7.js.map → InvitationsPanel-BATXZHY4.js.map} +0 -0
- /package/dist/{MembersPanel-BB4OD2KB.js.map → MembersPanel-XNLF3SA4.js.map} +0 -0
- /package/dist/{chunk-QGOU3VXH.js.map → chunk-UXRJAUJL.js.map} +0 -0
package/dist/teams-react/lazy.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// src/teams-react/lazy.tsx
|
|
2
2
|
import { lazy } from "react";
|
|
3
3
|
var MembersPanelLazy = lazy(
|
|
4
|
-
() => import("../MembersPanel-
|
|
4
|
+
() => import("../MembersPanel-XNLF3SA4.js").then((m) => ({ default: m.MembersPanel }))
|
|
5
5
|
);
|
|
6
6
|
var InvitationsPanelLazy = lazy(
|
|
7
|
-
() => import("../InvitationsPanel-
|
|
7
|
+
() => import("../InvitationsPanel-BATXZHY4.js").then((m) => ({ default: m.InvitationsPanel }))
|
|
8
8
|
);
|
|
9
9
|
var InviteAcceptPageLazy = lazy(
|
|
10
10
|
() => import("../InviteAcceptPage-P3QJC3C6.js").then((m) => ({ default: m.InviteAcceptPage }))
|
package/dist/theme/index.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* values (bg-[var(--bg-input)]), which Tailwind supports without color config.
|
|
13
13
|
*
|
|
14
14
|
* Beyond colour this preset also maps the border TIERS, the semantic radius
|
|
15
|
-
* steps, and the
|
|
15
|
+
* steps, the motion scale, and the elevation shadows. See docs/design-tokens.md.
|
|
16
16
|
*/
|
|
17
17
|
/** Define a preset configuration for dark mode and extended theme colors with foreground variants */
|
|
18
18
|
declare const agentAppPreset: {
|
|
@@ -66,6 +66,10 @@ declare const agentAppPreset: {
|
|
|
66
66
|
'surface-container-high': string;
|
|
67
67
|
'surface-container-highest': string;
|
|
68
68
|
};
|
|
69
|
+
boxShadow: {
|
|
70
|
+
raised: string;
|
|
71
|
+
overlay: string;
|
|
72
|
+
};
|
|
69
73
|
borderColor: {
|
|
70
74
|
border: string;
|
|
71
75
|
'card-edge': string;
|
|
@@ -31,9 +31,18 @@ var agentAppPreset = {
|
|
|
31
31
|
// MD3 surface ladder — wires sandbox-ui's `bg-surface-container*`
|
|
32
32
|
// utilities (used by AgentComposer + its pickers) onto the shadcn
|
|
33
33
|
// elevation triples, so those components render on-palette here.
|
|
34
|
+
// Monotonic in the dark theme: card (L 0.235) < secondary (0.285) <
|
|
35
|
+
// popover (0.325) — the rungs a container climbs as it floats higher.
|
|
34
36
|
"surface-container": "hsl(var(--card))",
|
|
35
|
-
"surface-container-high": "hsl(var(--
|
|
36
|
-
"surface-container-highest": "hsl(var(--
|
|
37
|
+
"surface-container-high": "hsl(var(--secondary))",
|
|
38
|
+
"surface-container-highest": "hsl(var(--popover))"
|
|
39
|
+
},
|
|
40
|
+
// Elevation shadows — `shadow-raised` for the floating composer,
|
|
41
|
+
// `shadow-overlay` for popovers/dialogs. Both re-theme through
|
|
42
|
+
// tokens.css (dark doubles the alpha at the token).
|
|
43
|
+
boxShadow: {
|
|
44
|
+
raised: "var(--shadow-raised)",
|
|
45
|
+
overlay: "var(--shadow-overlay)"
|
|
37
46
|
},
|
|
38
47
|
// Border tiers. `borderColor` is a separate scale from `colors`, so
|
|
39
48
|
// pointing `border-border` at the soft tier here leaves `bg-border` /
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/theme/tailwind-preset.ts"],"sourcesContent":["/**\n * Tailwind preset mapping the shadcn semantic color names used by web-react\n * (bg-card, text-muted-foreground, border-border, …) onto the CSS variables in\n * tokens.css — so a consuming app themes every agent-app surface from one source.\n *\n * // tailwind.config.{js,ts}\n * import agentAppPreset from '@tangle-network/agent-app/tailwind-preset'\n * export default { presets: [agentAppPreset], content: [...] }\n *\n * Pair with `import '@tangle-network/agent-app/styles'` for the variable values.\n * design-canvas/sequences need no preset — they consume vars via arbitrary\n * values (bg-[var(--bg-input)]), which Tailwind supports without color config.\n *\n * Beyond colour this preset also maps the border TIERS, the semantic radius\n * steps, and the
|
|
1
|
+
{"version":3,"sources":["../../src/theme/tailwind-preset.ts"],"sourcesContent":["/**\n * Tailwind preset mapping the shadcn semantic color names used by web-react\n * (bg-card, text-muted-foreground, border-border, …) onto the CSS variables in\n * tokens.css — so a consuming app themes every agent-app surface from one source.\n *\n * // tailwind.config.{js,ts}\n * import agentAppPreset from '@tangle-network/agent-app/tailwind-preset'\n * export default { presets: [agentAppPreset], content: [...] }\n *\n * Pair with `import '@tangle-network/agent-app/styles'` for the variable values.\n * design-canvas/sequences need no preset — they consume vars via arbitrary\n * values (bg-[var(--bg-input)]), which Tailwind supports without color config.\n *\n * Beyond colour this preset also maps the border TIERS, the semantic radius\n * steps, the motion scale, and the elevation shadows. See docs/design-tokens.md.\n */\n\nconst withForeground = (name: string) => ({\n DEFAULT: `hsl(var(--${name}))`,\n foreground: `hsl(var(--${name}-foreground))`,\n})\n\n/**\n * A border tier as a Tailwind colour that still honours the `/40` opacity\n * modifier.\n *\n * The tier tokens are `color-mix()` results, not channel triples, and Tailwind\n * cannot inject an alpha into a value it cannot parse — pointing `border-border`\n * straight at `var(--border-soft)` makes Tailwind DROP `border-border/50`\n * entirely rather than emit it without the modifier, which is silent: the\n * element falls back to `currentColor` and nothing errors. This package has 18\n * such usages. Wrapping the token in a `color-mix` that consumes\n * `<alpha-value>` keeps the token as the source AND composes with the modifier:\n * bare → 100% of the tier, `/50` → half of it.\n */\nconst tier = (token: string) => `color-mix(in oklch, var(${token}) calc(<alpha-value> * 100%), transparent)`\n\n/** Define a preset configuration for dark mode and extended theme colors with foreground variants */\nconst agentAppPreset = {\n darkMode: ['class', '[data-theme=\"dark\"]'] as [string, string],\n theme: {\n extend: {\n colors: {\n background: 'hsl(var(--background))',\n foreground: 'hsl(var(--foreground))',\n border: 'hsl(var(--border))',\n input: 'hsl(var(--input))',\n ring: 'hsl(var(--ring))',\n success: withForeground('success'),\n // `strong` sits alongside DEFAULT/foreground rather than replacing\n // either: `--warning` is the dot/border/tint hue, `--warning-foreground`\n // is what goes on a SOLID gold chip, and `text-warning-strong` is the\n // only one of the three that stays legible as text on a warning TINT in\n // both themes.\n warning: { ...withForeground('warning'), strong: 'hsl(var(--warning-strong))' },\n card: withForeground('card'),\n popover: withForeground('popover'),\n primary: withForeground('primary'),\n secondary: withForeground('secondary'),\n muted: withForeground('muted'),\n accent: withForeground('accent'),\n destructive: withForeground('destructive'),\n // MD3 surface ladder — wires sandbox-ui's `bg-surface-container*`\n // utilities (used by AgentComposer + its pickers) onto the shadcn\n // elevation triples, so those components render on-palette here.\n // Monotonic in the dark theme: card (L 0.235) < secondary (0.285) <\n // popover (0.325) — the rungs a container climbs as it floats higher.\n 'surface-container': 'hsl(var(--card))',\n 'surface-container-high': 'hsl(var(--secondary))',\n 'surface-container-highest': 'hsl(var(--popover))',\n },\n // Elevation shadows — `shadow-raised` for the floating composer,\n // `shadow-overlay` for popovers/dialogs. Both re-theme through\n // tokens.css (dark doubles the alpha at the token).\n boxShadow: {\n raised: 'var(--shadow-raised)',\n overlay: 'var(--shadow-overlay)',\n },\n // Border tiers. `borderColor` is a separate scale from `colors`, so\n // pointing `border-border` at the soft tier here leaves `bg-border` /\n // `text-border` (and the `--border` triple itself) at full strength.\n //\n // This is the one place a single edit reaches every `border-border` in\n // the fleet — 151 in this package alone — which is the only reason the\n // tiers are worth having. Editing 151 call sites to say `border-soft`\n // would be the same change spelled 151 times, and the next component\n // written would still say `border-border`.\n //\n // `border-input` is untouched on purpose: a form field's edge is a\n // control affordance, not a divider.\n //\n // Opting out is one line in the consumer's own config\n // (`borderColor: { border: 'hsl(var(--border))' }`) or one line in its\n // CSS (`--border-soft: hsl(var(--border))`), and the second also restores\n // the pre-tier look for any consumer-owned `--color-border` mapping,\n // which a Tailwind v4 app defines in its own `@theme` and this preset\n // cannot reach.\n borderColor: {\n border: tier('--border-soft'),\n 'card-edge': tier('--card-edge'),\n strong: 'hsl(var(--border))',\n },\n // Semantic radius. Deliberately NOT a remap of Tailwind's `rounded-md` /\n // `rounded-lg`: those names collide with the token ladder's names at\n // DIFFERENT values (`--radius-md` is 8px, `rounded-md` is 6px), so\n // remapping would silently resize 302 existing `rounded-*` usages across\n // four products. New names, opt-in, no resize.\n borderRadius: {\n control: 'var(--radius-sm)',\n card: 'var(--radius-lg)',\n surface: 'var(--radius-2xl)',\n },\n // Motion. Additive names alongside Tailwind's numeric durations and\n // in/out/in-out curves, so `duration-fast` and `ease-entrance` compile\n // without displacing `duration-150` or `ease-out`.\n transitionDuration: {\n instant: 'var(--duration-instant)',\n fast: 'var(--duration-fast)',\n base: 'var(--duration-base)',\n slow: 'var(--duration-slow)',\n },\n transitionTimingFunction: {\n standard: 'var(--ease-standard)',\n entrance: 'var(--ease-entrance)',\n exit: 'var(--ease-exit)',\n },\n },\n },\n}\n\nexport default agentAppPreset\n"],"mappings":";AAiBA,IAAM,iBAAiB,CAAC,UAAkB;AAAA,EACxC,SAAS,aAAa,IAAI;AAAA,EAC1B,YAAY,aAAa,IAAI;AAC/B;AAeA,IAAM,OAAO,CAAC,UAAkB,2BAA2B,KAAK;AAGhE,IAAM,iBAAiB;AAAA,EACrB,UAAU,CAAC,SAAS,qBAAqB;AAAA,EACzC,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,eAAe,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMjC,SAAS,EAAE,GAAG,eAAe,SAAS,GAAG,QAAQ,6BAA6B;AAAA,QAC9E,MAAM,eAAe,MAAM;AAAA,QAC3B,SAAS,eAAe,SAAS;AAAA,QACjC,SAAS,eAAe,SAAS;AAAA,QACjC,WAAW,eAAe,WAAW;AAAA,QACrC,OAAO,eAAe,OAAO;AAAA,QAC7B,QAAQ,eAAe,QAAQ;AAAA,QAC/B,aAAa,eAAe,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMzC,qBAAqB;AAAA,QACrB,0BAA0B;AAAA,QAC1B,6BAA6B;AAAA,MAC/B;AAAA;AAAA;AAAA;AAAA,MAIA,WAAW;AAAA,QACT,QAAQ;AAAA,QACR,SAAS;AAAA,MACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBA,aAAa;AAAA,QACX,QAAQ,KAAK,eAAe;AAAA,QAC5B,aAAa,KAAK,aAAa;AAAA,QAC/B,QAAQ;AAAA,MACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA,cAAc;AAAA,QACZ,SAAS;AAAA,QACT,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA;AAAA;AAAA;AAAA,MAIA,oBAAoB;AAAA,QAClB,SAAS;AAAA,QACT,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,MACA,0BAA0B;AAAA,QACxB,UAAU;AAAA,QACV,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,0BAAQ;","names":[]}
|
package/dist/theme/tokens.css
CHANGED
|
@@ -24,19 +24,29 @@
|
|
|
24
24
|
:root {
|
|
25
25
|
/* ── The neutral ramp ────────────────────────────────────────────────────
|
|
26
26
|
ONE ladder, both themes: light reads it from the top down, dark from the
|
|
27
|
-
bottom up.
|
|
28
|
-
L 0.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
bottom up. A stop's name is its oklch lightness × 100, rounded to the
|
|
28
|
+
nearest integer (`--neutral-94` is L 0.945), so the rule stays checkable
|
|
29
|
+
rather than conventional. Chroma comes in TWO bands, because the two ends
|
|
30
|
+
of the ladder do different work:
|
|
31
|
+
|
|
32
|
+
dark band L ≤ 0.4 — the dark theme's surface ladder: chroma
|
|
33
|
+
0.014–0.018 at hue 280, falling as L rises. The deep
|
|
34
|
+
surfaces carry the deliberate cool cast; the border stop
|
|
35
|
+
carries least, so a hairline reads as an edge, not a tint.
|
|
36
|
+
The lightness steps here are deliberately SMALL — at the
|
|
37
|
+
bottom of sRGB, rungs 0.03 apart measure 1.05:1, which is
|
|
38
|
+
physically imperceptible, so this band's separation comes
|
|
39
|
+
from the whole stack (fill step + border tier + shadow),
|
|
40
|
+
not from any single rung.
|
|
41
|
+
light band L ≥ 0.8 — chroma 0.004–0.008 at hue 280: the tinted-canvas
|
|
42
|
+
values from the elevation audit. The mid stops (49, 70 —
|
|
43
|
+
text, not surfaces) keep the legacy 0.004 at hue 286; at
|
|
44
|
+
that chroma the 6° hue difference is below what sRGB shows.
|
|
45
|
+
|
|
46
|
+
HSL saturation is not chroma, which is why the `-hsl` mirrors wander in
|
|
47
|
+
S% while the oklch sources hold their bands: the ramp this replaced
|
|
48
|
+
carried a nominal "S 5–7%" throughout that produced 0.0014 chroma at
|
|
49
|
+
L 0.976 and 0.0154 at L 0.478 — visibly gaining blue as it darkened.
|
|
40
50
|
|
|
41
51
|
The terminal stop is chroma 0 because sRGB admits no chroma at L 1.
|
|
42
52
|
|
|
@@ -48,24 +58,39 @@
|
|
|
48
58
|
rather than a derivation. tests/theme/tokens-contract.test.ts converts
|
|
49
59
|
every oklch stop to HSL and fails if its mirror has drifted, so the two
|
|
50
60
|
forms cannot disagree without a red test. */
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
--neutral-
|
|
56
|
-
--neutral-
|
|
57
|
-
--neutral-
|
|
58
|
-
--neutral-
|
|
61
|
+
/* dark band — the dark theme's surface ladder, bottom up: canvas-backdrop,
|
|
62
|
+
background, input (recessed), card, secondary/muted/accent, popover,
|
|
63
|
+
border. The first three RETUNE the stops the light theme's ink also reads;
|
|
64
|
+
the top four are new rungs. */
|
|
65
|
+
--neutral-16: oklch(0.16 0.018 280);
|
|
66
|
+
--neutral-16-hsl: 234.9 28.5% 6.4%;
|
|
67
|
+
--neutral-19: oklch(0.19 0.018 280);
|
|
68
|
+
--neutral-19-hsl: 234.5 21.2% 9%;
|
|
69
|
+
--neutral-22: oklch(0.215 0.018 280);
|
|
70
|
+
--neutral-22-hsl: 234.2 17.6% 11.3%;
|
|
71
|
+
--neutral-24: oklch(0.235 0.018 280);
|
|
72
|
+
--neutral-24-hsl: 234.1 15.5% 13.1%;
|
|
73
|
+
--neutral-28: oklch(0.285 0.017 280);
|
|
74
|
+
--neutral-28-hsl: 233.8 11.4% 17.8%;
|
|
75
|
+
--neutral-33: oklch(0.325 0.016 280);
|
|
76
|
+
--neutral-33-hsl: 233.6 9.1% 21.7%;
|
|
77
|
+
--neutral-36: oklch(0.365 0.014 280);
|
|
78
|
+
--neutral-36-hsl: 233.4 7% 25.6%;
|
|
79
|
+
/* mid stops — text, both themes */
|
|
59
80
|
--neutral-49: oklch(0.49 0.004 286);
|
|
60
81
|
--neutral-49-hsl: 239.7 1.3% 38.2%;
|
|
61
82
|
--neutral-70: oklch(0.7 0.004 286);
|
|
62
83
|
--neutral-70-hsl: 239.6 1.5% 62.5%;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
--neutral-
|
|
66
|
-
--neutral-
|
|
67
|
-
--neutral-
|
|
68
|
-
--neutral-
|
|
84
|
+
/* light band — the light theme's surfaces, bottom up: border/input,
|
|
85
|
+
canvas-backdrop, background, secondary/muted/accent, terminal white. */
|
|
86
|
+
--neutral-85: oklch(0.85 0.0079 280);
|
|
87
|
+
--neutral-85-hsl: 233.1 6.8% 81.4%;
|
|
88
|
+
--neutral-92: oklch(0.925 0.0069 280);
|
|
89
|
+
--neutral-92-hsl: 233.1 12.5% 90.9%;
|
|
90
|
+
--neutral-94: oklch(0.945 0.0059 280);
|
|
91
|
+
--neutral-94-hsl: 233.2 14.8% 93.4%;
|
|
92
|
+
--neutral-96: oklch(0.965 0.0049 280);
|
|
93
|
+
--neutral-96-hsl: 233.2 19.9% 95.9%;
|
|
69
94
|
--neutral-100: oklch(1 0 0);
|
|
70
95
|
--neutral-100-hsl: 0 0% 100%;
|
|
71
96
|
|
|
@@ -76,24 +101,24 @@
|
|
|
76
101
|
tuned for AA as TEXT. agent-app keeps its own light-default /
|
|
77
102
|
[data-theme="dark"] scope model (brand is dark-default), so /theme stays
|
|
78
103
|
dependency-free — only the values are shared, not the cascade. */
|
|
79
|
-
--background: var(--neutral-
|
|
104
|
+
--background: var(--neutral-94-hsl);
|
|
80
105
|
--foreground: var(--neutral-16-hsl);
|
|
81
|
-
--card: var(--neutral-
|
|
106
|
+
--card: var(--neutral-100-hsl);
|
|
82
107
|
--card-foreground: var(--neutral-16-hsl);
|
|
83
108
|
--popover: var(--neutral-100-hsl);
|
|
84
109
|
--popover-foreground: var(--neutral-16-hsl);
|
|
85
110
|
--primary: 245 62% 57%;
|
|
86
111
|
--primary-foreground: var(--neutral-100-hsl);
|
|
87
|
-
--secondary: var(--neutral-
|
|
112
|
+
--secondary: var(--neutral-96-hsl);
|
|
88
113
|
--secondary-foreground: var(--neutral-22-hsl);
|
|
89
|
-
--muted: var(--neutral-
|
|
114
|
+
--muted: var(--neutral-96-hsl);
|
|
90
115
|
--muted-foreground: var(--neutral-49-hsl);
|
|
91
|
-
--accent: var(--neutral-
|
|
116
|
+
--accent: var(--neutral-96-hsl);
|
|
92
117
|
--accent-foreground: var(--neutral-22-hsl);
|
|
93
118
|
--destructive: 0 72% 41%;
|
|
94
119
|
--destructive-foreground: var(--neutral-100-hsl);
|
|
95
|
-
--border: var(--neutral-
|
|
96
|
-
--input: var(--neutral-
|
|
120
|
+
--border: var(--neutral-85-hsl);
|
|
121
|
+
--input: var(--neutral-85-hsl);
|
|
97
122
|
--ring: 245 62% 57%;
|
|
98
123
|
/* status colors — brand hues (teal/gold/red), but lightness kept dark enough
|
|
99
124
|
to clear WCAG AA when used AS TEXT on tinted chips. Brand's own status
|
|
@@ -107,12 +132,12 @@
|
|
|
107
132
|
`--warning-foreground` is paired with — and the reason that pairing cannot
|
|
108
133
|
serve both. Measured on the shipped approval card: no single lightness
|
|
109
134
|
clears AA in both themes, because the tint tracks the page. On the light
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
re-themes where `--warning` and
|
|
113
|
-
|
|
114
|
-
light,
|
|
115
|
-
--warning-strong: 41 96%
|
|
135
|
+
page the tint composites to rgb(233,230,227) and the ramp needs L <= 27%
|
|
136
|
+
(L 28% is 4.43:1); on the dark page rgb(32,29,29) it needs L >= 36%
|
|
137
|
+
(L 34% is 4.06:1). So this token re-themes where `--warning` and
|
|
138
|
+
`--warning-foreground` deliberately do not. 27% / 56% are the values with
|
|
139
|
+
margin either side of those knees: 4.69:1 light, 9.12:1 dark. */
|
|
140
|
+
--warning-strong: 41 96% 27%;
|
|
116
141
|
|
|
117
142
|
/* canvas/sequences aliases — full colors, resolve to the triples above */
|
|
118
143
|
--bg-input: hsl(var(--card));
|
|
@@ -140,8 +165,9 @@
|
|
|
140
165
|
|
|
141
166
|
/* canvas-only surfaces (not part of the shadcn vocabulary). Name matches the
|
|
142
167
|
`--canvas-backdrop` the design-canvas Workspace references (with a #1a1a1a
|
|
143
|
-
fallback).
|
|
144
|
-
|
|
168
|
+
fallback). Two ramp stops BELOW the page, so elevation reads the right way
|
|
169
|
+
up: canvas under page, white card lifted above both. */
|
|
170
|
+
--canvas-backdrop: hsl(var(--neutral-92-hsl));
|
|
145
171
|
|
|
146
172
|
/* Keyboard focus ring. Resolves through `--ring`, so the dark scope re-themes
|
|
147
173
|
it by the same cascade every other token here uses. */
|
|
@@ -216,34 +242,49 @@
|
|
|
216
242
|
hsl(--border) full strength: form-field edges (`--input`), and any
|
|
217
243
|
edge a component deliberately emphasises
|
|
218
244
|
|
|
219
|
-
LIGHT is 40% / 60
|
|
220
|
-
|
|
221
|
-
|
|
245
|
+
LIGHT is 40% / 60%. A 1px hairline, contrast of the composited line
|
|
246
|
+
against the surface it sits on, rendered and read back by
|
|
247
|
+
playground/scripts/token-render.mjs:
|
|
248
|
+
|
|
249
|
+
alpha on background on card on muted
|
|
250
|
+
22% 1.065 1.098 1.081
|
|
251
|
+
40% 1.125 1.188 1.143
|
|
252
|
+
60% 1.198 1.309 1.236
|
|
253
|
+
100% 1.345 1.584 1.428
|
|
254
|
+
|
|
255
|
+
40% keeps a divider quiet on `--background` (1.125), where most of this
|
|
256
|
+
package's dividers sit, while the white card's fill step does the
|
|
257
|
+
containing; 60% is far enough above it (1.309 vs 1.198) to read as a
|
|
258
|
+
DIFFERENT decision, short of the 1.584 that reads as a box.
|
|
259
|
+
|
|
260
|
+
DARK is 60% / 80% — the tiers no longer collapse there. They used to:
|
|
261
|
+
the old dark border (L 0.25) was already at the edge of visible at full
|
|
262
|
+
strength (1.158 on card), so a softened tier was not a quieter line but
|
|
263
|
+
no line, and dark ran both tiers at 100%. The ladder revision lifted the
|
|
264
|
+
dark border to L 0.365, and the same measurement now leaves room to
|
|
265
|
+
spare:
|
|
222
266
|
|
|
223
267
|
alpha on background on card on muted
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
simply not there.
|
|
232
|
-
The card edge is 60% rather than the reference's 55% because ours has to
|
|
233
|
-
clear the soft tier by enough to read as a DIFFERENT decision (1.176 vs
|
|
234
|
-
1.108), while our card already carries a fill step of its own (L 0.97 on a
|
|
235
|
-
1.00 background) that the reference's card — the same colour as its
|
|
236
|
-
background — does not have.
|
|
237
|
-
|
|
238
|
-
DARK INVERTS: both tiers are FULL strength. Same measurement, our dark
|
|
239
|
-
ramp, and it forces the opposite answer. Dark `--border` (L 0.25) is
|
|
240
|
-
already at the edge of visible at 100% — 1.212 on background, 1.158 on
|
|
241
|
-
card, 1.085 on muted — and the same 40% takes those to 1.057 / 1.048 /
|
|
242
|
-
1.023. That is not a quieter line, it is no line. A tier system that
|
|
243
|
-
erases the thing it is tiering is worse than no tiers, so dark collapses
|
|
244
|
-
the three to one. */
|
|
268
|
+
60% 1.320 1.265 1.173
|
|
269
|
+
80% 1.489 1.389 1.253
|
|
270
|
+
100% 1.716 1.553 1.339
|
|
271
|
+
|
|
272
|
+
The soft tier at 60% clears the 1.07 hairline floor on every surface it
|
|
273
|
+
divides, and the card edge at 80% sits clearly above it — same method,
|
|
274
|
+
opposite conclusion, because the border colour itself moved. */
|
|
245
275
|
--border-soft: color-mix(in oklch, hsl(var(--border)) 40%, transparent);
|
|
246
276
|
--card-edge: color-mix(in oklch, hsl(var(--border)) 60%, transparent);
|
|
277
|
+
|
|
278
|
+
/* ── Elevation shadows ───────────────────────────────────────────────────
|
|
279
|
+
Two foreground-tinted lifts, so elevation is a token rather than an
|
|
280
|
+
arbitrary value at each call site. `--shadow-raised` promotes the proven
|
|
281
|
+
floating-composer values (src/web-react/chat-composer.tsx) unchanged;
|
|
282
|
+
`--shadow-overlay` is the higher lift for popovers and dialogs. Dark
|
|
283
|
+
doubles the alpha — the same shadow over a near-black surface reads at
|
|
284
|
+
roughly half its light-theme strength, so the dark theme compensates at
|
|
285
|
+
the token, not at every component. */
|
|
286
|
+
--shadow-raised: 0 1px 2px hsl(var(--foreground) / 0.05), 0 12px 28px hsl(var(--foreground) / 0.07);
|
|
287
|
+
--shadow-overlay: 0 2px 6px hsl(var(--foreground) / 0.06), 0 16px 40px hsl(var(--foreground) / 0.1);
|
|
247
288
|
}
|
|
248
289
|
|
|
249
290
|
/**
|
|
@@ -286,31 +327,31 @@
|
|
|
286
327
|
ladder and only differ in which stop each role picks.
|
|
287
328
|
`--warning-foreground` (dark text on a solid gold chip) is theme-invariant
|
|
288
329
|
and is therefore absent, not omitted: the cascade already carries it. */
|
|
289
|
-
--background: var(--neutral-
|
|
330
|
+
--background: var(--neutral-19-hsl);
|
|
290
331
|
--foreground: var(--neutral-94-hsl);
|
|
291
|
-
--card: var(--neutral-
|
|
332
|
+
--card: var(--neutral-24-hsl);
|
|
292
333
|
--card-foreground: var(--neutral-94-hsl);
|
|
293
|
-
--popover: var(--neutral-
|
|
334
|
+
--popover: var(--neutral-33-hsl);
|
|
294
335
|
--popover-foreground: var(--neutral-94-hsl);
|
|
295
336
|
/* 74% L (brand's #818CF8 intent) so primary clears AA as TEXT on a primary/10
|
|
296
337
|
tint in dark. That lightness is also why the foreground has to INVERT here:
|
|
297
338
|
the light theme's white-on-indigo is 6.01:1, but the same white on this
|
|
298
339
|
74%-L lavender rgb(137,137,245) is 3.02:1 — measured failing on the
|
|
299
|
-
"Approve & run" button. A dark foreground on the same fill is 6.
|
|
340
|
+
"Approve & run" button. A dark foreground on the same fill is 6.27:1, so
|
|
300
341
|
the solid button reads in both themes and the tint keeps its AA as text. */
|
|
301
342
|
--primary: 239 84% 74%;
|
|
302
343
|
--primary-foreground: var(--neutral-16-hsl);
|
|
303
|
-
--secondary: var(--neutral-
|
|
344
|
+
--secondary: var(--neutral-28-hsl);
|
|
304
345
|
--secondary-foreground: var(--neutral-94-hsl);
|
|
305
|
-
--muted: var(--neutral-
|
|
346
|
+
--muted: var(--neutral-28-hsl);
|
|
306
347
|
--muted-foreground: var(--neutral-70-hsl);
|
|
307
|
-
--accent: var(--neutral-
|
|
348
|
+
--accent: var(--neutral-28-hsl);
|
|
308
349
|
--accent-foreground: var(--neutral-94-hsl);
|
|
309
350
|
--destructive: 348 90% 68%;
|
|
310
|
-
--destructive-foreground: var(--neutral-
|
|
351
|
+
--destructive-foreground: var(--neutral-24-hsl);
|
|
311
352
|
/* @see the :root declaration — this is the tier that re-themes. */
|
|
312
353
|
--warning-strong: 40 94% 56%;
|
|
313
|
-
--border: var(--neutral-
|
|
354
|
+
--border: var(--neutral-36-hsl);
|
|
314
355
|
--input: var(--neutral-22-hsl);
|
|
315
356
|
--ring: 239 84% 74%;
|
|
316
357
|
--success: 160 70% 52%;
|
|
@@ -319,10 +360,16 @@
|
|
|
319
360
|
|
|
320
361
|
--canvas-backdrop: hsl(var(--neutral-16-hsl));
|
|
321
362
|
|
|
322
|
-
/* The
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
363
|
+
/* The dark tiers, re-joined. The border is now strong enough (L 0.365) that
|
|
364
|
+
softening leaves a visible line — see the measurement in the :root block:
|
|
365
|
+
60% reads 1.265 on the card, where the old border at FULL strength read
|
|
366
|
+
1.158. Dark runs the same three tiers as light, one step stronger. */
|
|
367
|
+
--border-soft: color-mix(in oklch, hsl(var(--border)) 60%, transparent);
|
|
368
|
+
--card-edge: color-mix(in oklch, hsl(var(--border)) 80%, transparent);
|
|
369
|
+
|
|
370
|
+
/* Doubled alphas against the near-black surfaces — @see :root. */
|
|
371
|
+
--shadow-raised: 0 1px 2px hsl(var(--foreground) / 0.14), 0 12px 28px hsl(var(--foreground) / 0.22);
|
|
372
|
+
--shadow-overlay: 0 2px 6px hsl(var(--foreground) / 0.12), 0 16px 40px hsl(var(--foreground) / 0.2);
|
|
326
373
|
}
|
|
327
374
|
|
|
328
375
|
/**
|
|
@@ -8,9 +8,10 @@ export { InteractionData, InteractionOutcome, InteractionRequest } from '@tangle
|
|
|
8
8
|
import { e as ChatMentionPart, a as ChatAttachmentPart } from '../parts-BqIHMdyu.js';
|
|
9
9
|
export { s as attachmentInputToPart, t as attachmentKindForMime, u as attachmentPartsFromMessageParts, x as isChatAttachmentPart, H as mentionInputToPart, I as mentionPartsFromMessageParts } from '../parts-BqIHMdyu.js';
|
|
10
10
|
import { E as EvidenceEntry, g as ExceptionEntry, b as WorkProductProvenance, P as ProfileBacktestSummary, Q as QualityCheck, W as WorkProductPersistedPart, h as WorkProductStatus } from '../types-CCeYywdS.js';
|
|
11
|
-
export { a as AgentSessionControls, A as AgentSessionControlsProps, C as ComposerMentionProp, D as
|
|
11
|
+
export { a as AgentSessionControls, A as AgentSessionControlsProps, C as ComposerMentionProp, D as DEFAULT_EFFORT_LEVELS, b as DEFAULT_MENTION_EMPTY_TEXT, c as DEFAULT_MENTION_LIMIT, E as EFFORT_METER_SEGMENTS, d as EffortLevel, e as EffortMeter, f as EffortPicker, g as EffortPickerProps, I as INDEX_REFRESH_AFTER_MS, M as MentionItem, h as ModelPicker, i as ModelPickerProps, O as OVERLAY_SHADOW, j as UseFileMentionsOptions, U as UseFileMentionsResult, k as effortMeterFill, r as rankFileMentions, u as useFileMentions, l as usePending, m as usePopover } from '../agent-session-controls-1q1XR3j8.js';
|
|
12
12
|
import { a as ChatAttachmentKind, b as ChatAttachmentInput } from '../wire-DOZ-O6hD.js';
|
|
13
13
|
export { C as ChatMentionKind, e as ChatTurnFilePartInput, d as ChatTurnPartInput, c as ChatTurnRequestPayload, D as DISPATCH_MAX_MEDIA_PARTS, i as DISPATCH_MAX_PARTS, j as DISPATCH_REQUEST_MAX_BYTES, k as DISPATCH_STRUCTURAL_RESERVE_BYTES, F as FileMention, P as ProducerErrorEvent, m as ProducerNoticeEvent, n as ProducerPassthroughEvent, o as ProducerPassthroughEventType, p as ProducerReasoningEvent, q as ProducerTextEvent, r as ProducerToolCallEvent, s as ProducerToolResultEvent, t as ProducerUsageEvent, u as ProducerWireEvent, w as base64WireLen, x as buildMentionPromptBlock, y as chatTurnRequestInit, z as fileMentionsToParts, B as mediaTypeForMentionPath, E as mentionKindForPath } from '../wire-DOZ-O6hD.js';
|
|
14
|
+
import { Harness } from '../harness/index.js';
|
|
14
15
|
import { S as StepAgentActivity } from '../agent-activity-C8ZG0F0M.js';
|
|
15
16
|
import { F as FlowTrace } from '../flow-types-CJxEmaRy.js';
|
|
16
17
|
import { a as ReviewQueueItem, c as ReviewQueueState } from '../queue-VTBA5ONX.js';
|
|
@@ -22,7 +23,6 @@ import { AsyncResourceState, AsyncEmptySpec } from './async/index.js';
|
|
|
22
23
|
import { CatalogModel } from '../catalog/index.js';
|
|
23
24
|
export { a as ATTACHMENT_ACCEPT, e as FileIndexReadyResponse, f as FileIndexResponse, g as FileIndexWarmingResponse } from '../attachment-validation-BfJDBU1g.js';
|
|
24
25
|
export { a as attachmentPartKey } from '../stream-normalizer-DKRxyVlZ.js';
|
|
25
|
-
import '../harness/index.js';
|
|
26
26
|
import '../billing/index.js';
|
|
27
27
|
|
|
28
28
|
/** Represent durable plan decisions as either approved or rejected */
|
|
@@ -936,6 +936,34 @@ interface ProviderLogoProps {
|
|
|
936
936
|
/** Real brand mark when we have one; tinted monogram otherwise. */
|
|
937
937
|
declare function ProviderLogo({ provider, size }: ProviderLogoProps): ReactNode;
|
|
938
938
|
|
|
939
|
+
/**
|
|
940
|
+
* Per-harness brand marks for the canonical pickers — the same marks the
|
|
941
|
+
* legacy sandbox-ui harness picker (`dashboard/harness-logo.tsx`) shipped,
|
|
942
|
+
* vendored as inline SVG so `/web-react` stays dependency-free beyond React:
|
|
943
|
+
* sandbox-ui (and its `@lobehub/icons-static-svg` bundle) is an OPTIONAL peer
|
|
944
|
+
* the canonical pickers must not force on a consumer. Geometry is the lobehub
|
|
945
|
+
* single-color artwork, rendered in `currentColor` exactly as the legacy
|
|
946
|
+
* component painted it (a foreground-filled CSS mask), so every mark tracks
|
|
947
|
+
* the theme. Harnesses with no published brand mark get an honest inline
|
|
948
|
+
* lucide glyph — bot / plug / terminal, the same fallbacks the legacy picker
|
|
949
|
+
* used — and an unknown id falls back to the neutral bot. Data-record
|
|
950
|
+
* structure mirrors `./provider-logo`.
|
|
951
|
+
*/
|
|
952
|
+
|
|
953
|
+
interface HarnessGlyphProps {
|
|
954
|
+
/** Harness to mark. Typed as the canonical union; an out-of-union runtime
|
|
955
|
+
* value still renders — it gets the neutral fallback glyph. */
|
|
956
|
+
harness: Harness;
|
|
957
|
+
className?: string;
|
|
958
|
+
}
|
|
959
|
+
/**
|
|
960
|
+
* Brand mark for a harness — size it from the call site (`className="h-4
|
|
961
|
+
* w-4"`). Unknown ids render the neutral bot, never an invented logo.
|
|
962
|
+
* `data-glyph` names the resolved mark so tests and stories can assert
|
|
963
|
+
* brand-vs-fallback without snapshotting path data.
|
|
964
|
+
*/
|
|
965
|
+
declare function HarnessGlyph({ harness, className }: HarnessGlyphProps): ReactNode;
|
|
966
|
+
|
|
939
967
|
/**
|
|
940
968
|
* Smooth text reveal — turns chunky network deltas into a continuous
|
|
941
969
|
* typewriter paint. Streamed turns arrive in 100-500ms slabs (model burst,
|
|
@@ -1919,94 +1947,6 @@ interface RecordGridProps {
|
|
|
1919
1947
|
*/
|
|
1920
1948
|
declare function RecordGrid({ columns, caption, state, empty, onCreate, onUpdate, onDelete, newRowDefaults, addLabel, locale, toolbar, loadingRowCount, className, }: RecordGridProps): react.JSX.Element;
|
|
1921
1949
|
|
|
1922
|
-
/**
|
|
1923
|
-
* Keyboard + pointer model for a trigger-and-popover pair, dependency-free.
|
|
1924
|
-
* Outside-mousedown and Escape both close; Escape also returns focus to the
|
|
1925
|
-
* trigger so keyboard users aren't dropped at the top of the document. The
|
|
1926
|
-
* returned `triggerProps` carry the ARIA contract (`aria-haspopup`/
|
|
1927
|
-
* `aria-expanded`); spread them onto the trigger button.
|
|
1928
|
-
*/
|
|
1929
|
-
declare function usePopover(open: boolean, setOpen: (open: boolean) => void): {
|
|
1930
|
-
containerRef: react.RefObject<HTMLDivElement | null>;
|
|
1931
|
-
triggerRef: react.RefObject<HTMLButtonElement | null>;
|
|
1932
|
-
triggerProps: {
|
|
1933
|
-
ref: react.RefObject<HTMLButtonElement | null>;
|
|
1934
|
-
'aria-haspopup': true;
|
|
1935
|
-
'aria-expanded': boolean;
|
|
1936
|
-
};
|
|
1937
|
-
};
|
|
1938
|
-
/**
|
|
1939
|
-
* Guard an async action against double-submit. `run` ignores re-entrant calls
|
|
1940
|
-
* while a promise is in flight and flips `pending` so the caller can disable
|
|
1941
|
-
* the control — the fix for double-charge / double-approve on a slow network.
|
|
1942
|
-
* Settles (success or throw) before clearing, and no-ops state updates after
|
|
1943
|
-
* unmount.
|
|
1944
|
-
*/
|
|
1945
|
-
declare function usePending(): {
|
|
1946
|
-
pending: boolean;
|
|
1947
|
-
run: (action: () => void | Promise<void>) => void;
|
|
1948
|
-
};
|
|
1949
|
-
interface ModelPickerProps {
|
|
1950
|
-
value: string;
|
|
1951
|
-
onChange: (id: string) => void;
|
|
1952
|
-
/** Catalogue models — from `GET`ing the app's catalogue route (see
|
|
1953
|
-
* `runtime/model-catalog`), plus any product-specific entries appended. */
|
|
1954
|
-
models: CatalogModel[];
|
|
1955
|
-
loading?: boolean;
|
|
1956
|
-
/** Render a provider logo/badge; default is a generic sparkle. */
|
|
1957
|
-
renderProviderBadge?: (provider: string) => ReactNode;
|
|
1958
|
-
/** Section label for `featured` models. */
|
|
1959
|
-
recommendedLabel?: string;
|
|
1960
|
-
/** Pin a labeled section to the TOP of the list (above Recommended) for the
|
|
1961
|
-
* models a product wants surfaced first — e.g. a tuner app's own fine-tuned
|
|
1962
|
-
* models (`{ label: 'Your Fine-Tuned Models', match: (m) => m.provider === 'tuner' }`).
|
|
1963
|
-
* Matching models are shown only in this section, not duplicated below. */
|
|
1964
|
-
priorityGroup?: {
|
|
1965
|
-
label: string;
|
|
1966
|
-
match: (model: CatalogModel) => boolean;
|
|
1967
|
-
};
|
|
1968
|
-
}
|
|
1969
|
-
/**
|
|
1970
|
-
* Searchable model picker pill + popover: a featured/recommended section
|
|
1971
|
-
* first, then per-provider groups in catalogue order (the server already
|
|
1972
|
-
* sorts providers by tier).
|
|
1973
|
-
*
|
|
1974
|
-
* This is the CANONICAL ecosystem model picker (see "UI chrome ownership
|
|
1975
|
-
* (picker canon)" in AGENTS.md). sandbox-ui's `dashboard/ModelPicker` is
|
|
1976
|
-
* legacy — deprecated, frozen, removed at sandbox-ui's next major; new code
|
|
1977
|
-
* belongs here.
|
|
1978
|
-
*/
|
|
1979
|
-
declare function ModelPicker({ value, onChange, models, loading, renderProviderBadge, recommendedLabel, priorityGroup }: ModelPickerProps): react.JSX.Element;
|
|
1980
|
-
/** One reasoning-budget level: the engine `id` is unchanged (the value the
|
|
1981
|
-
* product sends to the loop); only the user-facing `label` is renamed to the
|
|
1982
|
-
* plainer "how hard should it think" vocabulary from docs/product-surfaces.md.
|
|
1983
|
-
* `low`→Quick, `medium`→Standard, `high`→Extended. The mapping is overridable
|
|
1984
|
-
* via `EffortPickerProps.levels`, so a product can relabel without losing the
|
|
1985
|
-
* ids the runtime expects. */
|
|
1986
|
-
interface EffortLevel {
|
|
1987
|
-
id: string;
|
|
1988
|
-
label: string;
|
|
1989
|
-
}
|
|
1990
|
-
declare const DEFAULT_EFFORT_LEVELS: readonly EffortLevel[];
|
|
1991
|
-
interface EffortPickerProps {
|
|
1992
|
-
value: string;
|
|
1993
|
-
onChange: (id: string) => void;
|
|
1994
|
-
/** Selectable levels (engine id + user-facing label). Defaults to the plain
|
|
1995
|
-
* "Thinking" vocabulary; override to relabel without changing the ids the
|
|
1996
|
-
* runtime receives. */
|
|
1997
|
-
levels?: readonly EffortLevel[];
|
|
1998
|
-
/** Prefix shown before the active level on the pill — the "what is this"
|
|
1999
|
-
* context the bare value lacked. Default "Thinking". Pass '' to hide it. */
|
|
2000
|
-
label?: string;
|
|
2001
|
-
}
|
|
2002
|
-
/** Thinking-budget selector pill, styled to match {@link ModelPicker}. Show
|
|
2003
|
-
* it only when the selected model `supportsReasoning`. "Thinking" is the
|
|
2004
|
-
* plain-English name for what was internally called "effort".
|
|
2005
|
-
*
|
|
2006
|
-
* The CANONICAL ecosystem effort picker — sandbox-ui's reasoning menu (inside
|
|
2007
|
-
* its `chat/AgentSessionControls`) is legacy and frozen. */
|
|
2008
|
-
declare function EffortPicker({ value, onChange, levels, label }: EffortPickerProps): react.JSX.Element;
|
|
2009
|
-
|
|
2010
1950
|
/** Describe metrics related to a chat message including model, token counts, and duration */
|
|
2011
1951
|
interface ChatMessageMetrics {
|
|
2012
1952
|
modelUsed?: string;
|
|
@@ -2202,4 +2142,4 @@ declare function useThinkingSeconds(active: boolean): number;
|
|
|
2202
2142
|
*/
|
|
2203
2143
|
declare function ChatMessages({ messages, messageSize, chrome, models, renderMarkdown, renderExtras, durableCards, userLabel, agentLabel, loading, approval, onToolCallClick, toolRenderers, error, onRetry, renderEmpty, emptyState, header, resolveAttachmentUrl, workProductCards, }: ChatMessagesProps): react.JSX.Element;
|
|
2204
2144
|
|
|
2205
|
-
export { type ActivityTone, type AgentActivityPage, AgentActivityPanel, type AgentActivityPanelProps, type AgentActivityRecord, type AttachmentFileResult, CatalogModel, ChatAttachmentInput, ChatAttachmentKind, ChatAttachmentPart, ChatComposer, type ChatComposerProps, type ChatEmptyDoor, ChatEmptyState, type ChatEmptyStateProps, ChatInteraction, ChatInteractionField, type ChatInteractionRestoreMode, ChatInteractionStatus, ChatMentionPart, type ChatMessageMetrics, type ChatMessageSegment, ChatMessages, type ChatMessagesProps, ChatSelectField, type ChatStreamCallbacks, type ChatStreamToolCall, type ChatStreamToolResult, type ChatToolCallInfo, type ChatUiMessage, type ComposerFile, type ComposerFilePart, type ComposerSendFailure, type ComposerSendHandler, type ComposerSendOutcome, type ComposerSendPartsHandler, type ComposerSendRejected, type ComposerSendResult, type ConsumeChatStreamResult,
|
|
2145
|
+
export { type ActivityTone, type AgentActivityPage, AgentActivityPanel, type AgentActivityPanelProps, type AgentActivityRecord, type AttachmentFileResult, CatalogModel, ChatAttachmentInput, ChatAttachmentKind, ChatAttachmentPart, ChatComposer, type ChatComposerProps, type ChatEmptyDoor, ChatEmptyState, type ChatEmptyStateProps, ChatInteraction, ChatInteractionField, type ChatInteractionRestoreMode, ChatInteractionStatus, ChatMentionPart, type ChatMessageMetrics, type ChatMessageSegment, ChatMessages, type ChatMessagesProps, ChatSelectField, type ChatStreamCallbacks, type ChatStreamToolCall, type ChatStreamToolResult, type ChatToolCallInfo, type ChatUiMessage, type ComposerFile, type ComposerFilePart, type ComposerSendFailure, type ComposerSendHandler, type ComposerSendOutcome, type ComposerSendPartsHandler, type ComposerSendRejected, type ComposerSendResult, type ConsumeChatStreamResult, DEFAULT_PROVENANCE_CONFIDENCE_POLICY, type DurableChatCard, DurableChatCards, type DurableChatCardsProps, type DurableInteractionAnswerSubmitterOptions, DurablePlanCard, type DurablePlanCardProps, DurablePlanClientError, type DurablePlanCurrentInput, type DurablePlanDecision, type DurablePlanDecisionClient, type DurablePlanDecisionClientOptions, type DurablePlanDecisionInput, type DurablePlanDecisionResult, type DurablePlanFollowUpReceipt, EMPTY_RECORD_GRID_OVERLAY, EvidenceLineageTable, type EvidenceLineageTableProps, ExceptionList, type ExceptionListProps, type FetchSessionPage, type FieldValues, FlowWaterfall, type FlowWaterfallProps, HarnessGlyph, type HarnessGlyphProps, INTERACTION_SUBMIT_TIMEOUT_MESSAGE, INTERACTION_SUBMIT_TIMEOUT_MS, InteractionActionButton, type InteractionAnswerSubmission, type InteractionAnswerSubmitterOptions, InteractionAnswers, type InteractionAttemptStore, InteractionBadge, type InteractionBadgeVariant, InteractionCancelData, InteractionPlanCard, type InteractionPlanCardProps, InteractionQuestionCard, type InteractionQuestionCardProps, InteractionRequestWire, type InteractionSubmitResult, type LinkLikeComponent, type LinkLikeProps, type MentionTextSegment, MessageAttachments, type MessageAttachmentsProps, MissionActivityLane, type MissionActivityLaneProps, PROVENANCE_BASES, type ProposalApprovalHandlers, type ProvenanceBasis, type ProvenanceBasisMeta, type ProvenanceConfidencePolicy, type ProvenanceGap, type ProvenanceGapKind, ProvenanceLegend, type ProvenanceLegendProps, type ProvenanceRecord, type ProvenanceSource, type ProvenanceSourceStatus, ProvenanceStamp, type ProvenanceStampProps, type ProvenanceStanding, type ProvenanceStandingMeta, ProvenanceValue, type ProvenanceValueProps, ProviderLogo, type ProviderLogoProps, QualityCheckList, type QualityCheckListProps, QuestionOptionList, type QuestionOptionListProps, RecordGrid, type RecordGridBooleanColumn, type RecordGridCellChange, type RecordGridCellOutcome, type RecordGridCellSource, type RecordGridColumn, type RecordGridColumnBase, type RecordGridCreateOutcome, type RecordGridCurrencyColumn, type RecordGridDateColumn, type RecordGridDependency, type RecordGridNumberColumn, type RecordGridOverlay, type RecordGridProps, type RecordGridRow, type RecordGridRowOutcome, type RecordGridSelectColumn, type RecordGridSelectOption, type RecordGridSourceBasis, type RecordGridTextColumn, type RecordGridValue, type RecordGridWriteOutcome, type RestoreChatInteractionsOptions, ReviewQueueItem, type ReviewQueuePage, ReviewQueuePanel, type ReviewQueuePanelProps, ReviewQueueState, RunDrillIn, type RunDrillInProps, SeatPaywall, type SeatPaywallProps, type SessionActionLabels, type SessionActions, type SessionActionsOptions, type SessionBulkAction, SessionHistoryPanel, type SessionHistoryPanelProps, type SessionHistoryState, type SessionPageQuery, type SmoothRevealOptions, type StreamChatOptions, type SubmitInteractionAnswer, type ToolDetailRenderers, type ToolRunRecord, type ToolRunStep, type UseChatInteractionsOptions, type UseChatInteractionsResult, type UseComposerAttachmentsOptions, type UseComposerAttachmentsResult, type UseDurablePlanFlowOptions, type UseDurablePlanFlowResult, type UseInfiniteScrollOptions, type UseSessionHistoryOptions, type WaterfallRow, WorkProductCard, type WorkProductCardProps, __resetAttachmentFileCacheForTests, activityTone, buildAnswerData, cancelChatInteraction, consumeChatStream, createDurableInteractionAnswerSubmitter, createDurablePlanDecisionClient, createInteractionAnswerSubmitter, createMemoryInteractionAttemptStore, createSessionInteractionAttemptStore, describeProvenance, describeProvenanceSourceStatus, dispatchChatStreamLine, durableChatCardsFromParts, fieldAnswer, fieldValuesFromAnswers, formatActivityCost, formatActivityDuration, formatModelCost, formatRecordGridValue, formatSessionTimestamp, formatTokensPerSecond, hasSecretField, hydrateChatInteractions, interactionStatusLabels, interactionSubmissionSignature, interactionTerminalNotes, isLateAnswerableStatus, isRecordGridCellApplicable, lateAnswerMessage, loadAttachmentFile, loadingProvenanceSources, mergeActivityPages, mergeReviewQueuePages, nextRevealCount, parseRecordGridInput, pendingApprovalOf, projectRecordGridRows, provenanceBasisMeta, provenanceGaps, provenanceNextMove, provenanceStandingMeta, provenanceTriggerLabel, pruneRecordGridOverlay, readRecordGridCell, recordGridEditorText, recordGridFail, recordGridOk, recordGridRowLabel, resolveChatInteraction, resolveProvenanceStanding, responseErrorMessage, restoreChatInteractions, reviewQueueStateLabel, rollUpProvenanceStanding, sameRecordGridValue, segmentMentionContent, settleInteractionSubmit, standingFromConfidence, streamChatTurn, sumRecordGridColumn, terminalizePendingChatInteractions, triggerAttachmentDownload, upsertChatInteraction, useChatInteractions, useComposerAttachments, useDurablePlanFlow, useInfiniteScroll, useSessionActions, useSessionHistory, useSmoothText, useThinkingSeconds, validateRecordGridCell, validateRecordGridRow, waterfallLayout, weakerProvenanceStanding, withRecordGridCreated, withRecordGridRemoved, withRecordGridServerRow, withRecordGridUpdate, withoutRecordGridCreated, withoutRecordGridRemoved, withoutRecordGridUpdate, workProductPartsFromMessageParts, workProductStatusLabel };
|