@assistant-ui/react 0.0.19 → 0.0.20

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
@@ -153,6 +153,15 @@ type AppendMessage = {
153
153
  content: AppendContentPart[];
154
154
  };
155
155
  type ThreadMessage = UserMessage | AssistantMessage;
156
+ type ThreadState = {
157
+ messages: ThreadMessage[];
158
+ isRunning: boolean;
159
+ getBranches: (messageId: string) => readonly string[];
160
+ switchToBranch: (branchId: string) => void;
161
+ append: (message: AppendMessage) => void;
162
+ startRun: (parentId: string | null) => void;
163
+ cancelRun: () => void;
164
+ };
156
165
 
157
166
  type MessageProviderProps = PropsWithChildren<{
158
167
  message: ThreadMessage;
@@ -293,43 +302,34 @@ type VercelAIAssistantProviderProps = PropsWithChildren<{
293
302
  }>;
294
303
  declare const VercelAIAssistantProvider: FC<VercelAIAssistantProviderProps>;
295
304
 
305
+ type Unsubscribe = () => void;
306
+ type AssistantRuntime = Readonly<ThreadState> & {
307
+ subscribe: (callback: () => void) => Unsubscribe;
308
+ };
309
+
296
310
  type VercelRSCMessage = {
297
311
  id: string;
298
312
  role: "user" | "assistant";
299
313
  display: ReactNode;
300
314
  createdAt?: Date;
301
315
  };
302
- type VercelRSCAssistantProviderBaseProps<T> = PropsWithChildren<{
316
+ type RSCMessageConverter<T> = {
317
+ convertMessage: (message: T) => VercelRSCMessage;
318
+ };
319
+ type VercelRSCAdapterBase<T> = {
303
320
  messages: T[];
304
321
  append: (message: AppendMessage) => Promise<void>;
305
322
  edit?: (message: AppendMessage) => Promise<void>;
306
323
  reload?: (parentId: string | null) => Promise<void>;
307
324
  convertMessage?: (message: T) => VercelRSCMessage;
308
- }>;
309
- type RSCMessageConverter<T> = {
310
- convertMessage: (message: T) => VercelRSCMessage;
311
325
  };
312
- type VercelRSCAssistantProviderProps<T = VercelRSCMessage> = VercelRSCAssistantProviderBaseProps<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
313
- declare const VercelRSCAssistantProvider: <T extends WeakKey = VercelRSCMessage>({ children, convertMessage, messages: vercelMessages, append: appendCallback, edit, reload, }: VercelRSCAssistantProviderProps<T>) => react_jsx_runtime.JSX.Element;
326
+ type VercelRSCAdapter<T = VercelRSCMessage> = VercelRSCAdapterBase<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
314
327
 
315
- type MessageUpdateCallback = (parentId: string | null, message: ThreadMessage) => void;
316
- type StatusUpdateCallback = (isRunning: boolean) => void;
317
- type Unsubscribe = () => void;
318
- type ThreadRuntime = {
319
- append(message: AppendMessage): Promise<{
320
- parentId: string;
321
- id: string;
322
- }>;
323
- startRun(parentId: string | null): Promise<{
324
- id: string;
325
- }>;
326
- cancelRun(): void;
327
- subscribeToMessageUpdates(callback: MessageUpdateCallback): Unsubscribe;
328
- subscribeToStatusUpdates(callback: StatusUpdateCallback): Unsubscribe;
329
- };
328
+ type VercelRSCAssistantProviderProps<T> = PropsWithChildren<VercelRSCAdapter<T>>;
329
+ declare const VercelRSCAssistantProvider: <T extends WeakKey = VercelRSCMessage>({ children, ...adapter }: VercelRSCAssistantProviderProps<T>) => react_jsx_runtime.JSX.Element;
330
330
 
331
331
  type AssistantProviderProps = {
332
- runtime: ThreadRuntime;
332
+ runtime: AssistantRuntime;
333
333
  };
334
334
  declare const AssistantProvider: FC<PropsWithChildren<AssistantProviderProps>>;
335
335
 
@@ -345,25 +345,21 @@ type ChatModelAdapter = {
345
345
  run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult>;
346
346
  };
347
347
 
348
- declare class LocalRuntime implements ThreadRuntime {
348
+ declare class LocalRuntime implements AssistantRuntime {
349
349
  adapter: ChatModelAdapter;
350
- private _messageUpdateCallbacks;
351
- private _statusUpdateCallbacks;
350
+ private _subscriptions;
352
351
  private abortController;
353
352
  private repository;
353
+ get messages(): ThreadMessage[];
354
+ get isRunning(): boolean;
354
355
  constructor(adapter: ChatModelAdapter);
355
- append(message: AppendMessage): Promise<{
356
- parentId: string;
357
- id: string;
358
- }>;
359
- startRun(parentId: string | null): Promise<{
360
- id: string;
361
- }>;
362
- private addOrUpdateMessage;
363
- private run;
356
+ getBranches(messageId: string): string[];
357
+ switchToBranch(branchId: string): void;
358
+ append(message: AppendMessage): Promise<void>;
359
+ startRun(parentId: string | null): Promise<void>;
364
360
  cancelRun(): void;
365
- subscribeToMessageUpdates(callback: MessageUpdateCallback): Unsubscribe;
366
- subscribeToStatusUpdates(callback: StatusUpdateCallback): Unsubscribe;
361
+ private notifySubscribers;
362
+ subscribe(callback: () => void): Unsubscribe;
367
363
  }
368
364
 
369
365
  declare const useLocalRuntime: (adapter: ChatModelAdapter) => LocalRuntime;
@@ -410,4 +406,4 @@ declare const useGoToNextBranch: () => (() => void) | null;
410
406
 
411
407
  declare const useGoToPreviousBranch: () => (() => void) | null;
412
408
 
413
- export { index$1 as ActionBarPrimitive, type AppendContentPart, type AppendMessage, index$2 as BranchPickerPrimitive, index$4 as ComposerPrimitive, index as ContentPartPrimitive, type ImageContentPart, index$3 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type TextContentPart, index$5 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, AssistantProvider as unstable_AssistantProvider, type ChatModelAdapter as unstable_ChatModelAdapter, type ChatModelRunOptions as unstable_ChatModelRunOptions, VercelModelAdapter as unstable_VercelModelAdapter, getVercelMessage as unstable_getVercelMessage, getVercelRSCMessage as unstable_getVercelRSCMessage, useLocalRuntime as unstable_useLocalRuntime, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
409
+ export { index$1 as ActionBarPrimitive, type AppendContentPart, type AppendMessage, index$2 as BranchPickerPrimitive, index$4 as ComposerPrimitive, index as ContentPartPrimitive, type ImageContentPart, index$3 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type TextContentPart, index$5 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, type VercelRSCMessage, AssistantProvider as unstable_AssistantProvider, type ChatModelAdapter as unstable_ChatModelAdapter, type ChatModelRunOptions as unstable_ChatModelRunOptions, VercelModelAdapter as unstable_VercelModelAdapter, getVercelMessage as unstable_getVercelMessage, getVercelRSCMessage as unstable_getVercelRSCMessage, useLocalRuntime as unstable_useLocalRuntime, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
package/dist/index.d.ts CHANGED
@@ -153,6 +153,15 @@ type AppendMessage = {
153
153
  content: AppendContentPart[];
154
154
  };
155
155
  type ThreadMessage = UserMessage | AssistantMessage;
156
+ type ThreadState = {
157
+ messages: ThreadMessage[];
158
+ isRunning: boolean;
159
+ getBranches: (messageId: string) => readonly string[];
160
+ switchToBranch: (branchId: string) => void;
161
+ append: (message: AppendMessage) => void;
162
+ startRun: (parentId: string | null) => void;
163
+ cancelRun: () => void;
164
+ };
156
165
 
157
166
  type MessageProviderProps = PropsWithChildren<{
158
167
  message: ThreadMessage;
@@ -293,43 +302,34 @@ type VercelAIAssistantProviderProps = PropsWithChildren<{
293
302
  }>;
294
303
  declare const VercelAIAssistantProvider: FC<VercelAIAssistantProviderProps>;
295
304
 
305
+ type Unsubscribe = () => void;
306
+ type AssistantRuntime = Readonly<ThreadState> & {
307
+ subscribe: (callback: () => void) => Unsubscribe;
308
+ };
309
+
296
310
  type VercelRSCMessage = {
297
311
  id: string;
298
312
  role: "user" | "assistant";
299
313
  display: ReactNode;
300
314
  createdAt?: Date;
301
315
  };
302
- type VercelRSCAssistantProviderBaseProps<T> = PropsWithChildren<{
316
+ type RSCMessageConverter<T> = {
317
+ convertMessage: (message: T) => VercelRSCMessage;
318
+ };
319
+ type VercelRSCAdapterBase<T> = {
303
320
  messages: T[];
304
321
  append: (message: AppendMessage) => Promise<void>;
305
322
  edit?: (message: AppendMessage) => Promise<void>;
306
323
  reload?: (parentId: string | null) => Promise<void>;
307
324
  convertMessage?: (message: T) => VercelRSCMessage;
308
- }>;
309
- type RSCMessageConverter<T> = {
310
- convertMessage: (message: T) => VercelRSCMessage;
311
325
  };
312
- type VercelRSCAssistantProviderProps<T = VercelRSCMessage> = VercelRSCAssistantProviderBaseProps<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
313
- declare const VercelRSCAssistantProvider: <T extends WeakKey = VercelRSCMessage>({ children, convertMessage, messages: vercelMessages, append: appendCallback, edit, reload, }: VercelRSCAssistantProviderProps<T>) => react_jsx_runtime.JSX.Element;
326
+ type VercelRSCAdapter<T = VercelRSCMessage> = VercelRSCAdapterBase<T> & (T extends VercelRSCMessage ? object : RSCMessageConverter<T>);
314
327
 
315
- type MessageUpdateCallback = (parentId: string | null, message: ThreadMessage) => void;
316
- type StatusUpdateCallback = (isRunning: boolean) => void;
317
- type Unsubscribe = () => void;
318
- type ThreadRuntime = {
319
- append(message: AppendMessage): Promise<{
320
- parentId: string;
321
- id: string;
322
- }>;
323
- startRun(parentId: string | null): Promise<{
324
- id: string;
325
- }>;
326
- cancelRun(): void;
327
- subscribeToMessageUpdates(callback: MessageUpdateCallback): Unsubscribe;
328
- subscribeToStatusUpdates(callback: StatusUpdateCallback): Unsubscribe;
329
- };
328
+ type VercelRSCAssistantProviderProps<T> = PropsWithChildren<VercelRSCAdapter<T>>;
329
+ declare const VercelRSCAssistantProvider: <T extends WeakKey = VercelRSCMessage>({ children, ...adapter }: VercelRSCAssistantProviderProps<T>) => react_jsx_runtime.JSX.Element;
330
330
 
331
331
  type AssistantProviderProps = {
332
- runtime: ThreadRuntime;
332
+ runtime: AssistantRuntime;
333
333
  };
334
334
  declare const AssistantProvider: FC<PropsWithChildren<AssistantProviderProps>>;
335
335
 
@@ -345,25 +345,21 @@ type ChatModelAdapter = {
345
345
  run: (options: ChatModelRunOptions) => Promise<ChatModelRunResult>;
346
346
  };
347
347
 
348
- declare class LocalRuntime implements ThreadRuntime {
348
+ declare class LocalRuntime implements AssistantRuntime {
349
349
  adapter: ChatModelAdapter;
350
- private _messageUpdateCallbacks;
351
- private _statusUpdateCallbacks;
350
+ private _subscriptions;
352
351
  private abortController;
353
352
  private repository;
353
+ get messages(): ThreadMessage[];
354
+ get isRunning(): boolean;
354
355
  constructor(adapter: ChatModelAdapter);
355
- append(message: AppendMessage): Promise<{
356
- parentId: string;
357
- id: string;
358
- }>;
359
- startRun(parentId: string | null): Promise<{
360
- id: string;
361
- }>;
362
- private addOrUpdateMessage;
363
- private run;
356
+ getBranches(messageId: string): string[];
357
+ switchToBranch(branchId: string): void;
358
+ append(message: AppendMessage): Promise<void>;
359
+ startRun(parentId: string | null): Promise<void>;
364
360
  cancelRun(): void;
365
- subscribeToMessageUpdates(callback: MessageUpdateCallback): Unsubscribe;
366
- subscribeToStatusUpdates(callback: StatusUpdateCallback): Unsubscribe;
361
+ private notifySubscribers;
362
+ subscribe(callback: () => void): Unsubscribe;
367
363
  }
368
364
 
369
365
  declare const useLocalRuntime: (adapter: ChatModelAdapter) => LocalRuntime;
@@ -410,4 +406,4 @@ declare const useGoToNextBranch: () => (() => void) | null;
410
406
 
411
407
  declare const useGoToPreviousBranch: () => (() => void) | null;
412
408
 
413
- export { index$1 as ActionBarPrimitive, type AppendContentPart, type AppendMessage, index$2 as BranchPickerPrimitive, index$4 as ComposerPrimitive, index as ContentPartPrimitive, type ImageContentPart, index$3 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type TextContentPart, index$5 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, AssistantProvider as unstable_AssistantProvider, type ChatModelAdapter as unstable_ChatModelAdapter, type ChatModelRunOptions as unstable_ChatModelRunOptions, VercelModelAdapter as unstable_VercelModelAdapter, getVercelMessage as unstable_getVercelMessage, getVercelRSCMessage as unstable_getVercelRSCMessage, useLocalRuntime as unstable_useLocalRuntime, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };
409
+ export { index$1 as ActionBarPrimitive, type AppendContentPart, type AppendMessage, index$2 as BranchPickerPrimitive, index$4 as ComposerPrimitive, index as ContentPartPrimitive, type ImageContentPart, index$3 as MessagePrimitive, type VercelRSCMessage as RSCMessage, type TextContentPart, index$5 as ThreadPrimitive, VercelAIAssistantProvider, type VercelAIAssistantProviderProps, VercelRSCAssistantProvider, type VercelRSCAssistantProviderProps, type VercelRSCMessage, AssistantProvider as unstable_AssistantProvider, type ChatModelAdapter as unstable_ChatModelAdapter, type ChatModelRunOptions as unstable_ChatModelRunOptions, VercelModelAdapter as unstable_VercelModelAdapter, getVercelMessage as unstable_getVercelMessage, getVercelRSCMessage as unstable_getVercelRSCMessage, useLocalRuntime as unstable_useLocalRuntime, useMessageContext as unstable_useMessageContext, useBeginMessageEdit, useCopyMessage, useGoToNextBranch, useGoToPreviousBranch, useReloadMessage };