@nextclaw/agent-chat-ui 0.2.21 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +246 -234
- package/dist/index.js +3037 -3592
- package/package.json +2 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,319 +1,331 @@
|
|
|
1
|
-
import * as react from
|
|
2
|
-
import { RefObject } from
|
|
3
|
-
import * as
|
|
1
|
+
import * as _$react from "react";
|
|
2
|
+
import { ReactNode, RefObject } from "react";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
|
|
5
|
+
//#region src/components/chat/view-models/chat-ui.types.d.ts
|
|
5
6
|
type ChatTexts = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
slashLoadingLabel: string;
|
|
8
|
+
slashSectionLabel: string;
|
|
9
|
+
slashEmptyLabel: string;
|
|
10
|
+
slashHintLabel: string;
|
|
11
|
+
slashSkillHintLabel: string;
|
|
12
|
+
sendButtonLabel: string;
|
|
13
|
+
stopButtonLabel: string;
|
|
13
14
|
};
|
|
14
15
|
type ChatSlashItem = {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
key: string;
|
|
17
|
+
title: string;
|
|
18
|
+
subtitle: string;
|
|
19
|
+
description: string;
|
|
20
|
+
detailLines: string[];
|
|
21
|
+
value?: string;
|
|
21
22
|
};
|
|
22
23
|
type ChatSelectedItem = {
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
key: string;
|
|
25
|
+
label: string;
|
|
25
26
|
};
|
|
26
27
|
type ChatComposerTokenKind = "skill" | "file";
|
|
27
28
|
type ChatComposerTextNode = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
id: string;
|
|
30
|
+
type: "text";
|
|
31
|
+
text: string;
|
|
31
32
|
};
|
|
32
33
|
type ChatComposerTokenNode = {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
id: string;
|
|
35
|
+
type: "token";
|
|
36
|
+
tokenKind: ChatComposerTokenKind;
|
|
37
|
+
tokenKey: string;
|
|
38
|
+
label: string;
|
|
38
39
|
};
|
|
39
40
|
type ChatComposerNode = ChatComposerTextNode | ChatComposerTokenNode;
|
|
40
41
|
type ChatComposerSelection = {
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
start: number;
|
|
43
|
+
end: number;
|
|
43
44
|
};
|
|
44
45
|
type ChatToolbarIcon = "sparkles" | "brain";
|
|
45
46
|
type ChatToolbarAccessoryIcon = ChatToolbarIcon | "paperclip";
|
|
46
47
|
type ChatToolbarSelectOption = {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
value: string;
|
|
49
|
+
label: string;
|
|
50
|
+
description?: string;
|
|
50
51
|
};
|
|
51
52
|
type ChatToolbarSelectGroup = {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
key: string;
|
|
54
|
+
label?: string;
|
|
55
|
+
options: ChatToolbarSelectOption[];
|
|
55
56
|
};
|
|
56
57
|
type ChatToolbarSelect = {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
58
|
+
key: string;
|
|
59
|
+
value?: string;
|
|
60
|
+
placeholder: string;
|
|
61
|
+
selectedLabel?: string;
|
|
62
|
+
icon?: ChatToolbarIcon;
|
|
63
|
+
options: ChatToolbarSelectOption[];
|
|
64
|
+
groups?: ChatToolbarSelectGroup[];
|
|
65
|
+
disabled?: boolean;
|
|
66
|
+
loading?: boolean;
|
|
67
|
+
emptyLabel?: string;
|
|
68
|
+
onValueChange: (value: string) => void;
|
|
68
69
|
};
|
|
69
70
|
type ChatToolbarAccessory = {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
key: string;
|
|
72
|
+
label: string;
|
|
73
|
+
icon?: ChatToolbarAccessoryIcon;
|
|
74
|
+
iconOnly?: boolean;
|
|
75
|
+
disabled?: boolean;
|
|
76
|
+
tooltip?: string;
|
|
77
|
+
onClick?: () => void;
|
|
77
78
|
};
|
|
78
79
|
type ChatSkillPickerOption = {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
key: string;
|
|
81
|
+
label: string;
|
|
82
|
+
description?: string;
|
|
83
|
+
badgeLabel?: string;
|
|
83
84
|
};
|
|
84
85
|
type ChatSkillPickerOptionGroup = {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
key: string;
|
|
87
|
+
label?: string;
|
|
88
|
+
options: ChatSkillPickerOption[];
|
|
88
89
|
};
|
|
89
90
|
type ChatSkillPickerProps = {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
91
|
+
title: string;
|
|
92
|
+
searchPlaceholder: string;
|
|
93
|
+
emptyLabel: string;
|
|
94
|
+
loadingLabel: string;
|
|
95
|
+
isLoading?: boolean;
|
|
96
|
+
manageLabel?: string;
|
|
97
|
+
manageHref?: string;
|
|
98
|
+
options: ChatSkillPickerOption[];
|
|
99
|
+
groups?: ChatSkillPickerOptionGroup[];
|
|
100
|
+
selectedKeys: string[];
|
|
101
|
+
onSelectedKeysChange: (next: string[]) => void;
|
|
101
102
|
};
|
|
102
103
|
type ChatInputBarActionsProps = {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
104
|
+
sendError?: string | null;
|
|
105
|
+
isSending: boolean;
|
|
106
|
+
canStopGeneration: boolean;
|
|
107
|
+
sendDisabled: boolean;
|
|
108
|
+
stopDisabled: boolean;
|
|
109
|
+
stopHint: string;
|
|
110
|
+
sendButtonLabel: string;
|
|
111
|
+
stopButtonLabel: string;
|
|
112
|
+
onSend: () => Promise<void> | void;
|
|
113
|
+
onStop: () => Promise<void> | void;
|
|
113
114
|
};
|
|
114
115
|
type ChatInputBarToolbarProps = {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
selects: ChatToolbarSelect[];
|
|
117
|
+
accessories?: ChatToolbarAccessory[];
|
|
118
|
+
skillPicker?: ChatSkillPickerProps | null;
|
|
119
|
+
actions: ChatInputBarActionsProps;
|
|
119
120
|
};
|
|
120
121
|
type ChatInlineHint = {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
tone: "neutral" | "warning";
|
|
123
|
+
loading?: boolean;
|
|
124
|
+
text?: string;
|
|
125
|
+
actionLabel?: string;
|
|
126
|
+
onAction?: () => void;
|
|
126
127
|
};
|
|
127
128
|
type ChatSlashMenuProps = {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
129
|
+
isOpen: boolean;
|
|
130
|
+
isLoading: boolean;
|
|
131
|
+
items: ChatSlashItem[];
|
|
132
|
+
activeIndex: number;
|
|
133
|
+
activeItem: ChatSlashItem | null;
|
|
134
|
+
texts: Pick<ChatTexts, "slashLoadingLabel" | "slashSectionLabel" | "slashEmptyLabel" | "slashHintLabel" | "slashSkillHintLabel">;
|
|
135
|
+
onSelectItem: (item: ChatSlashItem) => void;
|
|
136
|
+
onOpenChange: (open: boolean) => void;
|
|
137
|
+
onSetActiveIndex: (index: number) => void;
|
|
137
138
|
};
|
|
138
139
|
type ChatInputBarProps = {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
140
|
+
composer: {
|
|
141
|
+
nodes: ChatComposerNode[];
|
|
142
|
+
placeholder: string;
|
|
143
|
+
disabled: boolean;
|
|
144
|
+
onNodesChange: (nodes: ChatComposerNode[]) => void;
|
|
145
|
+
onFilesAdd?: (files: File[]) => Promise<void> | void;
|
|
146
|
+
onSlashQueryChange?: (query: string | null) => void;
|
|
147
|
+
};
|
|
148
|
+
slashMenu: Pick<ChatSlashMenuProps, "isLoading" | "items" | "texts"> & {
|
|
149
|
+
onSelectItem?: (item: ChatSlashItem) => void;
|
|
150
|
+
};
|
|
151
|
+
hint?: ChatInlineHint | null;
|
|
152
|
+
toolbar: ChatInputBarToolbarProps;
|
|
152
153
|
};
|
|
153
154
|
type ChatMessageRole = "user" | "assistant" | "tool" | "system" | "message";
|
|
154
155
|
type ChatFileOperationLineViewModel = {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
kind: "context" | "add" | "remove";
|
|
157
|
+
text: string;
|
|
158
|
+
oldLineNumber?: number;
|
|
159
|
+
newLineNumber?: number;
|
|
159
160
|
};
|
|
160
161
|
type ChatFileOperationBlockViewModel = {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
162
|
+
key: string;
|
|
163
|
+
path: string;
|
|
164
|
+
display?: "preview" | "diff";
|
|
165
|
+
caption?: string;
|
|
166
|
+
lines: ChatFileOperationLineViewModel[];
|
|
167
|
+
rawText?: string;
|
|
168
|
+
truncated?: boolean;
|
|
168
169
|
};
|
|
169
170
|
type ChatToolActionViewModel = {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
171
|
+
kind: "open-session";
|
|
172
|
+
sessionId: string;
|
|
173
|
+
sessionKind: "child" | "session";
|
|
174
|
+
agentId?: string;
|
|
175
|
+
label?: string;
|
|
176
|
+
parentSessionId?: string;
|
|
175
177
|
};
|
|
176
178
|
type ChatToolPartViewModel = {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
179
|
+
kind: "call" | "result";
|
|
180
|
+
toolName: string;
|
|
181
|
+
agentId?: string;
|
|
182
|
+
summary?: string;
|
|
183
|
+
inputLabel?: string;
|
|
184
|
+
input?: string;
|
|
185
|
+
output?: string;
|
|
186
|
+
outputData?: unknown;
|
|
187
|
+
hasResult: boolean;
|
|
188
|
+
statusTone: "running" | "success" | "error" | "cancelled";
|
|
189
|
+
statusLabel: string;
|
|
190
|
+
titleLabel: string;
|
|
191
|
+
outputLabel: string;
|
|
192
|
+
emptyLabel: string;
|
|
193
|
+
action?: ChatToolActionViewModel;
|
|
194
|
+
fileOperation?: {
|
|
195
|
+
blocks: ChatFileOperationBlockViewModel[];
|
|
196
|
+
};
|
|
194
197
|
};
|
|
195
198
|
type ChatInlineTokenViewModel = {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
199
|
+
kind: string;
|
|
200
|
+
key: string;
|
|
201
|
+
label: string;
|
|
202
|
+
rawText: string;
|
|
200
203
|
};
|
|
201
204
|
type ChatInlineContentSegmentViewModel = {
|
|
202
|
-
|
|
203
|
-
|
|
205
|
+
type: "markdown";
|
|
206
|
+
text: string;
|
|
204
207
|
} | {
|
|
205
|
-
|
|
206
|
-
|
|
208
|
+
type: "token";
|
|
209
|
+
token: ChatInlineTokenViewModel;
|
|
207
210
|
};
|
|
208
211
|
type ChatMessagePartViewModel = {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
} | {
|
|
212
|
-
type: "inline-content";
|
|
213
|
-
segments: ChatInlineContentSegmentViewModel[];
|
|
212
|
+
type: "markdown";
|
|
213
|
+
text: string;
|
|
214
214
|
} | {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
label: string;
|
|
215
|
+
type: "inline-content";
|
|
216
|
+
segments: ChatInlineContentSegmentViewModel[];
|
|
218
217
|
} | {
|
|
219
|
-
|
|
220
|
-
|
|
218
|
+
type: "reasoning";
|
|
219
|
+
text: string;
|
|
220
|
+
label: string;
|
|
221
221
|
} | {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
label: string;
|
|
225
|
-
mimeType: string;
|
|
226
|
-
dataUrl?: string;
|
|
227
|
-
sizeBytes?: number;
|
|
228
|
-
isImage: boolean;
|
|
229
|
-
};
|
|
222
|
+
type: "tool-card";
|
|
223
|
+
card: ChatToolPartViewModel;
|
|
230
224
|
} | {
|
|
231
|
-
|
|
225
|
+
type: "file";
|
|
226
|
+
file: {
|
|
232
227
|
label: string;
|
|
233
|
-
|
|
234
|
-
|
|
228
|
+
mimeType: string;
|
|
229
|
+
dataUrl?: string;
|
|
230
|
+
sizeBytes?: number;
|
|
231
|
+
isImage: boolean;
|
|
232
|
+
};
|
|
233
|
+
} | {
|
|
234
|
+
type: "unknown";
|
|
235
|
+
label: string;
|
|
236
|
+
rawType: string;
|
|
237
|
+
text?: string;
|
|
235
238
|
};
|
|
236
239
|
type ChatMessageViewModel = {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
240
|
+
id: string;
|
|
241
|
+
role: ChatMessageRole;
|
|
242
|
+
roleLabel: string;
|
|
243
|
+
timestampLabel: string;
|
|
244
|
+
parts: ChatMessagePartViewModel[];
|
|
245
|
+
status?: string;
|
|
243
246
|
};
|
|
244
247
|
type ChatMessageTexts = {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
248
|
+
copyCodeLabel: string;
|
|
249
|
+
copiedCodeLabel: string;
|
|
250
|
+
copyMessageLabel: string;
|
|
251
|
+
copiedMessageLabel: string;
|
|
252
|
+
typingLabel: string;
|
|
250
253
|
};
|
|
251
254
|
type ChatMessageListProps = {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
255
|
+
messages: ChatMessageViewModel[];
|
|
256
|
+
isSending: boolean;
|
|
257
|
+
hasAssistantDraft: boolean;
|
|
258
|
+
texts: ChatMessageTexts;
|
|
259
|
+
className?: string;
|
|
260
|
+
onToolAction?: (action: ChatToolActionViewModel) => void;
|
|
261
|
+
renderToolAgent?: (agentId: string) => ReactNode;
|
|
262
|
+
};
|
|
263
|
+
//#endregion
|
|
264
|
+
//#region src/components/chat/ui/chat-input-bar/chat-input-bar.d.ts
|
|
260
265
|
type ChatInputBarHandle = {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
};
|
|
268
|
-
declare const ChatInputBar: react.ForwardRefExoticComponent<ChatInputBarProps & react.RefAttributes<ChatInputBarHandle>>;
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
266
|
+
insertFileToken: (tokenKey: string, label: string) => void;
|
|
267
|
+
insertFileTokens: (tokens: Array<{
|
|
268
|
+
tokenKey: string;
|
|
269
|
+
label: string;
|
|
270
|
+
}>) => void;
|
|
271
|
+
focusComposer: () => void;
|
|
272
|
+
};
|
|
273
|
+
declare const ChatInputBar: _$react.ForwardRefExoticComponent<ChatInputBarProps & _$react.RefAttributes<ChatInputBarHandle>>;
|
|
274
|
+
//#endregion
|
|
275
|
+
//#region src/components/chat/ui/chat-message-list/chat-message-list.d.ts
|
|
276
|
+
declare function ChatMessageList(props: ChatMessageListProps): _$react_jsx_runtime0.JSX.Element;
|
|
277
|
+
//#endregion
|
|
278
|
+
//#region src/components/chat/hooks/use-active-item-scroll.d.ts
|
|
272
279
|
type UseActiveItemScrollParams = {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
280
|
+
containerRef: RefObject<HTMLElement>;
|
|
281
|
+
activeIndex: number;
|
|
282
|
+
itemCount: number;
|
|
283
|
+
isEnabled: boolean;
|
|
284
|
+
getItemSelector?: (index: number) => string;
|
|
278
285
|
};
|
|
279
286
|
declare function useActiveItemScroll(params: UseActiveItemScrollParams): void;
|
|
280
|
-
|
|
287
|
+
//#endregion
|
|
288
|
+
//#region src/components/chat/hooks/use-copy-feedback.d.ts
|
|
281
289
|
type UseCopyFeedbackParams = {
|
|
282
|
-
|
|
283
|
-
|
|
290
|
+
text: string;
|
|
291
|
+
resetDelayMs?: number;
|
|
284
292
|
};
|
|
285
293
|
type UseCopyFeedbackResult = {
|
|
286
|
-
|
|
287
|
-
|
|
294
|
+
copied: boolean;
|
|
295
|
+
copy: () => Promise<void>;
|
|
288
296
|
};
|
|
289
297
|
declare function useCopyFeedback(params: UseCopyFeedbackParams): UseCopyFeedbackResult;
|
|
290
|
-
|
|
298
|
+
//#endregion
|
|
299
|
+
//#region src/components/chat/hooks/use-element-width.d.ts
|
|
291
300
|
type UseElementWidthResult<T extends HTMLElement> = {
|
|
292
|
-
|
|
293
|
-
|
|
301
|
+
elementRef: RefObject<T>;
|
|
302
|
+
width: number | null;
|
|
294
303
|
};
|
|
295
304
|
declare function useElementWidth<T extends HTMLElement>(): UseElementWidthResult<T>;
|
|
296
|
-
|
|
305
|
+
//#endregion
|
|
306
|
+
//#region src/components/chat/hooks/use-sticky-bottom-scroll.d.ts
|
|
297
307
|
type UseStickyBottomScrollParams = {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
308
|
+
scrollRef: RefObject<HTMLElement>;
|
|
309
|
+
resetKey: string | null;
|
|
310
|
+
isLoading: boolean;
|
|
311
|
+
hasContent: boolean;
|
|
312
|
+
contentVersion: unknown;
|
|
313
|
+
stickyThresholdPx?: number;
|
|
304
314
|
};
|
|
305
315
|
type UseStickyBottomScrollResult = {
|
|
306
|
-
|
|
316
|
+
onScroll: () => void;
|
|
307
317
|
};
|
|
308
318
|
declare function useStickyBottomScroll(params: UseStickyBottomScrollParams): UseStickyBottomScrollResult;
|
|
309
|
-
|
|
319
|
+
//#endregion
|
|
320
|
+
//#region src/components/chat/utils/copy-text.d.ts
|
|
310
321
|
declare function copyText(text: string): Promise<boolean>;
|
|
311
|
-
|
|
322
|
+
//#endregion
|
|
323
|
+
//#region src/components/chat/ui/chat-input-bar/chat-composer.utils.d.ts
|
|
312
324
|
declare function createChatComposerTextNode(text?: string): ChatComposerTextNode;
|
|
313
325
|
declare function createChatComposerTokenNode(params: {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
326
|
+
tokenKind: ChatComposerTokenKind;
|
|
327
|
+
tokenKey: string;
|
|
328
|
+
label: string;
|
|
317
329
|
}): ChatComposerTokenNode;
|
|
318
330
|
declare function createEmptyChatComposerNodes(): ChatComposerNode[];
|
|
319
331
|
declare function createChatComposerNodesFromText(text: string): ChatComposerNode[];
|
|
@@ -324,9 +336,9 @@ declare function extractChatComposerTokenKeys(nodes: ChatComposerNode[], tokenKi
|
|
|
324
336
|
declare function replaceChatComposerRange(nodes: ChatComposerNode[], start: number, end: number, replacement: ChatComposerNode[]): ChatComposerNode[];
|
|
325
337
|
declare function removeChatComposerTokenNodes(nodes: ChatComposerNode[], predicate: (node: ChatComposerTokenNode) => boolean): ChatComposerNode[];
|
|
326
338
|
declare function resolveChatComposerSlashTrigger(nodes: ChatComposerNode[], selection: ChatComposerSelection | null): {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
339
|
+
query: string;
|
|
340
|
+
start: number;
|
|
341
|
+
end: number;
|
|
330
342
|
} | null;
|
|
331
|
-
|
|
332
|
-
export { type ChatComposerNode, type ChatComposerSelection, type ChatComposerTextNode, type ChatComposerTokenKind, type ChatComposerTokenNode, type ChatFileOperationBlockViewModel, type ChatFileOperationLineViewModel, type ChatInlineContentSegmentViewModel, type ChatInlineHint, type ChatInlineTokenViewModel, ChatInputBar, type ChatInputBarActionsProps, type ChatInputBarHandle, type ChatInputBarProps, type ChatInputBarToolbarProps, ChatMessageList, type ChatMessageListProps, type ChatMessagePartViewModel, type ChatMessageRole, type ChatMessageTexts, type ChatMessageViewModel, type ChatSelectedItem, type ChatSkillPickerOption, type ChatSkillPickerProps, type ChatSlashItem, type ChatSlashMenuProps, type ChatTexts, type ChatToolActionViewModel, type ChatToolPartViewModel, type ChatToolbarAccessory, type ChatToolbarAccessoryIcon, type ChatToolbarIcon, type ChatToolbarSelect, type ChatToolbarSelectGroup, type ChatToolbarSelectOption, copyText, createChatComposerNodesFromText, createChatComposerTextNode, createChatComposerTokenNode, createEmptyChatComposerNodes, extractChatComposerTokenKeys, normalizeChatComposerNodes, removeChatComposerTokenNodes, replaceChatComposerRange, resolveChatComposerSlashTrigger, serializeChatComposerDocument, serializeChatComposerPlainText, useActiveItemScroll, useCopyFeedback, useElementWidth, useStickyBottomScroll };
|
|
343
|
+
//#endregion
|
|
344
|
+
export { type ChatComposerNode, type ChatComposerSelection, type ChatComposerTextNode, type ChatComposerTokenKind, type ChatComposerTokenNode, type ChatFileOperationBlockViewModel, type ChatFileOperationLineViewModel, type ChatInlineContentSegmentViewModel, type ChatInlineHint, type ChatInlineTokenViewModel, ChatInputBar, type ChatInputBarActionsProps, type ChatInputBarHandle, type ChatInputBarProps, type ChatInputBarToolbarProps, ChatMessageList, type ChatMessageListProps, type ChatMessagePartViewModel, type ChatMessageRole, type ChatMessageTexts, type ChatMessageViewModel, type ChatSelectedItem, type ChatSkillPickerOption, type ChatSkillPickerProps, type ChatSlashItem, type ChatSlashMenuProps, type ChatTexts, type ChatToolActionViewModel, type ChatToolPartViewModel, type ChatToolbarAccessory, type ChatToolbarAccessoryIcon, type ChatToolbarIcon, type ChatToolbarSelect, type ChatToolbarSelectGroup, type ChatToolbarSelectOption, copyText, createChatComposerNodesFromText, createChatComposerTextNode, createChatComposerTokenNode, createEmptyChatComposerNodes, extractChatComposerTokenKeys, normalizeChatComposerNodes, removeChatComposerTokenNodes, replaceChatComposerRange, resolveChatComposerSlashTrigger, serializeChatComposerDocument, serializeChatComposerPlainText, useActiveItemScroll, useCopyFeedback, useElementWidth, useStickyBottomScroll };
|