@nextclaw/agent-chat-ui 0.3.0 → 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 -237
- package/dist/index.js +3037 -3643
- package/package.json +2 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,322 +1,331 @@
|
|
|
1
|
-
import * as react from
|
|
2
|
-
import { ReactNode, 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
|
-
|
|
175
|
-
|
|
171
|
+
kind: "open-session";
|
|
172
|
+
sessionId: string;
|
|
173
|
+
sessionKind: "child" | "session";
|
|
174
|
+
agentId?: string;
|
|
175
|
+
label?: string;
|
|
176
|
+
parentSessionId?: string;
|
|
176
177
|
};
|
|
177
178
|
type ChatToolPartViewModel = {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
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
|
+
};
|
|
196
197
|
};
|
|
197
198
|
type ChatInlineTokenViewModel = {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
199
|
+
kind: string;
|
|
200
|
+
key: string;
|
|
201
|
+
label: string;
|
|
202
|
+
rawText: string;
|
|
202
203
|
};
|
|
203
204
|
type ChatInlineContentSegmentViewModel = {
|
|
204
|
-
|
|
205
|
-
|
|
205
|
+
type: "markdown";
|
|
206
|
+
text: string;
|
|
206
207
|
} | {
|
|
207
|
-
|
|
208
|
-
|
|
208
|
+
type: "token";
|
|
209
|
+
token: ChatInlineTokenViewModel;
|
|
209
210
|
};
|
|
210
211
|
type ChatMessagePartViewModel = {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
} | {
|
|
214
|
-
type: "inline-content";
|
|
215
|
-
segments: ChatInlineContentSegmentViewModel[];
|
|
212
|
+
type: "markdown";
|
|
213
|
+
text: string;
|
|
216
214
|
} | {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
label: string;
|
|
215
|
+
type: "inline-content";
|
|
216
|
+
segments: ChatInlineContentSegmentViewModel[];
|
|
220
217
|
} | {
|
|
221
|
-
|
|
222
|
-
|
|
218
|
+
type: "reasoning";
|
|
219
|
+
text: string;
|
|
220
|
+
label: string;
|
|
223
221
|
} | {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
label: string;
|
|
227
|
-
mimeType: string;
|
|
228
|
-
dataUrl?: string;
|
|
229
|
-
sizeBytes?: number;
|
|
230
|
-
isImage: boolean;
|
|
231
|
-
};
|
|
222
|
+
type: "tool-card";
|
|
223
|
+
card: ChatToolPartViewModel;
|
|
232
224
|
} | {
|
|
233
|
-
|
|
225
|
+
type: "file";
|
|
226
|
+
file: {
|
|
234
227
|
label: string;
|
|
235
|
-
|
|
236
|
-
|
|
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;
|
|
237
238
|
};
|
|
238
239
|
type ChatMessageViewModel = {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
240
|
+
id: string;
|
|
241
|
+
role: ChatMessageRole;
|
|
242
|
+
roleLabel: string;
|
|
243
|
+
timestampLabel: string;
|
|
244
|
+
parts: ChatMessagePartViewModel[];
|
|
245
|
+
status?: string;
|
|
245
246
|
};
|
|
246
247
|
type ChatMessageTexts = {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
248
|
+
copyCodeLabel: string;
|
|
249
|
+
copiedCodeLabel: string;
|
|
250
|
+
copyMessageLabel: string;
|
|
251
|
+
copiedMessageLabel: string;
|
|
252
|
+
typingLabel: string;
|
|
252
253
|
};
|
|
253
254
|
type ChatMessageListProps = {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
};
|
|
262
|
-
|
|
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
|
|
263
265
|
type ChatInputBarHandle = {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
};
|
|
271
|
-
declare const ChatInputBar: react.ForwardRefExoticComponent<ChatInputBarProps & react.RefAttributes<ChatInputBarHandle>>;
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
|
275
279
|
type UseActiveItemScrollParams = {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
280
|
+
containerRef: RefObject<HTMLElement>;
|
|
281
|
+
activeIndex: number;
|
|
282
|
+
itemCount: number;
|
|
283
|
+
isEnabled: boolean;
|
|
284
|
+
getItemSelector?: (index: number) => string;
|
|
281
285
|
};
|
|
282
286
|
declare function useActiveItemScroll(params: UseActiveItemScrollParams): void;
|
|
283
|
-
|
|
287
|
+
//#endregion
|
|
288
|
+
//#region src/components/chat/hooks/use-copy-feedback.d.ts
|
|
284
289
|
type UseCopyFeedbackParams = {
|
|
285
|
-
|
|
286
|
-
|
|
290
|
+
text: string;
|
|
291
|
+
resetDelayMs?: number;
|
|
287
292
|
};
|
|
288
293
|
type UseCopyFeedbackResult = {
|
|
289
|
-
|
|
290
|
-
|
|
294
|
+
copied: boolean;
|
|
295
|
+
copy: () => Promise<void>;
|
|
291
296
|
};
|
|
292
297
|
declare function useCopyFeedback(params: UseCopyFeedbackParams): UseCopyFeedbackResult;
|
|
293
|
-
|
|
298
|
+
//#endregion
|
|
299
|
+
//#region src/components/chat/hooks/use-element-width.d.ts
|
|
294
300
|
type UseElementWidthResult<T extends HTMLElement> = {
|
|
295
|
-
|
|
296
|
-
|
|
301
|
+
elementRef: RefObject<T>;
|
|
302
|
+
width: number | null;
|
|
297
303
|
};
|
|
298
304
|
declare function useElementWidth<T extends HTMLElement>(): UseElementWidthResult<T>;
|
|
299
|
-
|
|
305
|
+
//#endregion
|
|
306
|
+
//#region src/components/chat/hooks/use-sticky-bottom-scroll.d.ts
|
|
300
307
|
type UseStickyBottomScrollParams = {
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
308
|
+
scrollRef: RefObject<HTMLElement>;
|
|
309
|
+
resetKey: string | null;
|
|
310
|
+
isLoading: boolean;
|
|
311
|
+
hasContent: boolean;
|
|
312
|
+
contentVersion: unknown;
|
|
313
|
+
stickyThresholdPx?: number;
|
|
307
314
|
};
|
|
308
315
|
type UseStickyBottomScrollResult = {
|
|
309
|
-
|
|
316
|
+
onScroll: () => void;
|
|
310
317
|
};
|
|
311
318
|
declare function useStickyBottomScroll(params: UseStickyBottomScrollParams): UseStickyBottomScrollResult;
|
|
312
|
-
|
|
319
|
+
//#endregion
|
|
320
|
+
//#region src/components/chat/utils/copy-text.d.ts
|
|
313
321
|
declare function copyText(text: string): Promise<boolean>;
|
|
314
|
-
|
|
322
|
+
//#endregion
|
|
323
|
+
//#region src/components/chat/ui/chat-input-bar/chat-composer.utils.d.ts
|
|
315
324
|
declare function createChatComposerTextNode(text?: string): ChatComposerTextNode;
|
|
316
325
|
declare function createChatComposerTokenNode(params: {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
326
|
+
tokenKind: ChatComposerTokenKind;
|
|
327
|
+
tokenKey: string;
|
|
328
|
+
label: string;
|
|
320
329
|
}): ChatComposerTokenNode;
|
|
321
330
|
declare function createEmptyChatComposerNodes(): ChatComposerNode[];
|
|
322
331
|
declare function createChatComposerNodesFromText(text: string): ChatComposerNode[];
|
|
@@ -327,9 +336,9 @@ declare function extractChatComposerTokenKeys(nodes: ChatComposerNode[], tokenKi
|
|
|
327
336
|
declare function replaceChatComposerRange(nodes: ChatComposerNode[], start: number, end: number, replacement: ChatComposerNode[]): ChatComposerNode[];
|
|
328
337
|
declare function removeChatComposerTokenNodes(nodes: ChatComposerNode[], predicate: (node: ChatComposerTokenNode) => boolean): ChatComposerNode[];
|
|
329
338
|
declare function resolveChatComposerSlashTrigger(nodes: ChatComposerNode[], selection: ChatComposerSelection | null): {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
339
|
+
query: string;
|
|
340
|
+
start: number;
|
|
341
|
+
end: number;
|
|
333
342
|
} | null;
|
|
334
|
-
|
|
335
|
-
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 };
|