@assistant-ui/react 0.0.12 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.d.mts CHANGED
@@ -2,6 +2,7 @@ import * as react from 'react';
2
2
  import { FC, ReactNode, PropsWithChildren, ComponentType } from 'react';
3
3
  import { TextareaAutosizeProps } from 'react-textarea-autosize';
4
4
  import { UseChatHelpers, UseAssistantHelpers } from 'ai/react';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
6
  import { UseBoundStore, StoreApi } from 'zustand';
6
7
 
7
8
  declare const ThreadRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
@@ -55,8 +56,18 @@ declare const ThreadScrollToBottom: react.ForwardRefExoticComponent<Pick<Omit<re
55
56
  asChild?: boolean;
56
57
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
57
58
 
59
+ declare const ThreadSuggestion: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
60
+ ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
61
+ } & {
62
+ asChild?: boolean;
63
+ }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & {
64
+ prompt: string;
65
+ method: "replace";
66
+ autoSend?: boolean;
67
+ } & react.RefAttributes<HTMLButtonElement>>;
68
+
58
69
  declare namespace index$4 {
59
- export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadScrollToBottom as ScrollToBottom, ThreadViewport as Viewport };
70
+ export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadScrollToBottom as ScrollToBottom, ThreadSuggestion as Suggestion, ThreadViewport as Viewport };
60
71
  }
61
72
 
62
73
  declare const ComposerRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, "ref"> & {
@@ -102,50 +113,49 @@ type MessageComposerState = BaseComposerState & {
102
113
  cancel: () => boolean;
103
114
  };
104
115
 
105
- type ThreadMessageTextPart = {
116
+ type TextContentPart = {
106
117
  type: "text";
107
118
  text: string;
108
119
  };
109
- type ThreadMessageImagePart = {
120
+ type ImageContentPart = {
110
121
  type: "image";
111
122
  image: string;
112
123
  };
113
- type ThreadMessageUIPart = {
124
+ type UIContentPart = {
114
125
  type: "ui";
115
126
  display: ReactNode;
116
127
  };
117
- type ThreadMessageToolCallPart = {
128
+ type ToolCallContentPart = {
118
129
  type: "tool-call";
119
130
  name: string;
120
131
  args: object;
121
132
  result?: object;
122
133
  };
123
- type CreateThreadUserMessageContent = ThreadMessageTextPart | ThreadMessageImagePart;
124
- type ThreadUserMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart;
125
- type ThreadAssistantMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart | ThreadMessageToolCallPart;
126
- type ThreadMessageBase = {
134
+ type UserContentPart = TextContentPart | ImageContentPart | UIContentPart;
135
+ type AssistantContentPart = TextContentPart | ImageContentPart | UIContentPart | ToolCallContentPart;
136
+ type AppendContentPart = TextContentPart | ImageContentPart;
137
+ type BaseMessage = {
127
138
  id: string;
128
- parentId: string | null;
129
139
  createdAt: Date;
130
140
  };
131
- type ThreadUserMessage = ThreadMessageBase & {
141
+ type UserMessage = BaseMessage & {
132
142
  role: "user";
133
- content: ThreadUserMessageContent[];
143
+ content: UserContentPart[];
134
144
  };
135
- type ThreadAssistantMessage = ThreadMessageBase & {
145
+ type AssistantMessage = BaseMessage & {
136
146
  role: "assistant";
137
- content: ThreadAssistantMessageContent[];
147
+ content: AssistantContentPart[];
138
148
  };
139
- type CreateThreadMessage = {
149
+ type AppendMessage = {
140
150
  parentId: string | null;
141
- content: CreateThreadUserMessageContent[];
151
+ content: AppendContentPart[];
142
152
  };
143
- type ThreadMessage = ThreadUserMessage | ThreadAssistantMessage;
153
+ type ThreadMessage = UserMessage | AssistantMessage;
144
154
 
145
- type MessageProviderProps = {
146
- children?: ReactNode;
155
+ type MessageProviderProps = PropsWithChildren<{
147
156
  message: ThreadMessage;
148
- };
157
+ parentId: string | null;
158
+ }>;
149
159
  declare const MessageProvider: FC<MessageProviderProps>;
150
160
 
151
161
  declare const MessageRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
@@ -169,20 +179,20 @@ declare const MessageIf: FC<MessageIfProps>;
169
179
  type MessageContentProps = {
170
180
  components?: {
171
181
  Text?: ComponentType<{
172
- part: ThreadMessageTextPart;
182
+ part: TextContentPart;
173
183
  }>;
174
184
  Image?: ComponentType<{
175
- part: ThreadMessageImagePart;
185
+ part: ImageContentPart;
176
186
  }>;
177
187
  UI?: ComponentType<{
178
- part: ThreadMessageUIPart;
188
+ part: UIContentPart;
179
189
  }>;
180
190
  tools?: {
181
191
  by_name?: Record<string, ComponentType<{
182
- part: ThreadMessageToolCallPart;
192
+ part: ToolCallContentPart;
183
193
  }>>;
184
194
  Fallback?: ComponentType<{
185
- part: ThreadMessageToolCallPart;
195
+ part: ToolCallContentPart;
186
196
  }>;
187
197
  };
188
198
  };
@@ -269,14 +279,22 @@ type VercelRSCMessage = {
269
279
  display: ReactNode;
270
280
  createdAt?: Date;
271
281
  };
272
- type VercelRSCAssistantProviderProps = PropsWithChildren<{
273
- messages: VercelRSCMessage[];
274
- append: (message: CreateThreadMessage) => Promise<void>;
282
+ type VercelRSCAssistantProviderBaseProps<T> = PropsWithChildren<{
283
+ messages: T[];
284
+ append: (message: AppendMessage) => Promise<void>;
285
+ edit?: (message: AppendMessage) => Promise<void>;
286
+ reload?: (parentId: string | null) => Promise<void>;
287
+ convertMessage?: (message: T) => VercelRSCMessage;
275
288
  }>;
276
- declare const VercelRSCAssistantProvider: FC<VercelRSCAssistantProviderProps>;
289
+ type RSCMessageConverter<T> = {
290
+ convertMessage: (message: T) => VercelRSCMessage;
291
+ };
292
+ type VercelRSCAssistantProviderProps<T = VercelRSCMessage> = VercelRSCAssistantProviderBaseProps<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
293
+ declare const VercelRSCAssistantProvider: <T extends WeakKey = VercelRSCMessage>({ children, convertMessage, messages: vercelMessages, append: appendCallback, edit, reload, }: VercelRSCAssistantProviderProps<T>) => react_jsx_runtime.JSX.Element;
277
294
 
278
295
  type MessageState = {
279
296
  message: ThreadMessage;
297
+ parentId: string | null;
280
298
  branches: string[];
281
299
  isLast: boolean;
282
300
  isCopied: boolean;
@@ -303,4 +321,4 @@ declare const useGoToNextBranch: () => (() => void) | null;
303
321
 
304
322
  declare const useGoToPreviousBranch: () => (() => void) | null;
305
323
 
306
- export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, type CreateThreadMessage, type CreateThreadUserMessageContent, index$2 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type ThreadMessageImagePart, type ThreadMessageTextPart, index$4 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
324
+ export { index as ActionBarPrimitive, type AppendContentPart, type AppendMessage, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, type ImageContentPart, index$2 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type TextContentPart, index$4 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import * as react from 'react';
2
2
  import { FC, ReactNode, PropsWithChildren, ComponentType } from 'react';
3
3
  import { TextareaAutosizeProps } from 'react-textarea-autosize';
4
4
  import { UseChatHelpers, UseAssistantHelpers } from 'ai/react';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
6
  import { UseBoundStore, StoreApi } from 'zustand';
6
7
 
7
8
  declare const ThreadRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
@@ -55,8 +56,18 @@ declare const ThreadScrollToBottom: react.ForwardRefExoticComponent<Pick<Omit<re
55
56
  asChild?: boolean;
56
57
  }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
57
58
 
59
+ declare const ThreadSuggestion: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
60
+ ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
61
+ } & {
62
+ asChild?: boolean;
63
+ }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & {
64
+ prompt: string;
65
+ method: "replace";
66
+ autoSend?: boolean;
67
+ } & react.RefAttributes<HTMLButtonElement>>;
68
+
58
69
  declare namespace index$4 {
59
- export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadScrollToBottom as ScrollToBottom, ThreadViewport as Viewport };
70
+ export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadScrollToBottom as ScrollToBottom, ThreadSuggestion as Suggestion, ThreadViewport as Viewport };
60
71
  }
61
72
 
62
73
  declare const ComposerRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, "ref"> & {
@@ -102,50 +113,49 @@ type MessageComposerState = BaseComposerState & {
102
113
  cancel: () => boolean;
103
114
  };
104
115
 
105
- type ThreadMessageTextPart = {
116
+ type TextContentPart = {
106
117
  type: "text";
107
118
  text: string;
108
119
  };
109
- type ThreadMessageImagePart = {
120
+ type ImageContentPart = {
110
121
  type: "image";
111
122
  image: string;
112
123
  };
113
- type ThreadMessageUIPart = {
124
+ type UIContentPart = {
114
125
  type: "ui";
115
126
  display: ReactNode;
116
127
  };
117
- type ThreadMessageToolCallPart = {
128
+ type ToolCallContentPart = {
118
129
  type: "tool-call";
119
130
  name: string;
120
131
  args: object;
121
132
  result?: object;
122
133
  };
123
- type CreateThreadUserMessageContent = ThreadMessageTextPart | ThreadMessageImagePart;
124
- type ThreadUserMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart;
125
- type ThreadAssistantMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart | ThreadMessageToolCallPart;
126
- type ThreadMessageBase = {
134
+ type UserContentPart = TextContentPart | ImageContentPart | UIContentPart;
135
+ type AssistantContentPart = TextContentPart | ImageContentPart | UIContentPart | ToolCallContentPart;
136
+ type AppendContentPart = TextContentPart | ImageContentPart;
137
+ type BaseMessage = {
127
138
  id: string;
128
- parentId: string | null;
129
139
  createdAt: Date;
130
140
  };
131
- type ThreadUserMessage = ThreadMessageBase & {
141
+ type UserMessage = BaseMessage & {
132
142
  role: "user";
133
- content: ThreadUserMessageContent[];
143
+ content: UserContentPart[];
134
144
  };
135
- type ThreadAssistantMessage = ThreadMessageBase & {
145
+ type AssistantMessage = BaseMessage & {
136
146
  role: "assistant";
137
- content: ThreadAssistantMessageContent[];
147
+ content: AssistantContentPart[];
138
148
  };
139
- type CreateThreadMessage = {
149
+ type AppendMessage = {
140
150
  parentId: string | null;
141
- content: CreateThreadUserMessageContent[];
151
+ content: AppendContentPart[];
142
152
  };
143
- type ThreadMessage = ThreadUserMessage | ThreadAssistantMessage;
153
+ type ThreadMessage = UserMessage | AssistantMessage;
144
154
 
145
- type MessageProviderProps = {
146
- children?: ReactNode;
155
+ type MessageProviderProps = PropsWithChildren<{
147
156
  message: ThreadMessage;
148
- };
157
+ parentId: string | null;
158
+ }>;
149
159
  declare const MessageProvider: FC<MessageProviderProps>;
150
160
 
151
161
  declare const MessageRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
@@ -169,20 +179,20 @@ declare const MessageIf: FC<MessageIfProps>;
169
179
  type MessageContentProps = {
170
180
  components?: {
171
181
  Text?: ComponentType<{
172
- part: ThreadMessageTextPart;
182
+ part: TextContentPart;
173
183
  }>;
174
184
  Image?: ComponentType<{
175
- part: ThreadMessageImagePart;
185
+ part: ImageContentPart;
176
186
  }>;
177
187
  UI?: ComponentType<{
178
- part: ThreadMessageUIPart;
188
+ part: UIContentPart;
179
189
  }>;
180
190
  tools?: {
181
191
  by_name?: Record<string, ComponentType<{
182
- part: ThreadMessageToolCallPart;
192
+ part: ToolCallContentPart;
183
193
  }>>;
184
194
  Fallback?: ComponentType<{
185
- part: ThreadMessageToolCallPart;
195
+ part: ToolCallContentPart;
186
196
  }>;
187
197
  };
188
198
  };
@@ -269,14 +279,22 @@ type VercelRSCMessage = {
269
279
  display: ReactNode;
270
280
  createdAt?: Date;
271
281
  };
272
- type VercelRSCAssistantProviderProps = PropsWithChildren<{
273
- messages: VercelRSCMessage[];
274
- append: (message: CreateThreadMessage) => Promise<void>;
282
+ type VercelRSCAssistantProviderBaseProps<T> = PropsWithChildren<{
283
+ messages: T[];
284
+ append: (message: AppendMessage) => Promise<void>;
285
+ edit?: (message: AppendMessage) => Promise<void>;
286
+ reload?: (parentId: string | null) => Promise<void>;
287
+ convertMessage?: (message: T) => VercelRSCMessage;
275
288
  }>;
276
- declare const VercelRSCAssistantProvider: FC<VercelRSCAssistantProviderProps>;
289
+ type RSCMessageConverter<T> = {
290
+ convertMessage: (message: T) => VercelRSCMessage;
291
+ };
292
+ type VercelRSCAssistantProviderProps<T = VercelRSCMessage> = VercelRSCAssistantProviderBaseProps<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
293
+ declare const VercelRSCAssistantProvider: <T extends WeakKey = VercelRSCMessage>({ children, convertMessage, messages: vercelMessages, append: appendCallback, edit, reload, }: VercelRSCAssistantProviderProps<T>) => react_jsx_runtime.JSX.Element;
277
294
 
278
295
  type MessageState = {
279
296
  message: ThreadMessage;
297
+ parentId: string | null;
280
298
  branches: string[];
281
299
  isLast: boolean;
282
300
  isCopied: boolean;
@@ -303,4 +321,4 @@ declare const useGoToNextBranch: () => (() => void) | null;
303
321
 
304
322
  declare const useGoToPreviousBranch: () => (() => void) | null;
305
323
 
306
- export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, type CreateThreadMessage, type CreateThreadUserMessageContent, index$2 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type ThreadMessageImagePart, type ThreadMessageTextPart, index$4 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
324
+ export { index as ActionBarPrimitive, type AppendContentPart, type AppendMessage, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, type ImageContentPart, index$2 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type TextContentPart, index$4 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };