@workerdeck/ui 0.12.0 → 0.15.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.
- package/README.md +19 -0
- package/build/{SessionPanel-NQ8ksCfj.mjs → SessionPanel-DI1NO4l8.mjs} +223 -163
- package/build/SessionPanel-DI1NO4l8.mjs.map +1 -0
- package/build/{SessionPanel-Dy9lQrOV.d.mts → SessionPanel-J2U8v88q.d.mts} +86 -8
- package/build/index.d.mts +118 -7
- package/build/index.mjs +355 -169
- package/build/index.mjs.map +1 -1
- package/build/workspace.d.mts +13 -1
- package/build/workspace.mjs +7 -2
- package/build/workspace.mjs.map +1 -1
- package/package.json +4 -4
- package/src/components/agent/Composer.tsx +112 -37
- package/src/components/agent/EngineIcon.tsx +97 -0
- package/src/components/agent/Loader.tsx +4 -1
- package/src/components/agent/Message.tsx +12 -5
- package/src/components/agent/QuestionPrompt.tsx +1 -1
- package/src/components/agent/SessionBrowser.tsx +266 -138
- package/src/components/agent/SessionPanel.tsx +149 -48
- package/src/components/agent/SessionWorkspace.tsx +17 -0
- package/src/components/agent/StatusBar.tsx +58 -12
- package/src/components/agent/Transcript.tsx +2 -3
- package/src/components/agent/line-prompt.tsx +2 -2
- package/src/components/agent/transcript-variant.tsx +14 -0
- package/src/components/ui/Badge.tsx +6 -1
- package/src/components/ui/Empty.tsx +56 -0
- package/src/components/ui/Menu.tsx +1 -1
- package/src/components/ui/Select.tsx +1 -1
- package/src/components/ui/Splitter.tsx +14 -0
- package/src/components/ui/Tooltip.tsx +1 -1
- package/src/index.ts +11 -1
- package/src/styles/theme.css +77 -15
- package/build/SessionPanel-NQ8ksCfj.mjs.map +0 -1
|
@@ -2,7 +2,7 @@ import * as _$react from "react";
|
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
import { LucideIcon } from "lucide-react";
|
|
4
4
|
import { ModelOption, PermissionMode } from "@workerdeck/protocol";
|
|
5
|
-
import { ConnectionState, TranscriptState } from "@workerdeck/react";
|
|
5
|
+
import { ConnectionState, TranscriptState, UseToolCallHostOptions } from "@workerdeck/react";
|
|
6
6
|
import { WorkerDeckClient } from "@workerdeck/client";
|
|
7
7
|
|
|
8
8
|
//#region src/components/agent/PermissionModeSelect.d.ts
|
|
@@ -127,6 +127,19 @@ declare function TranscriptDensityProvider({
|
|
|
127
127
|
children: ReactNode;
|
|
128
128
|
}): _$react.JSX.Element;
|
|
129
129
|
declare function useTranscriptDensity(): TranscriptDensity;
|
|
130
|
+
/**
|
|
131
|
+
* The typeface the panel runs in.
|
|
132
|
+
*
|
|
133
|
+
* `sans` is the host's UI font; `mono` repoints the sans token at the mono stack
|
|
134
|
+
* for the panel's subtree (see the `[data-agent-font='mono']` rule in
|
|
135
|
+
* `theme.css`), so the transcript reads as part of a terminal rather than as a
|
|
136
|
+
* web app beside one.
|
|
137
|
+
*
|
|
138
|
+
* No context and no hook, unlike variant and density: nothing branches on it in
|
|
139
|
+
* JS. It is one attribute on the panel root and the cascade does the rest, which
|
|
140
|
+
* is also what keeps it from leaking past the panel.
|
|
141
|
+
*/
|
|
142
|
+
type TranscriptFont = 'sans' | 'mono';
|
|
130
143
|
//#endregion
|
|
131
144
|
//#region src/components/agent/SessionPanel.d.ts
|
|
132
145
|
interface SessionPanelProps {
|
|
@@ -172,6 +185,17 @@ interface SessionPanelProps {
|
|
|
172
185
|
* take the menu, or it has nowhere left to go.
|
|
173
186
|
*/
|
|
174
187
|
statusSurface?: 'internal' | 'external';
|
|
188
|
+
/**
|
|
189
|
+
* Which end of the panel the status bar sits at. Default `top`.
|
|
190
|
+
*
|
|
191
|
+
* `bottom` is the editor convention — VS Code's status bar runs along the
|
|
192
|
+
* foot of the window — and suits a host where the panel *is* the editor area
|
|
193
|
+
* and the chrome above it already belongs to the app. Placement only; the bar
|
|
194
|
+
* is the same bar, with the same `⋯` menu in its trailing slot, so this
|
|
195
|
+
* composes with {@link statusSurface} rather than competing with it (external
|
|
196
|
+
* still means "there isn't one").
|
|
197
|
+
*/
|
|
198
|
+
statusPlacement?: 'top' | 'bottom';
|
|
175
199
|
/** Where `panelSurface: 'external'` routes opens. Absent = the affordances
|
|
176
200
|
* (status-bar clicks, `/mcp`) become inert rather than half-working. */
|
|
177
201
|
onOpenPanel?: (panel: SessionSurfacePanel) => void;
|
|
@@ -194,18 +218,36 @@ interface SessionPanelProps {
|
|
|
194
218
|
* dock is allowed to be roomy.
|
|
195
219
|
*/
|
|
196
220
|
transcriptDensity?: TranscriptDensity;
|
|
221
|
+
/**
|
|
222
|
+
* The panel's typeface — `'sans'` (default, the host's UI font) or `'mono'`,
|
|
223
|
+
* which repoints the sans token at the mono stack **for this subtree only**.
|
|
224
|
+
*
|
|
225
|
+
* The third reader preference beside variant and density, and the same kind of
|
|
226
|
+
* thing: how a transcript should read is a property of the person reading it.
|
|
227
|
+
* Scoped to the panel because that is the whole claim — a monospace agent view
|
|
228
|
+
* next to an ordinary app, not a monospace app.
|
|
229
|
+
*/
|
|
230
|
+
transcriptFont?: TranscriptFont;
|
|
197
231
|
/**
|
|
198
232
|
* Where the session's own controls — model and permission mode — live.
|
|
199
233
|
* `'internal'` (default) draws them in the composer's toolbar row.
|
|
200
|
-
* `'
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
234
|
+
* `'status'` draws them in the panel's OWN status bar, beside the readings
|
|
235
|
+
* they act on; the composer collapses to a single line either way. That is
|
|
236
|
+
* VS Code's arrangement without VS Code — a host whose panel carries a status
|
|
237
|
+
* bar of its own (`statusPlacement: 'bottom'`) gets the same streamlined
|
|
238
|
+
* shape without having to host the pickers itself.
|
|
239
|
+
* `'external'` draws neither: the embedder renders the pickers in its own
|
|
240
|
+
* chrome (VS Code's window status bar, where a click opens a QuickPick) and
|
|
241
|
+
* drives them through {@link onControls}.
|
|
242
|
+
*
|
|
243
|
+
* `'status'` needs a status bar to put them in — with
|
|
244
|
+
* `statusSurface: 'external'` there is none, and the two together would hide
|
|
245
|
+
* the controls entirely, so that combination falls back to the composer.
|
|
204
246
|
*
|
|
205
247
|
* The options themselves ride {@link SessionVitals} — an embedder must not
|
|
206
248
|
* attach a second time to learn what the models are.
|
|
207
249
|
*/
|
|
208
|
-
controlsSurface?: 'internal' | 'external';
|
|
250
|
+
controlsSurface?: 'internal' | 'external' | 'status';
|
|
209
251
|
/**
|
|
210
252
|
* Handed the session's setters once the panel is live, and `undefined` on
|
|
211
253
|
* unmount. The counterpart to `controlsSurface: 'external'`: vitals carry the
|
|
@@ -238,6 +280,38 @@ interface SessionPanelProps {
|
|
|
238
280
|
itemCount: number;
|
|
239
281
|
since?: number;
|
|
240
282
|
};
|
|
283
|
+
/**
|
|
284
|
+
* A viewer, not a seat at the session: transcript, status bar and panels as
|
|
285
|
+
* usual, but no composer and no approval prompts.
|
|
286
|
+
*
|
|
287
|
+
* For a surface that is *about* a run rather than in it — the dashboard's job
|
|
288
|
+
* detail, where the session belongs to the queue and typing into it would be a
|
|
289
|
+
* second operator arriving mid-run. Deliberately not "disabled controls": a
|
|
290
|
+
* greyed-out composer says the session is busy, an absent one says this screen
|
|
291
|
+
* does not drive it. The attach is still live and read paths are untouched,
|
|
292
|
+
* so the transcript streams and the file tree browses.
|
|
293
|
+
*
|
|
294
|
+
* It does **not** claim to be an authorization boundary. Anything holding this
|
|
295
|
+
* client can still send; what it removes is the affordance, and the honest
|
|
296
|
+
* enforcement lives on the gateway.
|
|
297
|
+
*/
|
|
298
|
+
readOnly?: boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Options for the browser tool host this panel runs on its own attach — or
|
|
301
|
+
* `false` to run none at all.
|
|
302
|
+
*
|
|
303
|
+
* The panel hosts server-bridged tool calls itself, because the bridge asks
|
|
304
|
+
* the *first attached client* and the panel owns the session's one attach: an
|
|
305
|
+
* embedder subscribing to the same handle separately would find this host
|
|
306
|
+
* already answering, and refusing, anything outside its allow-list. So the
|
|
307
|
+
* options come through here.
|
|
308
|
+
*
|
|
309
|
+
* Merged over the defaults, which host `eval_script` alone. Widening `tools`
|
|
310
|
+
* is a real grant — this tab will execute what the gateway asks it to for
|
|
311
|
+
* every name in the list — so it names them explicitly rather than accepting
|
|
312
|
+
* a wildcard.
|
|
313
|
+
*/
|
|
314
|
+
toolHost?: UseToolCallHostOptions | false;
|
|
241
315
|
className?: string;
|
|
242
316
|
}
|
|
243
317
|
/** What an embedder needs to *change* a session it doesn't own the attach for. */
|
|
@@ -304,16 +378,20 @@ declare function SessionPanel({
|
|
|
304
378
|
header,
|
|
305
379
|
panelSurface,
|
|
306
380
|
statusSurface,
|
|
381
|
+
statusPlacement,
|
|
307
382
|
onOpenPanel,
|
|
308
383
|
onVitals,
|
|
309
384
|
transcriptVariant,
|
|
310
385
|
transcriptDensity,
|
|
386
|
+
transcriptFont,
|
|
311
387
|
controlsSurface,
|
|
312
388
|
onControls,
|
|
313
389
|
focusComposerOnClick,
|
|
314
390
|
unseen,
|
|
391
|
+
readOnly,
|
|
392
|
+
toolHost,
|
|
315
393
|
className
|
|
316
394
|
}: SessionPanelProps): _$react.JSX.Element;
|
|
317
395
|
//#endregion
|
|
318
|
-
export {
|
|
319
|
-
//# sourceMappingURL=SessionPanel-
|
|
396
|
+
export { PermissionModeSelectProps as _, SessionVitals as a, TranscriptFont as c, useTranscriptDensity as d, useTranscriptVariant as f, PermissionModeSelect as g, PermissionModeMeta as h, SessionSurfacePanel as i, TranscriptVariant as l, PermissionModeChoice as m, SessionPanel as n, TranscriptDensity as o, PERMISSION_MODES as p, SessionPanelProps as r, TranscriptDensityProvider as s, SessionControls as t, TranscriptVariantProvider as u, permissionModeChoices as v, permissionModeMeta as y };
|
|
397
|
+
//# sourceMappingURL=SessionPanel-J2U8v88q.d.mts.map
|
package/build/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as formatDuration, c as formatRelativeTime, d as rateLimitWindowSeconds, f as toolInputPreview, i as formatCountdown, l as formatTokens, n as formatBytes, o as formatRateLimitWindow, r as formatCost, s as formatRateLimitWindowLong, t as formatAgoPrecise, u as friendlyModel } from "./format-ljc3lKpA.mjs";
|
|
2
|
-
import { _ as
|
|
2
|
+
import { _ as PermissionModeSelectProps, a as SessionVitals, c as TranscriptFont, d as useTranscriptDensity, f as useTranscriptVariant, g as PermissionModeSelect, h as PermissionModeMeta, i as SessionSurfacePanel, l as TranscriptVariant, m as PermissionModeChoice, n as SessionPanel, o as TranscriptDensity, p as PERMISSION_MODES, r as SessionPanelProps, s as TranscriptDensityProvider, t as SessionControls, u as TranscriptVariantProvider, v as permissionModeChoices, y as permissionModeMeta } from "./SessionPanel-J2U8v88q.mjs";
|
|
3
3
|
import * as _$react from "react";
|
|
4
4
|
import { ButtonHTMLAttributes, FunctionComponent, HTMLAttributes, InputHTMLAttributes, ReactElement, ReactNode, Ref, RefObject, TextareaHTMLAttributes } from "react";
|
|
5
5
|
import { VariantProps } from "class-variance-authority";
|
|
@@ -22,7 +22,7 @@ import { WorkerDeckClient } from "@workerdeck/client";
|
|
|
22
22
|
|
|
23
23
|
//#region src/components/ui/Button.d.ts
|
|
24
24
|
declare const buttonVariants: (props?: ({
|
|
25
|
-
variant?: "default" | "
|
|
25
|
+
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | null | undefined;
|
|
26
26
|
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-sm" | null | undefined;
|
|
27
27
|
} & _$class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
28
28
|
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {}
|
|
@@ -218,6 +218,12 @@ interface SplitterProps {
|
|
|
218
218
|
max: number;
|
|
219
219
|
/** Keyboard step. */
|
|
220
220
|
step?: number;
|
|
221
|
+
/**
|
|
222
|
+
* Size to snap back to on a double-click — the convention every pane divider
|
|
223
|
+
* that can be dragged is expected to honour. Omit and a double-click does
|
|
224
|
+
* nothing, which is the honest behaviour when there is no default to mean.
|
|
225
|
+
*/
|
|
226
|
+
defaultValue?: number;
|
|
221
227
|
/** Set when dragging the splitter *away* from the origin should shrink the
|
|
222
228
|
* controlled pane — i.e. the pane is on the right or the bottom. */
|
|
223
229
|
inverted?: boolean;
|
|
@@ -249,11 +255,49 @@ declare function Splitter({
|
|
|
249
255
|
min,
|
|
250
256
|
max,
|
|
251
257
|
step,
|
|
258
|
+
defaultValue,
|
|
252
259
|
inverted,
|
|
253
260
|
'aria-label': label,
|
|
254
261
|
className
|
|
255
262
|
}: SplitterProps): _$react.JSX.Element;
|
|
256
263
|
//#endregion
|
|
264
|
+
//#region src/components/ui/Empty.d.ts
|
|
265
|
+
/**
|
|
266
|
+
* A view with nothing in it: icon, title, description, and at most one action.
|
|
267
|
+
*
|
|
268
|
+
* Centered and given room, because an empty view is the first thing a new
|
|
269
|
+
* install shows and a flush-left sentence in the top corner reads like a bug
|
|
270
|
+
* report. It lives here rather than in one client because every panel that can
|
|
271
|
+
* be empty should be empty the same way — the extension's views and the
|
|
272
|
+
* dashboard's four sidebars are the same shape of thing.
|
|
273
|
+
*
|
|
274
|
+
* **At most one action, and never one the view header already offers.** Creating
|
|
275
|
+
* a session and adding a gateway are the `+` in the native title bar, exclusively
|
|
276
|
+
* — so those empty states point at it in words rather than growing a second
|
|
277
|
+
* button that does the same thing two inches lower. A button here is for the way
|
|
278
|
+
* out of a state the header has no answer to: clearing a filter, widening a
|
|
279
|
+
* scope.
|
|
280
|
+
*/
|
|
281
|
+
declare function Empty({
|
|
282
|
+
icon,
|
|
283
|
+
title,
|
|
284
|
+
description,
|
|
285
|
+
action,
|
|
286
|
+
onAction
|
|
287
|
+
}: {
|
|
288
|
+
icon: ReactNode;
|
|
289
|
+
title: string;
|
|
290
|
+
description?: ReactNode;
|
|
291
|
+
action?: string;
|
|
292
|
+
onAction?: () => void;
|
|
293
|
+
}): _$react.JSX.Element;
|
|
294
|
+
/** A key or icon named inline in an empty state's description — "use the + above". */
|
|
295
|
+
declare function EmptyKey({
|
|
296
|
+
children
|
|
297
|
+
}: {
|
|
298
|
+
children: ReactNode;
|
|
299
|
+
}): _$react.JSX.Element;
|
|
300
|
+
//#endregion
|
|
257
301
|
//#region src/components/ui/ProgressRing.d.ts
|
|
258
302
|
interface ProgressRingProps {
|
|
259
303
|
/** Filled share, 0–100 (clamped). */
|
|
@@ -815,9 +859,12 @@ interface MessageProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
815
859
|
/**
|
|
816
860
|
* One chat turn row.
|
|
817
861
|
*
|
|
818
|
-
* `cards`: user messages sit
|
|
819
|
-
* full-width
|
|
820
|
-
*
|
|
862
|
+
* `cards`: user messages sit in a bubble, assistant content is flat and
|
|
863
|
+
* full-width. Both are **left-aligned**: the transcript is a log read top to
|
|
864
|
+
* bottom, and an editor-shaped host (a full-width session view beside a sessions
|
|
865
|
+
* rail) has no right edge to anchor to — a bubble drifting right in a 1600px
|
|
866
|
+
* column separates a prompt from the reply it produced. The bubble alone is
|
|
867
|
+
* enough to say who spoke.
|
|
821
868
|
*
|
|
822
869
|
* `lines`: both are left-aligned full-width line items behind a gutter glyph —
|
|
823
870
|
* `❯` for what was typed, `●` for what the model said. No bubble: a prompt is
|
|
@@ -1144,8 +1191,18 @@ interface StatusBarProps {
|
|
|
1144
1191
|
onOpenStatus?: () => void;
|
|
1145
1192
|
onOpenContext?: () => void;
|
|
1146
1193
|
onOpenUsage?: () => void;
|
|
1147
|
-
/**
|
|
1194
|
+
/**
|
|
1195
|
+
* The session's own controls (model, permission mode), for
|
|
1196
|
+
* `controlsSurface: 'status'`. They sit at the end of the readings cluster —
|
|
1197
|
+
* status, context, usage, then what you can *change* — rather than out by the
|
|
1198
|
+
* actions menu, because they belong with the session facts they act on.
|
|
1199
|
+
*/
|
|
1200
|
+
controls?: ReactNode;
|
|
1201
|
+
/** Trailing slot — the session-actions menu, at the bar's trailing edge. */
|
|
1148
1202
|
actions?: ReactNode;
|
|
1203
|
+
/** Which edge the bar sits on, so its separating rule goes on the other side.
|
|
1204
|
+
* Placement is the panel's decision; this only styles it. */
|
|
1205
|
+
placement?: 'top' | 'bottom';
|
|
1149
1206
|
className?: string;
|
|
1150
1207
|
}
|
|
1151
1208
|
declare function StatusBar({
|
|
@@ -1155,7 +1212,9 @@ declare function StatusBar({
|
|
|
1155
1212
|
onOpenStatus,
|
|
1156
1213
|
onOpenContext,
|
|
1157
1214
|
onOpenUsage,
|
|
1215
|
+
controls,
|
|
1158
1216
|
actions,
|
|
1217
|
+
placement,
|
|
1159
1218
|
className
|
|
1160
1219
|
}: StatusBarProps): _$react.JSX.Element;
|
|
1161
1220
|
//#endregion
|
|
@@ -1394,8 +1453,37 @@ interface SessionBrowserProps {
|
|
|
1394
1453
|
onRename?: (row: SessionRow, title: string) => void;
|
|
1395
1454
|
/** Rendered when nothing at all exists (as opposed to nothing matching). */
|
|
1396
1455
|
emptyState?: React.ReactNode;
|
|
1456
|
+
/**
|
|
1457
|
+
* Whether the search + facet bar is shown. Defaults to `true` — a list that
|
|
1458
|
+
* *is* the screen shows its controls.
|
|
1459
|
+
*
|
|
1460
|
+
* A host with somewhere better to put the toggle (a view title bar) passes
|
|
1461
|
+
* `false` and owns the boolean itself, the way the VS Code extension does: the
|
|
1462
|
+
* key lives where the commands do. Two rules come with it, and they are why
|
|
1463
|
+
* this hides only the bar and nothing else — **closing the bar never clears
|
|
1464
|
+
* the filters**, and the subset line below it renders either way, so a list
|
|
1465
|
+
* filtered by a control you can't currently see still says so.
|
|
1466
|
+
*/
|
|
1467
|
+
showControls?: boolean;
|
|
1397
1468
|
className?: string;
|
|
1398
1469
|
}
|
|
1470
|
+
/**
|
|
1471
|
+
* How a list row is drawn, in one place, so `SidebarRow` in `web` matches this
|
|
1472
|
+
* exactly rather than approximating it — the dashboard's other three sidebars
|
|
1473
|
+
* are that component, and a sessions list that hovered differently from the
|
|
1474
|
+
* gateways list beside it would read as a different product.
|
|
1475
|
+
*
|
|
1476
|
+
* Two rules are load-bearing:
|
|
1477
|
+
*
|
|
1478
|
+
* - **Fill means hover, and only hover.** It stays on the row whether or not
|
|
1479
|
+
* the row is selected, because a selected row still has to answer the
|
|
1480
|
+
* pointer. Selection gets the gutter instead.
|
|
1481
|
+
* - **`ml-0` on the selected row is not cosmetic.** It hands the accent border
|
|
1482
|
+
* the 4px the margin was holding, so the text does not shift sideways as a
|
|
1483
|
+
* row becomes the selected one. The squared left corners are what let the bar
|
|
1484
|
+
* sit flush against the sidebar edge.
|
|
1485
|
+
*/
|
|
1486
|
+
declare function rowShapeClass(active: boolean): string;
|
|
1399
1487
|
declare function SessionBrowser({
|
|
1400
1488
|
rows,
|
|
1401
1489
|
config,
|
|
@@ -1406,8 +1494,31 @@ declare function SessionBrowser({
|
|
|
1406
1494
|
onDelete,
|
|
1407
1495
|
onRename,
|
|
1408
1496
|
emptyState,
|
|
1497
|
+
showControls,
|
|
1409
1498
|
className
|
|
1410
1499
|
}: SessionBrowserProps): _$react.JSX.Element;
|
|
1500
|
+
/**
|
|
1501
|
+
* State as one glyph on the right edge — a ringing bell when it wants a human, a
|
|
1502
|
+
* spinner while it works, a moon when it is only sleeping. Replaces the text
|
|
1503
|
+
* badge: in a sidebar the word costs more room than it earns, and the states
|
|
1504
|
+
* that matter are the two you can recognise without reading.
|
|
1505
|
+
*/
|
|
1506
|
+
declare function SessionStatusIcon({
|
|
1507
|
+
row
|
|
1508
|
+
}: {
|
|
1509
|
+
row: SessionRow;
|
|
1510
|
+
}): _$react.JSX.Element;
|
|
1511
|
+
//#endregion
|
|
1512
|
+
//#region src/components/agent/EngineIcon.d.ts
|
|
1513
|
+
declare function EngineIcon({
|
|
1514
|
+
engine,
|
|
1515
|
+
model,
|
|
1516
|
+
className
|
|
1517
|
+
}: {
|
|
1518
|
+
engine: string;
|
|
1519
|
+
model?: string;
|
|
1520
|
+
className?: string;
|
|
1521
|
+
}): _$react.JSX.Element;
|
|
1411
1522
|
//#endregion
|
|
1412
1523
|
//#region src/components/agent/SessionEmptyState.d.ts
|
|
1413
1524
|
interface SessionEmptyStateProps {
|
|
@@ -1511,5 +1622,5 @@ declare function toolIcon(toolName: string): LucideIcon;
|
|
|
1511
1622
|
*/
|
|
1512
1623
|
declare function isMutatingTool(toolName: string): boolean;
|
|
1513
1624
|
//#endregion
|
|
1514
|
-
export { AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogTitle, AlertDialogTrigger, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardHeader, CardTitle, type ChipSegment, CodeBlock, type CodeBlockProps, Composer, type ComposerFileMatch, type ComposerHandle, type ComposerProps, ContextDialog, type ContextDialogProps, Conversation, ConversationContent, type ConversationProps, ConversationScrollButton, CopyButton, type CopyButtonProps, Dialog, DialogBody, DialogClose, DialogContent, DialogHeader, DialogRow, DialogTrigger, FileCard, type FileCardProps, type FileDeliveredItem, HostFilesDialog, type HostFilesDialogProps, Input, Loader, McpDialog, type McpDialogProps, Menu, MenuContent, MenuItem, MenuSeparator, MenuTrigger, Message, MessageContent, type MessageProps, ModelSelect, type ModelSelectProps, PERMISSION_MODES, type PermissionModeChoice, type PermissionModeMeta, PermissionModeSelect, type PermissionModeSelectProps, PermissionPrompt, type PermissionPromptProps, ProgressRing, type ProgressRingProps, PromptArea, type PromptAreaHandle, type PromptAreaProps, PromptTokenText, QUESTION_BEHAVIORS, type QuestionBehaviorMeta, QuestionPrompt, type QuestionPromptProps, Reasoning, type ReasoningProps, Response, type ResponseProps, STATUS_META, type Segment, Select, SelectContent, SelectItem, SelectItemText, SelectTrigger, SelectValue, SessionBrowser, type SessionBrowserProps, type SessionControls, SessionEmptyState, type SessionEmptyStateProps, SessionInfoDialog, type SessionInfoDialogProps, SessionList, SessionListItem, type SessionListItemProps, type SessionListProps, SessionPanel, type SessionPanelProps, type SessionSurfacePanel, type SessionVitals, SkillsDialog, type SkillsDialogProps, Spinner, Splitter, type SplitterProps, StatusBar, type StatusBarProps, type TextSegment, Textarea, Tip, Toaster, ToolCallCard, type ToolCallCardProps, type ToolCallItem, TooltipContent, TooltipProvider, Transcript, type TranscriptDensity, TranscriptDensityProvider, type TranscriptProps, type TranscriptVariant, TranscriptVariantProvider, type TriggerConfig, type TriggerSuggestion, UsageDialog, type UsageDialogProps, badgeVariants, buttonVariants, cn, commandTrigger, copyText, formatAgoPrecise, formatBytes, formatCost, formatCountdown, formatDuration, formatRateLimitWindow, formatRateLimitWindowLong, formatRelativeTime, formatTokens, friendlyModel, getChipsByTrigger, hashtagTrigger, isMutatingTool, isSegmentsEmpty, mentionTrigger, parseUserQuestions, permissionModeChoices, permissionModeMeta, plainTextToSegments, rateLimitWindowSeconds, segmentsToPlainText, skillPrompt, toast, toolIcon, toolInputPreview, usePromptAreaState, useTranscriptDensity, useTranscriptVariant };
|
|
1625
|
+
export { AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogTitle, AlertDialogTrigger, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardHeader, CardTitle, type ChipSegment, CodeBlock, type CodeBlockProps, Composer, type ComposerFileMatch, type ComposerHandle, type ComposerProps, ContextDialog, type ContextDialogProps, Conversation, ConversationContent, type ConversationProps, ConversationScrollButton, CopyButton, type CopyButtonProps, Dialog, DialogBody, DialogClose, DialogContent, DialogHeader, DialogRow, DialogTrigger, Empty, EmptyKey, EngineIcon, FileCard, type FileCardProps, type FileDeliveredItem, HostFilesDialog, type HostFilesDialogProps, Input, Loader, McpDialog, type McpDialogProps, Menu, MenuContent, MenuItem, MenuSeparator, MenuTrigger, Message, MessageContent, type MessageProps, ModelSelect, type ModelSelectProps, PERMISSION_MODES, type PermissionModeChoice, type PermissionModeMeta, PermissionModeSelect, type PermissionModeSelectProps, PermissionPrompt, type PermissionPromptProps, ProgressRing, type ProgressRingProps, PromptArea, type PromptAreaHandle, type PromptAreaProps, PromptTokenText, QUESTION_BEHAVIORS, type QuestionBehaviorMeta, QuestionPrompt, type QuestionPromptProps, Reasoning, type ReasoningProps, Response, type ResponseProps, STATUS_META, type Segment, Select, SelectContent, SelectItem, SelectItemText, SelectTrigger, SelectValue, SessionBrowser, type SessionBrowserProps, type SessionControls, SessionEmptyState, type SessionEmptyStateProps, SessionInfoDialog, type SessionInfoDialogProps, SessionList, SessionListItem, type SessionListItemProps, type SessionListProps, SessionPanel, type SessionPanelProps, SessionStatusIcon, type SessionSurfacePanel, type SessionVitals, SkillsDialog, type SkillsDialogProps, Spinner, Splitter, type SplitterProps, StatusBar, type StatusBarProps, type TextSegment, Textarea, Tip, Toaster, ToolCallCard, type ToolCallCardProps, type ToolCallItem, TooltipContent, TooltipProvider, Transcript, type TranscriptDensity, TranscriptDensityProvider, type TranscriptFont, type TranscriptProps, type TranscriptVariant, TranscriptVariantProvider, type TriggerConfig, type TriggerSuggestion, UsageDialog, type UsageDialogProps, badgeVariants, buttonVariants, cn, commandTrigger, copyText, formatAgoPrecise, formatBytes, formatCost, formatCountdown, formatDuration, formatRateLimitWindow, formatRateLimitWindowLong, formatRelativeTime, formatTokens, friendlyModel, getChipsByTrigger, hashtagTrigger, isMutatingTool, isSegmentsEmpty, mentionTrigger, parseUserQuestions, permissionModeChoices, permissionModeMeta, plainTextToSegments, rateLimitWindowSeconds, rowShapeClass, segmentsToPlainText, skillPrompt, toast, toolIcon, toolInputPreview, usePromptAreaState, useTranscriptDensity, useTranscriptVariant };
|
|
1515
1626
|
//# sourceMappingURL=index.d.mts.map
|