@prettier-ai/dsh-client-ui-chat 0.1.2-alpha.1 → 0.1.2-alpha.3
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.i18n.yaml +2 -2
- package/README.md +11 -2
- package/README.zh.md +11 -2
- package/lib/client.js +663 -234
- package/lib/index.js +1 -2
- package/lib/types/client/chat/ChatView.d.ts +1 -1
- package/lib/types/client/chat/MessageIconActions.d.ts +6 -7
- package/lib/types/client/chat/MessageItem.d.ts +5 -5
- package/lib/types/client/chat/TurnNavigator.d.ts +11 -6
- package/lib/types/client/chat/TurnUsagePanel.d.ts +30 -0
- package/lib/types/client/chat/turn-rail-items.d.ts +36 -0
- package/lib/types/client/contract/slots.d.ts +2 -0
- package/lib/types/client/conversation-nodes/inbox.d.ts +18 -9
- package/lib/types/client/locale.d.ts +14 -6
- package/package.json +34 -55
- package/lib/types/client/chat/TurnUsageDisclosure.d.ts +0 -9
package/lib/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { settingsNamespace } from "@prettier-ai/dsh-settings";
|
|
2
1
|
import z from "@prettier-ai/schemastery";
|
|
3
2
|
//#region lib/types/chat-settings.js
|
|
4
3
|
/** Chat transcript preferences stored in the Host user-settings document. */
|
|
@@ -18,7 +17,7 @@ const ChatSettingsSchema = z.object({ [TRANSCRIPT_VIEW_FIELD]: z.union([...TRANS
|
|
|
18
17
|
/** Register the durable Chat settings section when a provider exists. */
|
|
19
18
|
function apply(ctx) {
|
|
20
19
|
ctx.inject(["settings"], (settingsCtx) => {
|
|
21
|
-
settingsCtx.settings.register(
|
|
20
|
+
settingsCtx.settings.register(CHAT_SETTINGS_NAMESPACE, ChatSettingsSchema);
|
|
22
21
|
});
|
|
23
22
|
}
|
|
24
23
|
//#endregion
|
|
@@ -3,5 +3,5 @@ import type { ChatViewSlotProps } from '../contract/slots.ts';
|
|
|
3
3
|
* The chat view slot entry: pure component over the composed props; each
|
|
4
4
|
* ordered business Node crosses the keyed renderer seat.
|
|
5
5
|
*/
|
|
6
|
-
export declare function ChatView({ useSession, useChat, useSessions, useStore, actions, renderSlot, sessionId, openFile, loadOlder, loadImage, openView, chatScroll, forkAt, fileMentions, useTranscriptView, t, }: ChatViewSlotProps): import("react").JSX.Element;
|
|
6
|
+
export declare function ChatView({ useSession, useChat, useSessions, useStore, actions, renderSlot, sessionId, openFile, loadOlder, loadThrough, loadImage, openView, chatScroll, forkAt, fileMentions, useTranscriptView, useProjection, t, }: ChatViewSlotProps): import("react").JSX.Element;
|
|
7
7
|
//# sourceMappingURL=ChatView.d.ts.map
|
|
@@ -5,12 +5,6 @@ export interface MessageIconActionsProps {
|
|
|
5
5
|
text: string;
|
|
6
6
|
/** Unix epoch ms for the clock label; omitted for transient messages. */
|
|
7
7
|
time?: number | undefined;
|
|
8
|
-
/** Turn wall time in ms, appended to the clock as `· Ran for 15s`; omitted when the turn's start is unknown. */
|
|
9
|
-
runMs?: number | undefined;
|
|
10
|
-
/** Turn first-step TTFT in ms, appended as `· TTFT 1.2s`; omitted when unrecorded. */
|
|
11
|
-
ttftMs?: number | undefined;
|
|
12
|
-
/** Turn decode throughput, appended as `· 34 tok/s`; omitted when unrecorded. */
|
|
13
|
-
tokensPerSecond?: number | undefined;
|
|
14
8
|
/** Clock before icons (user) or after (assistant). */
|
|
15
9
|
clock: 'start' | 'end';
|
|
16
10
|
/** Fork the session at this message; omission hides the branch action. */
|
|
@@ -24,6 +18,11 @@ export interface MessageIconActionsProps {
|
|
|
24
18
|
* built-in copy and branch controls.
|
|
25
19
|
*/
|
|
26
20
|
extraActions?: ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Icon-row Turn-usage trigger (the TurnUsagePanel pill), seated after the
|
|
23
|
+
* branch control at the end of the icon cluster.
|
|
24
|
+
*/
|
|
25
|
+
usageAction?: ReactNode;
|
|
27
26
|
/** The owning view's locale seat, passed down as a plain prop. */
|
|
28
27
|
t: ChatViewSlotProps['t'];
|
|
29
28
|
}
|
|
@@ -32,5 +31,5 @@ export interface MessageIconActionsProps {
|
|
|
32
31
|
* @param props - Copy text, event time, clock side, branch callback, className.
|
|
33
32
|
* @returns The actions row element.
|
|
34
33
|
*/
|
|
35
|
-
export declare function MessageIconActions({ text, time,
|
|
34
|
+
export declare function MessageIconActions({ text, time, clock, onBranch, branchUnavailable, className, extraActions, usageAction, t, }: MessageIconActionsProps): import("react").JSX.Element;
|
|
36
35
|
//# sourceMappingURL=MessageIconActions.d.ts.map
|
|
@@ -13,10 +13,10 @@ export declare function PendingSteeringBubble({ content, renderMessageImages, t
|
|
|
13
13
|
t: ChatViewSlotProps['t'];
|
|
14
14
|
}): ReactNode;
|
|
15
15
|
/**
|
|
16
|
-
* Render one local submission echo with the
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* Render one local transcript or steering submission echo with the same
|
|
17
|
+
* visual language and surface marker as the Host occurrence that replaces
|
|
18
|
+
* it: draft text plus object-URL previews, visible from the submit click
|
|
19
|
+
* until the durable `user/message` or steering occurrence renders.
|
|
20
20
|
* @param props - the session snapshot's pending submission and render seats.
|
|
21
21
|
* @returns the echoed user bubble.
|
|
22
22
|
*/
|
|
@@ -26,7 +26,7 @@ export declare function PendingSubmissionBubble({ submission, renderMessageImage
|
|
|
26
26
|
t: ChatViewSlotProps['t'];
|
|
27
27
|
}): ReactNode;
|
|
28
28
|
/** User and admitted-steering keyed Chat renderer. */
|
|
29
|
-
export declare const UserMessageNodeView: import("react").MemoExoticComponent<({ node, renderMessageImages, t, }: ChatNodeViewProps<"user" | "steering">) => import("react").JSX.Element>;
|
|
29
|
+
export declare const UserMessageNodeView: import("react").MemoExoticComponent<({ node, renderMessageImages, useChat, t, }: ChatNodeViewProps<"user" | "steering">) => import("react").JSX.Element>;
|
|
30
30
|
/** Injected-context keyed Chat renderer. */
|
|
31
31
|
export declare const ContextMessageNodeView: import("react").MemoExoticComponent<({ node, t }: ChatNodeViewProps<"context">) => import("react").JSX.Element>;
|
|
32
32
|
/** Automatic compaction keyed Chat renderer. */
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import type { ChatViewSlotProps } from '../contract/slots.ts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TurnRailItem } from './turn-rail-items.ts';
|
|
3
3
|
interface TurnNavigatorProps {
|
|
4
|
-
readonly items: readonly
|
|
4
|
+
readonly items: readonly TurnRailItem[];
|
|
5
5
|
readonly activeTurn: number | null;
|
|
6
|
-
|
|
6
|
+
/** Turn whose jump is still paging history in; its mark pulses. */
|
|
7
|
+
readonly busyTurn: number | null;
|
|
8
|
+
readonly onNavigate: (item: TurnRailItem) => void;
|
|
7
9
|
readonly t: ChatViewSlotProps['t'];
|
|
8
10
|
}
|
|
9
|
-
declare function TurnNavigatorRail({ items, activeTurn, onNavigate, t }: TurnNavigatorProps): import("react").JSX.Element | null;
|
|
11
|
+
declare function TurnNavigatorRail({ items, activeTurn, busyTurn, onNavigate, t }: TurnNavigatorProps): import("react").JSX.Element | null;
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* Fixed-pitch rail of every known Turn — loaded marks scroll, unloaded marks
|
|
14
|
+
* page history in first — with hover and focus previews. Overflow scrolls
|
|
15
|
+
* inside the frame, gradient fades marking each scrollable end, and the
|
|
16
|
+
* active mark keeps itself in view while the pointer is elsewhere.
|
|
12
17
|
*
|
|
13
|
-
* Memoized because it renders two host elements per
|
|
18
|
+
* Memoized because it renders two host elements per Turn while the
|
|
14
19
|
* enclosing view re-renders on every streaming delta: without the guard a long
|
|
15
20
|
* session rebuilds hundreds of marks per commit for a rail that only changes
|
|
16
21
|
* when a Turn is added, removed, or becomes active. Its props must therefore
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { TurnTokenUsage } from '../contract/chat-nodes.ts';
|
|
2
|
+
import type { ChatViewSlotProps } from '../contract/slots.ts';
|
|
3
|
+
export interface TurnUsagePanelProps {
|
|
4
|
+
usage: TurnTokenUsage;
|
|
5
|
+
/** The owning view's locale seat, passed down as a plain prop. */
|
|
6
|
+
t: ChatViewSlotProps['t'];
|
|
7
|
+
}
|
|
8
|
+
export interface TurnTimePanelProps {
|
|
9
|
+
/** Turn wall time in ms, the pill's label. */
|
|
10
|
+
runMs: number;
|
|
11
|
+
/** Turn decode throughput, a dialog row when known. */
|
|
12
|
+
tokensPerSecond?: number | undefined;
|
|
13
|
+
/** Turn first-step TTFT in ms, a dialog row when known. */
|
|
14
|
+
ttftMs?: number | undefined;
|
|
15
|
+
/** The owning view's locale seat, passed down as a plain prop. */
|
|
16
|
+
t: ChatViewSlotProps['t'];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Turn-usage IconActions pill with a click-open Turn-usage details dialog.
|
|
20
|
+
* @param props - Turn usage buckets and locale seat.
|
|
21
|
+
* @returns The trigger and, while open, its portaled dialog anchored above the trigger.
|
|
22
|
+
*/
|
|
23
|
+
export declare function TurnUsagePanel({ usage, t }: TurnUsagePanelProps): import("react").JSX.Element;
|
|
24
|
+
/**
|
|
25
|
+
* Turn-time IconActions pill with a click-open Turn-time details dialog.
|
|
26
|
+
* @param props - Turn timing facts and locale seat.
|
|
27
|
+
* @returns The clock-and-duration trigger and, while open, its portaled dialog anchored above the trigger.
|
|
28
|
+
*/
|
|
29
|
+
export declare function TurnTimePanel({ runMs, tokensPerSecond, ttftMs, t }: TurnTimePanelProps): import("react").JSX.Element;
|
|
30
|
+
//# sourceMappingURL=TurnUsagePanel.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View-layer union of the host turn outline and the loaded rail items. The
|
|
3
|
+
* conversation snapshot never carries projection values, so this merge is the
|
|
4
|
+
* one place the rail's two sources meet: the `turnOutline` projection names
|
|
5
|
+
* every turn of the session, and the loaded window supplies anchors and
|
|
6
|
+
* richer previews for the turns it holds.
|
|
7
|
+
*/
|
|
8
|
+
import type { TurnNavigationItem } from '../contract/snapshot.ts';
|
|
9
|
+
/** One rail mark: a loaded Turn scrolls to its row; an unloaded one pages history through its seq first. */
|
|
10
|
+
export interface TurnRailItem {
|
|
11
|
+
readonly turn: number;
|
|
12
|
+
/** Bounded prompt preview (loaded window first, outline fallback). */
|
|
13
|
+
readonly prompt: string;
|
|
14
|
+
/** Bounded response preview (loaded window first, outline fallback). */
|
|
15
|
+
readonly response: string;
|
|
16
|
+
/** How the rail reaches the Turn. */
|
|
17
|
+
readonly anchor: {
|
|
18
|
+
readonly kind: 'loaded';
|
|
19
|
+
readonly key: string;
|
|
20
|
+
} | {
|
|
21
|
+
readonly kind: 'unloaded';
|
|
22
|
+
readonly seq: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Merge the host outline with the loaded rail items into the full ladder.
|
|
27
|
+
* A turn present in both sides keeps the loaded anchor, taking an outline
|
|
28
|
+
* preview only where the window's own is empty (a mid-Turn window head, or a
|
|
29
|
+
* turn whose loaded nodes carry no text); turns on one side only pass
|
|
30
|
+
* through. Result ascends by turn.
|
|
31
|
+
* @param loaded - loaded-window rail items (timeline order).
|
|
32
|
+
* @param outline - `turnOutline` projection value, treated as wire data.
|
|
33
|
+
* @returns every known turn, ascending; a stable empty array when none.
|
|
34
|
+
*/
|
|
35
|
+
export declare function mergeTurnRailItems(loaded: readonly TurnNavigationItem[], outline: unknown): readonly TurnRailItem[];
|
|
36
|
+
//# sourceMappingURL=turn-rail-items.d.ts.map
|
|
@@ -95,6 +95,8 @@ export interface ChatViewInjected {
|
|
|
95
95
|
openDetails: (target: SelectionTarget) => void;
|
|
96
96
|
openFile: (path: string) => Promise<void>;
|
|
97
97
|
loadOlder: () => void;
|
|
98
|
+
/** Jump loader: page history back through seq; resolves when the window covers it. */
|
|
99
|
+
loadThrough: (seq: number) => Promise<void>;
|
|
98
100
|
loadImage: MessageImageLoader;
|
|
99
101
|
chatScroll: {
|
|
100
102
|
save: (position: ChatScrollPosition | null) => void;
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
import type { Context } from '@prettier-ai/cordis';
|
|
2
2
|
import type { ConversationNodeDefinition } from '@prettier-ai/dsh-client-ui-conversation/client';
|
|
3
|
-
interface
|
|
4
|
-
readonly
|
|
3
|
+
interface PendingSnapshot {
|
|
4
|
+
readonly kind: 'snapshot';
|
|
5
|
+
readonly ids: readonly string[];
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
interface PendingSplice {
|
|
8
|
+
readonly kind: 'splice';
|
|
9
|
+
readonly previous: PendingState;
|
|
10
|
+
readonly start: number;
|
|
11
|
+
readonly removedCount: number;
|
|
12
|
+
readonly inserted: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
type PendingState = PendingSnapshot | PendingSplice;
|
|
15
|
+
/** Persistent next-step state after one durable Inbox splice. */
|
|
7
16
|
export interface InboxState {
|
|
8
|
-
|
|
9
|
-
readonly
|
|
17
|
+
/** Persistent splice chain materialized only when a next-step batch is claimed. */
|
|
18
|
+
readonly pending: PendingState;
|
|
19
|
+
/** Message ids in the current claim, shared until the next claim. */
|
|
20
|
+
readonly currentClaimed: ReadonlySet<string>;
|
|
10
21
|
}
|
|
11
|
-
/**
|
|
12
|
-
export declare const nextTurnInboxDefinition: ConversationNodeDefinition<InboxState>;
|
|
13
|
-
/** Cumulative next-step inbox splice Definition used to classify steering. */
|
|
22
|
+
/** Persistent next-step Inbox state used to classify the current claimed batch as steering. */
|
|
14
23
|
export declare const nextStepInboxDefinition: ConversationNodeDefinition<InboxState>;
|
|
15
24
|
/**
|
|
16
|
-
* Register the
|
|
25
|
+
* Register the next-step Inbox state used by Chat message classification.
|
|
17
26
|
* @param ctx - owning UI Conversation context.
|
|
18
27
|
*/
|
|
19
28
|
export declare function registerInboxConversationNodes(ctx: Context): void;
|
|
@@ -29,6 +29,7 @@ export declare const zh: {
|
|
|
29
29
|
'chat.deepDiving': string;
|
|
30
30
|
'chat.turnNavigation.label': string;
|
|
31
31
|
'chat.turnNavigation.jump': string;
|
|
32
|
+
'chat.turnNavigation.jumpLoad': string;
|
|
32
33
|
'chat.turnNavigation.turn': string;
|
|
33
34
|
'settings.transcript.title': string;
|
|
34
35
|
'settings.transcript.description': string;
|
|
@@ -86,18 +87,21 @@ export declare const zh: {
|
|
|
86
87
|
'message.maxTokens': string;
|
|
87
88
|
'message.maxTokens.hint': string;
|
|
88
89
|
'message.ranFor': string;
|
|
89
|
-
'message.ttft': string;
|
|
90
90
|
'message.tokensPerSecond': string;
|
|
91
91
|
'message.turnUsage.title': string;
|
|
92
|
-
'message.turnUsage.
|
|
92
|
+
'message.turnUsage.consumed': string;
|
|
93
93
|
'message.turnUsage.model': string;
|
|
94
|
+
'message.turnUsage.cacheHit': string;
|
|
94
95
|
'message.turnUsage.input': string;
|
|
95
96
|
'message.turnUsage.cacheRead': string;
|
|
96
97
|
'message.turnUsage.cacheWrite': string;
|
|
97
98
|
'message.turnUsage.output': string;
|
|
98
99
|
'message.turnUsage.reasoning': string;
|
|
99
|
-
'message.turnUsage.total': string;
|
|
100
100
|
'message.turnUsage.count': string;
|
|
101
|
+
'message.turnTime.title': string;
|
|
102
|
+
'message.turnTime.duration': string;
|
|
103
|
+
'message.turnTime.speed': string;
|
|
104
|
+
'message.turnTime.ttft': string;
|
|
101
105
|
'duration.seconds': string;
|
|
102
106
|
'duration.minutes': string;
|
|
103
107
|
'command.running': string;
|
|
@@ -140,6 +144,7 @@ export declare const en: {
|
|
|
140
144
|
'chat.deepDiving': string;
|
|
141
145
|
'chat.turnNavigation.label': string;
|
|
142
146
|
'chat.turnNavigation.jump': string;
|
|
147
|
+
'chat.turnNavigation.jumpLoad': string;
|
|
143
148
|
'chat.turnNavigation.turn': string;
|
|
144
149
|
'settings.transcript.title': string;
|
|
145
150
|
'settings.transcript.description': string;
|
|
@@ -197,18 +202,21 @@ export declare const en: {
|
|
|
197
202
|
'message.maxTokens': string;
|
|
198
203
|
'message.maxTokens.hint': string;
|
|
199
204
|
'message.ranFor': string;
|
|
200
|
-
'message.ttft': string;
|
|
201
205
|
'message.tokensPerSecond': string;
|
|
202
206
|
'message.turnUsage.title': string;
|
|
203
|
-
'message.turnUsage.
|
|
207
|
+
'message.turnUsage.consumed': string;
|
|
204
208
|
'message.turnUsage.model': string;
|
|
209
|
+
'message.turnUsage.cacheHit': string;
|
|
205
210
|
'message.turnUsage.input': string;
|
|
206
211
|
'message.turnUsage.cacheRead': string;
|
|
207
212
|
'message.turnUsage.cacheWrite': string;
|
|
208
213
|
'message.turnUsage.output': string;
|
|
209
214
|
'message.turnUsage.reasoning': string;
|
|
210
|
-
'message.turnUsage.total': string;
|
|
211
215
|
'message.turnUsage.count': string;
|
|
216
|
+
'message.turnTime.title': string;
|
|
217
|
+
'message.turnTime.duration': string;
|
|
218
|
+
'message.turnTime.speed': string;
|
|
219
|
+
'message.turnTime.ttft': string;
|
|
212
220
|
'duration.seconds': string;
|
|
213
221
|
'duration.minutes': string;
|
|
214
222
|
'command.running': string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prettier-ai/dsh-client-ui-chat",
|
|
3
3
|
"description": "Chat Conversation target, node definitions, renderers, and details surface",
|
|
4
|
-
"version": "0.1.2-alpha.
|
|
4
|
+
"version": "0.1.2-alpha.3",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -47,66 +47,45 @@
|
|
|
47
47
|
},
|
|
48
48
|
"license": "MIT",
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@prettier-ai/cordis": "^4.0.
|
|
51
|
-
"@prettier-ai/dsh-api-session-controller": "^0.1.2-alpha.1",
|
|
52
|
-
"@prettier-ai/dsh-api-workspace-controller": "^0.1.2-alpha.1",
|
|
53
|
-
"@prettier-ai/dsh-agent": "^0.1.2-alpha.1",
|
|
54
|
-
"@prettier-ai/dsh-api-remotes": "^0.1.2-alpha.1",
|
|
55
|
-
"@prettier-ai/dsh-client-locale": "^0.1.2-alpha.1",
|
|
56
|
-
"@prettier-ai/dsh-attachment": "^0.1.2-alpha.1",
|
|
57
|
-
"@prettier-ai/dsh-client-ui-approval": "^0.1.2-alpha.1",
|
|
58
|
-
"@prettier-ai/dsh-client-ui-conversation": "^0.1.2-alpha.1",
|
|
59
|
-
"@prettier-ai/dsh-client-ui-renderer": "^0.1.2-alpha.1",
|
|
60
|
-
"@prettier-ai/dsh-client-ui-session": "^0.1.2-alpha.1",
|
|
61
|
-
"@prettier-ai/dsh-client-ui-settings": "^0.1.2-alpha.1",
|
|
62
|
-
"@prettier-ai/dsh-client-ui-workspace": "^0.1.2-alpha.1",
|
|
63
|
-
"@prettier-ai/dsh-compaction": "^0.1.2-alpha.1",
|
|
64
|
-
"@prettier-ai/dsh-commands": "^0.1.2-alpha.1",
|
|
65
|
-
"@prettier-ai/dsh-llm": "^0.1.2-alpha.1",
|
|
66
|
-
"@prettier-ai/dsh-invariants": "^0.1.2-alpha.1",
|
|
67
|
-
"@prettier-ai/dsh-llm-retry": "^0.1.2-alpha.1",
|
|
68
|
-
"@prettier-ai/dsh-client-ui-layout": "^0.1.2-alpha.1",
|
|
69
|
-
"@prettier-ai/dsh-session": "^0.1.2-alpha.1",
|
|
70
|
-
"@prettier-ai/dsh-settings": "^0.1.2-alpha.1",
|
|
71
|
-
"@prettier-ai/dsh-session-stats": "^0.1.2-alpha.1",
|
|
72
|
-
"@prettier-ai/dsh-tools": "^0.1.2-alpha.1",
|
|
73
|
-
"@prettier-ai/dsh-token-meter": "^0.1.2-alpha.1",
|
|
74
|
-
"@prettier-ai/dsh-util-workspace-path": "^0.1.2-alpha.1"
|
|
50
|
+
"@prettier-ai/cordis": "^4.0.2"
|
|
75
51
|
},
|
|
76
52
|
"devDependencies": {
|
|
77
53
|
"@types/react": "~18.3.1",
|
|
54
|
+
"@types/react-dom": "~18.3.0",
|
|
78
55
|
"react": "^18.2.0",
|
|
79
|
-
"
|
|
80
|
-
"@prettier-ai/dsh-
|
|
81
|
-
"@prettier-ai/
|
|
82
|
-
"@prettier-ai/dsh-api-session-controller": "^0.1.2-alpha.
|
|
83
|
-
"@prettier-ai/dsh-
|
|
84
|
-
"@prettier-ai/dsh-
|
|
85
|
-
"@prettier-ai/dsh-
|
|
86
|
-
"@prettier-ai/dsh-client-ui-approval": "^0.1.2-alpha.
|
|
87
|
-
"@prettier-ai/dsh-client-
|
|
88
|
-
"@prettier-ai/dsh-client-ui-
|
|
89
|
-
"@prettier-ai/dsh-client-ui-
|
|
90
|
-
"@prettier-ai/dsh-client-ui-
|
|
91
|
-
"@prettier-ai/dsh-client-
|
|
92
|
-
"@prettier-ai/dsh-client-ui-
|
|
93
|
-
"@prettier-ai/dsh-client-ui-
|
|
94
|
-
"@prettier-ai/dsh-
|
|
95
|
-
"@prettier-ai/dsh-
|
|
96
|
-
"@prettier-ai/dsh-client-ui-
|
|
97
|
-
"@prettier-ai/dsh-
|
|
98
|
-
"@prettier-ai/dsh-
|
|
99
|
-
"@prettier-ai/dsh-
|
|
100
|
-
"@prettier-ai/dsh-llm-retry": "^0.1.2-alpha.
|
|
101
|
-
"@prettier-ai/dsh-
|
|
102
|
-
"@prettier-ai/dsh-
|
|
103
|
-
"@prettier-ai/dsh-session": "^0.1.2-alpha.
|
|
104
|
-
"@prettier-ai/dsh-
|
|
105
|
-
"@prettier-ai/dsh-
|
|
106
|
-
"@prettier-ai/dsh-util-workspace-path": "^0.1.2-alpha.
|
|
56
|
+
"react-dom": "^18.2.0",
|
|
57
|
+
"@prettier-ai/dsh-api-remotes": "^0.1.2-alpha.3",
|
|
58
|
+
"@prettier-ai/cordis": "^4.0.2",
|
|
59
|
+
"@prettier-ai/dsh-api-session-controller": "^0.1.2-alpha.3",
|
|
60
|
+
"@prettier-ai/dsh-agent": "^0.1.2-alpha.3",
|
|
61
|
+
"@prettier-ai/dsh-api-workspace-controller": "^0.1.2-alpha.3",
|
|
62
|
+
"@prettier-ai/dsh-attachment": "^0.1.2-alpha.3",
|
|
63
|
+
"@prettier-ai/dsh-client-ui-approval": "^0.1.2-alpha.3",
|
|
64
|
+
"@prettier-ai/dsh-client-store": "^0.1.2-alpha.3",
|
|
65
|
+
"@prettier-ai/dsh-client-ui-conversation": "^0.1.2-alpha.3",
|
|
66
|
+
"@prettier-ai/dsh-client-ui-layout": "^0.1.2-alpha.3",
|
|
67
|
+
"@prettier-ai/dsh-client-ui-primitives": "^0.1.2-alpha.3",
|
|
68
|
+
"@prettier-ai/dsh-client-locale": "^0.1.2-alpha.3",
|
|
69
|
+
"@prettier-ai/dsh-client-ui-renderer": "^0.1.2-alpha.3",
|
|
70
|
+
"@prettier-ai/dsh-client-ui-slots": "^0.1.2-alpha.3",
|
|
71
|
+
"@prettier-ai/dsh-client-ui-session": "^0.1.2-alpha.3",
|
|
72
|
+
"@prettier-ai/dsh-client-ui-workspace": "^0.1.2-alpha.3",
|
|
73
|
+
"@prettier-ai/dsh-client-ui-settings": "^0.1.2-alpha.3",
|
|
74
|
+
"@prettier-ai/dsh-commands": "^0.1.2-alpha.3",
|
|
75
|
+
"@prettier-ai/dsh-invariants": "^0.1.2-alpha.3",
|
|
76
|
+
"@prettier-ai/dsh-compaction": "^0.1.2-alpha.3",
|
|
77
|
+
"@prettier-ai/dsh-llm-retry": "^0.1.2-alpha.3",
|
|
78
|
+
"@prettier-ai/dsh-llm": "^0.1.2-alpha.3",
|
|
79
|
+
"@prettier-ai/dsh-session": "^0.1.2-alpha.3",
|
|
80
|
+
"@prettier-ai/dsh-session-stats": "^0.1.2-alpha.3",
|
|
81
|
+
"@prettier-ai/dsh-session-turn-outline": "^0.1.2-alpha.3",
|
|
82
|
+
"@prettier-ai/dsh-token-meter": "^0.1.2-alpha.3",
|
|
83
|
+
"@prettier-ai/dsh-util-workspace-path": "^0.1.2-alpha.3",
|
|
84
|
+
"@prettier-ai/dsh-settings": "^0.1.2-alpha.3",
|
|
85
|
+
"@prettier-ai/dsh-tools": "^0.1.2-alpha.3"
|
|
107
86
|
},
|
|
108
87
|
"dependencies": {
|
|
109
|
-
"@prettier-ai/schemastery": "^3.18.
|
|
88
|
+
"@prettier-ai/schemastery": "^3.18.2"
|
|
110
89
|
},
|
|
111
90
|
"files": [
|
|
112
91
|
"lib/index.js",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { TurnTokenUsage } from '../contract/chat-nodes.ts';
|
|
2
|
-
import type { ChatViewSlotProps } from '../contract/slots.ts';
|
|
3
|
-
export interface TurnUsageDisclosureProps {
|
|
4
|
-
usage: TurnTokenUsage;
|
|
5
|
-
t: ChatViewSlotProps['t'];
|
|
6
|
-
}
|
|
7
|
-
/** Compact per-Turn usage summary with an opt-in bucket breakdown. */
|
|
8
|
-
export declare function TurnUsageDisclosure({ usage, t }: TurnUsageDisclosureProps): import("react").JSX.Element;
|
|
9
|
-
//# sourceMappingURL=TurnUsageDisclosure.d.ts.map
|