@assistant-ui/react 0.1.12 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.d.mts CHANGED
@@ -1,11 +1,308 @@
1
1
  import * as react from 'react';
2
- import { FC, PropsWithChildren, ComponentPropsWithoutRef, ComponentType, ReactNode } from 'react';
2
+ import { ReactNode, ComponentType, PropsWithChildren, ComponentPropsWithoutRef, FC } from 'react';
3
+ import { z } from 'zod';
4
+ import { UseBoundStore, StoreApi } from 'zustand';
5
+ import { Primitive } from '@radix-ui/react-primitive';
3
6
  import * as PopoverPrimitive from '@radix-ui/react-popover';
4
7
  import { TextareaAutosizeProps } from 'react-textarea-autosize';
5
- import { Primitive } from '@radix-ui/react-primitive';
6
- import { T as TextContentPartComponent, I as ImageContentPartComponent, U as UIContentPartComponent, a as ToolCallContentPartComponent, b as ToolCallContentPartProps, c as ThreadState, d as ThreadActionsState, e as Unsubscribe, M as ModelConfigProvider, f as ThreadMessage, g as ModelConfig, A as AssistantContentPart, h as AppendMessage } from './ThreadActions-BLcKtagX.mjs';
7
- export { l as AppendContentPart, i as AssistantMessage, m as TextContentPart, k as UserContentPart, j as UserMessage } from './ThreadActions-BLcKtagX.mjs';
8
- import 'zod';
8
+
9
+ type ToolExecuteFunction<TArgs, TResult> = (args: TArgs) => TResult | Promise<TResult>;
10
+ type Tool<TArgs = unknown, TResult = unknown> = {
11
+ description?: string;
12
+ parameters: z.ZodSchema<TArgs>;
13
+ execute: ToolExecuteFunction<TArgs, TResult>;
14
+ };
15
+ type ModelConfig = {
16
+ priority?: number;
17
+ system?: string;
18
+ tools?: Record<string, Tool<any, any>>;
19
+ };
20
+ type ModelConfigProvider = () => ModelConfig;
21
+
22
+ type Unsubscribe = () => void;
23
+
24
+ type TextContentPart = {
25
+ type: "text";
26
+ text: string;
27
+ };
28
+ type ImageContentPart = {
29
+ type: "image";
30
+ image: string;
31
+ };
32
+ type UIContentPart = {
33
+ type: "ui";
34
+ display: ReactNode;
35
+ };
36
+ type ToolCallContentPart<TArgs = unknown, TResult = unknown> = {
37
+ type: "tool-call";
38
+ toolCallId: string;
39
+ toolName: string;
40
+ args: TArgs;
41
+ result?: TResult;
42
+ };
43
+ type UserContentPart = TextContentPart | ImageContentPart | UIContentPart;
44
+ type AssistantContentPart = TextContentPart | ToolCallContentPart | UIContentPart;
45
+ type AppendContentPart = TextContentPart | ImageContentPart;
46
+ type BaseMessage = {
47
+ id: string;
48
+ createdAt: Date;
49
+ };
50
+ type UserMessage = BaseMessage & {
51
+ role: "user";
52
+ content: UserContentPart[];
53
+ };
54
+ type AssistantMessage = BaseMessage & {
55
+ role: "assistant";
56
+ content: AssistantContentPart[];
57
+ status: "in_progress" | "done" | "error";
58
+ };
59
+ type AppendMessage = {
60
+ parentId: string | null;
61
+ role: "user";
62
+ content: AppendContentPart[];
63
+ };
64
+ type ThreadMessage = UserMessage | AssistantMessage;
65
+
66
+ type ReactThreadRuntime = ThreadRuntime & {
67
+ unstable_synchronizer?: ComponentType;
68
+ };
69
+
70
+ type ChatModelRunResult = {
71
+ content: AssistantContentPart[];
72
+ };
73
+ type ChatModelRunOptions = {
74
+ messages: ThreadMessage[];
75
+ abortSignal: AbortSignal;
76
+ config: ModelConfig;
77
+ onUpdate: (result: ChatModelRunResult) => void;
78
+ };
79
+ type ChatModelAdapter = {
80
+ run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult>;
81
+ };
82
+
83
+ declare abstract class BaseAssistantRuntime<TThreadRuntime extends ReactThreadRuntime> implements AssistantRuntime {
84
+ private _thread;
85
+ constructor(_thread: TThreadRuntime);
86
+ private _unsubscribe;
87
+ get thread(): TThreadRuntime;
88
+ set thread(thread: TThreadRuntime);
89
+ abstract registerModelConfigProvider(provider: ModelConfigProvider): Unsubscribe;
90
+ abstract switchToThread(threadId: string | null): void;
91
+ get messages(): readonly ThreadMessage[];
92
+ get isRunning(): boolean;
93
+ getBranches(messageId: string): readonly string[];
94
+ switchToBranch(branchId: string): void;
95
+ append(message: AppendMessage): void;
96
+ startRun(parentId: string | null): void;
97
+ cancelRun(): void;
98
+ addToolResult(toolCallId: string, result: any): void;
99
+ private _subscriptions;
100
+ subscribe(callback: () => void): Unsubscribe;
101
+ private subscriptionHandler;
102
+ get unstable_synchronizer(): react.ComponentType | undefined;
103
+ }
104
+
105
+ declare class LocalRuntime extends BaseAssistantRuntime<LocalThreadRuntime> {
106
+ private readonly _configProviders;
107
+ constructor(adapter: ChatModelAdapter);
108
+ set adapter(adapter: ChatModelAdapter);
109
+ registerModelConfigProvider(provider: ModelConfigProvider): () => boolean;
110
+ switchToThread(threadId: string | null): LocalThreadRuntime;
111
+ }
112
+ declare class LocalThreadRuntime implements ThreadRuntime {
113
+ private _configProviders;
114
+ adapter: ChatModelAdapter;
115
+ private _subscriptions;
116
+ private abortController;
117
+ private repository;
118
+ get messages(): ThreadMessage[];
119
+ get isRunning(): boolean;
120
+ constructor(_configProviders: Set<ModelConfigProvider>, adapter: ChatModelAdapter);
121
+ getBranches(messageId: string): string[];
122
+ switchToBranch(branchId: string): void;
123
+ append(message: AppendMessage): Promise<void>;
124
+ startRun(parentId: string | null): Promise<void>;
125
+ cancelRun(): void;
126
+ private notifySubscribers;
127
+ subscribe(callback: () => void): Unsubscribe;
128
+ addToolResult(): void;
129
+ }
130
+
131
+ declare const useLocalRuntime: (adapter: ChatModelAdapter) => LocalRuntime;
132
+
133
+ type ThreadActionsState = Readonly<{
134
+ getBranches: (messageId: string) => readonly string[];
135
+ switchToBranch: (branchId: string) => void;
136
+ append: (message: AppendMessage) => void;
137
+ startRun: (parentId: string | null) => void;
138
+ cancelRun: () => void;
139
+ addToolResult: (toolCallId: string, result: any) => void;
140
+ }>;
141
+
142
+ type ThreadRuntime = Readonly<ThreadState & ThreadActionsState & {
143
+ subscribe: (callback: () => void) => Unsubscribe;
144
+ }>;
145
+
146
+ type AssistantRuntime = ThreadRuntime & {
147
+ switchToThread: (threadId: string | null) => void;
148
+ registerModelConfigProvider: (provider: ModelConfigProvider) => Unsubscribe;
149
+ };
150
+
151
+ type AssistantRuntimeProviderProps = {
152
+ runtime: AssistantRuntime;
153
+ };
154
+ declare const AssistantRuntimeProvider: react.NamedExoticComponent<PropsWithChildren<AssistantRuntimeProviderProps>>;
155
+
156
+ type AssistantModelConfigState = Readonly<{
157
+ getModelConfig: ModelConfigProvider;
158
+ registerModelConfigProvider: (provider: ModelConfigProvider) => () => void;
159
+ }>;
160
+
161
+ type ContentPartState = Readonly<{
162
+ status: "in_progress" | "done" | "error";
163
+ part: ThreadMessage["content"][number];
164
+ }>;
165
+
166
+ type MessageState = Readonly<{
167
+ message: Readonly<ThreadMessage>;
168
+ parentId: string | null;
169
+ branches: readonly string[];
170
+ isLast: boolean;
171
+ }>;
172
+
173
+ type BaseComposerState = Readonly<{
174
+ value: string;
175
+ setValue: (value: string) => void;
176
+ }>;
177
+
178
+ type ReadonlyStore<T> = UseBoundStore<Omit<StoreApi<T>, "setState" | "destroy">>;
179
+
180
+ type EditComposerState = BaseComposerState & Readonly<{
181
+ isEditing: boolean;
182
+ edit: () => void;
183
+ send: () => void;
184
+ cancel: () => boolean;
185
+ }>;
186
+
187
+ type ThreadState = Readonly<{
188
+ messages: readonly ThreadMessage[];
189
+ isRunning: boolean;
190
+ }>;
191
+
192
+ type ComposerState = BaseComposerState & Readonly<{
193
+ isEditing: true;
194
+ send: () => void;
195
+ cancel: () => boolean;
196
+ focus: () => void;
197
+ onFocus: (listener: () => void) => Unsubscribe;
198
+ }>;
199
+
200
+ type ThreadViewportState = Readonly<{
201
+ isAtBottom: boolean;
202
+ scrollToBottom: () => void;
203
+ onScrollToBottom: (callback: () => void) => Unsubscribe;
204
+ }>;
205
+
206
+ type ContentPartStatus = "done" | "in_progress" | "error";
207
+ type TextContentPartProps = {
208
+ part: TextContentPart;
209
+ status: ContentPartStatus;
210
+ };
211
+ type TextContentPartComponent = ComponentType<TextContentPartProps>;
212
+ type ImageContentPartProps = {
213
+ part: ImageContentPart;
214
+ status: ContentPartStatus;
215
+ };
216
+ type ImageContentPartComponent = ComponentType<ImageContentPartProps>;
217
+ type UIContentPartProps = {
218
+ part: UIContentPart;
219
+ status: ContentPartStatus;
220
+ };
221
+ type UIContentPartComponent = ComponentType<UIContentPartProps>;
222
+ type ToolCallContentPartProps<TArgs = any, TResult = any> = {
223
+ part: ToolCallContentPart<TArgs, TResult>;
224
+ status: ContentPartStatus;
225
+ addResult: (result: any) => void;
226
+ };
227
+ type ToolCallContentPartComponent<TArgs = any, TResult = any> = ComponentType<ToolCallContentPartProps<TArgs, TResult>>;
228
+
229
+ type AssistantToolUIsState = Readonly<{
230
+ getToolUI: (toolName: string) => ToolCallContentPartComponent | null;
231
+ setToolUI: (toolName: string, render: ToolCallContentPartComponent) => () => void;
232
+ }>;
233
+
234
+ type AssistantActionsState = Readonly<{
235
+ switchToThread: (threadId: string | null) => void;
236
+ }>;
237
+
238
+ type AssistantContextValue = {
239
+ useModelConfig: ReadonlyStore<AssistantModelConfigState>;
240
+ useToolUIs: ReadonlyStore<AssistantToolUIsState>;
241
+ useAssistantActions: ReadonlyStore<AssistantActionsState>;
242
+ };
243
+ declare const useAssistantContext: () => AssistantContextValue;
244
+
245
+ type ThreadContextValue = {
246
+ useThread: ReadonlyStore<ThreadState>;
247
+ useThreadActions: ReadonlyStore<ThreadActionsState>;
248
+ useComposer: ReadonlyStore<ComposerState>;
249
+ useViewport: ReadonlyStore<ThreadViewportState>;
250
+ };
251
+ declare const useThreadContext: () => ThreadContextValue;
252
+
253
+ type ComposerContextValue = {
254
+ useComposer: ReadonlyStore<EditComposerState | ComposerState>;
255
+ type: "edit" | "new";
256
+ };
257
+ declare const useComposerContext: () => ComposerContextValue;
258
+
259
+ type MessageUtilsState = Readonly<{
260
+ inProgressIndicator: ReactNode | null;
261
+ setInProgressIndicator: (value: ReactNode | null) => void;
262
+ isCopied: boolean;
263
+ setIsCopied: (value: boolean) => void;
264
+ isHovering: boolean;
265
+ setIsHovering: (value: boolean) => void;
266
+ }>;
267
+
268
+ type MessageContextValue = {
269
+ useMessage: ReadonlyStore<MessageState>;
270
+ useMessageUtils: ReadonlyStore<MessageUtilsState>;
271
+ useEditComposer: ReadonlyStore<EditComposerState>;
272
+ };
273
+ declare const useMessageContext: () => MessageContextValue;
274
+
275
+ type ContentPartContextValue = {
276
+ useContentPart: ReadonlyStore<ContentPartState>;
277
+ };
278
+ declare const useContentPartContext: () => ContentPartContextValue;
279
+
280
+ type CreateAppendMessage = string | {
281
+ parentId?: string | null | undefined;
282
+ role?: AppendMessage["role"];
283
+ content: AppendMessage["content"];
284
+ };
285
+ declare const useAppendMessage: () => (message: CreateAppendMessage) => void;
286
+
287
+ declare const useSwitchToNewThread: () => () => void;
288
+
289
+ type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {
290
+ toolName: string;
291
+ render?: ToolCallContentPartComponent<TArgs, TResult>;
292
+ };
293
+ declare const useAssistantTool: <TArgs, TResult>(tool: AssistantToolProps<TArgs, TResult>) => void;
294
+
295
+ declare const makeAssistantTool: <TArgs, TResult>(tool: AssistantToolProps<TArgs, TResult>) => () => null;
296
+
297
+ type AssistantToolUIProps<TArgs, TResult> = {
298
+ toolName: string;
299
+ render: ToolCallContentPartComponent<TArgs, TResult>;
300
+ };
301
+ declare const useAssistantToolUI: (tool: AssistantToolUIProps<any, any> | null) => void;
302
+
303
+ declare const makeAssistantToolUI: <TArgs, TResult>(tool: AssistantToolUIProps<TArgs, TResult>) => () => null;
304
+
305
+ declare const useAssistantInstructions: (instruction: string) => void;
9
306
 
10
307
  type UseActionBarCopyProps = {
11
308
  copiedDuration?: number;
@@ -79,13 +376,20 @@ type UseActionBarFloatStatusProps = {
79
376
  autohide?: "always" | "not-last" | "never" | undefined;
80
377
  autohideFloat?: "always" | "single-branch" | "never" | undefined;
81
378
  };
82
- declare const ActionBarRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
379
+
380
+ type PrimitiveDivProps$4 = ComponentPropsWithoutRef<typeof Primitive.div>;
381
+ type ActionBarPrimitiveRootProps = PrimitiveDivProps$4 & UseActionBarFloatStatusProps;
382
+ declare const ActionBarPrimitiveRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
83
383
  ref?: ((instance: HTMLDivElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLDivElement> | null | undefined;
84
384
  } & {
85
385
  asChild?: boolean;
86
386
  }, "ref"> & UseActionBarFloatStatusProps & react.RefAttributes<HTMLDivElement>>;
87
387
 
88
- declare const ActionBarCopy: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
388
+ type PrimitiveButtonProps$1 = ComponentPropsWithoutRef<typeof Primitive.button>;
389
+ type ActionButtonProps<THook> = PrimitiveButtonProps$1 & (THook extends (props: infer TProps) => unknown ? TProps : never);
390
+
391
+ type ActionBarPrimitiveCopyProps = ActionButtonProps<typeof useActionBarCopy>;
392
+ declare const ActionBarPrimitiveCopy: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
89
393
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
90
394
  } & {
91
395
  asChild?: boolean;
@@ -93,52 +397,66 @@ declare const ActionBarCopy: react.ForwardRefExoticComponent<Omit<Omit<react.Det
93
397
  copiedDuration?: number;
94
398
  } & react.RefAttributes<HTMLButtonElement>>;
95
399
 
96
- declare const ActionBarReload: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
400
+ type ActionBarPrimitiveReloadProps = ActionButtonProps<typeof useActionBarReload>;
401
+ declare const ActionBarPrimitiveReload: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
97
402
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
98
403
  } & {
99
404
  asChild?: boolean;
100
405
  }, "ref"> & react.RefAttributes<HTMLButtonElement>>;
101
406
 
102
- declare const ActionBarEdit: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
407
+ type ActionBarPrimitiveEditProps = ActionButtonProps<typeof useActionBarEdit>;
408
+ declare const ActionBarPrimitiveEdit: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
103
409
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
104
410
  } & {
105
411
  asChild?: boolean;
106
412
  }, "ref"> & react.RefAttributes<HTMLButtonElement>>;
107
413
 
108
414
  declare namespace index$6 {
109
- export { ActionBarCopy as Copy, ActionBarEdit as Edit, ActionBarReload as Reload, ActionBarRoot as Root };
415
+ export { ActionBarPrimitiveCopy as Copy, ActionBarPrimitiveEdit as Edit, ActionBarPrimitiveReload as Reload, ActionBarPrimitiveRoot as Root };
110
416
  }
111
417
 
112
- type AssistantModalRootProps = PopoverPrimitive.PopoverProps;
113
- declare const AssistantModalRoot: FC<AssistantModalRootProps>;
418
+ type AssistantModalPrimitiveRootProps = PopoverPrimitive.PopoverProps;
419
+ declare const AssistantModalPrimitiveRoot: FC<AssistantModalPrimitiveRootProps>;
114
420
 
115
- declare const AssistantModalTrigger: react.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
421
+ type AssistantModalPrimitiveTriggerProps = ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>;
422
+ declare const AssistantModalPrimitiveTrigger: react.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
116
423
 
117
- declare const AssistantModalContent: react.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
424
+ type AssistantModalPrimitiveContentProps = ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {
425
+ dissmissOnInteractOutside?: boolean;
426
+ };
427
+ declare const AssistantModalPrimitiveContent: react.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & {
118
428
  dissmissOnInteractOutside?: boolean;
119
429
  } & react.RefAttributes<HTMLDivElement>>;
120
430
 
121
431
  declare namespace index$5 {
122
- export { AssistantModalContent as Content, AssistantModalRoot as Root, AssistantModalTrigger as Trigger };
432
+ export { AssistantModalPrimitiveContent as Content, AssistantModalPrimitiveRoot as Root, AssistantModalPrimitiveTrigger as Trigger };
123
433
  }
124
434
 
125
- declare const BranchPickerNext: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
435
+ type BranchPickerPrimitiveNextProps = ActionButtonProps<typeof useBranchPickerNext>;
436
+ declare const BranchPickerPrimitiveNext: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
126
437
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
127
438
  } & {
128
439
  asChild?: boolean;
129
440
  }, "ref"> & react.RefAttributes<HTMLButtonElement>>;
130
441
 
442
+ type BranchPickerPrimitivePreviousProps = ActionButtonProps<typeof useBranchPickerPrevious>;
131
443
  declare const BranchPickerPrevious: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
132
444
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
133
445
  } & {
134
446
  asChild?: boolean;
135
447
  }, "ref"> & react.RefAttributes<HTMLButtonElement>>;
136
448
 
137
- declare const BranchPickerCount: FC;
449
+ type BranchPickerPrimitiveCountProps = {};
450
+ declare const BranchPickerPrimitiveCount: FC<BranchPickerPrimitiveCountProps>;
138
451
 
139
- declare const BranchPickerNumber: FC;
452
+ type BranchPickerPrimitiveNumberProps = {};
453
+ declare const BranchPickerPrimitiveNumber: FC<BranchPickerPrimitiveNumberProps>;
140
454
 
141
- declare const BranchPickerRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
455
+ type PrimitiveDivProps$3 = ComponentPropsWithoutRef<typeof Primitive.div>;
456
+ type BranchPickerPrimitiveRootProps = PrimitiveDivProps$3 & {
457
+ hideWhenSingleBranch?: boolean;
458
+ };
459
+ declare const BranchPickerPrimitiveRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
142
460
  ref?: ((instance: HTMLDivElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLDivElement> | null | undefined;
143
461
  } & {
144
462
  asChild?: boolean;
@@ -147,66 +465,80 @@ declare const BranchPickerRoot: react.ForwardRefExoticComponent<Omit<Omit<react.
147
465
  } & react.RefAttributes<HTMLDivElement>>;
148
466
 
149
467
  declare namespace index$4 {
150
- export { BranchPickerCount as Count, BranchPickerNext as Next, BranchPickerNumber as Number, BranchPickerPrevious as Previous, BranchPickerRoot as Root };
468
+ export { BranchPickerPrimitiveCount as Count, BranchPickerPrimitiveNext as Next, BranchPickerPrimitiveNumber as Number, BranchPickerPrevious as Previous, BranchPickerPrimitiveRoot as Root };
151
469
  }
152
470
 
153
- declare const ComposerRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, "ref"> & {
471
+ type PrimitiveFormProps = ComponentPropsWithoutRef<typeof Primitive.form>;
472
+ type ComposerPrimitiveRootProps = PrimitiveFormProps;
473
+ declare const ComposerPrimitiveRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, "ref"> & {
154
474
  ref?: ((instance: HTMLFormElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLFormElement> | null | undefined;
155
475
  } & {
156
476
  asChild?: boolean;
157
477
  }, "ref"> & react.RefAttributes<HTMLFormElement>>;
158
478
 
159
- declare const ComposerInput: react.ForwardRefExoticComponent<TextareaAutosizeProps & {
479
+ type ComposerPrimitiveInputProps = TextareaAutosizeProps & {
480
+ asChild?: boolean;
481
+ };
482
+ declare const ComposerPrimitiveInput: react.ForwardRefExoticComponent<TextareaAutosizeProps & {
160
483
  asChild?: boolean;
161
484
  } & react.RefAttributes<HTMLTextAreaElement>>;
162
485
 
163
- declare const ComposerSend: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
486
+ type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
487
+ type ComposerPrimitiveSendProps = PrimitiveButtonProps;
488
+ declare const ComposerPrimitiveSend: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
164
489
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
165
490
  } & {
166
491
  asChild?: boolean;
167
492
  }, "ref"> & react.RefAttributes<HTMLButtonElement>>;
168
493
 
169
- declare const ComposerCancel: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
494
+ type ComposerPrimitiveCancelProps = ActionButtonProps<typeof useComposerCancel>;
495
+ declare const ComposerPrimitiveCancel: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
170
496
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
171
497
  } & {
172
498
  asChild?: boolean;
173
499
  }, "ref"> & react.RefAttributes<HTMLButtonElement>>;
174
500
 
175
- type ComposerIfProps = PropsWithChildren<UseComposerIfProps>;
176
- declare const ComposerIf: FC<ComposerIfProps>;
501
+ type ComposerPrimitiveIfProps = PropsWithChildren<UseComposerIfProps>;
502
+ declare const ComposerPrimitiveIf: FC<ComposerPrimitiveIfProps>;
177
503
 
178
504
  declare namespace index$3 {
179
- export { ComposerCancel as Cancel, ComposerIf as If, ComposerInput as Input, ComposerRoot as Root, ComposerSend as Send };
505
+ export { ComposerPrimitiveCancel as Cancel, ComposerPrimitiveIf as If, ComposerPrimitiveInput as Input, ComposerPrimitiveRoot as Root, ComposerPrimitiveSend as Send };
180
506
  }
181
507
 
182
- declare const ContentPartInProgressIndicator: FC;
508
+ type ContentPartPrimitiveInProgressIndicatorProps = {};
509
+ declare const ContentPartPrimitiveInProgressIndicator: FC<ContentPartPrimitiveInProgressIndicatorProps>;
183
510
 
184
- type PrimitiveSpanProps = ComponentPropsWithoutRef<typeof Primitive.span>;
185
- type ContentPartTextProps = Omit<PrimitiveSpanProps, "children">;
186
- declare const ContentPartText: react.ForwardRefExoticComponent<ContentPartTextProps & react.RefAttributes<HTMLSpanElement>>;
511
+ type PrimitiveSpanProps$1 = ComponentPropsWithoutRef<typeof Primitive.p>;
512
+ type ContentPartPrimitiveTextProps = Omit<PrimitiveSpanProps$1, "children">;
513
+ declare const ContentPartPrimitiveText: react.ForwardRefExoticComponent<ContentPartPrimitiveTextProps & react.RefAttributes<HTMLParagraphElement>>;
187
514
 
188
- declare const ContentPartImage: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "ref"> & {
515
+ type PrimitiveImageProps = ComponentPropsWithoutRef<typeof Primitive.img>;
516
+ type ContentPartPrimitiveImageProps = PrimitiveImageProps;
517
+ declare const ContentPartPrimitiveImage: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "ref"> & {
189
518
  ref?: ((instance: HTMLImageElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLImageElement> | null | undefined;
190
519
  } & {
191
520
  asChild?: boolean;
192
521
  }, "ref"> & react.RefAttributes<HTMLImageElement>>;
193
522
 
194
- declare const ContentPartDisplay: FC;
523
+ type ContentPartPrimitiveDisplayProps = {};
524
+ declare const ContentPartPrimitiveDisplay: FC<ContentPartPrimitiveDisplayProps>;
195
525
 
196
526
  declare namespace index$2 {
197
- export { ContentPartDisplay as Display, ContentPartImage as Image, ContentPartInProgressIndicator as InProgressIndicator, ContentPartText as Text };
527
+ export { ContentPartPrimitiveDisplay as Display, ContentPartPrimitiveImage as Image, ContentPartPrimitiveInProgressIndicator as InProgressIndicator, ContentPartPrimitiveText as Text };
198
528
  }
199
529
 
200
- declare const MessageRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
530
+ type PrimitiveDivProps$2 = ComponentPropsWithoutRef<typeof Primitive.div>;
531
+ type MessagePrimitiveRootProps = PrimitiveDivProps$2;
532
+ declare const MessagePrimitiveRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
201
533
  ref?: ((instance: HTMLDivElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLDivElement> | null | undefined;
202
534
  } & {
203
535
  asChild?: boolean;
204
536
  }, "ref"> & react.RefAttributes<HTMLDivElement>>;
205
537
 
206
- type MessageIfProps = PropsWithChildren<UseMessageIfProps>;
207
- declare const MessageIf: FC<MessageIfProps>;
538
+ type MessagePrimitiveIfProps = PropsWithChildren<UseMessageIfProps>;
539
+ declare const MessagePrimitiveIf: FC<MessagePrimitiveIfProps>;
208
540
 
209
- type MessageContentProps = {
541
+ type MessagePrimitiveContentProps = {
210
542
  components?: {
211
543
  Text?: TextContentPartComponent;
212
544
  Image?: ImageContentPartComponent;
@@ -217,43 +549,49 @@ type MessageContentProps = {
217
549
  };
218
550
  };
219
551
  };
220
- declare const MessageContent: FC<MessageContentProps>;
552
+ declare const MessagePrimitiveContent: FC<MessagePrimitiveContentProps>;
221
553
 
222
- declare const MessageInProgress: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
554
+ type PrimitiveSpanProps = ComponentPropsWithoutRef<typeof Primitive.span>;
555
+ type MessagePrimitiveInProgressProps = PrimitiveSpanProps;
556
+ declare const MessagePrimitiveInProgress: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
223
557
  ref?: ((instance: HTMLSpanElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLSpanElement> | null | undefined;
224
558
  } & {
225
559
  asChild?: boolean;
226
560
  }, "ref"> & react.RefAttributes<HTMLSpanElement>>;
227
561
 
228
562
  declare namespace index$1 {
229
- export { MessageContent as Content, MessageIf as If, MessageInProgress as InProgress, MessageRoot as Root };
563
+ export { MessagePrimitiveContent as Content, MessagePrimitiveIf as If, MessagePrimitiveInProgress as InProgress, MessagePrimitiveRoot as Root };
230
564
  }
231
565
 
232
- declare const ThreadRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
566
+ type PrimitiveDivProps$1 = ComponentPropsWithoutRef<typeof Primitive.div>;
567
+ type ThreadPrimitiveRootProps = PrimitiveDivProps$1;
568
+ declare const ThreadPrimitiveRoot: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
233
569
  ref?: ((instance: HTMLDivElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLDivElement> | null | undefined;
234
570
  } & {
235
571
  asChild?: boolean;
236
572
  }, "ref"> & react.RefAttributes<HTMLDivElement>>;
237
573
 
238
- type ThreadEmptyProps = {
574
+ type ThreadPrimitiveEmptyProps = {
239
575
  children: ReactNode;
240
576
  };
241
- declare const ThreadEmpty: FC<ThreadEmptyProps>;
577
+ declare const ThreadPrimitiveEmpty: FC<ThreadPrimitiveEmptyProps>;
242
578
 
243
- type ThreadIfProps = PropsWithChildren<UseThreadIfProps>;
244
- declare const ThreadIf: FC<ThreadIfProps>;
579
+ type ThreadPrimitiveIfProps = PropsWithChildren<UseThreadIfProps>;
580
+ declare const ThreadPrimitiveIf: FC<ThreadPrimitiveIfProps>;
245
581
 
246
582
  type UseThreadViewportAutoScrollProps = {
247
583
  autoScroll?: boolean | undefined;
248
584
  };
249
585
 
250
- declare const ThreadViewport: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
586
+ type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
587
+ type ThreadPrimitiveViewportProps = PrimitiveDivProps & UseThreadViewportAutoScrollProps;
588
+ declare const ThreadPrimitiveViewport: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
251
589
  ref?: ((instance: HTMLDivElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLDivElement> | null | undefined;
252
590
  } & {
253
591
  asChild?: boolean;
254
592
  }, "ref"> & UseThreadViewportAutoScrollProps & react.RefAttributes<HTMLDivElement>>;
255
593
 
256
- type ThreadMessagesProps = {
594
+ type ThreadPrimitiveMessagesProps = {
257
595
  components: {
258
596
  Message: ComponentType;
259
597
  UserMessage?: ComponentType;
@@ -266,15 +604,17 @@ type ThreadMessagesProps = {
266
604
  AssistantMessage: ComponentType;
267
605
  };
268
606
  };
269
- declare const ThreadMessages: FC<ThreadMessagesProps>;
607
+ declare const ThreadPrimitiveMessages: FC<ThreadPrimitiveMessagesProps>;
270
608
 
271
- declare const ThreadScrollToBottom: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
609
+ type ThreadPrimitiveScrollToBottomProps = ActionButtonProps<typeof useThreadScrollToBottom>;
610
+ declare const ThreadPrimitiveScrollToBottom: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
272
611
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
273
612
  } & {
274
613
  asChild?: boolean;
275
614
  }, "ref"> & react.RefAttributes<HTMLButtonElement>>;
276
615
 
277
- declare const ThreadSuggestion: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
616
+ type ThreadPrimitiveSuggestionProps = ActionButtonProps<typeof useThreadSuggestion>;
617
+ declare const ThreadPrimitiveSuggestion: react.ForwardRefExoticComponent<Omit<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
278
618
  ref?: ((instance: HTMLButtonElement | null) => void | react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof react.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | react.RefObject<HTMLButtonElement> | null | undefined;
279
619
  } & {
280
620
  asChild?: boolean;
@@ -285,61 +625,9 @@ declare const ThreadSuggestion: react.ForwardRefExoticComponent<Omit<Omit<react.
285
625
  } & react.RefAttributes<HTMLButtonElement>>;
286
626
 
287
627
  declare namespace index {
288
- export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadScrollToBottom as ScrollToBottom, ThreadSuggestion as Suggestion, ThreadViewport as Viewport };
289
- }
290
-
291
- type ThreadRuntime = Readonly<ThreadState & ThreadActionsState & {
292
- subscribe: (callback: () => void) => Unsubscribe;
293
- }>;
294
-
295
- type AssistantRuntime = ThreadRuntime & {
296
- registerModelConfigProvider: (provider: ModelConfigProvider) => Unsubscribe;
297
- };
298
-
299
- type ReactThreadRuntime = ThreadRuntime & {
300
- unstable_synchronizer?: ComponentType;
301
- };
302
-
303
- type ChatModelRunResult = {
304
- content: AssistantContentPart[];
305
- };
306
- type ChatModelRunOptions = {
307
- messages: ThreadMessage[];
308
- abortSignal: AbortSignal;
309
- config: ModelConfig;
310
- onUpdate: (result: ChatModelRunResult) => void;
311
- };
312
- type ChatModelAdapter = {
313
- run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult>;
314
- };
315
-
316
- declare class LocalRuntime implements AssistantRuntime {
317
- adapter: ChatModelAdapter;
318
- private _subscriptions;
319
- private _configProviders;
320
- private abortController;
321
- private repository;
322
- get messages(): ThreadMessage[];
323
- get isRunning(): boolean;
324
- constructor(adapter: ChatModelAdapter);
325
- getBranches(messageId: string): string[];
326
- switchToBranch(branchId: string): void;
327
- append(message: AppendMessage): Promise<void>;
328
- startRun(parentId: string | null): Promise<void>;
329
- cancelRun(): void;
330
- private notifySubscribers;
331
- subscribe(callback: () => void): Unsubscribe;
332
- registerModelConfigProvider(provider: ModelConfigProvider): () => boolean;
333
- addToolResult(): void;
628
+ export { ThreadPrimitiveEmpty as Empty, ThreadPrimitiveIf as If, ThreadPrimitiveMessages as Messages, ThreadPrimitiveRoot as Root, ThreadPrimitiveScrollToBottom as ScrollToBottom, ThreadPrimitiveSuggestion as Suggestion, ThreadPrimitiveViewport as Viewport };
334
629
  }
335
630
 
336
- declare const useLocalRuntime: (adapter: ChatModelAdapter) => LocalRuntime;
337
-
338
- type AssistantRuntimeProviderProps = {
339
- runtime: AssistantRuntime;
340
- };
341
- declare const AssistantRuntimeProvider: react.NamedExoticComponent<PropsWithChildren<AssistantRuntimeProviderProps>>;
342
-
343
631
  declare class ProxyConfigProvider {
344
632
  private _providers;
345
633
  getModelConfig(): ModelConfig;
@@ -360,12 +648,14 @@ declare class MessageRepository {
360
648
  resetHead(messageId: string | null): void;
361
649
  }
362
650
 
651
+ type internal_BaseAssistantRuntime<TThreadRuntime extends ReactThreadRuntime> = BaseAssistantRuntime<TThreadRuntime>;
652
+ declare const internal_BaseAssistantRuntime: typeof BaseAssistantRuntime;
363
653
  type internal_MessageRepository = MessageRepository;
364
654
  declare const internal_MessageRepository: typeof MessageRepository;
365
655
  type internal_ProxyConfigProvider = ProxyConfigProvider;
366
656
  declare const internal_ProxyConfigProvider: typeof ProxyConfigProvider;
367
657
  declare namespace internal {
368
- export { internal_MessageRepository as MessageRepository, internal_ProxyConfigProvider as ProxyConfigProvider };
658
+ export { internal_BaseAssistantRuntime as BaseAssistantRuntime, internal_MessageRepository as MessageRepository, internal_ProxyConfigProvider as ProxyConfigProvider };
369
659
  }
370
660
 
371
- export { index$6 as ActionBarPrimitive, AppendMessage, AssistantContentPart, index$5 as AssistantModalPrimitive, type AssistantRuntime, AssistantRuntimeProvider, index$4 as BranchPickerPrimitive, type ChatModelAdapter, type ChatModelRunOptions, index$3 as ComposerPrimitive, index$2 as ContentPartPrimitive, internal as INTERNAL, index$1 as MessagePrimitive, type ReactThreadRuntime, ThreadMessage, index as ThreadPrimitive, type ThreadRuntime, Unsubscribe, useActionBarCopy, useActionBarEdit, useActionBarReload, useBranchPickerCount, useBranchPickerNext, useBranchPickerNumber, useBranchPickerPrevious, useComposerCancel, useComposerIf, useComposerSend, useContentPartDisplay, useContentPartImage, useContentPartInProgressIndicator, useContentPartText, useLocalRuntime, useMessageIf, useThreadEmpty, useThreadIf, useThreadScrollToBottom, useThreadSuggestion };
661
+ export { index$6 as ActionBarPrimitive, type ActionBarPrimitiveCopyProps, type ActionBarPrimitiveEditProps, type ActionBarPrimitiveReloadProps, type ActionBarPrimitiveRootProps, type AppendContentPart, type AppendMessage, type AssistantContentPart, type AssistantContextValue, type AssistantMessage, index$5 as AssistantModalPrimitive, type AssistantModalPrimitiveContentProps, type AssistantModalPrimitiveRootProps, type AssistantModalPrimitiveTriggerProps, type AssistantModelConfigState, type AssistantRuntime, AssistantRuntimeProvider, type AssistantToolProps, type AssistantToolUIProps, index$4 as BranchPickerPrimitive, type BranchPickerPrimitiveCountProps, type BranchPickerPrimitiveNextProps, type BranchPickerPrimitiveNumberProps, type BranchPickerPrimitivePreviousProps, type BranchPickerPrimitiveRootProps, type ChatModelAdapter, type ChatModelRunOptions, type ComposerContextValue, index$3 as ComposerPrimitive, type ComposerPrimitiveCancelProps, type ComposerPrimitiveIfProps, type ComposerPrimitiveInputProps, type ComposerPrimitiveRootProps, type ComposerPrimitiveSendProps, type ComposerState, type ContentPartContextValue, index$2 as ContentPartPrimitive, type ContentPartPrimitiveDisplayProps, type ContentPartPrimitiveImageProps, type ContentPartPrimitiveInProgressIndicatorProps, type ContentPartPrimitiveTextProps, type ContentPartState, type EditComposerState, internal as INTERNAL, type ImageContentPart, type ImageContentPartComponent, type ImageContentPartProps, type MessageContextValue, index$1 as MessagePrimitive, type MessagePrimitiveContentProps, type MessagePrimitiveIfProps, type MessagePrimitiveInProgressProps, type MessagePrimitiveRootProps, type MessageState, type ModelConfig, type ModelConfigProvider, type ReactThreadRuntime, type TextContentPart, type TextContentPartComponent, type TextContentPartProps, type ThreadContextValue, type ThreadMessage, index as ThreadPrimitive, type ThreadPrimitiveEmptyProps, type ThreadPrimitiveIfProps, type ThreadPrimitiveMessagesProps, type ThreadPrimitiveRootProps, type ThreadPrimitiveScrollToBottomProps, type ThreadPrimitiveSuggestionProps, type ThreadPrimitiveViewportProps, type ThreadRuntime, type ThreadState, type ThreadViewportState, type ToolCallContentPart, type ToolCallContentPartComponent, type ToolCallContentPartProps, type UIContentPart, type UIContentPartComponent, type UIContentPartProps, type Unsubscribe, type UserContentPart, type UserMessage, makeAssistantTool, makeAssistantToolUI, useActionBarCopy, useActionBarEdit, useActionBarReload, useAppendMessage, useAssistantContext, useAssistantInstructions, useAssistantTool, useAssistantToolUI, useBranchPickerCount, useBranchPickerNext, useBranchPickerNumber, useBranchPickerPrevious, useComposerCancel, useComposerContext, useComposerIf, useComposerSend, useContentPartContext, useContentPartDisplay, useContentPartImage, useContentPartInProgressIndicator, useContentPartText, useLocalRuntime, useMessageContext, useMessageIf, useSwitchToNewThread, useThreadContext, useThreadEmpty, useThreadIf, useThreadScrollToBottom, useThreadSuggestion };