@workerdeck/ui 2.7.2 → 2.9.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 +30 -30
- package/build/{SessionPanel-B5FfiBxE.mjs → SessionPanel-BClL7zUS.mjs} +694 -413
- package/build/SessionPanel-BClL7zUS.mjs.map +1 -0
- package/build/{SessionPanel-_lQLhWOw.d.mts → SessionPanel-BVbau2eR.d.mts} +68 -4
- package/build/format.mjs +1 -1
- package/build/index.d.mts +22 -15
- package/build/index.mjs +6 -6
- package/build/index.mjs.map +1 -1
- package/build/scoped.css +26 -2
- package/build/{status-BO9wJloK.mjs → status-kmsBhuFG.mjs} +3 -3
- package/build/status-kmsBhuFG.mjs.map +1 -0
- package/build/workspace.d.mts +3 -2
- package/build/workspace.mjs +7 -8
- package/build/workspace.mjs.map +1 -1
- package/package.json +18 -18
- package/src/components/agent/Composer.tsx +86 -84
- package/src/components/agent/ContextDialog.tsx +1 -1
- package/src/components/agent/EntryIcon.tsx +1 -1
- package/src/components/agent/FileTree.tsx +1 -1
- package/src/components/agent/FileViewer.tsx +1 -1
- package/src/components/agent/HostFilesDialog.tsx +2 -2
- package/src/components/agent/PermissionModeSelect.tsx +2 -2
- package/src/components/agent/PermissionPrompt.tsx +2 -2
- package/src/components/agent/SessionBrowser.tsx +1 -1
- package/src/components/agent/SessionItem.tsx +4 -2
- package/src/components/agent/SessionPanel.tsx +306 -226
- package/src/components/agent/SessionWorkspace.tsx +3 -0
- package/src/components/agent/SkillsDialog.tsx +3 -3
- package/src/components/agent/StatusBar.tsx +1 -1
- package/src/components/agent/TaskList.tsx +2 -2
- package/src/components/agent/TranscriptRows.tsx +1 -1
- package/src/components/agent/UsageDialog.tsx +1 -1
- package/src/components/agent/UsageMeters.tsx +17 -4
- package/src/components/agent/composer-commands.ts +142 -0
- package/src/components/agent/use-path-links.ts +2 -7
- package/src/components/agent/use-subagent-frame.ts +2 -2
- package/src/components/agent/use-transcript-jumps.ts +2 -2
- package/src/components/prompt-area/clipboard-helpers.ts +2 -2
- package/src/components/prompt-area/cursor-helpers.ts +7 -7
- package/src/components/prompt-area/dom-helpers.ts +8 -8
- package/src/components/prompt-area/html-to-markdown.ts +2 -2
- package/src/components/prompt-area/prompt-area-engine.ts +4 -4
- package/src/components/prompt-area/prompt-area-list-ops.ts +10 -10
- package/src/components/prompt-area/prompt-area.tsx +2 -2
- package/src/components/prompt-area/trigger-presets.ts +6 -6
- package/src/components/prompt-area/types.ts +6 -6
- package/src/components/prompt-area/use-chip-editing.ts +8 -8
- package/src/components/prompt-area/use-markdown-mode.ts +3 -3
- package/src/components/prompt-area/use-prompt-area-events.ts +3 -3
- package/src/components/prompt-area/use-prompt-area-keydown.ts +3 -3
- package/src/components/prompt-area/use-prompt-area-state.ts +4 -4
- package/src/components/prompt-area/use-prompt-area.ts +5 -5
- package/src/components/prompt-area/use-trigger-search.ts +1 -1
- package/src/components/terminal/PermissionPrompt.tsx +4 -4
- package/src/components/terminal/affordances.tsx +1 -1
- package/src/components/terminal/file-link.tsx +20 -0
- package/src/components/terminal/height.ts +2 -2
- package/src/components/terminal/items.tsx +2 -2
- package/src/components/terminal/markdown.tsx +31 -5
- package/src/components/terminal/scrubber.tsx +1 -1
- package/src/components/terminal/todos.ts +1 -1
- package/src/components/ui/Splitter.tsx +1 -1
- package/src/index.ts +11 -1
- package/src/lib/context-note.ts +3 -3
- package/src/lib/file-link.ts +70 -0
- package/src/lib/format.ts +2 -2
- package/src/styles/scoped.entry.css +2 -2
- package/src/styles/terminal.css +94 -79
- package/src/styles/theme.css +39 -39
- package/build/SessionPanel-B5FfiBxE.mjs.map +0 -1
- package/build/status-BO9wJloK.mjs.map +0 -1
|
@@ -1,8 +1,58 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from "react";
|
|
2
2
|
import { LucideIcon } from "lucide-react";
|
|
3
|
-
import { ModelOption, PermissionMode, PermissionRequest, SessionTask, SkillInfo, SubagentInfo } from "@workerdeck/protocol";
|
|
3
|
+
import { ModelOption, PermissionMode, PermissionRequest, SessionTask, SkillInfo, SlashCommandInfo, SubagentInfo } from "@workerdeck/protocol";
|
|
4
4
|
import { ClientToolHandler, ConnectionState, TranscriptState, UseToolCallHostOptions } from "@workerdeck/react";
|
|
5
5
|
import { WorkerDeckClient } from "@workerdeck/client";
|
|
6
|
+
//#region src/components/agent/composer-commands.d.ts
|
|
7
|
+
type ClientCommand = {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
argumentHint?: string;
|
|
11
|
+
requiresArgs?: boolean;
|
|
12
|
+
run: (args: string) => boolean;
|
|
13
|
+
};
|
|
14
|
+
type ComposerRow = {
|
|
15
|
+
kind: 'command';
|
|
16
|
+
name: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
argumentHint?: string;
|
|
19
|
+
aliases?: string[];
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'client';
|
|
22
|
+
name: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
argumentHint?: string;
|
|
25
|
+
command: ClientCommand;
|
|
26
|
+
} | {
|
|
27
|
+
kind: 'skill';
|
|
28
|
+
name: string;
|
|
29
|
+
label: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
scope?: string;
|
|
33
|
+
skill: SkillInfo;
|
|
34
|
+
};
|
|
35
|
+
declare function skillPrompt(skill: SkillInfo): string;
|
|
36
|
+
declare function mergeComposerRows(sources: {
|
|
37
|
+
commands?: readonly SlashCommandInfo[];
|
|
38
|
+
clientCommands?: readonly ClientCommand[];
|
|
39
|
+
skills?: readonly SkillInfo[];
|
|
40
|
+
}): ComposerRow[];
|
|
41
|
+
declare function rankComposerRows(query: string, rows: readonly ComposerRow[]): ComposerRow[];
|
|
42
|
+
declare function matchClientCommand(text: string, commands: readonly ClientCommand[]): {
|
|
43
|
+
command: ClientCommand;
|
|
44
|
+
args: string;
|
|
45
|
+
} | undefined;
|
|
46
|
+
type ComposerCommandRow = {
|
|
47
|
+
kind: ComposerRow['kind'];
|
|
48
|
+
name: string;
|
|
49
|
+
label: string;
|
|
50
|
+
description?: string;
|
|
51
|
+
scope?: string;
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
insertText: string;
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
6
56
|
//#region src/components/agent/PermissionModeSelect.d.ts
|
|
7
57
|
type PermissionModeMeta = {
|
|
8
58
|
value: PermissionMode;
|
|
@@ -49,6 +99,18 @@ declare function CopyAction({ text, label }: {
|
|
|
49
99
|
label?: string;
|
|
50
100
|
}): import("react").JSX.Element;
|
|
51
101
|
//#endregion
|
|
102
|
+
//#region src/components/terminal/file-link.d.ts
|
|
103
|
+
type FileLinkOpener = (path: string, line?: number) => void;
|
|
104
|
+
type FileLinkHandle = {
|
|
105
|
+
cwd?: string;
|
|
106
|
+
open: FileLinkOpener;
|
|
107
|
+
};
|
|
108
|
+
declare function FileLinkProvider({ value, children }: {
|
|
109
|
+
value: FileLinkHandle | undefined;
|
|
110
|
+
children: ReactNode;
|
|
111
|
+
}): import("react").JSX.Element;
|
|
112
|
+
declare function useFileLinks(): FileLinkHandle | undefined;
|
|
113
|
+
//#endregion
|
|
52
114
|
//#region src/components/agent/transcript-variant.d.ts
|
|
53
115
|
type TranscriptVariant = 'cards' | 'terminal';
|
|
54
116
|
declare function TranscriptVariantProvider({ value, children }: {
|
|
@@ -91,6 +153,7 @@ interface SessionPanelProps {
|
|
|
91
153
|
scrubber?: boolean;
|
|
92
154
|
bookmarks?: readonly string[];
|
|
93
155
|
onToggleBookmark?: (itemId: string) => void;
|
|
156
|
+
onOpenFile?: FileLinkOpener;
|
|
94
157
|
reveal?: {
|
|
95
158
|
toolUseId: string;
|
|
96
159
|
nonce: number;
|
|
@@ -139,6 +202,7 @@ type SessionVitals = {
|
|
|
139
202
|
permissionMode: TranscriptState['permissionMode'];
|
|
140
203
|
permissionModes: PermissionModeChoice[];
|
|
141
204
|
skills: SkillInfo[] | undefined;
|
|
205
|
+
composerCommands: ComposerCommandRow[];
|
|
142
206
|
cwd: TranscriptState['cwd'];
|
|
143
207
|
contextUsage: TranscriptState['contextUsage'];
|
|
144
208
|
tasks: SessionTask[];
|
|
@@ -147,7 +211,7 @@ type SessionVitals = {
|
|
|
147
211
|
itemCount: number;
|
|
148
212
|
totalCostUsd: number;
|
|
149
213
|
};
|
|
150
|
-
declare function SessionPanel({ client, sessionId, header, panelSurface, statusSurface, statusPlacement, onOpenPanel, onVitals, transcriptVariant, transcriptDensity, transcriptFont, affordances, terminalMetrics, scrubber, bookmarks, onToggleBookmark, reveal, subagents, openSubagent, onSubagentChange, stickyPrompt, controlsSurface, onControls, focusComposerOnClick, unseen, readOnly, approvalPrompts, toolHost, clientTools, cacheTranscript, emptyState, onLinkClick, fontSize, className }: SessionPanelProps): import("react").JSX.Element;
|
|
214
|
+
declare function SessionPanel({ client, sessionId, header, panelSurface, statusSurface, statusPlacement, onOpenPanel, onVitals, transcriptVariant, transcriptDensity, transcriptFont, affordances, terminalMetrics, scrubber, bookmarks, onToggleBookmark, reveal, subagents, openSubagent, onSubagentChange, stickyPrompt, controlsSurface, onControls, focusComposerOnClick, unseen, readOnly, approvalPrompts, toolHost, clientTools, cacheTranscript, emptyState, onLinkClick, onOpenFile, fontSize, className }: SessionPanelProps): import("react").JSX.Element;
|
|
151
215
|
//#endregion
|
|
152
|
-
export {
|
|
153
|
-
//# sourceMappingURL=SessionPanel-
|
|
216
|
+
export { ClientCommand as A, PERMISSION_MODES as C, PermissionModeSelectProps as D, PermissionModeSelect as E, skillPrompt as F, matchClientCommand as M, mergeComposerRows as N, permissionModeChoices as O, rankComposerRows as P, useAffordances as S, PermissionModeMeta as T, FileLinkProvider as _, SessionSurfacePanel as a, TerminalAffordances as b, TranscriptDensity as c, TranscriptVariant as d, TranscriptVariantProvider as f, FileLinkOpener as g, FileLinkHandle as h, SessionPanelProps as i, ComposerRow as j, permissionModeMeta as k, TranscriptDensityProvider as l, useTranscriptVariant as m, SessionControls as n, SessionVitals as o, useTranscriptDensity as p, SessionPanel as r, TerminalMetrics as s, ApprovalPromptProps as t, TranscriptFont as u, useFileLinks as v, PermissionModeChoice as w, WithActions as x, CopyAction as y };
|
|
217
|
+
//# sourceMappingURL=SessionPanel-BVbau2eR.d.mts.map
|
package/build/format.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as rateLimitWindowSeconds, S as friendlyModel, _ as formatDuration, a as meterTintClass, b as formatRelativeTime, c as tightestWindow, d as COMPACTION_TEXT, f as compactionText, g as formatCountdown, h as formatCost, i as meterSeverity, l as usageWindow, m as formatBytes, n as currentModel, o as modelLabel, p as formatAgoPrecise, r as meterColorClass, s as statusPresentation, t as contextSeverity, u as windowLabel, v as formatRateLimitWindow, w as toolInputPreview, x as formatTokens, y as formatRateLimitWindowLong } from "./status-
|
|
1
|
+
import { C as rateLimitWindowSeconds, S as friendlyModel, _ as formatDuration, a as meterTintClass, b as formatRelativeTime, c as tightestWindow, d as COMPACTION_TEXT, f as compactionText, g as formatCountdown, h as formatCost, i as meterSeverity, l as usageWindow, m as formatBytes, n as currentModel, o as modelLabel, p as formatAgoPrecise, r as meterColorClass, s as statusPresentation, t as contextSeverity, u as windowLabel, v as formatRateLimitWindow, w as toolInputPreview, x as formatTokens, y as formatRateLimitWindowLong } from "./status-kmsBhuFG.mjs";
|
|
2
2
|
export { COMPACTION_TEXT, compactionText, contextSeverity, currentModel, formatAgoPrecise, formatBytes, formatCost, formatCountdown, formatDuration, formatRateLimitWindow, formatRateLimitWindowLong, formatRelativeTime, formatTokens, friendlyModel, meterColorClass, meterSeverity, meterTintClass, modelLabel, rateLimitWindowSeconds, statusPresentation, tightestWindow, toolInputPreview, usageWindow, windowLabel };
|
package/build/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as formatCost, c as formatRateLimitWindow, d as formatTokens, f as friendlyModel, i as formatBytes, l as formatRateLimitWindowLong, m as toolInputPreview, o as formatCountdown, p as rateLimitWindowSeconds, r as formatAgoPrecise, s as formatDuration, u as formatRelativeTime } from "./format-eS_oUry-.mjs";
|
|
2
|
-
import { C as PermissionModeSelectProps,
|
|
2
|
+
import { A as ClientCommand, C as PERMISSION_MODES, D as PermissionModeSelectProps, E as PermissionModeSelect, F as skillPrompt, M as matchClientCommand, N as mergeComposerRows, O as permissionModeChoices, P as rankComposerRows, S as useAffordances, T as PermissionModeMeta, _ as FileLinkProvider, a as SessionSurfacePanel, b as TerminalAffordances, c as TranscriptDensity, d as TranscriptVariant, f as TranscriptVariantProvider, g as FileLinkOpener, h as FileLinkHandle, i as SessionPanelProps, j as ComposerRow, k as permissionModeMeta, l as TranscriptDensityProvider, m as useTranscriptVariant, n as SessionControls, o as SessionVitals, p as useTranscriptDensity, r as SessionPanel, s as TerminalMetrics, t as ApprovalPromptProps, u as TranscriptFont, v as useFileLinks, w as PermissionModeChoice, x as WithActions, y as CopyAction } from "./SessionPanel-BVbau2eR.mjs";
|
|
3
3
|
import { ButtonHTMLAttributes, FunctionComponent, HTMLAttributes, InputHTMLAttributes, ReactElement, ReactNode, Ref, RefObject, TextareaHTMLAttributes } from "react";
|
|
4
4
|
import { VariantProps } from "class-variance-authority";
|
|
5
5
|
import { ClassValue } from "clsx";
|
|
@@ -69,7 +69,7 @@ declare const MenuItem: FunctionComponent<Menu$1.Item.Props & {
|
|
|
69
69
|
declare const MenuSeparator: FunctionComponent<Menu$1.Separator.Props>;
|
|
70
70
|
//#endregion
|
|
71
71
|
//#region src/components/ui/Dialog.d.ts
|
|
72
|
-
declare const Dialog:
|
|
72
|
+
declare const Dialog: <Payload>(props: Dialog$1.Root.Props<Payload>) => import("react").JSX.Element;
|
|
73
73
|
declare const DialogTrigger: Dialog$1.Trigger;
|
|
74
74
|
declare const DialogClose: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react/dialog").DialogCloseProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
75
75
|
declare const DialogContent: FunctionComponent<Dialog$1.Popup.Props & {
|
|
@@ -202,7 +202,7 @@ type TriggerPosition = 'start' | 'any';
|
|
|
202
202
|
* - 'dropdown': Shows a popover with suggestions from `onSearch`
|
|
203
203
|
* - 'callback': Inserts the char, then fires `onActivate` with the typed query
|
|
204
204
|
* - 'launch': Fires `onActivate` on keydown and SUPPRESSES the char (it never
|
|
205
|
-
* enters the editor)
|
|
205
|
+
* enters the editor) - for opening an external surface (dialog, palette) where
|
|
206
206
|
* no in-editor text should appear. Honors `position` like the other modes.
|
|
207
207
|
*/
|
|
208
208
|
type TriggerMode = 'dropdown' | 'callback' | 'launch';
|
|
@@ -257,7 +257,7 @@ type TriggerConfig = {
|
|
|
257
257
|
* For 'dropdown' mode: opt a suggestion out of becoming a chip.
|
|
258
258
|
*
|
|
259
259
|
* Return a string and the trigger's range is replaced with that **plain,
|
|
260
|
-
* editable text**
|
|
260
|
+
* editable text** - the trigger character included - with the caret left at
|
|
261
261
|
* its end. Return undefined and the suggestion resolves to a chip as usual,
|
|
262
262
|
* so one dropdown can mix both kinds.
|
|
263
263
|
*
|
|
@@ -378,7 +378,7 @@ type PromptAreaProps = {
|
|
|
378
378
|
/**
|
|
379
379
|
* When markdown is on, the editor rewrites typed list markers (`- ` / `* `)
|
|
380
380
|
* to a `•` bullet glyph in the model. Set to `false` to keep the original
|
|
381
|
-
* marker in the value/`onChange` text
|
|
381
|
+
* marker in the value/`onChange` text - needed when a host renders the output
|
|
382
382
|
* as real markdown, where `•` is not a valid list marker. Default `true`.
|
|
383
383
|
*/
|
|
384
384
|
normalizeBullets?: boolean;
|
|
@@ -413,8 +413,8 @@ type PromptAreaProps = {
|
|
|
413
413
|
* the caret kept where the edit happened. Chips count as their
|
|
414
414
|
* `trigger + displayText` length.
|
|
415
415
|
*
|
|
416
|
-
* The cap applies to typing only. Paste is not capped
|
|
417
|
-
* `onRawPaste` if needed
|
|
416
|
+
* The cap applies to typing only. Paste is not capped - divert it via
|
|
417
|
+
* `onRawPaste` if needed - and the imperative `setText` / `appendText` also
|
|
418
418
|
* bypass it, so a programmatic write can exceed the cap until the next
|
|
419
419
|
* keystroke truncates.
|
|
420
420
|
*/
|
|
@@ -458,7 +458,7 @@ type PromptAreaProps = {
|
|
|
458
458
|
onBlur?: (e: React.FocusEvent<HTMLDivElement>) => void;
|
|
459
459
|
/**
|
|
460
460
|
* Called at the start of a paste, before PromptArea reads the clipboard. Call
|
|
461
|
-
* `preventDefault()` to take over the paste completely
|
|
461
|
+
* `preventDefault()` to take over the paste completely - e.g. to divert large
|
|
462
462
|
* text or non-image files to an upload pipeline. The built-in segment/image
|
|
463
463
|
* paste handling is skipped when the event's default is prevented.
|
|
464
464
|
*/
|
|
@@ -549,11 +549,11 @@ type UsePromptAreaStateOptions = {
|
|
|
549
549
|
initialValue?: Segment[];
|
|
550
550
|
};
|
|
551
551
|
type PromptAreaBind = {
|
|
552
|
-
/** Ref to attach to PromptArea
|
|
552
|
+
/** Ref to attach to PromptArea - gives access to imperative methods. */
|
|
553
553
|
ref: React.RefObject<PromptAreaHandle | null>;
|
|
554
|
-
/** Current segment array
|
|
554
|
+
/** Current segment array - pass as `value` prop. */
|
|
555
555
|
value: Segment[];
|
|
556
|
-
/** Setter
|
|
556
|
+
/** Setter - pass as `onChange` prop. */
|
|
557
557
|
onChange: (segments: Segment[]) => void;
|
|
558
558
|
};
|
|
559
559
|
type PromptAreaState = {
|
|
@@ -596,7 +596,7 @@ type CommandTriggerOptions = TriggerPresetOptions & {
|
|
|
596
596
|
char?: string;
|
|
597
597
|
/**
|
|
598
598
|
* Where the command trigger is valid. Defaults to `'any'`, so commands fire
|
|
599
|
-
* anywhere a `/` follows whitespace
|
|
599
|
+
* anywhere a `/` follows whitespace - not just at the start of a line.
|
|
600
600
|
* Set to `'start'` to restrict the dropdown to the very start of the input
|
|
601
601
|
* or immediately after a newline (the classic slash-command behavior).
|
|
602
602
|
*/
|
|
@@ -781,6 +781,13 @@ declare function Ink({ tone, bold, className, ...props }: HTMLAttributes<HTMLSpa
|
|
|
781
781
|
bold?: boolean;
|
|
782
782
|
}): import("react").JSX.Element;
|
|
783
783
|
//#endregion
|
|
784
|
+
//#region src/lib/file-link.d.ts
|
|
785
|
+
type FileLink = {
|
|
786
|
+
path: string;
|
|
787
|
+
line?: number;
|
|
788
|
+
};
|
|
789
|
+
declare function parseFileLink(href: string | undefined, cwd: string | undefined): FileLink | undefined;
|
|
790
|
+
//#endregion
|
|
784
791
|
//#region src/components/agent/Conversation.d.ts
|
|
785
792
|
interface ConversationProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
786
793
|
children: ReactNode;
|
|
@@ -894,6 +901,7 @@ interface ComposerProps {
|
|
|
894
901
|
placeholder?: string;
|
|
895
902
|
commands?: SlashCommandInfo[];
|
|
896
903
|
skills?: SkillInfo[];
|
|
904
|
+
clientCommands?: ClientCommand[];
|
|
897
905
|
onSearchFiles?: (query: string, options: {
|
|
898
906
|
signal: AbortSignal;
|
|
899
907
|
}) => Promise<ComposerFileMatch[]>;
|
|
@@ -912,8 +920,7 @@ interface ComposerProps {
|
|
|
912
920
|
className?: string;
|
|
913
921
|
ref?: Ref<ComposerHandle>;
|
|
914
922
|
}
|
|
915
|
-
declare function
|
|
916
|
-
declare function Composer({ onSend, onInterrupt, busy, disabled, placeholder, commands, skills, onSearchFiles, onShellCommand, attachments, toolbar, layout, fontSize, lineHeight, affordances, draft, className, ref }: ComposerProps): import("react").JSX.Element;
|
|
923
|
+
declare function Composer({ onSend, onInterrupt, busy, disabled, placeholder, commands, skills, clientCommands, onSearchFiles, onShellCommand, attachments, toolbar, layout, fontSize, lineHeight, affordances, draft, className, ref }: ComposerProps): import("react").JSX.Element;
|
|
917
924
|
//#endregion
|
|
918
925
|
//#region src/components/agent/ModelSelect.d.ts
|
|
919
926
|
interface ModelSelectProps {
|
|
@@ -1200,5 +1207,5 @@ declare function copyText(value: string): Promise<boolean>;
|
|
|
1200
1207
|
declare function toolIcon(toolName: string): LucideIcon;
|
|
1201
1208
|
declare function isMutatingTool(toolName: string): boolean;
|
|
1202
1209
|
//#endregion
|
|
1203
|
-
export { AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogTitle, AlertDialogTrigger, type ApprovalPromptProps, Badge, type BadgeProps, Band, Blank, Button, type ButtonProps, Card, CardContent, CardHeader, CardTitle, type ChipSegment, CodeBlock, type CodeBlockProps, Composer, type ComposerFileMatch, type ComposerHandle, type ComposerProps, ContextDialog, type ContextDialogProps, ContextRing, Conversation, ConversationContent, type ConversationProps, ConversationScrollButton, CopyAction, CopyButton, type CopyButtonProps, Dialog, DialogBody, DialogClose, DialogContent, DialogHeader, DialogRow, DialogTrigger, Empty, EmptyKey, EngineIcon, FileCard, type FileCardProps, type FileDeliveredItem, HostFilesDialog, type HostFilesDialogProps, Ink, 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, ProjectIcon, PromptArea, type PromptAreaHandle, type PromptAreaProps, PromptTokenText, QUESTION_BEHAVIORS, type QuestionBehaviorMeta, QuestionPrompt, type QuestionPromptProps, Reasoning, type ReasoningProps, Response, type ResponseProps, Row, type RowProps, STATUS_META, type Segment, Select, SelectContent, SelectItem, SelectItemText, SelectTrigger, SelectValue, SessionBrowser, type SessionBrowserProps, type SessionControls, SessionEmptyState, type SessionEmptyStateProps, SessionInfoDialog, type SessionInfoDialogProps, SessionItem, type SessionItemProps, 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 Step, StepRow, StepToggle, SubagentStrip, TaskList, type TaskListProps, TasksDialog, type TasksDialogProps, type TerminalAffordances, TerminalDiff, TerminalItemView, TerminalMarkdown, type TerminalMarkdownProps, type TerminalMetrics, TerminalPermissionPrompt, type TerminalPermissionPromptProps, TerminalQuestionPrompt, type TerminalQuestionPromptProps, TerminalStatusLine, type TerminalStatusLineProps, TerminalSurface, type TerminalSurfaceProps, TerminalTranscript, type TerminalTranscriptProps, type TextSegment, Textarea, Tip, Toaster, type Tone, ToolCallCard, type ToolCallCardProps, type ToolCallItem, ToolTitleProvider, TooltipContent, TooltipProvider, Transcript, type TranscriptDensity, TranscriptDensityProvider, type TranscriptFont, type TranscriptProps, type TranscriptVariant, TranscriptVariantProvider, type TriggerConfig, type TriggerSuggestion, UsageDialog, type UsageDialogProps, UsageMeters, WithActions, badgeVariants, buttonVariants, cn, commandTrigger, copyText, engineMark, formatAgoPrecise, formatBytes, formatCost, formatCountdown, formatDuration, formatRateLimitWindow, formatRateLimitWindowLong, formatRelativeTime, formatTokens, friendlyModel, getChipsByTrigger, hashtagTrigger, isMutatingTool, isSegmentsEmpty, launchTrigger, mentionTrigger, parseUserQuestions, permissionModeChoices, permissionModeMeta, plainTextToSegments, previewPatch, rateLimitWindowSeconds, rowShapeClass, runningSteps, segmentsToPlainText, sessionSteps, skillPrompt, toast, toolIcon, toolInputPreview, useAffordances, useMinuteClock, usePromptAreaState, useToolTitle, useTranscriptDensity, useTranscriptVariant, vendorMarkClass, vendorTextClass };
|
|
1210
|
+
export { AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogTitle, AlertDialogTrigger, type ApprovalPromptProps, Badge, type BadgeProps, Band, Blank, Button, type ButtonProps, Card, CardContent, CardHeader, CardTitle, type ChipSegment, type ClientCommand, CodeBlock, type CodeBlockProps, Composer, type ComposerFileMatch, type ComposerHandle, type ComposerProps, type ComposerRow, ContextDialog, type ContextDialogProps, ContextRing, Conversation, ConversationContent, type ConversationProps, ConversationScrollButton, CopyAction, CopyButton, type CopyButtonProps, Dialog, DialogBody, DialogClose, DialogContent, DialogHeader, DialogRow, DialogTrigger, Empty, EmptyKey, EngineIcon, FileCard, type FileCardProps, type FileDeliveredItem, type FileLink, type FileLinkHandle, type FileLinkOpener, FileLinkProvider, HostFilesDialog, type HostFilesDialogProps, Ink, 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, ProjectIcon, PromptArea, type PromptAreaHandle, type PromptAreaProps, PromptTokenText, QUESTION_BEHAVIORS, type QuestionBehaviorMeta, QuestionPrompt, type QuestionPromptProps, Reasoning, type ReasoningProps, Response, type ResponseProps, Row, type RowProps, STATUS_META, type Segment, Select, SelectContent, SelectItem, SelectItemText, SelectTrigger, SelectValue, SessionBrowser, type SessionBrowserProps, type SessionControls, SessionEmptyState, type SessionEmptyStateProps, SessionInfoDialog, type SessionInfoDialogProps, SessionItem, type SessionItemProps, 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 Step, StepRow, StepToggle, SubagentStrip, TaskList, type TaskListProps, TasksDialog, type TasksDialogProps, type TerminalAffordances, TerminalDiff, TerminalItemView, TerminalMarkdown, type TerminalMarkdownProps, type TerminalMetrics, TerminalPermissionPrompt, type TerminalPermissionPromptProps, TerminalQuestionPrompt, type TerminalQuestionPromptProps, TerminalStatusLine, type TerminalStatusLineProps, TerminalSurface, type TerminalSurfaceProps, TerminalTranscript, type TerminalTranscriptProps, type TextSegment, Textarea, Tip, Toaster, type Tone, ToolCallCard, type ToolCallCardProps, type ToolCallItem, ToolTitleProvider, TooltipContent, TooltipProvider, Transcript, type TranscriptDensity, TranscriptDensityProvider, type TranscriptFont, type TranscriptProps, type TranscriptVariant, TranscriptVariantProvider, type TriggerConfig, type TriggerSuggestion, UsageDialog, type UsageDialogProps, UsageMeters, WithActions, badgeVariants, buttonVariants, cn, commandTrigger, copyText, engineMark, formatAgoPrecise, formatBytes, formatCost, formatCountdown, formatDuration, formatRateLimitWindow, formatRateLimitWindowLong, formatRelativeTime, formatTokens, friendlyModel, getChipsByTrigger, hashtagTrigger, isMutatingTool, isSegmentsEmpty, launchTrigger, matchClientCommand, mentionTrigger, mergeComposerRows, parseFileLink, parseUserQuestions, permissionModeChoices, permissionModeMeta, plainTextToSegments, previewPatch, rankComposerRows, rateLimitWindowSeconds, rowShapeClass, runningSteps, segmentsToPlainText, sessionSteps, skillPrompt, toast, toolIcon, toolInputPreview, useAffordances, useFileLinks, useMinuteClock, usePromptAreaState, useToolTitle, useTranscriptDensity, useTranscriptVariant, vendorMarkClass, vendorTextClass };
|
|
1204
1211
|
//# sourceMappingURL=index.d.mts.map
|
package/build/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { C as rateLimitWindowSeconds, S as friendlyModel, _ as formatDuration, b as formatRelativeTime, c as tightestWindow, g as formatCountdown, h as formatCost, i as meterSeverity, m as formatBytes, o as modelLabel, p as formatAgoPrecise, r as meterColorClass, s as statusPresentation, t as contextSeverity, u as windowLabel, v as formatRateLimitWindow, w as toolInputPreview, x as formatTokens, y as formatRateLimitWindowLong } from "./status-
|
|
1
|
+
import { $ as Band, $t as Input, A as PERMISSION_MODES, At as Tip, B as TaskList, Bt as Menu, C as TerminalPermissionPrompt, Ct as segmentsToPlainText, D as SubagentStrip, Dt as Spinner, E as parseUserQuestions, Et as CodeBlock, F as SkillsDialog, Ft as DialogClose, G as ToolTitleProvider, Gt as Select, H as contextNote, Ht as MenuItem, I as McpDialog, It as DialogContent, J as FileLinkProvider, Jt as SelectItemText, K as useToolTitle, Kt as SelectContent, L as HostFilesDialog, Lt as DialogHeader, M as permissionModeChoices, Mt as TooltipProvider, N as permissionModeMeta, Nt as Dialog, O as PermissionPrompt, Ot as CopyButton, P as ModelSelect, Pt as DialogBody, Q as previewPatch, Qt as Textarea, Rt as DialogRow, S as TerminalQuestionPrompt, St as plainTextToSegments, T as QuestionPrompt, Tt as Splitter, U as Composer, Ut as MenuSeparator, V as ContextDialog, Vt as MenuContent, W as TerminalSurface, Wt as MenuTrigger, X as parseFileLink, Xt as SelectValue, Y as useFileLinks, Yt as SelectTrigger, Z as TerminalDiff, Zt as PortalScope, _ as ConversationContent, _t as hashtagTrigger, a as Transcript, at as useAffordances, b as STATUS_META, bt as usePromptAreaState, c as PromptTokenText, ct as TranscriptDensityProvider, d as FileCard, dt as useTranscriptVariant, en as Badge, et as Blank, f as TerminalItemView, ft as matchClientCommand, g as Conversation, gt as commandTrigger, h as Loader, ht as skillPrompt, i as useMinuteClock, in as cn, it as WithActions, j as PermissionModeSelect, jt as TooltipContent, k as Response, kt as copyText, l as Message, lt as TranscriptVariantProvider, m as SessionEmptyState, mt as rankComposerRows, n as UsageDialog, nn as Button, nt as Row, o as ToolCallCard, ot as isMutatingTool, p as TerminalTranscript, pt as mergeComposerRows, q as TerminalMarkdown, qt as SelectItem, r as UsageMeters, rn as buttonVariants, rt as CopyAction, s as Reasoning, st as toolIcon, t as SessionPanel, tn as badgeVariants, tt as Ink, u as MessageContent, ut as useTranscriptDensity, v as ConversationScrollButton, vt as launchTrigger, w as QUESTION_BEHAVIORS, wt as ProgressRing, x as SessionInfoDialog, xt as PromptArea, y as StatusBar, yt as mentionTrigger, z as TasksDialog, zt as DialogTrigger } from "./SessionPanel-BClL7zUS.mjs";
|
|
2
|
+
import { C as rateLimitWindowSeconds, S as friendlyModel, _ as formatDuration, b as formatRelativeTime, c as tightestWindow, g as formatCountdown, h as formatCost, i as meterSeverity, m as formatBytes, o as modelLabel, p as formatAgoPrecise, r as meterColorClass, s as statusPresentation, t as contextSeverity, u as windowLabel, v as formatRateLimitWindow, w as toolInputPreview, x as formatTokens, y as formatRateLimitWindowLong } from "./status-kmsBhuFG.mjs";
|
|
3
3
|
import { Fragment, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { Anchor, ArrowRight, Atom, Beaker, BellRing, Bike, Binary, Blocks, Bot, Box, Brain, Briefcase, Brush, Bug, Building2, Cable, Camera, Car, Cat, Check, ChevronDown, ChevronRight, CircleAlert, CircleSlash, CircuitBoard, Cloud, Code, Coffee, Cog, Compass, Container, Cpu, CreditCard, Database, Diamond, Dog, Eraser, Feather, Film, Flame, FlaskConical, Folder, Gamepad2, Gauge, Gem, Ghost, Gift, GitBranch, Globe, GraduationCap, Hammer, Hexagon, House, Image, Key, Landmark, Laptop, Layers, Leaf, Library, Lightbulb, Lock, Mail, Map as Map$1, MessageCircle, Mic, Monitor, Moon, Mountain, Music, Network, Newspaper, Notebook, Orbit, Package, Palette, PauseCircle, PenTool, Pencil, Phone, PiggyBank, Plane, Plug, Puzzle, Radar, Radio, Receipt, Rocket, Ruler, Satellite, Scale, Scissors, Search, SearchX, Server, Shield, Ship, ShoppingCart, Signal, Smartphone, Sparkles, Sprout, Square, Star, Sun, Table, Tag, Target, Telescope, Terminal, TestTube, Trash2, TreePine, Trophy, Truck, Umbrella, Users, Wallet, Wand, Waves, Webhook, Wifi, Wrench, X, Zap } from "lucide-react";
|
|
@@ -609,7 +609,7 @@ function SessionItem({ row, active = false, activeStepKey, showGateway, showProj
|
|
|
609
609
|
const extras = [
|
|
610
610
|
showGateway ? row.hostName : void 0,
|
|
611
611
|
info.profile ? `@${info.profile}` : void 0,
|
|
612
|
-
cost === "
|
|
612
|
+
cost === "-" ? void 0 : cost
|
|
613
613
|
].filter((part) => Boolean(part));
|
|
614
614
|
const model = friendlyModel(info.model);
|
|
615
615
|
const parts = [];
|
|
@@ -666,7 +666,7 @@ function SessionItem({ row, active = false, activeStepKey, showGateway, showProj
|
|
|
666
666
|
}),
|
|
667
667
|
row.unseen > 0 ? /* @__PURE__ */ jsx("span", {
|
|
668
668
|
title: `${row.unseen} new message${row.unseen === 1 ? "" : "s"}`,
|
|
669
|
-
className: cn("flex h-4 min-w-6 shrink-0 items-center justify-center rounded-full px-2", "text-[0.75rem] leading-none tracking-[-0.005em] tabular-nums", row.state === "working"
|
|
669
|
+
className: cn("flex h-4 min-w-6 shrink-0 items-center justify-center rounded-full px-2", "text-[0.75rem] leading-none tracking-[-0.005em] tabular-nums", row.state === "working" ? "bg-badge text-badge-fg" : "bg-accent text-accent-fg"),
|
|
670
670
|
children: row.unseen
|
|
671
671
|
}) : null,
|
|
672
672
|
/* @__PURE__ */ jsx(ContextRing, {
|
|
@@ -1002,7 +1002,7 @@ function SessionRowItem({ row, active, activeSubagentId, showGateway, showProjec
|
|
|
1002
1002
|
}) : null,
|
|
1003
1003
|
onClearContext && info.capabilities?.clearContext ? /* @__PURE__ */ jsx(RowAction, {
|
|
1004
1004
|
label: "Clear context",
|
|
1005
|
-
title: "Clear the conversation
|
|
1005
|
+
title: "Clear the conversation - the session keeps running and the old conversation stays resumable",
|
|
1006
1006
|
onClick: () => onClearContext(row),
|
|
1007
1007
|
children: /* @__PURE__ */ jsx(Eraser, { className: "size-3 text-fg-3" })
|
|
1008
1008
|
}) : null,
|
|
@@ -1080,6 +1080,6 @@ function OneOfSelect({ label, value, options, onChange }) {
|
|
|
1080
1080
|
});
|
|
1081
1081
|
}
|
|
1082
1082
|
//#endregion
|
|
1083
|
-
export { AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogTitle, AlertDialogTrigger, Badge, Band, Blank, Button, Card, CardContent, CardHeader, CardTitle, CodeBlock, Composer, ContextDialog, ContextRing, Conversation, ConversationContent, ConversationScrollButton, CopyAction, CopyButton, Dialog, DialogBody, DialogClose, DialogContent, DialogHeader, DialogRow, DialogTrigger, Empty, EmptyKey, EngineIcon, FileCard, HostFilesDialog, Ink, Input, Loader, McpDialog, Menu, MenuContent, MenuItem, MenuSeparator, MenuTrigger, Message, MessageContent, ModelSelect, PERMISSION_MODES, PermissionModeSelect, PermissionPrompt, ProgressRing, ProjectIcon, PromptArea, PromptTokenText, QUESTION_BEHAVIORS, QuestionPrompt, Reasoning, Response, Row, STATUS_META, Select, SelectContent, SelectItem, SelectItemText, SelectTrigger, SelectValue, SessionBrowser, SessionEmptyState, SessionInfoDialog, SessionItem, SessionList, SessionListItem, SessionPanel, SessionStatusIcon, SkillsDialog, Spinner, Splitter, StatusBar, StepRow, StepToggle, SubagentStrip, TaskList, TasksDialog, TerminalDiff, TerminalItemView, TerminalMarkdown, TerminalPermissionPrompt, TerminalQuestionPrompt, TerminalStatusLine, TerminalSurface, TerminalTranscript, Textarea, Tip, Toaster, ToolCallCard, ToolTitleProvider, TooltipContent, TooltipProvider, Transcript, TranscriptDensityProvider, TranscriptVariantProvider, UsageDialog, UsageMeters, WithActions, badgeVariants, buttonVariants, cn, commandTrigger, copyText, engineMark, formatAgoPrecise, formatBytes, formatCost, formatCountdown, formatDuration, formatRateLimitWindow, formatRateLimitWindowLong, formatRelativeTime, formatTokens, friendlyModel, getChipsByTrigger, hashtagTrigger, isMutatingTool, isSegmentsEmpty, launchTrigger, mentionTrigger, parseUserQuestions, permissionModeChoices, permissionModeMeta, plainTextToSegments, previewPatch, rateLimitWindowSeconds, rowShapeClass, runningSteps, segmentsToPlainText, sessionSteps, skillPrompt, toast, toolIcon, toolInputPreview, useAffordances, useMinuteClock, usePromptAreaState, useToolTitle, useTranscriptDensity, useTranscriptVariant, vendorMarkClass, vendorTextClass };
|
|
1083
|
+
export { AlertDialog, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogTitle, AlertDialogTrigger, Badge, Band, Blank, Button, Card, CardContent, CardHeader, CardTitle, CodeBlock, Composer, ContextDialog, ContextRing, Conversation, ConversationContent, ConversationScrollButton, CopyAction, CopyButton, Dialog, DialogBody, DialogClose, DialogContent, DialogHeader, DialogRow, DialogTrigger, Empty, EmptyKey, EngineIcon, FileCard, FileLinkProvider, HostFilesDialog, Ink, Input, Loader, McpDialog, Menu, MenuContent, MenuItem, MenuSeparator, MenuTrigger, Message, MessageContent, ModelSelect, PERMISSION_MODES, PermissionModeSelect, PermissionPrompt, ProgressRing, ProjectIcon, PromptArea, PromptTokenText, QUESTION_BEHAVIORS, QuestionPrompt, Reasoning, Response, Row, STATUS_META, Select, SelectContent, SelectItem, SelectItemText, SelectTrigger, SelectValue, SessionBrowser, SessionEmptyState, SessionInfoDialog, SessionItem, SessionList, SessionListItem, SessionPanel, SessionStatusIcon, SkillsDialog, Spinner, Splitter, StatusBar, StepRow, StepToggle, SubagentStrip, TaskList, TasksDialog, TerminalDiff, TerminalItemView, TerminalMarkdown, TerminalPermissionPrompt, TerminalQuestionPrompt, TerminalStatusLine, TerminalSurface, TerminalTranscript, Textarea, Tip, Toaster, ToolCallCard, ToolTitleProvider, TooltipContent, TooltipProvider, Transcript, TranscriptDensityProvider, TranscriptVariantProvider, UsageDialog, UsageMeters, WithActions, badgeVariants, buttonVariants, cn, commandTrigger, copyText, engineMark, formatAgoPrecise, formatBytes, formatCost, formatCountdown, formatDuration, formatRateLimitWindow, formatRateLimitWindowLong, formatRelativeTime, formatTokens, friendlyModel, getChipsByTrigger, hashtagTrigger, isMutatingTool, isSegmentsEmpty, launchTrigger, matchClientCommand, mentionTrigger, mergeComposerRows, parseFileLink, parseUserQuestions, permissionModeChoices, permissionModeMeta, plainTextToSegments, previewPatch, rankComposerRows, rateLimitWindowSeconds, rowShapeClass, runningSteps, segmentsToPlainText, sessionSteps, skillPrompt, toast, toolIcon, toolInputPreview, useAffordances, useFileLinks, useMinuteClock, usePromptAreaState, useToolTitle, useTranscriptDensity, useTranscriptVariant, vendorMarkClass, vendorTextClass };
|
|
1084
1084
|
|
|
1085
1085
|
//# sourceMappingURL=index.mjs.map
|