@workerdeck/ui 0.16.0 → 0.18.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 +7 -0
- package/build/{SessionPanel-B9CHoq8x.d.mts → SessionPanel-CnU_IJ3-.d.mts} +36 -9
- package/build/{SessionPanel-DII9MmQ8.mjs → SessionPanel-DPx8Iz8a.mjs} +1432 -384
- package/build/SessionPanel-DPx8Iz8a.mjs.map +1 -0
- package/build/{format-DfI_je9S.d.mts → format-ljc3lKpA.d.mts} +1 -1
- package/build/format.d.mts +16 -5
- package/build/format.mjs +2 -3
- package/build/index.d.mts +288 -8
- package/build/index.mjs +620 -165
- package/build/index.mjs.map +1 -1
- package/build/{format-DqR56Y8l.mjs → status-BE-zg88x.mjs} +154 -2
- package/build/status-BE-zg88x.mjs.map +1 -0
- package/build/workspace.d.mts +4 -1
- package/build/workspace.mjs +4 -3
- package/build/workspace.mjs.map +1 -1
- package/package.json +8 -6
- package/src/components/agent/ContextRing.tsx +41 -0
- package/src/components/agent/EngineIcon.tsx +40 -0
- package/src/components/agent/ProjectIcon.tsx +119 -0
- package/src/components/agent/SessionBrowser.tsx +191 -17
- package/src/components/agent/SessionPanel.tsx +177 -2
- package/src/components/agent/SessionSteps.tsx +233 -0
- package/src/components/agent/SessionWorkspace.tsx +4 -0
- package/src/components/agent/StatusBar.tsx +4 -2
- package/src/components/agent/SubagentStrip.tsx +134 -0
- package/src/components/agent/ToolCallCard.tsx +72 -5
- package/src/components/agent/Transcript.tsx +212 -23
- package/src/components/agent/tool-result-fetch.tsx +36 -0
- package/src/components/agent/tool-result-image.tsx +209 -0
- package/src/components/agent/transcript-rows.ts +122 -23
- package/src/components/terminal/TerminalTranscript.tsx +154 -2
- package/src/components/terminal/affordances.tsx +34 -0
- package/src/components/terminal/blocks.ts +260 -0
- package/src/components/terminal/height.ts +73 -6
- package/src/components/terminal/image-box.ts +53 -0
- package/src/components/terminal/items.tsx +116 -79
- package/src/components/terminal/result-preview.ts +20 -6
- package/src/components/terminal/scrubber.tsx +172 -26
- package/src/components/terminal/tool-run.ts +177 -0
- package/src/index.ts +20 -1
- package/src/lib/status.ts +16 -3
- package/src/styles/terminal.css +85 -5
- package/src/styles/theme.css +42 -0
- package/build/SessionPanel-DII9MmQ8.mjs.map +0 -1
- package/build/format-DqR56Y8l.mjs.map +0 -1
- package/build/status-Ydzi7n6j.mjs +0 -143
- package/build/status-Ydzi7n6j.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -198,6 +198,13 @@ lose by forgetting a second mount isn't one.
|
|
|
198
198
|
result and its `… +N` label. Re-spelling either one in the renderer alone desynchronises
|
|
199
199
|
`estimateSize` and the transcript grows a phantom scrollable tail. `dev/height-audit.ts` is the
|
|
200
200
|
gate; it measures against real browser layout, which no jsdom test can do.
|
|
201
|
+
- **`pnpm test` here covers the pure modules and nothing else.** That is the split, not an
|
|
202
|
+
omission: which rows exist, what a folded run's line says, how much of a result a collapsed row
|
|
203
|
+
keeps and which marks the rail paints are all string-and-array contracts with no DOM in them,
|
|
204
|
+
and they are where this package's bugs have actually shipped. Geometry — does the rendered row
|
|
205
|
+
come out the height the calculator predicted — is the browser audit above. A test in `test/`
|
|
206
|
+
that wants a DOM belongs in `dev/` instead. `buildClusters` and `railScale` are exported from
|
|
207
|
+
`scrubber.tsx` for the test alone and are deliberately absent from `index.ts`.
|
|
201
208
|
- **`affordances={false}` must leave a way to scroll.** The scrubber replaces the native scrollbar
|
|
202
209
|
while it is interactive; with affordances off, the marks stay painted but inert *and the native
|
|
203
210
|
scrollbar comes back*. A rail that kept the scrollbar hidden while refusing the pointer would
|
|
@@ -120,14 +120,6 @@ declare function WithActions({
|
|
|
120
120
|
children: ReactNode;
|
|
121
121
|
className?: string;
|
|
122
122
|
}): _$react.JSX.Element;
|
|
123
|
-
/**
|
|
124
|
-
* Copy, as a character.
|
|
125
|
-
*
|
|
126
|
-
* `⧉` and `✓` rather than an SVG for the same reason the rest of the theme uses
|
|
127
|
-
* glyphs: an icon drawn at some other size sits between the cells everything
|
|
128
|
-
* else is on, and reads as a button borrowed from another application. The tick
|
|
129
|
-
* replaces the glyph in place, so the confirmation costs no width either.
|
|
130
|
-
*/
|
|
131
123
|
declare function CopyAction({
|
|
132
124
|
text,
|
|
133
125
|
label
|
|
@@ -326,6 +318,39 @@ interface SessionPanelProps {
|
|
|
326
318
|
* client's watermarks; a shared one is session metadata on the gateway).
|
|
327
319
|
*/
|
|
328
320
|
scrubberMarks?: readonly number[];
|
|
321
|
+
/**
|
|
322
|
+
* Scroll a tool call into view; bump `nonce` to ask again for the same one.
|
|
323
|
+
* See {@link TranscriptProps.reveal} — this is the panel's pass-through, and
|
|
324
|
+
* exists so a surface *outside* the panel (a sessions list showing a session's
|
|
325
|
+
* running sub-agents) can say "take me to that one" without opening a second
|
|
326
|
+
* attach to find out where it is.
|
|
327
|
+
*/
|
|
328
|
+
reveal?: {
|
|
329
|
+
toolUseId: string;
|
|
330
|
+
nonce: number;
|
|
331
|
+
};
|
|
332
|
+
/**
|
|
333
|
+
* Open a **sub-agent takeover**: the panel body becomes that agent's own work,
|
|
334
|
+
* with a way back. Bump `nonce` to ask again for the same one.
|
|
335
|
+
*
|
|
336
|
+
* A *request*, not a controlled value — the panel owns which agent is open,
|
|
337
|
+
* exactly as it owns `panel`. Dismissal has to work with zero host wiring
|
|
338
|
+
* (Back and Escape are the panel's own affordances), and the two hosts in
|
|
339
|
+
* scope reach this across a postMessage bridge where a controlled prop would
|
|
340
|
+
* need a live closure at the far end. Same shape and same reason as
|
|
341
|
+
* {@link SessionPanelProps.reveal}.
|
|
342
|
+
*
|
|
343
|
+
* Hosts must clear their request on a session switch: a stale one replayed at
|
|
344
|
+
* remount would open a frame the new transcript cannot answer.
|
|
345
|
+
*
|
|
346
|
+
* Claude-only in practice, and gated by data rather than by a flag — codex and
|
|
347
|
+
* provider sessions have no `parentToolUseId`, so they grow no task blocks and
|
|
348
|
+
* no sub-agent rows, and nothing can raise this.
|
|
349
|
+
*/
|
|
350
|
+
openSubagent?: {
|
|
351
|
+
toolUseId: string;
|
|
352
|
+
nonce: number;
|
|
353
|
+
};
|
|
329
354
|
/**
|
|
330
355
|
* Terminal theme only: hold the prompt of the turn you are reading at the top
|
|
331
356
|
* of the transcript, as the Claude Code CLI does. The **real row** is pinned
|
|
@@ -519,6 +544,8 @@ declare function SessionPanel({
|
|
|
519
544
|
terminalMetrics,
|
|
520
545
|
scrubber,
|
|
521
546
|
scrubberMarks,
|
|
547
|
+
reveal,
|
|
548
|
+
openSubagent,
|
|
522
549
|
stickyPrompt,
|
|
523
550
|
controlsSurface,
|
|
524
551
|
onControls,
|
|
@@ -531,4 +558,4 @@ declare function SessionPanel({
|
|
|
531
558
|
}: SessionPanelProps): _$react.JSX.Element;
|
|
532
559
|
//#endregion
|
|
533
560
|
export { permissionModeChoices as C, PermissionModeSelectProps as S, useAffordances as _, SessionVitals as a, PermissionModeMeta as b, TranscriptDensityProvider as c, TranscriptVariantProvider as d, useTranscriptDensity as f, WithActions as g, TerminalAffordances as h, SessionSurfacePanel as i, TranscriptFont as l, CopyAction as m, SessionPanel as n, TerminalMetrics as o, useTranscriptVariant as p, SessionPanelProps as r, TranscriptDensity as s, SessionControls as t, TranscriptVariant as u, PERMISSION_MODES as v, permissionModeMeta as w, PermissionModeSelect as x, PermissionModeChoice as y };
|
|
534
|
-
//# sourceMappingURL=SessionPanel-
|
|
561
|
+
//# sourceMappingURL=SessionPanel-CnU_IJ3-.d.mts.map
|