@copilotz/chat-ui 0.6.6 → 0.6.7
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.cjs +496 -373
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -24
- package/dist/index.d.ts +40 -24
- package/dist/index.js +408 -271
- package/dist/index.js.map +1 -1
- package/dist/styles.css +6 -0
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -2,20 +2,20 @@ import React, { ReactNode } from 'react';
|
|
|
2
2
|
import { Options, Components } from 'react-markdown';
|
|
3
3
|
|
|
4
4
|
type MediaAttachment = {
|
|
5
|
-
kind:
|
|
5
|
+
kind: "image";
|
|
6
6
|
dataUrl: string;
|
|
7
7
|
mimeType: string;
|
|
8
8
|
fileName?: string;
|
|
9
9
|
size?: number;
|
|
10
10
|
} | {
|
|
11
|
-
kind:
|
|
11
|
+
kind: "audio";
|
|
12
12
|
dataUrl: string;
|
|
13
13
|
mimeType: string;
|
|
14
14
|
durationMs?: number;
|
|
15
15
|
fileName?: string;
|
|
16
16
|
size?: number;
|
|
17
17
|
} | {
|
|
18
|
-
kind:
|
|
18
|
+
kind: "video";
|
|
19
19
|
dataUrl: string;
|
|
20
20
|
mimeType: string;
|
|
21
21
|
durationMs?: number;
|
|
@@ -24,11 +24,11 @@ type MediaAttachment = {
|
|
|
24
24
|
poster?: string;
|
|
25
25
|
};
|
|
26
26
|
type AudioAttachment = Extract<MediaAttachment, {
|
|
27
|
-
kind:
|
|
27
|
+
kind: "audio";
|
|
28
28
|
}>;
|
|
29
|
-
type VoiceComposerState =
|
|
30
|
-
type VoiceReviewMode =
|
|
31
|
-
type VoiceTranscriptMode =
|
|
29
|
+
type VoiceComposerState = "idle" | "preparing" | "waiting_for_speech" | "listening" | "finishing" | "review" | "sending" | "error";
|
|
30
|
+
type VoiceReviewMode = "manual" | "armed";
|
|
31
|
+
type VoiceTranscriptMode = "none" | "final-only" | "partial-and-final";
|
|
32
32
|
interface VoiceTranscript {
|
|
33
33
|
partial?: string;
|
|
34
34
|
final?: string;
|
|
@@ -61,12 +61,12 @@ interface ToolCall {
|
|
|
61
61
|
name: string;
|
|
62
62
|
arguments: Record<string, any>;
|
|
63
63
|
result?: any;
|
|
64
|
-
status:
|
|
64
|
+
status: "pending" | "running" | "completed" | "failed";
|
|
65
65
|
startTime?: number;
|
|
66
66
|
endTime?: number;
|
|
67
67
|
}
|
|
68
|
-
type ActivityDisplayMode =
|
|
69
|
-
type AssistantActivitySummaryKind =
|
|
68
|
+
type ActivityDisplayMode = "full" | "summary" | "hidden";
|
|
69
|
+
type AssistantActivitySummaryKind = "thinking" | "working" | "using_tools" | "preparing_answer";
|
|
70
70
|
interface AssistantActivitySummary {
|
|
71
71
|
kind: AssistantActivitySummaryKind;
|
|
72
72
|
toolName?: string;
|
|
@@ -81,7 +81,7 @@ interface AssistantActivityState {
|
|
|
81
81
|
}
|
|
82
82
|
interface ChatMessage {
|
|
83
83
|
id: string;
|
|
84
|
-
role:
|
|
84
|
+
role: "user" | "assistant" | "system";
|
|
85
85
|
content: string;
|
|
86
86
|
timestamp: number;
|
|
87
87
|
attachments?: MediaAttachment[];
|
|
@@ -108,8 +108,8 @@ interface ChatThread {
|
|
|
108
108
|
metadata?: Record<string, any>;
|
|
109
109
|
}
|
|
110
110
|
interface ChatMarkdownConfig {
|
|
111
|
-
remarkPlugins?: Options[
|
|
112
|
-
rehypePlugins?: Options[
|
|
111
|
+
remarkPlugins?: Options["remarkPlugins"];
|
|
112
|
+
rehypePlugins?: Options["rehypePlugins"];
|
|
113
113
|
components?: Components;
|
|
114
114
|
}
|
|
115
115
|
interface ChatConfig {
|
|
@@ -124,7 +124,7 @@ interface ChatConfig {
|
|
|
124
124
|
label?: string;
|
|
125
125
|
hideIfSingle?: boolean;
|
|
126
126
|
/** 'single' = classic single-agent dropdown (default). 'multi' = participants + target selectors. */
|
|
127
|
-
mode?:
|
|
127
|
+
mode?: "single" | "multi";
|
|
128
128
|
};
|
|
129
129
|
labels?: {
|
|
130
130
|
inputPlaceholder?: string;
|
|
@@ -217,7 +217,7 @@ interface ChatConfig {
|
|
|
217
217
|
maxFileSize?: number;
|
|
218
218
|
};
|
|
219
219
|
ui?: {
|
|
220
|
-
theme?:
|
|
220
|
+
theme?: "light" | "dark" | "auto";
|
|
221
221
|
showTimestamps?: boolean;
|
|
222
222
|
showAvatars?: boolean;
|
|
223
223
|
compactMode?: boolean;
|
|
@@ -230,7 +230,7 @@ interface ChatConfig {
|
|
|
230
230
|
};
|
|
231
231
|
markdown?: ChatMarkdownConfig;
|
|
232
232
|
voiceCompose?: {
|
|
233
|
-
defaultMode?:
|
|
233
|
+
defaultMode?: "text" | "voice";
|
|
234
234
|
reviewMode?: VoiceReviewMode;
|
|
235
235
|
autoSendDelayMs?: number;
|
|
236
236
|
persistComposer?: boolean;
|
|
@@ -253,6 +253,20 @@ interface ChatConfig {
|
|
|
253
253
|
/** Additional actions to render in the header */
|
|
254
254
|
headerActions?: ReactNode;
|
|
255
255
|
}
|
|
256
|
+
interface ChatUserMenuItem {
|
|
257
|
+
id: string;
|
|
258
|
+
label: string;
|
|
259
|
+
icon?: ReactNode;
|
|
260
|
+
onSelect?: () => void;
|
|
261
|
+
variant?: "default" | "destructive";
|
|
262
|
+
checked?: boolean;
|
|
263
|
+
disabled?: boolean;
|
|
264
|
+
}
|
|
265
|
+
interface ChatUserMenuSection {
|
|
266
|
+
id: string;
|
|
267
|
+
label?: string;
|
|
268
|
+
items: ChatUserMenuItem[];
|
|
269
|
+
}
|
|
256
270
|
interface StateCallback<T = unknown> {
|
|
257
271
|
setState: (state: T | ((prev: T) => T)) => void;
|
|
258
272
|
getState: () => T;
|
|
@@ -272,7 +286,7 @@ interface ChatCallbacks {
|
|
|
272
286
|
onAttachmentRemove?: (attachmentIndex: number, callback?: StateCallback<ChatState>) => void;
|
|
273
287
|
onViewProfile?: () => void;
|
|
274
288
|
onOpenSettings?: () => void;
|
|
275
|
-
onThemeChange?: (theme:
|
|
289
|
+
onThemeChange?: (theme: "light" | "dark" | "system") => void;
|
|
276
290
|
onLogout?: () => void;
|
|
277
291
|
}
|
|
278
292
|
interface ChatV2Props {
|
|
@@ -281,6 +295,8 @@ interface ChatV2Props {
|
|
|
281
295
|
currentThreadId?: string | null;
|
|
282
296
|
config?: ChatConfig;
|
|
283
297
|
sidebar?: ReactNode;
|
|
298
|
+
userMenuSections?: ChatUserMenuSection[];
|
|
299
|
+
/** @deprecated Prefer userMenuSections for native menu composition */
|
|
284
300
|
userMenuAdditionalItems?: ReactNode;
|
|
285
301
|
isGenerating?: boolean;
|
|
286
302
|
isMessagesLoading?: boolean;
|
|
@@ -312,7 +328,7 @@ interface ChatV2Props {
|
|
|
312
328
|
messageSuggestions?: Record<string, string[]>;
|
|
313
329
|
enabledFeatures?: string[];
|
|
314
330
|
className?: string;
|
|
315
|
-
onAddMemory?: (content: string, category?: MemoryItem[
|
|
331
|
+
onAddMemory?: (content: string, category?: MemoryItem["category"]) => void;
|
|
316
332
|
onUpdateMemory?: (memoryId: string, content: string) => void;
|
|
317
333
|
onDeleteMemory?: (memoryId: string) => void;
|
|
318
334
|
/**
|
|
@@ -346,7 +362,7 @@ interface AgentOption {
|
|
|
346
362
|
/** Custom color for multi-agent display. Auto-assigned if not provided. */
|
|
347
363
|
color?: string;
|
|
348
364
|
}
|
|
349
|
-
type MessageAction =
|
|
365
|
+
type MessageAction = "copy" | "edit" | "delete" | "regenerate" | "retry";
|
|
350
366
|
interface MessageActionEvent {
|
|
351
367
|
action: MessageAction;
|
|
352
368
|
messageId: string;
|
|
@@ -355,7 +371,7 @@ interface MessageActionEvent {
|
|
|
355
371
|
interface FileUploadProgress {
|
|
356
372
|
fileName: string;
|
|
357
373
|
progress: number;
|
|
358
|
-
status:
|
|
374
|
+
status: "uploading" | "completed" | "failed";
|
|
359
375
|
}
|
|
360
376
|
interface StreamingUpdate {
|
|
361
377
|
messageId: string;
|
|
@@ -366,14 +382,14 @@ interface UserCustomField {
|
|
|
366
382
|
key: string;
|
|
367
383
|
label: string;
|
|
368
384
|
value: string | number | boolean | null | undefined;
|
|
369
|
-
type?:
|
|
385
|
+
type?: "text" | "email" | "phone" | "url" | "date" | "number" | "boolean";
|
|
370
386
|
icon?: ReactNode;
|
|
371
387
|
}
|
|
372
388
|
interface MemoryItem {
|
|
373
389
|
id: string;
|
|
374
390
|
content: string;
|
|
375
|
-
category?:
|
|
376
|
-
source:
|
|
391
|
+
category?: "preference" | "fact" | "goal" | "context" | "other";
|
|
392
|
+
source: "agent" | "user";
|
|
377
393
|
createdAt: string;
|
|
378
394
|
updatedAt?: string;
|
|
379
395
|
}
|
|
@@ -411,4 +427,4 @@ declare function useChatUserContext(): ChatUserContextValue;
|
|
|
411
427
|
declare const defaultChatConfig: Required<ChatConfig>;
|
|
412
428
|
declare function mergeConfig(_baseConfig: ChatConfig, userConfig?: Partial<ChatConfig>): Required<ChatConfig>;
|
|
413
429
|
|
|
414
|
-
export { type ActivityDisplayMode, type AgentOption, AssistantActivity, type AssistantActivityState, type AssistantActivitySummary, type AssistantActivitySummaryKind, type AudioAttachment, type ChatCallbacks, type ChatConfig, type ChatMarkdownConfig, type ChatMessage, type ChatState, type ChatThread, ChatUI, type ChatUserContext, ChatUserContextProvider, type ChatV2Props, type CreateVoiceProvider, type FileUploadProgress, type MediaAttachment, type MemoryItem, type MessageAction, type MessageActionEvent, type StateCallback, type StreamingUpdate, type ToolCall, type UserCustomField, type VoiceComposerState, type VoiceProvider, type VoiceProviderHandlers, type VoiceProviderOptions, type VoiceReviewMode, type VoiceSegment, type VoiceTranscript, type VoiceTranscriptMode, defaultChatConfig, mergeConfig, useChatUserContext };
|
|
430
|
+
export { type ActivityDisplayMode, type AgentOption, AssistantActivity, type AssistantActivityState, type AssistantActivitySummary, type AssistantActivitySummaryKind, type AudioAttachment, type ChatCallbacks, type ChatConfig, type ChatMarkdownConfig, type ChatMessage, type ChatState, type ChatThread, ChatUI, type ChatUserContext, ChatUserContextProvider, type ChatUserMenuItem, type ChatUserMenuSection, type ChatV2Props, type CreateVoiceProvider, type FileUploadProgress, type MediaAttachment, type MemoryItem, type MessageAction, type MessageActionEvent, type StateCallback, type StreamingUpdate, type ToolCall, type UserCustomField, type VoiceComposerState, type VoiceProvider, type VoiceProviderHandlers, type VoiceProviderOptions, type VoiceReviewMode, type VoiceSegment, type VoiceTranscript, type VoiceTranscriptMode, defaultChatConfig, mergeConfig, useChatUserContext };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,20 +2,20 @@ import React, { ReactNode } from 'react';
|
|
|
2
2
|
import { Options, Components } from 'react-markdown';
|
|
3
3
|
|
|
4
4
|
type MediaAttachment = {
|
|
5
|
-
kind:
|
|
5
|
+
kind: "image";
|
|
6
6
|
dataUrl: string;
|
|
7
7
|
mimeType: string;
|
|
8
8
|
fileName?: string;
|
|
9
9
|
size?: number;
|
|
10
10
|
} | {
|
|
11
|
-
kind:
|
|
11
|
+
kind: "audio";
|
|
12
12
|
dataUrl: string;
|
|
13
13
|
mimeType: string;
|
|
14
14
|
durationMs?: number;
|
|
15
15
|
fileName?: string;
|
|
16
16
|
size?: number;
|
|
17
17
|
} | {
|
|
18
|
-
kind:
|
|
18
|
+
kind: "video";
|
|
19
19
|
dataUrl: string;
|
|
20
20
|
mimeType: string;
|
|
21
21
|
durationMs?: number;
|
|
@@ -24,11 +24,11 @@ type MediaAttachment = {
|
|
|
24
24
|
poster?: string;
|
|
25
25
|
};
|
|
26
26
|
type AudioAttachment = Extract<MediaAttachment, {
|
|
27
|
-
kind:
|
|
27
|
+
kind: "audio";
|
|
28
28
|
}>;
|
|
29
|
-
type VoiceComposerState =
|
|
30
|
-
type VoiceReviewMode =
|
|
31
|
-
type VoiceTranscriptMode =
|
|
29
|
+
type VoiceComposerState = "idle" | "preparing" | "waiting_for_speech" | "listening" | "finishing" | "review" | "sending" | "error";
|
|
30
|
+
type VoiceReviewMode = "manual" | "armed";
|
|
31
|
+
type VoiceTranscriptMode = "none" | "final-only" | "partial-and-final";
|
|
32
32
|
interface VoiceTranscript {
|
|
33
33
|
partial?: string;
|
|
34
34
|
final?: string;
|
|
@@ -61,12 +61,12 @@ interface ToolCall {
|
|
|
61
61
|
name: string;
|
|
62
62
|
arguments: Record<string, any>;
|
|
63
63
|
result?: any;
|
|
64
|
-
status:
|
|
64
|
+
status: "pending" | "running" | "completed" | "failed";
|
|
65
65
|
startTime?: number;
|
|
66
66
|
endTime?: number;
|
|
67
67
|
}
|
|
68
|
-
type ActivityDisplayMode =
|
|
69
|
-
type AssistantActivitySummaryKind =
|
|
68
|
+
type ActivityDisplayMode = "full" | "summary" | "hidden";
|
|
69
|
+
type AssistantActivitySummaryKind = "thinking" | "working" | "using_tools" | "preparing_answer";
|
|
70
70
|
interface AssistantActivitySummary {
|
|
71
71
|
kind: AssistantActivitySummaryKind;
|
|
72
72
|
toolName?: string;
|
|
@@ -81,7 +81,7 @@ interface AssistantActivityState {
|
|
|
81
81
|
}
|
|
82
82
|
interface ChatMessage {
|
|
83
83
|
id: string;
|
|
84
|
-
role:
|
|
84
|
+
role: "user" | "assistant" | "system";
|
|
85
85
|
content: string;
|
|
86
86
|
timestamp: number;
|
|
87
87
|
attachments?: MediaAttachment[];
|
|
@@ -108,8 +108,8 @@ interface ChatThread {
|
|
|
108
108
|
metadata?: Record<string, any>;
|
|
109
109
|
}
|
|
110
110
|
interface ChatMarkdownConfig {
|
|
111
|
-
remarkPlugins?: Options[
|
|
112
|
-
rehypePlugins?: Options[
|
|
111
|
+
remarkPlugins?: Options["remarkPlugins"];
|
|
112
|
+
rehypePlugins?: Options["rehypePlugins"];
|
|
113
113
|
components?: Components;
|
|
114
114
|
}
|
|
115
115
|
interface ChatConfig {
|
|
@@ -124,7 +124,7 @@ interface ChatConfig {
|
|
|
124
124
|
label?: string;
|
|
125
125
|
hideIfSingle?: boolean;
|
|
126
126
|
/** 'single' = classic single-agent dropdown (default). 'multi' = participants + target selectors. */
|
|
127
|
-
mode?:
|
|
127
|
+
mode?: "single" | "multi";
|
|
128
128
|
};
|
|
129
129
|
labels?: {
|
|
130
130
|
inputPlaceholder?: string;
|
|
@@ -217,7 +217,7 @@ interface ChatConfig {
|
|
|
217
217
|
maxFileSize?: number;
|
|
218
218
|
};
|
|
219
219
|
ui?: {
|
|
220
|
-
theme?:
|
|
220
|
+
theme?: "light" | "dark" | "auto";
|
|
221
221
|
showTimestamps?: boolean;
|
|
222
222
|
showAvatars?: boolean;
|
|
223
223
|
compactMode?: boolean;
|
|
@@ -230,7 +230,7 @@ interface ChatConfig {
|
|
|
230
230
|
};
|
|
231
231
|
markdown?: ChatMarkdownConfig;
|
|
232
232
|
voiceCompose?: {
|
|
233
|
-
defaultMode?:
|
|
233
|
+
defaultMode?: "text" | "voice";
|
|
234
234
|
reviewMode?: VoiceReviewMode;
|
|
235
235
|
autoSendDelayMs?: number;
|
|
236
236
|
persistComposer?: boolean;
|
|
@@ -253,6 +253,20 @@ interface ChatConfig {
|
|
|
253
253
|
/** Additional actions to render in the header */
|
|
254
254
|
headerActions?: ReactNode;
|
|
255
255
|
}
|
|
256
|
+
interface ChatUserMenuItem {
|
|
257
|
+
id: string;
|
|
258
|
+
label: string;
|
|
259
|
+
icon?: ReactNode;
|
|
260
|
+
onSelect?: () => void;
|
|
261
|
+
variant?: "default" | "destructive";
|
|
262
|
+
checked?: boolean;
|
|
263
|
+
disabled?: boolean;
|
|
264
|
+
}
|
|
265
|
+
interface ChatUserMenuSection {
|
|
266
|
+
id: string;
|
|
267
|
+
label?: string;
|
|
268
|
+
items: ChatUserMenuItem[];
|
|
269
|
+
}
|
|
256
270
|
interface StateCallback<T = unknown> {
|
|
257
271
|
setState: (state: T | ((prev: T) => T)) => void;
|
|
258
272
|
getState: () => T;
|
|
@@ -272,7 +286,7 @@ interface ChatCallbacks {
|
|
|
272
286
|
onAttachmentRemove?: (attachmentIndex: number, callback?: StateCallback<ChatState>) => void;
|
|
273
287
|
onViewProfile?: () => void;
|
|
274
288
|
onOpenSettings?: () => void;
|
|
275
|
-
onThemeChange?: (theme:
|
|
289
|
+
onThemeChange?: (theme: "light" | "dark" | "system") => void;
|
|
276
290
|
onLogout?: () => void;
|
|
277
291
|
}
|
|
278
292
|
interface ChatV2Props {
|
|
@@ -281,6 +295,8 @@ interface ChatV2Props {
|
|
|
281
295
|
currentThreadId?: string | null;
|
|
282
296
|
config?: ChatConfig;
|
|
283
297
|
sidebar?: ReactNode;
|
|
298
|
+
userMenuSections?: ChatUserMenuSection[];
|
|
299
|
+
/** @deprecated Prefer userMenuSections for native menu composition */
|
|
284
300
|
userMenuAdditionalItems?: ReactNode;
|
|
285
301
|
isGenerating?: boolean;
|
|
286
302
|
isMessagesLoading?: boolean;
|
|
@@ -312,7 +328,7 @@ interface ChatV2Props {
|
|
|
312
328
|
messageSuggestions?: Record<string, string[]>;
|
|
313
329
|
enabledFeatures?: string[];
|
|
314
330
|
className?: string;
|
|
315
|
-
onAddMemory?: (content: string, category?: MemoryItem[
|
|
331
|
+
onAddMemory?: (content: string, category?: MemoryItem["category"]) => void;
|
|
316
332
|
onUpdateMemory?: (memoryId: string, content: string) => void;
|
|
317
333
|
onDeleteMemory?: (memoryId: string) => void;
|
|
318
334
|
/**
|
|
@@ -346,7 +362,7 @@ interface AgentOption {
|
|
|
346
362
|
/** Custom color for multi-agent display. Auto-assigned if not provided. */
|
|
347
363
|
color?: string;
|
|
348
364
|
}
|
|
349
|
-
type MessageAction =
|
|
365
|
+
type MessageAction = "copy" | "edit" | "delete" | "regenerate" | "retry";
|
|
350
366
|
interface MessageActionEvent {
|
|
351
367
|
action: MessageAction;
|
|
352
368
|
messageId: string;
|
|
@@ -355,7 +371,7 @@ interface MessageActionEvent {
|
|
|
355
371
|
interface FileUploadProgress {
|
|
356
372
|
fileName: string;
|
|
357
373
|
progress: number;
|
|
358
|
-
status:
|
|
374
|
+
status: "uploading" | "completed" | "failed";
|
|
359
375
|
}
|
|
360
376
|
interface StreamingUpdate {
|
|
361
377
|
messageId: string;
|
|
@@ -366,14 +382,14 @@ interface UserCustomField {
|
|
|
366
382
|
key: string;
|
|
367
383
|
label: string;
|
|
368
384
|
value: string | number | boolean | null | undefined;
|
|
369
|
-
type?:
|
|
385
|
+
type?: "text" | "email" | "phone" | "url" | "date" | "number" | "boolean";
|
|
370
386
|
icon?: ReactNode;
|
|
371
387
|
}
|
|
372
388
|
interface MemoryItem {
|
|
373
389
|
id: string;
|
|
374
390
|
content: string;
|
|
375
|
-
category?:
|
|
376
|
-
source:
|
|
391
|
+
category?: "preference" | "fact" | "goal" | "context" | "other";
|
|
392
|
+
source: "agent" | "user";
|
|
377
393
|
createdAt: string;
|
|
378
394
|
updatedAt?: string;
|
|
379
395
|
}
|
|
@@ -411,4 +427,4 @@ declare function useChatUserContext(): ChatUserContextValue;
|
|
|
411
427
|
declare const defaultChatConfig: Required<ChatConfig>;
|
|
412
428
|
declare function mergeConfig(_baseConfig: ChatConfig, userConfig?: Partial<ChatConfig>): Required<ChatConfig>;
|
|
413
429
|
|
|
414
|
-
export { type ActivityDisplayMode, type AgentOption, AssistantActivity, type AssistantActivityState, type AssistantActivitySummary, type AssistantActivitySummaryKind, type AudioAttachment, type ChatCallbacks, type ChatConfig, type ChatMarkdownConfig, type ChatMessage, type ChatState, type ChatThread, ChatUI, type ChatUserContext, ChatUserContextProvider, type ChatV2Props, type CreateVoiceProvider, type FileUploadProgress, type MediaAttachment, type MemoryItem, type MessageAction, type MessageActionEvent, type StateCallback, type StreamingUpdate, type ToolCall, type UserCustomField, type VoiceComposerState, type VoiceProvider, type VoiceProviderHandlers, type VoiceProviderOptions, type VoiceReviewMode, type VoiceSegment, type VoiceTranscript, type VoiceTranscriptMode, defaultChatConfig, mergeConfig, useChatUserContext };
|
|
430
|
+
export { type ActivityDisplayMode, type AgentOption, AssistantActivity, type AssistantActivityState, type AssistantActivitySummary, type AssistantActivitySummaryKind, type AudioAttachment, type ChatCallbacks, type ChatConfig, type ChatMarkdownConfig, type ChatMessage, type ChatState, type ChatThread, ChatUI, type ChatUserContext, ChatUserContextProvider, type ChatUserMenuItem, type ChatUserMenuSection, type ChatV2Props, type CreateVoiceProvider, type FileUploadProgress, type MediaAttachment, type MemoryItem, type MessageAction, type MessageActionEvent, type StateCallback, type StreamingUpdate, type ToolCall, type UserCustomField, type VoiceComposerState, type VoiceProvider, type VoiceProviderHandlers, type VoiceProviderOptions, type VoiceReviewMode, type VoiceSegment, type VoiceTranscript, type VoiceTranscriptMode, defaultChatConfig, mergeConfig, useChatUserContext };
|