@assistant-ui/react 0.3.1 → 0.3.3
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 +22 -5
 - package/dist/index.d.ts +22 -5
 - package/dist/index.js +130 -46
 - package/dist/index.js.map +1 -1
 - package/dist/index.mjs +102 -18
 - package/dist/index.mjs.map +1 -1
 - package/package.json +2 -12
 - package/dist/experimental.d.mts +0 -2
 - package/dist/experimental.d.ts +0 -2
 - package/dist/experimental.js +0 -2
 - package/dist/experimental.js.map +0 -1
 - package/dist/experimental.mjs +0 -1
 - package/dist/experimental.mjs.map +0 -1
 
    
        package/dist/index.d.mts
    CHANGED
    
    | 
         @@ -356,9 +356,15 @@ declare const useComposerIf: (props: UseComposerIfProps) => boolean; 
     | 
|
| 
       356 
356 
     | 
    
         | 
| 
       357 
357 
     | 
    
         
             
            declare const useComposerSend: () => (() => void) | null;
         
     | 
| 
       358 
358 
     | 
    
         | 
| 
       359 
     | 
    
         
            -
            declare const useContentPartDisplay: () =>  
     | 
| 
      
 359 
     | 
    
         
            +
            declare const useContentPartDisplay: () => Readonly<{
         
     | 
| 
      
 360 
     | 
    
         
            +
                status: "in_progress" | "done" | "error";
         
     | 
| 
      
 361 
     | 
    
         
            +
                part: UIContentPart;
         
     | 
| 
      
 362 
     | 
    
         
            +
            }>;
         
     | 
| 
       360 
363 
     | 
    
         | 
| 
       361 
     | 
    
         
            -
            declare const useContentPartImage: () =>  
     | 
| 
      
 364 
     | 
    
         
            +
            declare const useContentPartImage: () => Readonly<{
         
     | 
| 
      
 365 
     | 
    
         
            +
                status: "in_progress" | "done" | "error";
         
     | 
| 
      
 366 
     | 
    
         
            +
                part: ImageContentPart;
         
     | 
| 
      
 367 
     | 
    
         
            +
            }>;
         
     | 
| 
       362 
368 
     | 
    
         | 
| 
       363 
369 
     | 
    
         
             
            declare const useContentPartText: () => Readonly<{
         
     | 
| 
       364 
370 
     | 
    
         
             
                status: "in_progress" | "done" | "error";
         
     | 
| 
         @@ -528,8 +534,16 @@ declare namespace index$3 { 
     | 
|
| 
       528 
534 
     | 
    
         
             
            }
         
     | 
| 
       529 
535 
     | 
    
         | 
| 
       530 
536 
     | 
    
         
             
            type PrimitiveSpanProps$1 = ComponentPropsWithoutRef<typeof Primitive.span>;
         
     | 
| 
       531 
     | 
    
         
            -
            type ContentPartPrimitiveTextProps = Omit<PrimitiveSpanProps$1, "children" 
     | 
| 
       532 
     | 
    
         
            -
             
     | 
| 
      
 537 
     | 
    
         
            +
            type ContentPartPrimitiveTextProps = Omit<PrimitiveSpanProps$1, "children"> & {
         
     | 
| 
      
 538 
     | 
    
         
            +
                smooth?: boolean;
         
     | 
| 
      
 539 
     | 
    
         
            +
            };
         
     | 
| 
      
 540 
     | 
    
         
            +
            declare const ContentPartPrimitiveText: react.ForwardRefExoticComponent<Omit<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
         
     | 
| 
      
 541 
     | 
    
         
            +
                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;
         
     | 
| 
      
 542 
     | 
    
         
            +
            } & {
         
     | 
| 
      
 543 
     | 
    
         
            +
                asChild?: boolean;
         
     | 
| 
      
 544 
     | 
    
         
            +
            }, "ref">, "children"> & {
         
     | 
| 
      
 545 
     | 
    
         
            +
                smooth?: boolean;
         
     | 
| 
      
 546 
     | 
    
         
            +
            } & react.RefAttributes<HTMLSpanElement>>;
         
     | 
| 
       533 
547 
     | 
    
         | 
| 
       534 
548 
     | 
    
         
             
            type PrimitiveImageProps = ComponentPropsWithoutRef<typeof Primitive.img>;
         
     | 
| 
       535 
549 
     | 
    
         
             
            type ContentPartPrimitiveImageProps = PrimitiveImageProps;
         
     | 
| 
         @@ -665,14 +679,17 @@ declare class MessageRepository { 
     | 
|
| 
       665 
679 
     | 
    
         
             
                resetHead(messageId: string | null): void;
         
     | 
| 
       666 
680 
     | 
    
         
             
            }
         
     | 
| 
       667 
681 
     | 
    
         | 
| 
      
 682 
     | 
    
         
            +
            declare const useSmooth: (text: string, smooth?: boolean) => string;
         
     | 
| 
      
 683 
     | 
    
         
            +
             
     | 
| 
       668 
684 
     | 
    
         
             
            type internal_BaseAssistantRuntime<TThreadRuntime extends ReactThreadRuntime> = BaseAssistantRuntime<TThreadRuntime>;
         
     | 
| 
       669 
685 
     | 
    
         
             
            declare const internal_BaseAssistantRuntime: typeof BaseAssistantRuntime;
         
     | 
| 
       670 
686 
     | 
    
         
             
            type internal_MessageRepository = MessageRepository;
         
     | 
| 
       671 
687 
     | 
    
         
             
            declare const internal_MessageRepository: typeof MessageRepository;
         
     | 
| 
       672 
688 
     | 
    
         
             
            type internal_ProxyConfigProvider = ProxyConfigProvider;
         
     | 
| 
       673 
689 
     | 
    
         
             
            declare const internal_ProxyConfigProvider: typeof ProxyConfigProvider;
         
     | 
| 
      
 690 
     | 
    
         
            +
            declare const internal_useSmooth: typeof useSmooth;
         
     | 
| 
       674 
691 
     | 
    
         
             
            declare namespace internal {
         
     | 
| 
       675 
     | 
    
         
            -
              export { internal_BaseAssistantRuntime as BaseAssistantRuntime, internal_MessageRepository as MessageRepository, internal_ProxyConfigProvider as ProxyConfigProvider };
         
     | 
| 
      
 692 
     | 
    
         
            +
              export { internal_BaseAssistantRuntime as BaseAssistantRuntime, internal_MessageRepository as MessageRepository, internal_ProxyConfigProvider as ProxyConfigProvider, internal_useSmooth as useSmooth };
         
     | 
| 
       676 
693 
     | 
    
         
             
            }
         
     | 
| 
       677 
694 
     | 
    
         | 
| 
       678 
695 
     | 
    
         
             
            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 ContentPartPrimitiveInProgressProps, 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, useContentPartText, useLocalRuntime, useMessageContext, useMessageIf, useSwitchToNewThread, useThreadContext, useThreadEmpty, useThreadIf, useThreadScrollToBottom, useThreadSuggestion };
         
     | 
    
        package/dist/index.d.ts
    CHANGED
    
    | 
         @@ -356,9 +356,15 @@ declare const useComposerIf: (props: UseComposerIfProps) => boolean; 
     | 
|
| 
       356 
356 
     | 
    
         | 
| 
       357 
357 
     | 
    
         
             
            declare const useComposerSend: () => (() => void) | null;
         
     | 
| 
       358 
358 
     | 
    
         | 
| 
       359 
     | 
    
         
            -
            declare const useContentPartDisplay: () =>  
     | 
| 
      
 359 
     | 
    
         
            +
            declare const useContentPartDisplay: () => Readonly<{
         
     | 
| 
      
 360 
     | 
    
         
            +
                status: "in_progress" | "done" | "error";
         
     | 
| 
      
 361 
     | 
    
         
            +
                part: UIContentPart;
         
     | 
| 
      
 362 
     | 
    
         
            +
            }>;
         
     | 
| 
       360 
363 
     | 
    
         | 
| 
       361 
     | 
    
         
            -
            declare const useContentPartImage: () =>  
     | 
| 
      
 364 
     | 
    
         
            +
            declare const useContentPartImage: () => Readonly<{
         
     | 
| 
      
 365 
     | 
    
         
            +
                status: "in_progress" | "done" | "error";
         
     | 
| 
      
 366 
     | 
    
         
            +
                part: ImageContentPart;
         
     | 
| 
      
 367 
     | 
    
         
            +
            }>;
         
     | 
| 
       362 
368 
     | 
    
         | 
| 
       363 
369 
     | 
    
         
             
            declare const useContentPartText: () => Readonly<{
         
     | 
| 
       364 
370 
     | 
    
         
             
                status: "in_progress" | "done" | "error";
         
     | 
| 
         @@ -528,8 +534,16 @@ declare namespace index$3 { 
     | 
|
| 
       528 
534 
     | 
    
         
             
            }
         
     | 
| 
       529 
535 
     | 
    
         | 
| 
       530 
536 
     | 
    
         
             
            type PrimitiveSpanProps$1 = ComponentPropsWithoutRef<typeof Primitive.span>;
         
     | 
| 
       531 
     | 
    
         
            -
            type ContentPartPrimitiveTextProps = Omit<PrimitiveSpanProps$1, "children" 
     | 
| 
       532 
     | 
    
         
            -
             
     | 
| 
      
 537 
     | 
    
         
            +
            type ContentPartPrimitiveTextProps = Omit<PrimitiveSpanProps$1, "children"> & {
         
     | 
| 
      
 538 
     | 
    
         
            +
                smooth?: boolean;
         
     | 
| 
      
 539 
     | 
    
         
            +
            };
         
     | 
| 
      
 540 
     | 
    
         
            +
            declare const ContentPartPrimitiveText: react.ForwardRefExoticComponent<Omit<Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
         
     | 
| 
      
 541 
     | 
    
         
            +
                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;
         
     | 
| 
      
 542 
     | 
    
         
            +
            } & {
         
     | 
| 
      
 543 
     | 
    
         
            +
                asChild?: boolean;
         
     | 
| 
      
 544 
     | 
    
         
            +
            }, "ref">, "children"> & {
         
     | 
| 
      
 545 
     | 
    
         
            +
                smooth?: boolean;
         
     | 
| 
      
 546 
     | 
    
         
            +
            } & react.RefAttributes<HTMLSpanElement>>;
         
     | 
| 
       533 
547 
     | 
    
         | 
| 
       534 
548 
     | 
    
         
             
            type PrimitiveImageProps = ComponentPropsWithoutRef<typeof Primitive.img>;
         
     | 
| 
       535 
549 
     | 
    
         
             
            type ContentPartPrimitiveImageProps = PrimitiveImageProps;
         
     | 
| 
         @@ -665,14 +679,17 @@ declare class MessageRepository { 
     | 
|
| 
       665 
679 
     | 
    
         
             
                resetHead(messageId: string | null): void;
         
     | 
| 
       666 
680 
     | 
    
         
             
            }
         
     | 
| 
       667 
681 
     | 
    
         | 
| 
      
 682 
     | 
    
         
            +
            declare const useSmooth: (text: string, smooth?: boolean) => string;
         
     | 
| 
      
 683 
     | 
    
         
            +
             
     | 
| 
       668 
684 
     | 
    
         
             
            type internal_BaseAssistantRuntime<TThreadRuntime extends ReactThreadRuntime> = BaseAssistantRuntime<TThreadRuntime>;
         
     | 
| 
       669 
685 
     | 
    
         
             
            declare const internal_BaseAssistantRuntime: typeof BaseAssistantRuntime;
         
     | 
| 
       670 
686 
     | 
    
         
             
            type internal_MessageRepository = MessageRepository;
         
     | 
| 
       671 
687 
     | 
    
         
             
            declare const internal_MessageRepository: typeof MessageRepository;
         
     | 
| 
       672 
688 
     | 
    
         
             
            type internal_ProxyConfigProvider = ProxyConfigProvider;
         
     | 
| 
       673 
689 
     | 
    
         
             
            declare const internal_ProxyConfigProvider: typeof ProxyConfigProvider;
         
     | 
| 
      
 690 
     | 
    
         
            +
            declare const internal_useSmooth: typeof useSmooth;
         
     | 
| 
       674 
691 
     | 
    
         
             
            declare namespace internal {
         
     | 
| 
       675 
     | 
    
         
            -
              export { internal_BaseAssistantRuntime as BaseAssistantRuntime, internal_MessageRepository as MessageRepository, internal_ProxyConfigProvider as ProxyConfigProvider };
         
     | 
| 
      
 692 
     | 
    
         
            +
              export { internal_BaseAssistantRuntime as BaseAssistantRuntime, internal_MessageRepository as MessageRepository, internal_ProxyConfigProvider as ProxyConfigProvider, internal_useSmooth as useSmooth };
         
     | 
| 
       676 
693 
     | 
    
         
             
            }
         
     | 
| 
       677 
694 
     | 
    
         | 
| 
       678 
695 
     | 
    
         
             
            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 ContentPartPrimitiveInProgressProps, 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, useContentPartText, useLocalRuntime, useMessageContext, useMessageIf, useSwitchToNewThread, useThreadContext, useThreadEmpty, useThreadIf, useThreadScrollToBottom, useThreadSuggestion };
         
     | 
    
        package/dist/index.js
    CHANGED
    
    | 
         @@ -730,7 +730,7 @@ var useContentPartDisplay = () => { 
     | 
|
| 
       730 
730 
     | 
    
         
             
                  throw new Error(
         
     | 
| 
       731 
731 
     | 
    
         
             
                    "This component can only be used inside ui content parts."
         
     | 
| 
       732 
732 
     | 
    
         
             
                  );
         
     | 
| 
       733 
     | 
    
         
            -
                return c 
     | 
| 
      
 733 
     | 
    
         
            +
                return c;
         
     | 
| 
       734 
734 
     | 
    
         
             
              });
         
     | 
| 
       735 
735 
     | 
    
         
             
              return display;
         
     | 
| 
       736 
736 
     | 
    
         
             
            };
         
     | 
| 
         @@ -743,7 +743,7 @@ var useContentPartImage = () => { 
     | 
|
| 
       743 
743 
     | 
    
         
             
                  throw new Error(
         
     | 
| 
       744 
744 
     | 
    
         
             
                    "ContentPartImage can only be used inside image content parts."
         
     | 
| 
       745 
745 
     | 
    
         
             
                  );
         
     | 
| 
       746 
     | 
    
         
            -
                return c 
     | 
| 
      
 746 
     | 
    
         
            +
                return c;
         
     | 
| 
       747 
747 
     | 
    
         
             
              });
         
     | 
| 
       748 
748 
     | 
    
         
             
              return image;
         
     | 
| 
       749 
749 
     | 
    
         
             
            };
         
     | 
| 
         @@ -1097,7 +1097,7 @@ BranchPickerPrimitiveNumber.displayName = "BranchPickerPrimitive.Number"; 
     | 
|
| 
       1097 
1097 
     | 
    
         | 
| 
       1098 
1098 
     | 
    
         
             
            // src/primitives/branchPicker/BranchPickerRoot.tsx
         
     | 
| 
       1099 
1099 
     | 
    
         
             
            var import_react_primitive6 = require("@radix-ui/react-primitive");
         
     | 
| 
       1100 
     | 
    
         
            -
            var  
     | 
| 
      
 1100 
     | 
    
         
            +
            var import_react39 = require("react");
         
     | 
| 
       1101 
1101 
     | 
    
         | 
| 
       1102 
1102 
     | 
    
         
             
            // src/primitives/message/index.ts
         
     | 
| 
       1103 
1103 
     | 
    
         
             
            var message_exports = {};
         
     | 
| 
         @@ -1174,7 +1174,7 @@ var MessagePrimitiveIf = ({ 
     | 
|
| 
       1174 
1174 
     | 
    
         
             
            MessagePrimitiveIf.displayName = "MessagePrimitive.If";
         
     | 
| 
       1175 
1175 
     | 
    
         | 
| 
       1176 
1176 
     | 
    
         
             
            // src/primitives/message/MessageContent.tsx
         
     | 
| 
       1177 
     | 
    
         
            -
            var  
     | 
| 
      
 1177 
     | 
    
         
            +
            var import_react38 = require("react");
         
     | 
| 
       1178 
1178 
     | 
    
         | 
| 
       1179 
1179 
     | 
    
         
             
            // src/context/providers/ContentPartProvider.tsx
         
     | 
| 
       1180 
1180 
     | 
    
         
             
            var import_react34 = require("react");
         
     | 
| 
         @@ -1221,30 +1221,113 @@ var ContentPartProvider = ({ 
     | 
|
| 
       1221 
1221 
     | 
    
         | 
| 
       1222 
1222 
     | 
    
         
             
            // src/primitives/contentPart/ContentPartText.tsx
         
     | 
| 
       1223 
1223 
     | 
    
         
             
            var import_react_primitive4 = require("@radix-ui/react-primitive");
         
     | 
| 
      
 1224 
     | 
    
         
            +
            var import_react36 = require("react");
         
     | 
| 
      
 1225 
     | 
    
         
            +
             
     | 
| 
      
 1226 
     | 
    
         
            +
            // src/utils/hooks/useSmooth.tsx
         
     | 
| 
       1224 
1227 
     | 
    
         
             
            var import_react35 = require("react");
         
     | 
| 
      
 1228 
     | 
    
         
            +
            var TextStreamAnimator = class {
         
     | 
| 
      
 1229 
     | 
    
         
            +
              constructor(setText) {
         
     | 
| 
      
 1230 
     | 
    
         
            +
                this.setText = setText;
         
     | 
| 
      
 1231 
     | 
    
         
            +
              }
         
     | 
| 
      
 1232 
     | 
    
         
            +
              animationFrameId = null;
         
     | 
| 
      
 1233 
     | 
    
         
            +
              lastUpdateTime = Date.now();
         
     | 
| 
      
 1234 
     | 
    
         
            +
              targetText = "";
         
     | 
| 
      
 1235 
     | 
    
         
            +
              start() {
         
     | 
| 
      
 1236 
     | 
    
         
            +
                if (this.animationFrameId !== null) return;
         
     | 
| 
      
 1237 
     | 
    
         
            +
                this.lastUpdateTime = Date.now();
         
     | 
| 
      
 1238 
     | 
    
         
            +
                this.animate();
         
     | 
| 
      
 1239 
     | 
    
         
            +
              }
         
     | 
| 
      
 1240 
     | 
    
         
            +
              stop() {
         
     | 
| 
      
 1241 
     | 
    
         
            +
                if (this.animationFrameId !== null) {
         
     | 
| 
      
 1242 
     | 
    
         
            +
                  cancelAnimationFrame(this.animationFrameId);
         
     | 
| 
      
 1243 
     | 
    
         
            +
                  this.animationFrameId = null;
         
     | 
| 
      
 1244 
     | 
    
         
            +
                }
         
     | 
| 
      
 1245 
     | 
    
         
            +
              }
         
     | 
| 
      
 1246 
     | 
    
         
            +
              animate = () => {
         
     | 
| 
      
 1247 
     | 
    
         
            +
                const currentTime = Date.now();
         
     | 
| 
      
 1248 
     | 
    
         
            +
                const deltaTime = currentTime - this.lastUpdateTime;
         
     | 
| 
      
 1249 
     | 
    
         
            +
                let timeToConsume = deltaTime;
         
     | 
| 
      
 1250 
     | 
    
         
            +
                this.setText((currentText) => {
         
     | 
| 
      
 1251 
     | 
    
         
            +
                  const targetText = this.targetText;
         
     | 
| 
      
 1252 
     | 
    
         
            +
                  if (currentText === targetText) {
         
     | 
| 
      
 1253 
     | 
    
         
            +
                    this.animationFrameId = null;
         
     | 
| 
      
 1254 
     | 
    
         
            +
                    return currentText;
         
     | 
| 
      
 1255 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1256 
     | 
    
         
            +
                  const remainingChars = targetText.length - currentText.length;
         
     | 
| 
      
 1257 
     | 
    
         
            +
                  const baseTimePerChar = Math.min(5, 250 / remainingChars);
         
     | 
| 
      
 1258 
     | 
    
         
            +
                  let charsToAdd = 0;
         
     | 
| 
      
 1259 
     | 
    
         
            +
                  while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {
         
     | 
| 
      
 1260 
     | 
    
         
            +
                    charsToAdd++;
         
     | 
| 
      
 1261 
     | 
    
         
            +
                    timeToConsume -= baseTimePerChar;
         
     | 
| 
      
 1262 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1263 
     | 
    
         
            +
                  this.animationFrameId = requestAnimationFrame(this.animate);
         
     | 
| 
      
 1264 
     | 
    
         
            +
                  if (charsToAdd === 0) {
         
     | 
| 
      
 1265 
     | 
    
         
            +
                    return currentText;
         
     | 
| 
      
 1266 
     | 
    
         
            +
                  }
         
     | 
| 
      
 1267 
     | 
    
         
            +
                  const newText = targetText.slice(0, currentText.length + charsToAdd);
         
     | 
| 
      
 1268 
     | 
    
         
            +
                  this.lastUpdateTime = currentTime - timeToConsume;
         
     | 
| 
      
 1269 
     | 
    
         
            +
                  return newText;
         
     | 
| 
      
 1270 
     | 
    
         
            +
                });
         
     | 
| 
      
 1271 
     | 
    
         
            +
              };
         
     | 
| 
      
 1272 
     | 
    
         
            +
            };
         
     | 
| 
      
 1273 
     | 
    
         
            +
            var useSmooth = (text, smooth = false) => {
         
     | 
| 
      
 1274 
     | 
    
         
            +
              const [displayedText, setDisplayedText] = (0, import_react35.useState)(text);
         
     | 
| 
      
 1275 
     | 
    
         
            +
              const [animatorRef] = (0, import_react35.useState)(
         
     | 
| 
      
 1276 
     | 
    
         
            +
                new TextStreamAnimator(setDisplayedText)
         
     | 
| 
      
 1277 
     | 
    
         
            +
              );
         
     | 
| 
      
 1278 
     | 
    
         
            +
              (0, import_react35.useEffect)(() => {
         
     | 
| 
      
 1279 
     | 
    
         
            +
                console.log("smooth", smooth);
         
     | 
| 
      
 1280 
     | 
    
         
            +
                if (!smooth) {
         
     | 
| 
      
 1281 
     | 
    
         
            +
                  animatorRef.stop();
         
     | 
| 
      
 1282 
     | 
    
         
            +
                  return;
         
     | 
| 
      
 1283 
     | 
    
         
            +
                }
         
     | 
| 
      
 1284 
     | 
    
         
            +
                if (!text.startsWith(animatorRef.targetText)) {
         
     | 
| 
      
 1285 
     | 
    
         
            +
                  setDisplayedText(text);
         
     | 
| 
      
 1286 
     | 
    
         
            +
                  animatorRef.targetText = text;
         
     | 
| 
      
 1287 
     | 
    
         
            +
                  animatorRef.stop();
         
     | 
| 
      
 1288 
     | 
    
         
            +
                  return;
         
     | 
| 
      
 1289 
     | 
    
         
            +
                }
         
     | 
| 
      
 1290 
     | 
    
         
            +
                animatorRef.targetText = text;
         
     | 
| 
      
 1291 
     | 
    
         
            +
                animatorRef.start();
         
     | 
| 
      
 1292 
     | 
    
         
            +
                console.log("animating");
         
     | 
| 
      
 1293 
     | 
    
         
            +
              }, [animatorRef, smooth, text]);
         
     | 
| 
      
 1294 
     | 
    
         
            +
              (0, import_react35.useEffect)(() => {
         
     | 
| 
      
 1295 
     | 
    
         
            +
                return () => {
         
     | 
| 
      
 1296 
     | 
    
         
            +
                  animatorRef.stop();
         
     | 
| 
      
 1297 
     | 
    
         
            +
                };
         
     | 
| 
      
 1298 
     | 
    
         
            +
              }, [animatorRef]);
         
     | 
| 
      
 1299 
     | 
    
         
            +
              return smooth ? displayedText : text;
         
     | 
| 
      
 1300 
     | 
    
         
            +
            };
         
     | 
| 
      
 1301 
     | 
    
         
            +
             
     | 
| 
      
 1302 
     | 
    
         
            +
            // src/primitives/contentPart/ContentPartText.tsx
         
     | 
| 
       1225 
1303 
     | 
    
         
             
            var import_jsx_runtime14 = require("react/jsx-runtime");
         
     | 
| 
       1226 
     | 
    
         
            -
            var ContentPartPrimitiveText = (0,  
     | 
| 
      
 1304 
     | 
    
         
            +
            var ContentPartPrimitiveText = (0, import_react36.forwardRef)(({ smooth = true, ...rest }, forwardedRef) => {
         
     | 
| 
       1227 
1305 
     | 
    
         
             
              const {
         
     | 
| 
       1228 
     | 
    
         
            -
                 
     | 
| 
       1229 
     | 
    
         
            -
                 
     | 
| 
      
 1306 
     | 
    
         
            +
                status,
         
     | 
| 
      
 1307 
     | 
    
         
            +
                part: { text }
         
     | 
| 
       1230 
1308 
     | 
    
         
             
              } = useContentPartText();
         
     | 
| 
       1231 
     | 
    
         
            -
               
     | 
| 
      
 1309 
     | 
    
         
            +
              const smoothText = useSmooth(text, smooth);
         
     | 
| 
      
 1310 
     | 
    
         
            +
              return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_primitive4.Primitive.span, { "data-status": status, ...rest, ref: forwardedRef, children: smoothText });
         
     | 
| 
       1232 
1311 
     | 
    
         
             
            });
         
     | 
| 
       1233 
1312 
     | 
    
         
             
            ContentPartPrimitiveText.displayName = "ContentPartPrimitive.Text";
         
     | 
| 
       1234 
1313 
     | 
    
         | 
| 
       1235 
1314 
     | 
    
         
             
            // src/primitives/contentPart/ContentPartImage.tsx
         
     | 
| 
       1236 
1315 
     | 
    
         
             
            var import_react_primitive5 = require("@radix-ui/react-primitive");
         
     | 
| 
       1237 
     | 
    
         
            -
            var  
     | 
| 
      
 1316 
     | 
    
         
            +
            var import_react37 = require("react");
         
     | 
| 
       1238 
1317 
     | 
    
         
             
            var import_jsx_runtime15 = require("react/jsx-runtime");
         
     | 
| 
       1239 
     | 
    
         
            -
            var ContentPartPrimitiveImage = (0,  
     | 
| 
       1240 
     | 
    
         
            -
              const  
     | 
| 
      
 1318 
     | 
    
         
            +
            var ContentPartPrimitiveImage = (0, import_react37.forwardRef)((props, forwardedRef) => {
         
     | 
| 
      
 1319 
     | 
    
         
            +
              const {
         
     | 
| 
      
 1320 
     | 
    
         
            +
                part: { image }
         
     | 
| 
      
 1321 
     | 
    
         
            +
              } = useContentPartImage();
         
     | 
| 
       1241 
1322 
     | 
    
         
             
              return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_primitive5.Primitive.img, { src: image, ...props, ref: forwardedRef });
         
     | 
| 
       1242 
1323 
     | 
    
         
             
            });
         
     | 
| 
       1243 
1324 
     | 
    
         
             
            ContentPartPrimitiveImage.displayName = "ContentPartPrimitive.Image";
         
     | 
| 
       1244 
1325 
     | 
    
         | 
| 
       1245 
1326 
     | 
    
         
             
            // src/primitives/contentPart/ContentPartDisplay.tsx
         
     | 
| 
       1246 
1327 
     | 
    
         
             
            var ContentPartPrimitiveDisplay = () => {
         
     | 
| 
       1247 
     | 
    
         
            -
              const  
     | 
| 
      
 1328 
     | 
    
         
            +
              const {
         
     | 
| 
      
 1329 
     | 
    
         
            +
                part: { display }
         
     | 
| 
      
 1330 
     | 
    
         
            +
              } = useContentPartDisplay();
         
     | 
| 
       1248 
1331 
     | 
    
         
             
              return display ?? null;
         
     | 
| 
       1249 
1332 
     | 
    
         
             
            };
         
     | 
| 
       1250 
1333 
     | 
    
         
             
            ContentPartPrimitiveDisplay.displayName = "ContentPartPrimitive.Display";
         
     | 
| 
         @@ -1312,7 +1395,7 @@ var MessageContentPartImpl = ({ 
     | 
|
| 
       1312 
1395 
     | 
    
         
             
            }) => {
         
     | 
| 
       1313 
1396 
     | 
    
         
             
              return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ContentPartProvider, { partIndex, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(MessageContentPartComponent, { components }) });
         
     | 
| 
       1314 
1397 
     | 
    
         
             
            };
         
     | 
| 
       1315 
     | 
    
         
            -
            var MessageContentPart = (0,  
     | 
| 
      
 1398 
     | 
    
         
            +
            var MessageContentPart = (0, import_react38.memo)(
         
     | 
| 
       1316 
1399 
     | 
    
         
             
              MessageContentPartImpl,
         
     | 
| 
       1317 
1400 
     | 
    
         
             
              (prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Image === next.components?.Image && prev.components?.UI === next.components?.UI && prev.components?.tools === next.components?.tools
         
     | 
| 
       1318 
1401 
     | 
    
         
             
            );
         
     | 
| 
         @@ -1343,7 +1426,7 @@ MessagePrimitiveInProgress.displayName = "MessagePrimitive.InProgress"; 
     | 
|
| 
       1343 
1426 
     | 
    
         | 
| 
       1344 
1427 
     | 
    
         
             
            // src/primitives/branchPicker/BranchPickerRoot.tsx
         
     | 
| 
       1345 
1428 
     | 
    
         
             
            var import_jsx_runtime17 = require("react/jsx-runtime");
         
     | 
| 
       1346 
     | 
    
         
            -
            var BranchPickerPrimitiveRoot = (0,  
     | 
| 
      
 1429 
     | 
    
         
            +
            var BranchPickerPrimitiveRoot = (0, import_react39.forwardRef)(({ hideWhenSingleBranch, ...rest }, ref) => {
         
     | 
| 
       1347 
1430 
     | 
    
         
             
              return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(MessagePrimitiveIf, { hasBranches: hideWhenSingleBranch ? true : void 0, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_primitive6.Primitive.div, { ...rest, ref }) });
         
     | 
| 
       1348 
1431 
     | 
    
         
             
            });
         
     | 
| 
       1349 
1432 
     | 
    
         
             
            BranchPickerPrimitiveRoot.displayName = "BranchPickerPrimitive.Root";
         
     | 
| 
         @@ -1361,9 +1444,9 @@ __export(composer_exports, { 
     | 
|
| 
       1361 
1444 
     | 
    
         
             
            // src/primitives/composer/ComposerRoot.tsx
         
     | 
| 
       1362 
1445 
     | 
    
         
             
            var import_primitive4 = require("@radix-ui/primitive");
         
     | 
| 
       1363 
1446 
     | 
    
         
             
            var import_react_primitive7 = require("@radix-ui/react-primitive");
         
     | 
| 
       1364 
     | 
    
         
            -
            var  
     | 
| 
      
 1447 
     | 
    
         
            +
            var import_react40 = require("react");
         
     | 
| 
       1365 
1448 
     | 
    
         
             
            var import_jsx_runtime18 = require("react/jsx-runtime");
         
     | 
| 
       1366 
     | 
    
         
            -
            var ComposerPrimitiveRoot = (0,  
     | 
| 
      
 1449 
     | 
    
         
            +
            var ComposerPrimitiveRoot = (0, import_react40.forwardRef)(({ onSubmit, ...rest }, forwardedRef) => {
         
     | 
| 
       1367 
1450 
     | 
    
         
             
              const send = useComposerSend();
         
     | 
| 
       1368 
1451 
     | 
    
         
             
              const handleSubmit = (e) => {
         
     | 
| 
       1369 
1452 
     | 
    
         
             
                e.preventDefault();
         
     | 
| 
         @@ -1385,11 +1468,11 @@ ComposerPrimitiveRoot.displayName = "ComposerPrimitive.Root"; 
     | 
|
| 
       1385 
1468 
     | 
    
         
             
            var import_primitive5 = require("@radix-ui/primitive");
         
     | 
| 
       1386 
1469 
     | 
    
         
             
            var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
         
     | 
| 
       1387 
1470 
     | 
    
         
             
            var import_react_slot = require("@radix-ui/react-slot");
         
     | 
| 
       1388 
     | 
    
         
            -
            var  
     | 
| 
      
 1471 
     | 
    
         
            +
            var import_react41 = require("react");
         
     | 
| 
       1389 
1472 
     | 
    
         
             
            var import_react_textarea_autosize = __toESM(require("react-textarea-autosize"));
         
     | 
| 
       1390 
1473 
     | 
    
         
             
            var import_react_use_escape_keydown = require("@radix-ui/react-use-escape-keydown");
         
     | 
| 
       1391 
1474 
     | 
    
         
             
            var import_jsx_runtime19 = require("react/jsx-runtime");
         
     | 
| 
       1392 
     | 
    
         
            -
            var ComposerPrimitiveInput = (0,  
     | 
| 
      
 1475 
     | 
    
         
            +
            var ComposerPrimitiveInput = (0, import_react41.forwardRef)(
         
     | 
| 
       1393 
1476 
     | 
    
         
             
              ({ autoFocus = false, asChild, disabled, onChange, onKeyDown, ...rest }, forwardedRef) => {
         
     | 
| 
       1394 
1477 
     | 
    
         
             
                const { useThread } = useThreadContext();
         
     | 
| 
       1395 
1478 
     | 
    
         
             
                const { useComposer, type } = useComposerContext();
         
     | 
| 
         @@ -1398,7 +1481,7 @@ var ComposerPrimitiveInput = (0, import_react40.forwardRef)( 
     | 
|
| 
       1398 
1481 
     | 
    
         
             
                  return c.value;
         
     | 
| 
       1399 
1482 
     | 
    
         
             
                });
         
     | 
| 
       1400 
1483 
     | 
    
         
             
                const Component = asChild ? import_react_slot.Slot : import_react_textarea_autosize.default;
         
     | 
| 
       1401 
     | 
    
         
            -
                const textareaRef = (0,  
     | 
| 
      
 1484 
     | 
    
         
            +
                const textareaRef = (0, import_react41.useRef)(null);
         
     | 
| 
       1402 
1485 
     | 
    
         
             
                const ref = (0, import_react_compose_refs2.useComposedRefs)(forwardedRef, textareaRef);
         
     | 
| 
       1403 
1486 
     | 
    
         
             
                (0, import_react_use_escape_keydown.useEscapeKeydown)((e) => {
         
     | 
| 
       1404 
1487 
     | 
    
         
             
                  const composer = useComposer.getState();
         
     | 
| 
         @@ -1418,7 +1501,7 @@ var ComposerPrimitiveInput = (0, import_react40.forwardRef)( 
     | 
|
| 
       1418 
1501 
     | 
    
         
             
                  }
         
     | 
| 
       1419 
1502 
     | 
    
         
             
                };
         
     | 
| 
       1420 
1503 
     | 
    
         
             
                const autoFocusEnabled = autoFocus && !disabled;
         
     | 
| 
       1421 
     | 
    
         
            -
                const focus = (0,  
     | 
| 
      
 1504 
     | 
    
         
            +
                const focus = (0, import_react41.useCallback)(() => {
         
     | 
| 
       1422 
1505 
     | 
    
         
             
                  const textarea = textareaRef.current;
         
     | 
| 
       1423 
1506 
     | 
    
         
             
                  if (!textarea || !autoFocusEnabled) return;
         
     | 
| 
       1424 
1507 
     | 
    
         
             
                  textarea.focus({ preventScroll: true });
         
     | 
| 
         @@ -1427,7 +1510,7 @@ var ComposerPrimitiveInput = (0, import_react40.forwardRef)( 
     | 
|
| 
       1427 
1510 
     | 
    
         
             
                    textareaRef.current.value.length
         
     | 
| 
       1428 
1511 
     | 
    
         
             
                  );
         
     | 
| 
       1429 
1512 
     | 
    
         
             
                }, [autoFocusEnabled]);
         
     | 
| 
       1430 
     | 
    
         
            -
                (0,  
     | 
| 
      
 1513 
     | 
    
         
            +
                (0, import_react41.useEffect)(() => focus(), [focus]);
         
     | 
| 
       1431 
1514 
     | 
    
         
             
                useOnComposerFocus(() => {
         
     | 
| 
       1432 
1515 
     | 
    
         
             
                  if (type === "new") {
         
     | 
| 
       1433 
1516 
     | 
    
         
             
                    focus();
         
     | 
| 
         @@ -1454,10 +1537,10 @@ var ComposerPrimitiveInput = (0, import_react40.forwardRef)( 
     | 
|
| 
       1454 
1537 
     | 
    
         
             
            ComposerPrimitiveInput.displayName = "ComposerPrimitive.Input";
         
     | 
| 
       1455 
1538 
     | 
    
         | 
| 
       1456 
1539 
     | 
    
         
             
            // src/primitives/composer/ComposerSend.tsx
         
     | 
| 
       1457 
     | 
    
         
            -
            var  
     | 
| 
      
 1540 
     | 
    
         
            +
            var import_react42 = require("react");
         
     | 
| 
       1458 
1541 
     | 
    
         
             
            var import_react_primitive8 = require("@radix-ui/react-primitive");
         
     | 
| 
       1459 
1542 
     | 
    
         
             
            var import_jsx_runtime20 = require("react/jsx-runtime");
         
     | 
| 
       1460 
     | 
    
         
            -
            var ComposerPrimitiveSend = (0,  
     | 
| 
      
 1543 
     | 
    
         
            +
            var ComposerPrimitiveSend = (0, import_react42.forwardRef)(({ disabled, ...rest }, ref) => {
         
     | 
| 
       1461 
1544 
     | 
    
         
             
              const { useComposer } = useComposerContext();
         
     | 
| 
       1462 
1545 
     | 
    
         
             
              const hasValue = useComposer((c) => c.isEditing && c.value.length > 0);
         
     | 
| 
       1463 
1546 
     | 
    
         
             
              return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
         
     | 
| 
         @@ -1511,9 +1594,9 @@ __export(thread_exports, { 
     | 
|
| 
       1511 
1594 
     | 
    
         | 
| 
       1512 
1595 
     | 
    
         
             
            // src/primitives/thread/ThreadRoot.tsx
         
     | 
| 
       1513 
1596 
     | 
    
         
             
            var import_react_primitive9 = require("@radix-ui/react-primitive");
         
     | 
| 
       1514 
     | 
    
         
            -
            var  
     | 
| 
      
 1597 
     | 
    
         
            +
            var import_react43 = require("react");
         
     | 
| 
       1515 
1598 
     | 
    
         
             
            var import_jsx_runtime21 = require("react/jsx-runtime");
         
     | 
| 
       1516 
     | 
    
         
            -
            var ThreadPrimitiveRoot = (0,  
     | 
| 
      
 1599 
     | 
    
         
            +
            var ThreadPrimitiveRoot = (0, import_react43.forwardRef)((props, ref) => {
         
     | 
| 
       1517 
1600 
     | 
    
         
             
              return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_primitive9.Primitive.div, { ...props, ref });
         
     | 
| 
       1518 
1601 
     | 
    
         
             
            });
         
     | 
| 
       1519 
1602 
     | 
    
         
             
            ThreadPrimitiveRoot.displayName = "ThreadPrimitive.Root";
         
     | 
| 
         @@ -1540,18 +1623,18 @@ ThreadPrimitiveIf.displayName = "ThreadPrimitive.If"; 
     | 
|
| 
       1540 
1623 
     | 
    
         
             
            // src/primitives/thread/ThreadViewport.tsx
         
     | 
| 
       1541 
1624 
     | 
    
         
             
            var import_react_compose_refs4 = require("@radix-ui/react-compose-refs");
         
     | 
| 
       1542 
1625 
     | 
    
         
             
            var import_react_primitive10 = require("@radix-ui/react-primitive");
         
     | 
| 
       1543 
     | 
    
         
            -
            var  
     | 
| 
      
 1626 
     | 
    
         
            +
            var import_react47 = require("react");
         
     | 
| 
       1544 
1627 
     | 
    
         | 
| 
       1545 
1628 
     | 
    
         
             
            // src/primitive-hooks/thread/useThreadViewportAutoScroll.tsx
         
     | 
| 
       1546 
1629 
     | 
    
         
             
            var import_react_compose_refs3 = require("@radix-ui/react-compose-refs");
         
     | 
| 
       1547 
     | 
    
         
            -
            var  
     | 
| 
      
 1630 
     | 
    
         
            +
            var import_react46 = require("react");
         
     | 
| 
       1548 
1631 
     | 
    
         | 
| 
       1549 
1632 
     | 
    
         
             
            // src/utils/hooks/useOnResizeContent.tsx
         
     | 
| 
       1550 
1633 
     | 
    
         
             
            var import_react_use_callback_ref2 = require("@radix-ui/react-use-callback-ref");
         
     | 
| 
       1551 
     | 
    
         
            -
            var  
     | 
| 
      
 1634 
     | 
    
         
            +
            var import_react44 = require("react");
         
     | 
| 
       1552 
1635 
     | 
    
         
             
            var useOnResizeContent = (callback) => {
         
     | 
| 
       1553 
1636 
     | 
    
         
             
              const callbackRef = (0, import_react_use_callback_ref2.useCallbackRef)(callback);
         
     | 
| 
       1554 
     | 
    
         
            -
              const refCallback = (0,  
     | 
| 
      
 1637 
     | 
    
         
            +
              const refCallback = (0, import_react44.useCallback)(
         
     | 
| 
       1555 
1638 
     | 
    
         
             
                (el) => {
         
     | 
| 
       1556 
1639 
     | 
    
         
             
                  const resizeObserver = new ResizeObserver(() => {
         
     | 
| 
       1557 
1640 
     | 
    
         
             
                    callbackRef();
         
     | 
| 
         @@ -1588,11 +1671,11 @@ var useOnResizeContent = (callback) => { 
     | 
|
| 
       1588 
1671 
     | 
    
         | 
| 
       1589 
1672 
     | 
    
         
             
            // src/utils/hooks/useOnScrollToBottom.tsx
         
     | 
| 
       1590 
1673 
     | 
    
         
             
            var import_react_use_callback_ref3 = require("@radix-ui/react-use-callback-ref");
         
     | 
| 
       1591 
     | 
    
         
            -
            var  
     | 
| 
      
 1674 
     | 
    
         
            +
            var import_react45 = require("react");
         
     | 
| 
       1592 
1675 
     | 
    
         
             
            var useOnScrollToBottom = (callback) => {
         
     | 
| 
       1593 
1676 
     | 
    
         
             
              const callbackRef = (0, import_react_use_callback_ref3.useCallbackRef)(callback);
         
     | 
| 
       1594 
1677 
     | 
    
         
             
              const { useViewport } = useThreadContext();
         
     | 
| 
       1595 
     | 
    
         
            -
              (0,  
     | 
| 
      
 1678 
     | 
    
         
            +
              (0, import_react45.useEffect)(() => {
         
     | 
| 
       1596 
1679 
     | 
    
         
             
                return useViewport.getState().onScrollToBottom(() => {
         
     | 
| 
       1597 
1680 
     | 
    
         
             
                  callbackRef();
         
     | 
| 
       1598 
1681 
     | 
    
         
             
                });
         
     | 
| 
         @@ -1603,11 +1686,11 @@ var useOnScrollToBottom = (callback) => { 
     | 
|
| 
       1603 
1686 
     | 
    
         
             
            var useThreadViewportAutoScroll = ({
         
     | 
| 
       1604 
1687 
     | 
    
         
             
              autoScroll = true
         
     | 
| 
       1605 
1688 
     | 
    
         
             
            }) => {
         
     | 
| 
       1606 
     | 
    
         
            -
              const divRef = (0,  
     | 
| 
      
 1689 
     | 
    
         
            +
              const divRef = (0, import_react46.useRef)(null);
         
     | 
| 
       1607 
1690 
     | 
    
         
             
              const { useViewport } = useThreadContext();
         
     | 
| 
       1608 
     | 
    
         
            -
              const firstRenderRef = (0,  
     | 
| 
       1609 
     | 
    
         
            -
              const lastScrollTop = (0,  
     | 
| 
       1610 
     | 
    
         
            -
              const isScrollingToBottomRef = (0,  
     | 
| 
      
 1691 
     | 
    
         
            +
              const firstRenderRef = (0, import_react46.useRef)(true);
         
     | 
| 
      
 1692 
     | 
    
         
            +
              const lastScrollTop = (0, import_react46.useRef)(0);
         
     | 
| 
      
 1693 
     | 
    
         
            +
              const isScrollingToBottomRef = (0, import_react46.useRef)(false);
         
     | 
| 
       1611 
1694 
     | 
    
         
             
              const scrollToBottom = () => {
         
     | 
| 
       1612 
1695 
     | 
    
         
             
                const div = divRef.current;
         
     | 
| 
       1613 
1696 
     | 
    
         
             
                if (!div || !autoScroll) return;
         
     | 
| 
         @@ -1654,7 +1737,7 @@ var useThreadViewportAutoScroll = ({ 
     | 
|
| 
       1654 
1737 
     | 
    
         | 
| 
       1655 
1738 
     | 
    
         
             
            // src/primitives/thread/ThreadViewport.tsx
         
     | 
| 
       1656 
1739 
     | 
    
         
             
            var import_jsx_runtime22 = require("react/jsx-runtime");
         
     | 
| 
       1657 
     | 
    
         
            -
            var ThreadPrimitiveViewport = (0,  
     | 
| 
      
 1740 
     | 
    
         
            +
            var ThreadPrimitiveViewport = (0, import_react47.forwardRef)(({ autoScroll, onScroll, children, ...rest }, forwardedRef) => {
         
     | 
| 
       1658 
1741 
     | 
    
         
             
              const autoScrollRef = useThreadViewportAutoScroll({
         
     | 
| 
       1659 
1742 
     | 
    
         
             
                autoScroll
         
     | 
| 
       1660 
1743 
     | 
    
         
             
              });
         
     | 
| 
         @@ -1664,10 +1747,10 @@ var ThreadPrimitiveViewport = (0, import_react46.forwardRef)(({ autoScroll, onSc 
     | 
|
| 
       1664 
1747 
     | 
    
         
             
            ThreadPrimitiveViewport.displayName = "ThreadPrimitive.Viewport";
         
     | 
| 
       1665 
1748 
     | 
    
         | 
| 
       1666 
1749 
     | 
    
         
             
            // src/primitives/thread/ThreadMessages.tsx
         
     | 
| 
       1667 
     | 
    
         
            -
            var  
     | 
| 
      
 1750 
     | 
    
         
            +
            var import_react49 = require("react");
         
     | 
| 
       1668 
1751 
     | 
    
         | 
| 
       1669 
1752 
     | 
    
         
             
            // src/context/providers/MessageProvider.tsx
         
     | 
| 
       1670 
     | 
    
         
            -
            var  
     | 
| 
      
 1753 
     | 
    
         
            +
            var import_react48 = require("react");
         
     | 
| 
       1671 
1754 
     | 
    
         
             
            var import_zustand12 = require("zustand");
         
     | 
| 
       1672 
1755 
     | 
    
         | 
| 
       1673 
1756 
     | 
    
         
             
            // src/context/stores/EditComposer.ts
         
     | 
| 
         @@ -1729,7 +1812,7 @@ var syncMessage = (messages, getBranches, useMessage, messageIndex) => { 
     | 
|
| 
       1729 
1812 
     | 
    
         
             
            };
         
     | 
| 
       1730 
1813 
     | 
    
         
             
            var useMessageContext2 = (messageIndex) => {
         
     | 
| 
       1731 
1814 
     | 
    
         
             
              const { useThreadMessages, useThreadActions } = useThreadContext();
         
     | 
| 
       1732 
     | 
    
         
            -
              const [context] = (0,  
     | 
| 
      
 1815 
     | 
    
         
            +
              const [context] = (0, import_react48.useState)(() => {
         
     | 
| 
       1733 
1816 
     | 
    
         
             
                const useMessage = (0, import_zustand12.create)(() => ({}));
         
     | 
| 
       1734 
1817 
     | 
    
         
             
                const useMessageUtils = makeMessageUtilsStore();
         
     | 
| 
       1735 
1818 
     | 
    
         
             
                const useEditComposer = makeEditComposerStore({
         
     | 
| 
         @@ -1766,7 +1849,7 @@ var useMessageContext2 = (messageIndex) => { 
     | 
|
| 
       1766 
1849 
     | 
    
         
             
                );
         
     | 
| 
       1767 
1850 
     | 
    
         
             
                return { useMessage, useMessageUtils, useEditComposer };
         
     | 
| 
       1768 
1851 
     | 
    
         
             
              });
         
     | 
| 
       1769 
     | 
    
         
            -
              (0,  
     | 
| 
      
 1852 
     | 
    
         
            +
              (0, import_react48.useEffect)(() => {
         
     | 
| 
       1770 
1853 
     | 
    
         
             
                return useThreadMessages.subscribe((thread) => {
         
     | 
| 
       1771 
1854 
     | 
    
         
             
                  syncMessage(
         
     | 
| 
       1772 
1855 
     | 
    
         
             
                    thread,
         
     | 
| 
         @@ -1808,7 +1891,7 @@ var ThreadMessageImpl = ({ 
     | 
|
| 
       1808 
1891 
     | 
    
         
             
                /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MessagePrimitiveIf, { assistant: true, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AssistantMessage, {}) })
         
     | 
| 
       1809 
1892 
     | 
    
         
             
              ] });
         
     | 
| 
       1810 
1893 
     | 
    
         
             
            };
         
     | 
| 
       1811 
     | 
    
         
            -
            var ThreadMessage = (0,  
     | 
| 
      
 1894 
     | 
    
         
            +
            var ThreadMessage = (0, import_react49.memo)(
         
     | 
| 
       1812 
1895 
     | 
    
         
             
              ThreadMessageImpl,
         
     | 
| 
       1813 
1896 
     | 
    
         
             
              (prev, next) => prev.messageIndex === next.messageIndex && prev.components.Message === next.components.Message && prev.components.UserMessage === next.components.UserMessage && prev.components.EditComposer === next.components.EditComposer && prev.components.AssistantMessage === next.components.AssistantMessage
         
     | 
| 
       1814 
1897 
     | 
    
         
             
            );
         
     | 
| 
         @@ -1831,7 +1914,7 @@ var ThreadPrimitiveMessagesImpl = ({ 
     | 
|
| 
       1831 
1914 
     | 
    
         
             
              });
         
     | 
| 
       1832 
1915 
     | 
    
         
             
            };
         
     | 
| 
       1833 
1916 
     | 
    
         
             
            ThreadPrimitiveMessagesImpl.displayName = "ThreadPrimitive.Messages";
         
     | 
| 
       1834 
     | 
    
         
            -
            var ThreadPrimitiveMessages = (0,  
     | 
| 
      
 1917 
     | 
    
         
            +
            var ThreadPrimitiveMessages = (0, import_react49.memo)(
         
     | 
| 
       1835 
1918 
     | 
    
         
             
              ThreadPrimitiveMessagesImpl,
         
     | 
| 
       1836 
1919 
     | 
    
         
             
              (prev, next) => prev.components?.Message === next.components?.Message && prev.components?.UserMessage === next.components?.UserMessage && prev.components?.EditComposer === next.components?.EditComposer && prev.components?.AssistantMessage === next.components?.AssistantMessage
         
     | 
| 
       1837 
1920 
     | 
    
         
             
            );
         
     | 
| 
         @@ -1849,7 +1932,7 @@ var ThreadPrimitiveSuggestion = createActionButton( 
     | 
|
| 
       1849 
1932 
     | 
    
         
             
            );
         
     | 
| 
       1850 
1933 
     | 
    
         | 
| 
       1851 
1934 
     | 
    
         
             
            // src/runtime/local/useLocalRuntime.tsx
         
     | 
| 
       1852 
     | 
    
         
            -
            var  
     | 
| 
      
 1935 
     | 
    
         
            +
            var import_react50 = require("react");
         
     | 
| 
       1853 
1936 
     | 
    
         | 
| 
       1854 
1937 
     | 
    
         
             
            // src/runtime/utils/idUtils.tsx
         
     | 
| 
       1855 
1938 
     | 
    
         
             
            var import_non_secure = require("nanoid/non-secure");
         
     | 
| 
         @@ -2191,8 +2274,8 @@ var LocalThreadRuntime = class { 
     | 
|
| 
       2191 
2274 
     | 
    
         | 
| 
       2192 
2275 
     | 
    
         
             
            // src/runtime/local/useLocalRuntime.tsx
         
     | 
| 
       2193 
2276 
     | 
    
         
             
            var useLocalRuntime = (adapter) => {
         
     | 
| 
       2194 
     | 
    
         
            -
              const [runtime] = (0,  
     | 
| 
       2195 
     | 
    
         
            -
              (0,  
     | 
| 
      
 2277 
     | 
    
         
            +
              const [runtime] = (0, import_react50.useState)(() => new LocalRuntime(adapter));
         
     | 
| 
      
 2278 
     | 
    
         
            +
              (0, import_react50.useInsertionEffect)(() => {
         
     | 
| 
       2196 
2279 
     | 
    
         
             
                runtime.adapter = adapter;
         
     | 
| 
       2197 
2280 
     | 
    
         
             
              });
         
     | 
| 
       2198 
2281 
     | 
    
         
             
              return runtime;
         
     | 
| 
         @@ -2203,7 +2286,8 @@ var internal_exports = {}; 
     | 
|
| 
       2203 
2286 
     | 
    
         
             
            __export(internal_exports, {
         
     | 
| 
       2204 
2287 
     | 
    
         
             
              BaseAssistantRuntime: () => BaseAssistantRuntime,
         
     | 
| 
       2205 
2288 
     | 
    
         
             
              MessageRepository: () => MessageRepository,
         
     | 
| 
       2206 
     | 
    
         
            -
              ProxyConfigProvider: () => ProxyConfigProvider
         
     | 
| 
      
 2289 
     | 
    
         
            +
              ProxyConfigProvider: () => ProxyConfigProvider,
         
     | 
| 
      
 2290 
     | 
    
         
            +
              useSmooth: () => useSmooth
         
     | 
| 
       2207 
2291 
     | 
    
         
             
            });
         
     | 
| 
       2208 
2292 
     | 
    
         
             
            // Annotate the CommonJS export names for ESM import in node:
         
     | 
| 
       2209 
2293 
     | 
    
         
             
            0 && (module.exports = {
         
     |