@assistant-ui/react 0.0.6 → 0.0.8

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.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
- import { FC, PropsWithChildren } from 'react';
2
+ import { FC, PropsWithChildren, ReactNode, ComponentType } from 'react';
3
3
  import { TextareaAutosizeProps } from 'react-textarea-autosize';
4
- import { UseChatHelpers } from 'ai/react';
4
+ import { UseChatHelpers, UseAssistantHelpers } from 'ai/react';
5
5
  import { UseBoundStore, StoreApi } from 'zustand';
6
6
 
7
7
  declare const ThreadRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
@@ -30,7 +30,9 @@ declare const ThreadViewport: react.ForwardRefExoticComponent<Pick<Omit<react.De
30
30
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
31
31
  } & {
32
32
  asChild?: boolean;
33
- }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & react.RefAttributes<HTMLDivElement>>;
33
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & {
34
+ autoScroll?: boolean;
35
+ } & react.RefAttributes<HTMLDivElement>>;
34
36
 
35
37
  type ThreadMessagesProps = {
36
38
  components: {
@@ -47,8 +49,14 @@ type ThreadMessagesProps = {
47
49
  };
48
50
  declare const ThreadMessages: FC<ThreadMessagesProps>;
49
51
 
52
+ declare const ThreadScrollToBottom: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
53
+ ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
54
+ } & {
55
+ asChild?: boolean;
56
+ }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
57
+
50
58
  declare namespace index$4 {
51
- export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadViewport as Viewport };
59
+ export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadScrollToBottom as ScrollToBottom, ThreadViewport as Viewport };
52
60
  }
53
61
 
54
62
  declare const ComposerRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, "ref"> & {
@@ -101,16 +109,26 @@ type ComposerStore = {
101
109
  useComposer: UseBoundStore<StoreApi<ComposerState>>;
102
110
  };
103
111
 
104
- type TextContent = {
112
+ type ThreadMessageTextPart = {
105
113
  type: "text";
106
114
  text: string;
107
115
  };
108
- type ImageContent = {
116
+ type ThreadMessageImagePart = {
109
117
  type: "image";
110
118
  image: string;
111
119
  };
112
- type ThreadUserMessageContent = TextContent | ImageContent;
113
- type ThreadAssistantMessageContent = TextContent | ImageContent;
120
+ type ThreadMessageUIPart = {
121
+ type: "ui";
122
+ display: ReactNode;
123
+ };
124
+ type ThreadMessageToolCallPart = {
125
+ type: "tool-call";
126
+ name: string;
127
+ args: object;
128
+ result?: object;
129
+ };
130
+ type ThreadUserMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart;
131
+ type ThreadAssistantMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart | ThreadMessageToolCallPart;
114
132
  type ThreadUserMessage = {
115
133
  id: string;
116
134
  role: "user";
@@ -122,6 +140,7 @@ type ThreadAssistantMessage = {
122
140
  content: ThreadAssistantMessageContent[];
123
141
  };
124
142
  type ThreadMessage = ThreadUserMessage | ThreadAssistantMessage;
143
+ type CreateThreadMessage = Omit<ThreadUserMessage, "id">;
125
144
 
126
145
  type MessageProviderProps = {
127
146
  children?: React.ReactNode;
@@ -147,7 +166,28 @@ type MessageIfProps = RequireAtLeastOne<MessageIfFilters> & {
147
166
  };
148
167
  declare const MessageIf: FC<MessageIfProps>;
149
168
 
150
- declare const MessageContent: FC;
169
+ type MessageContentProps = {
170
+ components?: {
171
+ Text?: ComponentType<{
172
+ part: ThreadMessageTextPart;
173
+ }>;
174
+ Image?: ComponentType<{
175
+ part: ThreadMessageImagePart;
176
+ }>;
177
+ UI?: ComponentType<{
178
+ part: ThreadMessageUIPart;
179
+ }>;
180
+ tools?: {
181
+ by_name?: Record<string, ComponentType<{
182
+ part: ThreadMessageToolCallPart;
183
+ }>>;
184
+ Fallback?: ComponentType<{
185
+ part: ThreadMessageToolCallPart;
186
+ }>;
187
+ };
188
+ };
189
+ };
190
+ declare const MessageContent: FC<MessageContentProps>;
151
191
 
152
192
  declare namespace index$2 {
153
193
  export { MessageContent as Content, MessageIf as If, MessageProvider as Provider, MessageRoot as Root };
@@ -216,11 +256,23 @@ declare namespace index {
216
256
  export { ActionBarCopy as Copy, ActionBarEdit as Edit, ActionBarReload as Reload, ActionBarRoot as Root };
217
257
  }
218
258
 
219
- type VercelAIChatAssistantProviderProps = {
259
+ type VercelAIAssistantProviderProps$1 = PropsWithChildren<{
220
260
  chat: UseChatHelpers;
221
- children: React.ReactNode;
261
+ } | {
262
+ assistant: UseAssistantHelpers;
263
+ }>;
264
+ declare const VercelAIAssistantProvider: FC<VercelAIAssistantProviderProps$1>;
265
+
266
+ type RSCMessage = {
267
+ id: string;
268
+ role: "user" | "assistant";
269
+ display: ReactNode;
222
270
  };
223
- declare const VercelAIChatAssistantProvider: FC<VercelAIChatAssistantProviderProps>;
271
+ type VercelAIAssistantProviderProps = PropsWithChildren<{
272
+ messages: RSCMessage[];
273
+ append: (message: CreateThreadMessage) => Promise<void>;
274
+ }>;
275
+ declare const VercelRSCAssistantProvider: FC<VercelAIAssistantProviderProps>;
224
276
 
225
277
  type MessageState = {
226
278
  message: ThreadMessage;
@@ -234,6 +286,7 @@ type MessageState = {
234
286
  type MessageStore = ComposerStore & {
235
287
  useMessage: UseBoundStore<StoreApi<MessageState>>;
236
288
  };
289
+
237
290
  declare const useMessageContext: () => MessageStore;
238
291
 
239
292
  declare const useCopyMessage: ({ copiedDuration }: {
@@ -248,4 +301,4 @@ declare const useGoToNextBranch: () => (() => void) | null;
248
301
 
249
302
  declare const useGoToPreviousBranch: () => (() => void) | null;
250
303
 
251
- export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, index$2 as MessagePrimitive, index$4 as ThreadPrimitive, VercelAIChatAssistantProvider as VercelAIAssistantProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
304
+ export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, index$2 as MessagePrimitive, index$4 as ThreadPrimitive, VercelAIAssistantProvider, VercelRSCAssistantProvider as unstable_VercelRSCAssistantProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
- import { FC, PropsWithChildren } from 'react';
2
+ import { FC, PropsWithChildren, ReactNode, ComponentType } from 'react';
3
3
  import { TextareaAutosizeProps } from 'react-textarea-autosize';
4
- import { UseChatHelpers } from 'ai/react';
4
+ import { UseChatHelpers, UseAssistantHelpers } from 'ai/react';
5
5
  import { UseBoundStore, StoreApi } from 'zustand';
6
6
 
7
7
  declare const ThreadRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
@@ -30,7 +30,9 @@ declare const ThreadViewport: react.ForwardRefExoticComponent<Pick<Omit<react.De
30
30
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
31
31
  } & {
32
32
  asChild?: boolean;
33
- }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & react.RefAttributes<HTMLDivElement>>;
33
+ }, "key" | keyof react.HTMLAttributes<HTMLDivElement> | "asChild"> & {
34
+ autoScroll?: boolean;
35
+ } & react.RefAttributes<HTMLDivElement>>;
34
36
 
35
37
  type ThreadMessagesProps = {
36
38
  components: {
@@ -47,8 +49,14 @@ type ThreadMessagesProps = {
47
49
  };
48
50
  declare const ThreadMessages: FC<ThreadMessagesProps>;
49
51
 
52
+ declare const ThreadScrollToBottom: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
53
+ ref?: ((instance: HTMLButtonElement | null) => void) | react.RefObject<HTMLButtonElement> | null | undefined;
54
+ } & {
55
+ asChild?: boolean;
56
+ }, "key" | "asChild" | keyof react.ButtonHTMLAttributes<HTMLButtonElement>> & react.RefAttributes<HTMLButtonElement>>;
57
+
50
58
  declare namespace index$4 {
51
- export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadViewport as Viewport };
59
+ export { ThreadEmpty as Empty, ThreadIf as If, ThreadMessages as Messages, ThreadRoot as Root, ThreadScrollToBottom as ScrollToBottom, ThreadViewport as Viewport };
52
60
  }
53
61
 
54
62
  declare const ComposerRoot: react.ForwardRefExoticComponent<Pick<Omit<react.DetailedHTMLProps<react.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, "ref"> & {
@@ -101,16 +109,26 @@ type ComposerStore = {
101
109
  useComposer: UseBoundStore<StoreApi<ComposerState>>;
102
110
  };
103
111
 
104
- type TextContent = {
112
+ type ThreadMessageTextPart = {
105
113
  type: "text";
106
114
  text: string;
107
115
  };
108
- type ImageContent = {
116
+ type ThreadMessageImagePart = {
109
117
  type: "image";
110
118
  image: string;
111
119
  };
112
- type ThreadUserMessageContent = TextContent | ImageContent;
113
- type ThreadAssistantMessageContent = TextContent | ImageContent;
120
+ type ThreadMessageUIPart = {
121
+ type: "ui";
122
+ display: ReactNode;
123
+ };
124
+ type ThreadMessageToolCallPart = {
125
+ type: "tool-call";
126
+ name: string;
127
+ args: object;
128
+ result?: object;
129
+ };
130
+ type ThreadUserMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart;
131
+ type ThreadAssistantMessageContent = ThreadMessageTextPart | ThreadMessageImagePart | ThreadMessageUIPart | ThreadMessageToolCallPart;
114
132
  type ThreadUserMessage = {
115
133
  id: string;
116
134
  role: "user";
@@ -122,6 +140,7 @@ type ThreadAssistantMessage = {
122
140
  content: ThreadAssistantMessageContent[];
123
141
  };
124
142
  type ThreadMessage = ThreadUserMessage | ThreadAssistantMessage;
143
+ type CreateThreadMessage = Omit<ThreadUserMessage, "id">;
125
144
 
126
145
  type MessageProviderProps = {
127
146
  children?: React.ReactNode;
@@ -147,7 +166,28 @@ type MessageIfProps = RequireAtLeastOne<MessageIfFilters> & {
147
166
  };
148
167
  declare const MessageIf: FC<MessageIfProps>;
149
168
 
150
- declare const MessageContent: FC;
169
+ type MessageContentProps = {
170
+ components?: {
171
+ Text?: ComponentType<{
172
+ part: ThreadMessageTextPart;
173
+ }>;
174
+ Image?: ComponentType<{
175
+ part: ThreadMessageImagePart;
176
+ }>;
177
+ UI?: ComponentType<{
178
+ part: ThreadMessageUIPart;
179
+ }>;
180
+ tools?: {
181
+ by_name?: Record<string, ComponentType<{
182
+ part: ThreadMessageToolCallPart;
183
+ }>>;
184
+ Fallback?: ComponentType<{
185
+ part: ThreadMessageToolCallPart;
186
+ }>;
187
+ };
188
+ };
189
+ };
190
+ declare const MessageContent: FC<MessageContentProps>;
151
191
 
152
192
  declare namespace index$2 {
153
193
  export { MessageContent as Content, MessageIf as If, MessageProvider as Provider, MessageRoot as Root };
@@ -216,11 +256,23 @@ declare namespace index {
216
256
  export { ActionBarCopy as Copy, ActionBarEdit as Edit, ActionBarReload as Reload, ActionBarRoot as Root };
217
257
  }
218
258
 
219
- type VercelAIChatAssistantProviderProps = {
259
+ type VercelAIAssistantProviderProps$1 = PropsWithChildren<{
220
260
  chat: UseChatHelpers;
221
- children: React.ReactNode;
261
+ } | {
262
+ assistant: UseAssistantHelpers;
263
+ }>;
264
+ declare const VercelAIAssistantProvider: FC<VercelAIAssistantProviderProps$1>;
265
+
266
+ type RSCMessage = {
267
+ id: string;
268
+ role: "user" | "assistant";
269
+ display: ReactNode;
222
270
  };
223
- declare const VercelAIChatAssistantProvider: FC<VercelAIChatAssistantProviderProps>;
271
+ type VercelAIAssistantProviderProps = PropsWithChildren<{
272
+ messages: RSCMessage[];
273
+ append: (message: CreateThreadMessage) => Promise<void>;
274
+ }>;
275
+ declare const VercelRSCAssistantProvider: FC<VercelAIAssistantProviderProps>;
224
276
 
225
277
  type MessageState = {
226
278
  message: ThreadMessage;
@@ -234,6 +286,7 @@ type MessageState = {
234
286
  type MessageStore = ComposerStore & {
235
287
  useMessage: UseBoundStore<StoreApi<MessageState>>;
236
288
  };
289
+
237
290
  declare const useMessageContext: () => MessageStore;
238
291
 
239
292
  declare const useCopyMessage: ({ copiedDuration }: {
@@ -248,4 +301,4 @@ declare const useGoToNextBranch: () => (() => void) | null;
248
301
 
249
302
  declare const useGoToPreviousBranch: () => (() => void) | null;
250
303
 
251
- export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, index$2 as MessagePrimitive, index$4 as ThreadPrimitive, VercelAIChatAssistantProvider as VercelAIAssistantProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
304
+ export { index as ActionBarPrimitive, index$1 as BranchPickerPrimitive, index$3 as ComposerPrimitive, index$2 as MessagePrimitive, index$4 as ThreadPrimitive, VercelAIAssistantProvider, VercelRSCAssistantProvider as unstable_VercelRSCAssistantProvider, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };